Hello community, here is the log from the commit of package gnome-volume-manager checked in at Thu Apr 6 00:30:16 CEST 2006. -------- --- GNOME/gnome-volume-manager/gnome-volume-manager.changes 2006-04-04 20:07:15.000000000 +0200 +++ gnome-volume-manager/gnome-volume-manager.changes 2006-04-05 17:13:39.000000000 +0200 @@ -1,0 +2,8 @@ +Wed Apr 5 17:11:53 CEST 2006 - fejj@suse.de + +- Updated add-unknown-printer to work around even more CUPS usb + backend URI scheme crack (like not including the vendor name + in the URI and/or using a string other than the product string + in the product component of the URI) + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-volume-manager.spec ++++++ --- /var/tmp/diff_new_pack.2jIIju/_old 2006-04-06 00:29:29.000000000 +0200 +++ /var/tmp/diff_new_pack.2jIIju/_new 2006-04-06 00:29:29.000000000 +0200 @@ -15,7 +15,7 @@ %define prefix /opt/gnome %define sysconfdir /etc%{prefix} Version: 1.5.15 -Release: 11 +Release: 13 URL: http://www.gnome.org/ Group: System/GUI/GNOME License: GPL @@ -109,6 +109,11 @@ /opt/gnome/share/gnome-volume-manager %changelog -n gnome-volume-manager +* Wed Apr 05 2006 - fejj@suse.de +- Updated add-unknown-printer to work around even more CUPS usb + backend URI scheme crack (like not including the vendor name + in the URI and/or using a string other than the product string + in the product component of the URI) * Tue Apr 04 2006 - fejj@suse.de - Added add-unknown-printer script to the build and made the default printer handler in the schemas. This script tries its best to ++++++ add-unknown-printer ++++++ --- GNOME/gnome-volume-manager/add-unknown-printer 2006-04-04 19:56:53.000000000 +0200 +++ gnome-volume-manager/add-unknown-printer 2006-04-05 22:44:49.000000000 +0200 @@ -8,6 +8,12 @@ udi="$1" parent_udi=`hal-get-property --udi $udi --key info.parent` +vendor=`hal-get-property --udi $udi --key printer.vendor | sed -e "s/ /%20/g"` +product=`hal-get-property --udi $udi --key printer.product | sed -e "s/ /%20/g"` +description=`hal-get-property --udi $udi --key printer.description | sed -e "s/ /%20/g"` +serial=`hal-get-property --udi $parent_udi --key usb.serial` +device=`hal-get-property --udi $udi --key printer.device` + for linebuf in `lpstat -v` do uri=`echo $linebuf | sed -e "s/device for printer: //"` @@ -18,24 +24,52 @@ fi elif [ "$driver" = "usb" ]; then # First check to see if the usb uri matches the new format (w/o the serial #) - vendor=`hal-get-property --udi $udi --key printer.vendor | sed -e "s/ /%20/g"` - product=`hal-get-property --udi $udi --key printer.product | sed -e "s/ /%20/g"` usb="usb://$vendor/$product" if [ "$uri" = "$usb" ]; then exit 0 fi - # FIXME: need to check vendor aliases... yay :\ + # Sometimes the usb backend uses the printer description instead of the product string. + usb="usb://$vendor/$description" + if [ "$uri" = "$usb" ]; then + exit 0 + fi # Now try with the serial # - serial=`hal-get-property --udi $parent_udi --key usb.serial` usb="usb://$vendor/$product?serial=$serial" if [ "$uri" = "$usb" ]; then exit 0 fi - # OK, apparently it didn't match... now try the old formats - device=`hal-get-property --udi $udi --key printer.device` + usb="usb://$vendor/$description?serial=$serial" + if [ "$uri" = "$usb" ]; then + exit 0 + fi + + # FIXME: we need to check for vendor aliases as well... + + # Sometimes the usb backend doesn't include the vendor, yay for consistancy. + usb="usb://$product" + if [ "$uri" = "$usb" ]; then + exit 0 + fi + + usb="usb://$description" + if [ "$uri" = "$usb" ]; then + exit 0 + fi + + usb="usb://$product?serial=$serial" + if [ "$uri" = "$usb" ]; then + exit 0 + fi + + usb="usb://$description?serial=$serial" + if [ "$uri" = "$usb" ]; then + exit 0 + fi + + # OK, apparently it didn't match any of the new format variants... now try the old formats # usb:/dev/usb/lp0 usb="usb:$device" @@ -65,4 +99,4 @@ done # No matches found for passed printer udi -gnomesu -- /sbin/yast2 printer +gnomesu -- gnome-cups-add ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...