diff --git a/hplip.changes b/hplip.changes index e03342c..8d53eda 100644 --- a/hplip.changes +++ b/hplip.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Fri Feb 27 11:45:02 CET 2015 - jsmeix@suse.de + +- HPLIP's Python module cupsext has a build-time dependancy on the + CUPS version (see https://bugs.launchpad.net/hplip/+bug/1423220). + Therefore it BuildRequires the CUPS version as provided in the + openSUSE/SLE versions. When it was built with CUPS > 1.5 it must + require CUPS > 1.5 during run-time. In contrast when it was built + with CUPS < 1.6 then cupsext is built in a backward compatible + way that works with any CUPS version. + This replaces the "minimal version requirement on cups" from the + entry below dated "Thu Feb 19 12:05:05 UTC 2015" and obsoletes + the "Kill sle11 support" from the previous entry so that HPLIP + should work again for SLE11 SLE12 and recent openSUSE versions + (boo#918387). +- Again BuildRequires sane-backends-devel if suse_version > 1130 + and BuildRequires sane-backends otherwise that was removed via + one of the previous entries to make it again build for SLE11. +- Run udev_rules_update that BuildRequires systemd-rpm-macros + only if suse_version > 1130 to make it again build for SLE11. +- For SLE11 redefine _libexecdir to be "/usr/lib" in any case + because on SLE11 x86_64 it evaluates to "/usr/lib64" which + is wrong in particular for CUPS filters and backends, cf. + https://bugzilla.opensuse.org/show_bug.cgi?id=575544#c2 +- Again using the RPM scriplets as in previous versions with + its various suse_version dependant stuff to make it again + build for SLE11. +- Using '-p /bin/bash' in RPM scriplets to enforce bash + to be fail safe against issue with possible bashisms. + ------------------------------------------------------------------- Thu Feb 19 12:30:19 UTC 2015 - tchvatal@suse.com diff --git a/hplip.spec b/hplip.spec index 322ffc8..245bddf 100644 --- a/hplip.spec +++ b/hplip.spec @@ -1,7 +1,7 @@ # # spec file for package hplip # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -81,8 +81,33 @@ Patch104: do_not_open_mdns_port.diff Patch106: disable_hp-upgrade.patch # PATCH-FIX-SUSE: use proper udev rulesdir which is in usr not in /etc Patch107: hplip-udev-rules-in-usr.patch -BuildRequires: cups >= 1.7 -BuildRequires: cups-devel +# HPLIP's Python module cupsext.so has a build-time dependancy on the CUPS version: +# It needs symbols (like ippFirstAttribute, ippNextAttribute, ippSetOperation etc) +# that are defined only in libcups.so version > 1.5. For backward compatibility +# cupsext.c has a macro (CUPS_VERSION_1_6) which defines those undefined function names +# if CUPS version is <= 1.5. To check the CUPS version the CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR +# macros from cups/cups.h are used which means it depends on the CUPS version during build-time +# whether or not cupsext will work with CUPS <= 1.5 at run-time. +# See https://bugs.launchpad.net/hplip/+bug/1423220 +# and https://bugzilla.opensuse.org/show_bug.cgi?id=918387 +# Therefore it BuildRequires the CUPS version as provided in the openSUSE/SLE versions. +# Up to openSUSE 13.2 and SLE11 CUPS < 1.6 is provided (from CUPS 1.3.9 for SLE11 up to CUPS 1.5.4 for openSUSE 13.2). +# For SLE12 by default CUPS 1.7.5 is provided and alternatively CUPS 1.5.4 is provided in the "legacy" module. +# After openSUSE 13.2 (i.e. for current openSUSE Factory) CUPS 2.0 is provided. +# Up to openSUSE 13.2 and SLE12 it BuildRequires CUPS < 1.6 to ensure it even works on SLE12 with CUPS 1.5.4. +# When it was built with CUPS > 1.5 it must also require CUPS > 1.5 during run-time. +# In contrast when it was built with CUPS < 1.6 there must not be a run-time requirement +# for a CUPS version to ensure it works on SLE12 both with CUPS 1.7.5 and CUPS 1.5.4. +# For suse_version values see https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto +%if 0%{?suse_version} > 1320 +BuildRequires: cups > 1.5 +BuildRequires: cups-devel > 1.5 +Requires: cups > 1.5 +%else +BuildRequires: cups < 1.6 +BuildRequires: cups-devel < 1.6 +Requires: cups +%endif BuildRequires: dbus-1-devel BuildRequires: fdupes BuildRequires: hicolor-icon-theme @@ -104,9 +129,22 @@ BuildRequires: python-openssl BuildRequires: python-qt4 BuildRequires: python-xml BuildRequires: readline-devel +%if 0%{?suse_version} > 1130 BuildRequires: sane-backends-devel +%else +BuildRequires: sane-backends +%endif # For udev macros +%if 0%{?suse_version} > 1130 BuildRequires: systemd-rpm-macros +%else +# For older suse_version (in particular for SLE11) define needed udev macros manually: +%{!?_udevrulesdir: %global _udevrulesdir /usr/lib/udev/rules.d } +%endif +%if 0%{?suse_version} == 1110 +# For SLE11 redefine _libexecdir because on SLE11 _libexecdir is "/usr/lib64": +%global _libexecdir /usr/lib +%endif BuildRequires: update-desktop-files # 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. @@ -585,14 +623,22 @@ install -m 644 %{SOURCE102} %{buildroot}%{_mandir}/man1/ # so that fdupes can only run for specific directories where linking files is safe: %fdupes -s %{buildroot}%{_datadir}/hplip/data/images -%post +%post -p /bin/bash +%if 0%{?suse_version} > 1130 %udev_rules_update +%endif +%if 0%{?suse_version} >= 1140 %desktop_database_post +%endif +%if 0%{?suse_version} > 1130 %icon_theme_cache_post +%else +gtk-update-icon-cache %{_datadir}/icons/hicolor || true +%endif /sbin/ldconfig exit 0 -%triggerin -- sane-backends +%triggerin -p /bin/bash -- sane-backends # As hplip can be used for plain printers it cannot "PreReq sane-backends". # Therefore if sane-backends is installed it may be installed or updated after hplip. # In this case trigger to add the SANE backend "hpaio" to /etc/sane.d/dll.conf if it is not there. @@ -604,9 +650,15 @@ then if ! grep -q 'hpaio' %{_sysconfdir}/sane.d/dll.conf fi exit 0 -%postun +%postun -p /bin/bash +%if 0%{?suse_version} >= 1140 %desktop_database_postun +%endif +%if 0%{?suse_version} > 1130 %icon_theme_cache_postun +%else +gtk-update-icon-cache %{_datadir}/icons/hicolor || true +%endif /sbin/ldconfig # If the package was removed (but not if it was updated) # then remove the hpaio lines in /etc/sane.d/dll.conf. @@ -627,13 +679,21 @@ then if ! ls %{_prefix}/lib*/sane/libsane-hpaio.so* &>/dev/null fi exit 0 -%post hpijs -p /sbin/ldconfig +%post hpijs -p /bin/bash +/sbin/ldconfig +exit 0 -%postun hpijs -p /sbin/ldconfig +%postun hpijs -p /bin/bash +/sbin/ldconfig +exit 0 %files %defattr(-, root, root) %config %{_sysconfdir}/xdg/autostart/hplip-systray.desktop +%if 0%{?suse_version} == 1110 +%dir /usr/lib/udev +%dir /usr/lib/udev/rules.d +%endif %config %{_udevrulesdir}/56-hpmud.rules %{_bindir}/hp-align %{_bindir}/hp-check