diff --git a/hplip.changes b/hplip.changes index 88ef440..f987344 100644 --- a/hplip.changes +++ b/hplip.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Aug 27 10:48:46 UTC 2019 - Martin Wilck + +- Moved hp-scan and hp-uiscan to a separate package "hp-scan". + These tools pull in PIL and python3-scikit-image, which causes + a rather big dependency list, which is only available in openSUSE. + This allows us also to get rid of the non-functional "hp-scan" tool + in SLE. +- Fixed --with-htmldir so that documentation is packaged +- Improved package descriptions and summaries + * Clarified the relationship of hplip-hpijs, hplip-sane, and hplip + * Shortened the descriptions + * Removed reference to HTML documention in package description +- Added -devel dependencies as required by post-build-checks +- Minor spec file cleanup (macro usage) +- Fixed build failures on non-standard architectures by adding BuildIgnore + These failures are actually caused by some ports catching up + slowly with package updates. But our BuildIgnores are helpful + nonetheless, making the build environment leaner. + ------------------------------------------------------------------- Mon Aug 12 12:53:35 UTC 2019 - Johannes Weberhofer diff --git a/hplip.spec b/hplip.spec index 4221b39..561e987 100644 --- a/hplip.spec +++ b/hplip.spec @@ -16,6 +16,8 @@ # +# python-rpm-macros doesn't work for hplip! +# we don't build both py2 and py3, just one %if 0%{?suse_version} >= 1500 %define pyversion 3 %define pymod() python3-%{**} @@ -101,7 +103,6 @@ Patch303: photocard-fix-import-error-for-pcardext.patch Patch400: hplip-remove-imageprocessor.diff # Let a function return NULL instead of nothing Patch401: hplip-orblite-return-null.diff -# BuildRequires: python-rpm-macros # All printer driver packages should have "BuildRequires: python-cups" # because python-cups installs special rpm macros that adds Provides tags # for the printer drivers supported by the package, @@ -169,11 +170,22 @@ Obsoletes: hplip17 # Obsolete the hplip3 copy that was introduced for older SLED11-GA HP preloads: Provides: hplip3 = 3.9.5 Obsoletes: hplip3 < 3.9.5 +# Break this dependency chain that has caused build breakage +# python3-qt5-devel -> libqt5-qttools-devel -> libqt5-qttools-doc -> clang8 +#!BuildIgnore: libqt5-qttools-devel +#!BuildIgnore: libclang8 +#!BuildIgnore: clang8 +# Break this dependency chain that has caused build breakage +# python3-qt5-devel -> libqt5-qtwebengine-devel -> libavcodec58 -> libdav1d.so.1 +#!BuildIgnore: libqt5-qtwebengine-devel +#!BuildIgnore: libqt5-qtwebengine %if %use_qt5 BuildRequires: %{pymod qt5-devel} +%global ui_dir ui5 %else BuildRequires: %{pymod qt4} BuildRequires: libqt4-devel +%global ui_dir ui4 %endif # Since version 2.8.4 all interprocess communication uses dbus. # Therefore python-dbus version 0.80 or greater is required (which pulls in dbus base stuff). @@ -185,10 +197,6 @@ Requires: dbus-1-python3 >= 0.80 %else Requires: dbus-1-python >= 0.80 %endif -# SLE does not provide python-pillow (PIL) (bsc#1131613) -%if 0%{?is_opensuse} -Requires: %{pymod Pillow} -%endif %if %use_qt5 Requires: %{pymod qt5} %else @@ -241,39 +249,16 @@ BuildRequires: sane-backends %description The Hewlett-Packard Linux Imaging and Printing project (HPLIP) provides a unified single and multifunction connectivity solution for HP -printers and scanners (in particular, HP all-in-one devices). +printers, scanners, and all-in-one devices. -HPLIP provides unified connectivity for printing, scanning, sending -faxes, photo card access, and device management and is designed to work -with CUPS. - -It includes the Ghostscript printer driver HPIJS for HP printers and a -special "hp" CUPS back-end that provides bidirectional communication -with the device (required for HP printer device management). - -It also includes the SANE scanner driver "hpaio" for HP all-in-one -devices. Basic PC send fax functionality is supported on a number of -devices. - -The special "hpfax" CUPS back-end is required to send faxes. Direct -uploading (i.e. without print and scan) of received faxes from the -device to the PC is not supported. - -The "hp-toolbox" program is provided for device management. - -The "hp-sendfax" program must be used to send faxes. - -The "hp-setup" program can be used to set up HP all-in-one devices. - -The HPLIP project is open source software and uses GPL-compatible -licenses. For more information, see: - -http://hplipopensource.com - -%{_docdir}/hplip/index.html +This package contains command line and UI front-ends for HPLIP, and tools +for extra functionality such as status and supply information. It is +not required for basic printing and scanning with HP hardware, except +for those devices that need the proprietary hplip plugin, see +https://developers.hp.com/hp-linux-imaging-and-printing/binary_plugin.html %package hpijs -Summary: Only plain printing with HPLIP printer drivers +Summary: Printer drivers for HP printers and all-in-one devices # On a minimalist system only hplip-hpijs may be installed # or on a minimalist package repository (e.g. on the openSUSE CDs) # only hplip-hpijs may be available (even when a usual system is installed). @@ -324,36 +309,19 @@ Obsoletes: hplip3-hpijs < 3.9.5 Obsoletes: hplip-hpcups %description hpijs -HPIJS is HPLIP's Ghostscript printer driver for HP printers. +This package contains the backend drivers and PPDs for printing +with HP printers using CUPS. + HPCUPS is HPLIP's native CUPS printer driver for HP printers. +HPIJS (deprecated) is HPLIP's Ghostscript printer driver for +HP printers, and only used for some Fax devices nowadays. -This sub-package includes only what is needed for plain printing -with the printer drivers in HPLIP for standard HP printers. - -It does neither provide device status information, -nor support for scanning, nor support for faxing, -nor support for memory card (mass storage) access, -nor support for non-standard devices e.g. no support -for devices which require an additional plugin from HP. - -This sub-package includes in particular: - -The hpijs binary and the libraries libhpip and libhpmud -which are needed to run it. - -The HPCUPS driver (%{_prefix}/lib[64]/cups/filter/hpcups). - -The CUPS backend "hp". - -All HPLIP PPD files (also for HP PostScript printers). - -For the full-featured HPLIP printing and scanning solution, -the main-package package hplip must be installed. - -For full documentation and license see the main-package hplip. +Install the "hplip" package if you need the proprietary HP plugin +required by some devices, or additional functionality besides plain +printing. %package sane -Summary: Only plain scanning with HPLIP scan drivers +Summary: SANE backends for HP scanners and all-in-one devices # Require the exact matching version-release of the hpijs sub-package to make sure # to have the exact matching version of libhpip and libhpmud installed. # A wrong library version may let libsane-hpaio crash (e.g. segfault) @@ -369,8 +337,26 @@ Enhances: sane-backends Supplements: (%{name}-hpijs and sane-backends) %description sane -This sub-package includes only what is needed for plain scanning -with the scan drivers in HPLIP for standard HP all-in-one printers. +This package includes the backend driver for scanning with HP scanners +and all-in-one devices using SANE tools like xsane or scanimage. + +%package scan +Summary: HPLIP scanning frontends hp-scan and hp-uiscan +# SLE does not provide python-pillow (PIL) (bsc#1131613) +Group: Hardware/Scanner +%if 0%{?is_opensuse} +Requires: %{pymod Pillow} +Requires: hplip +# hp-scan et al. import skimage from the scikit-image package. +# It is pretty heavy-weight and pulls in various other packages. +Requires: %{pymod scikit-image} +Enhances: hplip +%endif + +%description scan +This package provides the "hp-scan" and "hp-uiscan" frontend utilities. These +utilities are alternatives to the SANE frontends "xsane" and "scanimage". They +expose some advanced features of certain HP scanner models. %package devel Summary: Development files for hplip @@ -381,6 +367,11 @@ Requires: %{name}-hpijs = %{version}-%{release} # Require the exact matching version-release of the sane sub-package to make sure # to have the exact matching version of libsane-hpaio installed: Requires: %{name}-sane = %{version}-%{release} +Requires: cups-devel +Requires: dbus-1-devel +Requires: libopenssl-devel +Requires: libusb-1_0-devel +Requires: net-snmp-devel %description devel This sub-package is only required by developers. @@ -479,14 +470,33 @@ export CXXFLAGS="%{optflags} -fno-strict-aliasing -Wno-error=return-type" --with-drvdir=%{_libexecdir}/cups/driver \ --with-mimedir=%{_sysconfdir}/cups \ --with-docdir=%{_defaultdocdir}/%{name} \ - --with-htmldir==%{_defaultdocdir}/%{name} \ + --with-htmldir=%{_defaultdocdir}/%{name} \ CFLAGS='%{optflags} -Wno-error=return-type' \ PYTHON=%{pyexe} %make_build sed -i 's|ppd/hpcups/\*.ppd.gz ||g' Makefile %install -make DESTDIR=%{buildroot} install +%make_install + +# SLE does not provide python-pillow (PIL) (bsc#1131613) and thus has no hp-scan +# and related library code. +# We can't use --disable-scan-build, as that would disable the SANE +# backend, too. +# On openSUSE, these files go into the hplip-scan package (see below). +# Remove these before running pyX_compile +%if !0%{?is_opensuse} +rm -f %{buildroot}%{_datadir}/hplip/scan.py \ + %{buildroot}%{_datadir}/hplip/uiscan.py \ + %{buildroot}%{_datadir}/hplip/base/imageprocessing.py \ + %{buildroot}%{_datadir}/hplip/%{ui_dir}/scandialog.py \ + %{buildroot}%{_bindir}/hp-scan \ + %{buildroot}%{_bindir}/hp-uiscan \ + %{buildroot}%{_datadir}/applications/hp-uiscan.desktop \ + %{buildroot}%{_libdir}/python%{pyver}/site-packages/scanext.* +rm -rf %{buildroot}%{_datadir}/hplip/scan +%endif + # Make and install Python compiled bytecode files # (.pyc compiled python and .pyo optimized compiled python) # because normal users do not have write permissions @@ -647,7 +657,10 @@ set -x popd # Replace the invalid Desktop categories %suse_update_desktop_file -r %{buildroot}%{_datadir}/applications/hplip.desktop System HardwareSettings +%if 0%{?is_opensuse} %suse_update_desktop_file -r %{buildroot}%{_datadir}/applications/hp-uiscan.desktop System HardwareSettings +%endif + # Let suse_update_desktop_file add X-SuSE-translate key to /etc/xdg/autostart/hplip-systray.desktop # so that we can update its translations with translation-only packages. %suse_update_desktop_file -i %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop @@ -656,17 +669,6 @@ popd install -d %{buildroot}%{_mandir}/man1 install -m 644 %{SOURCE102} %{buildroot}%{_mandir}/man1/ -# SLE does not provide python-pillow (PIL) (bsc#1131613) -%if !0%{?is_opensuse} -rm -f %{buildroot}%{_datadir}/hplip/scan.py %{buildroot}%{_bindir}/hp-scan -cat >%{buildroot}%{_bindir}/hp-scan <&2 -exit 1 -EOF -chmod a+x %{buildroot}%{_bindir}/hp-scan -%endif - # Run fdupes: # The RPM macro fdupes runs /usr/bin/fdupes that links files with identical content. # Never run fdupes carelessly over the whole buildroot directory @@ -769,14 +771,12 @@ exit 0 %{_bindir}/hp-printsettings %{_bindir}/hp-probe %{_bindir}/hp-query -%{_bindir}/hp-scan %{_bindir}/hp-sendfax %{_bindir}/hp-setup %{_bindir}/hp-systray %{_bindir}/hp-testpage %{_bindir}/hp-timedate %{_bindir}/hp-toolbox -%{_bindir}/hp-uiscan %{_bindir}/hp-uninstall %{_bindir}/hp-unload %{_bindir}/hp-upgrade @@ -784,7 +784,6 @@ exit 0 %{_libdir}/python%{pyver}/site-packages/cupsext.* %{_libdir}/python%{pyver}/site-packages/hpmudext.* %{_libdir}/python%{pyver}/site-packages/pcardext.* -%{_libdir}/python%{pyver}/site-packages/scanext.* %dir %{_libexecdir}/cups %dir %{_libexecdir}/cups/backend %{_libexecdir}/cups/backend/hpfax @@ -797,9 +796,41 @@ exit 0 %{_datadir}/cups/model/manufacturer-PPDs/%{name}-plugin/ %doc %{_defaultdocdir}/%{name}/ %{_datadir}/applications/%{name}.desktop -%{_datadir}/applications/hp-uiscan.desktop %{_datadir}/hplip/ %exclude %{_datadir}/hplip/data/models/models.dat +%exclude %{_datadir}/hplip/base/imageprocessing.py* +%exclude %{_datadir}/hplip/%{ui_dir}/scandialog.py* +%exclude %{_datadir}/hplip/scan +%exclude %{_datadir}/hplip/scan.py* +%exclude %{_datadir}/hplip/uiscan.py* +%if %{pyversion} != 2 +%exclude %{_datadir}/hplip/__pycache__/uiscan.* +%exclude %{_datadir}/hplip/__pycache__/scan.* +%exclude %{_datadir}/hplip/base/__pycache__/imageprocessing.* +%exclude %{_datadir}/hplip/%{ui_dir}/__pycache__/scandialog.* +%endif + +# The scanning utils depend on PIL and python3-scikit-image, +# which are not available in SLE +%if 0%{?is_opensuse} +%files scan +%defattr(-, root, root) +%{_datadir}/applications/hp-uiscan.desktop +%{_libdir}/python%{pyver}/site-packages/scanext.* +%{_bindir}/hp-scan +%{_bindir}/hp-uiscan +%{_datadir}/hplip/scan +%{_datadir}/hplip/scan.py* +%{_datadir}/hplip/uiscan.py* +%{_datadir}/hplip/base/imageprocessing.py* +%{_datadir}/hplip/%{ui_dir}/scandialog.py* +%if %{pyversion} != 2 +%{_datadir}/hplip/__pycache__/uiscan.* +%{_datadir}/hplip/__pycache__/scan.* +%{_datadir}/hplip/base/__pycache__/imageprocessing.* +%{_datadir}/hplip/%{ui_dir}/__pycache__/scandialog.* +%endif +%endif %files hpijs %defattr(-, root, root)