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
This commit is contained in:
Johannes Meixner 2010-04-28 10:52:45 +00:00 committed by Git OBS Bridge
parent a93907f058
commit bb433511ac
2 changed files with 28 additions and 74 deletions

View File

@ -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

View File

@ -396,11 +396,17 @@ make install DESTDIR=%{buildroot}
# The dll meta-backend needs neither libsane-<driver>.so nor libsane-<driver>.la.
# RPMLINT complains about libsane-<driver>.so with "devel-file-in-non-devel-package".
# Therefore the libsane-<driver>.so and libsane-<driver>.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/<!-- <append/;s/append>/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