Date: Thu, 11 May 1995 12:59:17 UTC+0200 From: Javier Martin Rueda <jmrueda@diatel.upm.es> To: ports@FreeBSD.org Subject: Changes in port of pcnfsd Message-ID: <691*/S=jmrueda/OU=diatel/O=upm/PRMD=iris/ADMD=mensatex/C=es/@MHS>
next in thread | raw e-mail | index | archive | help
Hi. I've been building the pcnfsd port and have found the following problems: The sources distinguish between several systems to use the proper paths for several printing-related programs. This was patched for FreeBSD, but not in all necessary places. The install procedure creates the directory /var/spool/pcnfsd, while the executable uses /var/spool/pcnfs. Also, the port blindly installs the executable and man page in /usr/local/libexec and /usr/local/man/man8, respectively, withouth ensuring the directories do previously exist. Also, why is "mkdir xxxx" used to create target directories instead of "mkdir -p xxxx", for instance? I solved all of the above except the blind installation, which should be corrected in the global bsd.xxxxx.mk files. By the way, pcnfsd seems to work ok!! :-) This is my new patch-aa file for pcnfsd. *** common.h Sat Feb 27 08:48:17 1993 --- common.h Thu Oct 6 14:35:00 1994 *************** *** 60,65 **** --- 60,69 ---- **===================================================================== */ + #ifdef HAVE_PARAM_H + #include <sys/param.h> + #endif + /* **--------------------------------------------------------------------- ** Define the following symbol to enable the use of a *************** *** 268,281 **** #define SUNOS_403C #endif ! #ifdef OSVER_BSD386 #define BSD_STYLE_PRINT #define BSD_STYLE_PR_LIST #define BSD_STYLE_QUEUE #define BSD_STYLE_CANCEL #define BSD_STYLE_STATUS #define BSD_STYLE_MONITOR ! #define BSD386 #endif #ifdef OSVER_ULTRIX --- 272,285 ---- #define SUNOS_403C #endif ! #if (defined(BSD) && (BSD >= 199103)) #define BSD_STYLE_PRINT #define BSD_STYLE_PR_LIST #define BSD_STYLE_QUEUE #define BSD_STYLE_CANCEL #define BSD_STYLE_STATUS #define BSD_STYLE_MONITOR ! #define GETUSERSHELL #endif #ifdef OSVER_ULTRIX *** pcnfsd_misc.c Sat Feb 27 08:48:14 1993 --- pcnfsd_misc.c Thu Oct 6 14:32:17 1994 *************** *** 480,486 **** #else SVR4 #include <utmp.h> ! #define WTMP_PATH "/usr/adm/wtmp" void wlogin(name) --- 480,488 ---- #else SVR4 #include <utmp.h> ! #ifndef _PATH_WTMP ! #define _PATH_WTMP "/usr/adm/wtmp" ! #endif void wlogin(name) *************** *** 499,505 **** (void) strncpy(ut.ut_name,name,sizeof ut.ut_name); ut.ut_time = time( (time_t *) 0); (void) strncpy(ut.ut_host, getcallername(), sizeof ut.ut_host); ! if ((fd = open(WTMP_PATH, O_WRONLY|O_APPEND, 0)) >= 0) { (void)write(fd, (char *)&ut, sizeof(ut)); (void)close(fd); } --- 501,507 ---- (void) strncpy(ut.ut_name,name,sizeof ut.ut_name); ut.ut_time = time( (time_t *) 0); (void) strncpy(ut.ut_host, getcallername(), sizeof ut.ut_host); ! if ((fd = open(_PATH_WTMP, O_WRONLY|O_APPEND, 0)) >= 0) { (void)write(fd, (char *)&ut, sizeof(ut)); (void)close(fd); } *** pcnfsd_print.c Fri Jan 29 23:52:04 1993 --- pcnfsd_print.c Thu Apr 27 12:43:01 1995 *************** *** 395,407 **** */ if(!xcmd) { #ifdef BSD_STYLE_PRINT ! #ifdef BSD386 sprintf(cmdbuf, "/usr/bin/lpr -P%s -C%s -J%s %s", pr, system, user, new_pathname); #else sprintf(cmdbuf, "/usr/ucb/lpr -P%s -C%s -J%s %s", pr, system, user, new_pathname); ! #endif BSD386 #endif BSD_STYLE_PRINT #ifdef SVR4_STYLE_PRINT sprintf(cmdbuf, "/usr/bin/lp -c -d%s %s", --- 395,407 ---- */ if(!xcmd) { #ifdef BSD_STYLE_PRINT ! #if (defined(BSD) && (BSD >= 199103)) sprintf(cmdbuf, "/usr/bin/lpr -P%s -C%s -J%s %s", pr, system, user, new_pathname); #else sprintf(cmdbuf, "/usr/ucb/lpr -P%s -C%s -J%s %s", pr, system, user, new_pathname); ! #endif #endif BSD_STYLE_PRINT #ifdef SVR4_STYLE_PRINT sprintf(cmdbuf, "/usr/bin/lp -c -d%s %s", *************** *** 686,696 **** char *cp; int saw_system; ! #ifdef BSD386 p = popen("/usr/sbin/lpc status", "r"); #else p = popen("/usr/etc/lpc status", "r"); ! #endif BSD386 if(p == NULL) { printers = list_virtual_printers(); return(1); --- 686,696 ---- char *cp; int saw_system; ! #if (defined(BSD) && (BSD >= 199103)) p = popen("/usr/sbin/lpc status", "r"); #else p = popen("/usr/etc/lpc status", "r"); ! #endif if(p == NULL) { printers = list_virtual_printers(); return(1); *************** *** 975,981 **** --- 975,985 ---- if(pn == NULL || suspicious(pn) || !valid_pr(pn)) return(PI_RES_NO_SUCH_PRINTER); + #if (defined(BSD) && (BSD >= 199103)) + sprintf(buff, "/usr/bin/lpq -P%s", pn); + #else sprintf(buff, "/usr/ucb/lpq -P%s", pn); + #endif p = su_popen(user, buff, MAXTIME_FOR_QUEUE); if(p == NULL) { *************** *** 1234,1244 **** sprintf(pname, "%s:", pn); n = strlen(pname); ! #ifdef BSD386 sprintf(cmd, "/usr/sbin/lpc status %s", pn); #else sprintf(cmd, "/usr/etc/lpc status %s", pn); ! #endif BSD386 p = popen(cmd, "r"); if(p == NULL) { msg_out("rpc.pcnfsd: unable to popen() lpc status"); --- 1238,1248 ---- sprintf(pname, "%s:", pn); n = strlen(pname); ! #if (defined(BSD) && (BSD >= 199103)) sprintf(cmd, "/usr/sbin/lpc status %s", pn); #else sprintf(cmd, "/usr/etc/lpc status %s", pn); ! #endif p = popen(cmd, "r"); if(p == NULL) { msg_out("rpc.pcnfsd: unable to popen() lpc status"); *************** *** 1404,1414 **** if(suspicious(id)) return(PC_RES_NO_SUCH_JOB); ! #ifdef BSD386 sprintf(cmdbuf, "/usr/bin/lprm -P%s %s", pr, id); #else sprintf(cmdbuf, "/usr/ucb/lprm -P%s %s", pr, id); ! #endif BSD386 if ((fd = su_popen(user, cmdbuf, MAXTIME_FOR_CANCEL)) == NULL) { msg_out("rpc.pcnfsd: su_popen failed"); return(PC_RES_FAIL); --- 1408,1418 ---- if(suspicious(id)) return(PC_RES_NO_SUCH_JOB); ! #if (defined(BSD) && (BSD >= 199103)) sprintf(cmdbuf, "/usr/bin/lprm -P%s %s", pr, id); #else sprintf(cmdbuf, "/usr/ucb/lprm -P%s %s", pr, id); ! #endif if ((fd = su_popen(user, cmdbuf, MAXTIME_FOR_CANCEL)) == NULL) { msg_out("rpc.pcnfsd: su_popen failed"); return(PC_RES_FAIL); *************** *** 1487,1497 **** char default_cmd[] = "lp $FILE"; #endif SVR4_STYLE_PRINT #ifdef BSD_STYLE_PRINT ! #ifdef BSD386 char default_cmd[] = "/usr/bin/lpr $FILE"; #else char default_cmd[] = "/usr/ucb/lpr $FILE"; ! #endif BSD386 #endif BSD_STYLE_PRINT void --- 1491,1501 ---- char default_cmd[] = "lp $FILE"; #endif SVR4_STYLE_PRINT #ifdef BSD_STYLE_PRINT ! #if (defined(BSD) && (BSD >= 199103)) char default_cmd[] = "/usr/bin/lpr $FILE"; #else char default_cmd[] = "/usr/ucb/lpr $FILE"; ! #endif #endif BSD_STYLE_PRINT void END OF PATCH-AA I also made a change in Makefile.inc, so that the spool directory which is created is the one that the sources expect. This is my new Makefile.inc file: # # Directories for pcnfsd(8) # $Id: Makefile.inc,v 1.1.1.1 1994/10/07 00:23:56 pst Exp $ # BINDIR= ${DESTDIR}/usr/local/libexec MANDIR= ${DESTDIR}/usr/local/man/man PRDIR= ${DESTDIR}/var/spool/pcnfs END OF MAKEFILE.INC
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?691*/S=jmrueda/OU=diatel/O=upm/PRMD=iris/ADMD=mensatex/C=es/>