hplip/hplip.spec

824 lines
25 KiB
RPMSpec
Raw Normal View History

2012-02-01 15:16:03 +04:00
# Define if you want to build the sane backend (default)
%define sane_backend 1
%{?_with_sane: %global sane_backend 1}
%{?_without_sane: %global sane_backend 0}
%define hpip_major 0
%define hpip_libname %mklibname hpip %{hpip_major}
%define sane_hpaio_major 1
%define sane_hpaio_libname %mklibname sane-hpaio %{sane_hpaio_major}
# Suppress automatically generated Requires for devel packages
2012-08-22 11:04:03 +04:00
%define __noautoreq 'devel\(.*\)'
2012-02-01 15:16:03 +04:00
#define extraversion -RC1
%define extraversion %nil
Summary: HP printer/all-in-one driver infrastructure
Name: hplip
2012-10-09 12:07:28 +00:00
Version: 3.12.10
2013-04-15 09:59:51 +04:00
Release: 4
2012-02-01 15:16:03 +04:00
License: GPLv2+ and MIT
Group: System/Printing
2012-08-22 11:04:03 +04:00
Source0: http://heanet.dl.sourceforge.net/sourceforge/hplip/%{name}-%{version}%{extraversion}.tar.gz
2012-04-11 18:54:50 +04:00
Source1: hpcups-update-ppds.sh
2013-04-15 10:06:43 +04:00
Source2: %{name}-tmpfiles.conf
2012-08-22 11:04:03 +04:00
# (doktor5000) fix linking with python and libsane
# taken from mandriva
Patch1: hplip-3.11.3-mdv-link.patch
# (Anssi) Apply udev rules even on ACTION=="change", otherwise the permissions
# do not get applied in %%post on a new installation:
Patch2: hplip-apply-udev-rules-on-action-change.patch
2012-02-01 15:16:03 +04:00
# Fedora patches
Patch101: hplip-pstotiff-is-rubbish.patch
Patch102: hplip-strstr-const.patch
Patch103: hplip-ui-optional.patch
Patch104: hplip-no-asm.patch
Patch106: hplip-mucks-with-spooldir.patch
Patch107: hplip-udev-rules.patch
Patch108: hplip-retry-open.patch
2012-08-22 11:04:03 +04:00
Patch109: hplip-snmp-quirks.patch
2012-02-01 15:16:03 +04:00
Patch110: hplip-discovery-method.patch
2012-08-22 11:04:03 +04:00
Patch111: hplip-hpijs-marker-supply.patch
2012-02-01 15:16:03 +04:00
Patch112: hplip-clear-old-state-reasons.patch
Patch114: hplip-hpcups-sigpipe.patch
2012-08-22 11:04:03 +04:00
Patch115: hplip-fax-ppd.patch
2012-02-01 15:16:03 +04:00
Patch116: hplip-bad-low-ink-warning.patch
Patch118: hplip-skip-blank-lines.patch
Patch119: hplip-dbglog-newline.patch
2012-08-22 11:04:03 +04:00
Patch121: hplip-ppd-ImageableArea.patch
Patch122: hplip-raw_deviceID-traceback.patch
Patch123: hplip-UnicodeDecodeError.patch
2012-09-13 04:19:03 +00:00
Patch124: hplip-3.12.9-addprinter.patch
2012-08-22 11:04:03 +04:00
Patch125: hplip-dbus-exception.patch
Patch126: hplip-notification-exception.patch
Patch127: hplip-CVE-2010-4267.patch
Patch128: hplip-wifisetup.patch
# recreated from makefile-chgrp.patch against Makefile.am
2012-09-13 04:19:03 +00:00
Patch129: hplip-3.12.9-makefile-chgrp.patch
2012-08-22 11:04:03 +04:00
Patch130: hplip-hpaio-localonly.patch
2013-04-15 09:59:51 +04:00
Patch131: hplip-3.12.9-CVE-2013-0200.patch
2012-02-01 15:16:03 +04:00
# Debian/Ubuntu patches
2012-08-22 11:04:03 +04:00
# taken from http://patch-tracker.debian.org/package/hplip/3.11.7-1
Patch201: 01_rss.dpatch
Patch202: 10_shebang_fixes.dpatch
Patch203: 14_charsign_fixes.dpatch
Patch204: 85_rebuild_python_ui.dpatch
Patch205: 87_move_documentation.dpatch
Patch206: hplip-photosmart_b9100_support.patch
Patch207: hplip-pjl-duplex-binding.patch
Patch208: mga-kde4-kdesudo-support.dpatch
Patch209: hp-check-groups.dpatch
Patch210: hp-check_debian.dpatch
Patch211: hp-setup-prompt-for-custom-PPD.dpatch
Patch213: hp-mkuri-take-into-account-already-installed-plugin-also-for-exit-value.dpatch
Patch214: ubuntu-hp-mkuri-notification-text.dpatch
Patch215: simple-scan-as-default.dpatch
Patch216: make-commafy-correctly-work-with-python-2.dpatch
# (doktor5000) rediff original debian patch for hplip 3.11.10
Patch217: hplip-3.11.10-mga-remove-duplicate-entry-for-cp1700-in-drv-files.patch
Patch219: try_libhpmud.so.0.dpatch
Patch220: add-lidil-two-cartridge-modes.dpatch
Patch221: add_missing_newline_for_error_log.dpatch
2012-09-13 04:19:03 +00:00
Patch224: hplip-3.12.9-syslog-fix-debug-messages-to-error.dpatch
2012-08-22 11:04:03 +04:00
Patch225: hpfax-bug-function-used-before-importing-log.dpatch
Patch226: hp-systray-make-menu-title-visible-in-sni-qt-indicator.dpatch
Patch227: hp-systray-make-menu-appear-in-sni-qt-indicator-with-kde.dpatch
2013-04-15 09:59:51 +04:00
Patch228: hpaio-option-duplex.diff
# OpenSUSE patches
Patch301: fix-uninitialized-variables.patch
2012-02-01 15:16:03 +04:00
Url: http://hplip.sourceforge.net/
%if %{sane_backend}
BuildRequires: libsane-devel, xsane
%endif
%py_requires -d
BuildRequires: python-sip >= 4.1.1
BuildRequires: net-snmp-devel
BuildRequires: libusb-devel >= 0.1.8
BuildRequires: imagemagick
BuildRequires: autoconf
2012-08-22 11:04:03 +04:00
BuildRequires: cups-devel
2012-02-01 15:16:03 +04:00
BuildRequires: libjpeg-devel
BuildRequires: python-devel
BuildRequires: desktop-file-utils
2012-08-22 11:04:03 +04:00
BuildRequires: dbus-devel
2012-02-01 15:16:03 +04:00
BuildRequires: udev-devel
BuildRequires: polkit
2012-09-13 04:19:03 +00:00
BuildRequires: pkgconfig(libgphoto2)
2012-08-22 11:04:03 +04:00
BuildRequires: libv4l-devel
2013-04-15 09:59:51 +04:00
Requires(post): systemd
2012-02-01 15:16:03 +04:00
Requires: cups
# For dynamic ppd generation.
Requires: foomatic-filters
Requires: hplip-model-data hplip-hpijs
Requires: hplip-hpijs-ppds
Requires: python-sip >= 4.1.1
# Needed for communicating with ethernet-connected printers
Requires: net-snmp-mibs
# Needed to generate fax cover pages
Requires: python-reportlab
# Needed since 2.8.4 for IPC
Requires: python-dbus
Requires: polkit-agent
Requires: usermode-consoleonly
Requires: python-gobject
# Required by hp-scan for command line scanning
2012-08-22 11:04:03 +04:00
Requires: python-imaging
Requires: sane-backends-hpaio
# Needed to avoid misleading errors about network connectivity (RH bug #705843)
Requires: wget
# hplip tools use internal symbols from libhplip that can change among versions
Requires: %{hpip_libname} = %{version}
2012-08-22 11:04:03 +04:00
# Some HP ppds are in foomatic-db and foomatic-db-hpijs (mdv bug #47415)
2012-02-01 15:16:03 +04:00
Suggests: foomatic-db-hpijs
2013-04-15 09:59:51 +04:00
# (cg) needed by at least hp-check
Requires: acl
2012-02-01 15:16:03 +04:00
# foomatic-db-hpijs drivers are provided by hp and by this package now
# NOTE: remove the foomatic-db-hpijs deps sometime in 2010-10-?? ?
Provides: foomatic-db-hpijs = %{version}-%{release}
Obsoletes: foomatic-db-hpijs
2012-08-22 11:04:03 +04:00
2012-02-01 15:16:03 +04:00
%description
This is the HP driver package to supply Linux support for most
Hewlett-Packard DeskJet, LaserJet, PSC, OfficeJet, and PhotoSmart
printers and all-in-one peripherals (also known as Multi-Function
Peripherals or MFPs), which can print, scan, copy, fax, and/or access
flash memory cards.
It is work in progress, but printing, scanning, memory card access,
ink/toner/battery/consumable level checking, and inkjet printer
maintenance are supported on most models, when either connected to the
USB or LAN (built-in interfaces or selected HP JetDirect models) on a
Linux workstation with CUPS printing system.
For status and consumable checking and also for inkjet maintenance
there is the graphical tool "hp-toolbox" available (Menu:
"System"/"Monitoring"/"HP Printer Toolbox").
%package -n %{hpip_libname}
Summary: Dynamic library for the "hplip" HP printer/all-in-one drivers
Group: System/Printing
%description -n %{hpip_libname}
Library needed for the "hplip" HP printer/all-in-one drivers
%package -n %{hpip_libname}-devel
Summary: Headers and links to compile against the "%{hpip_libname}" ("hplip") library
Group: Development/C
Requires: %{hpip_libname} >= %{version}-%{release}
Provides: libhpip-devel = %{version}-%{release}
%description -n %{hpip_libname}-devel
This package contains all files which one needs to compile programs using
the "%{hpip_libname}" library.
%if %{sane_backend}
%package -n %{sane_hpaio_libname}
Summary: SANE driver for scanners in HP's multi-function devices (from HPLIP)
Group: System/Printing
Requires: sane-backends
2012-08-22 11:04:03 +04:00
Provides: sane-backends-hpaio = %{version}-%{release}
# (cjw) for system-config-printer
Provides: libsane-hpaio
%define __noautoreq 'devel(libcrypto)\\|devel(libdl)\\|devel(libhpip)\\|devel(libm)\\|devel(libsnmp)'
2012-02-01 15:16:03 +04:00
%endif
%if %{sane_backend}
%description -n %{sane_hpaio_libname}
SANE driver for scanners in HP's multi-function devices (from HPLIP)
%endif
%if 0
%if %{sane_backend}
%package -n %{sane_hpaio_libname}-devel
Summary: Headers and links to compile against the "%{sane_hpaio_libname}" ("sane-hpaio") library
Group: Development/C
Requires: %{sane_hpaio_libname} >= %{version}-%{release}
Provides: libsane-hpaio-devel = %{version}-%{release}
%endif
%if %{sane_backend}
%description -n %{sane_hpaio_libname}-devel
This package contains all files which one needs to compile programs using
the "%{sane_hpaio_libname}" library.
%endif
%endif
%package model-data
Summary: Data file listing the HP printer models supported by HPLIP
Group: System/Printing
%description model-data
HPLIP supports most current HP printers and multifunction devices, but
there are some older models not supported. This package contains the
list of supported models. Printerdrake installs it automatically to
determine whether HPLIP has to be installed or not.
%package gui
Summary: HPLIP graphical tools
Group: System/Printing
Requires:python-qt4-gui
Requires: %{name} = %{version}-%{release}
Requires: usermode
%description gui
HPLIP graphical tools.
%package hpijs
Summary: HPs printer driver IJS plug-in for GhostScript
Group: System/Printing
Requires: ghostscript
Provides: hpijs
%description hpijs
HPs printer driver IJS plug-in for GhostScript. This driver gives full
printing support for nearly all non-PostScript inkjet and laser
printers made by HP.
%package hpijs-ppds
Summary: PPD files for the HPIJS printer driver
Group: System/Printing
Requires: foomatic-filters, hplip-hpijs
%description hpijs-ppds
PPD files to use the HPIJS printer driver with foomatic-rip and a
printer spooler like CUPS, LPRng, PDQ, ...
%package doc
Summary: Documentation for HPLIP
Group: System/Printing
%description doc
This package contains documentation for the HPLIP driver.
This is the HP driver package to supply Linux support for most
Hewlett-Packard DeskJet, LaserJet, PSC, OfficeJet, and PhotoSmart
printers and all-in-one peripherals (also known as Multi-Function
Peripherals or MFPs), which can print, scan, copy, fax, and/or access
flash memory cards.
%prep
rm -rf $RPM_BUILD_DIR/%{name}-%{version}%{extraversion}
%setup -q -n %{name}-%{version}%{extraversion}
2012-08-22 11:04:03 +04:00
%patch2 -p1 -b .udev~
2012-02-01 15:16:03 +04:00
# Fedora patches
# The pstotiff filter is rubbish so replace it (launchpad #528394).
%patch101 -p1 -b .pstotiff-is-rubbish
# Fix compilation.
%patch102 -p1 -b .strstr-const
# Make utils.checkPyQtImport() look for the gui sub-package (RH bug #243273).
%patch103 -p1 -b .ui-optional
# Make sure to avoid handwritten asm.
%patch104 -p1 -b .no-asm
# Stopped hpcups pointlessly trying to read spool files
# directly (RH bug #552572).
%patch106 -p1 -b .mucks-with-spooldir
# Retry when connecting to device fails (RH bug #532112).
%patch108 -p1 -b .retry-open
2012-08-22 11:04:03 +04:00
# Mark SNMP quirks in PPD for HP OfficeJet Pro 8500 (RH bug #581825).
%patch109 -p1 -b .snmp-quirks
2012-02-01 15:16:03 +04:00
# Fixed hp-setup traceback when discovery page is skipped (RH bug #523685).
%patch110 -p1 -b .discovery-method
2012-08-22 11:04:03 +04:00
# Fixed bogus low ink warnings from hpijs driver (RH bug #643643).
%patch111 -p1 -b .hpijs-marker-supply
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Clear old printer-state-reasons we used to manage (RH bug #510926).
2012-02-01 15:16:03 +04:00
%patch112 -p1 -b .clear-old-state-reasons
# Avoid busy loop in hpcups when backend has exited (RH bug #525944).
%patch114 -p1 -b .hpcups-sigpipe
2012-08-22 11:04:03 +04:00
# Use correct fax PPD name for Qt3 UI.
2012-09-13 04:19:03 +00:00
#patch115 -p1 -b .fax-ppd
2012-08-22 11:04:03 +04:00
2012-02-01 15:16:03 +04:00
# Fixed Device ID parsing code in hpijs's dj9xxvip.c (RH bug #510926).
%patch116 -p1 -b .bad-low-ink-warning
2012-08-22 11:04:03 +04:00
# Hpcups (ljcolor) was putting black lines where should be blank lines (RH bug #579461).
%patch118 -p1 -b .skip-blank-lines
# Added missing newline to string argument in dbglog() call (RH bug #585275).
%patch119 -p1 -b .dbglog-newline
# Fix ImageableArea for Laserjet 8150/9000 (RH bug #596298).
for ppd_file in $(grep '^diff' %{PATCH121} | cut -d " " -f 4);
2012-02-01 15:16:03 +04:00
do
gunzip ${ppd_file#*/}.gz
done
2012-08-22 11:04:03 +04:00
%patch121 -p1 -b .ImageableArea
for ppd_file in $(grep '^diff' %{PATCH121} | cut -d " " -f 4);
2012-02-01 15:16:03 +04:00
do
gzip -n ${ppd_file#*/}
done
2012-08-22 11:04:03 +04:00
# Fixed traceback on error condition in device.py (RH bug #628125).
%patch122 -p1 -b .raw_deviceID-traceback
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Avoid UnicodeDecodeError in printsettingstoolbox.py (RH bug #645739).
%patch123 -p1 -b .UnicodeDecodeError
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Call cupsSetUser in cupsext's addPrinter method before connecting so
# that we can get an authentication callback (RH bug #538352).
%patch124 -p1 -b .addprinter
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Catch D-Bus exceptions in fax dialog (RH bug #645316).
%patch125 -p1 -b .dbus-exception
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Catch GError exception when notification showing failed (RH bug #665577).
%patch126 -p1 -b .notification-exception
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Applied patch to fix CVE-2010-4267, remote stack overflow
# vulnerability (RH bug #670252).
%patch127 -p1 -b .CVE-2010-4267
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Avoid KeyError in ui4/wifisetupdialog.py (RH bug #680939).
%patch128 -p1 -b .wifisetup
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Don't run 'chgrp lp /var/log/hp' in makefile
%patch129 -p1 -b .chgrp
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Pay attention to the SANE localOnly flag in hpaio (RH bug #743593).
%patch130 -p1 -b .hpaio-localonly
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
sed -i.duplex-constraints \
-e 's,\(UIConstraints.* \*Duplex\),//\1,' \
prnt/drv/hpcups.drv.in
2012-02-01 15:16:03 +04:00
2013-04-15 09:59:51 +04:00
# Use mkstemp to create temporary files to avoid symlink attacks (RH#902163).
%patch131 -p1 -b .CVE-2013-0200
2012-08-22 11:04:03 +04:00
# Debian/Ubuntu patches
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# This patch tries to make sure that black is printed with just
# the black pen, if the printer supports it
%patch201 -p1 -b .01_rss
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# shebang fixes
%patch202 -p1 -b .10_shebang_fixes
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# code cleanup related to char signedness
%patch203 -p1 -b .14_charsign
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# compiling ui files to py
%patch204 -p1 -b .85_rebuild_python_ui
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# place html documentation under hplip-doc/HTML/
%patch205 -p1 -b .87_move_documentation
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Corrections on the models.dat entry for the HP PhotoSmart Pro B9100,
# especially for the correct color calibration mode.
%patch206 -p1 -b .hplip-photosmart_b9100_support
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# Fixes Short-edge duplex printing if duplex is PJL-controlled
2012-02-01 15:16:03 +04:00
# https://bugs.launchpad.net/hplip/+bug/244295
2012-08-22 11:04:03 +04:00
%patch207 -p1 -b .hplip-pjl-duplex-binding
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# original patch from debian, path to kdesu added for %%_libdir on x86_64
%patch208 -p1 -b .mga-kde4-kdesudo-support
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# https://bugs.launchpad.net/debian/+source/hplip/+bug/530746
%patch209 -p1 -b .hp-check-groups
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
%patch211 -p1 -b .hp-setup-prompt-for-custom-PPDs
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
%patch213 -p1 -b .hp-mkuri-take-into-account-already-installed-plugin-also-for-exit-value
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
# disable for now, as this changes default hplip behavior
# and change in default scanning application should be decided by a poll first
#%patch215 -p1 -b .simple-scan-as-default
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
%patch216 -p1 -b .make-commafy-correctly-work-with-python-2
%patch217 -p1 -b .mga-remove-duplicate-entry-for-cp1700-in-drv-files
# dlopen libhpmud.so.0 instad of libhpmud.so, in order not to depend on
# devel package (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548379)
# obsoletes hplip-3.9.8-dlopen-libhpmud.patch, newer & extended version
%patch219 -p1 -b .try_libhpmud.so.0
%patch220 -p1 -b .add-lidil-two-cartridge-modes
%patch224 -p1 -b .hplip-syslog-fix-debug-messages-to-error
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
%patch225 -p1 -b .hpfax-bug-function-used-before-importing-log
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
%patch226 -p1 -b .hp-systray-make-menu-title-visible-in-sni-qt-indicator
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
%patch227 -p1 -b .hp-systray-make-menu-appear-in-sni-qt-indicator-with-kde
2013-04-15 09:59:51 +04:00
%patch228 -p1 -b .hpaio-option-duplex
# OpenSUSE patches
%patch301 -p0 -b .fix-uninitialized-variables
2012-08-22 11:04:03 +04:00
# Use filter foomatic-rip instead of foomatic-rip-hplip (fix from Mandriva)
2012-04-11 18:54:50 +04:00
for PPDGZ in ppd/hpijs/*.ppd.gz
do
mv -T "$PPDGZ" "$PPDGZ.old"
2012-08-22 11:04:03 +04:00
zcat "$PPDGZ.old" | sed -e 's/foomatic-rip-hplip/foomatic-rip/' | gzip -c > "$PPDGZ"
2012-04-11 18:54:50 +04:00
rm -f "$PPDGZ.old"
done
2012-02-01 15:16:03 +04:00
# Make all files in the source user-writable
chmod -R u+w .
%build
%serverbuild
2012-08-22 11:04:03 +04:00
#needed by patch204
2012-02-01 15:16:03 +04:00
libtoolize --copy --force
aclocal --force
autoconf -f
2012-08-22 11:04:03 +04:00
#needed by patches 204 and 205
2012-02-01 15:16:03 +04:00
automake -f --foreign
2012-08-22 11:04:03 +04:00
2012-02-01 15:16:03 +04:00
%if !%{sane_backend}
WITHOUT_SANE="--without-sane"
%endif
%configure2_5x $WITHOUT_SANE \
--disable-foomatic-rip-hplip-install \
--enable-scan-build \
--enable-gui-build \
--enable-fax-build \
--enable-pp-build \
--enable-qt4 --disable-qt3 \
--enable-hpcups-install \
--enable-cups-drv-install \
--enable-cups-ppd-install \
2013-04-15 09:59:51 +04:00
--enable-foomatic-drv-install \
2012-02-01 15:16:03 +04:00
--enable-hpijs-install \
--enable-udev-acl-rules \
2013-04-15 09:59:51 +04:00
--disable-policykit \
2012-02-01 15:16:03 +04:00
--with-mimedir=%{_datadir}/cups/mime
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%make
# convert icons to required sizes
2012-08-22 11:04:03 +04:00
#convert data/images/print.png -resize 16x16 %{name}.mini.png
#convert data/images/print.png -resize 32x32 %{name}.png
#convert data/images/print.png -resize 48x48 %{name}.large.png
2012-02-01 15:16:03 +04:00
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_includedir}
mkdir -p %{buildroot}%{_initrddir}
mkdir -p %{buildroot}%{_sysconfdir}/hp
mkdir -p %{buildroot}/var/run/hplip
# Do not use the macro here, use the standard DESTDIR method as it works
# with HPLIP, in contrary to the non-standard Mandriva method
2012-08-22 11:04:03 +04:00
#make test-destdir DESTDIR=%{buildroot}
2012-02-01 15:16:03 +04:00
make install DESTDIR=%{buildroot}
# Install files which the "make install" missed to install
install -m 644 ip/hpip.h %{buildroot}%{_includedir}
install -m 644 ip/xform.h %{buildroot}%{_includedir}
# Move doc in sub-package
mv %{buildroot}%{_docdir}/%{name}-%{version}%{extraversion} %{buildroot}%{_docdir}/%{name}-doc-%{version}%{extraversion}
# Remove static libraries of SANE driver
rm -f %{buildroot}%{_libdir}/sane/libsane-hpaio*.so
rm -f %{buildroot}%{_libdir}/sane/libsane-hpaio*.la
rm -f %{buildroot}%{_sysconfdir}/sane.d/dll.conf
# Remove other unneeded files
rm -f %{buildroot}%{py_platsitedir}/*.la
# install menu icons
2012-08-22 11:04:03 +04:00
#mkdir -p %{buildroot}%{_iconsdir}/locolor/16x16/apps/
#install -m 644 %{name}.png -D %{buildroot}%{_iconsdir}/%{name}.png
#install -m 644 %{name}.mini.png -D %{buildroot}%{_miconsdir}/%{name}.png
#install -m 644 %{name}.large.png -D %{buildroot}%{_liconsdir}/%{name}.png
2012-02-01 15:16:03 +04:00
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
desktop-file-install --vendor='' \
--dir=%{buildroot}%{_datadir}/applications \
--remove-category='Application' \
--remove-category='Utility' \
--add-category='System' \
--add-category='Settings' \
--add-category='Printing' \
2012-08-22 11:04:03 +04:00
--add-category='Qt' \
--add-category='HardwareSettings' \
--add-category='X-MandrivaLinux-CrossDesktop' \
2012-02-01 15:16:03 +04:00
--remove-key='Version' \
2012-08-22 11:04:03 +04:00
%{buildroot}%{_datadir}/applications/hplip.desktop
2012-02-01 15:16:03 +04:00
2012-08-22 11:04:03 +04:00
cat > $RPM_BUILD_ROOT%{_datadir}/applications/%{_vendor}-hp-sendfax.desktop << EOF
2012-02-01 15:16:03 +04:00
[Desktop Entry]
Name=HP Sendfax
Comment=Utility for sending faxes with HP's multi-function devices
Exec=%{_bindir}/hp-sendfax
Icon=%{_datadir}/%{name}/data/images/32x32/fax_machine.png
Terminal=false
Type=Application
Categories=TelephonyTools;Qt;Printing;Utility;X-MandrivaLinux-CrossDesktop;
EOF
2013-04-15 10:06:43 +04:00
# tmpfiles.d for folders on transient media
%{__install} -D -p -m 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/%{name}.conf
# (cg) Correct the udev rules dir
mkdir -p %{buildroot}%{_prefix}/lib
2013-04-15 10:11:26 +04:00
mv %{buildroot}%{_sysconfdir}/udev %{buildroot}/lib/
2013-04-15 10:06:43 +04:00
2012-02-01 15:16:03 +04:00
# switched to udev, no need for hal information
2012-08-22 11:04:03 +04:00
rm -rf %{buildroot}%{_datadir}/hal/fdi
rm -f %{buildroot}%{_libdir}/*.la \
%{buildroot}%{python_sitearch}/*.la \
%{buildroot}%{_libdir}/sane/*.la
2012-02-01 15:16:03 +04:00
# Regenerate hpcups PPDs on upgrade if necessary (bug #579355).
install -p -m755 %{SOURCE1} %{buildroot}%{_bindir}/hpcups-update-ppds
# Fedora pstotiff
rm -f %{buildroot}%{_sysconfdir}/cups/pstotiff.types
rm -f %{buildroot}%{_datadir}/cups/mime/pstotiff.types
rm -f %{buildroot}%{_datadir}/hplip/fax/pstotiff*
rm -f %{buildroot}%{_prefix}/lib/cups/filter/hpcac
# bork?
install -d %{buildroot}%{_sysconfdir}/cups
cp -p %{buildroot}%{_datadir}/cups/mime/pstotiff.convs %{buildroot}%{_sysconfdir}/cups/pstotiff.convs
# set up consolehelper
mkdir -p %{buildroot}%{_sbindir}
mv %{buildroot}%{_bindir}/hp-setup %{buildroot}%{_sbindir}/hp-setup
ln -s consolehelper %{buildroot}%{_bindir}/hp-setup
2013-04-14 18:27:33 +04:00
# console user, ask for root password
mkdir -p %{buildroot}%{_sysconfdir}/security/console.apps
cat > %{buildroot}%{_sysconfdir}/security/console.apps/hp-setup <<EOF
USER=root
PROGRAM=/usr/sbin/hp-setup
FALLBACK=false
SESSION=true
EOF
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
cat > %{buildroot}%{_sysconfdir}/pam.d/hp-setup <<EOF
#%PAM-1.0
auth include config-util
account include config-util
session include config-util
EOF
2012-02-01 15:16:03 +04:00
# Make sure pyc files are generated, otherwise we can get
# difficult to debug problems
pushd %{buildroot}%{_datadir}/%{name}
python -m compileall .
popd
2013-04-15 09:59:51 +04:00
%post
2013-04-15 10:31:07 +04:00
/bin/systemd-tmpfiles --create %{name}.conf
2013-04-15 09:59:51 +04:00
2012-02-01 15:16:03 +04:00
%triggerin -- hplip < 2.7.7
chkconfig --del hplip
# Restart CUPS to make the Fax PPD known to it
if [ -f /etc/init.d/cups ]; then
/sbin/service cups condrestart || :
fi
%post -n hplip-hpijs-ppds
# Restart CUPS to make the printing PPDs known to it
if [ -f /etc/init.d/cups ]; then
/sbin/service cups condrestart || :
fi
%post -n hplip-hpijs
%{_bindir}/hpcups-update-ppds &>/dev/null ||:
%post -n hplip-model-data
/sbin/udevadm trigger --subsystem-match=usb --attr-match=idVendor=03f0
2012-08-22 11:04:03 +04:00
# ensure permissions are ready when installation completes
/sbin/udevadm settle --timeout=15
:
2012-02-01 15:16:03 +04:00
%if %{sane_backend}
%post -n %{sane_hpaio_libname}
2012-08-22 11:04:03 +04:00
2012-02-01 15:16:03 +04:00
# Add HPLIP driver to /etc/sane.d/dll.conf
if ! grep ^hpaio /etc/sane.d/dll.conf >/dev/null 2>/dev/null ; then \
echo hpaio >> /etc/sane.d/dll.conf; \
fi
%endif
%if %{sane_backend}
%preun -n %{sane_hpaio_libname}
# Remove HPLIP driver from /etc/sane.d/dll.conf
if [ "$1" = 0 ]; then \
if grep ^hpaio /etc/sane.d/dll.conf >/dev/null 2>/dev/null ; then \
sed '/hpaio/d' /etc/sane.d/dll.conf > /tmp/$$; \
cp -f /tmp/$$ /etc/sane.d/dll.conf; \
rm -f /tmp/$$; \
fi; \
fi
%endif
# Restart CUPS to make the removal of the Fax PPD known to it
if [ -f /etc/init.d/cups ]; then
/sbin/service cups condrestart || :
fi
%postun -n hplip-hpijs-ppds
# Restart CUPS to make the removal of the printing PPDs known to it
if [ -f /etc/init.d/cups ]; then
/sbin/service cups condrestart || :
fi
%files
#doc COPYING doc/*
%config(noreplace) %{_sysconfdir}/hp
%dir /var/run/hplip/
%{_bindir}/hp-align
2012-08-22 11:04:03 +04:00
%{_bindir}/hp-check-plugin
2012-02-01 15:16:03 +04:00
%{_bindir}/hp-clean
%{_bindir}/hp-colorcal
2012-08-22 11:04:03 +04:00
%_bindir/hp-config_usb_printer
2012-02-01 15:16:03 +04:00
%{_bindir}/hp-devicesettings
2012-08-22 11:04:03 +04:00
%{_bindir}/hp-diagnose_plugin
%_bindir/hp-diagnose_queues
2012-02-01 15:16:03 +04:00
%{_bindir}/hp-fab
%{_bindir}/hp-faxsetup
%{_bindir}/hp-firmware
%{_bindir}/hp-info
%{_bindir}/hp-levels
%{_bindir}/hp-linefeedcal
2012-09-13 04:19:03 +00:00
%{_bindir}/hp-logcapture
2012-02-01 15:16:03 +04:00
%{_bindir}/hp-makecopies
%{_bindir}/hp-makeuri
%{_bindir}/hp-mkuri
%{_bindir}/hp-pkservice
%{_bindir}/hp-plugin
%{_bindir}/hp-pqdiag
%{_bindir}/hp-printsettings
%{_bindir}/hp-probe
%{_bindir}/hp-query
%{_bindir}/hp-scan
%{_bindir}/hp-sendfax
%{_bindir}/hp-setup
%{_sbindir}/hp-setup
%{_bindir}/hp-testpage
%{_bindir}/hp-timedate
2012-08-22 11:04:03 +04:00
%_bindir/hp-uninstall
2012-02-01 15:16:03 +04:00
%{_bindir}/hp-unload
2012-08-22 11:04:03 +04:00
%_bindir/hp-upgrade
2012-02-01 15:16:03 +04:00
%{_bindir}/hp-wificonfig
%exclude %{_datadir}/hplip/data/models
# C libraries for Python
%{_libdir}/python*/*/*.so*
# CUPS backends (0755 permissions, so that CUPS 1.2 runs these backends
# as lp user)
2012-08-22 11:04:03 +04:00
# Note: this must be /usr/lib not %{_libdir}, since that's the
2012-02-01 15:16:03 +04:00
# CUPS serverbin directory.
%attr(0755,root,root) %{_prefix}/lib/cups/backend/hp*
%{_prefix}/lib/cups/filter/hplipjs
%{_prefix}/lib/cups/filter/hpcups
%{_prefix}/lib/cups/filter/hpcupsfax
2012-08-22 11:04:03 +04:00
%{_prefix}/lib/cups/filter/hpps
2012-02-01 15:16:03 +04:00
%{_prefix}/lib/cups/filter/pstotiff
%{_datadir}/cups/mime/pstotiff.convs
%config(noreplace) %{_sysconfdir}/cups/pstotiff.convs
%{_datadir}/ppd/HP/HP-Fax*.ppd*
%{_datadir}/cups/drv/hp/hpcups.drv
# Files
%dir %{_datadir}/hplip
%{_datadir}/hplip/align.py*
2012-08-22 11:04:03 +04:00
%{_datadir}/hplip/check-plugin.py*
2012-02-01 15:16:03 +04:00
%{_datadir}/hplip/clean.py*
%{_datadir}/hplip/colorcal.py*
2012-08-22 11:04:03 +04:00
%_datadir/hplip/config_usb_printer.py*
2012-02-01 15:16:03 +04:00
%{_datadir}/hplip/devicesettings.py*
2012-08-22 11:04:03 +04:00
%{_datadir}/hplip/diagnose_plugin.py*
%_datadir/hplip/diagnose_queues.py*
2012-02-01 15:16:03 +04:00
%{_datadir}/hplip/fab.py*
%{_datadir}/hplip/fax
%{_datadir}/hplip/faxsetup.py*
%{_datadir}/hplip/firmware.py*
%{_datadir}/hplip/hpdio.py*
%{_datadir}/hplip/hpssd*
%{_datadir}/hplip/info.py*
%{_datadir}/hplip/__init__.py*
%{_datadir}/hplip/levels.py*
%{_datadir}/hplip/linefeedcal.py*
2012-09-13 04:19:03 +00:00
%{_datadir}/hplip/logcapture.py*
2012-02-01 15:16:03 +04:00
%{_datadir}/hplip/makecopies.py*
%{_datadir}/hplip/makeuri.py*
%{_datadir}/hplip/pkservice.py*
%{_datadir}/hplip/plugin.py*
%{_datadir}/hplip/pqdiag.py*
%{_datadir}/hplip/printsettings.py*
%{_datadir}/hplip/probe.py*
%{_datadir}/hplip/query.py*
%{_datadir}/hplip/scan.py*
%{_datadir}/hplip/sendfax.py*
%{_datadir}/hplip/setup.py*
%{_datadir}/hplip/testpage.py*
%{_datadir}/hplip/timedate.py*
2012-08-22 11:04:03 +04:00
%_datadir/hplip/uninstall.py*
2012-02-01 15:16:03 +04:00
%{_datadir}/hplip/unload.py*
2012-08-22 11:04:03 +04:00
%_datadir/hplip/upgrade.py*
2012-02-01 15:16:03 +04:00
%{_datadir}/hplip/wificonfig.py*
# Directories
%{_datadir}/hplip/base
%{_datadir}/hplip/copier
%dir %{_datadir}/hplip/data
%{_datadir}/hplip/data/ldl
%{_datadir}/hplip/data/localization
%{_datadir}/hplip/data/models
%{_datadir}/hplip/data/pcl
%{_datadir}/hplip/data/ps
%{_datadir}/hplip/installer
%{_datadir}/hplip/pcard
%{_datadir}/hplip/prnt
%{_datadir}/hplip/scan
2013-04-15 11:14:53 +04:00
#{_datadir}/polkit-1/actions/com.hp.hplip.policy
#{_datadir}/dbus-1/system-services/com.hp.hplip.service
2012-08-22 11:04:03 +04:00
#%{_localstatedir}/lib/hp/hplip.state
2013-04-15 11:14:53 +04:00
#config(noreplace) %{_sysconfdir}/dbus-1/system.d/com.hp.hplip.conf
2012-09-13 04:19:03 +00:00
%{_sysconfdir}/cron.daily/hplip_cron
2013-04-14 18:27:33 +04:00
%{_sysconfdir}/pam.d/*
%{_sysconfdir}/security/console.apps/*
2012-02-01 15:16:03 +04:00
%files doc
%doc %{_docdir}/%{name}-doc-%{version}%{extraversion}
%files -n %{hpip_libname}
%{_libdir}/libhpip*.so.*
%{_libdir}/libhpmud.so.*
%files -n %{hpip_libname}-devel
%{_includedir}/hpip.h
%{_includedir}/xform.h
%{_libdir}/libhpip*.so
%{_libdir}/libhpmud.so
%if %{sane_backend}
%files -n %{sane_hpaio_libname}
%{_libdir}/sane/libsane-hpaio*.so.*
%endif
%files model-data
2013-04-15 10:11:26 +04:00
#{_sysconfdir}/udev/rules.d/*.rules
/lib/udev/rules.d/*.rules
2012-02-01 15:16:03 +04:00
%{_datadir}/hplip/data/models
%files gui
%{_bindir}/hp-check
%{_bindir}/hp-print
%{_bindir}/hp-systray
%{_bindir}/hp-toolbox
%{_datadir}/applications/*.desktop
2012-08-22 11:04:03 +04:00
%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
2012-02-01 15:16:03 +04:00
# Files
%{_datadir}/hplip/check.py*
%{_datadir}/hplip/print.py*
%{_datadir}/hplip/systray.py*
%{_datadir}/hplip/toolbox.py*
# Directories
%{_datadir}/hplip/data/images
%{_datadir}/hplip/ui4
%files hpijs
%{_bindir}/hpijs
# Needed for both printing and fax PPDs. They all need HPIJS, therefore
# the link is here
%dir %{_datadir}/ppd
%dir %{_datadir}/ppd/HP
%{_bindir}/hpcups-update-ppds
%files hpijs-ppds
%{_datadir}/ppd/HP/apollo*.ppd*
%{_datadir}/ppd/HP/hp-*.ppd*