This commit is contained in:
parent
7972500c88
commit
6766997b7e
314
cups-1.4svn-pdftops.c
Normal file
314
cups-1.4svn-pdftops.c
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
/*
|
||||||
|
* "$Id: pdftops.c 7391 2008-03-21 21:24:18Z mike $"
|
||||||
|
*
|
||||||
|
* PDF to PostScript filter front-end for the Common UNIX Printing
|
||||||
|
* System (CUPS).
|
||||||
|
*
|
||||||
|
* Copyright 2007-2008 by Apple Inc.
|
||||||
|
* Copyright 1997-2006 by Easy Software Products.
|
||||||
|
*
|
||||||
|
* These coded instructions, statements, and computer programs are the
|
||||||
|
* property of Apple Inc. 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
|
||||||
|
* file is missing or damaged, see the license at "http://www.cups.org/".
|
||||||
|
*
|
||||||
|
* Contents:
|
||||||
|
*
|
||||||
|
* main() - Main entry for filter...
|
||||||
|
* cancel_job() - Flag the job as canceled.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Include necessary headers...
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <cups/cups.h>
|
||||||
|
#include <cups/string.h>
|
||||||
|
#include <cups/i18n.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Local functions...
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void cancel_job(int sig);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 'main()' - Main entry for filter...
|
||||||
|
*/
|
||||||
|
|
||||||
|
int /* O - Exit status */
|
||||||
|
main(int argc, /* I - Number of command-line args */
|
||||||
|
char *argv[]) /* I - Command-line arguments */
|
||||||
|
{
|
||||||
|
int fd; /* Copy file descriptor */
|
||||||
|
char *filename, /* PDF file to convert */
|
||||||
|
tempfile[1024]; /* Temporary file */
|
||||||
|
char buffer[8192]; /* Copy buffer */
|
||||||
|
int bytes; /* Bytes copied */
|
||||||
|
int num_options; /* Number of options */
|
||||||
|
cups_option_t *options; /* Options */
|
||||||
|
const char *val; /* Option value */
|
||||||
|
int orientation; /* Output orientation */
|
||||||
|
ppd_file_t *ppd; /* PPD file */
|
||||||
|
ppd_size_t *size; /* Current page size */
|
||||||
|
int pdfpid, /* Process ID for pdftops */
|
||||||
|
pdfstatus, /* Status from pdftops */
|
||||||
|
pdfargc; /* Number of args for pdftops */
|
||||||
|
char *pdfargv[100], /* Arguments for pdftops */
|
||||||
|
pdfwidth[255], /* Paper width */
|
||||||
|
pdfheight[255]; /* Paper height */
|
||||||
|
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
|
||||||
|
struct sigaction action; /* Actions for POSIX signals */
|
||||||
|
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make sure status messages are not buffered...
|
||||||
|
*/
|
||||||
|
|
||||||
|
setbuf(stderr, NULL);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make sure we have the right number of arguments for CUPS!
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (argc < 6 || argc > 7)
|
||||||
|
{
|
||||||
|
_cupsLangPrintf(stderr,
|
||||||
|
_("Usage: %s job user title copies options [filename]\n"),
|
||||||
|
argv[0]);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register a signal handler to cleanly cancel a job.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_SIGSET /* Use System V signals over POSIX to avoid bugs */
|
||||||
|
sigset(SIGTERM, cancel_job);
|
||||||
|
#elif defined(HAVE_SIGACTION)
|
||||||
|
memset(&action, 0, sizeof(action));
|
||||||
|
|
||||||
|
sigemptyset(&action.sa_mask);
|
||||||
|
action.sa_handler = cancel_job;
|
||||||
|
sigaction(SIGTERM, &action, NULL);
|
||||||
|
#else
|
||||||
|
signal(SIGTERM, cancel_job);
|
||||||
|
#endif /* HAVE_SIGSET */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copy stdin if needed...
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (argc == 6)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Copy stdin to a temp file...
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ((fd = cupsTempFd(tempfile, sizeof(tempfile))) < 0)
|
||||||
|
{
|
||||||
|
_cupsLangPrintError(_("ERROR: Unable to copy PDF file"));
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "DEBUG: pdftops - copying to temp print file \"%s\"\n",
|
||||||
|
tempfile);
|
||||||
|
|
||||||
|
while ((bytes = fread(buffer, 1, sizeof(buffer), stdin)) > 0)
|
||||||
|
write(fd, buffer, bytes);
|
||||||
|
|
||||||
|
close(fd);
|
||||||
|
|
||||||
|
filename = tempfile;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Use the filename on the command-line...
|
||||||
|
*/
|
||||||
|
|
||||||
|
filename = argv[6];
|
||||||
|
tempfile[0] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Load the PPD file and mark options...
|
||||||
|
*/
|
||||||
|
|
||||||
|
ppd = ppdOpenFile(getenv("PPD"));
|
||||||
|
num_options = cupsParseOptions(argv[5], 0, &options);
|
||||||
|
|
||||||
|
ppdMarkDefaults(ppd);
|
||||||
|
cupsMarkOptions(ppd, num_options, options);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Build the command-line for the pdftops filter...
|
||||||
|
*/
|
||||||
|
|
||||||
|
pdfargv[0] = (char *)"pdftops";
|
||||||
|
pdfargc = 1;
|
||||||
|
|
||||||
|
if (ppd)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Set language level and TrueType font handling...
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (ppd->language_level == 1)
|
||||||
|
{
|
||||||
|
pdfargv[pdfargc++] = (char *)"-level1";
|
||||||
|
pdfargv[pdfargc++] = (char *)"-noembtt";
|
||||||
|
}
|
||||||
|
else if (ppd->language_level == 2)
|
||||||
|
{
|
||||||
|
pdfargv[pdfargc++] = (char *)"-level2";
|
||||||
|
if (!ppd->ttrasterizer)
|
||||||
|
pdfargv[pdfargc++] = (char *)"-noembtt";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
pdfargv[pdfargc++] = (char *)"-level3";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set output page size...
|
||||||
|
*/
|
||||||
|
|
||||||
|
size = ppdPageSize(ppd, NULL);
|
||||||
|
if (size)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Got the size, now get the orientation...
|
||||||
|
*/
|
||||||
|
|
||||||
|
orientation = 0;
|
||||||
|
|
||||||
|
if ((val = cupsGetOption("landscape", num_options, options)) != NULL)
|
||||||
|
{
|
||||||
|
if (strcasecmp(val, "no") != 0 && strcasecmp(val, "off") != 0 &&
|
||||||
|
strcasecmp(val, "false") != 0)
|
||||||
|
orientation = 1;
|
||||||
|
}
|
||||||
|
else if ((val = cupsGetOption("orientation-requested", num_options, options)) != NULL)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Map IPP orientation values to 0 to 3:
|
||||||
|
*
|
||||||
|
* 3 = 0 degrees = 0
|
||||||
|
* 4 = 90 degrees = 1
|
||||||
|
* 5 = -90 degrees = 3
|
||||||
|
* 6 = 180 degrees = 2
|
||||||
|
*/
|
||||||
|
|
||||||
|
orientation = atoi(val) - 3;
|
||||||
|
if (orientation >= 2)
|
||||||
|
orientation ^= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (orientation & 1)
|
||||||
|
{
|
||||||
|
snprintf(pdfwidth, sizeof(pdfwidth), "%.0f", size->length);
|
||||||
|
snprintf(pdfheight, sizeof(pdfheight), "%.0f", size->width);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(pdfwidth, sizeof(pdfwidth), "%.0f", size->width);
|
||||||
|
snprintf(pdfheight, sizeof(pdfheight), "%.0f", size->length);
|
||||||
|
}
|
||||||
|
|
||||||
|
pdfargv[pdfargc++] = (char *)"-paperw";
|
||||||
|
pdfargv[pdfargc++] = pdfwidth;
|
||||||
|
pdfargv[pdfargc++] = (char *)"-paperh";
|
||||||
|
pdfargv[pdfargc++] = pdfheight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((val = cupsGetOption("fitplot", num_options, options)) != NULL &&
|
||||||
|
strcasecmp(val, "no") && strcasecmp(val, "off") &&
|
||||||
|
strcasecmp(val, "false"))
|
||||||
|
pdfargv[pdfargc++] = (char *)"-expand";
|
||||||
|
|
||||||
|
pdfargv[pdfargc++] = filename;
|
||||||
|
pdfargv[pdfargc++] = (char *)"-";
|
||||||
|
pdfargv[pdfargc] = NULL;
|
||||||
|
|
||||||
|
if ((pdfpid = fork()) == 0)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Child comes here...
|
||||||
|
*/
|
||||||
|
|
||||||
|
execv(CUPS_PDFTOPS, pdfargv);
|
||||||
|
_cupsLangPrintError(_("ERROR: Unable to execute pdftops filter"));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
else if (pdfpid < 0)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Unable to fork!
|
||||||
|
*/
|
||||||
|
|
||||||
|
_cupsLangPrintError(_("ERROR: Unable to execute pdftops filter"));
|
||||||
|
pdfstatus = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Parent comes here...
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (wait(&pdfstatus) != pdfpid)
|
||||||
|
{
|
||||||
|
kill(pdfpid, SIGTERM);
|
||||||
|
pdfstatus = 1;
|
||||||
|
}
|
||||||
|
else if (pdfstatus)
|
||||||
|
{
|
||||||
|
if (WIFEXITED(pdfstatus))
|
||||||
|
{
|
||||||
|
pdfstatus = WEXITSTATUS(pdfstatus);
|
||||||
|
|
||||||
|
_cupsLangPrintf(stderr,
|
||||||
|
_("ERROR: pdftops filter exited with status %d!\n"),
|
||||||
|
pdfstatus);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pdfstatus = WTERMSIG(pdfstatus);
|
||||||
|
|
||||||
|
_cupsLangPrintf(stderr,
|
||||||
|
_("ERROR: pdftops filter crashed on signal %d!\n"),
|
||||||
|
pdfstatus);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cleanup and exit...
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (tempfile[0])
|
||||||
|
unlink(tempfile);
|
||||||
|
|
||||||
|
return (pdfstatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 'cancel_job()' - Flag the job as canceled.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
cancel_job(int sig) /* I - Signal number (unused) */
|
||||||
|
{
|
||||||
|
(void)sig;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* End of "$Id: pdftops.c 7391 2008-03-21 21:24:18Z mike $".
|
||||||
|
*/
|
141
cups-1.4svn-pdftops_as_filter.patch
Normal file
141
cups-1.4svn-pdftops_as_filter.patch
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
--- ./test/run-stp-tests.sh.orig 2008-04-01 23:30:44.000000000 +0200
|
||||||
|
+++ ./test/run-stp-tests.sh 2008-04-09 18:05:52.000000000 +0200
|
||||||
|
@@ -273,7 +273,7 @@
|
||||||
|
else
|
||||||
|
ln -s $root/filter/imagetops /tmp/cups-$user/bin/filter
|
||||||
|
ln -s $root/filter/imagetoraster /tmp/cups-$user/bin/filter
|
||||||
|
- ln -s $root/pdftops/pdftops /tmp/cups-$user/bin/filter
|
||||||
|
+ ln -s $root/filter/pdftops /tmp/cups-$user/bin/filter
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
--- ./packaging/cups.list.in.orig 2008-02-15 22:32:52.000000000 +0100
|
||||||
|
+++ ./packaging/cups.list.in 2008-04-09 18:06:28.000000000 +0200
|
||||||
|
@@ -265,7 +265,7 @@
|
||||||
|
f 0755 root sys $SERVERBIN/filter/imagetoraster filter/imagetoraster
|
||||||
|
%endif
|
||||||
|
%if PDFTOPS
|
||||||
|
-f 0755 root sys $SERVERBIN/filter/pdftops pdftops/pdftops
|
||||||
|
+f 0755 root sys $SERVERBIN/filter/pdftops filter/pdftops
|
||||||
|
%endif
|
||||||
|
f 0755 root sys $SERVERBIN/filter/pstops filter/pstops
|
||||||
|
f 0755 root sys $SERVERBIN/filter/rastertolabel filter/rastertolabel
|
||||||
|
--- ./filter/Makefile.orig 2007-07-20 01:27:49.000000000 +0200
|
||||||
|
+++ ./filter/Makefile 2008-04-09 18:05:26.000000000 +0200
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
FILTERS = gziptoany hpgltops texttops pstops $(IMGFILTERS) \
|
||||||
|
- rastertolabel rastertoepson rastertohp
|
||||||
|
+ rastertolabel rastertoepson rastertohp pdftops
|
||||||
|
TARGETS = $(FILTERS) \
|
||||||
|
$(LIBCUPSIMAGE) \
|
||||||
|
libcupsimage.a \
|
||||||
|
@@ -41,7 +41,7 @@
|
||||||
|
OBJS = $(HPGLOBJS) $(IMAGEOBJS) $(FORMOBJS) \
|
||||||
|
gziptoany.o imagetops.o imagetoraster.o common.o pstops.o \
|
||||||
|
rasterbench.o rastertoepson.o rastertohp.o rastertolabel.o \
|
||||||
|
- testimage.o testraster.o textcommon.o texttops.o
|
||||||
|
+ testimage.o testraster.o textcommon.o texttops.o pdftops.o
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
@@ -322,6 +322,14 @@
|
||||||
|
echo Linking $@...
|
||||||
|
$(CC) $(LDFLAGS) -o $@ pstops.o common.o $(LIBS) -lm
|
||||||
|
|
||||||
|
+#
|
||||||
|
+# pdftops
|
||||||
|
+#
|
||||||
|
+
|
||||||
|
+pdftops: pdftops.o common.o ../cups/$(LIBCUPS)
|
||||||
|
+ echo Linking $@...
|
||||||
|
+ $(CC) $(LDFLAGS) -o $@ pdftops.o common.o $(LIBS)
|
||||||
|
+
|
||||||
|
|
||||||
|
#
|
||||||
|
# rastertolabel
|
||||||
|
--- cups-1.3.7/config-scripts/cups-pdf.m4.orig 2007-07-11 23:46:42.000000000 +0200
|
||||||
|
+++ cups-1.3.7/config-scripts/cups-pdf.m4 2008-04-09 18:21:35.000000000 +0200
|
||||||
|
@@ -18,12 +18,20 @@
|
||||||
|
PDFTOPS=""
|
||||||
|
|
||||||
|
if test "x$enable_pdftops" != xno; then
|
||||||
|
- AC_MSG_CHECKING(whether to build pdftops filter)
|
||||||
|
- if test "x$enable_pdftops" = xyes -o $uname != Darwin; then
|
||||||
|
- PDFTOPS="pdftops"
|
||||||
|
- AC_MSG_RESULT(yes)
|
||||||
|
- else
|
||||||
|
- AC_MSG_RESULT(no)
|
||||||
|
+ AC_PATH_PROG(CUPS_PDFTOPS, pdftops)
|
||||||
|
+ AC_DEFINE_UNQUOTED(CUPS_PDFTOPS, "$CUPS_PDFTOPS")
|
||||||
|
+
|
||||||
|
+ if test "x$CUPS_PDFTOPS" != x; then
|
||||||
|
+ AC_MSG_CHECKING(whether to build pdftops filter)
|
||||||
|
+ if test "x$enable_pdftops" = xyes -o $uname != Darwin; then
|
||||||
|
+ PDFTOPS="pdftops"
|
||||||
|
+ AC_MSG_RESULT(yes)
|
||||||
|
+ else
|
||||||
|
+ AC_MSG_RESULT(no)
|
||||||
|
+ fi
|
||||||
|
+ elif test x$enable_pdftops = xyes; then
|
||||||
|
+ AC_MSG_ERROR(Unable to find pdftops program!)
|
||||||
|
+ exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
--- cups-1.3.7/config.h.in.orig 2008-01-07 19:26:57.000000000 +0100
|
||||||
|
+++ cups-1.3.7/config.h.in 2008-04-09 18:22:50.000000000 +0200
|
||||||
|
@@ -420,6 +420,12 @@
|
||||||
|
#undef HAVE_PYTHON
|
||||||
|
#define CUPS_PYTHON "/usr/bin/python"
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * Location of the poppler/Xpdf pdftops program...
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#define CUPS_PDFTOPS "/usr/bin/pdftops"
|
||||||
|
+
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have Darwin's CoreFoundation and SystemConfiguration frameworks?
|
||||||
|
--- cups-1.3.7/filter/pdftops.c.orig 2008-04-09 18:23:35.000000000 +0200
|
||||||
|
+++ cups-1.3.7/filter/pdftops.c 2008-04-09 18:33:53.000000000 +0200
|
||||||
|
@@ -115,7 +115,7 @@
|
||||||
|
|
||||||
|
if ((fd = cupsTempFd(tempfile, sizeof(tempfile))) < 0)
|
||||||
|
{
|
||||||
|
- _cupsLangPrintError(_("ERROR: Unable to copy PDF file"));
|
||||||
|
+ perror(_("ERROR: Unable to copy PDF file"));
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -245,7 +245,7 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
execv(CUPS_PDFTOPS, pdfargv);
|
||||||
|
- _cupsLangPrintError(_("ERROR: Unable to execute pdftops filter"));
|
||||||
|
+ perror(_("ERROR: Unable to execute pdftops filter"));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
else if (pdfpid < 0)
|
||||||
|
@@ -254,7 +254,7 @@
|
||||||
|
* Unable to fork!
|
||||||
|
*/
|
||||||
|
|
||||||
|
- _cupsLangPrintError(_("ERROR: Unable to execute pdftops filter"));
|
||||||
|
+ perror(_("ERROR: Unable to execute pdftops filter"));
|
||||||
|
pdfstatus = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
--- cups-1.3.7/Makefile.orig 2008-02-16 00:26:51.000000000 +0100
|
||||||
|
+++ cups-1.3.7/Makefile 2008-04-09 19:08:39.000000000 +0200
|
||||||
|
@@ -20,7 +20,7 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
DIRS = cups backend berkeley cgi-bin filter locale man monitor \
|
||||||
|
- notifier $(PDFTOPS) scheduler systemv test \
|
||||||
|
+ notifier scheduler systemv test \
|
||||||
|
$(PHPDIR) \
|
||||||
|
conf data doc $(FONTS) ppd templates
|
||||||
|
|
40
cups-1.4svn-pdftops_wait_eintr.patch
Normal file
40
cups-1.4svn-pdftops_wait_eintr.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||||
|
## pdftops-wait-eintr.dpatch by <mpitt@debian.org>
|
||||||
|
##
|
||||||
|
## DP: Handle EINTR in pdftops' wait() call.
|
||||||
|
|
||||||
|
@DPATCH@
|
||||||
|
diff -urNad trunk~/filter/pdftops.c trunk/filter/pdftops.c
|
||||||
|
--- trunk~/filter/pdftops.c 2008-04-02 02:54:45.000000000 +0200
|
||||||
|
+++ trunk/filter/pdftops.c 2008-04-02 02:54:59.000000000 +0200
|
||||||
|
@@ -28,6 +28,7 @@
|
||||||
|
#include <cups/i18n.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -62,6 +63,7 @@
|
||||||
|
char *pdfargv[100], /* Arguments for pdftops */
|
||||||
|
pdfwidth[255], /* Paper width */
|
||||||
|
pdfheight[255]; /* Paper height */
|
||||||
|
+ pid_t child; /* wait() result */
|
||||||
|
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
|
||||||
|
struct sigaction action; /* Actions for POSIX signals */
|
||||||
|
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
|
||||||
|
@@ -260,8 +262,13 @@
|
||||||
|
/*
|
||||||
|
* Parent comes here...
|
||||||
|
*/
|
||||||
|
+
|
||||||
|
+ do
|
||||||
|
+ {
|
||||||
|
+ child = wait(&pdfstatus);
|
||||||
|
+ } while (child < 0 && errno == EINTR);
|
||||||
|
|
||||||
|
- if (wait(&pdfstatus) != pdfpid)
|
||||||
|
+ if (child != pdfpid)
|
||||||
|
{
|
||||||
|
kill(pdfpid, SIGTERM);
|
||||||
|
pdfstatus = 1;
|
77
cups-client.conf
Normal file
77
cups-client.conf
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
# Sample client configuration file for the Common UNIX Printing System
|
||||||
|
# (CUPS).
|
||||||
|
#
|
||||||
|
# Copyright 1997-2005 by Easy Software Products, all rights reserved.
|
||||||
|
# Klaus Singvogel <kssingvo@suse.de> modified it for SUSE distribution.
|
||||||
|
#
|
||||||
|
# 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 USA
|
||||||
|
#
|
||||||
|
# Voice: (301) 373-9600
|
||||||
|
# EMail: cups-info@cups.org
|
||||||
|
# WWW: http://www.cups.org
|
||||||
|
#
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# #
|
||||||
|
# This is the CUPS client configuration file. This file is used to #
|
||||||
|
# define client-specific parameters, such as the default server or #
|
||||||
|
# default encryption settings. #
|
||||||
|
# #
|
||||||
|
# Put this file on /etc/cups/client.conf (system use) or #
|
||||||
|
# ~/.cups/client.conf (personal use). #
|
||||||
|
# #
|
||||||
|
# more information in the manual page client.conf(5)
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Encryption: directive specifies the default encryption settings for
|
||||||
|
# the client.
|
||||||
|
#
|
||||||
|
# Possible values:
|
||||||
|
#
|
||||||
|
# IfRequested
|
||||||
|
# Never
|
||||||
|
# Required
|
||||||
|
# Always
|
||||||
|
#
|
||||||
|
# The default value is "IfRequested".
|
||||||
|
# This parameter can also be set # using the CUPS_ENCRYPTION environment
|
||||||
|
# variable.
|
||||||
|
#
|
||||||
|
|
||||||
|
#Encryption IfRequested
|
||||||
|
#Encryption Never
|
||||||
|
#Encryption Required
|
||||||
|
#Encryption Always
|
||||||
|
|
||||||
|
#
|
||||||
|
# ServerName: directive specifies sets the remote server that is to be
|
||||||
|
# used for all client operations. That is, it redirects all client
|
||||||
|
# requests to the remote server.
|
||||||
|
#
|
||||||
|
# By default CUPS will use the domain socket /var/run/cups/cups.sock or
|
||||||
|
# local server ("localhost"), if so configured. The value can be
|
||||||
|
# overwritten by the CUPS_SERVER environment variable.
|
||||||
|
#
|
||||||
|
# The default port number is 631 but can be overridden by adding a colon
|
||||||
|
# followed by the desired port number to the value.
|
||||||
|
#
|
||||||
|
# ONLY ONE SERVER NAME MAY BE SPECIFIED AT A TIME. To use more than one
|
||||||
|
# server you must use a local scheduler with browsing and possibly
|
||||||
|
# polling.
|
||||||
|
#
|
||||||
|
|
||||||
|
#ServerName /domain/socket
|
||||||
|
#ServerName foo.bar.com
|
||||||
|
#ServerName 11.22.33.444
|
||||||
|
#ServerName foo.bar.com:8631
|
5
cups-krb5-config
Normal file
5
cups-krb5-config
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
unset CFLAGS
|
||||||
|
/usr/lib/mit/bin/krb5-config ${1+"$@"} | \
|
||||||
|
sed -r -e 's/-W[^[:blank:]]+//g' -e 's/-L[^[:blank:]]+//g'
|
13
cups.changes
13
cups.changes
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 9 19:38:27 CEST 2008 - kssingvo@suse.de
|
||||||
|
|
||||||
|
- pdftops uses now system command e.g. xpdf-tools (as in cups-1.4svn)
|
||||||
|
- due to requests: client.conf is back in /etc/cups
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 9 12:30:55 CEST 2008 - kssingvo@suse.de
|
||||||
|
|
||||||
|
- fix for buildsystem: added wrapper script for krb5-config as the
|
||||||
|
original output shows $CFLAGS $LIBDIR of cups.spec and rpath flags
|
||||||
|
(bugzilla#378270)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Apr 8 20:47:47 CEST 2008 - kssingvo@suse.de
|
Tue Apr 8 20:47:47 CEST 2008 - kssingvo@suse.de
|
||||||
|
|
||||||
|
36
cups.spec
36
cups.spec
@ -22,7 +22,7 @@ License: GPL v2 or later
|
|||||||
Group: Hardware/Printing
|
Group: Hardware/Printing
|
||||||
Summary: The Common UNIX Printing System
|
Summary: The Common UNIX Printing System
|
||||||
Version: 1.3.7
|
Version: 1.3.7
|
||||||
Release: 3
|
Release: 4
|
||||||
Requires: cups-libs = %{version}, cups-client = %{version}
|
Requires: cups-libs = %{version}, cups-client = %{version}
|
||||||
Requires: ghostscript_any, ghostscript-fonts-std, foomatic-filters
|
Requires: ghostscript_any, ghostscript-fonts-std, foomatic-filters
|
||||||
Requires: util-linux
|
Requires: util-linux
|
||||||
@ -45,6 +45,9 @@ Source16: PSLEVEL2.PPD.bz2
|
|||||||
Source17: cups.SuSEfirewall2
|
Source17: cups.SuSEfirewall2
|
||||||
Source18: http://download.sourceforge.net/cups-mailto/cups-pdf.ppd
|
Source18: http://download.sourceforge.net/cups-mailto/cups-pdf.ppd
|
||||||
Source19: http://download.sourceforge.net/cups-mailto/cups-pstopdf
|
Source19: http://download.sourceforge.net/cups-mailto/cups-pstopdf
|
||||||
|
Source20: cups-krb5-config
|
||||||
|
Source21: cups-client.conf
|
||||||
|
Source22: cups-1.4svn-pdftops.c
|
||||||
Patch1: cups-1.3.3-mime.patch
|
Patch1: cups-1.3.3-mime.patch
|
||||||
Patch2: cups-1.2.0-ppdsdat_generation.patch
|
Patch2: cups-1.2.0-ppdsdat_generation.patch
|
||||||
Patch3: cups-1.2rc1-template.patch
|
Patch3: cups-1.2rc1-template.patch
|
||||||
@ -59,8 +62,18 @@ Patch14: cups-1.1.21-testppd_duplex.patch
|
|||||||
Patch15: cups-1.2.11-testppd_filename.patch
|
Patch15: cups-1.2.11-testppd_filename.patch
|
||||||
Patch16: cups-1.2.5-desktop_file.patch
|
Patch16: cups-1.2.5-desktop_file.patch
|
||||||
Patch17: cups-1.3.3-testppd_none.patch
|
Patch17: cups-1.3.3-testppd_none.patch
|
||||||
|
Patch18: cups-1.4svn-pdftops_as_filter.patch
|
||||||
|
# next is found as http://www.cups.org/strfiles/2780/pdftops-wait-eintr.dpatch
|
||||||
|
Patch19: cups-1.4svn-pdftops_wait_eintr.patch
|
||||||
Patch100: cups-1.1.23-testpage.patch
|
Patch100: cups-1.1.23-testpage.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
%if 0%{?suse_version} > 1030
|
||||||
|
Requires: poppler-tools
|
||||||
|
BuildRequires: poppler-tools
|
||||||
|
%else
|
||||||
|
Requires: xpdf-tools
|
||||||
|
BuildRequires: xpdf-tools
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The Common UNIX Printing System provides a portable printing layer for
|
The Common UNIX Printing System provides a portable printing layer for
|
||||||
@ -121,7 +134,7 @@ Authors:
|
|||||||
License: GPL v2 or later
|
License: GPL v2 or later
|
||||||
Summary: Development Environment for CUPS
|
Summary: Development Environment for CUPS
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: %{name}-libs = %{version} openssl-devel glibc-devel
|
Requires: %{name}-libs = %{version} openssl-devel glibc-devel krb5-devel
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
The Common UNIX Printing System provides a portable printing layer for
|
The Common UNIX Printing System provides a portable printing layer for
|
||||||
@ -138,6 +151,9 @@ Authors:
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -n %{name}-%{version}
|
%setup -n %{name}-%{version}
|
||||||
|
%{INSTALL_DATA} %{SOURCE22} filter/pdftops.c
|
||||||
|
# just to make avoid misunderstandings...
|
||||||
|
mv pdftops pdftos.use_filter_pdftops_c
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
@ -152,6 +168,8 @@ Authors:
|
|||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch16 -p1
|
%patch16 -p1
|
||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
|
%patch18 -p1
|
||||||
|
%patch19 -p1
|
||||||
if [ -f /.buildenv ]; then
|
if [ -f /.buildenv ]; then
|
||||||
. /.buildenv
|
. /.buildenv
|
||||||
else
|
else
|
||||||
@ -165,6 +183,7 @@ perl -pi -e 's|(CUPS_SERVERBIN=\")\$exec_prefix/lib|$1'%{_libdir}'|' \
|
|||||||
config-scripts/cups-directories.m4
|
config-scripts/cups-directories.m4
|
||||||
cp -a %{SOURCE9} .
|
cp -a %{SOURCE9} .
|
||||||
cp -a %{SOURCE10} .
|
cp -a %{SOURCE10} .
|
||||||
|
%{INSTALL_SCRIPT} %{SOURCE20} krb5-config
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%{?suse_update_config:%{suse_update_config -f . }}
|
%{?suse_update_config:%{suse_update_config -f . }}
|
||||||
@ -179,7 +198,7 @@ export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -O2 -fno-strict-aliasing"
|
|||||||
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||||
%endif
|
%endif
|
||||||
export CXX=g++
|
export CXX=g++
|
||||||
./configure \
|
KRB5CONFIG=${PWD}/krb5-config ./configure \
|
||||||
--mandir=%{_mandir} \
|
--mandir=%{_mandir} \
|
||||||
--sysconfdir=%{_sysconfdir} \
|
--sysconfdir=%{_sysconfdir} \
|
||||||
--libdir=%{_libdir} \
|
--libdir=%{_libdir} \
|
||||||
@ -239,6 +258,8 @@ mkdir -p $RPM_BUILD_ROOT/usr/share/ghostscript/fonts
|
|||||||
ln -sf /usr/share/ghostscript/fonts $RPM_BUILD_ROOT/usr/share/cups/
|
ln -sf /usr/share/ghostscript/fonts $RPM_BUILD_ROOT/usr/share/cups/
|
||||||
# make directory for ssl files:
|
# make directory for ssl files:
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/cups/ssl
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/cups/ssl
|
||||||
|
# add old client.conf as reference:
|
||||||
|
%{INSTALL_DATA} %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/cups/client.conf
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
|
||||||
install -m 644 -D packaging/cups-dbus.conf $RPM_BUILD_ROOT%{_sysconfdir}/dbus-1/system.d/cups.conf
|
install -m 644 -D packaging/cups-dbus.conf $RPM_BUILD_ROOT%{_sysconfdir}/dbus-1/system.d/cups.conf
|
||||||
install -m 644 -D %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd
|
install -m 644 -D %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd
|
||||||
@ -396,13 +417,20 @@ rm -rf $RPM_BUILD_ROOT/usr/share/locale/no
|
|||||||
%dir %attr(0710,root,lp) %{_var}/spool/cups
|
%dir %attr(0710,root,lp) %{_var}/spool/cups
|
||||||
%dir %attr(1770,root,lp) %{_var}/spool/cups/tmp
|
%dir %attr(1770,root,lp) %{_var}/spool/cups/tmp
|
||||||
%dir %attr(0755,lp,lp) %{_var}/log/cups/
|
%dir %attr(0755,lp,lp) %{_var}/log/cups/
|
||||||
# %config(noreplace) %{_sysconfdir}/cups/client.conf
|
%config(noreplace) %{_sysconfdir}/cups/client.conf
|
||||||
%config(noreplace) /etc/sysconfig/SuSEfirewall2.d/services/cups
|
%config(noreplace) /etc/sysconfig/SuSEfirewall2.d/services/cups
|
||||||
%{_libdir}/libcups.so.*
|
%{_libdir}/libcups.so.*
|
||||||
%{_libdir}/libcupsimage.so.*
|
%{_libdir}/libcupsimage.so.*
|
||||||
%{_datadir}/locale/*/cups_*
|
%{_datadir}/locale/*/cups_*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Apr 09 2008 kssingvo@suse.de
|
||||||
|
- pdftops uses now system command e.g. xpdf-tools (as in cups-1.4svn)
|
||||||
|
- due to requests: client.conf is back in /etc/cups
|
||||||
|
* Wed Apr 09 2008 kssingvo@suse.de
|
||||||
|
- fix for buildsystem: added wrapper script for krb5-config as the
|
||||||
|
original output shows $CFLAGS $LIBDIR of cups.spec and rpath flags
|
||||||
|
(bugzilla#378270)
|
||||||
* Tue Apr 08 2008 kssingvo@suse.de
|
* Tue Apr 08 2008 kssingvo@suse.de
|
||||||
- added missing directory /var/cache/cups to %%files
|
- added missing directory /var/cache/cups to %%files
|
||||||
- added pstopdf filter (from cups-mailto project at sourceforge.net)
|
- added pstopdf filter (from cups-mailto project at sourceforge.net)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user