]>
Commit | Line | Data |
---|---|---|
5afab2da | 1 | CHANGES-1.3.txt |
2 | --------------- | |
3 | ||
fb8bf313 | 4 | CHANGES IN CUPS V1.3.6 |
5 | ||
576f044f | 6 | - Documentation updates (STR #2646, STR #2647, STR #2649) |
c9802633 | 7 | - The PostScript filter incorrectly handled number-up when |
8 | the number of pages was evenly divisible by the number-up | |
9 | value. | |
c5fb594d | 10 | - The PDF filter incorrectly filtered pages when page-ranges |
576f044f | 11 | and number-up were both specified (STR #2643) |
7b072344 | 12 | - The IPP backend did not handle printing of pictwps files |
13 | to a non-Mac CUPS server properly. | |
fb8bf313 | 14 | - The scheduler did not detect network interface changes |
15 | on operating systems other than Mac OS X (STR #2631) | |
16 | - The scheduler now logs the UNIX error message when it | |
17 | is unable to create a request file such as a print job. | |
18 | - Added support for --enable-pie on Mac OS X. | |
19 | ||
20 | ||
5b4e068e | 21 | CHANGES IN CUPS V1.3.5 |
22 | ||
cbeb3ca4 | 23 | - The SNMP backend did not check for negative string |
24 | lengths (STR #2589) | |
a3ec30d3 | 25 | - The scheduler incorrectly removed auth-info attributes, |
26 | potentially leading to a loss of all options for a job. | |
0cee2729 | 27 | - The scheduler stopped sending CUPS browse packets on a |
28 | restart when using fixed addresses (STR #2618) | |
f383a975 | 29 | - Fixed PDF filter security issues (CVE-2007-4352 |
30 | CVE-2007-5392 CVE-2007-5393) | |
50e1e51f | 31 | - Changing settings would always change the DefaultAuthType |
32 | and Allow lines (STR #2580) | |
b980c75c | 33 | - The scheduler would crash when submitting an undefined |
34 | format file from Samba with LogLevel debug2 (STR #2600) | |
be49d5e9 | 35 | - The scheduler did not use poll() when epoll() was not |
36 | supported by the running kernel (STR #2582) | |
a6e01dbc | 37 | - Fixed a compile problem with Heimdal Kerberos (STR #2592) |
c020fd5f | 38 | - The USB backend now retries connections to a printer |
39 | indefinitely rather than stopping the queue. | |
40 | - Printers with untranslated JCL options were not exported | |
41 | to Samba correctly (STR #2570) | |
42 | - The USB backend did not work with some Minolta USB | |
43 | printers (STR #2604) | |
44 | - The strcasecmp() emulation code did not compile (STR | |
45 | #2612) | |
7e0e0c1a | 46 | - The scheduler would crash if a job was sent to an empty |
47 | class (STR #2605) | |
08e5e83b | 48 | - The lpc command did not work in non-UTF-8 locales (STR |
49 | #2595) | |
625bde72 | 50 | - Subscriptions for printer-stopped events also received |
51 | other state changes (STR #2572) | |
3d552abb | 52 | - cupstestppd incorrectly reported translation errors for |
53 | the "en" locale. | |
5412d0bc | 54 | - ppdOpen() did not handle custom options properly when the |
c020fd5f | 55 | Custom attribute appeared before the OpenUI for that |
56 | option. | |
57 | - The scheduler could crash when deleting a printer or | |
58 | listing old jobs. | |
6a262149 | 59 | - The Mac OS X USB backend did not allow for requeuing of |
60 | jobs submitted to a class. | |
e53ccdf9 | 61 | - lpmove didn't accept a job ID by itself. |
62 | - The scheduler incorrectly removed job history information | |
63 | for remote print jobs. | |
0672fd21 | 64 | - The scheduler incorrectly sent the |
65 | "com.apple.printerListChanged" message for printer state | |
66 | changes. | |
42e4b394 | 67 | - The PostScript filter drew the page borders (when enabled) |
68 | outside the imageable area. | |
6df6deaf | 69 | - The LPD and IPP backends did not default to the correct |
70 | port numbers when using alternate scheme names. | |
c020fd5f | 71 | - The scheduler incorrectly deleted hardwired remote |
72 | printers on system sleep. | |
4106c35e | 73 | - The scheduler would abort if a bad browse protocol name |
74 | was listed in the cupsd.conf file. | |
c020fd5f | 75 | - The online cupsd.conf help file incorrectly showed |
76 | "dns-sd" instead of "dnssd" for Bonjour sharing. | |
a88691d5 | 77 | - The scheduler could crash changing the port-monitor value. |
c020fd5f | 78 | - The scheduler generated CoreFoundation errors when run as |
79 | a background process. | |
5b4e068e | 80 | - When printing with number-up > 1, it was possible to get |
81 | an extra blank page. | |
82 | ||
83 | ||
909e571a | 84 | CHANGES IN CUPS V1.3.4 |
85 | ||
41cb35f7 | 86 | - Documentation updates (STR #2560, STR #2563, STR #2569) |
9733b67c | 87 | - CUPS now maps the "nb" locale to "no" on all platforms |
88 | (STR #2575) | |
05e3c695 | 89 | - CUPS did not work with a Windows 2003 R2 KDC (STR #2568) |
67faeb74 | 90 | - ippReadIO() could read past the end of a buffer (STR |
91 | #2561) | |
7b8558ae | 92 | - The scheduler would crash on shutdown if it was unable |
93 | to create a Kerberos context. | |
2ed830ec | 94 | - Multiple AuthTypes in cupsd.conf did not work (STR |
95 | #2545) | |
010008bf | 96 | - The snmp.conf file referenced the wrong man page (STR |
97 | #2564) | |
d9afa761 | 98 | - The cupsaddsmb program didn't handle domain sockets |
99 | properly (STR #2556) | |
2d3e9274 | 100 | - The scheduler now validates device URIs when adding |
101 | printers. | |
74d40409 | 102 | - Updated httpSeparateURI() to support hostnames with |
103 | the backslash character. | |
0a0aec84 | 104 | - Updated the Japanese localization (STR #2546) |
d07eb417 | 105 | - The parallel backend now gets the current IEEE-1284 |
106 | device ID string on Linux (STR #2553) | |
2ce8588b | 107 | - The IPP backend now checks the job status at |
108 | variable intervals (from 1 to 10 seconds) instead | |
109 | of every 10 seconds for faster remote printing | |
110 | (STR #2548) | |
240ddc22 | 111 | - "lpr -p" and "lpr -l" did not work (STR #2544) |
35a24dcc | 112 | - Compilation failed when a previous version of CUPS |
113 | was installed and was included in the SSL include | |
114 | path (STR #2538) | |
9955800f | 115 | - The scheduler did not reject requests with charsets |
116 | other than US-ASCII or UTF-8, and the CUPS API | |
117 | incorrectly passed the locale charset to the scheduler | |
118 | instead of UTF-8 (STR #2537) | |
1aef16ae | 119 | - cups-deviced did not filter out duplicate devices. |
207fa5ce | 120 | - The AppleTalk backend incorrectly added a scheme |
121 | listing when AppleTalk was disabled or no printers | |
122 | were found. | |
9f2b25e1 | 123 | - The PostScript filter generated N^2 copies when the |
124 | printer supported collated copies and user requested | |
125 | reverse-order output. | |
db27c4f3 | 126 | - The scheduler did not reprint all of the files in a |
127 | job that was held. | |
4420b6f7 | 128 | - The scheduler did not update the printcap file after |
129 | removing stale remote queues. | |
909e571a | 130 | - The cupsd.conf man page incorrectly referenced |
131 | "AuthType Kerberos" instead of "AuthType Negotiate". | |
132 | ||
133 | ||
50996fb1 | 134 | CHANGES IN CUPS V1.3.3 |
135 | ||
e319e2cd | 136 | - The scheduler did not use the attributes-natural-language |
29b4dff9 | 137 | attribute when passing the LANG environment variable to |
138 | cups-deviced or cups-driverd. | |
9cfc2f51 | 139 | - The scheduler did not use the printer-op-policy when |
140 | modifying classes or printers (STR #2525) | |
d4698236 | 141 | - The auth-info-required attribute was not always updated |
142 | for remote queues that required authentication. | |
50996fb1 | 143 | - The German web interface localization contained errors |
144 | (STR #2523) | |
145 | - The Swedish localization contained errors (STR #2522) | |
146 | ||
147 | ||
ca7e495b | 148 | CHANGES IN CUPS V1.3.2 |
149 | ||
77fd56b7 | 150 | - The 1.3.1 release was incorrectly created from the |
151 | 1.4.x source tree (STR #2519) | |
152 | - Added support for 32/64-bit libraries on HP-UX | |
153 | (STR #2520) | |
ca3a26a7 | 154 | - The scheduler incorrectly used portrait as the default |
155 | orientation (STR #2513) | |
1a3d07e1 | 156 | - The scheduler no longer writes the printcap file for |
157 | every remote printer update (STR #2512) | |
b43a3371 | 158 | - Remote raw printing with multiple copies did not work |
159 | (STR #2518) | |
3b5f686d | 160 | - Updated the configure script to require at least autoconf |
161 | 2.60 (STR #2515) | |
ca7e495b | 162 | - Some gzip'd PPD files were not read in their entirety |
163 | (STR #2510) | |
164 | ||
5afab2da | 165 | |
7b04463d | 166 | CHANGES IN CUPS V1.3.1 |
167 | ||
870a6b08 | 168 | - Documentation updates. |
7533c613 | 169 | - The USB backend on Mac OS X could hang if the driver and |
170 | printer did not match. | |
6a6111a9 | 171 | - Delegated Kerberos credentials were not working. |
1c59fce9 | 172 | - "make distclean" incorrectly removed the edit-config.tmpl |
173 | files (STR #2508) | |
3b14922f | 174 | - Fix compile problem on HP-UX (STR #2501) |
6cacb255 | 175 | - The cupstestppd utility now tests for resolutions greater |
176 | than 99999 DPI to detect a missing "x" between the X and Y | |
177 | resolutions. | |
b5b60f2b | 178 | - Fixed many problems in the various translations and added |
179 | a new "checkpo" utility to validate them. | |
decec5b9 | 180 | - The cupstestppd utility now tests the custom page size code |
181 | for CUPS raster drivers. | |
e37990c5 | 182 | - cupsLangDefault() did not attempt to return a language that |
183 | was supported by the calling application. | |
41368129 | 184 | - If a remote printer stopped while a job was being sent, the |
185 | local queue would also get stopped and the job re-queued, | |
186 | resulting in duplicate prints in some cases. | |
e6058e07 | 187 | - A few Apple-specific job options needed to be omitted when |
188 | printing a banner page. | |
75cd763e | 189 | - The new peer credential support did not compile on FreeBSD |
190 | (STR #2495) | |
1353f2e0 | 191 | - Direct links to help files did not set the current section |
192 | so the table-of-contents was not shown. | |
957ef064 | 193 | - The configure script did not support --localedir=foo (STR #2488) |
472af6f3 | 194 | - The backends were not displaying their localized messages. |
c90c6e5b | 195 | - CUPS-Authenticate-Job did not require Kerberos authentication |
196 | on queues protected by Kerberos. | |
f8b254f5 | 197 | - The Zebra ZPL driver did not work with Brady label printers |
198 | (STR #2487) | |
ddf69a79 | 199 | - Norwegian wasn't localized on Mac OS X. |
c65b193c | 200 | - getnameinfo() returns an error on some systems when DNS is |
201 | not available, leading to numerous problems (STR #2486) | |
09e63f5f | 202 | - The cupsfilter command did not work properly on Mac OS X. |
8f565479 | 203 | - The scheduler makefile contained a typo (STR #2483) |
1641563a | 204 | - The TBCP and BCP port monitors did not handle the trailing |
205 | CTRL-D in some PostScript output properly. | |
ce8731f2 | 206 | - Fixed the localization instructions and German template for |
207 | the "Find New Printers" button (STR #2478) | |
81055598 | 208 | - The web interface did not work with the Chinese localization |
209 | (STR #2477) | |
ec5a8351 | 210 | - The web interface home page did not work for languages that |
211 | were only partially localized (STR #2472) | |
7b04463d | 212 | - Updated the Spanish web interface localization (STR #2473) |
213 | - ppdLocalize() did not work for country-specific localizations. | |
214 | ||
215 | ||
5afab2da | 216 | CHANGES IN CUPS V1.3.0 |
217 | ||
218 | - The scheduler did not handle out-of-file conditions | |
219 | gracefully when accepting new connections, leading to | |
220 | heavy CPU usage. | |
221 | - The scheduler did not detect ServerBin misconfigurations | |
222 | (STR #2470) | |
223 | - "AuthType Default" did not work as expected when the | |
224 | "DefaultAuthType foo" line appeared after it in the | |
225 | cupsd.conf file. | |
226 | - The on-line help did not describe many common printing | |
227 | options (STR #1846) | |
228 | - The IPP backend did not return the "auth required" status | |
229 | when printing to a Kerberos-protected queue. | |
230 | - The scheduler was not looking in the correct directories | |
231 | for LSB PPD files (STR #2464) | |
232 | - Changed references to ESP Ghostscript to GPL Ghostscript | |
233 | (STR #2463) | |
234 | - The PostScript filter did not cleanly terminate when | |
235 | the job was canceled or stopped. | |
236 | - Fixed generation of Kerberos credentials for remote | |
237 | printing. Note that this requires a recent version of | |
238 | MIT Kerberos with a working krb5_cc_new_unique() | |
239 | function or Heimdal Kerberos. | |
240 | - Added Portuguese and updated Italian message catalogs. | |
241 | ||
242 | ||
243 | CHANGES IN CUPS V1.3rc2 | |
244 | ||
245 | - Added more range checking to the pdftops filter. | |
246 | - The scheduler would crash if a remote IPP queue was stopped | |
247 | (STR #2460) | |
248 | - The scheduler did not allow "DefaultAuthType None". | |
249 | ||
250 | ||
251 | CHANGES IN CUPS V1.3rc1 | |
252 | ||
253 | - Updated the German localization (STR #2443) | |
254 | - cupsAdminGetServerSettings() did not handle </Foo> properly. | |
255 | - When lprm and cancel are run with no job ID, they now will | |
256 | cancel the first stopped job if no pending or processing | |
257 | jobs are left in the queue. | |
258 | - The scheduler now logs successful print jobs, filter | |
259 | failures, and the job file types at the default log | |
260 | level (STR #2458) | |
261 | - The scheduler now logs the usernames it is using for | |
262 | authorization at LogLevel debug instead of debug2 (STR #2448) | |
263 | - Added Intellitech Intellibar and Zebra CPCL PPDs to the list | |
264 | of installed PPDs. | |
265 | - Added 6" and 8" wide label sizes for the Zebra ZPL Label | |
266 | Printer driver (STR #2442) | |
267 | - The cupsaddsmb program and web interface now support | |
268 | exporting of 64-bit Windows drivers, when available | |
269 | (STR #2439) | |
270 | - Moving a job that was printing did not stop the job on the | |
271 | original printer (STR #2262) | |
272 | - The cups-lpd mini-daemon did not work on Mac OS X server. | |
273 | - Added httpGetAuthString() and httpSetAuthString() APIs to get | |
274 | and set the current (cached) authorization string to use for | |
275 | HTTP requests. | |
276 | - Updated the default cupsd.conf policy to list the | |
277 | "administrative" operations separately from the "printer | |
278 | control" operations so that it is easier to define a | |
279 | group of users that are "printer operators". | |
280 | - The web interface now pulls the default cupsd.conf file | |
281 | from cupsd.conf.default in the CUPS config directory. | |
282 | - Added a help file for using Kerberos with CUPS. | |
283 | - The scheduler now strips the "@KDC" portion of Kerberos | |
284 | usernames since those usernames typically do not appear in | |
285 | the group membership lists used by CUPS. | |
286 | - cupsMarkOptions() could (incorrectly) leave multiple option | |
287 | choices marked. | |
288 | - Backends could (incorrectly) run as root during discovery | |
289 | (STR #2454) | |
290 | - Avahi is now supported for DNS-SD (Bonjour) printer sharing | |
291 | (STR #2455) | |
292 | - The default cupsd.conf file had typos and old operation names | |
293 | (STR #2450) | |
294 | - The scheduler now erases authentication cache files using the | |
295 | 7-pass US DoD algorithm. | |
296 | - Delegated Kerberos credentials (proxy authentication) did not | |
297 | work. | |
298 | - The filter makefile did not optimize the libcupsimage.2.dylib | |
299 | with a sectorder file. | |
300 | - The IPP backend incorrectly wrote an empty printer message | |
301 | when processing the "none" state reason. | |
302 | - The USB backend could deadlock on Mac OS X while performing | |
303 | a side-channel command. | |
304 | - The scheduler did not prevent remote queues from being | |
305 | shared/published. | |
306 | - The scheduler did not remove the temporary request file on | |
307 | authentication errors. | |
308 | - ppdLocalizeIPPReason() did not handle "scheme:" schemes or | |
309 | "file" URLs. | |
310 | - ppdLocalizeIPPReason() was not exported on Mac OS X. | |
311 | ||
312 | ||
313 | CHANGES IN CUPS V1.3b1 | |
314 | ||
315 | - Copyright updates - CUPS is now owned by Apple Inc. | |
316 | - Documentation updates (STR #1775, STR #2027, STR #2130, | |
317 | STR #2131, STR #2263, STR #2356, STR #2397) | |
318 | - Added new cupsfilter utility (STR #1734) | |
319 | - Added new job-printer-state-message and | |
320 | job-printer-state-reasons attributes to jobs (STR #2418) | |
321 | - Added LDAP+SSL support (STR #1967) | |
322 | - CUPS now supports authentication via peer credentials | |
323 | over domain sockets (STR #2242, STR #2277) | |
324 | - The CUPS sample driver PPDs are now generated by the PPD | |
325 | compiler and include all of the localized languages by | |
326 | default (STR #2164) | |
327 | - You can now specify "AuthType Default" in the cupsd.conf | |
328 | file to use the default authentication defined by the | |
329 | DefaultAuthType directive. | |
330 | - The SNMP backend no longer adds a default Address line | |
331 | when none is specified in the snmp.conf file; this allows | |
332 | the backend to be easily disabled as needed (STR #2434) | |
333 | - Added a new cupsctl command for doing basic changes to | |
334 | the cupsd.conf file (STR #1777) | |
335 | - Added a new ppdLocalizeIPPReason() function to get the | |
336 | localized text/URI for a given IPP reason keyword for a | |
337 | driver. | |
338 | - Removed the deskjet2.ppd driver, as it only worked with | |
339 | a very small subset of HP DeskJet printers and was | |
340 | confusing to users. The rastertohp driver still | |
341 | supports the deskjet2.ppd options for existing queues. | |
342 | - The scheduler did not add a trailing banner page if a | |
343 | client did not specify the last document in a job (STR | |
344 | #1711) | |
345 | - The scheduler did not report Bonjour shared printers as | |
346 | remote printers (STR #2384) | |
347 | - Added new -R and -W options to the cupstestppd program | |
348 | for greater control over the testing of PPDs. | |
349 | - Added a new cupsGetServerPPD() function for getting | |
350 | an available PPD from the server (STR #2334) | |
351 | - Added a new cupsDoIORequest() function for reading | |
352 | and writing files via IPP requests (STR #2334) | |
353 | - Added a new CUPS_GET_PPD operation for getting an | |
354 | available PPD file on the server (STR #2334) | |
355 | - CUPS_GET_PPDS now reports multiple ppd-product values | |
356 | based on the PPD ModelName and Product strings (STR | |
357 | #2334, STR #2383) | |
358 | - CUPS_GET_PPDS now reports the PSVersion attributes | |
359 | from a PPD file in the ppd-psversion attribute | |
360 | (STR #2334) | |
361 | - CUPS_GET_PPDS now reports the cupsModelNumber attribute | |
362 | from a PPD file in the ppd-model-number attribute (STR | |
363 | #2383) | |
364 | - CUPS_GET_PPDS now reports a driver type string in the | |
365 | ppd-type attribute based on the cupsFax and cupsFilter | |
366 | attributes in a PPD file (STR #2383) | |
367 | - Added a new printer attribute called "cups-version" | |
368 | which reports the version of CUPS that is running | |
369 | (STR #2240) | |
370 | - backendRunLoop() now aborts immediately on SIGTERM | |
371 | if no data has been written yet (STR #2103) | |
372 | - Due to poor IPP support from the vendors, the SNMP | |
373 | backend no longer tries IPP connections; instead, | |
374 | it now uses a lookup file with fallback to port 9100 | |
375 | (socket://address) and 515 (lpd://address) printing | |
376 | (STR #2035, STR #2354) | |
377 | - The scheduler now recreates the CUPS log directory as | |
378 | needed (STR #2353) | |
379 | - cupsLangDefault() now maps new-style Apple locale names | |
380 | to the traditional ll_CC form (STR #2357) | |
381 | - Add new cupsArrayNew2() API to support hashed lookups | |
382 | of array elements (STR #2358) | |
383 | - ppdConflicts() optimizations (STR #2358) | |
384 | - The cupstestppd program now tests for existing filters, | |
385 | icons, profiles, and dialog extensions (STR #2326) | |
386 | - The web interface no longer lists new printers on the | |
387 | main administration page. Instead, a new "List Available | |
388 | Printers" button is provided that shows a separate page | |
389 | with the list of printers. | |
390 | - The web interface now supports setting the banner and | |
391 | policy options on raw printers and classes (STR #2238) | |
392 | - The socket backend now reads any pending back-channel | |
393 | data before shutting down the socket (STR #2325) | |
394 | - Added a new ErrorPolicy directive in the cupsd.conf | |
395 | file (STR #1871) | |
396 | - Printers that use JCL options are now exported to Samba | |
397 | correctly (STR #1985) | |
398 | - The IPP backend now relays printer-state-message values | |
399 | from the server to the client (STR #2109) | |
400 | - Added support for the PWG printer-alert and | |
401 | printer-alert-description attributes (STR #2088) | |
402 | - Added support for LPD "stream" mode (STR #2036) | |
403 | - The scheduler now reports the PostScript product string | |
404 | from PPD files in CUPS-Get-PPDs responses (STR #1900) | |
405 | - Raw printing with queues pointing to the file pseudo- | |
406 | device and multiple files and/or banners now works (STR | |
407 | #1933) | |
408 | - Added new public cupsAdminGetServerSettings() and | |
409 | cupsAdminSetServerSettings() APIs. | |
410 | - Added new "makebuttons" script in the "tools" directory | |
411 | for creating web interface buttons (STR #2231) | |
412 | - Added support for DNS-SD (aka "Bonjour") printer sharing | |
413 | (STR #1171) | |
414 | - Job operations (cancel, hold, release, etc.) from the | |
415 | web interface now return back to the original page (STR | |
416 | #2239) | |
417 | - The classes or printers list is now shown after a | |
418 | successful deletion from the web interface (STR #1999) | |
419 | - The default configuration now allows browse packets from | |
420 | any address (STR #2008) | |
421 | - The web interface now provides an "allow printing from the | |
422 | Internet" check box (STR #1897) | |
423 | - The notify-events-default and | |
424 | notify-lease-duration-default attributes can now be set | |
425 | (STR #1671) | |
426 | - Server-side default options are now sent to clients when | |
427 | the "printer-defaults" attribute group is requested (STR | |
428 | #1923) | |
429 | - Added support for Linux "relro" linker option (STR #1614) | |
430 | - CUPS now validates the number-up option value (STR #1329) | |
431 | - The on-line help now provides better search capabilities | |
432 | (STR #1701) | |
433 | - The web interface "Add This Printer" button now allows you | |
434 | to change the printer name, description, and location | |
435 | (STR #1646) | |
436 | - Added support for Mac OS X authorization services | |
437 | (STR #2206) | |
438 | - Added support for driver-specific pre-filters (STR #2108) | |
439 | - Added a new side-channel API for drivers and backends | |
440 | for basic device control and information queries (STR | |
441 | #1898) | |
442 | - The scheduler now uses poll(), epoll(), or /dev/kqueue | |
443 | instead of select() when possible (STR #1261) | |
444 | - Added new cupsArrayGetIndex() and cupsArrayGetInsert() | |
445 | functions to get the current index and insertion | |
446 | positions of an array. | |
447 | - Added a new --with-max-copies configure option (STR | |
448 | #2090) | |
449 | - Added new cupsRemoveDest() and cupsSetDefaultDest() | |
450 | functions. | |
451 | - Added support for cupsPJLCharset attribute in PPD files | |
452 | which specifies the character set that is used in PJL | |
453 | strings (STR #1969) | |
454 | - Moved the definition of the (private) _http_s structure | |
455 | to http-private.h; code that directly accesses the | |
456 | http_t members will no longer compile! | |
457 | - Added support for setting the document-format-default | |
458 | attribute on a per-printer basis. | |
459 | - Added support for IntelliBar label printers. |