~ubuntu-branches/debian/sid/cups/sid

« back to all changes in this revision

Viewing changes to .pc/color-management-extension.patch/scheduler/printers.h

  • Committer: Package Import Robot
  • Author(s): Didier Raboud, Till Kamppeter, Steve Langasek, Didier Raboud
  • Date: 2014-01-03 18:42:39 UTC
  • mfrom: (1.2.21)
  • Revision ID: package-import@ubuntu.com-20140103184239-juzq32ckr7ra49b3
Tags: 1.7.0-1
* New 1.7.0 upstream release

[ Till Kamppeter ]
* Refresh most patches with quilt
* Removed usb-backend-do-not-crash-if-usb-disabled-in-bios and
  cupsd-no-crash-on-avahi-threaded-poll-shutdown patches as they got
  applied upstream
* Removed drop-arch-specifics-from-doc patch as it is not needed
  anymore
* Updated drop_unnecessary_dependencies, manpage-hyphen-minus,
  manpage-translations and ppd-poll-with-client-conf patches manually
  to apply to the new CUPS version
* Added error counting exception from
  usb-backend-do-not-crash-if-usb-disabled-in-bios to
  tests-ignore-warnings
* Install the newly added ippfind utility and its manpage in
  cups-client
* Added pwg.h to libcups2-dev package
* Call dh_auto_clean only if the file Makedefs is present, to avoid a
  FTBFS
* Added color management extensions from Joe Simon's GSoC 2013
  project.
* Patch cups-files.conf to activate CUPS daemon syncing of files when
  closing, so that config files (like printers.conf) do not
  mysteriously disappear (LP: #1157972)
* In the AppArmor profile, allow execution of programs in
  /etc/cups/interfaces/, needed to make CUPS working with queues based
  on System V interface scripts, especially PPD-less queues
  auto-generated by cups-browsed from cups-filters 1.0.41 on.
* Silenced AppArmor noise from udev.conf in syslog (LP: #1229766)

[ Steve Langasek ]
* Add cups-filters (>= 1.0.42) as alternative to foomatic-filters
  (which is deprecated) in package relationships

[ Didier Raboud ]
* Remove Roger Leigh from uploaders on his request with thanks for his
  past work!
* Switch avahi LSB Should-Start dependency to be avahi-daemon; also
  bump package relationship to >= 0.6.31-3~ (Closes: #731608)
* Refresh the manpage translation files
* Move the USB backend quirk rules file to cups-server-common
* Add 38 new 1.7.0 libcups2 symbols
* Mark one C++ libcupsppdc1 symbol as optional as it isn't exported in
  1.7.0 anymore
* Import Fedora patches:
  - to avoid sign-extending CRCs in gz decompression
  - to build with full read-only relocations
  - to fix job history logging (upstream patch)
  - to set the internal default for SyncOnClose to Yes, instead of
    only configuring it to Yes
  - to fix a stringpool corruption issue
  - to prevent USB timeouts causing incorrect print output
* Import Fedora patch updates:
  - to dont-use-dbus-from-two-threads patch so it removes a call to
    avahi_threaded_poll_stop()
  - to avoid_stale_lockfile_in_dbus_notifier patch to call _exit when
    handling SIGTERM
* Move manpage-translations patch at the very end of the patch series
  to have it include all our patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * "$Id: printers.h 10996 2013-05-29 11:51:34Z msweet $"
 
3
 *
 
4
 *   Printer definitions for the CUPS scheduler.
 
5
 *
 
6
 *   Copyright 2007-2012 by Apple Inc.
 
7
 *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
 
8
 *
 
9
 *   These coded instructions, statements, and computer programs are the
 
10
 *   property of Apple Inc. and are protected by Federal copyright
 
11
 *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
 
12
 *   which should have been included with this file.  If this file is
 
13
 *   file is missing or damaged, see the license at "http://www.cups.org/".
 
14
 */
 
15
 
 
16
#ifdef HAVE_DNSSD
 
17
#  include <dns_sd.h>
 
18
#elif defined(HAVE_AVAHI)
 
19
#  include <avahi-client/client.h>
 
20
#  include <avahi-client/publish.h>
 
21
#  include <avahi-common/error.h>
 
22
#  include <avahi-common/thread-watch.h>
 
23
#endif /* HAVE_DNSSD */
 
24
#include <cups/pwg-private.h>
 
25
 
 
26
 
 
27
/*
 
28
 * Quota data...
 
29
 */
 
30
 
 
31
typedef struct
 
32
{
 
33
  char          username[33];           /* User data */
 
34
  time_t        next_update;            /* Next update time */
 
35
  int           page_count,             /* Count of pages */
 
36
                k_count;                /* Count of kilobytes */
 
37
} cupsd_quota_t;
 
38
 
 
39
 
 
40
/*
 
41
 * DNS-SD types to make the code cleaner/clearer...
 
42
 */
 
43
 
 
44
#ifdef HAVE_DNSSD
 
45
typedef DNSServiceRef cupsd_srv_t;      /* Service reference */
 
46
typedef TXTRecordRef cupsd_txt_t;       /* TXT record */
 
47
 
 
48
#elif defined(HAVE_AVAHI)
 
49
typedef AvahiEntryGroup *cupsd_srv_t;   /* Service reference */
 
50
typedef AvahiStringList *cupsd_txt_t;   /* TXT record */
 
51
#endif /* HAVE_DNSSD */
 
52
 
 
53
 
 
54
/*
 
55
 * Printer/class information structure...
 
56
 */
 
57
 
 
58
typedef struct cupsd_job_s cupsd_job_t;
 
59
 
 
60
struct cupsd_printer_s
 
61
{
 
62
  char          *uri,                   /* Printer URI */
 
63
                *uuid,                  /* Printer UUID */
 
64
                *hostname,              /* Host printer resides on */
 
65
                *name,                  /* Printer name */
 
66
                *location,              /* Location code */
 
67
                *make_model,            /* Make and model */
 
68
                *info,                  /* Description */
 
69
                *op_policy,             /* Operation policy name */
 
70
                *error_policy;          /* Error policy */
 
71
  cupsd_policy_t *op_policy_ptr;        /* Pointer to operation policy */
 
72
  int           shared;                 /* Shared? */
 
73
  int           accepting;              /* Accepting jobs? */
 
74
  int           holding_new_jobs;       /* Holding new jobs for printing? */
 
75
  int           in_implicit_class;      /* In an implicit class? */
 
76
  ipp_pstate_t  state;                  /* Printer state */
 
77
  char          state_message[1024];    /* Printer state message */
 
78
  int           num_reasons;            /* Number of printer-state-reasons */
 
79
  char          *reasons[64];           /* printer-state-reasons strings */
 
80
  time_t        state_time;             /* Time at this state */
 
81
  char          *job_sheets[2];         /* Banners/job sheets */
 
82
  cups_ptype_t  type;                   /* Printer type (color, small, etc.) */
 
83
  char          *device_uri;            /* Device URI */
 
84
  char          *sanitized_device_uri;  /* Sanitized device URI */
 
85
  char          *port_monitor;          /* Port monitor */
 
86
  int           raw;                    /* Raw queue? */
 
87
  int           remote;                 /* Remote queue? */
 
88
  mime_type_t   *filetype,              /* Pseudo-filetype for printer */
 
89
                *prefiltertype;         /* Pseudo-filetype for pre-filters */
 
90
  cups_array_t  *filetypes,             /* Supported file types */
 
91
                *dest_types;            /* Destination types for queue */
 
92
  cupsd_job_t   *job;                   /* Current job in queue */
 
93
  ipp_t         *attrs,                 /* Attributes supported by this printer */
 
94
                *ppd_attrs;             /* Attributes based on the PPD */
 
95
  int           num_printers,           /* Number of printers in class */
 
96
                last_printer;           /* Last printer job was sent to */
 
97
  struct cupsd_printer_s **printers;    /* Printers in class */
 
98
  int           quota_period,           /* Period for quotas */
 
99
                page_limit,             /* Maximum number of pages */
 
100
                k_limit;                /* Maximum number of kilobytes */
 
101
  cups_array_t  *quotas;                /* Quota records */
 
102
  int           deny_users;             /* 1 = deny, 0 = allow */
 
103
  cups_array_t  *users;                 /* Allowed/denied users */
 
104
  int           sequence_number;        /* Increasing sequence number */
 
105
  int           num_options;            /* Number of default options */
 
106
  cups_option_t *options;               /* Default options */
 
107
  int           num_auth_info_required; /* Number of required auth fields */
 
108
  const char    *auth_info_required[4]; /* Required authentication fields */
 
109
  char          *alert,                 /* PSX printer-alert value */
 
110
                *alert_description;     /* PSX printer-alert-description value */
 
111
  time_t        marker_time;            /* Last time marker attributes were updated */
 
112
  _ppd_cache_t  *pc;                    /* PPD cache and mapping data */
 
113
 
 
114
#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
 
115
  char          *reg_name,              /* Name used for service registration */
 
116
                *pdl;                   /* pdl value for TXT record */
 
117
  cupsd_srv_t   ipp_srv;                /* IPP service(s) */
 
118
#  ifdef HAVE_DNSSD
 
119
#    ifdef HAVE_SSL
 
120
  cupsd_srv_t   ipps_srv;               /* IPPS service(s) */
 
121
#    endif /* HAVE_SSL */
 
122
  cupsd_srv_t   printer_srv;            /* LPD service */
 
123
#  endif /* HAVE_DNSSD */
 
124
#endif /* HAVE_DNSSD || HAVE_AVAHI */
 
125
};
 
126
 
 
127
 
 
128
/*
 
129
 * Globals...
 
130
 */
 
131
 
 
132
VAR ipp_t               *CommonData     VALUE(NULL);
 
133
                                        /* Common printer object attrs */
 
134
VAR cups_array_t        *CommonDefaults VALUE(NULL);
 
135
                                        /* Common -default option names */
 
136
VAR cups_array_t        *Printers       VALUE(NULL);
 
137
                                        /* Printer list */
 
138
VAR cupsd_printer_t     *DefaultPrinter VALUE(NULL);
 
139
                                        /* Default printer */
 
140
VAR char                *DefaultPolicy  VALUE(NULL);
 
141
                                        /* Default policy name */
 
142
VAR cupsd_policy_t      *DefaultPolicyPtr
 
143
                                        VALUE(NULL);
 
144
                                        /* Pointer to default policy */
 
145
 
 
146
 
 
147
/*
 
148
 * Prototypes...
 
149
 */
 
150
 
 
151
extern cupsd_printer_t  *cupsdAddPrinter(const char *name);
 
152
extern void             cupsdCreateCommonData(void);
 
153
extern void             cupsdDeleteAllPrinters(void);
 
154
extern int              cupsdDeletePrinter(cupsd_printer_t *p, int update);
 
155
extern cupsd_printer_t  *cupsdFindDest(const char *name);
 
156
extern cupsd_printer_t  *cupsdFindPrinter(const char *name);
 
157
extern cupsd_quota_t    *cupsdFindQuota(cupsd_printer_t *p,
 
158
                                        const char *username);
 
159
extern void             cupsdFreeQuotas(cupsd_printer_t *p);
 
160
extern void             cupsdLoadAllPrinters(void);
 
161
extern void             cupsdRenamePrinter(cupsd_printer_t *p,
 
162
                                           const char *name);
 
163
extern void             cupsdSaveAllPrinters(void);
 
164
extern int              cupsdSetAuthInfoRequired(cupsd_printer_t *p,
 
165
                                                 const char *values,
 
166
                                                 ipp_attribute_t *attr);
 
167
extern void             cupsdSetDeviceURI(cupsd_printer_t *p, const char *uri);
 
168
extern void             cupsdSetPrinterAttr(cupsd_printer_t *p,
 
169
                                            const char *name, char *value);
 
170
extern void             cupsdSetPrinterAttrs(cupsd_printer_t *p);
 
171
extern int              cupsdSetPrinterReasons(cupsd_printer_t *p,
 
172
                                               const char *s);
 
173
extern void             cupsdSetPrinterState(cupsd_printer_t *p, ipp_pstate_t s,
 
174
                                             int update);
 
175
#define                 cupsdStartPrinter(p,u) cupsdSetPrinterState((p), \
 
176
                                                   IPP_PRINTER_IDLE, (u))
 
177
extern void             cupsdStopPrinter(cupsd_printer_t *p, int update);
 
178
extern int              cupsdUpdatePrinterPPD(cupsd_printer_t *p,
 
179
                                              int num_keywords,
 
180
                                              cups_option_t *keywords);
 
181
extern void             cupsdUpdatePrinters(void);
 
182
extern cupsd_quota_t    *cupsdUpdateQuota(cupsd_printer_t *p,
 
183
                                          const char *username, int pages,
 
184
                                          int k);
 
185
extern const char       *cupsdValidateDest(const char *uri,
 
186
                                           cups_ptype_t *dtype,
 
187
                                           cupsd_printer_t **printer);
 
188
extern void             cupsdWritePrintcap(void);
 
189
 
 
190
 
 
191
/*
 
192
 * End of "$Id: printers.h 10996 2013-05-29 11:51:34Z msweet $".
 
193
 */