ports/96918: sysutils/fcron: fcrondyn completely broken
Brad Huntting
huntting at glarp.com
Mon May 8 23:30:23 UTC 2006
The following reply was made to PR ports/96918; it has been noted by GNATS.
From: Brad Huntting <huntting at glarp.com>
To: Edwin Groothuis <edwin at FreeBSD.org>
Cc: huntting at glarp.com
Subject: Re: ports/96918: sysutils/fcron: fcrondyn completely broken
Date: Mon, 08 May 2006 09:34:51 -0600
Please let me know how the attached patch works.
cd /tmp;
cp -r /usr/ports/sysutils/fcron .
patch </tmp/attached_patch
If you dont see any other problems, I'll submit it to the ports-meister.
thanx,
brad
----------- cut here -------------
diff -Nru /usr/ports/sysutils/fcron/Makefile fcron/Makefile
--- /usr/ports/sysutils/fcron/Makefile Fri Feb 10 02:51:04 2006
+++ fcron/Makefile Sun May 7 19:10:30 2006
@@ -8,6 +8,7 @@
PORTNAME= fcron
PORTVERSION= 3.0.1
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SUNSITE} \
http://fcron.free.fr/archives/ \
@@ -34,6 +35,8 @@
MAN5= fcron.conf.5 fcrontab.5
MAN8= fcron.8
+PAM_DIR?= /etc/pam.d
+
PORTDOCS= *
.if defined(MANLANG) && exists(${WRKSRC}/doc/${MANLANG})
@@ -55,6 +58,8 @@
.endfor
${MKDIR} ${EXAMPLESDIR}
${INSTALL_DATA} ${FILESDIR}/fcrontab-* ${WRKSRC}/files/*.pam ${EXAMPLESDIR}
+ [ -f ${PAM_DIR}/fcron ] || ${INSTALL_DATA} ${WRKSRC}/files/fcron.pam ${PAM_DIR}/fcron
+ [ -f ${PAM_DIR}/fcrontab ] || ${INSTALL_DATA} ${WRKSRC}/files/fcrontab.pam ${PAM_DIR}/fcrontab
.for n in 1 5 8
${INSTALL_MAN} ${MAN${n}:S|^|${DOCSRC}/man/|} ${PREFIX}/man/man${n}
.endfor
diff -Nru /usr/ports/sysutils/fcron/files/patch-fcrondyn.c fcron/files/patch-fcrondyn.c
--- /usr/ports/sysutils/fcron/files/patch-fcrondyn.c Wed Dec 31 17:00:00 1969
+++ fcron/files/patch-fcrondyn.c Sun May 7 19:05:18 2006
@@ -0,0 +1,40 @@
+--- fcrondyn.c.orig Mon Feb 6 14:44:52 2006
++++ fcrondyn.c Sun May 7 19:04:07 2006
+@@ -35,6 +35,10 @@
+ #include "allow.h"
+ #include "read_string.h"
+
++#if (defined(__unix__) || defined(unix)) && !defined(USG)
++#include <sys/param.h>
++#endif
++
+ char rcs_info[] = "$Id: fcrondyn.c,v 1.14 2006/01/11 00:48:33 thib Exp thib $";
+
+ void info(void);
+@@ -399,17 +403,21 @@
+ int fd = -1;
+ struct sockaddr_un addr;
+ int len = 0;
++ int sa_len;
+
+ if ( (fd = socket(PF_UNIX, SOCK_STREAM, 0)) == -1 )
+ die_e("could not create socket");
+
+ addr.sun_family = AF_UNIX;
+- if ( (len = strlen(fifofile)) > sizeof(addr.sun_path) )
+- die("Error : fifo file path too long (max is %d)", sizeof(addr.sun_path));
+- strncpy(addr.sun_path, fifofile, sizeof(addr.sun_path) - 1);
+- addr.sun_path[sizeof(addr.sun_path)-1] = '\0';
++ if ( (len = strlen(fifofile)) > sizeof(addr.sun_path) - 1 )
++ die("Error : fifo file path too long (max is %d)", sizeof(addr.sun_path) - 1);
++ strncpy(addr.sun_path, fifofile, sizeof(addr.sun_path));
++ sa_len = (addr.sun_path - (char *)&addr) + len;
++#if (defined(BSD) && (BSD >= 199103)) /* 4.3BSD Net2 */
++ addr.sun_len = sa_len;
++#endif
+
+- if ( connect(fd, (struct sockaddr *) &addr, sizeof(addr.sun_family) + len) < 0 )
++ if ( connect(fd, (struct sockaddr *) &addr, sa_len) < 0 )
+ die_e("Cannot connect() to fcron (check if fcron is running)");
+
+ if ( authenticate_user(fd) == ERR ) {
diff -Nru /usr/ports/sysutils/fcron/files/pkg-message.in fcron/files/pkg-message.in
--- /usr/ports/sysutils/fcron/files/pkg-message.in Fri Feb 10 02:51:04 2006
+++ fcron/files/pkg-message.in Mon May 8 09:24:35 2006
@@ -5,12 +5,6 @@
fcron_enable="YES"
cron_enable="NO"
-install the pam config files
-
- mkdir -p %%PREFIX%%/etc/pam.d
- cp %%EXAMPLESDIR%%/fcron.pam %%PREFIX%%/etc/pam.d/fcron
- cp %%EXAMPLESDIR%%/fcrontab.pam %%PREFIX%%/etc/pam.d/fcrontab
-
and move any jobs in /etc/crontab to the root fcrontab(5) file. See:
%%EXAMPLESDIR%%
diff -Nru /usr/ports/sysutils/fcron/pkg-plist fcron/pkg-plist
--- /usr/ports/sysutils/fcron/pkg-plist Fri Feb 10 02:51:04 2006
+++ fcron/pkg-plist Sun May 7 11:04:50 2006
@@ -5,8 +5,8 @@
etc/fcron.conf.dist
etc/fcron.deny.dist
sbin/fcron
-%%EXAMPLESDIR%%/fcron.pam
+%%PAMDIR%%/fcron
+%%PAMDIR%%/fcrontab
%%EXAMPLESDIR%%/fcrontab-operator
%%EXAMPLESDIR%%/fcrontab-root
-%%EXAMPLESDIR%%/fcrontab.pam
@dirrm %%EXAMPLESDIR%%
More information about the freebsd-ports-bugs
mailing list