mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH v2 5/7] cups: new package: Common Unix Printing System
Date: Sat, 30 Sep 2017 13:53:11 +0200	[thread overview]
Message-ID: <20170930115311.37hmevemm5lxkz2j@pengutronix.de> (raw)
In-Reply-To: <20170927122222.5517-5-r.hieber@pengutronix.de>

On Wed, Sep 27, 2017 at 02:22:20PM +0200, Roland Hieber wrote:
> If using systemd, CUPS can be started via socket activation or directly,
> in any case it is run as user daemon, group lp. The default spool and
> cache locations were moved to /tmp/cups so we don't need to set up a
> tmpfs for /var/spool/cups and /var/cache/cups.
> 
> sysvinit script is installed from upstream, but untested.
> 
> Some config files are only created by cupsd on the first start and not
> at install time, so we supply reasonable defaults in projectroot/ in
> order to use $(call install_alternative...) on them.
> 
> Signed-off-by: Roland Hieber <r.hieber@pengutronix.de>
> ---
> 
> Notes:
>     changes in v1 -> v2:
>      - move CUPS_BBINIT_LINK into separate .in file
>      - correct license specification
>      - improve scripting languages integration (via configure.ac patch)
>      - change hard php-cli dependency into soft dependency of php-cli or php-cgi
>      - break long lines in cups.make
>      - targetinstall: install links to cupsaccept into /sbin
>      - targetinstall: use user/group names instead of IDs
>      - targetinstall: create config directories with correct permissions
>      - targetinstall: fix permissions for readonly config files
> 
>  ...llow-explicit-disabling-of-Java-PHP-Perl-.patch |  92 ++++++++
>  ...-remove-leftover-check-for-empty-CUPS_PHP.patch |  29 +++
>  ...e-make-interpreter-detection-more-verbose.patch |  88 ++++++++
>  patches/cups-2.2.4/autogen.sh                      |   7 +
>  patches/cups-2.2.4/series                          |   6 +
>  projectroot/etc/cups/classes.conf                  |   1 +
>  projectroot/etc/cups/client.conf                   |   2 +
>  projectroot/etc/cups/cups-files.conf               |  22 ++
>  projectroot/etc/cups/mailto.conf                   |   1 +
>  projectroot/etc/cups/ppd/.createdirectory          |   0
>  projectroot/etc/cups/printers.conf                 |   1 +
>  projectroot/etc/cups/ssl/.createdirectory          |   0
>  projectroot/etc/printcap                           |   3 +
>  projectroot/usr/lib/systemd/system/cups.service    |  15 ++
>  projectroot/usr/lib/systemd/system/cups.socket     |  14 ++
>  projectroot/usr/lib/tmpfiles.d/cups.conf           |   6 +
>  rules/cups-bbinit.in                               |   8 +
>  rules/cups.in                                      | 140 ++++++++++++
>  rules/cups.make                                    | 243 +++++++++++++++++++++
>  19 files changed, 678 insertions(+)
>  create mode 100644 patches/cups-2.2.4/0001-configure-allow-explicit-disabling-of-Java-PHP-Perl-.patch
>  create mode 100644 patches/cups-2.2.4/0002-configure-remove-leftover-check-for-empty-CUPS_PHP.patch
>  create mode 100644 patches/cups-2.2.4/0003-configure-make-interpreter-detection-more-verbose.patch
>  create mode 100755 patches/cups-2.2.4/autogen.sh
>  create mode 100644 patches/cups-2.2.4/series
>  create mode 100644 projectroot/etc/cups/classes.conf
>  create mode 100644 projectroot/etc/cups/client.conf
>  create mode 100644 projectroot/etc/cups/cups-files.conf
>  create mode 100644 projectroot/etc/cups/mailto.conf
>  create mode 100644 projectroot/etc/cups/ppd/.createdirectory
>  create mode 100644 projectroot/etc/cups/printers.conf
>  create mode 100644 projectroot/etc/cups/ssl/.createdirectory
>  create mode 100644 projectroot/etc/printcap
>  create mode 100644 projectroot/usr/lib/systemd/system/cups.service
>  create mode 100644 projectroot/usr/lib/systemd/system/cups.socket
>  create mode 100644 projectroot/usr/lib/tmpfiles.d/cups.conf
>  create mode 100644 rules/cups-bbinit.in
>  create mode 100644 rules/cups.in
>  create mode 100644 rules/cups.make
> 
> diff --git a/patches/cups-2.2.4/0001-configure-allow-explicit-disabling-of-Java-PHP-Perl-.patch b/patches/cups-2.2.4/0001-configure-allow-explicit-disabling-of-Java-PHP-Perl-.patch
> new file mode 100644
> index 000000000..f110f5aaa
> --- /dev/null
> +++ b/patches/cups-2.2.4/0001-configure-allow-explicit-disabling-of-Java-PHP-Perl-.patch
> @@ -0,0 +1,92 @@
> +From: Roland Hieber <r.hieber@pengutronix.de>
> +Date: Mon, 25 Sep 2017 15:00:16 +0200
> +Subject: [PATCH] configure: allow explicit disabling of Java/PHP/Perl/Python
> + support
> +
> +Currently, when configure is called with --with-java or --with-java=,
> +auto-detection is performed. When called with --without-java, HAVE_JAVA
> +is still being defined. This is unfortunate when cross-compiling for
> +embedded systems, we would end up with Java on the host being
> +auto-detected (which is not what we have on the target), or with a wrong
> +HAVE_JAVA define. We need a way to explicitely disable scripting support
> +for all supported languages.
> +
> +Forwarded: https://github.com/apple/cups/pull/5122
> +Signed-off-by: Roland Hieber <r.hieber@pengutronix.de>
> +---
> + config-scripts/cups-scripting.m4 | 24 ++++++++++++++++--------
> + 1 file changed, 16 insertions(+), 8 deletions(-)
> +
> +diff --git a/config-scripts/cups-scripting.m4 b/config-scripts/cups-scripting.m4
> +index bff3e9a0505c..137c3be72cb0 100644
> +--- a/config-scripts/cups-scripting.m4
> ++++ b/config-scripts/cups-scripting.m4
> +@@ -14,11 +14,13 @@ dnl
> + dnl Do we have Java?
> + AC_ARG_WITH(java, [  --with-java             set Java interpreter for web interfaces ],
> + 	CUPS_JAVA="$withval",
> +-	CUPS_JAVA="")
> ++	CUPS_JAVA="auto")
> + 
> +-if test "x$CUPS_JAVA" = x; then
> ++if test "x$CUPS_JAVA" = xauto; then
> + 	AC_PATH_PROG(JAVA,java)
> + 	CUPS_JAVA="$JAVA"
> ++elif test "x$CUPS_JAVA" = xno; then
> ++	CUPS_JAVA=""
> + fi
> + 
> + AC_DEFINE_UNQUOTED(CUPS_JAVA, "$CUPS_JAVA")
> +@@ -30,11 +32,13 @@ fi
> + dnl Do we have Perl?
> + AC_ARG_WITH(perl, [  --with-perl             set Perl interpreter for web interfaces ],
> + 	CUPS_PERL="$withval",
> +-	CUPS_PERL="")
> ++	CUPS_PERL="auto")
> + 
> +-if test "x$CUPS_PERL" = x; then
> ++if test "x$CUPS_PERL" = xauto; then
> + 	AC_PATH_PROG(PERL,perl)
> + 	CUPS_PERL="$PERL"
> ++elif test "x$CUPS_PERL" = xno; then
> ++	CUPS_PERL=""
> + fi
> + 
> + AC_DEFINE_UNQUOTED(CUPS_PERL, "$CUPS_PERL")
> +@@ -46,9 +50,9 @@ fi
> + dnl Do we have PHP?
> + AC_ARG_WITH(php, [  --with-php              set PHP interpreter for web interfaces ],
> + 	CUPS_PHP="$withval",
> +-	CUPS_PHP="")
> ++	CUPS_PHP="auto")
> + 
> +-if test "x$CUPS_PHP" = x; then
> ++if test "x$CUPS_PHP" = xauto; then
> + 	AC_PATH_PROG(PHPCGI,php-cgi)
> + 	if test "x$PHPCGI" = x; then
> + 		AC_PATH_PROG(PHP,php)
> +@@ -56,6 +60,8 @@ if test "x$CUPS_PHP" = x; then
> + 	else
> + 		CUPS_PHP="$PHPCGI"
> + 	fi
> ++elif test "x$CUPS_PHP" = xno; then
> ++	CUPS_PHP=""
> + fi
> + 
> + AC_DEFINE_UNQUOTED(CUPS_PHP, "$CUPS_PHP")
> +@@ -69,11 +75,13 @@ fi
> + dnl Do we have Python?
> + AC_ARG_WITH(python, [  --with-python           set Python interpreter for web interfaces ],
> + 	CUPS_PYTHON="$withval",
> +-	CUPS_PYTHON="")
> ++	CUPS_PYTHON="auto")
> + 
> +-if test "x$CUPS_PYTHON" = x; then
> ++if test "x$CUPS_PYTHON" = xauto; then
> + 	AC_PATH_PROG(PYTHON,python)
> + 	CUPS_PYTHON="$PYTHON"
> ++elif test "x$CUPS_PYTHON" = xno; then
> ++	CUPS_PYTHON=""
> + fi
> + 
> + AC_DEFINE_UNQUOTED(CUPS_PYTHON, "$CUPS_PYTHON")
> diff --git a/patches/cups-2.2.4/0002-configure-remove-leftover-check-for-empty-CUPS_PHP.patch b/patches/cups-2.2.4/0002-configure-remove-leftover-check-for-empty-CUPS_PHP.patch
> new file mode 100644
> index 000000000..b0b59a78f
> --- /dev/null
> +++ b/patches/cups-2.2.4/0002-configure-remove-leftover-check-for-empty-CUPS_PHP.patch
> @@ -0,0 +1,29 @@
> +From: Roland Hieber <r.hieber@pengutronix.de>
> +Date: Mon, 25 Sep 2017 17:04:49 +0200
> +Subject: [PATCH] configure: remove leftover check for empty CUPS_PHP
> +
> +After the respective AC_DEFINE_UNQUOTED(CUPS_PHP) call, assigning
> +anything to CUPS_PHP is a no-op. Remove it so the surrounding test looks
> +like the other tests in the file.
> +
> +Forwarded: https://github.com/apple/cups/pull/5122
> +Signed-off-by: Roland Hieber <r.hieber@pengutronix.de>
> +---
> + config-scripts/cups-scripting.m4 | 4 +---
> + 1 file changed, 1 insertion(+), 3 deletions(-)
> +
> +diff --git a/config-scripts/cups-scripting.m4 b/config-scripts/cups-scripting.m4
> +index 137c3be72cb0..f73d5310a3ae 100644
> +--- a/config-scripts/cups-scripting.m4
> ++++ b/config-scripts/cups-scripting.m4
> +@@ -66,9 +66,7 @@ fi
> + 
> + AC_DEFINE_UNQUOTED(CUPS_PHP, "$CUPS_PHP")
> + 
> +-if test "x$CUPS_PHP" = x; then
> +-	CUPS_PHP="no"
> +-else
> ++if test "x$CUPS_PHP" != x; then
> + 	AC_DEFINE(HAVE_PHP)
> + fi
> + 
> diff --git a/patches/cups-2.2.4/0003-configure-make-interpreter-detection-more-verbose.patch b/patches/cups-2.2.4/0003-configure-make-interpreter-detection-more-verbose.patch
> new file mode 100644
> index 000000000..a1bfc3ade
> --- /dev/null
> +++ b/patches/cups-2.2.4/0003-configure-make-interpreter-detection-more-verbose.patch
> @@ -0,0 +1,88 @@
> +From: Roland Hieber <r.hieber@pengutronix.de>
> +Date: Mon, 25 Sep 2017 16:17:03 +0200
> +Subject: [PATCH] configure: make interpreter detection more verbose
> +
> +Forwarded: https://github.com/apple/cups/pull/5122
> +Signed-off-by: Roland Hieber <r.hieber@pengutronix.de>
> +---
> + config-scripts/cups-scripting.m4 | 16 ++++++++++++++++
> + 1 file changed, 16 insertions(+)
> +
> +diff --git a/config-scripts/cups-scripting.m4 b/config-scripts/cups-scripting.m4
> +index f73d5310a3ae..4b1b6a80c5ac 100644
> +--- a/config-scripts/cups-scripting.m4
> ++++ b/config-scripts/cups-scripting.m4
> +@@ -16,6 +16,7 @@ AC_ARG_WITH(java, [  --with-java             set Java interpreter for web interf
> + 	CUPS_JAVA="$withval",
> + 	CUPS_JAVA="auto")
> + 
> ++AC_MSG_CHECKING([for Java interpreter])
> + if test "x$CUPS_JAVA" = xauto; then
> + 	AC_PATH_PROG(JAVA,java)
> + 	CUPS_JAVA="$JAVA"
> +@@ -26,7 +27,10 @@ fi
> + AC_DEFINE_UNQUOTED(CUPS_JAVA, "$CUPS_JAVA")
> + 
> + if test "x$CUPS_JAVA" != x; then
> ++	AC_MSG_RESULT([$CUPS_JAVA])
> + 	AC_DEFINE(HAVE_JAVA)
> ++else
> ++	AC_MSG_RESULT([none])
> + fi
> + 
> + dnl Do we have Perl?
> +@@ -34,6 +38,7 @@ AC_ARG_WITH(perl, [  --with-perl             set Perl interpreter for web interf
> + 	CUPS_PERL="$withval",
> + 	CUPS_PERL="auto")
> + 
> ++AC_MSG_CHECKING([for Perl interpreter])
> + if test "x$CUPS_PERL" = xauto; then
> + 	AC_PATH_PROG(PERL,perl)
> + 	CUPS_PERL="$PERL"
> +@@ -44,7 +49,10 @@ fi
> + AC_DEFINE_UNQUOTED(CUPS_PERL, "$CUPS_PERL")
> + 
> + if test "x$CUPS_PERL" != x; then
> ++	AC_MSG_RESULT([$CUPS_PERL])
> + 	AC_DEFINE(HAVE_PERL)
> ++else
> ++	AC_MSG_RESULT([none])
> + fi
> + 
> + dnl Do we have PHP?
> +@@ -52,6 +60,7 @@ AC_ARG_WITH(php, [  --with-php              set PHP interpreter for web interfac
> + 	CUPS_PHP="$withval",
> + 	CUPS_PHP="auto")
> + 
> ++AC_MSG_CHECKING([for PHP interpreter])
> + if test "x$CUPS_PHP" = xauto; then
> + 	AC_PATH_PROG(PHPCGI,php-cgi)
> + 	if test "x$PHPCGI" = x; then
> +@@ -67,7 +76,10 @@ fi
> + AC_DEFINE_UNQUOTED(CUPS_PHP, "$CUPS_PHP")
> + 
> + if test "x$CUPS_PHP" != x; then
> ++	AC_MSG_RESULT([$CUPS_PHP])
> + 	AC_DEFINE(HAVE_PHP)
> ++else
> ++	AC_MSG_RESULT([none])
> + fi
> + 
> + dnl Do we have Python?
> +@@ -75,6 +87,7 @@ AC_ARG_WITH(python, [  --with-python           set Python interpreter for web in
> + 	CUPS_PYTHON="$withval",
> + 	CUPS_PYTHON="auto")
> + 
> ++AC_MSG_CHECKING([for Python interpreter])
> + if test "x$CUPS_PYTHON" = xauto; then
> + 	AC_PATH_PROG(PYTHON,python)
> + 	CUPS_PYTHON="$PYTHON"
> +@@ -85,5 +98,8 @@ fi
> + AC_DEFINE_UNQUOTED(CUPS_PYTHON, "$CUPS_PYTHON")
> + 
> + if test "x$CUPS_PYTHON" != x; then
> ++	AC_MSG_RESULT([$CUPS_PYTHON])
> + 	AC_DEFINE(HAVE_PYTHON)
> ++else
> ++	AC_MSG_RESULT([none])
> + fi
> diff --git a/patches/cups-2.2.4/autogen.sh b/patches/cups-2.2.4/autogen.sh
> new file mode 100755
> index 000000000..1c70286be
> --- /dev/null
> +++ b/patches/cups-2.2.4/autogen.sh
> @@ -0,0 +1,7 @@
> +#!/bin/bash
> +autoconf \
> +        --force \
> +        --warnings=cross \
> +        --warnings=syntax \
> +        --warnings=obsolete \
> +        --warnings=unsupported
> diff --git a/patches/cups-2.2.4/series b/patches/cups-2.2.4/series
> new file mode 100644
> index 000000000..8ed7533f1
> --- /dev/null
> +++ b/patches/cups-2.2.4/series
> @@ -0,0 +1,6 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-configure-allow-explicit-disabling-of-Java-PHP-Perl-.patch
> +0002-configure-remove-leftover-check-for-empty-CUPS_PHP.patch
> +0003-configure-make-interpreter-detection-more-verbose.patch
> +# c7ecb5f5cc92f09bc09802d57507070b  - git-ptx-patches magic
> diff --git a/projectroot/etc/cups/classes.conf b/projectroot/etc/cups/classes.conf
> new file mode 100644
> index 000000000..dea737751
> --- /dev/null
> +++ b/projectroot/etc/cups/classes.conf
> @@ -0,0 +1 @@
> +# classes.conf - class configuration file for cups
> diff --git a/projectroot/etc/cups/client.conf b/projectroot/etc/cups/client.conf
> new file mode 100644
> index 000000000..f8f0b6832
> --- /dev/null
> +++ b/projectroot/etc/cups/client.conf
> @@ -0,0 +1,2 @@
> +# CUPS client configuration
> +ServerName localhost
> diff --git a/projectroot/etc/cups/cups-files.conf b/projectroot/etc/cups/cups-files.conf
> new file mode 100644
> index 000000000..2cc2d5a5b
> --- /dev/null
> +++ b/projectroot/etc/cups/cups-files.conf
> @@ -0,0 +1,22 @@
> +# File/directory/user/group configuration file for the CUPS scheduler.
> +User daemon
> +Group lp
> +SystemGroup root
> +
> +AccessLog /var/log/cups/access_log
> +ErrorLog /var/log/cups/error_log
> +PageLog /var/log/cups/page_log
> +
> +CacheDir /tmp/cups/cache
> +DataDir /usr/share/cups
> +DocumentRoot /usr/share/doc/cups
> +RequestRoot /tmp/cups/spool
> +ServerBin /usr/lib/cups
> +ServerRoot /etc/cups
> +StateDir /var/run/cups
> +
> +Printcap /etc/printcap
> +PrintcapFormat bsd
> +
> +# SSL/TLS keychain for the scheduler...
> +#ServerKeychain ssl
> diff --git a/projectroot/etc/cups/mailto.conf b/projectroot/etc/cups/mailto.conf
> new file mode 100644
> index 000000000..4502adaee
> --- /dev/null
> +++ b/projectroot/etc/cups/mailto.conf
> @@ -0,0 +1 @@
> +# mailto.conf - configuration file for cups email notifier
> diff --git a/projectroot/etc/cups/ppd/.createdirectory b/projectroot/etc/cups/ppd/.createdirectory
> new file mode 100644
> index 000000000..e69de29bb
> diff --git a/projectroot/etc/cups/printers.conf b/projectroot/etc/cups/printers.conf
> new file mode 100644
> index 000000000..bf9879904
> --- /dev/null
> +++ b/projectroot/etc/cups/printers.conf
> @@ -0,0 +1 @@
> +# printers.conf - printer configuration file for cups
> diff --git a/projectroot/etc/cups/ssl/.createdirectory b/projectroot/etc/cups/ssl/.createdirectory
> new file mode 100644
> index 000000000..e69de29bb
> diff --git a/projectroot/etc/printcap b/projectroot/etc/printcap
> new file mode 100644
> index 000000000..e74f358e1
> --- /dev/null
> +++ b/projectroot/etc/printcap
> @@ -0,0 +1,3 @@
> +# This file was automatically generated by cupsd(8) from the
> +# /etc/cups/printers.conf file.  All changes to this file
> +# will be lost.
> diff --git a/projectroot/usr/lib/systemd/system/cups.service b/projectroot/usr/lib/systemd/system/cups.service
> new file mode 100644
> index 000000000..ff94f69d2
> --- /dev/null
> +++ b/projectroot/usr/lib/systemd/system/cups.service
> @@ -0,0 +1,15 @@
> +[Unit]
> +Description=CUPS Scheduler service
> +Documentation=man:cupsd(8)
> +Requires=systemd-tmpfiles-setup.service
> +Requires=cups.socket
> +
> +[Service]
> +User=daemon
> +Group=lp
> +ExecStart=/usr/sbin/cupsd -l -c /etc/cups/cupsd.conf -s /etc/cups/cups-files.conf
> +Type=simple
> +
> +[Install]
> +Also=cups.socket
> +WantedBy=printer.target
> diff --git a/projectroot/usr/lib/systemd/system/cups.socket b/projectroot/usr/lib/systemd/system/cups.socket
> new file mode 100644
> index 000000000..de9f43b6b
> --- /dev/null
> +++ b/projectroot/usr/lib/systemd/system/cups.socket
> @@ -0,0 +1,14 @@
> +[Unit]
> +Description=CUPS Scheduler socket
> +PartOf=cups.service
> +
> +[Socket]
> +ListenStream=/run/cups.sock
> +ListenStream=[::1]:631
> +ListenStream=127.0.0.1:631
> +BindIPv6Only=No
> +SocketUser=daemon
> +SocketGroup=lp
> +
> +[Install]
> +WantedBy=sockets.target
> diff --git a/projectroot/usr/lib/tmpfiles.d/cups.conf b/projectroot/usr/lib/tmpfiles.d/cups.conf
> new file mode 100644
> index 000000000..c000cf255
> --- /dev/null
> +++ b/projectroot/usr/lib/tmpfiles.d/cups.conf
> @@ -0,0 +1,6 @@
> +#Type	Path			Mode	UID	GID	Age	Argument
> +d	/var/log/cups		750	daemon	lp	-
> +d	/tmp/cups/cache/	750	daemon	lp	-
> +d	/tmp/cups/spool/	750	daemon	lp	-
> +d	/tmp/cups/spool/tmp/	750	daemon	lp	-
> +d	/var/run/cups		750	daemon	lp	-
> diff --git a/rules/cups-bbinit.in b/rules/cups-bbinit.in
> new file mode 100644
> index 000000000..86b6f649a
> --- /dev/null
> +++ b/rules/cups-bbinit.in
> @@ -0,0 +1,8 @@
> +## SECTION=initmethod_bbinit
> +
> +config CUPS_BBINIT_LINK
> +        string "cups"
> +        depends on CUPS_STARTSCRIPT
> +        default "S90cups"
> +
> +# vim: ft=kconfig ts=8 noet tw=80
> diff --git a/rules/cups.in b/rules/cups.in
> new file mode 100644
> index 000000000..e77149920
> --- /dev/null
> +++ b/rules/cups.in
> @@ -0,0 +1,140 @@
> +## SECTION=applications
> +
> +menuconfig CUPS
> +	tristate
> +	prompt "cups                          "
> +
> +	select ROOTFS_VAR_LOG
> +	select ROOTFS_VAR_RUN
> +	select LIBC_M
> +	select LIBC_CRYPT
> +	select ZLIB
> +
> +	select LIBC_PTHREAD		if CUPS_THREADING
> +	select SYSTEMD			if CUPS_SYSTEMD_UNIT
> +	select LIBPAPER			if CUPS_LIBPAPER
> +	select LIBUSB			if CUPS_LIBUSB
> +	select DBUS			if CUPS_DBUS
> +	select GNUTLS			if CUPS_SSL
> +	select AVAHI			if CUPS_AVAHI
> +	select AVAHI_LIBAVAHI_CLIENT	if CUPS_AVAHI
> +	select ORACLE_JAVA7_JRE		if CUPS_JAVA
> +	select PERL			if CUPS_PERL
> +	select PHP5			if CUPS_PHP
> +	select PYTHON			if CUPS_PYTHON
> +
> +	help
> +	  CUPS is the standards-based, open source printing system. It uses the
> +	  Internet Printing Protocol (IPP) to support printing to local and
> +	  network printers.
> +
> +if CUPS
> +
> +comment "--- CUPS Features ---"
> +
> +config CUPS_THREADING
> +	bool "enable multithreading"
> +	default y
> +	help
> +	   Enable multi-threading support

Why make this optional?

> +
> +config CUPS_WEBINTERFACE
> +	bool "enable web interface"
> +	help
> +	   Enable CUPS printer management via HTTP(S). Only required for hosts
> +	   which should act as a printing server.
> +
> +	   If you overwrite the config files for CUPS, be sure to have
> +	   "WebInterface Yes" in your projectroot/etc/cups/cupsd.conf.
> +
> +config CUPS_SYSTEMD_UNIT
> +	bool "install systemd unit file"
> +	default y
> +	depends on INITMETHOD_SYSTEMD
> +	help
> +	  Installs a systemd service file so that CUPS can be started as a
> +	  systemd service.
> +
> +config CUPS_STARTSCRIPT
> +	bool "install init.d script"
> +	depends on INITMETHOD_BBINIT
> +	help
> +	  Install /etc/init.d/cups
> +
> +config CUPS_TEST_TOOLS
> +	bool "install cupstest* tools"
> +	default n
> +	help
> +	  Install cupstestdsc and cupstestppd on the target.
> +
> +comment "--- External Libraries ---"
> +
> +config CUPS_LIBPAPER
> +	bool "libpaper support"
> +	help
> +	  Build with support for libpaper's collection of paper sizes
> +
> +config CUPS_LIBUSB
> +	bool "libusb support"
> +	help
> +	  Build with libusb support. This is needed for the usb backend in order
> +	  to use USB printers.
> +
> +config CUPS_DBUS
> +	bool "DBus support"
> +	help
> +	  Builds CUPS with support for sending event notifications over DBUS
> +
> +config CUPS_SSL
> +	bool "enable TLS support"
> +	help
> +	  Enables SSL support over IPP and HTTP, also for the web interface.
> +
> +config CUPS_AVAHI
> +	bool "enable Avahi support"
> +	help
> +	  Enables support for discovery of network printers over Avahi/zeroconf.
> +
> +config CUPS_JAVA
> +	bool "enable Java support for web interface"
> +	depends on CUPS_WEBINTERFACE
> +
> +config CUPS_PERL
> +	bool "enable Perl support for web interface"
> +	depends on CUPS_WEBINTERFACE
> +
> +config CUPS_PHP
> +	bool "enable PHP support for web interface"
> +	depends on CUPS_WEBINTERFACE
> +
> +if CUPS_PHP && !PHP5_SAPI_CLI && !PHP5_SAPI_CGI
> +	comment "Please also select PHP5_SAPI_CLI or PHP5_SAPI_CGI!"
> +endif
> +
> +config CUPS_PYTHON
> +	bool "enable Python support for web interface"
> +	depends on CUPS_WEBINTERFACE
> +
> +comment "--- Debugging ---"
> +
> +config CUPS_DEBUG
> +	bool "enable debug build"
> +	default n
> +	help
> +	  Pay attention: this will slow down CUPS drastically and increases the
> +	  memory footprint. Don't enable this on a production system!
> +
> +config CUPS_DEBUG_PRINTF
> +	bool "enable debug output"
> +	help
> +	  Enable much more debug messages. These messages are logged into a
> +	  separate file, the output is controlled over the following environment
> +	  variables:
> +
> +	  - CUPS_DEBUG_LOG: contains the file name to write the messages to
> +	  - CUPS_DEBUG_LEVEL: defines the loglevel (0...9, with 9 very noisy)
> +	  - CUPS_DEBUG_FILTER: defines a regular expression to filter out
> +	    unwanted debug messages.

No debugging options like this. Stuff like that is easily accidentally
commited. For local debugging you can just extend the config options with
a local uncomitted file:

$ cat rules/post/cups-debug.make
CUPS_CONF_OPT += --enable-debug ...

> +
> +endif
> +# vim: ft=kconfig ts=8 noet tw=80
> diff --git a/rules/cups.make b/rules/cups.make
> new file mode 100644
> index 000000000..e7c9bba12
> --- /dev/null
> +++ b/rules/cups.make
> @@ -0,0 +1,243 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2017 by Roland Hieber <r.hieber@pengutronix.de>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_CUPS) += cups
> +
> +#
> +# Paths and names
> +#
> +CUPS_VERSION	:= 2.2.4
> +CUPS		:= cups-$(CUPS_VERSION)
> +CUPS_MD5	:= d26e5a0a574a69fe1d01079b2931fc49
> +CUPS_SUFFIX	:= tar.gz
> +CUPS_URL	:= https://github.com/apple/cups/releases/download/v$(CUPS_VERSION)/$(CUPS)-source.$(CUPS_SUFFIX)
> +CUPS_SOURCE	:= $(SRCDIR)/$(CUPS)-source.$(CUPS_SUFFIX)
> +CUPS_DIR	:= $(BUILDDIR)/cups-$(CUPS_VERSION)
> +CUPS_LICENSE	:= LGPLv2 AND GPLv2

spdx identifier.

> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +CUPS_CONF_ENV	:= \
> +	$(CROSS_ENV) \
> +	DSTROOT=$(PKGDIR)/$(CUPS)

	DSTROOT=$(CUPS_PKGDIR)

> +
> +#
> +# autoconf
> +#
> +# The --with-* options are only used to specify strings, --without-* does
> +# mostly nothing. So we're omitting them here.
> +#
> +# We have to set --exec-prefix and --libdir, otherwise the libs end up in
> +# ${prefix}/lib64 due to broken autoconf magic, which is not what we want.
> +#
> +# --enable-mallinfo is currently broken, see
> +#  https://github.com/apple/cups/issues/5051
> +#
> +# libtool support is unsupported upstream. Don't enable it, it will break
> +# things, until https://github.com/apple/cups/pull/5062 is merged.
> +#
> +# --disable-dnssd only refers to Apple's mDNSResponder, not Avahi.
> +#
> +# Java, PHP, Perl and Python support for the webinterface is only a runtime
> +# option, there are no real bindings for it except calling the interpreters.
> +#
> +CUPS_CONF_TOOL	:= autoconf
> +CUPS_CONF_OPT	:= \
> +	$(CROSS_AUTOCONF_USR) \
> +	--exec-prefix=/usr/ \

check the --help order.

> +	--libdir=/usr/lib/ \

This is already set in CROSS_AUTOCONF_USR, this should not be needed. If
the trailing / makes a difference, the comment on it above.

> +	--disable-static \
> +	--disable-mallinfo \
> +	--$(call ptx/endis,PTXCONF_CUPS_LIBPAPER)-libpaper \
> +	--$(call ptx/endis,PTXCONF_CUPS_LIBUSB)-libusb \
> +	--disable-tcp-wrappers \
> +	--disable-acl \
> +	--$(call ptx/endis,PTXCONF_CUPS_DBUS)-dbus \
> +	--enable-shared \
> +	--disable-libtool-unsupported \
> +	--$(call ptx/endis,PTXCONF_CUPS_DEBUG)-debug \
> +	--$(call ptx/endis,PTXCONF_CUPS_DEBUG)-debug-guards \
> +	--$(call ptx/endis,PTXCONF_CUPS_DEBUG_PRINTF)-debug-printfs \
> +	--disable-unit-tests \
> +	--$(call ptx/endis,PTXCONF_TARGET_HARDEN_RELRO)-relro \
> +	--disable-gssapi \
> +	--$(call ptx/endis,PTXCONF_CUPS_THREADING)-threads \
> +	--$(call ptx/endis,PTXCONF_CUPS_SSL)-ssl \
> +	--disable-cdsassl \
> +	--$(call ptx/endis,PTXCONF_CUPS_SSL)-gnutls \
> +	--disable-pam \
> +	$(GLOBAL_LARGE_FILE_OPTION) \
> +	--$(call ptx/endis,PTXCONF_CUPS_AVAHI)-avahi \
> +	--disable-dnssd \
> +	--disable-launchd \
> +	--$(call ptx/endis,PTXCONF_CUPS_SYSTEMD_UNIT)-systemd \
> +	--disable-upstart
> +
> +# Default config file settings (probably overwritten via projectroot anyways...)
> +CUPS_CONF_OPT	+= \
> +	--disable-page-logging \
> +	--disable-browsing \
> +	--disable-default-shared \
> +	--disable-raw-printing \
> +	--$(call ptx/endis,PTXCONF_CUPS_WEBINTERFACE)-webif \
> +	--with-components=all \
> +	--with-cachedir=/var/cache \
> +	--with-logdir=/var/log \
> +	--with-rundir=/run \
> +	--with-rcdir=/etc \
> +	--with-languages=none \
> +	--with-cups-user=daemon \
> +	--with-cups-group=lp
> +
> +# scripting integrations
> +CUPS_PHP_PATH	:= \
> +	$(if PTXCONF_PHP5_SAPI_CLI,/usr/bin/php5, \
> +	$(if PTXCONF_PHP5_SAPI_CGI,/usr/bin/php-cgi))
> +
> +CUPS_CONF_OPT	+= \
> +	$(call ptx/ifdef,PTXCONF_CUPS_JAVA,--with-java=/usr/bin/java,--without-java) \
> +	$(call ptx/ifdef,PTXCONF_CUPS_PERL,--with-perl=/usr/bin/perl,--without-perl) \
> +	$(call ptx/ifdef,PTXCONF_CUPS_PHP,--with-php=$(CUPS_PHP_PATH),--without-php) \
> +	$(call ptx/ifdef,PTXCONF_CUPS_PYTHON,--with-python=/usr/bin/python,--without-python)
> +
> +# ----------------------------------------------------------------------------
> +# Install
> +# ----------------------------------------------------------------------------

remove the comment here. Otherwise, this is a bit misleading as
CUPS_MAKE_ENV is also used by the compile stage.

Michael

> +CUPS_MAKE_ENV	:= \
> +	DSTROOT=$(PKGDIR)/$(CUPS)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +# CUPS drops many files into its PKGDIR, but instead of patching the build
> +# system, be explicitly picky about what to install.
> +
> +$(STATEDIR)/cups.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, cups)
> +	@$(call install_fixup, cups,PRIORITY,optional)
> +	@$(call install_fixup, cups,SECTION,base)
> +	@$(call install_fixup, cups,AUTHOR,"Roland Hieber <r.hieber@pengutronix.de>")
> +	@$(call install_fixup, cups,DESCRIPTION,missing)
> +
> +# ----- config files, install as daemon:lp
> +	@$(call install_copy, cups, daemon, lp, 750, /etc/cups)
> +	@$(call install_alternative, cups, daemon, lp, 0640, /etc/cups/cups-files.conf)
> +	@$(call install_alternative, cups, daemon, lp, 0640, /etc/cups/cupsd.conf)
> +	@$(call install_alternative, cups, daemon, lp, 0600, /etc/cups/classes.conf)
> +	@$(call install_alternative, cups, daemon, lp, 0600, /etc/cups/client.conf)
> +	@$(call install_alternative, cups, daemon, lp, 0640, /etc/cups/mailto.conf)
> +	@$(call install_copy, cups, daemon, lp, 0750, /etc/cups/ppd/)
> +	@$(call install_alternative_tree, cups, daemon, lp,  /etc/cups/ppd/)
> +	@$(call install_alternative, cups, daemon, lp, 0600, /etc/cups/printers.conf)
> +	@$(call install_alternative, cups, daemon, lp, 0640, /etc/cups/snmp.conf)
> +	@$(call install_alternative, cups, daemon, lp, 0640, /etc/printcap)
> +	@$(call install_alternative, cups, root, root, 0644, /usr/share/cups/mime/mime.convs)
> +	@$(call install_alternative, cups, root, root, 0644, /usr/share/cups/mime/mime.types)
> +
> +ifdef PTXCONF_CUPS_SSL
> +	@$(call install_copy, cups, daemon, lp, /etc/cups/ssl/)
> +	@$(call install_alternative_tree, cups, daemon, lp, /etc/cups/ssl/)
> +endif
> +
> +ifdef PTXCONF_CUPS_DBUS
> +	@$(call install_alternative, cups, root, root, 0644, /etc/dbus-1/system.d/cups.conf)
> +endif
> +
> +# ----- libraries
> +	@$(call install_lib, cups, root, root, 0755, libcups)
> +	@$(call install_lib, cups, root, root, 0755, libcupsimage)
> +	@$(call install_lib, cups, root, root, 0755, libcupsmime)
> +	@$(call install_lib, cups, root, root, 0755, libcupsppdc)
> +
> +# ----- user and system binaries, with the correct access rights
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/cancel)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/cups-config)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/ipptool)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/lp)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/lpoptions)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/lpq)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/lpr)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/lprm)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/lpstat)
> +
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/cupsaccept)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/cupsaddsmb)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/cupsctl)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/cupsd)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/cupsfilter)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/lpadmin)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/lpc)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/lpinfo)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/sbin/lpmove)
> +
> +	@$(call install_link, cups, cupsaccept, /usr/sbin/accept)
> +	@$(call install_link, cups, cupsaccept, /usr/sbin/cupsdisable)
> +	@$(call install_link, cups, cupsaccept, /usr/sbin/cupsenable)
> +	@$(call install_link, cups, cupsaccept, /usr/sbin/cupsreject)
> +	@$(call install_link, cups, cupsaccept, /usr/sbin/reject)
> +
> +ifdef PTXCONF_CUPS_TEST_TOOLS
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/cupstestdsc)
> +	@$(call install_copy, cups, root, root, 0755, -, /usr/bin/cupstestppd)
> +endif
> +
> +# ----- backends, filters, cgi-bin (if enabled), etc.
> +	@$(call install_tree, cups, root, root, -, /usr/lib/cups/backend)
> +	@$(call install_tree, cups, root, root, -, /usr/lib/cups/daemon)
> +	@$(call install_tree, cups, root, root, -, /usr/lib/cups/filter)
> +	@$(call install_tree, cups, root, root, -, /usr/lib/cups/monitor)
> +	@$(call install_tree, cups, root, root, -, /usr/lib/cups/notifier)
> +
> +ifdef PTXCONF_CUPS_LIBUSB
> +	@$(call install_alternative, cups, root, root, 0644, \
> +		/usr/share/cups/usb/org.cups.usb-quirks)
> +endif
> +
> +ifdef PTXCONF_CUPS_WEBINTERFACE
> +	@$(call install_lib, cups, root, root, 0755, libcupscgi)
> +	@$(call install_tree, cups, root, root, -, /usr/lib/cups/cgi-bin)
> +	@$(call install_tree, cups, root, root, -, /usr/share/cups/templates)
> +	@$(call install_tree, cups, root, root, -, /usr/share/doc/cups)
> +endif
> +
> +# ----- startup files
> +ifdef PTXCONF_CUPS_SYSTEMD_UNIT
> +	@$(call install_alternative, cups, root, root, 0644, \
> +		/usr/lib/tmpfiles.d/cups.conf)
> +	@$(call install_alternative, cups, root, root, 0644, \
> +		/usr/lib/systemd/system/cups.service)
> +	@$(call install_alternative, cups, root, root, 0644, \
> +		/usr/lib/systemd/system/cups.socket)
> +	@$(call install_link, cups, ../cups.service, \
> +		/usr/lib/systemd/system/printer.target.wants/cups.service)
> +	@$(call install_link, cups, ../cups.socket, \
> +		/usr/lib/systemd/system/sockets.target.wants/cups.socket)
> +endif
> +
> +ifdef PTXCONF_CUPS_STARTSCRIPT
> +	@$(call install_alternative, cups, root, root, 0755, /etc/init.d/cups)
> +	@$(call install_link, cups, ../init.d/cups, \
> +		/etc/rc.d/$(PTXCONF_CUPS_BBINIT_LINK))
> +endif
> +
> +	@$(call install_finish, cups)
> +
> +	@$(call touch)
> +
> +# vim: ft=make ts=8 tw=80
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2017-09-30 11:53 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-27 12:22 [ptxdist] [PATCH v2 1/7] libpaper: new package: system-wide papersize configuration Roland Hieber
2017-09-27 12:22 ` [ptxdist] [PATCH v2 2/7] qpdf: new package: PDF inspection library and tools Roland Hieber
2017-09-27 12:59   ` Roland Hieber
2017-09-27 12:22 ` [ptxdist] [PATCH v2 3/7] poppler-data: new package: optional encoding data for poppler Roland Hieber
2017-09-27 12:22 ` [ptxdist] [PATCH v2 4/7] poppler: version bump 0.18.0 -> 0.59.0 Roland Hieber
2017-09-30 11:29   ` Michael Olbrich
2017-10-04 14:35   ` Juergen Borleis
2017-09-27 12:22 ` [ptxdist] [PATCH v2 5/7] cups: new package: Common Unix Printing System Roland Hieber
2017-09-30 11:53   ` Michael Olbrich [this message]
2017-10-04 14:47   ` Juergen Borleis
2017-09-27 12:22 ` [ptxdist] [PATCH v2 6/7] host-cups: new package: CUPS host tools Roland Hieber
2017-09-27 21:40   ` Roland Hieber
2017-09-30 11:05     ` Michael Olbrich
2017-09-30 11:57   ` Michael Olbrich
2017-09-27 12:22 ` [ptxdist] [PATCH v2 7/7] cups-filters: new package: additional filters and backends for CUPS Roland Hieber
2017-09-30 12:00   ` Michael Olbrich
2017-10-25 18:35     ` Roland Hieber
2017-11-01 11:04       ` Michael Olbrich
2017-09-30 11:11 ` [ptxdist] [PATCH v2 1/7] libpaper: new package: system-wide papersize configuration Michael Olbrich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170930115311.37hmevemm5lxkz2j@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox