[packages/lpr] - enhanced misc patch to fix build with libbsd installed - some fixes to allow compilation in curren

qboosh qboosh at pld-linux.org
Sun Aug 23 09:54:01 CEST 2020


commit f90685e92a8731dd56c5c4215114821ce61522ad
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Aug 23 09:56:28 2020 +0200

    - enhanced misc patch to fix build with libbsd installed
    - some fixes to allow compilation in current environment (getline,gcc,format,wait patches)
    - verbose man files

 lpr-format.patch  |  15 ++++++
 lpr-gcc.patch     |  19 +++++++
 lpr-getline.patch | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 lpr-misc.patch    |  48 +++++++++++++++---
 lpr-wait.patch    |  60 ++++++++++++++++++++++
 lpr.spec          |  29 ++++++++---
 6 files changed, 305 insertions(+), 13 deletions(-)
---
diff --git a/lpr.spec b/lpr.spec
index a3a2c46..cc58d55 100644
--- a/lpr.spec
+++ b/lpr.spec
@@ -6,9 +6,9 @@ Summary(tr.UTF-8):	Yerel ve uzak yazıcılara erişim için sunucu ve istemci
 Name:		lpr
 Version:	0.72
 Release:	2.2
-License:	distributable
+License:	BSD
 Group:		Applications/System
-Source0:	http://dl.sourceforge.net/lpr/%{name}-%{version}.tar.gz
+Source0:	http://downloads.sourceforge.net/lpr/%{name}-%{version}.tar.gz
 # Source0-md5:	f2a46147427f20863f98b87cd9a0d772
 Source1:	lpd.init
 Source2:	lpd.sysconfig
@@ -16,6 +16,10 @@ Source3:	http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-ma
 # Source3-md5:	aaa4f77e36d8778eda8f88587f7f7c4e
 Patch0:		%{name}-misc.patch
 Patch1:		%{name}-rmjobfix.patch
+Patch2:		%{name}-getline.patch
+Patch3:		%{name}-gcc.patch
+Patch4:		%{name}-format.patch
+Patch5:		%{name}-wait.patch
 URL:		http://lpr.sourceforge.net/
 Requires(post,preun):	/sbin/chkconfig
 Requires:	rc-scripts
@@ -54,14 +58,18 @@ kabul eder.
 %setup -q
 %patch0 -p1
 %patch1 -p0
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 %{__make} \
+	CC="%{__cc}" \
 	OPT_FLAGS="%{rpmcflags}"
 
 %install
 rm -rf $RPM_BUILD_ROOT
-
 install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig},/var/lock} \
 	$RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man{1,5,8}} \
 	$RPM_BUILD_ROOT%{_fontsdir}/vfont/{B,I,R,S} \
