Comparar commits
13 Commits
master
...
release-1.7.0
| Autor | SHA1 | Data | |
|---|---|---|---|
| f28bae1aea | |||
| 27efcd61e0 | |||
| 06cefec35c | |||
| c2def0ced7 | |||
| e9152ac713 | |||
| 3d3f64a982 | |||
| 4ecc320364 | |||
| 60c3ee0499 | |||
| 305331a392 | |||
| 40e88e9009 | |||
| 5f19ab52fe | |||
| 4a842d5397 | |||
| 75ff7c7fea |
@@ -3,6 +3,8 @@ CHANGES-1.6.txt
|
||||
|
||||
CHANGES IN CUPS V1.6.4
|
||||
|
||||
- Removed some duplicate size definitions for some ISO sizes that were
|
||||
causing problems (<rdar://problem/14722721>)
|
||||
- The IPP backend did not add the "last-document" attribute
|
||||
(<rdar://problem/114660379>)
|
||||
- Added a SyncOnClose directive to cups-files.conf to force cupsd to
|
||||
|
||||
+11
-1
@@ -1,8 +1,18 @@
|
||||
CHANGES.txt - 1.7.0 - 2013-08-01
|
||||
CHANGES.txt - 1.7.0 - 2013-10-18
|
||||
--------------------------------
|
||||
|
||||
CHANGES IN CUPS V1.7.0
|
||||
|
||||
- Updated Japanese localization.
|
||||
- The lpadmin command did not send the PPD name from the "-m" option
|
||||
(<rdar://problem/15264697>)
|
||||
- Network backends now use the prtMarkerSuppliesClass property to
|
||||
determine the direction of supply level values
|
||||
(<rdar://problem/14302628>)
|
||||
- The scheduler did not remove backup PPD files when a printer was
|
||||
deleted (<rdar://problem/15065555>)
|
||||
- The scheduler incorrectly responded to HEAD requests when the web
|
||||
interface was disabled (<rdar://problem/15090332>)
|
||||
- The scheduler did not respond using the hostname specified by the
|
||||
client (<rdar://problem/14583574>)
|
||||
- Fax queues did not work when shared via Bonjour
|
||||
|
||||
+10
-27
@@ -1,36 +1,18 @@
|
||||
/*
|
||||
* "$Id$"
|
||||
*
|
||||
* IPP backend for CUPS.
|
||||
* IPP backend for CUPS.
|
||||
*
|
||||
* Copyright 2007-2013 by Apple Inc.
|
||||
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
|
||||
* Copyright 2007-2013 by Apple Inc.
|
||||
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
|
||||
*
|
||||
* 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"
|
||||
* "LICENSE" which should have been included with this file. If this
|
||||
* file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
* 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"
|
||||
* "LICENSE" which should have been included with this file. If this
|
||||
* file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
*
|
||||
* This file is subject to the Apple OS-Developed Software exception.
|
||||
*
|
||||
* Contents:
|
||||
*
|
||||
* main() - Send a file to the printer or server.
|
||||
* cancel_job() - Cancel a print job.
|
||||
* check_printer_state() - Check the printer state.
|
||||
* monitor_printer() - Monitor the printer state.
|
||||
* new_request() - Create a new print creation or validation
|
||||
* request.
|
||||
* password_cb() - Disable the password prompt for
|
||||
* cupsDoFileRequest().
|
||||
* quote_string() - Quote a string value.
|
||||
* report_attr() - Report an IPP attribute value.
|
||||
* report_printer_state() - Report the printer state.
|
||||
* run_as_user() - Run the IPP backend as the printing user.
|
||||
* sigterm_handler() - Handle 'terminate' signals that stop the backend.
|
||||
* timeout_cb() - Handle HTTP timeouts.
|
||||
* update_reasons() - Update the printer-state-reasons values.
|
||||
* This file is subject to the Apple OS-Developed Software exception.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -133,6 +115,7 @@ static const char * const pattrs[] = /* Printer attributes we want */
|
||||
"media-col-supported",
|
||||
"multiple-document-handling-supported",
|
||||
"operations-supported",
|
||||
"print-color-mode-supported",
|
||||
"printer-alert",
|
||||
"printer-alert-description",
|
||||
"printer-is-accepting-jobs",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* SNMP supplies functions for CUPS.
|
||||
*
|
||||
* Copyright 2008-2012 by Apple Inc.
|
||||
* Copyright 2008-2013 by Apple Inc.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
* property of Apple Inc. and are protected by Federal copyright
|
||||
@@ -62,6 +62,7 @@ typedef struct /**** Printer supply data ****/
|
||||
char name[CUPS_SNMP_MAX_STRING], /* Name of supply */
|
||||
color[8]; /* Color: "#RRGGBB" or "none" */
|
||||
int colorant, /* Colorant index */
|
||||
sclass, /* Supply class */
|
||||
type, /* Supply type */
|
||||
max_capacity, /* Maximum capacity */
|
||||
level; /* Current level value */
|
||||
@@ -148,6 +149,13 @@ static const int prtMarkerSuppliesMaxCapacity[] =
|
||||
(sizeof(prtMarkerSuppliesMaxCapacity) /
|
||||
sizeof(prtMarkerSuppliesMaxCapacity[0]));
|
||||
/* Offset to supply index */
|
||||
static const int prtMarkerSuppliesClass[] =
|
||||
{ CUPS_OID_prtMarkerSuppliesClass, -1 },
|
||||
/* Class OID */
|
||||
prtMarkerSuppliesClassOffset =
|
||||
(sizeof(prtMarkerSuppliesClass) /
|
||||
sizeof(prtMarkerSuppliesClass[0]));
|
||||
/* Offset to supply index */
|
||||
static const int prtMarkerSuppliesType[] =
|
||||
{ CUPS_OID_prtMarkerSuppliesType, -1 },
|
||||
/* Type OID */
|
||||
@@ -257,6 +265,9 @@ backendSNMPSupplies(
|
||||
else
|
||||
percent = 50;
|
||||
|
||||
if (supplies[i].sclass == CUPS_TC_receptacleThatIsFilled)
|
||||
percent = 100 - percent;
|
||||
|
||||
if (percent <= 5)
|
||||
{
|
||||
switch (supplies[i].type)
|
||||
@@ -561,14 +572,14 @@ backend_init_supplies(
|
||||
/*
|
||||
* Yes, read the cache file:
|
||||
*
|
||||
* 2 num_supplies charset
|
||||
* 3 num_supplies charset
|
||||
* device description
|
||||
* supply structures...
|
||||
*/
|
||||
|
||||
if (cupsFileGets(cachefile, value, sizeof(value)))
|
||||
{
|
||||
if (sscanf(value, "2 %d%d", &num_supplies, &charset) == 2 &&
|
||||
if (sscanf(value, "3 %d%d", &num_supplies, &charset) == 2 &&
|
||||
num_supplies <= CUPS_MAX_SUPPLIES &&
|
||||
cupsFileGets(cachefile, value, sizeof(value)))
|
||||
{
|
||||
@@ -664,7 +675,7 @@ backend_init_supplies(
|
||||
|
||||
if ((cachefile = cupsFileOpen(cachefilename, "w")) != NULL)
|
||||
{
|
||||
cupsFilePrintf(cachefile, "2 %d %d\n", num_supplies, charset);
|
||||
cupsFilePrintf(cachefile, "3 %d %d\n", num_supplies, charset);
|
||||
cupsFilePrintf(cachefile, "%s\n", description);
|
||||
|
||||
if (num_supplies > 0)
|
||||
@@ -969,6 +980,25 @@ backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
|
||||
packet->object_value.integer > 0)
|
||||
supplies[i - 1].max_capacity = packet->object_value.integer;
|
||||
}
|
||||
else if (_cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesClass))
|
||||
{
|
||||
/*
|
||||
* Get marker class...
|
||||
*/
|
||||
|
||||
i = packet->object_name[prtMarkerSuppliesClassOffset];
|
||||
if (i < 1 || i > CUPS_MAX_SUPPLIES ||
|
||||
packet->object_type != CUPS_ASN1_INTEGER)
|
||||
return;
|
||||
|
||||
fprintf(stderr, "DEBUG2: prtMarkerSuppliesClass.1.%d = %d\n", i,
|
||||
packet->object_value.integer);
|
||||
|
||||
if (i > num_supplies)
|
||||
num_supplies = i;
|
||||
|
||||
supplies[i - 1].sclass = packet->object_value.integer;
|
||||
}
|
||||
else if (_cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesType))
|
||||
{
|
||||
/*
|
||||
|
||||
+8
-8
@@ -1348,20 +1348,20 @@ do_am_printer(http_t *http, /* I - HTTP connection */
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
|
||||
NULL, uri);
|
||||
|
||||
if (!file)
|
||||
{
|
||||
var = cgiGetVariable("PPD_NAME");
|
||||
if (strcmp(var, "__no_change__"))
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "ppd-name",
|
||||
NULL, var);
|
||||
}
|
||||
|
||||
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-location",
|
||||
NULL, cgiGetVariable("PRINTER_LOCATION"));
|
||||
|
||||
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-info",
|
||||
NULL, cgiGetVariable("PRINTER_INFO"));
|
||||
|
||||
if (!file)
|
||||
{
|
||||
var = cgiGetVariable("PPD_NAME");
|
||||
if (strcmp(var, "__no_change__"))
|
||||
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_NAME, "ppd-name",
|
||||
NULL, var);
|
||||
}
|
||||
|
||||
strlcpy(uri, cgiGetVariable("DEVICE_URI"), sizeof(uri));
|
||||
|
||||
/*
|
||||
|
||||
@@ -2273,7 +2273,8 @@ http_resolve_cb(
|
||||
*/
|
||||
|
||||
if ((uribuf->options & _HTTP_RESOLVE_FAXOUT) &&
|
||||
(!strcmp(scheme, "ipp") || !strcmp(scheme, "ipps")))
|
||||
(!strcmp(scheme, "ipp") || !strcmp(scheme, "ipps")) &&
|
||||
!avahi_string_list_find(txt, "printer-type"))
|
||||
{
|
||||
reskey = "rfo";
|
||||
resdefault = "/ipp/faxout";
|
||||
|
||||
@@ -4169,12 +4169,16 @@ http_content_coding_finish(
|
||||
http_t *http) /* I - HTTP connection */
|
||||
{
|
||||
int zerr; /* Compression status */
|
||||
Byte dummy[1]; /* Dummy read buffer */
|
||||
|
||||
|
||||
switch (http->coding)
|
||||
{
|
||||
case _HTTP_CODING_DEFLATE :
|
||||
case _HTTP_CODING_GZIP :
|
||||
http->stream.next_in = dummy;
|
||||
http->stream.avail_in = 0;
|
||||
|
||||
do
|
||||
{
|
||||
http->stream.next_out = (Bytef *)http->wbuffer + http->wused;
|
||||
|
||||
@@ -61,6 +61,7 @@ _ppdNormalizeMakeAndModel
|
||||
_ppdOpen
|
||||
_ppdOpenFile
|
||||
_ppdParseOptions
|
||||
_pwgMediaTable
|
||||
cupsAddDest
|
||||
cupsAddOption
|
||||
cupsAdminCreateWindowsPPD
|
||||
|
||||
+14
-3
@@ -24,6 +24,7 @@
|
||||
* name.
|
||||
* pwgMediaForSize() - Get the PWG media size for the given
|
||||
* dimensions.
|
||||
* _pwgMediaTable() - Return the internal media size table.
|
||||
* pwg_compare_legacy() - Compare two sizes using the legacy names.
|
||||
* pwg_compare_ppd() - Compare two sizes using the PPD names.
|
||||
* pwg_compare_pwg() - Compare two sizes using the PWG names.
|
||||
@@ -233,13 +234,11 @@ static pwg_media_t const cups_pwg_media[] =
|
||||
_PWG_MEDIA_MM("prc_4_110x208mm", NULL, "EnvPRC4", 110, 208),
|
||||
_PWG_MEDIA_MM("prc_8_120x309mm", NULL, "EnvPRC8", 120, 309),
|
||||
_PWG_MEDIA_MM("prc_6_120x320mm", NULL, NULL, 120, 320),
|
||||
_PWG_MEDIA_MM("prc_3_125x176mm", NULL, "EnvPRC3", 125, 176),
|
||||
_PWG_MEDIA_MM("prc_16k_146x215mm", NULL, "PRC16K", 146, 215),
|
||||
_PWG_MEDIA_MM("prc_7_160x230mm", NULL, "EnvPRC7", 160, 230),
|
||||
_PWG_MEDIA_MM("om_juuro-ku-kai_198x275mm", NULL, NULL, 198, 275),
|
||||
_PWG_MEDIA_MM("om_pa-kai_267x389mm", NULL, NULL, 267, 389),
|
||||
_PWG_MEDIA_MM("om_dai-pa-kai_275x395mm", NULL, NULL, 275, 395),
|
||||
_PWG_MEDIA_MM("prc_10_324x458mm", NULL, "EnvPRC10", 324, 458),
|
||||
|
||||
/* Chinese Standard Sheet Media Inch Sizes */
|
||||
_PWG_MEDIA_IN("roc_16k_7.75x10.75in", NULL, "roc16k", 7.75, 10.75),
|
||||
@@ -251,7 +250,6 @@ static pwg_media_t const cups_pwg_media[] =
|
||||
/* Other Metric Standard Sheet Media Sizes */
|
||||
_PWG_MEDIA_MM("om_small-photo_100x150mm", NULL, "om_small-photo", 100, 150),
|
||||
_PWG_MEDIA_MM("om_italian_110x230mm", NULL, "EnvItalian", 110, 230),
|
||||
_PWG_MEDIA_MM("om_postfix_114x229mm", NULL, NULL, 114, 229),
|
||||
_PWG_MEDIA_MM("om_large-photo_200x300", NULL, "om_large-photo", 200, 300),
|
||||
_PWG_MEDIA_MM("om_folio_210x330mm", "folio", "Folio", 210, 330),
|
||||
_PWG_MEDIA_MM("om_folio-sp_215x315mm", NULL, "FolioSP", 215, 315),
|
||||
@@ -1003,6 +1001,19 @@ pwg_media_t *_pwgMediaForSize(int width, int length)
|
||||
{ return (pwgMediaForSize(width, length)); }
|
||||
|
||||
|
||||
/*
|
||||
* '_pwgMediaTable()' - Return the internal media size table.
|
||||
*/
|
||||
|
||||
const pwg_media_t * /* O - Pointer to first entry */
|
||||
_pwgMediaTable(size_t *num_media) /* O - Number of entries */
|
||||
{
|
||||
*num_media = sizeof(cups_pwg_media) / sizeof(cups_pwg_media[0]);
|
||||
|
||||
return (cups_pwg_media);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pwg_compare_legacy()' - Compare two sizes using the legacy names.
|
||||
*/
|
||||
|
||||
@@ -65,6 +65,7 @@ extern pwg_media_t *_pwgMediaForPWG(const char *pwg)
|
||||
_CUPS_INTERNAL_MSG("Use pwgMediaForPWG instead.");
|
||||
extern pwg_media_t *_pwgMediaForSize(int width, int length)
|
||||
_CUPS_INTERNAL_MSG("Use pwgMediaForSize instead.");
|
||||
extern const pwg_media_t *_pwgMediaTable(size_t *num_media);
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
|
||||
+36
-5
@@ -45,11 +45,15 @@ int /* O - Exit status */
|
||||
main(int argc, /* I - Number of command-line args */
|
||||
char *argv[]) /* I - Command-line arguments */
|
||||
{
|
||||
int status; /* Status of tests (0 = success, 1 = fail) */
|
||||
const char *ppdfile; /* PPD filename */
|
||||
ppd_file_t *ppd; /* PPD file */
|
||||
_ppd_cache_t *pc; /* PPD cache and PWG mapping data */
|
||||
pwg_media_t *pwgmedia; /* PWG media size */
|
||||
int status; /* Status of tests (0 = success, 1 = fail) */
|
||||
const char *ppdfile; /* PPD filename */
|
||||
ppd_file_t *ppd; /* PPD file */
|
||||
_ppd_cache_t *pc; /* PPD cache and PWG mapping data */
|
||||
const pwg_media_t *pwgmedia; /* PWG media size */
|
||||
size_t i, /* Looping var */
|
||||
num_media; /* Number of media sizes */
|
||||
const pwg_media_t *mediatable; /* Media size table */
|
||||
int dupmedia = 0; /* Duplicate media sizes? */
|
||||
|
||||
|
||||
status = 0;
|
||||
@@ -302,6 +306,33 @@ main(int argc, /* I - Number of command-line args */
|
||||
else
|
||||
printf("PASS (%s)\n", pwgmedia->pwg);
|
||||
|
||||
fputs("Duplicate size test: ", stdout);
|
||||
for (mediatable = _pwgMediaTable(&num_media);
|
||||
num_media > 1;
|
||||
num_media --, mediatable ++)
|
||||
{
|
||||
for (i = num_media - 1, pwgmedia = mediatable + 1; i > 0; i --, pwgmedia ++)
|
||||
{
|
||||
if (pwgmedia->width == mediatable->width &&
|
||||
pwgmedia->length == mediatable->length)
|
||||
{
|
||||
if (!dupmedia)
|
||||
{
|
||||
dupmedia = 1;
|
||||
status ++;
|
||||
puts("FAIL");
|
||||
}
|
||||
|
||||
printf(" %s and %s have the same dimensions (%dx%d)\n",
|
||||
pwgmedia->pwg, mediatable->pwg, pwgmedia->width,
|
||||
pwgmedia->length);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!dupmedia)
|
||||
puts("PASS");
|
||||
|
||||
|
||||
return (status);
|
||||
}
|
||||
|
||||
|
||||
+1942
-148
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -254,6 +254,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
/usr/share/doc/cups/es/*
|
||||
%dir /usr/share/doc/cups/fr
|
||||
/usr/share/doc/cups/fr/*
|
||||
%dir /usr/share/doc/cups/it
|
||||
/usr/share/doc/cups/it/*
|
||||
%dir /usr/share/doc/cups/ja
|
||||
/usr/share/doc/cups/ja/*
|
||||
%dir /usr/share/doc/cups/ru
|
||||
@@ -267,6 +269,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
/usr/share/locale/es/cups_es.po
|
||||
%dir /usr/share/locale/fr
|
||||
/usr/share/locale/fr/cups_fr.po
|
||||
%dir /usr/share/locale/it
|
||||
/usr/share/locale/it/cups_it.po
|
||||
%dir /usr/share/locale/ja
|
||||
/usr/share/locale/ja/cups_ja.po
|
||||
%dir /usr/share/locale/ru
|
||||
|
||||
@@ -1905,7 +1905,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
|
||||
}
|
||||
else if (!WebInterface)
|
||||
{
|
||||
if (!cupsdSendHeader(con, HTTP_OK, line, CUPSD_AUTH_NONE))
|
||||
if (!cupsdSendHeader(con, HTTP_OK, NULL, CUPSD_AUTH_NONE))
|
||||
{
|
||||
cupsdCloseClient(con);
|
||||
return;
|
||||
|
||||
@@ -5741,10 +5741,16 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */
|
||||
snprintf(filename, sizeof(filename), "%s/interfaces/%s", ServerRoot,
|
||||
printer->name);
|
||||
unlink(filename);
|
||||
snprintf(filename, sizeof(filename), "%s/interfaces/%s.O", ServerRoot,
|
||||
printer->name);
|
||||
unlink(filename);
|
||||
|
||||
snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd", ServerRoot,
|
||||
printer->name);
|
||||
unlink(filename);
|
||||
snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd.O", ServerRoot,
|
||||
printer->name);
|
||||
unlink(filename);
|
||||
|
||||
snprintf(filename, sizeof(filename), "%s/%s.png", CacheDir, printer->name);
|
||||
unlink(filename);
|
||||
|
||||
@@ -1295,6 +1295,7 @@ set_printer_options(
|
||||
* Add the options...
|
||||
*/
|
||||
|
||||
cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
|
||||
cupsEncodeOptions2(request, num_options, options, IPP_TAG_PRINTER);
|
||||
|
||||
if ((protocol = cupsGetOption("protocol", num_options, options)) != NULL)
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ else
|
||||
fi
|
||||
|
||||
echo Creating tag for release...
|
||||
svn copy svn+ssh://src.apple.com/svn/cups/cups.org/trunk "$url" \
|
||||
svn copy svn+ssh://src.apple.com/svn/cups/cups.org/branches/branch-1.7 "$url" \
|
||||
-m "Tag $version" || exit 1
|
||||
fi
|
||||
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário