diff --git a/cups-lspp.patch b/cups-lspp.patch index 9da09ec..36a1b3b 100644 --- a/cups-lspp.patch +++ b/cups-lspp.patch @@ -1,4 +1,3 @@ -diff -up cups-1.3.7/cups/cups.h.lspp cups-1.3.7/cups/cups.h --- cups-1.3.7/cups/cups.h.lspp 2008-02-20 00:32:58.000000000 +0000 +++ cups-1.3.7/cups/cups.h 2008-05-30 16:59:10.000000000 +0100 @@ -15,6 +15,9 @@ @@ -24,7 +23,6 @@ diff -up cups-1.3.7/cups/cups.h.lspp cups-1.3.7/cups/cups.h /* * Types and structures... */ -diff -up cups-1.3.7/scheduler/job.c.lspp cups-1.3.7/scheduler/job.c --- cups-1.3.7/scheduler/job.c.lspp 2008-05-30 16:59:10.000000000 +0100 +++ cups-1.3.7/scheduler/job.c 2008-05-30 17:01:23.000000000 +0100 @@ -60,6 +60,9 @@ @@ -383,7 +381,6 @@ diff -up cups-1.3.7/scheduler/job.c.lspp cups-1.3.7/scheduler/job.c if (Classification && !banner_page) { if ((attr = ippFindAttribute(job->attrs, "job-sheets", -diff -up cups-1.3.7/scheduler/printers.c.lspp cups-1.3.7/scheduler/printers.c --- cups-1.3.7/scheduler/printers.c.lspp 2008-05-30 16:59:10.000000000 +0100 +++ cups-1.3.7/scheduler/printers.c 2008-05-30 16:59:10.000000000 +0100 @@ -51,6 +51,8 @@ @@ -465,7 +462,6 @@ diff -up cups-1.3.7/scheduler/printers.c.lspp cups-1.3.7/scheduler/printers.c } p->raw = 0; -diff -up cups-1.3.7/scheduler/conf.c.lspp cups-1.3.7/scheduler/conf.c --- cups-1.3.7/scheduler/conf.c.lspp 2008-05-30 16:59:10.000000000 +0100 +++ cups-1.3.7/scheduler/conf.c 2008-05-30 16:59:10.000000000 +0100 @@ -26,6 +26,7 @@ @@ -577,7 +573,6 @@ diff -up cups-1.3.7/scheduler/conf.c.lspp cups-1.3.7/scheduler/conf.c /* * End of "$Id: conf.c 7382 2008-03-20 04:06:01Z mike $". -diff -up cups-1.3.7/scheduler/job.h.lspp cups-1.3.7/scheduler/job.h --- cups-1.3.7/scheduler/job.h.lspp 2008-01-16 22:20:33.000000000 +0000 +++ cups-1.3.7/scheduler/job.h 2008-05-30 16:59:31.000000000 +0100 @@ -13,6 +13,13 @@ @@ -605,7 +600,6 @@ diff -up cups-1.3.7/scheduler/job.h.lspp cups-1.3.7/scheduler/job.h } cupsd_job_t; -diff -up cups-1.3.7/scheduler/main.c.lspp cups-1.3.7/scheduler/main.c --- cups-1.3.7/scheduler/main.c.lspp 2008-05-30 16:59:10.000000000 +0100 +++ cups-1.3.7/scheduler/main.c 2008-05-30 16:59:10.000000000 +0100 @@ -35,6 +35,8 @@ @@ -675,9 +669,8 @@ diff -up cups-1.3.7/scheduler/main.c.lspp cups-1.3.7/scheduler/main.c return (!stop_scheduler); } -diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c ---- cups-1.3.7/scheduler/ipp.c.lspp 2008-05-30 16:59:10.000000000 +0100 -+++ cups-1.3.7/scheduler/ipp.c 2008-05-30 17:01:08.000000000 +0100 +--- cups-1.3.7/scheduler/ipp.c 2008-05-30 17:01:08.000000000 +0100 ++++ cups-1.3.7/scheduler/ipp.c 2008-07-01 12:30:59.000000000 +0100 @@ -36,6 +36,7 @@ * cancel_all_jobs() - Cancel all print jobs. * cancel_job() - Cancel a print job. @@ -696,7 +689,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c /* * Include necessary headers... */ -@@ -116,6 +120,14 @@ extern int mbr_check_membership_by_id(uu +@@ -116,6 +120,14 @@ # endif /* HAVE_MEMBERSHIPPRIV_H */ #endif /* __APPLE__ */ @@ -711,7 +704,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c /* * Local functions... -@@ -140,6 +152,9 @@ static void authenticate_job(cupsd_clien +@@ -140,6 +152,9 @@ static void cancel_all_jobs(cupsd_client_t *con, ipp_attribute_t *uri); static void cancel_job(cupsd_client_t *con, ipp_attribute_t *uri); static void cancel_subscription(cupsd_client_t *con, int id); @@ -721,22 +714,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c static int check_quotas(cupsd_client_t *con, cupsd_printer_t *p); static ipp_attribute_t *copy_attribute(ipp_t *to, ipp_attribute_t *attr, int quickcopy); -@@ -774,7 +789,13 @@ cupsdTimeoutJob(cupsd_job_t *job) /* I - - cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Adding end banner page \"%s\".", - job->id, attr->values[1].string.text); - -- if ((kbytes = copy_banner(NULL, job, attr->values[1].string.text)) < 0) -+ if ((kbytes = copy_banner( -+#ifdef WITH_LSPP -+ job->scon, -+#else -+ NULL, -+#endif -+ job, attr->values[1].string.text)) < 0) - return (-1); - - cupsdUpdateQuota(printer, job->username, 0, kbytes); -@@ -1267,6 +1288,21 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1267,6 +1282,21 @@ int kbytes; /* Size of print file */ int i; /* Looping var */ int lowerpagerange; /* Page range bound */ @@ -758,7 +736,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))", -@@ -1454,6 +1490,104 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1454,6 +1484,104 @@ ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL, title = "Untitled"); @@ -863,7 +841,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c if ((job = cupsdAddJob(priority, printer->name)) == NULL) { send_ipp_status(con, IPP_INTERNAL_ERROR, -@@ -1462,6 +1596,32 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1462,6 +1590,32 @@ return (NULL); } @@ -896,7 +874,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | CUPS_PRINTER_REMOTE); job->attrs = con->request; -@@ -1668,6 +1828,29 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1668,6 +1822,29 @@ attr->values[0].string.text = _cupsStrAlloc(printer->job_sheets[0]); attr->values[1].string.text = _cupsStrAlloc(printer->job_sheets[1]); } @@ -926,7 +904,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c job->job_sheets = attr; -@@ -1698,6 +1881,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1698,6 +1875,9 @@ "job-sheets=\"%s,none\", " "job-originating-user-name=\"%s\"", job->id, Classification, job->username); @@ -936,7 +914,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c } else if (attr->num_values == 2 && strcmp(attr->values[0].string.text, -@@ -1716,6 +1902,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1716,6 +1896,9 @@ "job-originating-user-name=\"%s\"", job->id, attr->values[0].string.text, attr->values[1].string.text, job->username); @@ -946,7 +924,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c } else if (strcmp(attr->values[0].string.text, Classification) && strcmp(attr->values[0].string.text, "none") && -@@ -1736,6 +1925,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1736,6 +1919,9 @@ "job-originating-user-name=\"%s\"", job->id, attr->values[0].string.text, attr->values[1].string.text, job->username); @@ -956,7 +934,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c } } else if (strcmp(attr->values[0].string.text, Classification) && -@@ -1776,9 +1968,52 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1776,7 +1962,50 @@ "job-sheets=\"%s\", " "job-originating-user-name=\"%s\"", job->id, Classification, job->username); @@ -994,22 +972,20 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c + (attr->num_values > 1) ? attr->values[1].string.text : "(null)"); + audit_log_user_message(AuditLog, AUDIT_LABEL_OVERRIDE, audit_message, + ServerName, NULL, NULL, 0); -+ } -+ cupsdClearString(&audit_message); } - } - ++ cupsdClearString(&audit_message); ++ } ++ } ++ + if (userheader) + free(userheader); + if (userfooter) + free(userfooter); +#endif /* WITH_LSPP */ -+ } -+ + } + /* - * See if we need to add the starting sheet... - */ -@@ -3391,6 +3626,103 @@ cancel_subscription( +@@ -3391,6 +3620,103 @@ } @@ -1113,7 +1089,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c /* * 'check_quotas()' - Check quotas for a printer and user. */ -@@ -3912,6 +4244,15 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -3912,6 +4238,15 @@ char attrname[255], /* Name of attribute */ *s; /* Pointer into name */ ipp_attribute_t *attr; /* Attribute */ @@ -1129,13 +1105,13 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c cupsdLogMessage(CUPSD_LOG_DEBUG2, "copy_banner(%p[%d], %p[%d], %s)", -@@ -3946,6 +4287,82 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -3946,6 +4281,82 @@ fchmod(cupsFileNumber(out), 0640); fchown(cupsFileNumber(out), RunUser, Group); +#ifdef WITH_LSPP -+ if (con != NULL && con->scon != NULL && -+ strncmp(con->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0) ++ if (job->scon != NULL && ++ strncmp(job->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0) + { + if (getfilecon(filename, &spoolcon) == -1) + { @@ -1146,7 +1122,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c + return (0); + } + tmpcon = context_new(spoolcon); -+ jobcon = context_new(con->scon); ++ jobcon = context_new(job->scon); + freecon(spoolcon); + if (!tmpcon || !jobcon) + { @@ -1212,16 +1188,16 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c /* * Try the localized banner file under the subdirectory... -@@ -4040,6 +4457,24 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -4040,6 +4451,24 @@ else s = attrname; +#ifdef WITH_LSPP + if (strcmp(s, "mls-label") == 0) + { -+ if (con->scon != NULL && strncmp(con->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0) ++ if (job->scon != NULL && strncmp(job->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0) + { -+ jobcon = context_new(con->scon); ++ jobcon = context_new(job->scon); + if (strcasecmp(name, MLS_CONFIG) == 0) + mls_label = context_range_get(jobcon); + else if (strcasecmp(name, TE_CONFIG) == 0) @@ -1237,7 +1213,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c if (!strcmp(s, "printer-name")) { cupsFilePuts(out, job->dest); -@@ -5765,6 +6200,22 @@ get_job_attrs(cupsd_client_t *con, /* I +@@ -5765,6 +6194,22 @@ return; } @@ -1260,7 +1236,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c /* * Copy attributes... */ -@@ -5970,6 +6421,11 @@ get_jobs(cupsd_client_t *con, /* I - C +@@ -5970,6 +6415,11 @@ if (count > 0) ippAddSeparator(con->response); @@ -1272,7 +1248,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c count ++; cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_jobs: count = %d", count); -@@ -10042,6 +10498,11 @@ validate_user(cupsd_job_t *job, /* I +@@ -10042,6 +10492,11 @@ strlcpy(username, get_username(con), userlen); @@ -1284,7 +1260,6 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c /* * Check the username against the owner... */ -diff -up cups-1.3.7/scheduler/conf.h.lspp cups-1.3.7/scheduler/conf.h --- cups-1.3.7/scheduler/conf.h.lspp 2008-05-30 16:59:10.000000000 +0100 +++ cups-1.3.7/scheduler/conf.h 2008-05-30 16:59:10.000000000 +0100 @@ -193,6 +193,12 @@ VAR char *ServerKey VALUE(NULL); @@ -1310,7 +1285,6 @@ diff -up cups-1.3.7/scheduler/conf.h.lspp cups-1.3.7/scheduler/conf.h /* * Prototypes... -diff -up cups-1.3.7/scheduler/client.c.lspp cups-1.3.7/scheduler/client.c --- cups-1.3.7/scheduler/client.c.lspp 2008-02-12 00:20:32.000000000 +0000 +++ cups-1.3.7/scheduler/client.c 2008-05-30 16:59:10.000000000 +0100 @@ -39,12 +39,14 @@ @@ -1532,7 +1506,6 @@ diff -up cups-1.3.7/scheduler/client.c.lspp cups-1.3.7/scheduler/client.c /* * 'pipe_command()' - Pipe the output of a command to the remote client. */ -diff -up cups-1.3.7/scheduler/client.h.lspp cups-1.3.7/scheduler/client.h --- cups-1.3.7/scheduler/client.h.lspp 2007-10-22 19:52:13.000000000 +0100 +++ cups-1.3.7/scheduler/client.h 2008-05-30 16:59:10.000000000 +0100 @@ -17,6 +17,13 @@ @@ -1570,7 +1543,6 @@ diff -up cups-1.3.7/scheduler/client.h.lspp cups-1.3.7/scheduler/client.h /* -diff -up cups-1.3.7/config.h.in.lspp cups-1.3.7/config.h.in --- cups-1.3.7/config.h.in.lspp 2008-01-07 18:26:57.000000000 +0000 +++ cups-1.3.7/config.h.in 2008-05-30 16:59:10.000000000 +0100 @@ -530,6 +530,13 @@ @@ -1587,7 +1559,6 @@ diff -up cups-1.3.7/config.h.in.lspp cups-1.3.7/config.h.in #endif /* !_CUPS_CONFIG_H_ */ /* -diff -up cups-1.3.7/Makedefs.in.lspp cups-1.3.7/Makedefs.in --- cups-1.3.7/Makedefs.in.lspp 2008-01-22 22:37:21.000000000 +0000 +++ cups-1.3.7/Makedefs.in 2008-05-30 16:59:10.000000000 +0100 @@ -134,7 +134,7 @@ LIBCUPSORDER = @LIBCUPSORDER@ @@ -1599,7 +1570,6 @@ diff -up cups-1.3.7/Makedefs.in.lspp cups-1.3.7/Makedefs.in OPTIM = @OPTIM@ OPTIONS = PAMLIBS = @PAMLIBS@ -diff -up cups-1.3.7/configure.in.lspp cups-1.3.7/configure.in --- cups-1.3.7/configure.in.lspp 2007-07-25 00:47:12.000000000 +0100 +++ cups-1.3.7/configure.in 2008-05-30 16:59:10.000000000 +0100 @@ -42,6 +42,8 @@ sinclude(config-scripts/cups-pap.m4) @@ -1611,7 +1581,6 @@ diff -up cups-1.3.7/configure.in.lspp cups-1.3.7/configure.in INSTALL_LANGUAGES="" UNINSTALL_LANGUAGES="" LANGFILES="" -diff -up /dev/null cups-1.3.7/config-scripts/cups-lspp.m4 --- /dev/null 2008-05-30 08:00:32.690000973 +0100 +++ cups-1.3.7/config-scripts/cups-lspp.m4 2008-05-30 16:59:10.000000000 +0100 @@ -0,0 +1,36 @@ @@ -1651,7 +1620,6 @@ diff -up /dev/null cups-1.3.7/config-scripts/cups-lspp.m4 + ;; + esac +fi -diff -up cups-1.3.7/filter/common.c.lspp cups-1.3.7/filter/common.c --- cups-1.3.7/filter/common.c.lspp 2007-07-11 22:46:42.000000000 +0100 +++ cups-1.3.7/filter/common.c 2008-05-30 16:59:10.000000000 +0100 @@ -30,6 +30,12 @@ @@ -1822,7 +1790,6 @@ diff -up cups-1.3.7/filter/common.c.lspp cups-1.3.7/filter/common.c /* -diff -up cups-1.3.7/data/Makefile.lspp cups-1.3.7/data/Makefile --- cups-1.3.7/data/Makefile.lspp 2007-10-10 23:00:43.000000000 +0100 +++ cups-1.3.7/data/Makefile 2008-05-30 16:59:10.000000000 +0100 @@ -25,7 +25,10 @@ BANNERS = \ @@ -1837,7 +1804,6 @@ diff -up cups-1.3.7/data/Makefile.lspp cups-1.3.7/data/Makefile CHARMAPS = \ euc-cn.txt \ -diff -up /dev/null cups-1.3.7/data/te --- /dev/null 2008-05-30 08:00:32.690000973 +0100 +++ cups-1.3.7/data/te 2008-05-30 16:59:10.000000000 +0100 @@ -0,0 +1,261 @@ @@ -2102,7 +2068,6 @@ diff -up /dev/null cups-1.3.7/data/te +% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $". +% +%%EOF -diff -up /dev/null cups-1.3.7/data/selinux --- /dev/null 2008-05-30 08:00:32.690000973 +0100 +++ cups-1.3.7/data/selinux 2008-05-30 16:59:10.000000000 +0100 @@ -0,0 +1,261 @@ @@ -2367,7 +2332,6 @@ diff -up /dev/null cups-1.3.7/data/selinux +% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $". +% +%%EOF -diff -up /dev/null cups-1.3.7/data/mls --- /dev/null 2008-05-30 08:00:32.690000973 +0100 +++ cups-1.3.7/data/mls 2008-05-30 16:59:10.000000000 +0100 @@ -0,0 +1,261 @@ diff --git a/cups.spec b/cups.spec index df53400..e870615 100644 --- a/cups.spec +++ b/cups.spec @@ -6,7 +6,7 @@ Summary: Common Unix Printing System Name: cups Version: 1.3.7 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2 Group: System Environment/Daemons Source: ftp://ftp.easysw.com/pub/cups/test//cups-%{version}-source.tar.bz2 @@ -457,6 +457,9 @@ rm -rf $RPM_BUILD_ROOT %{cups_serverbin}/daemon/cups-lpd %changelog +* Tue Jul 1 2008 Tim Waugh 1:1.3.7-4 +- Fixed bug #447200 again. + * Tue Jun 17 2008 Tim Waugh 1:1.3.7-3 - Backported cupsGetNamedDest from 1.4 (bug #428086). - Fixed bug #447200 again.