@@ -90,25 +98,32 @@ fi
 %files
 %defattr(644,root,root,755)
 %attr(754,root,root) /etc/rc.d/init.d/lpd
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/*
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lpd
 
 %attr(4710,root,lp) %{_bindir}/lpq
 %attr(4710,root,lp) %{_bindir}/lpr
 %attr(4710,root,lp) %{_bindir}/lprm
 %attr(755,root,lp) %{_bindir}/lptest
 
-%attr(2710,root,lp)   %{_sbindir}/lpc
+%attr(2710,root,lp) %{_sbindir}/lpc
 %attr(755,root,root) %{_sbindir}/lpd
 %attr(755,root,root) %{_sbindir}/lpf
 %attr(755,root,root) %{_sbindir}/pac
 
-%{_mandir}/man[158]/*
+%{_mandir}/man1/lpq.1*
+%{_mandir}/man1/lpr.1*
+%{_mandir}/man1/lprm.1*
+%{_mandir}/man1/lptest.1*
+%{_mandir}/man5/printcap.5*
+%{_mandir}/man8/lpc.8*
+%{_mandir}/man8/lpd.8*
+%{_mandir}/man8/pac.8*
 %lang(fi) %{_mandir}/fi/man[158]/*
 %lang(fr) %{_mandir}/fr/man[158]/*
 %lang(it) %{_mandir}/it/man[158]/*
 %lang(pl) %{_mandir}/pl/man[158]/*
 %{_fontsdir}/vfont
 
-%ghost /var/lock/*
+%ghost /var/lock/lpd.lock
 %dir %attr(770,root,lp) %{_var}/spool/lpd
 %dir %attr(770,root,lp) %{_var}/spool/lpd/lp
diff --git a/lpr-format.patch b/lpr-format.patch
new file mode 100644
index 0000000..0e08555
--- /dev/null
+++ b/lpr-format.patch
@@ -0,0 +1,15 @@
+--- lpr-0.72/common_source/displayq.c.orig	2001-05-23 23:51:04.000000000 +0200
++++ lpr-0.72/common_source/displayq.c	2020-08-22 22:20:23.300468056 +0200
+@@ -273,10 +273,10 @@
+ void
+ header()
+ {
+-	printf(head0);
++	fputs(head0, stdout);
+ 	col = strlen(head0)+1;
+ 	blankfill(SIZCOL);
+-	printf(head1);
++	fputs(head1, stdout);
+ }
+ 
+ void
diff --git a/lpr-gcc.patch b/lpr-gcc.patch
new file mode 100644
index 0000000..3559d4b
--- /dev/null
+++ b/lpr-gcc.patch
@@ -0,0 +1,19 @@
+--- lpr-0.72/common_source/common.c.orig	2020-08-22 21:25:29.854976847 +0200
++++ lpr-0.72/common_source/common.c	2020-08-22 21:27:42.610924313 +0200
+@@ -188,6 +188,8 @@
+ 	return(linel);
+ }
+ 
++static int compar(register struct queue **p1, register struct queue **p2);
++
+ /*
+  * Scan the current directory and make a list of daemon files sorted by
+  * creation time.
+@@ -203,7 +205,6 @@
+ 	struct stat stbuf;
+ 	DIR *dirp;
+ 	int arraysz;
+-	static int compar();
+ 
+ 	if ((dirp = opendir(SD)) == NULL)
+ 		return(-1);
diff --git a/lpr-getline.patch b/lpr-getline.patch
new file mode 100644
index 0000000..670f7f7
--- /dev/null
+++ b/lpr-getline.patch
@@ -0,0 +1,147 @@
+--- lpr-0.72/common_source/protos.h.orig	2001-05-23 23:51:04.000000000 +0200
++++ lpr-0.72/common_source/protos.h	2020-08-22 21:22:04.236090780 +0200
+@@ -44,7 +44,7 @@
+ 
+ void fatal(const char *msg, ...);
+ int getport(char *rhost, int rport);
+-int getline(FILE *cfp);
++int lpr_getline(FILE *cfp);
+ int getq(struct queue *(*namelist[]));
+ char *checkremote(void);
+ int checkfromremote(char *fromhost);
+--- lpr-0.72/common_source/common.c.orig	2001-05-23 23:51:04.000000000 +0200
++++ lpr-0.72/common_source/common.c	2020-08-22 21:25:29.854976847 +0200
+@@ -164,7 +164,7 @@
+  * Returns 0 at EOF or the number of characters read.
+  */
+ int
+-getline(cfp)
++lpr_getline(cfp)
+ 	FILE *cfp;
+ {
+ 	register int linel = 0;
+--- lpr-0.72/common_source/displayq.c.orig	2020-08-22 22:20:23.300468056 +0200
++++ lpr-0.72/common_source/displayq.c	2020-08-22 22:20:34.857072115 +0200
+@@ -300,7 +300,7 @@
+ 	if (sendtorem || garbage || strcmp(cf, current))
+ 		rank++;
+ 	j = 0;
+-	while (getline(cfp)) {
++	while (lpr_getline(cfp)) {
+ 		switch (line[0]) {
+ 		case 'P': /* Was this file specified in the user's list? */
+ 			if (!inlist(line+1, cf)) {
+--- lpr-0.72/common_source/rmjob.c.orig	2020-08-22 22:21:05.806904445 +0200
++++ lpr-0.72/common_source/rmjob.c	2020-08-22 22:24:15.799208502 +0200
+@@ -156,7 +156,7 @@
+ 			return(0);
+ 	}
+ 	seteuid(uid);
+-	if (!getline(fp)) {
++	if (!lpr_getline(fp)) {
+ 		(void) fclose(fp);
+ 		return(0);		/* no daemon present */
+ 	}
+@@ -194,7 +194,7 @@
+ 	if ((cfp = fopen(file, "r")) == NULL)
+ 		fatal("cannot open %s", file);
+ 	seteuid(uid);
+-	while (getline(cfp)) {
++	while (lpr_getline(cfp)) {
+ 		switch (line[0]) {
+ 		case 'P':
+ 			strncpy(logname, line+1, sizeof(logname)-1);
+@@ -250,7 +250,7 @@
+ 	if ((cfp = fopen(file, "r")) == NULL)
+ 		return(0);
+ 	seteuid(uid);
+-	while (getline(cfp)) {
++	while (lpr_getline(cfp)) {
+ 		if (line[0] == 'P') {
+ 			strncpy(p, line+1, sizeof(p)-1);
+ 			p[sizeof(p)-1] = '\0';
+--- lpr-0.72/lpc/cmds.c.orig	2001-05-17 23:53:46.000000000 +0200
++++ lpr-0.72/lpc/cmds.c	2020-08-22 22:33:56.136064547 +0200
+@@ -148,7 +148,7 @@
+ 		seteuid(uid);
+ 		return;
+ 	}
+-	if (!getline(fp) || flock(fileno(fp), LOCK_SH|LOCK_NB) == 0) {
++	if (!lpr_getline(fp) || flock(fileno(fp), LOCK_SH|LOCK_NB) == 0) {
+ 		(void) fclose(fp);	/* unlocks as well */
+ 		printf("\tno daemon to abort\n");
+ 		seteuid(uid);
+@@ -1047,7 +1047,7 @@
+ 		seteuid(uid);
+ 		if (fp == NULL)
+ 			continue;
+-		while (getline(fp) > 0)
++		while (lpr_getline(fp) > 0)
+ 			if (line[0] == 'P')
+ 				break;
+ 		(void) fclose(fp);
+--- lpr-0.72/lpd/printjob.c.orig	2001-05-17 23:53:46.000000000 +0200
++++ lpr-0.72/lpd/printjob.c	2020-08-22 22:38:40.111192789 +0200
+@@ -366,7 +366,7 @@
+ 	/* pass 0 */
+ 	/* Henri Gomez <gomez at slib.fr> 19991104 */
+ 	/* Pre scan to get the Z flags (RFC Filter Extension) */
+-	while (getline(cfp))
++	while (lpr_getline(cfp))
+ 		switch (line[0]) {
+         case 'Z':
+             if (line[1] != '\0') {
+@@ -388,7 +388,7 @@
+ 
+ 	/* pass 1 */
+ 
+-	while (getline(cfp))
++	while (lpr_getline(cfp))
+ 		switch (line[0]) {
+ 		case 'H':
+ 			strncpy(fromhost, line+1, sizeof(fromhost) - 1);
+@@ -535,7 +535,7 @@
+ 
+ pass2:
+ 	fseek(cfp, 0L, 0);
+-	while (getline(cfp))
++	while (lpr_getline(cfp))
+ 		switch (line[0]) {
+ 		case 'L':	/* identification line */
+ 			if (!SH && HL)
+@@ -920,7 +920,7 @@
+ 	/* pass 0 */
+ 	/* Henri Gomez <gomez at slib.fr> 19991104 */
+ 	/* Pre scan to get the Z flags (RFC Filter Extension) */
+-	while (getline(cfp))
++	while (lpr_getline(cfp))
+ 	  switch (line[0]) {
+ 	  case 'E':
+ 	    /* ignore too many options */
+@@ -935,7 +935,7 @@
+ 	/*
+ 	 * pass 1
+ 	 */
+-	while (getline(cfp)) {
++	while (lpr_getline(cfp)) {
+ 	again:
+ 	         if (line[0] == 'S') {
+ 		        if (dup_cfp)
+@@ -999,7 +999,7 @@
+ 
+ 		        strcpy(last, line);
+ 			/* handle multiple copies */
+-                       while ((i = getline(cfp))) {
++                       while ((i = lpr_getline(cfp))) {
+                          if (dup_cfp)
+                            fprintf(dup_cfp, "%s\n", line);
+ 				if (strcmp(last, line))
+@@ -1172,7 +1172,7 @@
+ 		return(OK);
+ 	}
+ 
+-	while (getline(cfp))
++	while (lpr_getline(cfp))
+ 		if (line[0] == 'U' && strchr(line+1, '/') == NULL)
+ 			(void) unlinkfile(line+1, from, logname);
+ 	/*
diff --git a/lpr-misc.patch b/lpr-misc.patch
index a946b89..94b9d5a 100644
--- a/lpr-misc.patch
+++ b/lpr-misc.patch
@@ -26,7 +26,7 @@ diff -Nur lpr-0.33/common_source/pathnames.h lpr-0.33.pld/common_source/pathname
  
 -CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
 -LDFLAGS	= 
-+CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
 +LDFLAGS	= -s
  LDLIBS = -lcommon -L ../common_source # -lbsd
  
@@ -37,7 +37,7 @@ diff -Nur lpr-0.33/common_source/pathnames.h lpr-0.33.pld/common_source/pathname
  
 -CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
 -LDFLAGS	= 
-+CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
 +LDFLAGS	= -s
  LDLIBS = -lcommon -L ../common_source # -lbsd
  
@@ -48,7 +48,7 @@ diff -Nur lpr-0.33/common_source/pathnames.h lpr-0.33.pld/common_source/pathname
  
 -CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
 -LDFLAGS	= 
-+CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
 +LDFLAGS	= -s
  LDLIBS = -lcommon -L ../common_source # -lbsd
  
@@ -59,7 +59,7 @@ diff -Nur lpr-0.33/common_source/pathnames.h lpr-0.33.pld/common_source/pathname
  
 -CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
 -LDFLAGS	= 
-+CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
 +LDFLAGS	= -s
  LDLIBS = -lcommon -L ../common_source # -lbsd
  
@@ -70,7 +70,7 @@ diff -Nur lpr-0.33/common_source/pathnames.h lpr-0.33.pld/common_source/pathname
  
 -CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
 -LDFLAGS	= 
-+CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
 +LDFLAGS	= -s
  LDLIBS = -lcommon -L ../common_source # -lbsd
  
@@ -83,9 +83,45 @@ diff -Nur lpr-0.33/common_source/pathnames.h lpr-0.33.pld/common_source/pathname
  
 -CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
 -LDFLAGS	= 
-+CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
 +LDFLAGS	= -s
 +MANDIR = /usr/share/man
  LDLIBS = -lcommon -L ../common_source # -lbsd
  
  SUBDIRS	= common_source filters lpc lpd lpq lpr lprm lptest pac
+--- lpr-0.72/common_source/Makefile.orig	2001-05-23 23:51:04.000000000 +0200
++++ lpr-0.72/common_source/Makefile	2020-08-22 21:18:13.220675632 +0200
+@@ -1,5 +1,5 @@
+ 
+-CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
+ LDFLAGS	= 
+ LDLIBS = -lcommon -L ../common_source # -lbsd
+ 
+--- lpr-0.72/filters/Makefile.orig	2001-05-17 23:53:46.000000000 +0200
++++ lpr-0.72/filters/Makefile	2020-08-22 22:27:43.974747385 +0200
+@@ -1,5 +1,5 @@
+ 
+-CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
+ LDFLAGS	= 
+ LDLIBS = -lcommon -L ../common_source # -lbsd
+ 
+--- lpr-0.72/lpc/Makefile.orig	2001-05-17 23:53:46.000000000 +0200
++++ lpr-0.72/lpc/Makefile	2020-08-22 22:31:19.033582311 +0200
+@@ -1,5 +1,5 @@
+ 
+-CFLAGS= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS= -Wall $(OPT_FLAGS) -I../common_source
+ LDFLAGS= 
+ LDLIBS= -lcommon -L ../common_source # -lbsd
+ 
+--- lpr-0.72/lpd/Makefile.orig	2001-05-17 23:53:46.000000000 +0200
++++ lpr-0.72/lpd/Makefile	2020-08-22 22:37:46.854814637 +0200
+@@ -1,5 +1,5 @@
+ 
+-CFLAGS	= -Wall $(RPM_OPT_FLAGS) -I../common_source -I/usr/include/bsd
++CFLAGS	= -Wall $(OPT_FLAGS) -I../common_source
+ LDFLAGS	= 
+ LDLIBS = -L ../common_source -lcommon 
+ 
diff --git a/lpr-wait.patch b/lpr-wait.patch
new file mode 100644
index 0000000..bb939c6
--- /dev/null
+++ b/lpr-wait.patch
@@ -0,0 +1,60 @@
+--- lpr-0.72/lpd/printjob.c.orig	2020-08-22 22:38:56.591103509 +0200
++++ lpr-0.72/lpd/printjob.c	2020-08-22 23:34:38.119667564 +0200
+@@ -582,7 +582,7 @@
+ 	FILE *fp;
+ 	char *av[15], buf[BUFSIZ];
+ 	int pid, p[2], stopped = 0;
+-	union wait status;
++	int status;
+ 	struct stat stb;
+         char *optspace;
+         int optlen;
+@@ -751,12 +751,12 @@
+ 	fo = pfd;
+ 	if (ofilter > 0) {		/* stop output filter */
+ 		write(ofd, "\031\1", 2);
+-		while ((pid=wait3((int *)&status, WUNTRACED, 0)) > 0 && pid != ofilter);
++		while ((pid=wait3(status, WUNTRACED, 0)) > 0 && pid != ofilter);
+ 		if (!WIFSTOPPED(status)) {
+ 			(void) close(fi);
+ 			syslog(LOG_WARNING,
+ 				"%s: output filter died (retcode=%d termsig=%d)",
+-				printer, status.w_retcode, status.w_termsig);
++				printer, WEXITSTATUS(status), WTERMSIG(status));
+ 			return(REPRINT);
+ 		}
+ 		stopped++;
+@@ -809,9 +809,9 @@
+ 	}
+ 	(void) close(fi);
+ 	if (child < 0)
+-		status.w_retcode = 100;
++		status = W_EXITCODE(100, WTERMSIG(status));
+ 	else
+-		while ((pid = wait((int *)&status)) > 0 && pid != child)
++		while ((pid = wait(status)) > 0 && pid != child)
+ 			;
+ 	child = 0;
+ 	prchild = 0;
+@@ -832,10 +832,10 @@
+ 
+ 	if (!WIFEXITED(status)) {
+ 		syslog(LOG_WARNING, "%s: filter '%c' terminated (termsig=%d)",
+-			printer, format, status.w_termsig);
++			printer, format, WTERMSIG(status));
+ 		return(ERROR);
+ 	}
+-	switch (status.w_retcode) {
++	switch (WEXITSTATUS(status)) {
+ 	case 0:
+ 		tof = 1;
+ 		return(OK);
+@@ -845,7 +845,7 @@
+ 		return(ERROR);
+ 	default:
+ 		syslog(LOG_WARNING, "%s: filter '%c' exited (retcode=%d)",
+-			printer, format, status.w_retcode);
++			printer, format, WEXITSTATUS(status));
+ 		return(FILTERERR);
+ 	}
+ }
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/lpr.git/commitdiff/f90685e92a8731dd56c5c4215114821ce61522ad



More information about the pld-cvs-commit mailing list