add ldap draft support
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/mds@867 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
18
net-print/cups/files/cups-1.3.0-configure.patch
Normal file
18
net-print/cups/files/cups-1.3.0-configure.patch
Normal file
@@ -0,0 +1,18 @@
|
||||
diff -Naur cups-1.3.3/config-scripts/cups-common.m4 cups-1.3.3.new/config-scripts/cups-common.m4
|
||||
--- cups-1.3.3/config-scripts/cups-common.m4 2007-09-28 22:40:03.000000000 +0200
|
||||
+++ cups-1.3.3.new/config-scripts/cups-common.m4 2007-10-04 14:40:49.414154416 +0200
|
||||
@@ -270,7 +270,12 @@
|
||||
dnl See if we have POSIX ACL support...
|
||||
SAVELIBS="$LIBS"
|
||||
LIBS=""
|
||||
-AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
|
||||
+
|
||||
+AC_ARG_ENABLE(acl, [ --enable-acl enable POSIX ACL support, default=auto])
|
||||
+if test "x$enable_acl" != xno; then
|
||||
+ AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
|
||||
+fi
|
||||
+
|
||||
CUPSDLIBS="$CUPSDLIBS $LIBS"
|
||||
LIBS="$SAVELIBS"
|
||||
|
||||
|
||||
11
net-print/cups/files/cups-1.3.7-backend-https.patch
Normal file
11
net-print/cups/files/cups-1.3.7-backend-https.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
diff -Naur cups-1.3.7/backend/Makefile cups-1.3.7.new/backend/Makefile
|
||||
--- cups-1.3.7/backend/Makefile 2007-08-08 21:27:51.000000000 +0200
|
||||
+++ cups-1.3.7.new/backend/Makefile 2008-04-14 16:42:18.106785330 +0200
|
||||
@@ -62,6 +62,7 @@
|
||||
done
|
||||
$(RM) $(SERVERBIN)/backend/http
|
||||
$(LN) ipp $(SERVERBIN)/backend/http
|
||||
+ $(LN) ipp $(SERVERBIN)/backend/https
|
||||
if test "x$(SYMROOT)" != "x"; then \
|
||||
$(INSTALL_DIR) $(SYMROOT); \
|
||||
for file in $(TARGETS); do \
|
||||
22
net-print/cups/files/cups-1.3.9-CVE-2008-5286.patch
Normal file
22
net-print/cups/files/cups-1.3.9-CVE-2008-5286.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
Index: filter/image-png.c
|
||||
===================================================================
|
||||
--- filter/image-png.c (revision 8062)
|
||||
+++ filter/image-png.c (working copy)
|
||||
@@ -178,7 +178,7 @@
|
||||
{
|
||||
bufsize = img->xsize * img->ysize;
|
||||
|
||||
- if ((bufsize / img->ysize) != img->xsize)
|
||||
+ if ((bufsize / img->xsize) != img->ysize)
|
||||
{
|
||||
fprintf(stderr, "DEBUG: PNG image dimensions (%ux%u) too large!\n",
|
||||
(unsigned)width, (unsigned)height);
|
||||
@@ -190,7 +190,7 @@
|
||||
{
|
||||
bufsize = img->xsize * img->ysize * 3;
|
||||
|
||||
- if ((bufsize / (img->ysize * 3)) != img->xsize)
|
||||
+ if ((bufsize / (img->xsize * 3)) != img->ysize)
|
||||
{
|
||||
fprintf(stderr, "DEBUG: PNG image dimensions (%ux%u) too large!\n",
|
||||
(unsigned)width, (unsigned)height);
|
||||
102
net-print/cups/files/cups-1.3.9-ldap-draft-1.patch
Normal file
102
net-print/cups/files/cups-1.3.9-ldap-draft-1.patch
Normal file
@@ -0,0 +1,102 @@
|
||||
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
||||
Date: 2009-03-13
|
||||
Initial Package Version: 1.3.9
|
||||
Origin: me
|
||||
Upstream Status: unknown
|
||||
Description: use the oids from the ldap ipp draft
|
||||
https://datatracker.ietf.org/drafts/draft-ietf-ipp-ldap-printer-schema/
|
||||
|
||||
this patch also requres a migration addon schema
|
||||
http://ftp.mars.arge.at/mds/printer-cups.schema
|
||||
|
||||
diff -Naur cups-1.3.9.orig/scheduler/dirsvc.c cups-1.3.9/scheduler/dirsvc.c
|
||||
--- cups-1.3.9.orig/scheduler/dirsvc.c 2008-07-18 20:30:23.000000000 +0000
|
||||
+++ cups-1.3.9/scheduler/dirsvc.c 2009-03-13 20:49:31.160730818 +0000
|
||||
@@ -104,11 +104,11 @@
|
||||
#ifdef HAVE_OPENLDAP
|
||||
static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
|
||||
{
|
||||
- "printerDescription",
|
||||
- "printerLocation",
|
||||
- "printerMakeAndModel",
|
||||
- "printerType",
|
||||
- "printerURI",
|
||||
+ "printer-info",
|
||||
+ "printer-location",
|
||||
+ "printer-make-and-model",
|
||||
+ "printer-type",
|
||||
+ "printer-uri",
|
||||
NULL
|
||||
};
|
||||
#endif /* HAVE_OPENLDAP */
|
||||
@@ -1439,35 +1439,35 @@
|
||||
*/
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerDescription")) == NULL)
|
||||
+ "printer-info")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(info, *value, sizeof(info));
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerLocation")) == NULL)
|
||||
+ "printer-location")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(location, *value, sizeof(location));
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerMakeAndModel")) == NULL)
|
||||
+ "printer-make-and-model")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(make_model, *value, sizeof(make_model));
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerType")) == NULL)
|
||||
+ "printer-type")) == NULL)
|
||||
continue;
|
||||
|
||||
type = atoi(*value);
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerURI")) == NULL)
|
||||
+ "printer-uri")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(uri, *value, sizeof(uri));
|
||||
@@ -3004,7 +3004,7 @@
|
||||
uri[1] = NULL;
|
||||
|
||||
snprintf(filter, sizeof(filter),
|
||||
- "(&(objectclass=cupsPrinter)(printerURI=%s))", p->uri);
|
||||
+ "(&(objectclass=cupsPrinter)(printer-uri=%s))", p->uri);
|
||||
|
||||
ldap_search_s(BrowseLDAPHandle, BrowseLDAPDN, LDAP_SCOPE_SUBTREE,
|
||||
filter, (char **)ldap_attrs, 0, &res);
|
||||
@@ -3013,15 +3013,15 @@
|
||||
|
||||
mods[0].mod_type = "cn";
|
||||
mods[0].mod_values = cn_value;
|
||||
- mods[1].mod_type = "printerDescription";
|
||||
+ mods[1].mod_type = "printer-info";
|
||||
mods[1].mod_values = info;
|
||||
- mods[2].mod_type = "printerURI";
|
||||
+ mods[2].mod_type = "printer-uri";
|
||||
mods[2].mod_values = uri;
|
||||
- mods[3].mod_type = "printerLocation";
|
||||
+ mods[3].mod_type = "printer-location";
|
||||
mods[3].mod_values = location;
|
||||
- mods[4].mod_type = "printerMakeAndModel";
|
||||
+ mods[4].mod_type = "printer-make-and-model";
|
||||
mods[4].mod_values = make_model;
|
||||
- mods[5].mod_type = "printerType";
|
||||
+ mods[5].mod_type = "printer-type";
|
||||
mods[5].mod_values = type;
|
||||
mods[6].mod_type = "objectClass";
|
||||
mods[6].mod_values = (char **)objectClass_values;
|
||||
20
net-print/cups/files/cupsd.init.d
Normal file
20
net-print/cups/files/cupsd.init.d
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/sbin/runscript
|
||||
|
||||
depend() {
|
||||
use net
|
||||
@neededservices@
|
||||
before nfs
|
||||
after logger
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting cupsd"
|
||||
start-stop-daemon --start --quiet --exec /usr/sbin/cupsd
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping cupsd"
|
||||
start-stop-daemon --stop --quiet --exec /usr/sbin/cupsd
|
||||
eend $?
|
||||
}
|
||||
340
net-print/cups/files/pdftops-1.20.gentoo
Normal file
340
net-print/cups/files/pdftops-1.20.gentoo
Normal file
@@ -0,0 +1,340 @@
|
||||
#!/usr/bin/perl -w
|
||||
# pdftops.pl - wrapper script for xpdf's pdftops utility to act as a CUPS filter
|
||||
# ==============================================================================
|
||||
# 1.00 - 2004-10-05/Bl
|
||||
# Initial implementation
|
||||
# 1.10 - 2006-09-27/Bl
|
||||
# Alternatively, use Adobe Reader in place of Xpdf's pdftops
|
||||
# 1.20 - 2007-12-03/Bl
|
||||
# Safe temp file creation (fix gentoo bug # 201042)
|
||||
#
|
||||
# Copyright: Helge Blischke / SRZ Berlin 2004-2006
|
||||
# This program is free seoftware and governed by the GNU Public License Version 2.
|
||||
#
|
||||
# Description:
|
||||
# ------------
|
||||
# This program wraps the pdftops utility from the xpdf 3.00 (and higher) suite
|
||||
# to behave as a CUPS filter as a replacement for the original pdftops filter.
|
||||
# As an alternative the Adobe Reader may be used.
|
||||
#
|
||||
# The main purpose of this approach is to keep the properties of a PDF to be
|
||||
# printed as undesturbed as possible, especially with respect to page size,
|
||||
# scaling, and positioning.
|
||||
#
|
||||
# The pdftops utility reads a configuration file 'pdftops.conf' or 'acroread.conf',
|
||||
# respectively, in the CUPS_SERVERROOT directory, which must exist but may be empty.
|
||||
# The sample configuration file accompanying this program sets the defaults which
|
||||
# seem plausible to me with respect to high end production printers.
|
||||
#
|
||||
# To give the user highest possible flexibility, this program accepts and
|
||||
# evaluates a set of job attributes special to this filter, which are
|
||||
# described below:
|
||||
#
|
||||
# pdf-pages=<f>,<l>
|
||||
# expands to the -f and -l options of pdftops
|
||||
# or the -start and -end options of acroread, respectively
|
||||
# to select a page range to process. This is independent
|
||||
# of the page-ranges attribute and may significantly
|
||||
# increase throughput when printing page ranges.
|
||||
# Either of these numbers may be omitted.
|
||||
#
|
||||
# pdf-paper=<name>
|
||||
# For pdftops, <name> may be one of "letter", "legal",
|
||||
# "A4", "A3", or "match"; for acroread, the permetted values
|
||||
# are "letter", "legal", "tabloid", "ledger", "executive",
|
||||
# "a3", "a4", "a5", "b4", "b5", respectively (without the
|
||||
# quotes; the names are treated case independent).
|
||||
# In case of acroread, no paper specification is equivalent
|
||||
# to pdsftops's "match".
|
||||
# pdf-paper=<width>x<height>
|
||||
# <name> may be one of letter, legal , A4, A3, or match;
|
||||
# <width> and <height> are the paper width and height
|
||||
# in printers points (1/72 inch). This expands to
|
||||
# either the -paper or the -paperh and -paperw options
|
||||
# of pdftops or the -size option of acroread.
|
||||
#
|
||||
# pdf-opw=<password>
|
||||
# pdf-upw=<password>
|
||||
# expand to the -opw and -upw options of pdftops,
|
||||
# respectively and permit printing of password
|
||||
# protected PDFs.
|
||||
#
|
||||
# pdf-<option> where <option> is one of
|
||||
# level1, level1sep, level2, level2sep, level3, level3sep,
|
||||
# opi, nocrop, expand, noshrink, nocenter.
|
||||
# See the pdftops manpage for a detailed description of
|
||||
# the respective options.
|
||||
# In case of acroread, the options level1, level?sep, opi,
|
||||
# nocrop, noshrink, and nocenter are silently ignored.
|
||||
#
|
||||
# All other pdftops commandline options are refused.
|
||||
#
|
||||
# The return code of the pdftops utility or acroread, if nonzero, is used as the exit code
|
||||
# of this program; error messages of the pdftops utility are only visible
|
||||
# if 'debug' is specified as LogLevel in cupsd.conf.
|
||||
#
|
||||
# NOTE:
|
||||
# -----
|
||||
# This wrapper script has been initially designed to use the original pdftops utility
|
||||
# as a CUPS filter and now extended to alternately use acroread.
|
||||
# But there are situations where you need to be able to select either variant, thus it
|
||||
# is possible to configure the wrapper to both programs but select one of them by default;
|
||||
# the other one then may be selected by command line option:
|
||||
#
|
||||
# use-pdftops selects pdftops
|
||||
# use-acroread selects acroread
|
||||
#
|
||||
# if both are configured (by defining the appropriate configuration file).
|
||||
#
|
||||
|
||||
#
|
||||
# Site specific parameters - modify as needed
|
||||
# ----------------------------------------------------------------------------------
|
||||
$pdftops_path = "/usr/bin/pdftops"; # path to the xpdf utility
|
||||
$acroread_path = "/opt/bin/acroread"; # path to Adobe Reader
|
||||
$default_app = 'use-pdftops'; # the default if both are configured
|
||||
$use_pdftops = 1; # default on gentoo and highly recommended
|
||||
$use_acroread = 0; # not supported/working on gentoo yet, use at your own risk
|
||||
# ----------------------------------------------------------------------------------
|
||||
|
||||
use File::Temp qw( tempfile );
|
||||
|
||||
#
|
||||
# Check which app to use - pdftops or acroread
|
||||
#
|
||||
$rootdir = $ENV{CUPS_SERVERROOT} || die ("ERROR: CUPS server root directory undefined\n");
|
||||
$use_both = $use_pdftops && $use_acroread;
|
||||
|
||||
#
|
||||
# Check the arguments
|
||||
#
|
||||
die ("ERROR: wrong number of arguments\n") if (scalar @ARGV < 5);
|
||||
|
||||
$jobid = $username = $title = $copies = undef;
|
||||
$jobid = shift; # Job ID
|
||||
$username = shift; # Job requesting user name
|
||||
$title = shift; # Job title
|
||||
$copies = shift; # Number of requested copies
|
||||
$options = shift; # Textual representation of job attributes
|
||||
$pdffile = shift; # Pathname of PDF file to process
|
||||
|
||||
if (defined $use_both && $use_both)
|
||||
{
|
||||
my $optstr = " $options ";
|
||||
my $to_use = '';
|
||||
if ($optstr =~ /\s+(use-acroread|use-pdftops)\s+/)
|
||||
{
|
||||
$to_use = $1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$to_use = $default_app;
|
||||
}
|
||||
if ($to_use eq 'use-acroread')
|
||||
{
|
||||
undef $use_pdftops;
|
||||
}
|
||||
elsif ($to_use eq 'use-pdftops')
|
||||
{
|
||||
undef $use_acroread;
|
||||
}
|
||||
else
|
||||
{
|
||||
die ("ERROR: cannot use both pdftops and acroread simultaneously\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
# If we are reading from STDIN, we must copy the input to a temporary file
|
||||
# as the PDF consumer needs a seekable input.
|
||||
if (! defined $pdffile)
|
||||
{
|
||||
my $template = "pdfinXXXXXX";
|
||||
my $tmpdir = $ENV{TMPDIR};
|
||||
my ($bytes, $buffer);
|
||||
my ($tmpfh, $tmpfile) = tempfile ($template, OPEN => 1, DIR => $tmpdir, UNLINK => 0, SUFFIX => '.tmp');
|
||||
while (($bytes = read (STDIN, $buffer, 1024)) > 0)
|
||||
{
|
||||
print $tmpfh "$buffer";
|
||||
}
|
||||
if ($bytes < 0)
|
||||
{
|
||||
close ($tmpfh);
|
||||
unlink $tmpfile;
|
||||
die ("ERROR: pdftops wrapper: $tmpfile: $!\n");
|
||||
}
|
||||
close ($tmpfh);
|
||||
$pdffile = $tmpfile;
|
||||
$delete_input = 1; # for deleting the temp file after converting
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Check the options string for options to modify the bahaviour of the pdftops utility:
|
||||
#
|
||||
@optarr = split (/\s+/, $options);
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt = ""; # do not pass the -cfg argument to the poppler pdftops util
|
||||
# The following are the (parameterless) command line options that may be used to change the
|
||||
# defaults defiend by pdftops.conf
|
||||
$simple = 'level1|level1sep|level2|level2sep|level3|level3sep|opi|nocrop|expand|noshrink|nocenter';
|
||||
%papernames = (
|
||||
'letter' => '-paper letter',
|
||||
'tabloid' => '-paperw 792 -paperh 1224',
|
||||
'ledger' => '-paperw 1224 -paperh 792',
|
||||
'legal' => '-paper legal',
|
||||
'executive' => '-paperw 756 -paperh 522',
|
||||
'a3' => '-paper A3',
|
||||
'a4' => '-paper A4',
|
||||
'a5' => '-paperw 421 -paperh 595',
|
||||
'b4' => '-paperw 709 -paperh 1002',
|
||||
'b5' => '-paperw 501 -paperh 709',
|
||||
'match' => '-paper match'
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
open (CFG, "<$rootdir/acroread.conf") || die ("ERROR: acroread.conf: $!\n");
|
||||
$cmdopt = '-toPostScript';
|
||||
while (<CFG>)
|
||||
{
|
||||
chomp;
|
||||
next if (/^\s*#/); # skip comment lines
|
||||
next if (/^\s*$/); # skip blank lines
|
||||
s/^-\s*//; # discard leading '-' and white space, as it will be generated later
|
||||
s/\s+$//; # discard trailing white space
|
||||
$cmdopt .= " -$_";
|
||||
}
|
||||
close (CFG);
|
||||
$simple = 'level1|level1sep|level2|level2sep|level3|level3sep|opi|nocrop|expand|noshrink|nocenter';
|
||||
%papernames = (
|
||||
'letter' => '-size letter',
|
||||
'tabloid' => '-size tabloid',
|
||||
'ledger' => '-size ledger',
|
||||
'legal' => '-size legal',
|
||||
'executive' => '-size executive',
|
||||
'a3' => '-size a3',
|
||||
'a4' => '-size a4',
|
||||
'a5' => '-size a5',
|
||||
'b4' => '-size b4',
|
||||
'b5' => '-size b5',
|
||||
'match' => '' # this is the default with acroread
|
||||
);
|
||||
}
|
||||
|
||||
foreach my $option (@optarr)
|
||||
{
|
||||
if ($option =~ /^pdf-(.+)$/)
|
||||
{ # We assume this is an option to evaluate
|
||||
my $optkey = $1; # possible pdftops option
|
||||
if ($optkey =~ /^pages=(\d*),(\d*)$/)
|
||||
{
|
||||
# We do this hack here to avoid clashes with the page-ranges atrribute
|
||||
# which is handled by the pstops filter. And we allow one of the numbers
|
||||
# to be omitted.
|
||||
my $first = $1;
|
||||
my $lastp = $2;
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt .= " -f $1" if ($1); # first page
|
||||
$cmdopt .= " -l $2" if ($2); # last page
|
||||
}
|
||||
else
|
||||
{
|
||||
$cmdopt .= " -start $1" if ($1); # first page
|
||||
$cmdopt .= " -end $2" if ($2); # last page
|
||||
}
|
||||
}
|
||||
elsif ($optkey =~ /^paper=(letter|tabloid|ledger|legal|[Aa]3|[Aa]4|[Aa]5|[Bb]4|[Bb]5|match)$/)
|
||||
{
|
||||
# evaluate paper name
|
||||
my $paper = $1;
|
||||
$paper =~ tr/A-Z/a-z/;
|
||||
my $value = $papernames{$paper};
|
||||
$cmdopt .= " $value" if ($value);
|
||||
}
|
||||
elsif ($optkey =~ /^paper=(\d+)x(\d+)$/)
|
||||
{
|
||||
# evaluate paper dimensions
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt .= " -paperw $1 -paperh $2";
|
||||
}
|
||||
else
|
||||
{
|
||||
$cmdopt .= " -size $1" . 'x' . "$2";
|
||||
}
|
||||
}
|
||||
elsif ($optkey =~ /^(o|u)pw=(\S+)$/)
|
||||
{
|
||||
$cmdopt .= " $1" . 'pw ' . $2 if (defined $use_pdftops); # owner/user password
|
||||
}
|
||||
elsif ($optkey =~ /^($simple)$/)
|
||||
{
|
||||
my $thisopt = $1;
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt .= ' -' . $1; # allowed simple options
|
||||
}
|
||||
else
|
||||
{
|
||||
$thisopt =~ s/sep$//; # ignore the ...sep suffix
|
||||
if ($thisopt =~ /level1|opi|nocrop|nocenter/)
|
||||
{
|
||||
$thisopt = '';
|
||||
}
|
||||
elsif ($thisopt eq 'noshrink')
|
||||
{
|
||||
$thisopt = '';
|
||||
$cmdopt =~ s/ -shrink//;
|
||||
}
|
||||
$cmdopt .= " -" . $thisopt if ($thisopt);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
warn ("ERROR: pdftops wrapper: illegal attribute \"pdf-$optkey\"\n");
|
||||
}
|
||||
}
|
||||
# All other attributes are processed elsewhere
|
||||
}
|
||||
#
|
||||
# Complete the command
|
||||
#
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
warn ("ERROR: pdftops-options: $cmdopt\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
warn ("ERROR: acroread-options: $cmdopt\n");
|
||||
}
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$rc = system ("$pdftops_path $cmdopt $pdffile -");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (defined $pdffile && $pdffile)
|
||||
{
|
||||
$rc = system ("$acroread_path $cmdopt < $pdffile")
|
||||
}
|
||||
else
|
||||
{
|
||||
$rc = system ("$acroread_path $cmdopt");
|
||||
}
|
||||
}
|
||||
if ($rc)
|
||||
{
|
||||
$ir = $rc & 127;
|
||||
$rc >>= 8;
|
||||
my $temp = (defined $use_pdftops) ? $pdftops_path : $acroread_path;
|
||||
warn ("ERROR: $temp exited with ", ($ir) ? "signal $ir, " : " exit code $rc", "\n");
|
||||
exit $rc;
|
||||
}
|
||||
unlink ($pdffile) if (defined $delete_input); # Delete the temp file if any
|
||||
exit 0;
|
||||
Reference in New Issue
Block a user