3 %bcond_without static_libs # static libraries
4 %bcond_without braille # Braille embossers support
5 %bcond_without perl # Perl module
6 %bcond_with php # PHP extension
11 Summary: OpenPrinting CUPS filters and backends
12 Summary(pl.UTF-8): Filtry i backendy CUPS-a z projektu OpenPrinting
16 # For a breakdown of the licensing, see COPYING file
17 # GPLv2: filters: commandto*, imagetoraster, pdftops, rasterto*,
18 # imagetopdf, pstopdf, texttopdf
19 # backends: parallel, serial
20 # GPLv2+: filters: gstopxl, textonly, texttops, imagetops
21 # GPLv3: filters: bannertopdf
22 # GPLv3+: filters: urftopdf
23 # LGPLv2+: utils: cups-browsed
24 # MIT: filters: gstoraster, pdftopdf, pdftoraster
25 License: GPL v2, GPL v2+, GPL v3, GPL v3+, LGPL v2+, MIT
26 Group: Applications/Printing
27 #Source0: https://www.openprinting.org/download/cups-filters/%{name}-%{version}.tar.xz
28 Source0: https://github.com/OpenPrinting/cups-filters/releases/download/%{version}/%{name}-%{version}.tar.xz
29 # Source0-md5: 74741eb5ba32331676f88be468259d1f
30 Patch0: %{name}-php.patch
31 Patch1: %{name}-php7.patch
32 Patch2: %{name}-php73.patch
33 Patch3: %{name}-1.28.17-c++17.patch
34 Patch4: %{name}-1.28.17-CVE-2023-24805.patch
35 URL: http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters
36 BuildRequires: autoconf >= 2.65
37 BuildRequires: automake >= 1:1.11
38 BuildRequires: avahi-devel
39 BuildRequires: avahi-glib-devel
40 BuildRequires: cups-devel >= 1:1.6.0
41 BuildRequires: dbus-devel
42 BuildRequires: fontconfig-devel >= 2.0.0
43 BuildRequires: fonts-TTF-DejaVu
44 BuildRequires: freetype-devel >= 2
45 BuildRequires: gettext-tools >= 0.18.3
46 # /usr/bin/gs, for features detection
47 %{?with_php:BuildRequires: %{php_name}-devel}
48 BuildRequires: ghostscript
49 BuildRequires: glib2-devel >= 1:2.30.2
50 BuildRequires: lcms2-devel >= 2
51 BuildRequires: libexif-devel
52 BuildRequires: libjpeg-devel
53 %{?with_braille:BuildRequires: liblouis-devel}
54 BuildRequires: libpng-devel
55 BuildRequires: libstdc++-devel >= 6:7
56 BuildRequires: libtiff-devel
57 BuildRequires: libtool
58 BuildRequires: openldap-devel
59 %{?with_perl:BuildRequires: perl-devel}
60 BuildRequires: pkgconfig >= 1:0.20
61 BuildRequires: poppler-cpp-devel >= 0.19
62 # /usr/bin/pdftops, for features detection
63 BuildRequires: poppler-progs >= 0.19
64 BuildRequires: qpdf-devel >= 8.3.0
65 BuildRequires: rpmbuild(macros) >= 1.671
66 BuildRequires: tar >= 1:1.22
68 BuildRequires: zlib-devel
69 # DejaVuSans.ttf (testing font for test scripts)
70 #BuildRequires: fonts-TTF-DejaVu
71 Requires: %{name}-libs = %{version}-%{release}
74 Requires: cups >= 1:1.6.0
75 Requires: fontconfig >= 2.0.0
79 Requires: poppler >= 0.19
80 Requires: poppler-progs >= 0.19
81 Requires: qpdf-libs >= 8.3.0
83 Suggests: fonts-TTF-freefont
84 Provides: cups-filter-foomatic
85 Provides: ghostscript-cups = 9.08
86 Obsoletes: cups-filter-foomatic
87 Obsoletes: foomatic-filters
88 Obsoletes: ghostscript-cups < 9.08
89 Conflicts: cups-backend-hp < 3.13.11-2
90 Conflicts: hplip-ppd < 3.13.11-2
91 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
93 %define _cups_serverbin %(/usr/bin/cups-config --serverbin)
96 Contains backends, filters, and other software that was once part of
97 the core CUPS distribution but is no longer maintained by Apple Inc.
98 In addition it contains additional filters developed independently of
99 Apple, especially filters for the PDF-centric printing workflow
100 introduced by OpenPrinting.
102 %description -l pl.UTF-8
103 Ten pakiet zawiera backendy, filtry i inne oprogramowanie, będące
104 kiedyś częścią CUPS-a, ale nie utrzymywane już przez firmę Apple Inc.
105 Dodatkowo pakiet zawiera dodatkowe filtry stworzone niezależnie od
106 Apple'a, w szczególności filtry dla PDF-ocentrycznego obiegu
107 drukowania wprowadzonego przez OpenPrinting.
110 Summary: OpenPrinting CUPS filters for Braille embossers
111 Summary(pl.UTF-8): Filtry CUPS-a z projektu OpenPrinting dla drukarek Braille'a
112 Group: Applications/Printing
113 Requires: %{name} = %{version}-%{release}
116 OpenPrinting CUPS filters for Braille embossers.
118 %description braille -l pl.UTF-8
119 Filtry CUPS-a z projektu OpenPrinting dla drukarek Braille'a.
122 Summary: OpenPrinting CUPS filters and backends - cupsfilters and fontembed libraries
123 Summary(pl.UTF-8): Filtry i backendy CUPS-a z projektu OpenPrinting - biblioteki cupsfilters i fontembed
124 # LGPLv2: libcupsfilters
126 License: LGPL v2, MIT
128 Requires: cups-lib >= 1:1.6.0
131 This package provides cupsfilters and fontembed libraries.
133 %description libs -l pl.UTF-8
134 Ten pakiet udostępnia biblioteki cupsfilters i fontembed.
137 Summary: OpenPrinting CUPS filters and backends - development environment
138 Summary(pl.UTF-8): Filtry i backendy CUPS-a z projektu OpenPrinting - środowisko programistyczne
139 License: LGPL v2, MIT
140 Group: Development/Libraries
141 Requires: %{name}-libs = %{version}-%{release}
142 Requires: cups-devel >= 1:1.6.0
143 Requires: libjpeg-devel
144 Requires: libpng-devel
145 Requires: libtiff-devel
148 This is the development package for OpenPrinting CUPS filters and
151 %description devel -l pl.UTF-8
152 To jest pakiet programistyczny dla filtrów i backendów CUPS-a z
153 projektu OpenPrinting.
156 Summary: OpenPrinting CUPS filters and backends - static cupsfilters and fontembed libraries
157 Summary(pl.UTF-8): Filtry i backendy CUPS-a z projektu OpenPrinting - statyczne biblioteki cupsfilters i fontembed
158 License: LGPL v2, MIT
159 Group: Development/Libraries
160 Requires: %{name}-devel = %{version}-%{release}
163 This package provides static cupsfilters and fontembed libraries.
165 %description static -l pl.UTF-8
166 Ten pakiet udostępnia statyczne biblioteki cupsfilters i fontembed.
168 %package -n cups-browsed
169 Summary: A daemon for browsing the Bonjour broadcasts of shared, remote CUPS printers
170 Summary(pl.UTF-8): Demon do przeglądania broadcastów Bonjour współdzielonych, zdalnych drukarek CUPS
171 Group: Applications/Printing
172 Requires(post,preun): /sbin/chkconfig
173 Requires(post,preun,postun): systemd-units
174 Requires: glib2 >= 1:2.30.2
175 Requires: systemd-units >= 38
177 %description -n cups-browsed
178 A daemon for browsing the Bonjour broadcasts of shared, remote CUPS
181 %description -n cups-browsed -l pl.UTF-8
182 Demon do przeglądania broadcastów Bonjour współdzielonych, zdalnych
185 %package -n cups-backend-parallel
186 Summary: Parallel port backend for CUPS
187 Summary(pl.UTF-8): Backend CUPS-a obsługujący porty równoległe
188 # must be larger than cups.spec before 1.6.0
190 License: GPL v2 + OpenSSL exception
191 Group: Applications/Printing
192 Requires: cups >= 1:1.6.0
194 %description -n cups-backend-parallel
195 This package allow CUPS printing on printers connected by parallel
198 %description -n cups-backend-parallel -l pl.UTF-8
199 Ten pakiet umożliwia drukowanie z poziomu CUPS-a na drukarkach
200 podłączonych do portów równoległych.
202 %package -n cups-backend-serial
203 Summary: Serial port backend for CUPS
204 Summary(pl.UTF-8): Backend CUPS-a obsługujący porty szeregowe
205 # must be larger than cups.spec before 1.6.0
207 License: GPL v2 + OpenSSL exception
208 Group: Applications/Printing
209 Requires: cups >= 1:1.6.0
211 %description -n cups-backend-serial
212 This package allow CUPS printing on printers connected by serial
215 %description -n cups-backend-serial -l pl.UTF-8
216 Ten pakiet umożliwia drukowanie z poziomu CUPS-a na drukarkach
217 podłączonych do portów szeregowych.
219 %package -n perl-cups
220 Summary: Perl module for CUPS
221 Summary(pl.UTF-8): Moduł Perla CUPS
222 # must be larger than cups.spec before 1.6.0
224 License: GPL v2 + OpenSSL exception
225 Group: Development/Languages/Perl
226 Requires: cups-lib >= 1:1.6.0
228 %description -n perl-cups
229 Perl module for Common Unix Printing System.
231 %description -n perl-cups -l pl.UTF-8
232 Moduł Perla do ogólnego systemu druku dla Uniksa.
234 %package -n %{php_name}-cups
235 Summary: PHP module for CUPS
236 Summary(pl.UTF-8): Moduł PHP CUPS
237 # must be larger than cups.spec before 1.6.0
239 License: GPL v2 + OpenSSL exception
240 Group: Development/Languages/PHP
241 Requires: cups-lib >= 1:1.6.0
242 %{?requires_php_extension}
244 %description -n %{php_name}-cups
245 PHP module for Common Unix Printing System.
247 %description -n %{php_name}-cups -l pl.UTF-8
248 Moduł PHP do ogólnego systemu druku dla Uniksa.
250 # CREATE ANY NEW PACKAGES BEFORE cups-backend-* (EPOCH)
261 export CXXFLAGS="%{rpmcxxflags} -std=c++17"
267 %{!?with_braille:--disable-braille} \
269 --disable-silent-rules \
270 %{!?with_static_libs:--disable-static} \
271 %{?with_php:--with-php} \
272 --with-pdftops=hybrid \
273 --with-rcdir=/etc/rc.d/init.d \
275 --with-mutool-path=/usr/bin/mutool \
276 --with-test-font-path=/usr/share/fonts/TTF/DejaVuSans.ttf
282 %{__perl} Makefile.PL \
284 OPTIMIZE="%{rpmcflags}"
291 rm -rf $RPM_BUILD_ROOT
292 install -d $RPM_BUILD_ROOT%{systemdunitdir}
294 DESTDIR=$RPM_BUILD_ROOT
297 install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
298 cat > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/phpcups.ini << 'EOF'
299 ; Enable phpcups extension module
300 extension=libphpcups.so
303 %{__rm} $RPM_BUILD_ROOT%{php_extensiondir}/libphpcups.la
307 %{__make} -C scripting/perl install \
308 DESTDIR=$RPM_BUILD_ROOT
311 install -p utils/cups-browsed.service $RPM_BUILD_ROOT%{systemdunitdir}
313 # obsoleted by pkg-config
314 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
316 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/cups-filters
319 rm -rf $RPM_BUILD_ROOT
321 %post libs -p /sbin/ldconfig
322 %postun libs -p /sbin/ldconfig
324 %post -n cups-browsed
325 if [ "$1" = "1" ]; then
326 # We can remove this after few releases, it's just for the introduction of cups-browsed.
327 if [ -f %{_sysconfdir}/cups/cups-browsed.conf ]; then
328 echo -e "\n# NOTE: This file is not part of CUPS. You need to start & enable cups-browsed service." >>%{_sysconfdir}/cups/cups-browsed.conf
331 # move BrowsePoll from cupsd.conf to cups-browsed.conf
332 if [ -f %{_sysconfdir}/cups/cupsd.conf ] && grep -iq "^BrowsePoll" %{_sysconfdir}/cups/cupsd.conf; then
333 if ! grep -iq "^BrowsePoll" %{_sysconfdir}/cups/cups-browsed.conf; then
334 echo "# Settings automatically moved from cupsd.conf by RPM package:" >>%{_sysconfdir}/cups/cups-browsed.conf
335 grep -i "^BrowsePoll" %{_sysconfdir}/cups/cupsd.conf >> %{_sysconfdir}/cups/cups-browsed.conf || :
337 sed -i -e "s,^BrowsePoll,#BrowsePoll directive moved to cups-browsed.conf\n#BrowsePoll,i" %{_sysconfdir}/cups/cupsd.conf || :
340 /sbin/chkconfig --add cups-browsed
341 %service cups-browsed restart
342 %systemd_post cups-browsed.service
344 %preun -n cups-browsed
345 if [ "$1" = "0" ]; then
346 %service cups-browsed stop
347 /sbin/chkconfig --del cups-browsed
349 %systemd_preun cups-browsed.service
351 %postun -n cups-browsed
355 %defattr(644,root,root,755)
356 %doc AUTHORS COPYING NEWS README
357 %attr(755,root,root) %{_bindir}/driverless
358 %attr(755,root,root) %{_bindir}/driverless-fax
359 %attr(755,root,root) %{_bindir}/foomatic-rip
360 %attr(700,root,root) %{_cups_serverbin}/backend/beh
361 %attr(700,root,root) %{_cups_serverbin}/backend/cups-brf
362 %attr(700,root,root) %{_cups_serverbin}/backend/driverless
363 %attr(700,root,root) %{_cups_serverbin}/backend/driverless-fax
364 %attr(700,root,root) %{_cups_serverbin}/backend/implicitclass
365 %attr(755,root,root) %{_cups_serverbin}/driver/driverless
366 %attr(755,root,root) %{_cups_serverbin}/driver/driverless-fax
367 %attr(755,root,root) %{_cups_serverbin}/filter/bannertopdf
368 %attr(755,root,root) %{_cups_serverbin}/filter/brftopagedbrf
369 %attr(755,root,root) %{_cups_serverbin}/filter/cgmtopdf
370 %attr(755,root,root) %{_cups_serverbin}/filter/cmxtopdf
371 %attr(755,root,root) %{_cups_serverbin}/filter/commandtoescpx
372 %attr(755,root,root) %{_cups_serverbin}/filter/commandtopclx
373 %attr(755,root,root) %{_cups_serverbin}/filter/emftopdf
374 %attr(755,root,root) %{_cups_serverbin}/filter/foomatic-rip
375 %attr(755,root,root) %{_cups_serverbin}/filter/gstopdf
376 %attr(755,root,root) %{_cups_serverbin}/filter/gstopxl
377 %attr(755,root,root) %{_cups_serverbin}/filter/gstoraster
378 %attr(755,root,root) %{_cups_serverbin}/filter/imagetopdf
379 %attr(755,root,root) %{_cups_serverbin}/filter/imagetops
380 %attr(755,root,root) %{_cups_serverbin}/filter/imagetoraster
381 %attr(755,root,root) %{_cups_serverbin}/filter/mupdftoraster
382 %attr(755,root,root) %{_cups_serverbin}/filter/musicxmltobrf
383 %attr(755,root,root) %{_cups_serverbin}/filter/pdftopdf
384 %attr(755,root,root) %{_cups_serverbin}/filter/pdftops
385 %attr(755,root,root) %{_cups_serverbin}/filter/pdftoraster
386 %attr(755,root,root) %{_cups_serverbin}/filter/rastertoescpx
387 %attr(755,root,root) %{_cups_serverbin}/filter/rastertopclm
388 %attr(755,root,root) %{_cups_serverbin}/filter/rastertopclx
389 %attr(755,root,root) %{_cups_serverbin}/filter/rastertopdf
390 %attr(755,root,root) %{_cups_serverbin}/filter/rastertops
391 %attr(755,root,root) %{_cups_serverbin}/filter/svgtopdf
392 %attr(755,root,root) %{_cups_serverbin}/filter/sys5ippprinter
393 %attr(755,root,root) %{_cups_serverbin}/filter/texttopdf
394 %attr(755,root,root) %{_cups_serverbin}/filter/texttops
395 %attr(755,root,root) %{_cups_serverbin}/filter/texttotext
396 %attr(755,root,root) %{_cups_serverbin}/filter/vectortobrf
397 %attr(755,root,root) %{_cups_serverbin}/filter/vectortopdf
398 %attr(755,root,root) %{_cups_serverbin}/filter/vectortoubrl
399 %attr(755,root,root) %{_cups_serverbin}/filter/wmftopdf
400 %attr(755,root,root) %{_cups_serverbin}/filter/xfigtopdf
401 %{_datadir}/cups/banners/*
402 %{_datadir}/cups/charsets
403 %{_datadir}/cups/data/classified.pdf
404 %{_datadir}/cups/data/confidential.pdf
405 %{_datadir}/cups/data/default.pdf
406 %{_datadir}/cups/data/default-testpage.pdf
407 %{_datadir}/cups/data/form_english.pdf
408 %{_datadir}/cups/data/form_english_in.odt
409 %{_datadir}/cups/data/form_russian.pdf
410 %{_datadir}/cups/data/form_russian_in.odt
411 %{_datadir}/cups/data/secret.pdf
412 %{_datadir}/cups/data/standard.pdf
413 %{_datadir}/cups/data/topsecret.pdf
414 %{_datadir}/cups/data/unclassified.pdf
415 %{_datadir}/cups/data/testprint
416 %{_datadir}/cups/drv/cupsfilters.drv
417 %{_datadir}/cups/drv/generic-ubrl.drv
418 %{_datadir}/cups/mime/cupsfilters.types
419 %{_datadir}/cups/mime/cupsfilters.convs
420 %{_datadir}/cups/mime/cupsfilters-ghostscript.convs
421 %{_datadir}/cups/mime/cupsfilters-mupdf.convs
422 %{_datadir}/cups/mime/cupsfilters-poppler.convs
423 # definitions for drivers; pcl.h is used by cupsfilters.drv
424 %{_datadir}/cups/ppdc/escp.h
425 %{_datadir}/cups/ppdc/pcl.h
426 %{_datadir}/ppd/cupsfilters
427 %{_mandir}/man1/driverless.1*
428 %{_mandir}/man1/foomatic-rip.1*
432 %defattr(644,root,root,755)
433 %attr(755,root,root) %{_cups_serverbin}/filter/brftoembosser
434 %attr(755,root,root) %{_cups_serverbin}/filter/imagetobrf
435 %attr(755,root,root) %{_cups_serverbin}/filter/imagetoubrl
436 %attr(755,root,root) %{_cups_serverbin}/filter/imageubrltoindexv3
437 %attr(755,root,root) %{_cups_serverbin}/filter/imageubrltoindexv4
438 %attr(755,root,root) %{_cups_serverbin}/filter/textbrftoindexv3
439 %attr(755,root,root) %{_cups_serverbin}/filter/textbrftoindexv4
440 %attr(755,root,root) %{_cups_serverbin}/filter/texttobrf
441 %dir %{_datadir}/cups/braille
442 %attr(755,root,root) %{_datadir}/cups/braille/cups-braille.sh
443 %attr(755,root,root) %{_datadir}/cups/braille/index.sh
444 %attr(755,root,root) %{_datadir}/cups/braille/indexv3.sh
445 %attr(755,root,root) %{_datadir}/cups/braille/indexv4.sh
446 %{_datadir}/cups/drv/generic-brf.drv
447 %{_datadir}/cups/drv/indexv3.drv
448 %{_datadir}/cups/drv/indexv4.drv
449 %{_datadir}/cups/mime/braille.convs
450 %{_datadir}/cups/mime/braille.types
451 %{_datadir}/cups/ppdc/braille.defs
452 %{_datadir}/cups/ppdc/fr-braille.po
453 %{_datadir}/cups/ppdc/imagemagick.defs
454 %{_datadir}/cups/ppdc/index.defs
455 %{_datadir}/cups/ppdc/liblouis.defs
456 %{_datadir}/cups/ppdc/liblouis1.defs
457 %{_datadir}/cups/ppdc/liblouis2.defs
458 %{_datadir}/cups/ppdc/liblouis3.defs
459 %{_datadir}/cups/ppdc/liblouis4.defs
460 %{_datadir}/cups/ppdc/media-braille.defs
464 %defattr(644,root,root,755)
465 %doc fontembed/README
466 %attr(755,root,root) %{_libdir}/libcupsfilters.so.*.*.*
467 %attr(755,root,root) %ghost %{_libdir}/libcupsfilters.so.1
468 %attr(755,root,root) %{_libdir}/libfontembed.so.*.*.*
469 %attr(755,root,root) %ghost %{_libdir}/libfontembed.so.1
472 %defattr(644,root,root,755)
473 %attr(755,root,root) %{_libdir}/libcupsfilters.so
474 %attr(755,root,root) %{_libdir}/libfontembed.so
475 %{_includedir}/cupsfilters
476 %{_includedir}/fontembed
477 %{_pkgconfigdir}/libcupsfilters.pc
478 %{_pkgconfigdir}/libfontembed.pc
480 %if %{with static_libs}
482 %defattr(644,root,root,755)
483 %{_libdir}/libcupsfilters.a
484 %{_libdir}/libfontembed.a
487 %files -n cups-browsed
488 %defattr(644,root,root,755)
489 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cups/cups-browsed.conf
490 %attr(755,root,root) %{_sbindir}/cups-browsed
491 %attr(754,root,root) /etc/rc.d/init.d/cups-browsed
492 %{systemdunitdir}/cups-browsed.service
493 %{_mandir}/man5/cups-browsed.conf.5*
494 %{_mandir}/man8/cups-browsed.8*
496 %files -n cups-backend-parallel
497 %defattr(644,root,root,755)
498 %attr(700,root,root) %{_cups_serverbin}/backend/parallel
500 %files -n cups-backend-serial
501 %defattr(644,root,root,755)
502 %attr(700,root,root) %{_cups_serverbin}/backend/serial
506 %defattr(644,root,root,755)
507 %doc scripting/perl/README
508 %{perl_vendorarch}/CUPS.pm
509 %dir %{perl_vendorarch}/auto/CUPS
510 %{perl_vendorarch}/auto/CUPS/autosplit.ix
511 %attr(755,root,root) %{perl_vendorarch}/auto/CUPS/CUPS.so
512 %{_mandir}/man3/CUPS.3pm*
516 %files -n %{php_name}-cups
517 %defattr(644,root,root,755)
518 %doc scripting/php/README
519 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/phpcups.ini
520 %attr(755,root,root) %{php_extensiondir}/libphpcups.so