1 # WARNING: when updating to 3.18.7+ beware of libImageProcessor binary blob (enigmatic "CDS feature" commonly causing problems);
2 # see Debian, Fedora or Arch for patch to disable it
4 # - add desktop file for toolbox
5 # - separate hpijs package?
8 %bcond_without dbus # dbus (com.hplip.StatusService) support
9 %bcond_without fax # fax support (cups backend+hplip components), depends on dbus
15 Summary: Hewlett-Packard Linux Imaging and Printing suite - printing and scanning using HP devices
16 Summary(pl.UTF-8): Narzędzia Hewlett-Packard Linux Imaging and Printing - drukowanie i skanowanie przy użyciu urządzeń HP
20 License: BSD (hpijs), MIT (low-level scanning and printing code), GPL v2 (the rest)
21 Group: Applications/System
22 Source0: http://downloads.sourceforge.net/hplip/%{name}-%{version}.tar.gz
23 # Source0-md5: 3857eae76c49c00fa185628d4dce7d61
24 Patch0: %{name}-desktop.patch
25 Patch1: unresolved.patch
26 Patch2: pld-distro.patch
27 # note: this patch adds support to fixing only certain binary plugins. Newer plugin
28 # version have different md5 sums, different offsets, so handling new binaries need
30 Patch3: %{name}-binary-fixup.patch
31 Patch4: %{name}-destdir.patch
32 Patch5: %{name}-udev-rules.patch
33 URL: http://hplipopensource.com/
34 BuildRequires: autoconf
35 BuildRequires: automake
36 BuildRequires: cups-devel >= 1.2
37 BuildRequires: cups-ppdc >= 1.2
38 %{?with_dbus:BuildRequires: dbus-devel >= 1.0.0}
39 BuildRequires: libjpeg-devel
40 BuildRequires: libstdc++-devel
41 BuildRequires: libtiff-devel
42 BuildRequires: libtool
43 BuildRequires: libusb-devel >= 1.0
44 BuildRequires: net-snmp-devel
45 BuildRequires: openssl-devel
46 BuildRequires: pkgconfig
47 BuildRequires: python-devel >= 2.2
48 BuildRequires: python-modules >= 2.2
49 BuildRequires: rpm-pythonprov
50 BuildRequires: rpmbuild(macros) >= 1.752
51 BuildRequires: sane-backends-devel
52 BuildRequires: sed >= 4.0
53 Requires: %{name}-libs = %{version}-%{release}
54 Requires: python-modules
57 Obsoletes: hplip-daemon
58 Obsoletes: python-hplip
59 Conflicts: ghostscript <= 7.00-3
61 Suggests: python-ReportLab >= 2.0
62 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
64 %define _ulibdir %{_prefix}/lib
66 %define cups_datadir %(cups-config --datadir 2>/dev/null || echo ERROR)
67 %define cups_mimedir %{cups_datadir}/mime
68 %define cups_ppddir %{cups_datadir}/model
69 %define cups_serverdir %(cups-config --serverbin 2>/dev/null || echo ERROR)
70 %define cups_backenddir %{cups_serverdir}/backend
71 %define cups_filterdir %{cups_serverdir}/filter
74 The Hewlett-Packard Linux Imaging and Printing project (HPLIP)
75 provides a unified single and multi-function connectivity solution for
76 Linux. The goal of this project is to provide "radically simple"
77 printing, faxing, scanning, photo-card access, and device management
78 to the consumer and small business desktop Linux users.
80 %description -l pl.UTF-8
81 Projekt Hewlett-Packard Linux Imaging and Printing (HPLIP) udostępnia
82 jednolite, wielofunkcyjne rozwiązanie dla Linuksa. Celem tego projektu
83 jest zapewnienie "radykalnie prostego" drukowania, faksowania,
84 skanowania, dostępu do kart fotograficznych oraz zarządzania
85 urządzeniami końcowym użytkownikom Linuksa.
88 Summary: HPLIP GUI tools
89 Summary(pl.UTF-8): Narzędzia HPLIP z graficznym interfejsem użytkownika
90 Group: Applications/System
91 Requires: %{name} = %{version}-%{release}
92 Requires: python-PyQt4
94 %description gui-tools
97 %description gui-tools -l pl.UTF-8
98 Narzędzia HPLIP z graficznym interfejsem użytkownika.
101 Summary: HPLIP Libraries
102 Summary(pl.UTF-8): Biblioteki HPLIP
108 %description libs -l pl.UTF-8
112 Summary: HPLIP driver for SANE (scanner access)
113 Summary(pl.UTF-8): Sterownik HPLIP dla SANE (dostęp do skanera)
115 Requires(post): /bin/grep
116 Requires(postun): /bin/sed
117 Requires: %{name} = %{version}-%{release}
120 HPLIP driver for SANE (provides scanner access).
122 %description sane -l pl.UTF-8
123 Sterownik HPLIP dla SANE (umożliwia dostęp do skanera).
126 Summary: PPD database for Hewlett Packard printers
127 Summary(pl.UTF-8): Baza danych PPD dla drukarek Hewlett Packard
128 Group: Applications/System
130 Requires: cups-filters >= 1.0.43
135 PPD database for Hewlett Packard printers.
137 %description ppd -l pl.UTF-8
138 Baza danych PPD dla drukarek Hewlett Packard.
140 %package -n cups-backend-hp
141 Summary: HP backend for CUPS
142 Summary(pl.UTF-8): Backend HP dla CUPS-a
143 Group: Applications/Printing
144 Requires: %{name} = %{version}-%{release}
146 Requires: cups-filters >= 1.0.43
148 %description -n cups-backend-hp
149 This package allows CUPS printing on HP printers.
151 %description -n cups-backend-hp -l pl.UTF-8
152 Ten pakiet umożliwia drukowanie z poziomu CUPS-a na drukarkach HP.
154 %package -n cups-backend-hpfax
155 Summary: HP fax backend for CUPS
156 Summary(pl.UTF-8): Backend HP fax dla CUPS-a
157 Group: Applications/Printing
158 Requires: %{name} = %{version}-%{release}
161 %description -n cups-backend-hpfax
162 This package allow CUPS faxing using HP AiO devices.
164 %description -n cups-backend-hpfax -l pl.UTF-8
165 Ten pakiet umożliwia wysyłanie faksów z poziomu CUPS-a poprzez
178 %{__sed} -i -e '1s,^#!/usr/bin/env python$,#!%{__python},' *.py fax/filters/pstotiff prnt/filters/hpps
179 find base fax installer prnt scan ui ui4 -name '*.py' | xargs \
180 %{__sed} -i -e '1s,^#!/usr/bin/env python$,#!%{__python},'
181 %{__sed} -i -e '1s,^#!/usr/bin/python$,#!%{__python},' logcapture.py doctor.py
183 %{__sed} -i -e 's#test -d /usr/share/polkit-1#true#' configure.in
190 CXXFLAGS="%{rpmcflags} -fno-exceptions -fno-rtti"
192 %{!?with_dbus:--disable-dbus-build} \
193 %{!?with_fax:--disable-fax-build} \
194 --enable-cups-drv-install \
195 --enable-cups-ppd-install \
196 --enable-foomatic-drv-install \
197 --enable-foomatic-ppd-install \
198 --disable-foomatic-rip-hplip-install \
199 --enable-hpcups-install \
200 --enable-hpijs-install \
203 --with-cupsbackenddir=%{cups_backenddir} \
204 --with-cupsfilterdir=%{cups_filterdir} \
205 --with-hpppddir=%{cups_ppddir} \
206 --with-mimedir=%{_datadir}/cups/mime
210 rm -rf $RPM_BUILD_ROOT
211 install -d $RPM_BUILD_ROOT/var/lib/hp
213 %{__make} -j1 install \
214 DESTDIR=$RPM_BUILD_ROOT
216 touch $RPM_BUILD_ROOT/var/lib/hp/hplip.state
218 for tool in align clean colorcal fab firmware info levels makecopies makeuri print \
219 probe scan sendfax setup testpage timedate toolbox unload ; do
220 ln -sf %{_datadir}/%{name}/$tool.py $RPM_BUILD_ROOT%{_bindir}/hp-$tool
223 # use filter from cups-filters package, the perl script from hplip does not work
224 # correctly with cups 1.7.x, and is an unnecessary functional duplicate
225 ln -s %{cups_filterdir}/foomatic-rip $RPM_BUILD_ROOT%{cups_filterdir}/foomatic-rip-hplip
227 # useless (nothing is going to link to installed libraries/modules)
228 %{__rm} $RPM_BUILD_ROOT{%{_libdir}/libhp*.{so,la},%{_libdir}/sane/*.{so,la},%{py_sitedir}/*.la}
229 # handled by post script
230 %{__rm} $RPM_BUILD_ROOT/etc/sane.d/dll.conf
232 %{__rm} $RPM_BUILD_ROOT{%{_bindir}/hp-{uninstall,upgrade},%{_datadir}/hplip/{uninstall,upgrade}.py}
233 %{__rm} $RPM_BUILD_ROOT/usr/lib/systemd/system/hplip-printer@.service
236 %{__rm} $RPM_BUILD_ROOT%{cups_filterdir}/pstotiff
239 # use udev, hal's dead
240 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/hal
242 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
245 rm -rf $RPM_BUILD_ROOT
247 %post libs -p /sbin/ldconfig
248 %postun libs -p /sbin/ldconfig
251 /bin/grep -q '^hpaio' /etc/sane.d/dll.conf || echo hpaio >> /etc/sane.d/dll.conf
254 if [ "$1" = "0" ]; then
255 /bin/sed -e'/^hpaio/d' -i /etc/sane.d/dll.conf || :
259 %defattr(644,root,root,755)
261 %attr(755,root,root) %{_bindir}/hpijs
262 %attr(755,root,root) %{_bindir}/hp-align
263 %attr(755,root,root) %{_bindir}/hp-check
264 %attr(755,root,root) %{_bindir}/hp-clean
265 %attr(755,root,root) %{_bindir}/hp-colorcal
266 %attr(755,root,root) %{_bindir}/hp-config_usb_printer
267 %attr(755,root,root) %{_bindir}/hp-diagnose_plugin
268 %attr(755,root,root) %{_bindir}/hp-diagnose_queues
269 %attr(755,root,root) %{_bindir}/hp-firmware
270 %attr(755,root,root) %{_bindir}/hp-doctor
271 %attr(755,root,root) %{_bindir}/hp-info
272 %attr(755,root,root) %{_bindir}/hp-levels
273 %attr(755,root,root) %{_bindir}/hp-logcapture
274 %attr(755,root,root) %{_bindir}/hp-makecopies
275 %attr(755,root,root) %{_bindir}/hp-makeuri
276 %attr(755,root,root) %{_bindir}/hp-pkservice
277 %attr(755,root,root) %{_bindir}/hp-plugin
278 %attr(755,root,root) %{_bindir}/hp-probe
279 %attr(755,root,root) %{_bindir}/hp-query
280 %attr(755,root,root) %{_bindir}/hp-scan
281 %attr(755,root,root) %{_bindir}/hp-sendfax
282 %attr(755,root,root) %{_bindir}/hp-setup
283 %attr(755,root,root) %{_bindir}/hp-testpage
284 %attr(755,root,root) %{_bindir}/hp-timedate
285 %attr(755,root,root) %{_bindir}/hp-unload
286 %dir %{_datadir}/hplip
287 %{_datadir}/hplip/__init__.py
288 %dir %{_datadir}/hplip/copier
289 %{_datadir}/hplip/copier/*.py
290 %attr(755,root,root) %{_datadir}/hplip/align.py
291 %attr(755,root,root) %{_datadir}/hplip/check.py
292 %attr(755,root,root) %{_datadir}/hplip/check-plugin.py
293 %attr(755,root,root) %{_datadir}/hplip/clean.py
294 %attr(755,root,root) %{_datadir}/hplip/colorcal.py
295 %attr(755,root,root) %{_datadir}/hplip/config_usb_printer.py
296 %attr(755,root,root) %{_datadir}/hplip/diagnose_plugin.py
297 %attr(755,root,root) %{_datadir}/hplip/diagnose_queues.py
298 %attr(755,root,root) %{_datadir}/hplip/doctor.py
299 %attr(755,root,root) %{_datadir}/hplip/firmware.py
300 %attr(755,root,root) %{_datadir}/hplip/hpdio.py
301 %attr(755,root,root) %{_datadir}/hplip/hplip_clean.sh
302 %attr(755,root,root) %{_datadir}/hplip/hpssd.py
303 %attr(755,root,root) %{_datadir}/hplip/info.py
304 %attr(755,root,root) %{_datadir}/hplip/levels.py
305 %attr(755,root,root) %{_datadir}/hplip/logcapture.py
306 %attr(755,root,root) %{_datadir}/hplip/makecopies.py
307 %attr(755,root,root) %{_datadir}/hplip/makeuri.py
308 %attr(755,root,root) %{_datadir}/hplip/pkservice.py
309 %attr(755,root,root) %{_datadir}/hplip/plugin.py
310 %attr(755,root,root) %{_datadir}/hplip/probe.py
311 %attr(755,root,root) %{_datadir}/hplip/query.py
312 %attr(755,root,root) %{_datadir}/hplip/scan.py
313 %attr(755,root,root) %{_datadir}/hplip/sendfax.py
314 %attr(755,root,root) %{_datadir}/hplip/setup.py
315 %attr(755,root,root) %{_datadir}/hplip/testpage.py
316 %attr(755,root,root) %{_datadir}/hplip/timedate.py
317 %attr(755,root,root) %{_datadir}/hplip/unload.py
318 %{_datadir}/hplip/base
319 %dir %{_datadir}/hplip/data
320 %{_datadir}/hplip/data/ldl
321 %{_datadir}/hplip/data/localization
322 %{_datadir}/hplip/data/models
323 %{_datadir}/hplip/data/pcl
324 %{_datadir}/hplip/data/ps
327 %{_datadir}/hplip/fax
329 %{_datadir}/hplip/installer
330 %{_datadir}/hplip/pcard
331 %{_datadir}/hplip/prnt
332 %{_datadir}/hplip/scan
333 %attr(755,root,root) %{_datadir}/hplip/dat2drv
334 %attr(755,root,root) %{_datadir}/hplip/locatedriver
335 %attr(755,root,root) %{py_sitedir}/cupsext.so
336 %attr(755,root,root) %{py_sitedir}/hpmudext.so
337 %attr(755,root,root) %{py_sitedir}/pcardext.so
338 %attr(755,root,root) %{py_sitedir}/scanext.so
339 %dir %{_sysconfdir}/hp
340 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hp/hplip.conf
341 /lib/udev/rules.d/56-hpmud.rules
342 /etc/dbus-1/system.d/com.hp.hplip.conf
343 %{_datadir}/dbus-1/system-services/com.hp.hplip.service
344 %{_datadir}/polkit-1/actions/com.hp.hplip.policy
347 %defattr(644,root,root,755)
348 %attr(755,root,root) %{_bindir}/hp-devicesettings
349 %attr(755,root,root) %{_bindir}/hp-fab
350 %attr(755,root,root) %{_bindir}/hp-faxsetup
351 %attr(755,root,root) %{_bindir}/hp-linefeedcal
352 %attr(755,root,root) %{_bindir}/hp-pqdiag
353 %attr(755,root,root) %{_bindir}/hp-print
354 %attr(755,root,root) %{_bindir}/hp-printsettings
355 %attr(755,root,root) %{_bindir}/hp-systray
356 %attr(755,root,root) %{_bindir}/hp-toolbox
357 %attr(755,root,root) %{_bindir}/hp-wificonfig
358 %attr(755,root,root) %{_datadir}/hplip/devicesettings.py
359 %attr(755,root,root) %{_datadir}/hplip/wificonfig.py
360 %attr(755,root,root) %{_datadir}/hplip/fab.py
361 %attr(755,root,root) %{_datadir}/hplip/faxsetup.py
362 %attr(755,root,root) %{_datadir}/hplip/linefeedcal.py
363 %attr(755,root,root) %{_datadir}/hplip/pqdiag.py
364 %attr(755,root,root) %{_datadir}/hplip/print.py
365 %attr(755,root,root) %{_datadir}/hplip/printsettings.py
366 %attr(755,root,root) %{_datadir}/hplip/systray.py
367 %attr(755,root,root) %{_datadir}/hplip/toolbox.py
368 %{_datadir}/hplip/ui4
369 %{_datadir}/hplip/data/images
370 %{_sysconfdir}/xdg/autostart/hplip-systray.desktop
371 %{_desktopdir}/hplip.desktop
373 %verify(not md5 mtime size) /var/lib/hp/hplip.state
376 %defattr(644,root,root,755)
377 %attr(755,root,root) %{_libdir}/libhpdiscovery.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libhpdiscovery.so.0
379 %attr(755,root,root) %{_libdir}/libhpip.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libhpip.so.0
381 %attr(755,root,root) %{_libdir}/libhpipp.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libhpipp.so.0
383 %attr(755,root,root) %{_libdir}/libhpmud.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libhpmud.so.0
387 %defattr(644,root,root,755)
388 %doc scan/sane/hpaio.desc
389 %attr(755,root,root) %{_libdir}/sane/libsane-hpaio.so.*.*.*
390 %attr(755,root,root) %{_libdir}/sane/libsane-hpaio.so.1
393 %defattr(644,root,root,755)
395 %{cups_ppddir}/HP-Fax*.ppd.gz
397 %{cups_ppddir}/apollo-*.ppd.gz
398 %{cups_ppddir}/hp-*.ppd.gz
400 %files -n cups-backend-hp
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{cups_backenddir}/hp
403 %attr(755,root,root) %{cups_filterdir}/foomatic-rip-hplip
404 %attr(755,root,root) %{cups_filterdir}/hpcups
405 %attr(755,root,root) %{cups_filterdir}/hpps
406 %{cups_datadir}/drv/hp
409 %files -n cups-backend-hpfax
410 %defattr(644,root,root,755)
411 %attr(755,root,root) %{cups_backenddir}/hpfax
412 %attr(755,root,root) %{cups_filterdir}/hpcupsfax
413 %attr(755,root,root) %{cups_filterdir}/pstotiff
414 %{cups_mimedir}/pstotiff.types
415 %{cups_mimedir}/pstotiff.convs