Skip site navigation (1)Skip section navigation (2)
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/>