package/cups: Un-deprecate, and update CUPS to 2.1.2

- 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>
This commit is contained in:
Olivier Schonken 2016-01-21 00:17:43 +02:00 committed by Thomas Petazzoni
parent 837de1793a
commit d37ce8e1a4
10 changed files with 240 additions and 95 deletions

View 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

View File

@ -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

View File

@ -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@

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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
#

View 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

2
package/cups/cups.hash Normal file
View File

@ -0,0 +1,2 @@
# Locally calculated:
sha256 bab0ca3ba80eae48319b3a6b19a5b14fad5ce230f30151a0cfa4c0271df281ad cups-2.1.2-source.tar.bz2

View 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))