package/cups: Un-deprecate, and update CUPS to 2.1.2
authorOlivier Schonken <olivier.schonken@gmail.com>
Wed, 20 Jan 2016 22:17:43 +0000 (00:17 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 21 Jan 2016 22:37:01 +0000 (23:37 +0100)
 - 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.

Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com>
[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 <thomas.petazzoni@free-electrons.com>
Config.in.legacy
package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch [new file with mode: 0644]
package/cups/0001-fix-static.patch [deleted file]
package/cups/0002-Do-not-use-genstrings.patch [new file with mode: 0644]
package/cups/0002-fix-stack-protector-check.patch [deleted file]
package/cups/0003-Sanitize-the-installation-process.patch [new file with mode: 0644]
package/cups/0003-mantohtml.patch [deleted file]
package/cups/Config.in
package/cups/cups.hash [new file with mode: 0644]
package/cups/cups.mk

index 9111c01a7d00bbc7c46dc8343d9f3f3200cc9405..793b11619c7633b806b6b4a6c7426cd8f8bfe3fb 100644 (file)
@@ -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 (file)
index 0000000..c0e87a4
--- /dev/null
@@ -0,0 +1,29 @@
+From a77bb18a5584bb23687ed3c522dbd91a9987d5a7 Mon Sep 17 00:00:00 2001
+From: Olivier Schonken <olivier.schonken@gmail.com>
+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 <olivier.schonken@gmail.com>
+---
+ 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 (file)
index 4c9d0d4..0000000
+++ /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 <Vincent.Riera@imgtec.com>
---- 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 (file)
index 0000000..325483e
--- /dev/null
@@ -0,0 +1,36 @@
+From 193c8d8c55a3478ca5c9e161ce581e5794098c6d Mon Sep 17 00:00:00 2001
+From: Olivier Schonken <olivier.schonken@gmail.com>
+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 <olivier.schonken@gmail.com>
+[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 <thomas.petazzoni@free-electrons.com>
+---
+ 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 (file)
index 1db35ff..0000000
+++ /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 <jacmet@sunsite.dk>
----
- 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 (file)
index 0000000..25bfa42
--- /dev/null
@@ -0,0 +1,131 @@
+From e35f809c435c224954a5c7bff3f5729c5b3bc0ba Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+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 <thomas.petazzoni@free-electrons.com>
+---
+ 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 (file)
index e6a10b0..0000000
+++ /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
- #
index 8e6022146989ef038ec7c3c3d83709f46e83d760..3f5460c11bfa5d986fe1395c7262c8aa402e26cb 100644 (file)
@@ -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 (file)
index 0000000..f38399f
--- /dev/null
@@ -0,0 +1,2 @@
+# Locally calculated:
+sha256 bab0ca3ba80eae48319b3a6b19a5b14fad5ce230f30151a0cfa4c0271df281ad  cups-2.1.2-source.tar.bz2
index c028ef49a321051831fbfad5d23227fd326213b6..c07dcb4640252ae106a85c3d1abea945bc943fe2 100644 (file)
@@ -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))