From e6013cfab0c8f847ed296695fea1cbef6058bda3 Mon Sep 17 00:00:00 2001 From: msweet Date: Wed, 12 Nov 2008 01:01:46 +0000 Subject: [PATCH] Merge changes from CUPS 1.4svn-r8115. git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1055 a1ca3aef-8c08-0410-bb20-df032aa958be --- CHANGES-1.3.txt | 5 + CHANGES.txt | 16 ++- Makedefs.in | 2 + backend/lpd.c | 2 +- backend/socket.c | 2 +- cgi-bin/Dependencies | 122 ---------------------- cgi-bin/Makefile | 65 +----------- cgi-bin/printers.c | 3 +- config-scripts/cups-common.m4 | 2 +- config-scripts/cups-defaults.m4 | 27 +++++ data/testprint | 2 + doc/Makefile | 1 + doc/images/color-wheel.rgb | Bin 0 -> 31469 bytes driver/Dependencies | 114 --------------------- driver/Makefile | 68 +----------- filter/Dependencies | 27 +++++ filter/Makefile | 4 +- filter/textcommon.c | 3 +- filter/texttops.c | 176 +------------------------------- fonts/Makefile | 8 +- locale/cups.pot | 17 ++- man/cancel.man | 4 +- man/classes.conf.man | 4 +- man/client.conf.man.in | 4 +- man/commandtoescpx.man | 4 +- man/commandtopclx.man | 4 +- man/cups-lpd.man.in | 2 +- man/cups-polld.man | 4 +- man/cups-snmp.conf.man | 4 +- man/cupsaddsmb.man.in | 4 +- man/cupsctl.man | 4 +- man/cupsd.man.in | 4 +- man/cupstestdsc.man | 4 +- man/filter.man | 2 +- man/lpadmin.man | 6 +- man/lpc.man | 8 +- man/lpmove.man | 4 +- man/lprm.man | 4 +- man/mailto.conf.man | 4 +- man/mime.convs.man | 4 +- man/printers.conf.man | 4 +- man/subscriptions.conf.man | 4 +- packaging/cups.spec.in | 7 +- ppdc/Dependencies | 8 +- ppdc/Makefile | 2 +- ppdc/ppdc-catalog.cxx | 13 ++- ppdc/sample.drv | 40 ++++---- scheduler/Dependencies | 20 ---- scheduler/Makefile | 68 +----------- scheduler/client.c | 44 +++++++- scheduler/cupsfilter.c | 27 +++-- scheduler/job.c | 14 ++- scheduler/main.c | 148 ++++++++++++++++----------- scheduler/printers.c | 21 +++- scheduler/printers.h | 2 - scheduler/sysman.c | 34 +++++- scheduler/sysman.h | 4 + 57 files changed, 403 insertions(+), 801 deletions(-) create mode 100644 doc/images/color-wheel.rgb diff --git a/CHANGES-1.3.txt b/CHANGES-1.3.txt index f50af051b..d9ea9ca1d 100644 --- a/CHANGES-1.3.txt +++ b/CHANGES-1.3.txt @@ -3,6 +3,11 @@ CHANGES-1.3.txt CHANGES IN CUPS V1.3.10 + - The scheduler now rejects ATTR: messages with empty values. + - The scheduler could consume all CPU handling closed connections + (STR #2988) + - The scheduler now protects against DNS rebinding attacks on + localhost. - SECURITY: The PNG image reading code did not validate the image size properly, leading to a potential buffer overflow (STR #2974) diff --git a/CHANGES.txt b/CHANGES.txt index 508451547..f92ab127e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,20 @@ -CHANGES.txt - 2008-10-10 +CHANGES.txt - 2008-11-11 ------------------------ +CHANGES IN CUPS V1.4b2 + + - Fixed a PPD compiler problem with the loading of message + catalogs (STR #2990) + - Fixed a PPD compiler problem with the loading of .strings files + (STR #2989) + - The cupsfilter utility did not set the CONTENT_TYPE environment + variable when running filters. + - The scheduler now waits to allow system sleep until the jobs + have all stopped. + - The IPP, LPD, and socket backends used different "connecting" + progress messages. + + CHANGES IN CUPS V1.4b1 - Documentation updates (STR #2567) diff --git a/Makedefs.in b/Makedefs.in index c756e0283..8753db79f 100644 --- a/Makedefs.in +++ b/Makedefs.in @@ -122,6 +122,7 @@ ALL_CXXFLAGS = -I.. -D_CUPS_SOURCE $(CXXFLAGS) $(SSLFLAGS) \ ARCHFLAGS = @ARCHFLAGS@ ARFLAGS = @ARFLAGS@ BACKLIBS = @BACKLIBS@ +BANNERTOPS = @BANNERTOPS@ CFLAGS = @CPPFLAGS@ @CFLAGS@ COMMONLIBS = @LIBS@ CUPSDLIBS = @CUPSDLIBS@ @@ -155,6 +156,7 @@ PHPDIR = @PHPDIR@ PHPOPTIONS = @PHPOPTIONS@ -I../.. `$(PHPCONFIG) --includes` SSLFLAGS = @SSLFLAGS@ SSLLIBS = @SSLLIBS@ +TEXTTOPS = @TEXTTOPS@ UNITTESTS = @UNITTESTS@ diff --git a/backend/lpd.c b/backend/lpd.c index 19d1f2f75..a543c27f7 100644 --- a/backend/lpd.c +++ b/backend/lpd.c @@ -698,7 +698,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */ fputs("STATE: +connecting-to-device\n", stderr); _cupsLangPrintf(stderr, - _("INFO: Attempting to connect to host %s for printer %s\n"), + _("INFO: Connecting to %s for printer %s\n"), hostname, printer); for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist, diff --git a/backend/socket.c b/backend/socket.c index 01d6d0472..067d2d739 100644 --- a/backend/socket.c +++ b/backend/socket.c @@ -267,7 +267,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ } _cupsLangPrintf(stderr, - _("INFO: Attempting to connect to host %s on port %d\n"), + _("INFO: Connecting to %s on port %d\n"), hostname, port); fputs("STATE: +connecting-to-device\n", stderr); diff --git a/cgi-bin/Dependencies b/cgi-bin/Dependencies index 3c913998b..c417e9693 100644 --- a/cgi-bin/Dependencies +++ b/cgi-bin/Dependencies @@ -59,125 +59,3 @@ testtemplate.o: help-index.h websearch.o: cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h websearch.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h websearch.o: ../cups/file.h ../cups/language.h ../cups/array.h help-index.h -# DO NOT DELETE - -help-index.32.o: help-index.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -help-index.32.o: help-index.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -help-index.32.o: help-index.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h -help-index.32.o: help-index.c ../cups/debug.h ../cups/i18n.h ../cups/transcode.h -help-index.32.o: help-index.c ../cups/string.h ../config.h ../cups/dir.h -html.32.o: html.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -html.32.o: html.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -html.32.o: html.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -html.32.o: html.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -ipp-var.32.o: ipp-var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -ipp-var.32.o: ipp-var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -ipp-var.32.o: ipp-var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -ipp-var.32.o: ipp-var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -search.32.o: search.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -search.32.o: search.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -search.32.o: search.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -search.32.o: search.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -template.32.o: template.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -template.32.o: template.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -template.32.o: template.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -template.32.o: template.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -var.32.o: var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -var.32.o: var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -var.32.o: var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -var.32.o: var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -admin.32.o: admin.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -admin.32.o: admin.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -admin.32.o: admin.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -admin.32.o: admin.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -admin.32.o: admin.c ../cups/adminutil.h ../cups/cups.h ../cups/file.h -classes.32.o: classes.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -classes.32.o: classes.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -classes.32.o: classes.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -classes.32.o: classes.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -help.32.o: help.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -help.32.o: help.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -help.32.o: help.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -help.32.o: help.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -jobs.32.o: jobs.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -jobs.32.o: jobs.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -jobs.32.o: jobs.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -jobs.32.o: jobs.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -printers.32.o: printers.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -printers.32.o: printers.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -printers.32.o: printers.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -printers.32.o: printers.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -testcgi.32.o: testcgi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testcgi.32.o: testcgi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -testcgi.32.o: testcgi.c ../cups/language.h ../cups/array.h help-index.h -testhi.32.o: testhi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testhi.32.o: testhi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -testhi.32.o: testhi.c ../cups/language.h ../cups/array.h help-index.h -testtemplate.32.o: testtemplate.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testtemplate.32.o: testtemplate.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -testtemplate.32.o: testtemplate.c ../cups/file.h ../cups/language.h ../cups/array.h -testtemplate.32.o: testtemplate.c help-index.h -websearch.32.o: websearch.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -websearch.32.o: websearch.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -websearch.32.o: websearch.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h -# DO NOT DELETE - -help-index.64.o: help-index.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -help-index.64.o: help-index.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -help-index.64.o: help-index.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h -help-index.64.o: help-index.c ../cups/debug.h ../cups/i18n.h ../cups/transcode.h -help-index.64.o: help-index.c ../cups/string.h ../config.h ../cups/dir.h -html.64.o: html.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -html.64.o: html.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -html.64.o: html.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -html.64.o: html.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -ipp-var.64.o: ipp-var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -ipp-var.64.o: ipp-var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -ipp-var.64.o: ipp-var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -ipp-var.64.o: ipp-var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -search.64.o: search.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -search.64.o: search.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -search.64.o: search.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -search.64.o: search.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -template.64.o: template.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -template.64.o: template.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -template.64.o: template.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -template.64.o: template.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -var.64.o: var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -var.64.o: var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -var.64.o: var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -var.64.o: var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -admin.64.o: admin.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -admin.64.o: admin.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -admin.64.o: admin.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -admin.64.o: admin.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -admin.64.o: admin.c ../cups/adminutil.h ../cups/cups.h ../cups/file.h -classes.64.o: classes.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -classes.64.o: classes.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -classes.64.o: classes.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -classes.64.o: classes.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -help.64.o: help.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -help.64.o: help.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -help.64.o: help.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -help.64.o: help.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -jobs.64.o: jobs.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -jobs.64.o: jobs.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -jobs.64.o: jobs.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -jobs.64.o: jobs.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -printers.64.o: printers.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -printers.64.o: printers.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -printers.64.o: printers.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h -printers.64.o: printers.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h -testcgi.64.o: testcgi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testcgi.64.o: testcgi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -testcgi.64.o: testcgi.c ../cups/language.h ../cups/array.h help-index.h -testhi.64.o: testhi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testhi.64.o: testhi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -testhi.64.o: testhi.c ../cups/language.h ../cups/array.h help-index.h -testtemplate.64.o: testtemplate.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testtemplate.64.o: testtemplate.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -testtemplate.64.o: testtemplate.c ../cups/file.h ../cups/language.h ../cups/array.h -testtemplate.64.o: testtemplate.c help-index.h -websearch.64.o: websearch.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -websearch.64.o: websearch.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -websearch.64.o: websearch.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h diff --git a/cgi-bin/Makefile b/cgi-bin/Makefile index 0e35492b0..b94cf0840 100644 --- a/cgi-bin/Makefile +++ b/cgi-bin/Makefile @@ -22,12 +22,8 @@ LIBOBJS = \ search.o \ template.o \ var.o -LIB32OBJS = $(LIBOBJS:.o=.32.o) -LIB64OBJS = $(LIBOBJS:.o=.64.o) OBJS = \ $(LIBOBJS) \ - $(LIB32OBJS) \ - $(LIB64OBJS) \ admin.o \ classes.o \ help.o \ @@ -46,8 +42,6 @@ CGIS = \ LIBTARGETS = \ libcupscgi.a \ $(LIBCUPSCGI) \ - $(LIB32CUPSCGI) \ - $(LIB32CUPSCGI) \ websearch UNITTARGETS = \ @@ -88,7 +82,6 @@ unittests: $(UNITTARGETS) clean: $(RM) $(OBJS) $(TARGETS) $(UNITTARGETS) $(RM) libcupscgi.so libcupscgi.sl libcupscgi.dylib - $(RM) -r 32bit 64bit # @@ -96,13 +89,7 @@ clean: # depend: - touch Dependencies.tmp - makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1 - $(RM) Dependencies - cp Dependencies.tmp Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies - $(RM) Dependencies.tmp + makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1 # @@ -151,7 +138,7 @@ install-headers: # Install libraries... # -install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64) +install-libs: $(INSTALLSTATIC) echo Installing libraries in $(LIBDIR)... $(INSTALL_DIR) -m 755 $(LIBDIR) $(INSTALL_LIB) $(LIBCUPSCGI) $(LIBDIR) @@ -173,24 +160,12 @@ installstatic: $(INSTALL_LIB) libcupscgi.a $(LIBDIR) $(RANLIB) $(LIBDIR)/libcupscgi.a -install32bit: - echo Installing libraries in $(LIB32DIR)... - $(INSTALL_DIR) -m 755 $(LIB32DIR) - $(INSTALL_LIB) 32bit/libcupscgi.so.1 $(LIB32DIR)/libcupscgi.so.1 - $(LN) libcupscgi.so.1 $(LIB32DIR)/libcupscgi.so - -install64bit: - echo Installing libraries in $(LIB64DIR)... - $(INSTALL_DIR) -m 755 $(LIB64DIR) - $(INSTALL_LIB) 64bit/libcupscgi.so.1 $(LIB64DIR)/libcupscgi.so.1 - $(LN) libcupscgi.so.1 $(LIB64DIR)/libcupscgi.so - # # Uninstall all targets... # -uninstall: $(UNINSTALL32) $(UNINSTALL64) +uninstall: for file in $(CGIS); do \ $(RM) $(SERVERBIN)/cgi-bin/$$file; \ done @@ -208,16 +183,6 @@ uninstall: $(UNINSTALL32) $(UNINSTALL64) $(RM) $(INCLUDEDIR)/cups/help-index.h -$(RMDIR) $(INCLUDEDIR)/cups -uninstall32bit: - $(RM) $(LIB32DIR)/libcupscgi.so - $(RM) $(LIB32DIR)/libcupscgi.so.1 - -$(RMDIR) $(LIB32DIR) - -uninstall64bit: - $(RM) $(LIB64DIR)/libcupscgi.so - $(RM) $(LIB64DIR)/libcupscgi.so.1 - -$(RMDIR) $(LIB64DIR) - # # Automatic API help files... @@ -250,30 +215,6 @@ libcupscgi.so.1 libcupscgi.sl.1: $(LIBOBJS) $(LN) $@ `basename $@ .1` -# -# 32bit/libcupscgi.so.1 -# - -32bit/libcupscgi.so.1: $(LIB32OBJS) - echo Linking 32-bit $@... - -mkdir 32bit - $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS) - $(RM) 32bit/libcupscgi.so - $(LN) libcupscgi.so.1 32bit/libcupscgi.so - - -# -# 64bit/libcupscgi.so.1 -# - -64bit/libcupscgi.so.1: $(LIB64OBJS) - echo Linking 64-bit $@... - -mkdir 64bit - $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS) - $(RM) 64bit/libcupscgi.so - $(LN) libcupscgi.so.1 64bit/libcupscgi.so - - # # libcupscgi.1.dylib # diff --git a/cgi-bin/printers.c b/cgi-bin/printers.c index d3e0224fd..300d4869e 100644 --- a/cgi-bin/printers.c +++ b/cgi-bin/printers.c @@ -294,8 +294,7 @@ show_all_printers(http_t *http, /* I - Connection to server */ ipp_t *request, /* IPP request */ *response; /* IPP response */ cups_array_t *printers; /* Array of printer objects */ - ipp_attribute_t *printer, /* Printer object */ - *attr; /* Current attribute */ + ipp_attribute_t *printer; /* Printer object */ int ascending, /* Order of printers (0 = descending) */ first, /* First printer to show */ count; /* Number of printers */ diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 index 97431c371..042145f0f 100644 --- a/config-scripts/cups-common.m4 +++ b/config-scripts/cups-common.m4 @@ -20,7 +20,7 @@ dnl Set the name of the config header file... AC_CONFIG_HEADER(config.h) dnl Version number information... -CUPS_VERSION="1.4b1" +CUPS_VERSION="1.4b2" CUPS_REVISION="" #if test -z "$CUPS_REVISION" -a -d .svn; then # CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`" diff --git a/config-scripts/cups-defaults.m4 b/config-scripts/cups-defaults.m4 index 7efd78363..023f13cc0 100644 --- a/config-scripts/cups-defaults.m4 +++ b/config-scripts/cups-defaults.m4 @@ -413,6 +413,33 @@ AC_ARG_WITH(ipp-port, [ --with-ipp-port set default port number for IPP AC_SUBST(DEFAULT_IPP_PORT) AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT) +dnl Filters +AC_ARG_ENABLE(bannertops, [ --enable-bannertops build with default banner filter, default=auto ]) +AC_ARG_ENABLE(texttops, [ --enable-texttops build with default text filter, default=auto ]) + +if test "x$enable_bannertops" = xno; then + BANNERTOPS="" +elif test "x$enable_bannertops" = xyes; then + BANNERTOPS="bannertops" +elif test $uname = Darwin; then + BANNERTOPS="" +else + BANNERTOPS="bannertops" +fi + +if test "x$enable_texttops" = xno; then + TEXTTOPS="" +elif test "x$enable_texttops" = xyes; then + TEXTTOPS="texttops" +elif test $uname = Darwin; then + TEXTTOPS="" +else + TEXTTOPS="texttops" +fi + +AC_SUBST(BANNERTOPS) +AC_SUBST(TEXTTOPS) + dnl dnl End of "$Id: cups-defaults.m4 7959 2008-09-17 19:30:58Z mike $". dnl diff --git a/data/testprint b/data/testprint index 1a8270ddb..d76f84e1c 100644 --- a/data/testprint +++ b/data/testprint @@ -4,3 +4,5 @@ Header Printer Test Page Footer Printer Test Page Notice This test page was produced by CUPS 1.4. Image images/cups.rgb +Image images/color-wheel.rgb + diff --git a/doc/Makefile b/doc/Makefile index 1373dea68..1792e0870 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -26,6 +26,7 @@ WEBPAGES = \ index.html \ robots.txt WEBIMAGES = \ + images/color-wheel.rgb \ images/cups.png \ images/cups.rgb \ images/cups-block-diagram.gif \ diff --git a/doc/images/color-wheel.rgb b/doc/images/color-wheel.rgb new file mode 100644 index 0000000000000000000000000000000000000000..f01f4c5dc9fc05e9bf5b06820555d184ccb17833 GIT binary patch literal 31469 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 w_fZZ2@K-|0iMDKX#`@YXATM literal 0 Hc-jL100001 diff --git a/driver/Dependencies b/driver/Dependencies index 2ff3e4390..a89ca293f 100644 --- a/driver/Dependencies +++ b/driver/Dependencies @@ -55,117 +55,3 @@ rgb.o: ../cups/language.h ../cups/raster.h srgb.o: driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h srgb.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h srgb.o: ../cups/language.h ../cups/raster.h -# DO NOT DELETE - -commandtoescpx.32.o: commandtoescpx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h -commandtoescpx.32.o: commandtoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -commandtoescpx.32.o: commandtoescpx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h -commandtoescpx.32.o: commandtoescpx.c ../cups/string.h ../config.h ../data/escp.h -commandtopclx.32.o: commandtopclx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h -commandtopclx.32.o: commandtopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -commandtopclx.32.o: commandtopclx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h -commandtopclx.32.o: commandtopclx.c ../cups/string.h ../config.h ../data/pcl.h -rastertoescpx.32.o: rastertoescpx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -rastertoescpx.32.o: rastertoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -rastertoescpx.32.o: rastertoescpx.c ../cups/file.h ../cups/language.h ../cups/raster.h -rastertoescpx.32.o: rastertoescpx.c ../cups/string.h ../config.h ../data/escp.h -rastertopclx.32.o: rastertopclx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -rastertopclx.32.o: rastertopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -rastertopclx.32.o: rastertopclx.c ../cups/file.h ../cups/language.h ../cups/raster.h -rastertopclx.32.o: rastertopclx.c pcl-common.h ../cups/string.h ../config.h ../data/pcl.h -pcl-common.32.o: pcl-common.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -pcl-common.32.o: pcl-common.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -pcl-common.32.o: pcl-common.c ../cups/file.h ../cups/language.h ../cups/raster.h pcl-common.h -pcl-common.32.o: pcl-common.c ../cups/string.h ../config.h ../data/pcl.h -testcmyk.32.o: testcmyk.c ../cups/string.h ../config.h driver.h ../cups/cups.h -testcmyk.32.o: testcmyk.c ../cups/ipp.h ../cups/http.h ../cups/versioning.h ../cups/ppd.h -testcmyk.32.o: testcmyk.c ../cups/array.h ../cups/file.h ../cups/language.h -testcmyk.32.o: testcmyk.c ../cups/raster.h -testdither.32.o: testdither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testdither.32.o: testdither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -testdither.32.o: testdither.c ../cups/file.h ../cups/language.h ../cups/raster.h -testdither.32.o: testdither.c ../cups/string.h ../config.h -testrgb.32.o: testrgb.c ../cups/string.h ../config.h driver.h ../cups/cups.h ../cups/ipp.h -testrgb.32.o: testrgb.c ../cups/http.h ../cups/versioning.h ../cups/ppd.h ../cups/array.h -testrgb.32.o: testrgb.c ../cups/file.h ../cups/language.h ../cups/raster.h -attr.32.o: attr.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -attr.32.o: attr.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -attr.32.o: attr.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h -check.32.o: check.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -check.32.o: check.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -check.32.o: check.c ../cups/language.h ../cups/raster.h -cmyk.32.o: cmyk.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -cmyk.32.o: cmyk.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -cmyk.32.o: cmyk.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h -dither.32.o: dither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -dither.32.o: dither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -dither.32.o: dither.c ../cups/language.h ../cups/raster.h -lut.32.o: lut.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -lut.32.o: lut.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -lut.32.o: lut.c ../cups/language.h ../cups/raster.h -pack.32.o: pack.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -pack.32.o: pack.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -pack.32.o: pack.c ../cups/language.h ../cups/raster.h -rgb.32.o: rgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -rgb.32.o: rgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -rgb.32.o: rgb.c ../cups/language.h ../cups/raster.h -srgb.32.o: srgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -srgb.32.o: srgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -srgb.32.o: srgb.c ../cups/language.h ../cups/raster.h -# DO NOT DELETE - -commandtoescpx.64.o: commandtoescpx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h -commandtoescpx.64.o: commandtoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -commandtoescpx.64.o: commandtoescpx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h -commandtoescpx.64.o: commandtoescpx.c ../cups/string.h ../config.h ../data/escp.h -commandtopclx.64.o: commandtopclx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h -commandtopclx.64.o: commandtopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -commandtopclx.64.o: commandtopclx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h -commandtopclx.64.o: commandtopclx.c ../cups/string.h ../config.h ../data/pcl.h -rastertoescpx.64.o: rastertoescpx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -rastertoescpx.64.o: rastertoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -rastertoescpx.64.o: rastertoescpx.c ../cups/file.h ../cups/language.h ../cups/raster.h -rastertoescpx.64.o: rastertoescpx.c ../cups/string.h ../config.h ../data/escp.h -rastertopclx.64.o: rastertopclx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -rastertopclx.64.o: rastertopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -rastertopclx.64.o: rastertopclx.c ../cups/file.h ../cups/language.h ../cups/raster.h -rastertopclx.64.o: rastertopclx.c pcl-common.h ../cups/string.h ../config.h ../data/pcl.h -pcl-common.64.o: pcl-common.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -pcl-common.64.o: pcl-common.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -pcl-common.64.o: pcl-common.c ../cups/file.h ../cups/language.h ../cups/raster.h pcl-common.h -pcl-common.64.o: pcl-common.c ../cups/string.h ../config.h ../data/pcl.h -testcmyk.64.o: testcmyk.c ../cups/string.h ../config.h driver.h ../cups/cups.h -testcmyk.64.o: testcmyk.c ../cups/ipp.h ../cups/http.h ../cups/versioning.h ../cups/ppd.h -testcmyk.64.o: testcmyk.c ../cups/array.h ../cups/file.h ../cups/language.h -testcmyk.64.o: testcmyk.c ../cups/raster.h -testdither.64.o: testdither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -testdither.64.o: testdither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h -testdither.64.o: testdither.c ../cups/file.h ../cups/language.h ../cups/raster.h -testdither.64.o: testdither.c ../cups/string.h ../config.h -testrgb.64.o: testrgb.c ../cups/string.h ../config.h driver.h ../cups/cups.h ../cups/ipp.h -testrgb.64.o: testrgb.c ../cups/http.h ../cups/versioning.h ../cups/ppd.h ../cups/array.h -testrgb.64.o: testrgb.c ../cups/file.h ../cups/language.h ../cups/raster.h -attr.64.o: attr.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -attr.64.o: attr.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -attr.64.o: attr.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h -check.64.o: check.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -check.64.o: check.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -check.64.o: check.c ../cups/language.h ../cups/raster.h -cmyk.64.o: cmyk.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -cmyk.64.o: cmyk.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -cmyk.64.o: cmyk.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h -dither.64.o: dither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -dither.64.o: dither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -dither.64.o: dither.c ../cups/language.h ../cups/raster.h -lut.64.o: lut.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -lut.64.o: lut.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -lut.64.o: lut.c ../cups/language.h ../cups/raster.h -pack.64.o: pack.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -pack.64.o: pack.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -pack.64.o: pack.c ../cups/language.h ../cups/raster.h -rgb.64.o: rgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -rgb.64.o: rgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -rgb.64.o: rgb.c ../cups/language.h ../cups/raster.h -srgb.64.o: srgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h -srgb.64.o: srgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h -srgb.64.o: srgb.c ../cups/language.h ../cups/raster.h diff --git a/driver/Makefile b/driver/Makefile index 4692ff964..d0078a88f 100644 --- a/driver/Makefile +++ b/driver/Makefile @@ -33,9 +33,6 @@ LIBOBJS = \ pack.o \ rgb.o \ srgb.o -LIB32OBJS = $(LIBOBJS:.o=.32.o) -LIB64OBJS = $(LIBOBJS:.o=.64.o) - OBJS = \ commandtoescpx.o \ commandtopclx.o \ @@ -45,14 +42,10 @@ OBJS = \ testcmyk.o \ testdither.o \ testrgb.o \ - $(LIBOBJS) \ - $(LIB32OBJS) \ - $(LIB64OBJS) + $(LIBOBJS) LIBTARGETS = \ $(LIBCUPSDRIVER) \ - $(LIB32CUPSDRIVER) \ - $(LIB64CUPSDRIVER) \ libcupsdriver.a UNITTARGETS = \ testcmyk \ @@ -97,7 +90,6 @@ clean: $(RM) $(TARGETS) $(UNITTARGETS) $(RM) -r test $(RM) libcupsdriver.so libcupsdriver.sl libcupsdriver.dylib - $(RM) -r 32bit 64bit # @@ -105,13 +97,7 @@ clean: # depend: - touch Dependencies.tmp - makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1 - $(RM) Dependencies - cp Dependencies.tmp Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies - $(RM) Dependencies.tmp + makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1 # @@ -159,7 +145,7 @@ install-headers: # Install libraries... # -install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64) +install-libs: $(INSTALLSTATIC) echo Installing libraries in $(LIBDIR)... $(INSTALL_DIR) -m 755 $(LIBDIR) $(INSTALL_LIB) $(LIBCUPSDRIVER) $(LIBDIR) @@ -181,24 +167,12 @@ installstatic: $(INSTALL_LIB) libcupsdriver.a $(LIBDIR) $(RANLIB) $(LIBDIR)/libcupsdriver.a -install32bit: - echo Installing libraries in $(LIB32DIR)... - $(INSTALL_DIR) -m 755 $(LIB32DIR) - $(INSTALL_LIB) 32bit/libcupsdriver.so.1 $(LIB32DIR)/libcupsdriver.so.1 - $(LN) libcupsdriver.so.1 $(LIB32DIR)/libcupsdriver.so - -install64bit: - echo Installing libraries in $(LIB64DIR)... - $(INSTALL_DIR) -m 755 $(LIB64DIR) - $(INSTALL_LIB) 64bit/libcupsdriver.so.1 $(LIB64DIR)/libcupsdriver.so.1 - $(LN) libcupsdriver.so.1 $(LIB64DIR)/libcupsdriver.so - # # Uninstall... # -uninstall: $(UNINSTALL32) $(UNINSTALL64) +uninstall: for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \ $(RM) $(SERVERBIN)/filter/$$file; \ done @@ -214,16 +188,6 @@ uninstall: $(UNINSTALL32) $(UNINSTALL64) $(RM) $(INCLUDEDIR)/cups/driver.h -$(RMDIR) $(INCLUDEDIR)/cups -uninstall32bit: - $(RM) $(LIB32DIR)/libcupsdriver.so - $(RM) $(LIB32DIR)/libcupsdriver.so.1 - -$(RMDIR) $(LIB32DIR) - -uninstall64bit: - $(RM) $(LIB64DIR)/libcupsdriver.so - $(RM) $(LIB64DIR)/libcupsdriver.so.1 - -$(RMDIR) $(LIB64DIR) - # # Automatic API help files... @@ -349,30 +313,6 @@ libcupsdriver.so.1 libcupsdriver.sl.1: $(LIBOBJS) $(LN) $@ `basename $@ .1` -# -# 32bit/libcupsdriver.so.1 -# - -32bit/libcupsdriver.so.1: $(LIB32OBJS) - echo Linking 32-bit $@... - -mkdir 32bit - $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS) - $(RM) 32bit/libcupsdriver.so - $(LN) libcupsdriver.so.1 32bit/libcupsdriver.so - - -# -# 64bit/libcupsdriver.so.1 -# - -64bit/libcupsdriver.so.1: $(LIB64OBJS) - echo Linking 64-bit $@... - -mkdir 64bit - $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS) - $(RM) 64bit/libcupsdriver.so - $(LN) libcupsdriver.so.1 64bit/libcupsdriver.so - - # # libcupsdriver.1.dylib # diff --git a/filter/Dependencies b/filter/Dependencies index 75cf78cb0..a50962a1a 100644 --- a/filter/Dependencies +++ b/filter/Dependencies @@ -110,6 +110,11 @@ form-tree.o: form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h form-tree.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h form-tree.o: ../cups/file.h ../cups/language.h ../cups/language.h form-tree.o: ../cups/string.h ../config.h +bannertops.o: pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +bannertops.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h +bannertops.o: ../cups/file.h ../cups/language.h ../cups/language.h +bannertops.o: ../cups/string.h ../config.h ../cups/transcode.h image.h +bannertops.o: ../cups/raster.h ../cups/i18n.h ../cups/transcode.h commandtops.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h commandtops.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h commandtops.o: ../cups/file.h ../cups/language.h ../cups/string.h ../config.h @@ -134,6 +139,10 @@ common.o: ../cups/language.h ../cups/language.h ../cups/string.h ../config.h pdftops.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/versioning.h pdftops.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h pdftops.o: ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h +pstext.o: pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +pstext.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h +pstext.o: ../cups/language.h ../cups/language.h ../cups/string.h ../config.h +pstext.o: ../cups/transcode.h ../cups/i18n.h ../cups/transcode.h pstops.o: common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h pstops.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h pstops.o: ../cups/language.h ../cups/language.h ../cups/string.h ../config.h @@ -283,6 +292,11 @@ form-tree.32.o: form-tree.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cup form-tree.32.o: form-tree.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h form-tree.32.o: form-tree.c ../cups/file.h ../cups/language.h ../cups/language.h form-tree.32.o: form-tree.c ../cups/string.h ../config.h +bannertops.32.o: bannertops.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +bannertops.32.o: bannertops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h +bannertops.32.o: bannertops.c ../cups/file.h ../cups/language.h ../cups/language.h +bannertops.32.o: bannertops.c ../cups/string.h ../config.h ../cups/transcode.h image.h +bannertops.32.o: bannertops.c ../cups/raster.h ../cups/i18n.h ../cups/transcode.h commandtops.32.o: commandtops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h commandtops.32.o: commandtops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h commandtops.32.o: commandtops.c ../cups/file.h ../cups/language.h ../cups/string.h ../config.h @@ -307,6 +321,10 @@ common.32.o: common.c ../cups/language.h ../cups/language.h ../cups/string.h .. pdftops.32.o: pdftops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/versioning.h pdftops.32.o: pdftops.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h pdftops.32.o: pdftops.c ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h +pstext.32.o: pstext.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +pstext.32.o: pstext.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h +pstext.32.o: pstext.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h +pstext.32.o: pstext.c ../cups/transcode.h ../cups/i18n.h ../cups/transcode.h pstops.32.o: pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h pstops.32.o: pstops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h pstops.32.o: pstops.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h @@ -456,6 +474,11 @@ form-tree.64.o: form-tree.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cup form-tree.64.o: form-tree.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h form-tree.64.o: form-tree.c ../cups/file.h ../cups/language.h ../cups/language.h form-tree.64.o: form-tree.c ../cups/string.h ../config.h +bannertops.64.o: bannertops.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +bannertops.64.o: bannertops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h +bannertops.64.o: bannertops.c ../cups/file.h ../cups/language.h ../cups/language.h +bannertops.64.o: bannertops.c ../cups/string.h ../config.h ../cups/transcode.h image.h +bannertops.64.o: bannertops.c ../cups/raster.h ../cups/i18n.h ../cups/transcode.h commandtops.64.o: commandtops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h commandtops.64.o: commandtops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h commandtops.64.o: commandtops.c ../cups/file.h ../cups/language.h ../cups/string.h ../config.h @@ -480,6 +503,10 @@ common.64.o: common.c ../cups/language.h ../cups/language.h ../cups/string.h .. pdftops.64.o: pdftops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/versioning.h pdftops.64.o: pdftops.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h pdftops.64.o: pdftops.c ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h +pstext.64.o: pstext.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +pstext.64.o: pstext.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h +pstext.64.o: pstext.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h +pstext.64.o: pstext.c ../cups/transcode.h ../cups/i18n.h ../cups/transcode.h pstops.64.o: pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h pstops.64.o: pstops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h pstops.64.o: pstops.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h diff --git a/filter/Makefile b/filter/Makefile index d87fc97db..45ae1ca7f 100644 --- a/filter/Makefile +++ b/filter/Makefile @@ -19,11 +19,11 @@ include ../Makedefs FILTERS = \ - bannertops \ + $(BANNERTOPS) \ commandtops \ gziptoany \ hpgltops \ - texttops \ + $(TEXTTOPS) \ pstops \ $(IMGFILTERS) \ $(PDFTOPS) \ diff --git a/filter/textcommon.c b/filter/textcommon.c index 52289793d..a32646bce 100644 --- a/filter/textcommon.c +++ b/filter/textcommon.c @@ -45,7 +45,6 @@ lchar_t **Page = NULL; /* Page characters */ int NumPages = 0; /* Number of pages in document */ float CharsPerInch = 10; /* Number of character columns per inch */ float LinesPerInch = 6; /* Number of lines per inch */ -int UTF8 = 0; /* Use UTF-8 encoding? */ int NumKeywords = 0; /* Number of known keywords */ char **Keywords = NULL; /* List of known keywords */ @@ -1167,7 +1166,7 @@ getutf8(FILE *fp) /* I - File to read from */ if ((ch = getc(fp)) == EOF) return (EOF); - if (ch < 0xc0 || !UTF8) /* One byte character? */ + if (ch < 0xc0) /* One byte character? */ return (ch); else if ((ch & 0xe0) == 0xc0) { diff --git a/filter/texttops.c b/filter/texttops.c index 29f5b15c6..d8b6b1430 100644 --- a/filter/texttops.c +++ b/filter/texttops.c @@ -303,184 +303,12 @@ WriteProlog(const char *title, /* I - Title of job */ line[strlen(line) - 1] = '\0'; /* Drop \n */ for (lineptr = line + 7; isspace(*lineptr & 255); lineptr ++); /* Skip whitespace */ - if (strcmp(lineptr, "8bit") == 0) - { - /* - * 8-bit text... - */ - - UTF8 = 0; - NumFonts = 0; - - /* - * Read the font description(s)... - */ - - while (fgets(line, sizeof(line), fp) != NULL) - { - /* - * Skip comment and blank lines... - */ - - if (line[0] == '#' || line[0] == '\n') - continue; - - /* - * Read the font descriptions that should look like: - * - * first last direction width normal [bold italic bold-italic] - */ - - lineptr = line; - - start = strtol(lineptr, &lineptr, 16); - end = strtol(lineptr, &lineptr, 16); - - while (isspace(*lineptr & 255)) - lineptr ++; - - if (!*lineptr) - break; /* Must be a font mapping */ - - valptr = lineptr; - - while (!isspace(*lineptr & 255) && *lineptr) - lineptr ++; - - if (!*lineptr) - { - /* - * Can't have a font without all required values... - */ - - fprintf(stderr, _("ERROR: Bad font description line: %s\n"), valptr); - fclose(fp); - exit(1); - } - - *lineptr++ = '\0'; - - if (strcmp(valptr, "ltor") == 0) - Directions[NumFonts] = 1; - else if (strcmp(valptr, "rtol") == 0) - Directions[NumFonts] = -1; - else - { - fprintf(stderr, _("ERROR: Bad text direction %s\n"), valptr); - fclose(fp); - exit(1); - } - - /* - * Got the direction, now get the width... - */ - - while (isspace(*lineptr & 255)) - lineptr ++; - - valptr = lineptr; - - while (!isspace(*lineptr & 255) && *lineptr) - lineptr ++; - - if (!*lineptr) - { - /* - * Can't have a font without all required values... - */ - - fprintf(stderr, _("ERROR: Bad font description line: %s\n"), valptr); - fclose(fp); - exit(1); - } - - *lineptr++ = '\0'; - - if (strcmp(valptr, "single") == 0) - Widths[NumFonts] = 1; - else if (strcmp(valptr, "double") == 0) - Widths[NumFonts] = 2; - else - { - fprintf(stderr, _("ERROR: Bad text width %s\n"), valptr); - fclose(fp); - exit(1); - } - - /* - * Get the fonts... - */ - - for (i = 0; *lineptr && i < 4; i ++) - { - while (isspace(*lineptr & 255)) - lineptr ++; - - valptr = lineptr; - - while (!isspace(*lineptr & 255) && *lineptr) - lineptr ++; - - if (*lineptr) - *lineptr++ = '\0'; - - if (lineptr > valptr) - Fonts[NumFonts][i] = strdup(valptr); - } - - /* - * Fill in remaining fonts as needed... - */ - - for (j = i; j < 4; j ++) - Fonts[NumFonts][j] = strdup(Fonts[NumFonts][0]); - - /* - * Define the character mappings... - */ - - for (i = start, j = NumFonts * 256; i <= end; i ++, j ++) - Chars[i] = j; - - NumFonts ++; - } - - /* - * Read encoding lines... - */ - - do - { - /* - * Skip comment and blank lines... - */ - - if (line[0] == '#' || line[0] == '\n') - continue; - - /* - * Grab the character and unicode glyph number. - */ - - if (sscanf(line, "%x%x", &ch, &unicode) == 2 && ch < 256) - Codes[Chars[ch]] = unicode; - } - while (fgets(line, sizeof(line), fp) != NULL); - - fclose(fp); - } - else if (strcmp(lineptr, "utf8") == 0) + if (strcmp(lineptr, "utf8") == 0) { /* * UTF-8 (Unicode) text... */ - UTF8 = 1; - - /* - * Read the font descriptions... - */ - NumFonts = 0; while (fgets(line, sizeof(line), fp) != NULL) @@ -1258,7 +1086,7 @@ write_text(const char *s) /* I - String to write */ while (*utf8) { - if (*utf8 < 0xc0 || !UTF8) + if (*utf8 < 0xc0) ch = *utf8 ++; else if ((*utf8 & 0xe0) == 0xc0) { diff --git a/fonts/Makefile b/fonts/Makefile index af4e85161..61b793972 100644 --- a/fonts/Makefile +++ b/fonts/Makefile @@ -74,9 +74,11 @@ install: all install-data install-headers install-libs install-exec install-data: $(INSTALL_DIR) -m 755 $(DATADIR)/fonts - for file in $(FONTS); do \ - $(INSTALL_DATA) $$file $(DATADIR)/fonts; \ - done + if test "x$(BANNERTOPS)" != x -o "x$(TEXTTOPS)" != x; then \ + for file in $(FONTS); do \ + $(INSTALL_DATA) $$file $(DATADIR)/fonts; \ + done \ + fi # diff --git a/locale/cups.pot b/locale/cups.pot index 00eaebe18..5d5444aab 100644 --- a/locale/cups.pot +++ b/locale/cups.pot @@ -3509,16 +3509,6 @@ msgstr "" msgid "INFO: AppleTalk disabled in System Preferences.\n" msgstr "" -#: backend/lpd.c:701 -#, c-format -msgid "INFO: Attempting to connect to host %s for printer %s\n" -msgstr "" - -#: backend/socket.c:270 -#, c-format -msgid "INFO: Attempting to connect to host %s on port %d\n" -msgstr "" - #: backend/ipp.c:1328 msgid "INFO: Canceling print job...\n" msgstr "" @@ -3528,7 +3518,12 @@ msgstr "" msgid "INFO: Connected to %s...\n" msgstr "" -#: backend/ipp.c:526 +#: backend/lpd.c:701 +#, c-format +msgid "INFO: Connecting to %s for printer %s\n" +msgstr "" + +#: backend/ipp.c:526 backend/socket.c:270 #, c-format msgid "INFO: Connecting to %s on port %d...\n" msgstr "" diff --git a/man/cancel.man b/man/cancel.man index babaeed8d..1a107b2b7 100644 --- a/man/cancel.man +++ b/man/cancel.man @@ -3,7 +3,7 @@ .\" .\" cancel man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -69,7 +69,7 @@ Cancel-Jobs operations in \fIcupsd.conf(5)\fR. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cancel.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/classes.conf.man b/man/classes.conf.man index 882192770..1c227095a 100644 --- a/man/classes.conf.man +++ b/man/classes.conf.man @@ -3,7 +3,7 @@ .\" .\" classes.conf man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -112,7 +112,7 @@ Specifies the date/time associated with the state. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: classes.conf.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/client.conf.man.in b/man/client.conf.man.in index 856d6504b..608b41b2d 100644 --- a/man/client.conf.man.in +++ b/man/client.conf.man.in @@ -3,7 +3,7 @@ .\" .\" client.conf man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -43,7 +43,7 @@ connecting to the server .SH SEE ALSO http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: client.conf.man.in 6649 2007-07-11 21:46:42Z mike $". .\" diff --git a/man/commandtoescpx.man b/man/commandtoescpx.man index d860a3798..771c9d845 100644 --- a/man/commandtoescpx.man +++ b/man/commandtoescpx.man @@ -3,7 +3,7 @@ .\" .\" rastertoescpx man page for the CUPS Driver Development Kit. .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2007 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -27,7 +27,7 @@ EPSON-compatible printers and plotters. .SH SEE ALSO cupsprofile(1), ppdc(1), ppdhtml(1), ppdi(1), ppdmerge(1), ppdpo(1), ppdcfile(5), CUPS Driver Developer Kit Manual. .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: commandtoescpx.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/commandtopclx.man b/man/commandtopclx.man index 529a4cf64..931d92831 100644 --- a/man/commandtopclx.man +++ b/man/commandtopclx.man @@ -3,7 +3,7 @@ .\" .\" rastertopclx man page for the CUPS Driver Development Kit. .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2007 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -27,7 +27,7 @@ printers and plotters. .SH SEE ALSO cupsprofile(1), ppdc(1), ppdhtml(1), ppdi(1), ppdmerge(1), ppdpo(1), ppdcfile(5), CUPS Driver Developer Kit Manual. .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: commandtopclx.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/cups-lpd.man.in b/man/cups-lpd.man.in index 59d72453c..e26556ca9 100644 --- a/man/cups-lpd.man.in +++ b/man/cups-lpd.man.in @@ -118,7 +118,7 @@ clients may be unreliable. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cups-lpd.man.in 7835 2008-08-09 06:37:04Z mike $". .\" diff --git a/man/cups-polld.man b/man/cups-polld.man index 17a9719c6..067380a47 100644 --- a/man/cups-polld.man +++ b/man/cups-polld.man @@ -3,7 +3,7 @@ .\" .\" cups-polld man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -32,7 +32,7 @@ This program is started automatically by \fIcupsd\fR for every .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cups-polld.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/cups-snmp.conf.man b/man/cups-snmp.conf.man index bb8e4b8b5..3a77e42e5 100644 --- a/man/cups-snmp.conf.man +++ b/man/cups-snmp.conf.man @@ -3,7 +3,7 @@ .\" .\" snmp.conf man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -67,7 +67,7 @@ will scan the network for printers. .SH SEE ALSO http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cups-snmp.conf.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/cupsaddsmb.man.in b/man/cupsaddsmb.man.in index 00e05ebfa..c825b98b8 100644 --- a/man/cupsaddsmb.man.in +++ b/man/cupsaddsmb.man.in @@ -3,7 +3,7 @@ .\" .\" cupsaddsmb man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -208,7 +208,7 @@ http://localhost:631/help http://www.cups.org/windows/ .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cupsaddsmb.man.in 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/cupsctl.man b/man/cupsctl.man index dc4929d7b..6f6d1ce7e 100644 --- a/man/cupsctl.man +++ b/man/cupsctl.man @@ -3,7 +3,7 @@ .\" .\" cupsctl man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 2007 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -99,7 +99,7 @@ Enable printing using the file: pseudo-device: .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cupsctl.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/cupsd.man.in b/man/cupsd.man.in index e754a64f5..c87287a12 100644 --- a/man/cupsd.man.in +++ b/man/cupsd.man.in @@ -3,7 +3,7 @@ .\" .\" cupsd man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -67,7 +67,7 @@ operations. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cupsd.man.in 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/cupstestdsc.man b/man/cupstestdsc.man index ce1c3a4d0..4de16f6fa 100644 --- a/man/cupstestdsc.man +++ b/man/cupstestdsc.man @@ -3,7 +3,7 @@ .\" .\" cupstestdsc man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -44,7 +44,7 @@ http://localhost:631/help Adobe PostScript Language Document Structuring Conventions Specification, Version 3.0. .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: cupstestdsc.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/filter.man b/man/filter.man index 9abb21dc0..77a280c9a 100644 --- a/man/filter.man +++ b/man/filter.man @@ -233,7 +233,7 @@ only filter. Typically the interface script will be provided via the .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: filter.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/lpadmin.man b/man/lpadmin.man index 91658aafb..d3c3cb31f 100644 --- a/man/lpadmin.man +++ b/man/lpadmin.man @@ -12,7 +12,7 @@ .\" which should have been included with this file. If this file is .\" file is missing or damaged, see the license at "http://www.cups.org/". .\" -.TH lpadmin 8 "Common UNIX Printing System" "2 January 2008" "Apple Inc." +.TH lpadmin 8 "Common UNIX Printing System" "3 November 2008" "Apple Inc." .SH NAME lpadmin \- configure cups printers and classes .SH SYNOPSIS @@ -173,7 +173,7 @@ Provides a textual description of the printer. -E .br Enables the printer and accepts jobs; this is the same as running the -\fIaccept(8)\fR and \fIcupsenable(8)\fR programs on the printer. +\fIcupsaccept(8)\fR and \fIcupsenable(8)\fR programs on the printer. .TP 5 -L "location" .br @@ -196,7 +196,7 @@ requires the root user to execute this command. The CUPS version of \fIlpadmin\fR does not support all of the System V or Solaris printing system configuration options. .SH SEE ALSO -\fIaccept(8)\fR, \fIcupsenable(8)\fR, \fIlpinfo(8)\fR, +\fIcupsaccept(8)\fR, \fIcupsenable(8)\fR, \fIlpinfo(8)\fR, \fIlpoptions(1)\fR, .br http://localhost:631/help diff --git a/man/lpc.man b/man/lpc.man index caa9896af..9196190a7 100644 --- a/man/lpc.man +++ b/man/lpc.man @@ -3,7 +3,7 @@ .\" .\" lpc man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -12,7 +12,7 @@ .\" which should have been included with this file. If this file is .\" file is missing or damaged, see the license at "http://www.cups.org/". .\" -.TH lpc 8 "Common UNIX Printing System" "12 February 2006" "Apple Inc." +.TH lpc 8 "Common UNIX Printing System" "3 November 2008" "Apple Inc." .SH NAME lpc \- line printer control program .SH SYNOPSIS @@ -60,12 +60,12 @@ CUPS-compatible client with that functionality. The CUPS version of \fIlpc\fR does not implement all of the standard Berkeley or LPRng commands. .SH SEE ALSO -\fIaccept(8)\fR, \fIcancel(1)\fR, \fIcupsenable(8)\fR, +\fIcancel(1)\fR, \fIcupsaccept(8)\fR, \fIcupsenable(8)\fR, \fIlp(1)\fR, \fIlpr(1)\fR, \fIlprm(1)\fR, \fIlpstat(1)\fR, .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: lpc.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/lpmove.man b/man/lpmove.man index 5bd406ffb..480c81998 100644 --- a/man/lpmove.man +++ b/man/lpmove.man @@ -3,7 +3,7 @@ .\" .\" lpmove man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -60,7 +60,7 @@ Specifies an alternate server. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: lpmove.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/lprm.man b/man/lprm.man index 6f24d09a2..c5441d44c 100644 --- a/man/lprm.man +++ b/man/lprm.man @@ -3,7 +3,7 @@ .\" .\" lprm man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -59,7 +59,7 @@ Berkeley \fIlprm\fR command. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: lprm.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/mailto.conf.man b/man/mailto.conf.man index c6d9d3932..79b2c4b8a 100644 --- a/man/mailto.conf.man +++ b/man/mailto.conf.man @@ -3,7 +3,7 @@ .\" .\" mailto.conf man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -54,7 +54,7 @@ Specifies a prefix string for the subject line of an email notification. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: mailto.conf.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/mime.convs.man b/man/mime.convs.man index 9c91a65c7..417b3ba74 100644 --- a/man/mime.convs.man +++ b/man/mime.convs.man @@ -3,7 +3,7 @@ .\" .\" mime.convs man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -40,7 +40,7 @@ application/postscript application/vnd.cups-raster 50 pstoraster .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: mime.convs.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/printers.conf.man b/man/printers.conf.man index 7abd1cd46..04717eb87 100644 --- a/man/printers.conf.man +++ b/man/printers.conf.man @@ -3,7 +3,7 @@ .\" .\" printers.conf man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -116,7 +116,7 @@ Specifies the date/time associated with the state. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: printers.conf.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/man/subscriptions.conf.man b/man/subscriptions.conf.man index d51763d22..e473ad078 100644 --- a/man/subscriptions.conf.man +++ b/man/subscriptions.conf.man @@ -3,7 +3,7 @@ .\" .\" subscriptions.conf man page for the Common UNIX Printing System (CUPS). .\" -.\" Copyright 2007 by Apple Inc. +.\" Copyright 2007-2008 by Apple Inc. .\" Copyright 2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -83,7 +83,7 @@ is typically the "from" address in mailto: notifications. .br http://localhost:631/help .SH COPYRIGHT -Copyright 2007 by Apple Inc. +Copyright 2007-2008 by Apple Inc. .\" .\" End of "$Id: subscriptions.conf.man 7600 2008-05-20 21:06:23Z mike $". .\" diff --git a/packaging/cups.spec.in b/packaging/cups.spec.in index cbec673a4..6e07e4f83 100644 --- a/packaging/cups.spec.in +++ b/packaging/cups.spec.in @@ -264,7 +264,7 @@ rm -rf $RPM_BUILD_ROOT /usr/share/doc/cups/help/whatsnew.html %dir /usr/share/doc/cups/images /usr/share/doc/cups/images/* -/usr/share/locale/* +#/usr/share/locale/* %dir /usr/share/man/man1 /usr/share/man/man1/cancel.1.gz @@ -317,6 +317,8 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(-,root,root) +%dir /usr/share/cups/examples +/usr/share/cups/examples/* %dir /usr/share/man/man1 /usr/share/man/man1/cups-config.1.gz /usr/share/man/man1/ppd*.1.gz @@ -337,6 +339,9 @@ rm -rf $RPM_BUILD_ROOT %dir /usr/share/doc/cups/help /usr/share/doc/cups/help/api*.html +/usr/share/doc/cups/help/postscript-driver.html +/usr/share/doc/cups/help/ppd-compiler.html +/usr/share/doc/cups/help/raster-driver.html /usr/share/doc/cups/help/spec*.html %files libs diff --git a/ppdc/Dependencies b/ppdc/Dependencies index 79160528d..1e53cc2a4 100644 --- a/ppdc/Dependencies +++ b/ppdc/Dependencies @@ -66,9 +66,11 @@ ppdhtml.o: ../cups/language.h ../cups/array.h ppdi.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h ppdi.o: ../cups/versioning.h ../cups/i18n.h ../cups/transcode.h ppdi.o: ../cups/language.h ../cups/array.h -ppdmerge.o: ../cups/cups.h ../cups/array.h ../cups/versioning.h -ppdmerge.o: ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h -ppdmerge.o: ../cups/language.h ../cups/array.h +ppdmerge.o: ../cups/ppd-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +ppdmerge.o: ../cups/versioning.h ../cups/string.h ../cups/ppd.h +ppdmerge.o: ../cups/array.h ../cups/file.h ../cups/language.h ../cups/cups.h +ppdmerge.o: ../cups/array.h ../cups/string.h ../config.h ../cups/i18n.h +ppdmerge.o: ../cups/transcode.h ppdpo.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h ppdpo.o: ../cups/versioning.h ../cups/i18n.h ../cups/transcode.h ppdpo.o: ../cups/language.h ../cups/array.h diff --git a/ppdc/Makefile b/ppdc/Makefile index 771d23621..598b9112c 100644 --- a/ppdc/Makefile +++ b/ppdc/Makefile @@ -162,7 +162,7 @@ install-headers: # Install libraries... # -install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64) +install-libs: $(INSTALLSTATIC) echo Installing libraries in $(LIBDIR)... $(INSTALL_DIR) -m 755 $(LIBDIR) $(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR) diff --git a/ppdc/ppdc-catalog.cxx b/ppdc/ppdc-catalog.cxx index da06bb36d..e67754a5b 100644 --- a/ppdc/ppdc-catalog.cxx +++ b/ppdc/ppdc-catalog.cxx @@ -14,6 +14,16 @@ // // Contents: // +// ppdcCatalog::ppdcCatalog() - Create a shared message catalog. +// ppdcCatalog::~ppdcCatalog() - Destroy a shared message catalog. +// ppdcCatalog::add_message() - Add a new message. +// ppdcCatalog::find_message() - Find a message in a catalog... +// ppdcCatalog::load_messages() - Load messages from a .po file. +// ppdcCatalog::save_messages() - Save the messages to a .po file. +// get_utf8() - Get a UTF-8 character. +// get_utf16() - Get a UTF-16 character... +// put_utf8() - Add a UTF-8 character to a string. +// put_utf16() - Write a UTF-16 character to a file. // // @@ -140,7 +150,7 @@ ppdcCatalog::add_message( string = text; } - messages->add(new ppdcMessage(id, text)); + messages->add(new ppdcMessage(id, string)); } @@ -276,6 +286,7 @@ ppdcCatalog::load_messages( { // Add string... add_message(id, str); + id[0] = '\0'; } } } diff --git a/ppdc/sample.drv b/ppdc/sample.drv index cb9e3a3a6..195466e41 100644 --- a/ppdc/sample.drv +++ b/ppdc/sample.drv @@ -22,26 +22,26 @@ // Localizations are provided for all of the base languages supported by // CUPS... -#po da "" -#po de "" -#po es "" -#po et "" -#po fi "" -#po fr "" -#po he "" -#po id "" -#po it "" -#po ja "" -#po ko "" -#po nl "" -#po no "" -#po pl "" -#po pt "" -#po pt_BR "" -#po ru "" -#po sv "" -#po zh "" -#po zh_TW "" +//#po da "" +//#po de "" +//#po es "" +//#po et "" +//#po fi "" +//#po fr "" +//#po he "" +//#po id "" +//#po it "" +//#po ja "" +//#po ko "" +//#po nl "" +//#po no "" +//#po pl "" +//#po pt "" +//#po pt_BR "" +//#po ru "" +//#po sv "" +//#po zh "" +//#po zh_TW "" // MediaSize sizes used by label drivers... #media "w81h252/Address - 1 1/8 x 3 1/2\"" 81 252 diff --git a/scheduler/Dependencies b/scheduler/Dependencies index 064c1ee8c..ec69eb867 100644 --- a/scheduler/Dependencies +++ b/scheduler/Dependencies @@ -243,23 +243,3 @@ cups-driverd.o: ../cups/file.h ../cups/language.h ../cups/file.h cups-driverd.o: ../cups/string.h ../config.h ../cups/dir.h cups-driverd.o: ../cups/transcode.h ../cups/ppd-private.h ../cups/cups.h cups-driverd.o: ../ppdc/ppdc.h -# DO NOT DELETE - -filter.32.o: filter.c ../cups/debug.h ../cups/string.h ../config.h mime.h ../cups/array.h -filter.32.o: filter.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h -mime.32.o: mime.c ../cups/debug.h ../cups/dir.h ../cups/versioning.h ../cups/string.h -mime.32.o: mime.c ../config.h mime.h ../cups/array.h ../cups/ipp.h ../cups/http.h -mime.32.o: mime.c ../cups/file.h -type.32.o: type.c ../cups/string.h ../config.h mime.h ../cups/array.h -type.32.o: type.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h -type.32.o: type.c ../cups/debug.h -# DO NOT DELETE - -filter.64.o: filter.c ../cups/debug.h ../cups/string.h ../config.h mime.h ../cups/array.h -filter.64.o: filter.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h -mime.64.o: mime.c ../cups/debug.h ../cups/dir.h ../cups/versioning.h ../cups/string.h -mime.64.o: mime.c ../config.h mime.h ../cups/array.h ../cups/ipp.h ../cups/http.h -mime.64.o: mime.c ../cups/file.h -type.64.o: type.c ../cups/string.h ../config.h mime.h ../cups/array.h -type.64.o: type.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h -type.64.o: type.c ../cups/debug.h diff --git a/scheduler/Makefile b/scheduler/Makefile index 32918149e..c8846001f 100644 --- a/scheduler/Makefile +++ b/scheduler/Makefile @@ -44,13 +44,9 @@ LIBOBJS = \ filter.o \ mime.o \ type.o -LIB32OBJS = $(LIBOBJS:.o=.32.o) -LIB64OBJS = $(LIBOBJS:.o=.64.o) COBJS = \ $(CUPSDOBJS) \ $(LIBOBJS) \ - $(LIB32OBJS) \ - $(LIB64OBJS) \ cupsfilter.o \ cups-deviced.o \ cups-lpd.o \ @@ -68,8 +64,6 @@ OBJS = \ $(CXXOBJS) LIBTARGETS = \ $(LIBCUPSMIME) \ - $(LIB32CUPSMIME) \ - $(LIB64CUPSMIME) \ libcupsmime.a UNITTARGETS = \ @@ -118,7 +112,6 @@ clean: $(RM) $(OBJS) $(RM) $(TARGETS) $(UNITTARGETS) convert $(RM) libcupsmime.so libcupsmime.sl libcupsmime.dylib - $(RM) -r 32bit 64bit # @@ -126,17 +119,8 @@ clean: # depend: - touch Dependencies.tmp Dependencies.tmplib - makedepend -Y -I.. -fDependencies.tmp $(COBJS:.o=.c) \ + makedepend -Y -I.. -fDependencies $(COBJS:.o=.c) \ $(CXXOBJS:.o=.cxx) >/dev/null 2>&1 - makedepend -Y -I.. -fDependencies.tmplib $(LIBOBJS:.o=.c) >/dev/null 2>&1 - $(RM) Dependencies - cp Dependencies.tmp Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' \ - Dependencies.tmplib >>Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' \ - Dependencies.tmplib >>Dependencies - $(RM) Dependencies.tmp Dependencies.tmplib # @@ -230,7 +214,7 @@ install-headers: # Install libraries... # -install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64) +install-libs: $(INSTALLSTATIC) echo Installing libraries in $(LIBDIR)... $(INSTALL_DIR) -m 755 $(LIBDIR) $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR) @@ -252,24 +236,12 @@ installstatic: $(INSTALL_LIB) libcupsmime.a $(LIBDIR) $(RANLIB) $(LIBDIR)/libcupsmime.a -install32bit: - echo Installing libraries in $(LIB32DIR)... - $(INSTALL_DIR) -m 755 $(LIB32DIR) - $(INSTALL_LIB) 32bit/libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so.1 - $(LN) libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so - -install64bit: - echo Installing libraries in $(LIB64DIR)... - $(INSTALL_DIR) -m 755 $(LIB64DIR) - $(INSTALL_LIB) 64bit/libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so.1 - $(LN) libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so - # # Uninstall the scheduler... # -uninstall: $(UNINSTALL32) $(UNINSTALL64) +uninstall: $(RM) $(SBINDIR)/cupsd $(RM) $(SBINDIR)/cupsfilter $(RM) $(SERVERBIN)/daemon/cups-deviced @@ -302,16 +274,6 @@ uninstall: $(UNINSTALL32) $(UNINSTALL64) $(RM) $(INCLUDEDIR)/cups/mime.h -$(RMDIR) $(INCLUDEDIR)/cups -uninstall32bit: - $(RM) $(LIB32DIR)/libcupsmime.so - $(RM) $(LIB32DIR)/libcupsmime.so.1 - -$(RMDIR) $(LIB32DIR) - -uninstall64bit: - $(RM) $(LIB64DIR)/libcupsmime.so - $(RM) $(LIB64DIR)/libcupsmime.so.1 - -$(RMDIR) $(LIB64DIR) - # # Automatic API help files... @@ -412,30 +374,6 @@ libcupsmime.so.1 libcupsmime.sl.1: $(LIBOBJS) $(LN) $@ `basename $@ .1` -# -# 32bit/libcupsmime.so.1 -# - -32bit/libcupsmime.so.1: $(LIB32OBJS) - echo Linking 32-bit $@... - -mkdir 32bit - $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS) - $(RM) 32bit/libcupsmime.so - $(LN) libcupsmime.so.1 32bit/libcupsmime.so - - -# -# 64bit/libcupsmime.so.1 -# - -64bit/libcupsmime.so.1: $(LIB64OBJS) - echo Linking 64-bit $@... - -mkdir 64bit - $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS) - $(RM) 64bit/libcupsmime.so - $(LN) libcupsmime.so.1 64bit/libcupsmime.so - - # # libcupsmime.1.dylib # diff --git a/scheduler/client.c b/scheduler/client.c index 4f776b48c..d50e6e387 100644 --- a/scheduler/client.c +++ b/scheduler/client.c @@ -966,7 +966,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ if (strcmp(con->uri, "*")) { - char method[HTTP_MAX_URI], /* Method/scheme */ + char scheme[HTTP_MAX_URI], /* Method/scheme */ userpass[HTTP_MAX_URI], /* Username:password */ hostname[HTTP_MAX_URI], /* Hostname */ resource[HTTP_MAX_URI]; /* Resource path */ @@ -978,7 +978,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ */ httpSeparateURI(HTTP_URI_CODING_MOST, con->uri, - method, sizeof(method), + scheme, sizeof(scheme), userpass, sizeof(userpass), hostname, sizeof(hostname), &port, resource, sizeof(resource)); @@ -988,10 +988,10 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ * address... */ - if (strcmp(method, "file") && + if (strcmp(scheme, "file") && strcasecmp(hostname, ServerName) && strcasecmp(hostname, "localhost") && - !isdigit(hostname[0])) + !isdigit(hostname[0]) && hostname[0] != '[') { /* * Nope, we don't do proxies... @@ -1077,6 +1077,15 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ break; default : + if (!data_ready(con) && recv(con->http.fd, buf, 1, MSG_PEEK) < 1) + { + /* + * Connection closed... + */ + + cupsdCloseClient(con); + return; + } break; /* Anti-compiler-warning-code */ } @@ -1144,6 +1153,29 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ return; } } + else if (httpAddrLocalhost(con->http.hostaddr) && + strcasecmp(con->http.fields[HTTP_FIELD_HOST], "localhost") && + strncasecmp(con->http.fields[HTTP_FIELD_HOST], "localhost:", 10) && + strcmp(con->http.fields[HTTP_FIELD_HOST], "127.0.0.1") && + strncmp(con->http.fields[HTTP_FIELD_HOST], "127.0.0.1:", 10) && + strcmp(con->http.fields[HTTP_FIELD_HOST], "[::1]") && + strncmp(con->http.fields[HTTP_FIELD_HOST], "[::1]:", 6)) + { + /* + * Access to localhost must use "localhost" or the corresponding IPv4 + * or IPv6 values in the Host: field. + */ + + cupsdLogMessage(CUPSD_LOG_WARN, + "Request from \"%s\" using invalid Host: field \"%s\"", + con->http.hostname, con->http.fields[HTTP_FIELD_HOST]); + + if (!cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE)) + { + cupsdCloseClient(con); + return; + } + } else if (con->operation == HTTP_OPTIONS) { /* @@ -2499,7 +2531,7 @@ cupsdSendHeader( return (0); } if (code == HTTP_METHOD_NOT_ALLOWED) - if (httpPrintf(HTTP(con), "Allow: GET, HEAD, OPTIONS, POST\r\n") < 0) + if (httpPrintf(HTTP(con), "Allow: GET, HEAD, OPTIONS, POST, PUT\r\n") < 0) return (0); if (code == HTTP_UNAUTHORIZED) @@ -4443,7 +4475,9 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */ ipp_attribute_t *attr; /* attributes-natural-language attribute */ #ifdef HAVE_GSSAPI krb5_ccache ccache = NULL; /* Kerberos credentials */ +# if defined(HAVE_KRB5_CC_NEW_UNIQUE) || defined(HAVE_HEIMDAL) char krb5ccname[1024]; /* KRB5CCNAME environment variable */ +# endif /* HAVE_KRB5_CC_NEW_UNIQUE || HAVE_HEIMDAL */ #endif /* HAVE_GSSAPI */ diff --git a/scheduler/cupsfilter.c b/scheduler/cupsfilter.c index 6974e47c6..a4bea217b 100644 --- a/scheduler/cupsfilter.c +++ b/scheduler/cupsfilter.c @@ -801,9 +801,10 @@ exec_filters(cups_array_t *filters, /* I - Array of filters to run */ { int i; /* Looping var */ const char *argv[8], /* Command-line arguments */ - *envp[11], /* Environment variables */ + *envp[12], /* Environment variables */ *temp; /* Temporary string */ char *optstr, /* Filter options */ + content_type[1024], /* CONTENT_TYPE */ cups_datadir[1024], /* CUPS_DATADIR */ cups_fontpath[1024], /* CUPS_FONTPATH */ cups_serverbin[1024], /* CUPS_SERVERBIN */ @@ -832,6 +833,9 @@ exec_filters(cups_array_t *filters, /* I - Array of filters to run */ optstr = escape_options(num_options, options); + filter = cupsArrayFirst(filters); + snprintf(content_type, sizeof(content_type), "CONTENT_TYPE=%s/%s", + filter->src->super, filter->src->type); snprintf(cups_datadir, sizeof(cups_datadir), "CUPS_DATADIR=%s", DataDir); snprintf(cups_fontpath, sizeof(cups_fontpath), "CUPS_FONTPATH=%s", FontPath); snprintf(cups_serverbin, sizeof(cups_serverbin), "CUPS_SERVERBIN=%s", @@ -876,16 +880,17 @@ exec_filters(cups_array_t *filters, /* I - Array of filters to run */ argv[4] = "1"; envp[0] = ""; - envp[1] = cups_datadir; - envp[2] = cups_fontpath; - envp[3] = cups_serverbin; - envp[4] = cups_serverroot; - envp[5] = lang; - envp[6] = path; - envp[7] = ppd; - envp[8] = rip_cache; - envp[9] = userenv; - envp[10] = NULL; + envp[1] = content_type; + envp[2] = cups_datadir; + envp[3] = cups_fontpath; + envp[4] = cups_serverbin; + envp[5] = cups_serverroot; + envp[6] = lang; + envp[7] = path; + envp[8] = ppd; + envp[9] = rip_cache; + envp[10] = userenv; + envp[11] = NULL; for (i = 0; argv[i]; i ++) fprintf(stderr, "DEBUG: argv[%d]=\"%s\"\n", i, argv[i]); diff --git a/scheduler/job.c b/scheduler/job.c index 3076a2930..adb708455 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -216,6 +216,16 @@ cupsdCancelJob(cupsd_job_t *job, /* I - Job to cancel */ cupsArrayRemove(ActiveJobs, job); cupsArrayRemove(PrintingJobs, job); +#ifdef __APPLE__ + /* + * If we are going to sleep and the PrintingJobs count is now 0, allow the + * sleep to happen immediately... + */ + + if (Sleeping && cupsArrayCount(PrintingJobs) == 0) + cupsdAllowSleep(); +#endif /* __APPLE__ */ + /* * Remove any authentication data... */ @@ -478,13 +488,11 @@ cupsdCheckJobs(void) !printer->job)) /* and not printing */ { /* - * Clear any message and reasons for the queue... + * Clear any message for the queue... */ printer->state_message[0] = '\0'; - cupsdSetPrinterReasons(printer, "none"); - /* * Start the job... */ diff --git a/scheduler/main.c b/scheduler/main.c index 41d6d1977..6f9902441 100644 --- a/scheduler/main.c +++ b/scheduler/main.c @@ -26,12 +26,12 @@ * launchd_checkout() - Check-out with launchd. * parent_handler() - Catch USR1/CHLD signals... * process_children() - Process all dead children... + * select_timeout() - Calculate the select timeout value. * sigchld_handler() - Handle 'child' signals from old processes. * sighup_handler() - Handle 'hangup' signals to reconfigure the * scheduler. * sigterm_handler() - Handle 'terminate' signals that stop the * scheduler. - * select_timeout() - Calculate the select timeout value. * usage() - Show scheduler usage. */ @@ -873,6 +873,20 @@ main(int argc, /* I - Number of command-line args */ if (DirtyCleanTime && current_time >= DirtyCleanTime) cupsdCleanDirty(); +#ifdef __APPLE__ + /* + * If we are going to sleep and still have pending jobs, stop them after + * a period of time... + */ + + if (SleepJobs > 0 && current_time >= SleepJobs && + cupsArrayCount(PrintingJobs) > 0) + { + SleepJobs = 0; + cupsdStopAllJobs(0); + } +#endif /* __APPLE__ */ + #ifndef __APPLE__ /* * Update the network interfaces once a minute... @@ -1755,66 +1769,6 @@ process_children(void) } -/* - * 'sigchld_handler()' - Handle 'child' signals from old processes. - */ - -static void -sigchld_handler(int sig) /* I - Signal number */ -{ - (void)sig; - - /* - * Flag that we have dead children... - */ - - dead_children = 1; - - /* - * Reset the signal handler as needed... - */ - -#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION) - signal(SIGCLD, sigchld_handler); -#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */ -} - - -/* - * 'sighup_handler()' - Handle 'hangup' signals to reconfigure the scheduler. - */ - -static void -sighup_handler(int sig) /* I - Signal number */ -{ - (void)sig; - - NeedReload = RELOAD_ALL; - ReloadTime = time(NULL); - -#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION) - signal(SIGHUP, sighup_handler); -#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */ -} - - -/* - * 'sigterm_handler()' - Handle 'terminate' signals that stop the scheduler. - */ - -static void -sigterm_handler(int sig) /* I - Signal number */ -{ - (void)sig; /* remove compiler warnings... */ - - /* - * Flag that we should stop and return... - */ - - stop_scheduler = 1; -} - - /* * 'select_timeout()' - Calculate the select timeout value. * @@ -1860,6 +1814,18 @@ select_timeout(int fds) /* I - Number of descriptors returned */ timeout = now + 86400; /* 86400 == 1 day */ why = "do nothing"; +#ifdef __APPLE__ + /* + * When going to sleep, wake up to cancel jobs that don't complete in time. + */ + + if (SleepJobs > 0 && SleepJobs < timeout) + { + timeout = SleepJobs; + why = "cancel jobs before sleeping"; + } +#endif /* __APPLE__ */ + /* * Check whether we are accepting new connections... */ @@ -2015,6 +1981,66 @@ select_timeout(int fds) /* I - Number of descriptors returned */ } +/* + * 'sigchld_handler()' - Handle 'child' signals from old processes. + */ + +static void +sigchld_handler(int sig) /* I - Signal number */ +{ + (void)sig; + + /* + * Flag that we have dead children... + */ + + dead_children = 1; + + /* + * Reset the signal handler as needed... + */ + +#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION) + signal(SIGCLD, sigchld_handler); +#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */ +} + + +/* + * 'sighup_handler()' - Handle 'hangup' signals to reconfigure the scheduler. + */ + +static void +sighup_handler(int sig) /* I - Signal number */ +{ + (void)sig; + + NeedReload = RELOAD_ALL; + ReloadTime = time(NULL); + +#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION) + signal(SIGHUP, sighup_handler); +#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */ +} + + +/* + * 'sigterm_handler()' - Handle 'terminate' signals that stop the scheduler. + */ + +static void +sigterm_handler(int sig) /* I - Signal number */ +{ + (void)sig; /* remove compiler warnings... */ + + /* + * Flag that we should stop and return... + */ + + stop_scheduler = 1; +} + + /* * 'usage()' - Show scheduler usage. */ diff --git a/scheduler/printers.c b/scheduler/printers.c index 077776953..f15cef334 100644 --- a/scheduler/printers.c +++ b/scheduler/printers.c @@ -1544,7 +1544,8 @@ cupsdSaveAllPrinters(void) cupsFilePrintf(fp, "StateTime %d\n", (int)printer->state_time); for (i = 0; i < printer->num_reasons; i ++) - cupsFilePutConf(fp, "Reason", printer->reasons[i]); + if (strcmp(printer->reasons[i], "connecting-to-device")) + cupsFilePutConf(fp, "Reason", printer->reasons[i]); cupsFilePrintf(fp, "Type %d\n", printer->type); @@ -1933,6 +1934,16 @@ cupsdSetPrinterAttr( ipp_tag_t value_tag; /* Value tag for this attribute */ + /* + * Don't allow empty values... + */ + + if (!*value) + { + cupsdLogMessage(CUPSD_LOG_ERROR, "Ignoring empty \"%s\" attribute", name); + return; + } + /* * Count the number of values... */ @@ -2576,6 +2587,8 @@ cupsdSetPrinterReasons( p->num_reasons = 0; + cupsdMarkDirty(CUPSD_DIRTY_PRINTERS); + if (PrintcapFormat == PRINTCAP_PLIST) cupsdMarkDirty(CUPSD_DIRTY_PRINTCAP); } @@ -2630,6 +2643,9 @@ cupsdSetPrinterReasons( if (!strcmp(reason, "paused") && p->state == IPP_PRINTER_STOPPED) cupsdSetPrinterState(p, IPP_PRINTER_IDLE, 1); + if (strcmp(reason, "connecting-to-device")) + cupsdMarkDirty(CUPSD_DIRTY_PRINTERS); + if (PrintcapFormat == PRINTCAP_PLIST) cupsdMarkDirty(CUPSD_DIRTY_PRINTCAP); } @@ -2652,6 +2668,9 @@ cupsdSetPrinterReasons( if (!strcmp(reason, "paused") && p->state != IPP_PRINTER_STOPPED) cupsdSetPrinterState(p, IPP_PRINTER_STOPPED, 1); + if (strcmp(reason, "connecting-to-device")) + cupsdMarkDirty(CUPSD_DIRTY_PRINTERS); + if (PrintcapFormat == PRINTCAP_PLIST) cupsdMarkDirty(CUPSD_DIRTY_PRINTCAP); } diff --git a/scheduler/printers.h b/scheduler/printers.h index 0effd8bd9..fac12b245 100644 --- a/scheduler/printers.h +++ b/scheduler/printers.h @@ -152,8 +152,6 @@ extern void cupsdFreeQuotas(cupsd_printer_t *p); extern void cupsdLoadAllPrinters(void); extern void cupsdRenamePrinter(cupsd_printer_t *p, const char *name); -extern char *cupsdSanitizeURI(const char *uri, char *buffer, - int buflen); extern void cupsdSaveAllPrinters(void); extern int cupsdSetAuthInfoRequired(cupsd_printer_t *p, const char *values, diff --git a/scheduler/sysman.c b/scheduler/sysman.c index 25ffc6f3f..7084ddfcd 100644 --- a/scheduler/sysman.c +++ b/scheduler/sysman.c @@ -19,6 +19,7 @@ * write. * cupsdSetBusyState() - Let the system know when we are busy * doing something. + * cupsdAllowSleep() - Tell the OS it is now OK to sleep. * cupsdStartSystemMonitor() - Start monitoring for system change. * cupsdStopSystemMonitor() - Stop monitoring for system change. * sysEventThreadEntry() - A thread to receive power and computer @@ -227,6 +228,7 @@ static CFStringRef ComputerNameKey = NULL, /* Netowrk interface key */ NetworkInterfaceKeyIPv6 = NULL; /* Netowrk interface key */ +static cupsd_sysevent_t LastSysEvent; /* Last system event (for delayed sleep) */ /* @@ -244,6 +246,20 @@ static void sysEventTimerNotifier(CFRunLoopTimerRef timer, void *context); static void sysUpdate(void); +/* + * 'cupsdAllowSleep()' - Tell the OS it is now OK to sleep. + */ + +void +cupsdAllowSleep(void) +{ + cupsdCleanDirty(); + + IOAllowPowerChange(LastSysEvent.powerKernelPort, + LastSysEvent.powerNotificationID); +} + + /* * 'cupsdStartSystemMonitor()' - Start monitoring for system change. */ @@ -752,8 +768,6 @@ sysUpdate(void) Sleeping = 1; - cupsdStopAllJobs(0); - for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); p; p = (cupsd_printer_t *)cupsArrayNext(Printers)) @@ -776,8 +790,20 @@ sysUpdate(void) cupsdCleanDirty(); - IOAllowPowerChange(sysevent.powerKernelPort, - sysevent.powerNotificationID); + /* + * If we have no printing jobs, allow the power change immediately. + * Otherwise set the SleepJobs time to 20 seconds in the future when + * we'll take more drastic measures... + */ + + if (cupsArrayCount(PrintingJobs) == 0) + IOAllowPowerChange(sysevent.powerKernelPort, + sysevent.powerNotificationID); + else + { + LastSysEvent = sysevent; + SleepJobs = time(NULL) + 20; + } } if (sysevent.event & SYSEVENT_WOKE) diff --git a/scheduler/sysman.h b/scheduler/sysman.h index 517d143cb..231fc2c54 100644 --- a/scheduler/sysman.h +++ b/scheduler/sysman.h @@ -38,6 +38,9 @@ VAR time_t DirtyCleanTime VALUE(0); VAR int Sleeping VALUE(0); /* Non-zero if machine is entering or * * in a sleep state... */ +VAR time_t SleepJobs VALUE(0); + /* Time when all jobs must be * + * canceled for system sleep. */ #ifdef __APPLE__ VAR int SysEventPipes[2] VALUE2(-1,-1); /* System event notification pipes */ @@ -48,6 +51,7 @@ VAR int SysEventPipes[2] VALUE2(-1,-1); * Prototypes... */ +extern void cupsdAllowSleep(void); extern void cupsdCleanDirty(void); extern void cupsdMarkDirty(int what); extern void cupsdSetBusyState(void); -- 2.39.2