From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Sat, 23 Jan 2016 17:24:56 +0100 Subject: [Buildroot] [git commit] package/cups: Un-deprecate, and update CUPS to 2.1.2 In-Reply-To: <20160121223830.DD957803E9@busybox.osuosl.org> References: <20160121223830.DD957803E9@busybox.osuosl.org> Message-ID: <20160123162456.GB3363@free.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Olivier, Thomas, All, On 2016-01-21 23:37 +0100, Thomas Petazzoni spake thusly: > commit: http://git.buildroot.net/buildroot/commit/?id=d37ce8e1a4edc9a06831e6b0842996866534b1ea > branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master > > - Remove 0001-fix-static.patch - Fixed upstream > - Remove 0002-fix-stack-protector-check.patch - Fixed upstream > - Remove 0003-mantohtml.patch - Replaced by > 0001-Remove-man-from-BUILDDIRS-in- configure.patch > - Add 0002-Do-not-use-genstrings.patch > - Add CUPS_PDFTOPS option to Config.in.legacy - This support was > moved to the cups-filters package. This is causing circular dependencies in make: make[1]: Circular cups-all-source <- avahi-all-source dependency dropped. I'm investigating (simply enabling cups and avahi is not enough to trigger the issue, maybe there's a package in-between htat causes the circular dep...). Regards, Yann E. MORIN. > Signed-off-by: Olivier Schonken > [Thomas: > - rewrap patch description in patch 0001 > - adjust patch 0002 to completely remove the call to genstrings > instead of commenting it, and remove the potentially confusing > 'echo' above it > - add a third patch that sanitizes the installation process to avoid > non-working stripping, owernship changes, etc.] > Signed-off-by: Thomas Petazzoni > --- > Config.in.legacy | 7 ++ > ...01-Remove-man-from-BUILDDIRS-in-configure.patch | 29 +++++ > package/cups/0001-fix-static.patch | 28 ----- > package/cups/0002-Do-not-use-genstrings.patch | 36 ++++++ > package/cups/0002-fix-stack-protector-check.patch | 25 ---- > .../0003-Sanitize-the-installation-process.patch | 131 +++++++++++++++++++++ > package/cups/0003-mantohtml.patch | 11 -- > package/cups/Config.in | 16 +-- > package/cups/cups.hash | 2 + > package/cups/cups.mk | 50 +++++--- > 10 files changed, 240 insertions(+), 95 deletions(-) > > diff --git a/Config.in.legacy b/Config.in.legacy > index 9111c01..793b116 100644 > --- a/Config.in.legacy > +++ b/Config.in.legacy > @@ -145,6 +145,13 @@ endif > ############################################################################### > comment "Legacy options removed in 2016.02" > > +config BR2_PACKAGE_CUPS_PDFTOPS > + bool "Pdftops support has been removed from Cups" > + select BR2_LEGACY > + help > + Pdftops support has been removed from the cups package > + It is now part of the cups-filters package. > + > config BR2_KERNEL_HEADERS_3_16 > bool "kernel headers version 3.16.x are no longer supported" > select BR2_KERNEL_HEADERS_3_18 > diff --git a/package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch b/package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch > new file mode 100644 > index 0000000..c0e87a4 > --- /dev/null > +++ b/package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch > @@ -0,0 +1,29 @@ > +From a77bb18a5584bb23687ed3c522dbd91a9987d5a7 Mon Sep 17 00:00:00 2001 > +From: Olivier Schonken > +Date: Wed, 20 Jan 2016 22:13:11 +0200 > +Subject: [PATCH] Remove man from BUILDDIRS in configure > + > +Since cups doesn't autoreconf properly, we directly patch the > +configure script. > + > +Signed-off-by: Olivier Schonken > +--- > + configure | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/configure b/configure > +index 4170ff3..3879a75 100755 > +--- a/configure > ++++ b/configure > +@@ -5921,7 +5921,7 @@ fi > + > + case "$COMPONENTS" in > + all) > +- BUILDDIRS="filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates" > ++ BUILDDIRS="filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale doc examples templates" > + ;; > + > + core) > +-- > +2.5.0 > + > diff --git a/package/cups/0001-fix-static.patch b/package/cups/0001-fix-static.patch > deleted file mode 100644 > index 4c9d0d4..0000000 > --- a/package/cups/0001-fix-static.patch > +++ /dev/null > @@ -1,28 +0,0 @@ > -cups: fix static linking > - > -Append -lz to the cups linking libs to fix a problem like this one: > - > -../cups/libcups.a(file.o): In function `cupsFileSeek': > -/home/test/test/1/output/build/cups-1.3.11/cups/file.c:1444: undefined > -reference to `inflateEnd' > -collect2: error: ld returned 1 exit status > -make[2]: *** [ipp] Error 1 > -make[2]: *** Waiting for unfinished jobs.... > - > -This solution is the same used upstream in newer versions. > - > -Fixes: > - http://autobuild.buildroot.net/results/f3d/f3d4f67ce7ee1d54f5bd4c87dfddb7417db614e5/ > - > -Signed-off-by: Vicente Olivert Riera > ---- cups-1.3.11/Makedefs.in.orig 2014-03-05 13:28:10.175437880 +0000 > -+++ cups-1.3.11/Makedefs.in 2014-03-05 13:28:35.398845162 +0000 > -@@ -132,7 +132,7 @@ LDFLAGS = -L../cups -L../filter @LDARCH > - LEGACY_BACKENDS = @LEGACY_BACKENDS@ > - LIBCUPSORDER = @LIBCUPSORDER@ > - LIBCUPSIMAGEORDER = @LIBCUPSIMAGEORDER@ > --LINKCUPS = @LINKCUPS@ $(SSLLIBS) > -+LINKCUPS = @LINKCUPS@ $(SSLLIBS) $(LIBZ) > - LINKCUPSIMAGE = @LINKCUPSIMAGE@ > - LIBS = $(LINKCUPS) $(COMMONLIBS) > - OPTIM = @OPTIM@ > diff --git a/package/cups/0002-Do-not-use-genstrings.patch b/package/cups/0002-Do-not-use-genstrings.patch > new file mode 100644 > index 0000000..325483e > --- /dev/null > +++ b/package/cups/0002-Do-not-use-genstrings.patch > @@ -0,0 +1,36 @@ > +From 193c8d8c55a3478ca5c9e161ce581e5794098c6d Mon Sep 17 00:00:00 2001 > +From: Olivier Schonken > +Date: Thu, 21 Jan 2016 23:04:49 +0100 > +Subject: [PATCH] Do not use genstrings > + > +Using cross compiled genstrings while cross-compiling will break > +compilation. Genstrings is still compiled because some power users > +might want to do ppd compilation on their target machine, and for that > +they would need to use the native compiled genstrings binary, to > +generate a sample.c file for their target > + > +Signed-off-by: Olivier Schonken > +[Thomas: completely remove call to genstrings rather than commenting > +it, remove useless and potentially confusing 'echo' before the > +genstrings call.] > +Signed-off-by: Thomas Petazzoni > +--- > + ppdc/Makefile | 2 -- > + 1 file changed, 2 deletions(-) > + > +diff --git a/ppdc/Makefile b/ppdc/Makefile > +index 68bf6b2..d57a0c9 100644 > +--- a/ppdc/Makefile > ++++ b/ppdc/Makefile > +@@ -242,8 +242,6 @@ genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \ > + $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \ > + libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \ > + $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) > +- echo Generating localization strings... > +- ./genstrings >sample.c > + > + > + # > +-- > +2.6.4 > + > diff --git a/package/cups/0002-fix-stack-protector-check.patch b/package/cups/0002-fix-stack-protector-check.patch > deleted file mode 100644 > index 1db35ff..0000000 > --- a/package/cups/0002-fix-stack-protector-check.patch > +++ /dev/null > @@ -1,25 +0,0 @@ > -[PATCH]: use AC_TRY_LINK for stack protector check > - > -Actually try to link an executable to test for stack protector support, > -as gcc seems to accept the -fstack-protector argument even when it's > -compiled with --disable-libssp (but linking fails with a error > -finding -lssp_nonshared). > - > -Signed-off-by: Peter Korsgaard > ---- > - config-scripts/cups-compiler.m4 | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -Index: cups-1.3.9/config-scripts/cups-compiler.m4 > -=================================================================== > ---- cups-1.3.9.orig/config-scripts/cups-compiler.m4 > -+++ cups-1.3.9/config-scripts/cups-compiler.m4 > -@@ -109,7 +109,7 @@ if test -n "$GCC"; then > - AC_MSG_CHECKING(if GCC supports -fstack-protector) > - OLDCFLAGS="$CFLAGS" > - CFLAGS="$CFLAGS -fstack-protector" > -- AC_TRY_COMPILE(,, > -+ AC_TRY_LINK(,, > - OPTIM="$OPTIM -fstack-protector" > - AC_MSG_RESULT(yes), > - AC_MSG_RESULT(no)) > diff --git a/package/cups/0003-Sanitize-the-installation-process.patch b/package/cups/0003-Sanitize-the-installation-process.patch > new file mode 100644 > index 0000000..25bfa42 > --- /dev/null > +++ b/package/cups/0003-Sanitize-the-installation-process.patch > @@ -0,0 +1,131 @@ > +From e35f809c435c224954a5c7bff3f5729c5b3bc0ba Mon Sep 17 00:00:00 2001 > +From: Thomas Petazzoni > +Date: Thu, 21 Jan 2016 23:21:06 +0100 > +Subject: [PATCH] Sanitize the installation process > + > +The installation process does two things that are not convenient when > +cross-compiling: > + > + - It uses install's -s option to strip binaries, but this option uses > + the host strip and not the cross strip, which fails at stripping > + binaries. In addition, we do not necessarily want cups to strip its > + binaries, we may want to keep the debugging symbols. > + > + - It enforces ownership (user, group) which isn't possible since > + "make install" isn't executed as root when cross-compiling. > + > + - It installs many files and directories with permissions that > + prevent overwriting those files/directories, which meant calling > + "make install" twice was failing. > + > +Signed-off-by: Thomas Petazzoni > +--- > + Makedefs.in | 12 ++++++------ > + conf/Makefile | 6 +++--- > + notifier/Makefile | 2 +- > + scheduler/Makefile | 17 ++++++++--------- > + 4 files changed, 18 insertions(+), 19 deletions(-) > + > +diff --git a/Makedefs.in b/Makedefs.in > +index 3afef0a..3e4f1bd 100644 > +--- a/Makedefs.in > ++++ b/Makedefs.in > +@@ -40,14 +40,14 @@ SHELL = /bin/sh > + # Installation programs... > + # > + > +-INSTALL_BIN = $(LIBTOOL) $(INSTALL) -c -m 555 @INSTALL_STRIP@ > +-INSTALL_COMPDATA = $(INSTALL) -c -m 444 @INSTALL_GZIP@ > ++INSTALL_BIN = $(LIBTOOL) $(INSTALL) -c -m 755 > ++INSTALL_COMPDATA = $(INSTALL) -c -m 644 @INSTALL_GZIP@ > + INSTALL_CONFIG = $(INSTALL) -c -m @CUPS_CONFIG_FILE_PERM@ > +-INSTALL_DATA = $(INSTALL) -c -m 444 > ++INSTALL_DATA = $(INSTALL) -c -m 644 > + INSTALL_DIR = $(INSTALL) -d > +-INSTALL_LIB = $(LIBTOOL) $(INSTALL) -c -m 555 @INSTALL_STRIP@ > +-INSTALL_MAN = $(INSTALL) -c -m 444 > +-INSTALL_SCRIPT = $(INSTALL) -c -m 555 > ++INSTALL_LIB = $(LIBTOOL) $(INSTALL) -c -m 755 > ++INSTALL_MAN = $(INSTALL) -c -m 644 > ++INSTALL_SCRIPT = $(INSTALL) -c -m 755 > + > + # > + # Default user, group, and system groups for the scheduler... > +diff --git a/conf/Makefile b/conf/Makefile > +index 933d7d9..6ac5e19 100644 > +--- a/conf/Makefile > ++++ b/conf/Makefile > +@@ -72,11 +72,11 @@ install: all install-data install-headers install-libs install-exec > + install-data: > + for file in $(KEEP); do \ > + if test -r $(SERVERROOT)/$$file ; then \ > +- $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.N ; \ > ++ $(INSTALL_CONFIG) $$file $(SERVERROOT)/$$file.N ; \ > + else \ > +- $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT) ; \ > ++ $(INSTALL_CONFIG) $$file $(SERVERROOT) ; \ > + fi ; \ > +- $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.default; \ > ++ $(INSTALL_CONFIG) $$file $(SERVERROOT)/$$file.default; \ > + done > + $(INSTALL_DIR) -m 755 $(DATADIR)/mime > + for file in $(REPLACE); do \ > +diff --git a/notifier/Makefile b/notifier/Makefile > +index 3206dd0..c34a4d7 100644 > +--- a/notifier/Makefile > ++++ b/notifier/Makefile > +@@ -62,7 +62,7 @@ install: all install-data install-headers install-libs install-exec > + # > + > + install-data: > +- $(INSTALL_DIR) -m 775 -g $(CUPS_GROUP) $(CACHEDIR)/rss > ++ $(INSTALL_DIR) -m 775 $(CACHEDIR)/rss > + > + > + # > +diff --git a/scheduler/Makefile b/scheduler/Makefile > +index c7d244d..a96a528 100644 > +--- a/scheduler/Makefile > ++++ b/scheduler/Makefile > +@@ -148,30 +148,29 @@ install-data: > + echo Creating $(SERVERBIN)/driver... > + $(INSTALL_DIR) -m 755 $(SERVERBIN)/driver > + echo Creating $(SERVERROOT)... > +- $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT) > ++ $(INSTALL_DIR) -m 755 $(SERVERROOT) > + echo Creating $(SERVERROOT)/interfaces... > +- $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)/interfaces > ++ $(INSTALL_DIR) -m 755 $(SERVERROOT)/interfaces > + echo Creating $(SERVERROOT)/ppd... > +- $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)/ppd > ++ $(INSTALL_DIR) -m 755 $(SERVERROOT)/ppd > + if test "x`uname`" != xDarwin; then \ > + echo Creating $(SERVERROOT)/ssl...; \ > +- $(INSTALL_DIR) -m 700 -g $(CUPS_GROUP) $(SERVERROOT)/ssl; \ > ++ $(INSTALL_DIR) -m 700 $(SERVERROOT)/ssl; \ > + fi > + if test "$(STATEDIR)" != "$(SERVERROOT)"; then \ > + echo Creating $(STATEDIR)...; \ > + $(INSTALL_DIR) -m 755 $(STATEDIR); \ > + fi > + echo Creating $(STATEDIR)/certs... > +- $(INSTALL_DIR) -m 511 -o $(CUPS_USER) -g $(CUPS_PRIMARY_SYSTEM_GROUP) \ > +- $(STATEDIR)/certs > ++ $(INSTALL_DIR) -m 711 $(STATEDIR)/certs > + echo Creating $(LOGDIR)... > + $(INSTALL_DIR) -m 755 $(LOGDIR) > + echo Creating $(REQUESTS)... > +- $(INSTALL_DIR) -m 710 -g $(CUPS_GROUP) $(REQUESTS) > ++ $(INSTALL_DIR) -m 710 $(REQUESTS) > + echo Creating $(REQUESTS)/tmp... > +- $(INSTALL_DIR) -m 1770 -g $(CUPS_GROUP) $(REQUESTS)/tmp > ++ $(INSTALL_DIR) -m 1770 $(REQUESTS)/tmp > + echo Creating $(CACHEDIR)... > +- $(INSTALL_DIR) -m 770 -g $(CUPS_GROUP) $(CACHEDIR) > ++ $(INSTALL_DIR) -m 770 $(CACHEDIR) > + if test "x$(INITDIR)" != x; then \ > + echo Installing init scripts...; \ > + $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/init.d; \ > +-- > +2.6.4 > + > diff --git a/package/cups/0003-mantohtml.patch b/package/cups/0003-mantohtml.patch > deleted file mode 100644 > index e6a10b0..0000000 > --- a/package/cups/0003-mantohtml.patch > +++ /dev/null > @@ -1,11 +0,0 @@ > ---- cups-1.3.5/man/Makefile 2007-07-12 21:01:14.000000000 -0400 > -+++ cups-1.3.5/man/Makefile 2008-02-11 08:55:24.000000000 -0500 > -@@ -173,7 +173,7 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) ma > - done > - > - mantohtml: mantohtml.o > -- $(CC) $(LDFLAGS) -o $@ mantohtml.o > -+ gcc -I/usr/include -I../ -L/usr/lib mantohtml.c -o mantohtml > - > - > - # > diff --git a/package/cups/Config.in b/package/cups/Config.in > index 8e60221..3f5460c 100644 > --- a/package/cups/Config.in > +++ b/package/cups/Config.in > @@ -1,7 +1,7 @@ > config BR2_PACKAGE_CUPS > bool "cups" > - # serious security issues, needs upgrading > - depends on BR2_DEPRECATED_SINCE_2015_05 > + # needs libstdcpp for ppdc > + depends on BR2_INSTALL_LIBSTDCPP > # needs fork() > depends on BR2_USE_MMU > help > @@ -9,15 +9,5 @@ config BR2_PACKAGE_CUPS > > http://www.cups.org > > -if BR2_PACKAGE_CUPS > - > -config BR2_PACKAGE_CUPS_PDFTOPS > - bool "pdftops support" > - depends on BR2_INSTALL_LIBSTDCPP > - help > - Enable pdftops support > - > -comment "pdftops support needs a toolchain w/ C++" > +comment "cups needs a toolchain w/ C++" > depends on !BR2_INSTALL_LIBSTDCPP > - > -endif > diff --git a/package/cups/cups.hash b/package/cups/cups.hash > new file mode 100644 > index 0000000..f38399f > --- /dev/null > +++ b/package/cups/cups.hash > @@ -0,0 +1,2 @@ > +# Locally calculated: > +sha256 bab0ca3ba80eae48319b3a6b19a5b14fad5ce230f30151a0cfa4c0271df281ad cups-2.1.2-source.tar.bz2 > diff --git a/package/cups/cups.mk b/package/cups/cups.mk > index c028ef4..c07dcb4 100644 > --- a/package/cups/cups.mk > +++ b/package/cups/cups.mk > @@ -4,7 +4,7 @@ > # > ################################################################################ > > -CUPS_VERSION = 1.3.11 > +CUPS_VERSION = 2.1.2 > CUPS_SOURCE = cups-$(CUPS_VERSION)-source.tar.bz2 > CUPS_SITE = http://www.cups.org/software/$(CUPS_VERSION) > CUPS_LICENSE = GPLv2 LGPLv2 > @@ -12,20 +12,24 @@ CUPS_LICENSE_FILES = LICENSE.txt > CUPS_INSTALL_STAGING = YES > CUPS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) DSTROOT=$(STAGING_DIR) install > CUPS_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) DSTROOT=$(TARGET_DIR) install > + > CUPS_CONF_OPTS = \ > --without-perl \ > --without-java \ > --without-php \ > - --disable-gnutls \ > --disable-gssapi \ > --libdir=/usr/lib > CUPS_CONFIG_SCRIPTS = cups-config > - > CUPS_DEPENDENCIES = \ > - $(if $(BR2_PACKAGE_ZLIB),zlib) \ > - $(if $(BR2_PACKAGE_LIBPNG),libpng) \ > - $(if $(BR2_PACKAGE_JPEG),jpeg) \ > - $(if $(BR2_PACKAGE_TIFF),tiff) > + $(if $(BR2_PACKAGE_ZLIB),zlib) > + > +ifeq ($(BR2_PACKAGE_SYSTEMD),y) > +CUPS_CONF_OPTS += --with-systemd=/usr/lib/systemd/system \ > + --enable-systemd > +CUPS_DEPENDENCIES += systemd > +else > +CUPS_CONF_OPTS += --disable-systemd > +endif > > ifeq ($(BR2_PACKAGE_DBUS),y) > CUPS_CONF_OPTS += --enable-dbus > @@ -34,8 +38,11 @@ else > CUPS_CONF_OPTS += --disable-dbus > endif > > -ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) > -CUPS_DEPENDENCIES += xlib_libX11 > +ifeq ($(BR2_PACKAGE_GNUTLS),y) > +CUPS_CONF_OPTS += --enable-gnutls > +CUPS_DEPENDENCIES += gnutls > +else > +CUPS_CONF_OPTS += --disable-gnutls > endif > > ifeq ($(BR2_PACKAGE_PYTHON),y) > @@ -45,18 +52,25 @@ else > CUPS_CONF_OPTS += --without-python > endif > > -ifeq ($(BR2_PACKAGE_CUPS_PDFTOPS),y) > -CUPS_CONF_OPTS += --enable-pdftops > +ifeq ($(BR2_PACKAGE_LIBUSB),y) > +CUPS_CONF_OPTS += --enable-libusb > +CUPS_DEPENDENCIES += libusb > else > -CUPS_CONF_OPTS += --disable-pdftops > +CUPS_CONF_OPTS += --disable-libusb > endif > > -# standard autoreconf fails with autoheader failures > -define CUPS_FIXUP_AUTOCONF > - cd $(@D) && $(AUTOCONF) > -endef > -CUPS_DEPENDENCIES += host-autoconf > +ifeq ($(BR2_PACKAGE_LIBPAPER),y) > +CUPS_CONF_OPTS += --enable-libpaper > +CUPS_DEPENDENCIES += libpaper > +else > +CUPS_CONF_OPTS += --disable-libpaper > +endif > > -CUPS_PRE_CONFIGURE_HOOKS += CUPS_FIXUP_AUTOCONF > +ifeq ($(BR2_PACKAGE_AVAHI),y) > +CUPS_DEPENDENCIES += avahi > +CUPS_CONF_OPTS += --enable-avahi > +else > +CUPS_CONF_OPTS += --disable-avahi > +endif > > $(eval $(autotools-package)) > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'