From a8235a21c685d3a9c0908649182f32f5e20a9132 Mon Sep 17 00:00:00 2001 From: Automatic Build System Date: Fri, 5 Jan 2024 21:35:01 +0100 Subject: [PATCH] automatic version update by autodist [release 1.7.2-1mamba;Sun Apr 13 2014] --- README.md | 4 + cups-1.4.4-str3461-1.4.patch | 249 ++++++++++ ....0-set_retry_job_default_ErrorPolicy.patch | 13 + ...fter-job-only-for-specific-devices-3.patch | 85 ++++ cups-1.7.0-statedir.patch | 11 + cups-initscript | 213 ++++++++ cups-lpd.socket | 9 + cups-lpd@.service | 8 + cups-pamd | 8 + cups.path | 8 + cups.service | 10 + cups.socket | 10 + cups.spec | 463 ++++++++++++++++++ 13 files changed, 1091 insertions(+) create mode 100644 cups-1.4.4-str3461-1.4.patch create mode 100644 cups-1.5.0-set_retry_job_default_ErrorPolicy.patch create mode 100644 cups-1.6.1-usb-backend-reset-after-job-only-for-specific-devices-3.patch create mode 100644 cups-1.7.0-statedir.patch create mode 100644 cups-initscript create mode 100644 cups-lpd.socket create mode 100644 cups-lpd@.service create mode 100644 cups-pamd create mode 100644 cups.path create mode 100644 cups.service create mode 100644 cups.socket create mode 100644 cups.spec diff --git a/README.md b/README.md index c5c82e6..1fa1f87 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # cups +The Common UNIX Printing System provides a portable printing layer for UNIX operating systems. +It has been developed by Easy Software Products to promote a standard printing solution for all UNIX vendors and users. +CUPS provides the System V and Berkeley command-line interfaces. + diff --git a/cups-1.4.4-str3461-1.4.patch b/cups-1.4.4-str3461-1.4.patch new file mode 100644 index 0000000..d4cdbca --- /dev/null +++ b/cups-1.4.4-str3461-1.4.patch @@ -0,0 +1,249 @@ +--- cups-1.4.4/cups/http.c 2010-06-16 07:27:41.000000000 +0200 ++++ cups-1.4.4-str3461-1.4.patch.reverted/cups/http.c 2010-06-25 11:02:31.000000000 +0200 +@@ -83,12 +83,10 @@ + * http_debug_hex() - Do a hex dump of a buffer. + * http_field() - Return the field index for a field name. + * http_read_ssl() - Read from a SSL/TLS connection. +- * http_locking_cb() - Lock/unlock a thread's mutex. + * http_send() - Send a request with all fields and the trailing + * blank line. + * http_setup_ssl() - Set up SSL/TLS support on a connection. + * http_shutdown_ssl() - Shut down SSL/TLS on a connection. +- * http_threadid_cb() - Return the current thread ID. + * http_upgrade() - Force upgrade to TLS encryption. + * http_write() - Write a buffer to a HTTP connection. + * http_write_chunk() - Write a chunked buffer. +@@ -146,19 +144,6 @@ static int http_setup_ssl(http_t *http) + static void http_shutdown_ssl(http_t *http); + static int http_upgrade(http_t *http); + static int http_write_ssl(http_t *http, const char *buf, int len); +- +-# ifdef HAVE_GNUTLS +-# ifdef HAVE_PTHREAD_H +-GCRY_THREAD_OPTION_PTHREAD_IMPL; +-# endif /* HAVE_PTHREAD_H */ +- +-# elif defined(HAVE_LIBSSL) && defined(HAVE_PTHREAD_H) +-static pthread_mutex_t *http_locks; /* OpenSSL lock mutexes */ +- +-static void http_locking_cb(int mode, int type, const char *file, +- int line); +-static unsigned long http_threadid_cb(void); +-# endif /* HAVE_GNUTLS */ + #endif /* HAVE_SSL */ + + +@@ -1188,22 +1173,21 @@ httpHead(http_t *http, /* I - Conne + void + httpInitialize(void) + { +- static int initialized = 0; /* Have we been called before? */ +-#ifdef WIN32 +- WSADATA winsockdata; /* WinSock data */ +-#endif /* WIN32 */ + #ifdef HAVE_LIBSSL +- int i; /* Looping var */ +- unsigned char data[1024]; /* Seed data */ ++# ifndef WIN32 ++ struct timeval curtime; /* Current time in microseconds */ ++# endif /* !WIN32 */ ++ int i; /* Looping var */ ++ unsigned char data[1024]; /* Seed data */ + #endif /* HAVE_LIBSSL */ + +- +- if (initialized) +- return; +- + #ifdef WIN32 +- WSAStartup(MAKEWORD(2,2), &winsockdata); ++ WSADATA winsockdata; /* WinSock data */ + ++ ++ static int initialized = 0; /* Has WinSock been initialized? */ ++ if (!initialized) ++ WSAStartup(MAKEWORD(1,1), &winsockdata); + #elif !defined(SO_NOSIGPIPE) + /* + * Ignore SIGPIPE signals... +@@ -1226,56 +1210,29 @@ httpInitialize(void) + #endif /* WIN32 */ + + #ifdef HAVE_GNUTLS +- /* +- * Make sure we handle threading properly... +- */ +- +-# ifdef HAVE_PTHREAD_H +- gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); +-# endif /* HAVE_PTHREAD_H */ +- +- /* +- * Initialize GNU TLS... +- */ +- + gnutls_global_init(); ++#endif /* HAVE_GNUTLS */ + +-#elif defined(HAVE_LIBSSL) +- /* +- * Initialize OpenSSL... +- */ +- ++#ifdef HAVE_LIBSSL + SSL_load_error_strings(); + SSL_library_init(); + + /* +- * Set the threading callbacks... +- */ +- +-# ifdef HAVE_PTHREAD_H +- http_locks = calloc(CRYPTO_num_locks(), sizeof(pthread_mutex_t)); +- +- for (i = 0; i < CRYPTO_num_locks(); i ++) +- pthread_mutex_init(http_locks + i, NULL); +- +- CRYPTO_set_id_callback(http_threadid_cb); +- CRYPTO_set_locking_callback(http_locking_cb); +-# endif /* HAVE_PTHREAD_H */ +- +- /* + * Using the current time is a dubious random seed, but on some systems + * it is the best we can do (on others, this seed isn't even used...) + */ + +- CUPS_SRAND(time(NULL)); ++# ifdef WIN32 ++# else ++ gettimeofday(&curtime, NULL); ++ srand(curtime.tv_sec + curtime.tv_usec); ++# endif /* WIN32 */ + + for (i = 0; i < sizeof(data); i ++) +- data[i] = CUPS_RAND(); ++ data[i] = rand(); + + RAND_seed(data, sizeof(data)); +-#endif /* HAVE_GNUTLS */ +- +- initialized = 1; ++#endif /* HAVE_LIBSSL */ + } + + +@@ -2834,25 +2791,6 @@ http_read_ssl(http_t *http, /* I - Conn + #endif /* HAVE_SSL */ + + +-#if defined(HAVE_LIBSSL) && defined(HAVE_PTHREAD_H) +-/* +- * 'http_locking_cb()' - Lock/unlock a thread's mutex. +- */ +- +-static void +-http_locking_cb(int mode, /* I - Lock mode */ +- int type, /* I - Lock type */ +- const char *file, /* I - Source file */ +- int line) /* I - Line number */ +-{ +- if (mode & CRYPTO_LOCK) +- pthread_mutex_lock(http_locks + type); +- else +- pthread_mutex_unlock(http_locks + type); +-} +-#endif /* HAVE_LIBSSL && HAVE_PTHREAD_H */ +- +- + /* + * 'http_send()' - Send a request with all fields and the trailing blank line. + */ +@@ -3224,19 +3162,6 @@ http_shutdown_ssl(http_t *http) /* I - + #endif /* HAVE_SSL */ + + +-#if defined(HAVE_LIBSSL) && defined(HAVE_PTHREAD_H) +-/* +- * 'http_threadid_cb()' - Return the current thread ID. +- */ +- +-static unsigned long /* O - Thread ID */ +-http_threadid_cb(void) +-{ +- return ((unsigned long)pthread_self()); +-} +-#endif /* HAVE_LIBSSL && HAVE_PTHREAD_H */ +- +- + #ifdef HAVE_SSL + /* + * 'http_upgrade()' - Force upgrade to TLS encryption. +diff -rup cups-1.4.4/cups/http-private.h cups-1.4.4-str3461-1.4.patch.reverted/cups/http-private.h +--- cups-1.4.4/cups/http-private.h 2010-04-12 06:03:53.000000000 +0200 ++++ cups-1.4.4-str3461-1.4.patch.reverted/cups/http-private.h 2010-06-25 11:03:34.000000000 +0200 +@@ -98,7 +98,6 @@ extern BIO_METHOD *_httpBIOMethods(void) + * The GNU TLS library is more of a "bare metal" SSL/TLS library... + */ + # include +-# include + + typedef struct + { +diff -rup cups-1.4.4/scheduler/main.c cups-1.4.4-str3461-1.4.patch.reverted/scheduler/main.c +--- cups-1.4.4/scheduler/main.c 2010-04-23 20:56:34.000000000 +0200 ++++ cups-1.4.4-str3461-1.4.patch.reverted/scheduler/main.c 2010-06-25 11:14:07.000000000 +0200 +@@ -549,8 +549,6 @@ main(int argc, /* I - Number of comm + * Startup the server... + */ + +- httpInitialize(); +- + cupsdStartServer(); + + /* +diff -rup cups-1.4.4/scheduler/server.c cups-1.4.4-str3461-1.4.patch.reverted/scheduler/server.c +--- cups-1.4.4/scheduler/server.c 2010-04-12 06:03:53.000000000 +0200 ++++ cups-1.4.4-str3461-1.4.patch.reverted/scheduler/server.c 2010-06-25 11:12:52.000000000 +0200 +@@ -44,6 +44,42 @@ static int started = 0; + void + cupsdStartServer(void) + { ++#ifdef HAVE_LIBSSL ++ int i; /* Looping var */ ++ struct timeval curtime; /* Current time in microseconds */ ++ unsigned char data[1024]; /* Seed data */ ++#endif /* HAVE_LIBSSL */ ++ ++ ++#ifdef HAVE_LIBSSL ++ /* ++ * Initialize the encryption libraries... ++ */ ++ ++ SSL_library_init(); ++ SSL_load_error_strings(); ++ ++ /* ++ * Using the current time is a dubious random seed, but on some systems ++ * it is the best we can do (on others, this seed isn't even used...) ++ */ ++ ++ gettimeofday(&curtime, NULL); ++ srand(curtime.tv_sec + curtime.tv_usec); ++ ++ for (i = 0; i < sizeof(data); i ++) ++ data[i] = rand(); /* Yes, this is a poor source of random data... */ ++ ++ RAND_seed(&data, sizeof(data)); ++#elif defined(HAVE_GNUTLS) ++ /* ++ * Initialize the encryption libraries... ++ */ ++ ++ gnutls_global_init(); ++#endif /* HAVE_LIBSSL */ ++ ++ + /* + * Create the default security profile... + */ diff --git a/cups-1.5.0-set_retry_job_default_ErrorPolicy.patch b/cups-1.5.0-set_retry_job_default_ErrorPolicy.patch new file mode 100644 index 0000000..89c4199 --- /dev/null +++ b/cups-1.5.0-set_retry_job_default_ErrorPolicy.patch @@ -0,0 +1,13 @@ +diff -Nru cups-1.5.0.orig/conf/cupsd.conf.in cups-1.5.0/conf/cupsd.conf.in +--- cups-1.5.0.orig/conf/cupsd.conf.in 2010-12-09 22:24:51.000000000 +0100 ++++ cups-1.5.0/conf/cupsd.conf.in 2011-10-03 17:51:25.767950175 +0200 +@@ -29,6 +29,9 @@ + # Web interface setting... + WebInterface @CUPS_WEBIF@ + ++# Default error policy ++ErrorPolicy retry-job ++ + # Restrict access to the server... + + Order allow,deny diff --git a/cups-1.6.1-usb-backend-reset-after-job-only-for-specific-devices-3.patch b/cups-1.6.1-usb-backend-reset-after-job-only-for-specific-devices-3.patch new file mode 100644 index 0000000..e6cca4e --- /dev/null +++ b/cups-1.6.1-usb-backend-reset-after-job-only-for-specific-devices-3.patch @@ -0,0 +1,85 @@ +--- backend/usb-libusb.c 2012-07-24 18:37:15.312013467 +0200 ++++ backend/usb-libusb.c 2012-08-20 13:17:53.565679124 +0200 +@@ -70,7 +70,7 @@ + read_endp, /* Read endpoint */ + protocol, /* Protocol: 1 = Uni-di, 2 = Bi-di. */ + usblp_attached, /* "usblp" kernel module attached? */ +- opened_for_job; /* Set to 1 by print_device() */ ++ reset_after_job; /* Set to 1 by print_device() */ + unsigned int quirks; /* Quirks flags */ + struct libusb_device_handle *handle; /* Open handle to device */ + } usb_printer_t; +@@ -122,6 +122,8 @@ + #define USBLP_QUIRK_USB_INIT 0x2 /* needs vendor USB init string */ + #define USBLP_QUIRK_BAD_CLASS 0x4 /* descriptor uses vendor-specific + Class or SubClass */ ++#define USBLP_QUIRK_RESET 0x4000 /* After printing do a reset ++ for clean-up */ + #define USBLP_QUIRK_NO_REATTACH 0x8000 /* After printing we cannot re-attach + the usblp kernel module */ + +@@ -141,15 +143,21 @@ + { 0x0409, 0xf1be, USBLP_QUIRK_BIDIR }, /* NEC Picty800 (HP OEM) */ + { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, + by zut */ ++ { 0x04a9, 0x10a2, USBLP_QUIRK_BIDIR }, /* Canon, Inc. PIXMA iP4200 ++ Printer, http://www.cups.org/str.php?L4155 */ ++ { 0x04a9, 0x10b6, USBLP_QUIRK_BIDIR }, /* Canon, Inc. PIXMA iP4300 ++ Printer, https://bugs.launchpad.net/bugs/1032385 */ + { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR | + USBLP_QUIRK_NO_REATTACH }, /* Brother Industries, Ltd + HL-1440 Laser Printer */ + { 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt + Printer M129C */ + { 0x067b, 0x2305, USBLP_QUIRK_BIDIR | +- USBLP_QUIRK_NO_REATTACH }, ++ USBLP_QUIRK_NO_REATTACH | ++ USBLP_QUIRK_RESET }, + /* Prolific Technology, Inc. PL2305 Parallel Port + (USB -> Parallel adapter) */ ++ { 0x04e8, 0x0000, USBLP_QUIRK_RESET }, /* All Samsung devices */ + { 0, 0 } + }; + +@@ -256,7 +264,12 @@ + } + + g.print_fd = print_fd; +- g.printer->opened_for_job = 1; ++ ++ /* ++ * Some devices need a reset after finishing a job, these devices are ++ * marked with the USBLP_QUIRK_RESET quirk. ++ */ ++ g.printer->reset_after_job = (g.printer->quirks & USBLP_QUIRK_RESET ? 1 : 0); + + /* + * If we are printing data from a print driver on stdin, ignore SIGTERM +@@ -772,7 +785,7 @@ + * Reset the device to clean up after the job + */ + +- if (printer->opened_for_job == 1) ++ if (printer->reset_after_job == 1) + { + if ((errcode = libusb_reset_device(printer->handle)) < 0) + fprintf(stderr, +@@ -1288,7 +1301,7 @@ + } + + printer->usblp_attached = 0; +- printer->opened_for_job = 0; ++ printer->reset_after_job = 0; + + if (verbose) + fputs("STATE: +connecting-to-device\n", stderr); +@@ -1586,7 +1599,8 @@ + for (i = 0; quirk_printers[i].vendorId; i++) + { + if (vendor == quirk_printers[i].vendorId && +- product == quirk_printers[i].productId) ++ (quirk_printers[i].productId == 0x0000 || ++ product == quirk_printers[i].productId)) + return quirk_printers[i].quirks; + } + return 0; diff --git a/cups-1.7.0-statedir.patch b/cups-1.7.0-statedir.patch new file mode 100644 index 0000000..759a249 --- /dev/null +++ b/cups-1.7.0-statedir.patch @@ -0,0 +1,11 @@ +--- cups-1.7.0/config-scripts/cups-directories.m4.orig 2013-10-25 12:46:35.823499667 +0200 ++++ cups-1.7.0/config-scripts/cups-directories.m4 2013-10-25 12:46:43.520422900 +0200 +@@ -420,7 +420,7 @@ + ;; + *) + # All others +- CUPS_STATEDIR="$localstatedir/run/cups" ++ CUPS_STATEDIR="/run/cups" + ;; + esac]) + AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$CUPS_STATEDIR") diff --git a/cups-initscript b/cups-initscript new file mode 100644 index 0000000..80afc7c --- /dev/null +++ b/cups-initscript @@ -0,0 +1,213 @@ +#!/bin/sh +# +# "$Id: cups.sh.in,v 1.22 2002/12/17 18:56:27 swdev Exp $" +# +# Startup/shutdown script for the Common UNIX Printing System (CUPS). +# +# Copyright 1997-2003 by Easy Software Products, all rights reserved. +# +# These coded instructions, statements, and computer programs are the +# property of Easy Software Products and are protected by Federal +# copyright law. Distribution and use rights are outlined in the file +# "LICENSE.txt" which should have been included with this file. If this +# file is missing or damaged please contact Easy Software Products +# at: +# +# Attn: CUPS Licensing Information +# Easy Software Products +# 44141 Airport View Drive, Suite 204 +# Hollywood, Maryland 20636-3111 USA +# +# Voice: (301) 373-9603 +# EMail: cups-info@cups.org +# WWW: http://www.cups.org +# + +#### OS-Dependent Information + +# +# Linux chkconfig stuff: +# +# chkconfig: 235 99 00 +# description: Startup/shutdown script for the Common UNIX \ +# Printing System (CUPS). +# + +# +# NetBSD 1.5+ rcorder script lines. The format of the following two +# lines is very strict -- please don't add additional spaces! +# +# PROVIDE: cups +# REQUIRE: DAEMON +# + + +#### OS-Dependent Configuration + +case "`uname`" in + IRIX*) + IS_ON=/sbin/chkconfig + + if $IS_ON verbose; then + ECHO=echo + else + ECHO=: + fi + ECHO_OK=: + ECHO_ERROR=: + ;; + + *BSD*) + IS_ON=: + ECHO=echo + ECHO_OK=: + ECHO_ERROR=: + ;; + + Darwin*) + . /etc/rc.common + + if test "${CUPS:=-YES-}" = "-NO-"; then + exit 0 + fi + + IS_ON=: + ECHO=ConsoleMessage + ECHO_OK=: + ECHO_ERROR=: + ;; + + Linux*) + IS_ON=/bin/true + if test -f /etc/init.d/functions; then + . /etc/init.d/functions + ECHO=echo + ECHO_OK="echo_success" + ECHO_ERROR="echo_failure" + else + ECHO=echo + ECHO_OK=: + ECHO_ERROR=: + fi + ;; + + *) + IS_ON=/bin/true + ECHO=echo + ECHO_OK=: + ECHO_ERROR=: + ;; +esac + +#### OS-Independent Stuff + +# +# Set the timezone, if possible... This allows the +# scheduler and all child processes to know the local +# timezone when reporting dates and times to the user. +# If no timezone information is found, then Greenwich +# Mean Time (GMT) will probably be used. +# + +for file in /etc/TIMEZONE /etc/rc.config /etc/sysconfig/clock; do + if test -f $file; then + . $file + fi +done + +if test "x$ZONE" != x; then + TZ="$ZONE" +fi + +if test "x$TIMEZONE" != x; then + TZ="$TIMEZONE" +fi + +if test "x$TZ" != x; then + export TZ +fi + +# +# See if the CUPS server (cupsd) is running... +# + +case "`uname`" in + HP-UX* | AIX* | SINIX*) + pid=`ps -e | awk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'` + ;; + IRIX* | SunOS*) + pid=`ps -e | nawk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'` + ;; + UnixWare*) + pid=`ps -e | awk '{if (match($6, ".*/cupsd$") || $6 == "cupsd") print $1}'` + . /etc/TIMEZONE + ;; + OSF1*) + pid=`ps -e | awk '{if (match($5, ".*/cupsd$") || $5 == "cupsd") print $1}'` + ;; + Linux* | *BSD* | Darwin*) + pid=`ps ax | awk '{if (match($5, ".*/cupsd$") || $5 == "cupsd") print $1}'` + ;; + *) + pid="" + ;; +esac + +# +# Start or stop the CUPS server based upon the first argument to the script. +# + +case $1 in + start | restart | reload) + echo -n "Starting cups:" + if $IS_ON cups; then + if test "$pid" != ""; then + kill -HUP $pid + else + prefix=/usr + exec_prefix=/usr + ${exec_prefix}/sbin/cupsd + if test $? != 0; then + $ECHO_FAIL + $ECHO "cups: unable to $1 scheduler." + exit 1 + fi + fi + $ECHO_OK + echo + fi + ;; + + stop) + if test "$pid" != ""; then + echo -n "Stopping cups:" + kill $pid + $ECHO_OK + echo + fi + ;; + + status) + if test "$pid" != ""; then + echo "cups: scheduler is running." + else + echo "cups: scheduler is not running." + fi + ;; + + *) + echo "Usage: cups {reload|restart|start|status|stop}" + exit 1 + ;; +esac + +# +# Exit with no errors. +# + +exit 0 + + +# +# End of "$Id: cups.sh.in,v 1.22 2002/12/17 18:56:27 swdev Exp $". +# diff --git a/cups-lpd.socket b/cups-lpd.socket new file mode 100644 index 0000000..f2df79f --- /dev/null +++ b/cups-lpd.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Cups-LPD Activation Socket + +[Socket] +ListenStream=515 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/cups-lpd@.service b/cups-lpd@.service new file mode 100644 index 0000000..c0c8071 --- /dev/null +++ b/cups-lpd@.service @@ -0,0 +1,8 @@ +[Unit] +Description=Lpd Protocol Communicator With CUPS +After=local-fs.target + +[Service] +User=lp +ExecStart=/usr/lib/cups/daemon/cups-lpd +StandardInput=socket diff --git a/cups-pamd b/cups-pamd new file mode 100644 index 0000000..2a5c808 --- /dev/null +++ b/cups-pamd @@ -0,0 +1,8 @@ +#%PAM-1.0 +auth sufficient pam_unix.so +auth include system-auth +account include system-auth +password include system-auth +session include system-auth +session required pam_limits.so +#session optional pam_console.so diff --git a/cups.path b/cups.path new file mode 100644 index 0000000..de8cc57 --- /dev/null +++ b/cups.path @@ -0,0 +1,8 @@ +[Unit] +Description=CUPS Printer Service Spool + +[Path] +PathExistsGlob=/var/spool/cups/d* + +[Install] +WantedBy=multi-user.target diff --git a/cups.service b/cups.service new file mode 100644 index 0000000..72cae98 --- /dev/null +++ b/cups.service @@ -0,0 +1,10 @@ +[Unit] +Description=CUPS Printing Service + +[Service] +ExecStart=/usr/sbin/cupsd -f +PrivateTmp=true + +[Install] +Also=cups.socket cups.path +WantedBy=printer.target diff --git a/cups.socket b/cups.socket new file mode 100644 index 0000000..749965c --- /dev/null +++ b/cups.socket @@ -0,0 +1,10 @@ +[Unit] +Description=CUPS Printing Service Sockets + +[Socket] +ListenStream=/run/cups/cups.sock +ListenStream=631 +BindIPv6Only=ipv6-only + +[Install] +WantedBy=sockets.target diff --git a/cups.spec b/cups.spec new file mode 100644 index 0000000..9d4d693 --- /dev/null +++ b/cups.spec @@ -0,0 +1,463 @@ +%define lpadmin_uid 65032 +%define lpadmin_gid 65032 +%define lp_uid 9 +%define lp_gid 9 + +%define libname libcups + +Name: cups +Version: 1.7.2 +Release: 1mamba +Summary: Common UNIX Printing System +Group: System/Spooling +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.cups.org +Source0: http://www.cups.org/software/%{version}/cups-%{version}-source.tar.bz2 +Source1: cups-pamd +Source2: cups-initscript +Source3: cups.service +Source4: cups.socket +Source5: cups.path +Source6: cups-lpd.socket +Source7: cups-lpd@.service +Patch0: %{name}-1.4.4-str3461-1.4.patch +Patch1: %{name}-1.5.0-set_retry_job_default_ErrorPolicy.patch +Patch2: cups-1.6.1-usb-backend-reset-after-job-only-for-specific-devices-3.patch +Patch3: cups-1.7.0-statedir.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libacl-devel +BuildRequires: libavahi-devel +BuildRequires: libdbus-devel +BuildRequires: libe2fs-devel +BuildRequires: libgcc +BuildRequires: libgcrypt-devel +BuildRequires: libgnutls-devel +BuildRequires: libgpg-error-devel +BuildRequires: libkeyutils-devel +BuildRequires: libkrb5-devel +BuildRequires: libstdc++6-devel +BuildRequires: libusbx-devel +BuildRequires: libz-devel +BuildRequires: pam-devel +## AUTOBUILDREQ-END +Requires: ghostscript >= 8.57 +Requires: openssl +Requires(post):%{libname} = %{version}-%{release} +Requires: cups-filters +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +The Common UNIX Printing System provides a portable printing layer for UNIX operating systems. +It has been developed by Easy Software Products to promote a standard printing solution for all UNIX vendors and users. +CUPS provides the System V and Berkeley command-line interfaces. + +%package -n %{libname}-devel +Summary: Devel package for CUPS +Group: Development/Libraries +Requires: %{libname} = %{version}-%{release} + +%description -n %{libname}-devel +The Common UNIX Printing System ("CUPS") is a cross-platform printing solution for all UNIX environments. +It is based on the "Internet Printing Protocol" and provides complete printing services to most PostScript and raster printers. + +This is the development package. + +%package -n %{libname} +Summary: Libraries for CUPS +Group: System/Libraries + +%description -n %{libname} +The Common UNIX Printing System ("CUPS") is a cross-platform printing solution for all UNIX environments. +It is based on the "Internet Printing Protocol" and provides complete printing services to most PostScript and raster printers. + +%prep +%setup -q +#%patch0 -p1 +%patch1 -p1 +#%patch2 -p0 +%patch3 -p1 + +%build +autoconf +%configure \ + --enable-ssl \ + --enable-static \ + --with-icondir=%{_datadir}/icons \ + --without-xinetd + +# --with-cups-user=lpadmin \ +# --with-cups-group=lpadmin + +%make + +%install +[ "%{buildroot}" != / ] && rm -rf %{buildroot} +%makeinstall BUILDROOT=%{buildroot} CUPS_USER=root CUPS_GROUP=root + +install -D %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/cups +install -d %{buildroot}/var/log/cups +install -d %{buildroot}/var/spool/cups/tmp + +# fake printers.conf, allows %config(noreplace) update from olter rpm releases +touch %{buildroot}%{_sysconfdir}/cups/printers.conf + +# remove unneeded files +#rm -rf %{buildroot}%{_mandir}/{cat1,cat3,cat5,cat8} \ +# %{buildroot}%{_mandir}/es/{cat1,cat3,cat5,cat8} \ +# %{buildroot}%{_mandir}/fr/{cat1,cat3,cat5,cat8} \ + +# cups installs .po files instead of .mo, so the find_lang macro won't work +> %{name}.lang +#for i in da de es eu fi fr hu id it ja ko nl no pl pt pt_BR ru sv zh zh_TW; do +for i in ca cs de es fr it ja ru; do + echo "%lang($i) %{_datadir}/locale/$i/cups_$i.po" >> %{name}.lang +done + +# required by php in cups-filter, although php in cups-filter does not currently build +install -m0644 cups/string-private.h %{buildroot}%{_includedir}/cups/string-private.h +install -m0644 cups/debug-private.h %{buildroot}%{_includedir}/cups/debug-private.h + +# systemd +install -D -m0644 %{SOURCE3} %{buildroot}/lib/systemd/system/cups.service +install -D -m0644 %{SOURCE4} %{buildroot}/lib/systemd/system/cups.socket +install -D -m0644 %{SOURCE5} %{buildroot}/lib/systemd/system/cups.path +install -D -m0644 %{SOURCE6} %{buildroot}/lib/systemd/system/cups-lpd.socket +install -D -m0644 %{SOURCE7} %{buildroot}/lib/systemd/system/cups-lpd@.service + +# basic cups client configuration file +echo "ServerName /run/cups/cups.sock" > %{buildroot}%{_sysconfdir}/cups/client.conf + +# remove files provides by cups-filters +rm -f %{buildroot}%{_datadir}/cups/banners/{classified,confidential,secret,standard,topsecret,unclassified} +rm -f %{buildroot}%{_datadir}/cups/data/testprint + +rm -rf %{buildroot}%{_sysconfdir}/rc*.d/K36cups +rm -rf %{buildroot}%{_sysconfdir}/rc*.d/S81cups + +%clean +[ "%{buildroot}" != / ] && rm -rf %{buildroot} + +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig + +%pre +/usr/sbin/groupadd lp -g %{lp_gid} &>/dev/null +/usr/sbin/useradd lp -d /var/spool/cups -s /bin/false \ + -u %{lp_uid} -g %{lp_gid} &>/dev/null +/usr/sbin/groupadd lpadmin -g %{lpadmin_gid} &>/dev/null +/usr/sbin/useradd lpadmin -c "Cups printing daemon" -d /dev/null \ + -s /bin/false -u %{lpadmin_uid} -g %{lpadmin_gid} &>/dev/null +exit 0 + +%post +# new install +/sbin/ldconfig +if [ $1 -gt 1 ]; then + if [ ! "`grep ErrorPolicy %{_sysconfdir}/cups/cupsd.conf`" ]; then + echo "ErrorPolicy retry-job" >> %{_sysconfdir}/cups/cupsd.conf + [ -e %{_sysconfdir}/cups/printers.conf ] && \ + sed -i "s|ErrorPolicy stop-printer|ErrorPolicy retry-job|" %{_sysconfdir}/cups/printers.conf + fi +fi +: + +%preun +# erase +if [ $1 -eq 0 ]; then + systemctl -q disable cups + systemctl -q cups stop + /usr/sbin/groupdel lp &>/dev/null + /usr/sbin/userdel lp &>/dev/null + /usr/sbin/groupdel lpadmin &>/dev/null + /usr/sbin/userdel lpadmin &>/dev/null +fi +/sbin/ldconfig +: + +%posttrans +if [ $1 -eq 1 ]; then + [ -e %{_sysconfdir}/cups/printers.conf.rpmsave -a \ + ! -e %{_sysconfdir}/cups/printers.conf ] && \ + mv %{_sysconfdir}/cups/printers.conf.rpmsave %{_sysconfdir}/cups/printers.conf + sed -i "s|/var/run|/run|" %{_sysconfdir}/cups/cupsd.conf + systemctl -q daemon-reload + systemctl -q enable cups + systemctl -q try-restart cups +fi +: + +%files -f %{name}.lang +%defattr(-,root,root) +%{_sysconfdir}/dbus-1/system.d/cups.conf +#%{_sysconfdir}/xinetd.d/cups-lpd +%{_sysconfdir}/init.d/cups +%attr(0775,root,lpadmin) %dir %{_sysconfdir}/cups +%config(noreplace) %attr(-,root,lpadmin) %{_sysconfdir}/cups/* +%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/pam.d/cups +%{_bindir}/cancel +%{_bindir}/cupstestppd +%{_bindir}/cupstestdsc +%{_bindir}/ippfind +%{_bindir}/ipptool +%{_bindir}/lp +%{_bindir}/lpoptions +%attr(4755,lp,lp) %{_bindir}/lppasswd +%{_bindir}/lpq +%{_bindir}/lpr +%{_bindir}/lprm +%{_bindir}/lpstat +%{_bindir}/ppdc +%{_bindir}/ppdhtml +%{_bindir}/ppdi +%{_bindir}/ppdmerge +%{_bindir}/ppdpo +%{_sbindir}/accept +%{_sbindir}/cupsaccept +%{_sbindir}/cupsaddsmb +%{_sbindir}/cupsctl +%{_sbindir}/cupsd +%{_sbindir}/cupsdisable +%{_sbindir}/cupsenable +%{_sbindir}/cupsfilter +%{_sbindir}/cupsreject +%{_sbindir}/lpadmin +%{_sbindir}/lpc +%{_sbindir}/lpinfo +%{_sbindir}/lpmove +%{_sbindir}/reject +/lib/systemd/system/cups.path +/lib/systemd/system/cups.service +/lib/systemd/system/cups.socket +/lib/systemd/system/cups-lpd.socket +/lib/systemd/system/cups-lpd@.service +%{_datadir}/applications/cups.desktop +%{_datadir}/icons/hicolor/*/apps/cups.png +%dir %{_datadir}/cups +%{_datadir}/cups/* +%dir %{_prefix}/lib/cups +%{_prefix}/lib/cups/* +%dir /var/log/cups +%attr(0700,lp,root) %dir /var/spool/cups +%attr(1700,lp,root) %dir /var/spool/cups/tmp +%{_mandir}/man1/* +%{_mandir}/man7/backend.7.gz +#%{_mandir}/man7/drv.7.gz +%{_mandir}/man7/filter.7.gz +%{_mandir}/man7/notifier.7.gz +%{_mandir}/man8/* +%dir %{_datadir}/doc/cups +%{_datadir}/doc/cups/* + +%files -n libcups +%defattr(-,root,root) +%{_libdir}/libcups.so.* +%{_libdir}/libcupscgi.so.* +%{_libdir}/libcupsimage.so.* +%{_libdir}/libcupsmime.so.* +%{_libdir}/libcupsppdc.so.* +%{_mandir}/man5/* +%doc CREDITS.txt LICENSE.txt + +%files -n libcups-devel +%defattr(-,root,root) +%{_bindir}/cups-config +%dir %{_includedir}/cups +%{_includedir}/cups/*.h +%{_libdir}/libcups.a +%{_libdir}/libcups.so +%{_libdir}/libcupscgi.a +%{_libdir}/libcupscgi.so +%{_libdir}/libcupsimage.a +%{_libdir}/libcupsimage.so +%{_libdir}/libcupsmime.a +%{_libdir}/libcupsmime.so +%{_libdir}/libcupsppdc.a +%{_libdir}/libcupsppdc.so +%doc CHANGES.txt README.txt + +%changelog +* Sun Apr 13 2014 Automatic Build System 1.7.2-1mamba +- automatic version update by autodist + +* Thu Jan 09 2014 Automatic Build System 1.7.1-1mamba +- automatic version update by autodist + +* Tue Oct 29 2013 Automatic Build System 1.7.0-1mamba +- automatic version update by autodist + +* Sun Sep 29 2013 Silvan Calarco 1.6.4-2mamba +- add systemd sockets for cups-lpd and cups-lpd@ and remove xinetd dependency + +* Fri Sep 27 2013 Automatic Build System 1.6.4-1mamba +- automatic version update by autodist + +* Fri Aug 23 2013 Silvan Calarco 1.6.3-4mamba +- fixed cups.socket to allow connection to http://localhost:631 + +* Fri Aug 02 2013 Silvan Calarco 1.6.3-3mamba +- add systemd file cups.path +- patched to set statedir to /run instead of /var/run +- lp user: set home to /var/spool/cups +- create a basic client configuration file /etc/cups/client.conf (see LFS) + +* Fri Jul 19 2013 Silvan Calarco 1.6.3-2mamba +- systemd support + +* Sun Jul 14 2013 Automatic Build System 1.6.3-1mamba +- update to 1.6.3 + +* Thu Mar 21 2013 Automatic Build System 1.6.2-1mamba +- automatic version update by autodist + +* Sat Sep 29 2012 Silvan Calarco 1.6.1-3mamba +- added patch to fix libusb related last page half-printing (http://cups.org/str.php?L4155) + +* Sun Aug 05 2012 Silvan Calarco 1.6.1-2mamba +- require cups-filters + +* Sat Aug 04 2012 Automatic Build System 1.6.1-1mamba +- automatic version update by autodist + +* Tue Jul 31 2012 Automatic Build System 1.5.4-1mamba +- update to 1.5.4 + +* Tue May 15 2012 Automatic Build System 1.5.3-1mamba +- automatic version update by autodist + +* Sun Feb 12 2012 Automatic Build System 1.5.2-1mamba +- automatic version update by autodist + +* Thu Oct 27 2011 Silvan Calarco 1.5.0-3mamba +- added requirement for openssl (required by https urls in web interface) +- update pam file not to use obsolete pam_stack module, so web authentication works now + +* Mon Oct 03 2011 Silvan Calarco 1.5.0-2mamba +- set retry-job as the default ErrorPolicy instead of stop-printer + +* Thu Jul 28 2011 Automatic Build System 1.5.0-1mamba +- automatic update by autodist + +* Tue Jun 28 2011 Automatic Build System 1.4.7-1mamba +- automatic update by autodist + +* Sat Mar 26 2011 Silvan Calarco 1.4.6-2mamba +- cups-config moved to libcups-devel package + +* Fri Jan 07 2011 Automatic Build System 1.4.6-1mamba +- automatic update by autodist + +* Fri Nov 12 2010 Automatic Build System 1.4.5-1mamba +- automatic update to 1.4.5 by autodist +- fixed posttrans script syntax + +* Tue Jul 01 2010 Ercole 'ercolinux' Carpanetto 1.4.4-3mamba +- rebuilt with a patch to avoid crash in firefox and thunderbird + +* Wed Jun 30 2010 Silvan Calarco 1.4.4-2mamba +- rebuilt against libpng 1.4 + +* Fri Jun 18 2010 Automatic Build System 1.4.4-1mamba +- automatic update to 1.4.4 by autodist + +* Wed Mar 31 2010 Automatic Build System 1.4.3-1mamba +- automatic update to 1.4.3 by autodist + +* Fri Nov 20 2009 Automatic Build System 1.4.2-1mamba +- automatic update by autodist + +* Sat Sep 12 2009 Automatic Build System 1.4.1-1mamba +- automatic update to 1.4.1 by autodist + +* Sat Aug 29 2009 Automatic Build System 1.4.0-1mamba +- automatic update to 1.4.0 by autodist + +* Fri Jul 03 2009 Automatic Build System 1.3.11-1mamba +- automatic update to 1.3.11 by autodist + +* Fri Apr 17 2009 Silvan Calarco 1.3.10-1mamba +- update to 1.3.10 + +* Thu Apr 02 2009 Silvan Calarco 1.3.9-2mamba +- rebuilt + +* Thu Oct 16 2008 Tiziana Ferro 1.3.9-1mamba +- automatic update to 1.3.9 by autodist +- old patch removed + +* Sun Aug 31 2008 Silvan Calarco 1.3.8-1mamba +- update to 1.3.8 + +* Tue Jun 03 2008 Silvan Calarco 1.3.7-1mamba +- update to 1.3.7 + +* Tue Mar 25 2008 Silvan Calarco 1.3.6-1mamba +- update to 1.3.6 + +* Fri Jan 18 2008 Silvan Calarco 1.2.12-1mamba +- update to 1.2.12 +- set lp as the default cups user, replacing lpadmin +- added php-cups subpackage + +* Sun Jun 10 2007 Silvan Calarco 1.2.11-1mamba +- update to 1.2.11 + +* Tue Sep 05 2006 Davide Madrisan 1.1.23-5qilnx +- security fixes: p4 CVE-2005-319[1,2,3], p5 CVE-2005-362[45,6,7,8]; + QiLinux bugtraq#118 + +* Mon Sep 26 2005 Silvan Calarco 1.1.23-4qilnx +- use service script to start/stop service + +* Wed Aug 24 2005 Davide Madrisan 1.1.23-3qilnx +- fixed security issue QSA-2005-090 (CAN-2005-2097) + +* Mon May 02 2005 Silvan Calarco 1.1.23-2qilnx +- work on permissions: added user/group cups, fixed lp uid number assignment +- documentation back to main package because it's needed for the web interface + +* Fri Jan 14 2005 Davide Madrisan 1.1.23-1qilnx +- update to version 1.1.23 by autospec +- this version fix the secutity flaws reported in QSA-2005-001 + (CAN-2004-1125, CAN-2004-12[67-70]) + +* Fri Dec 24 2004 Davide Madrisan 1.1.22-3qilnx +- rebuild with new libe2fs-devel, libkrb5-devel packages + +* Fri Dec 10 2004 Silvan Calarco 1.1.22-2qilnx +- documentation moved to libcups-devel + +* Thu Nov 18 2004 Davide Madrisan 1.1.22-1qilnx +- update to version 1.1.22 by autospec +- also fixes security issues QSA-2004-057 (CAN-2004-0888, CAN-2004-0923) + +* Mon Sep 20 2004 Silvan Calarco 1.1.21-1qilnx +- update to version 1.1.21 by autospec +- also fix a security issue (QSA-2004-040): CAN-2004-0558 + +* Wed Dec 10 2003 Davide Madrisan 1.1.20-1qilnx +- rebuilt with version 1.1.20 + +* Wed Nov 19 2003 Davide Madrisan 1.1.19-8qilnx +- fixed %%pre script; modified rpm groups + +* Thu Oct 02 2003 Silvan Calarco 1.1.19-7qilnx +- made QiLinux compliant initscript + +* Thu Jul 02 2003 Silvan Calarco 1.1.19-6qilnx +- fixed localstatedir location + +* Thu Jun 25 2003 Silvan Calarco 1.1.19-5qilnx +- added libcups and libcups-devel for dependency reasons + +* Thu Jun 19 2003 Silvan Calarco 1.1.19-3qilnx +- reduced to just main and devel packages + +* Thu Jun 19 2003 Silvan Calarco 1.1.19-2qilnx +- added cups pam configuration + +* Wed Jun 18 2003 Silvan Calarco 1.1.19-1qilnx +- first build of cups