From bb433511acb129bcd798b6a2196038f1a452283c7e160d4cebb3fe0ff4339199 Mon Sep 17 00:00:00 2001 From: Johannes Meixner Date: Wed, 28 Apr 2010 10:52:45 +0000 Subject: [PATCH] Accepting request 38988 from home:jsmeix:branches:graphics Copy from home:jsmeix:branches:graphics/sane-backends via accept of submit request 38988 revision 2. Request was accepted with message: Removed HAL stuff (bnc#593946) and removed libsane.so and libsane.la (bnc#592143) OBS-URL: https://build.opensuse.org/request/show/38988 OBS-URL: https://build.opensuse.org/package/show/graphics/sane-backends?expand=0&rev=20 --- sane-backends.changes | 13 +++++++ sane-backends.spec | 89 ++++++++----------------------------------- 2 files changed, 28 insertions(+), 74 deletions(-) diff --git a/sane-backends.changes b/sane-backends.changes index fff593c..89f8f97 100644 --- a/sane-backends.changes +++ b/sane-backends.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Wed Apr 28 11:27:50 CEST 2010 - jsmeix@suse.de + +- HAL is deprecated and does no longer support to grant read/write + device access permissions for scanners to the currently logged + in "desktop" user. Therefore all HAL related stuff was removed + (see Novell/Suse Bugzilla bnc#593946). +- Removed /usr/lib[64]/libsane.so and /usr/lib[64]/libsane.la + which are not needed by scanning frontends which are provided + by openSUSE because /usr/bin/scanimage, /usr/bin/xsane, + and /usr/bin/skanlite link with /usr/libi[64]/libsane.so.1 + (see Novell/Suse Bugzilla bnc#592143). + ------------------------------------------------------------------- Mon Feb 1 12:29:15 UTC 2010 - jengelh@medozas.de diff --git a/sane-backends.spec b/sane-backends.spec index ec3896e..9102f76 100644 --- a/sane-backends.spec +++ b/sane-backends.spec @@ -396,11 +396,17 @@ make install DESTDIR=%{buildroot} # The dll meta-backend needs neither libsane-.so nor libsane-.la. # RPMLINT complains about libsane-.so with "devel-file-in-non-devel-package". # Therefore the libsane-.so and libsane-.la files are simply removed. -# Note that those files for the dll meta-backend /usr/lib/libsane.so and /usr/lib/libsane.la -# are not removed because it is unknown how whatever third-party scanning frontend -# may like to link with SANE (i.e. with the dll meta-backend). rm %{buildroot}%{_libdir}/sane/libsane-*.so rm %{buildroot}%{_libdir}/sane/libsane-*.la +# Because of https://bugzilla.novell.com/show_bug.cgi?id=592143 for openSUSE 11.3 +# even those files for the dll meta-backend /usr/lib/libsane.so and /usr/lib/libsane.la +# are removed regardless that it is unknown how whatever third-party scanning frontend +# may like to link with SANE (i.e. with the dll meta-backend). +# At least the frontends which are provided by openSUSE /usr/bin/scanimage, /usr/bin/xsane, +# and /usr/bin/skanlite link with /usr/lib/libsane.so.1 so that those frontends +# neither need /usr/lib/libsane.so nor /usr/lib/libsane.la: +rm %{buildroot}%{_libdir}/libsane.so +rm %{buildroot}%{_libdir}/libsane.la # Disable all backends in /etc/sane.d/dll.conf to avoid problems when backends are active by default: perl -pi -e 's/^([^#].*)$/#$1/' %{buildroot}%{_sysconfdir}/sane.d/dll.conf # Allow all users to write into /var/lock/sane/ so that the backends work for normal users @@ -465,7 +471,7 @@ sed -i -e '/:model "SnapScan 1236u"/,/:firmware "required"/s/required//' %{build # to have a usable "scanner autoconfiguration" for the user. # What is also needed are appropriate USB device file permissions # so that the user's scanning software can access the device. -# But this is already in place via the HAL 70-scanner.fdi file +# But this is already in place via the the udev libsane.rules file # which contains a superset of USB scanner IDs (all known USB scanner IDs) # compared to the USB scanner IDs in 56-sane-backends-autoconfig.rules, # see create_sane-backends-autoconfig.rules for which USB scanners @@ -476,8 +482,7 @@ sed -i -e '/:model "SnapScan 1236u"/,/:firmware "required"/s/required//' %{build # (the usual delimiter '/' cannot be used because buildroot contains it too): sed -i -e 's|/usr/share/sane/descriptions|%{buildroot}/usr/share/sane/descriptions|' create_scanner_database # Create the scanner database and store it because it is also needed later -# to disable "unsupported" model entries both in the udev rules file libsane.rules -# and in the HAL fdi file 70-scanner.fdi. +# to disable "unsupported" model entries in the udev libsane.rules file. # The file name "scanner.database" is used hardcoded in create_sane-backends-autoconfig.rules. ./create_scanner_database >scanner.database # Run create_sane-backends-autoconfig.rules which reads scanner.database @@ -528,9 +533,7 @@ sed -i -e 's/^ENV{DEVTYPE}/# ENV{DEVTYPE}/' tools/udev/libsane.rules # supported by SANE which would even cause conflicts if such a # device is supported by whatever other software, # see https://bugzilla.novell.com/show_bug.cgi?id=439193 -# Extract a list of USB IDs for "unsupported" scanners -# and store it because it is also needed later to -# disable "unsupported" model entries in the HAL fdi file 70-scanner.fdi +# Extract a list of USB IDs for "unsupported" scanners and store them in unsupportedUSBIDs. # It can happen that there is a status "unsupported" entry for a backend # for a model which is actually supported by another backend, for example # the "Epson Perfection 1670" is "unsupported" by the "epkowa" backend @@ -545,68 +548,11 @@ done for m in $( sed -e 's/0x/./ig' -e 's/:/.,.ATTR.idProduct.==/' unsupportedUSBIDs ) do sed -i -e "/^ATTR.idVendor.==$m/Is/^ATTR/# ATTR/" tools/udev/libsane.rules done -# newer udev versions complain about NAME="%k" usage, saying it's superfluous +# Newer udev versions complain about NAME="%k" usage with warning messages like +# 'udevd[1234]: NAME="%k" is superfluous and breaks kernel supplied names...' sed -i -e 's/NAME="%k", //' tools/udev/libsane.rules # Install the udev rules file: install -m644 tools/udev/libsane.rules %{buildroot}%{_sysconfdir}/udev/rules.d/55-libsane.rules -# Regarding HAL: -# Modify the generated tools/hal/libsane.fdi file as follows: -# Remove 'key="scanner.access_method"' lines. -sed -i -e '/key="scanner.access_method"/d' tools/hal/libsane.fdi -# There is a small number of USB scanners which are not talked to via libusb. -# They talk an unusual protocol which is a derivative of usb storage. -# User space should treat them as SCSI scanners. -# Furthermore, granting access via libusb here could oops the kernel. -# Therefore USB user access for those scanners must be disabled. -# See the Novell/Suse Bugzilla bug -# https://bugzilla.novell.com/show_bug.cgi?id=341565 -# This is done by replacing the append of "scanner" to info.capabilities by "SCSIviaUSBscanner". -# This way the YaST scanner module can inspect 70-scanner.fdi to learn which models -# it must not add to 80-scanner.fdi (i.e. the explicitely marked as "SCSIviaUSBscanner" models). -# Currently there are no hexadecimal numbers in libsane.fdi with uppercase letters -# nevertheless to be safe the GNU sed extension to ignore case for pattern matching is used: -sed -i -e '/usb.vendor_id.*0x04ce/I,/append key/{/usb.product_id.*0x0300/I,/append key/s/scanner/SCSIviaUSBscanner/g}' tools/hal/libsane.fdi -for ID in 0094 0099 009a 00a0 00a3 80a3 80ac 00b6 -do sed -i -e "/usb.vendor_id.*0x05da/I,/append key/{/usb.product_id.*0x$ID/I,/append key/s/scanner/SCSIviaUSBscanner/g}" tools/hal/libsane.fdi -done -# Disable entries for USB scanners which are "unsupported" -# but keep the entries for models for which the support status -# is "complete", "good", "basic", "minimal", "untested" -# because the HAL fdi file is used to grant normal user access -# for scanner devices which is needed for any scanner -# (regardless to what extent it is actually supported). -# The only exception are unsupported models -# because it seems to be wrong to have "known but unsupported" devices -# listed in the HAL fdi file because it seems not to make sense -# to grant normal user access for devices which are not -# supported by SANE which would even cause conflicts if such a -# device is supported by whatever other software, -# see https://bugzilla.novell.com/show_bug.cgi?id=444158 -# Currently there are no hexadecimal numbers in libsane.fdi with uppercase letters -# nevertheless to be safe the GNU sed extension to ignore case for pattern matching is used: -for ID in $( cat unsupportedUSBIDs ) -do V="$( echo $ID | cut -d : -s -f 1 )" - P="$( echo $ID | cut -d : -s -f 2 )" - sed -i -e "/usb.vendor_id.*$V/I,/info.capabilities/{/usb.product_id.*$P/I,/info.capabilities/{s//append> -->/}}" tools/hal/libsane.fdi -done -%if 0%{?suse_version} < 1110 -# for hal-resmgr -# Replace 'key="info.bus" string="usb"' by 'key="info.subsystem" string="usb_device"', -# and replace 'key="usb.vendor_id"' by 'key="usb_device.vendor_id"', -# and replace 'key="usb.product_id"' by 'key="usb_device.product_id"', -# see the Novell/Suse Bugzilla bug -# https://bugzilla.novell.com/show_bug.cgi?id=250659 -sed -i -e 's/key="info.bus" string="usb"/key="info.subsystem" string="usb_device"/' tools/hal/libsane.fdi -sed -i -e 's/key="usb.vendor_id"/key="usb_device.vendor_id"/' tools/hal/libsane.fdi -sed -i -e 's/key="usb.product_id"/key="usb_device.product_id"/' tools/hal/libsane.fdi -%else -# for hal-acl-tool -# https://bugzilla.novell.com/show_bug.cgi?id=438867 -sed -i -e 's/key="info.bus" string="usb"/key="info.subsystem" string="usb"/' tools/hal/libsane.fdi -%endif -# Install the HAL fdi file: -install -d %{buildroot}%{_datadir}/hal/fdi/information/20thirdparty -install -m644 tools/hal/libsane.fdi %{buildroot}%{_datadir}/hal/fdi/information/20thirdparty/70-scanner.fdi # xinetd stuff: install -d -m755 %{buildroot}%{_sysconfdir}/xinetd.d/ install -m644 %{SOURCE101} %{buildroot}%{_sysconfdir}/xinetd.d/ @@ -617,7 +563,7 @@ install -m644 %{SOURCE102} %{buildroot}%{_sysconfdir}/slp.reg.d %post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%postun -p /sbin/ldconfig %files -f sane-backends.lang %defattr(-,root,root) @@ -628,11 +574,6 @@ install -m644 %{SOURCE102} %{buildroot}%{_sysconfdir}/slp.reg.d %dir %{_sysconfdir}/udev %dir %{_sysconfdir}/udev/rules.d %{_sysconfdir}/udev/rules.d/55-libsane.rules -%dir %{_datadir}/hal -%dir %{_datadir}/hal/fdi -%dir %{_datadir}/hal/fdi/information -%dir %{_datadir}/hal/fdi/information/20thirdparty -%{_datadir}/hal/fdi/information/20thirdparty/70-scanner.fdi %{_sbindir}/saned %{_bindir}/scanimage %{_bindir}/sane-config