Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 314937 Details for
Bug 420623
net-print/foo2zjs-99999999 fails emerge with permission denied, access attempt outside the sandbox
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
hplj1000 shell script from the work directory
hplj1000 (text/plain), 7.52 KB, created by
Branko
on 2012-06-11 03:56:04 UTC
(
hide
)
Description:
hplj1000 shell script from the work directory
Filename:
MIME Type:
Creator:
Branko
Created:
2012-06-11 03:56:04 UTC
Size:
7.52 KB
patch
obsolete
>#!/bin/sh > ># hplj1000: ># hplj1005: ># hplj1018: ># hplj1020: ># hpljP1005: ># hpljP1006: ># hpljP1007: ># hpljP1008: ># hpljP1505: ># ># Hotplug script for HP *1??? USB laser printers. The model number ># that this script deals with is determined from the script name. ># ># Used to download firmware automatically into the printer when it ># is powered up or plugged into the USB port. ># ># Also, run this script once with the magic argument "install-usermap" ># to create the proper entry in the /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/hotplug/usb.usermap file. ># ># The inspiration fo this script is from: ># Oscar Santacreu. Alicante-Spain (2002) ># Mike Morgan (2004) ># > ># udev calls us twice on FC4! Just want /dev/usb/lp<N> >case "$DEVNAME" in >/dev/usb/usb*) exit;; >esac > >PROGNAME="$0" > ># ># Set $DEV to, e.g. /dev/usb/lp0, to force the device you want ># Else, leave it null to automatically detect the device ># >DEV=/dev/usb/lp0 >DEV="" > ># ># Path to the USB CUPS backend. We use this backend to upload the firmware ># into the printer when we are on a CUPS/libusb-based system. ># >USB_BACKEND=/usr/lib/cups/backend/usb > ># ># Directory to find downloadable HP firmware files sihpMMMM.dl ># >FWDIR=/usr/share/foo2zjs/firmware > ># ># Program used to determine USB printer id information ># ># NOTE: /usr/bin is NOT mounted at this point ># ># e.g. /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/rc.sysinit: ># /sbin/start_udev ># [snip] ># # Mount all other filesystems (except for NFS and /proc, which is already ># >PRINTERID=/bin/usb_printerid > ># ># Figure out how to log our messages ># >if [ -t 1 ]; then > # Running from a tty... > log() { > echo "$PROGNAME: foo2zjs: $@" > } >elif [ -x /usr/bin/logger ]; then > # Have logger... > log() { > logger -t "$PROGNAME" -- "foo2zjs: $@" > } >else > # No logger... > log() { > echo "$PROGNAME: foo2zjs: $@" >> /var/log/messages > } >fi > ># ># Figure out the model number from the name of this script ># >case "$0" in >*P1005) > MODEL=P1005; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x3d17 #Model > FWDIR=/usr/share/foo2xqx/firmware > ;; >*P1006) > MODEL=P1006; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x3e17 #Model > FWDIR=/usr/share/foo2xqx/firmware > ;; >*P1007) > MODEL=P1007; FWMODEL=P1005 # Alias > USB1=0x03f0 #Vendor > USB2=0x4817 #Model > FWDIR=/usr/share/foo2xqx/firmware > ;; >*P1008) > MODEL=P1008; FWMODEL=P1006 # Alias > USB1=0x03f0 #Vendor > USB2=0x4917 #Model > FWDIR=/usr/share/foo2xqx/firmware > ;; >*P1505) > MODEL=P1505; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x3f17 #Model > FWDIR=/usr/share/foo2xqx/firmware > ;; >*P1505n) > MODEL=P1505n; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x4017 #Model > FWDIR=/usr/share/foo2xqx/firmware > ;; >*1000) > MODEL=1000; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x0517 #Model > ;; >*1005) > MODEL=1005; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x1317 #Model > ;; >*1018) > MODEL=1018; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x4117 #Model > ;; >*1020) > MODEL=1020; FWMODEL=$MODEL > USB1=0x03f0 #Vendor > USB2=0x2b17 #Model > ;; >*) > log "Only HP LaserJet 100[05],1018,1020,P100[5678],P1505 are supported" > exit > ;; >esac > ># ># Remove HPLIP proprietary rules! ># >model=` echo "$MODEL" | tr 'A-Z' 'a-z' ` >rm -f /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/udev/rules.d/*hpmud*laserjet_${model}* >rm -f /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/udev/rules.d/*hpmud_support.rules >rm -f /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/udev/rules.d/*hpmud_plugin.rules >rm -f /lib/udev/rules.d/*hpmud_support.rules >rm -f /lib/udev/rules.d/*hpmud_plugin.rules > ># ># The special command line argument "install-usermap" will install ># the proper entry into the /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/hotplug/usb.usermap file ># >case "$1" in >install-usermap) > if [ "$USB2" != "" ]; then > if [ -w /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/hotplug/usb.usermap ]; then > USERMAP=/home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/hotplug/usb.usermap > elif [ -d /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/hotplug/usb/ ]; then > USERMAP=/home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/hotplug/usb/foo2zjs.usermap > if [ ! -s $USERMAP ]; then > echo > $USERMAP > fi > else > log "No /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/hotplug usermap!" > exit > fi > chmod 664 $USERMAP > ex - $USERMAP <<-EOF > g/^hplj$MODEL/d > \$a > hplj$MODEL 0x0003 $USB1 $USB2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000 > . > w > q > EOF > else > log "I don't know the USB info for this model yet. Please run" > log "usb_printerid on the usb device and send the output to:" > log "rick.richardson@comcast.net" > fi > exit 0 > ;; >install-usblp) > for f in /home/gentoo/tmpdir/portage/net-print/foo2zjs-99999999/image//etc/modprobe.d/blacklist*; do > if grep -s -q usblp $f; then > ed - $f <<-EOF > g/^blacklist.*usblp/d > w > q > EOF > #echo $f > /sbin/modprobe usblp > fi > done > exit 0 > ;; >esac > ># ># Procedures to load a single device with firmware ># >load_usblp() { > _dev="$1" > fw="$FWDIR/sihp$FWMODEL.dl" > if [ ! -f "$fw" ]; then > log "Missing HP LaserJet $MODEL firmware file $fw" > log "...read foo2zjs installation instructions and run ./getweb $MODEL" > return 1 > fi > > log "loading HP LaserJet $MODEL firmware $fw to $_dev ..." > # There is a timeout problem with udev and FC4, so spin it off. > ( > if cat $fw > $_dev; then > log "... download successful." > else > log "... download failed." > fi > ) & > return 0 >} > >load_cups() { > fw="$FWDIR/sihp$FWMODEL.dl" > if [ ! -f "$fw" ]; then > log "Missing HP LaserJet $MODEL firmware file $fw" > log "...read foo2zjs installation instructions and run ./getweb $MODEL" > return 1 > fi > > # There is a timeout problem with udev and FC4, so spin it off. > ( > device_found=0 > for uri in `$USB_BACKEND 2> /dev/null | grep -i 'HP.*LaserJet.*'"$MODEL" | grep -v FWVER | cut -d ' ' -f 2`; do > log "loading HP LaserJet $MODEL firmware $fw to CUPS USB device ..." > device_found=1 > if DEVICE_URI="$uri" $USB_BACKEND 1 1 1 1 '' $fw 2> /dev/null; then > log "$uri... download successful." > else > log "$uri... download failed." > fi > done > ) & > return 0 >} > ># ># OK, now download firmware to any printers that need it ># >if [ "$DEV" != "" ]; then > # > # force downloading to a specific device > # > load_usblp "$DEV" >elif [ -x $PRINTERID -o -x $USB_BACKEND ]; then > if [ -x $PRINTERID ]; then > # > # Sniff around for printers that need a firmware download > # > usblps=`find /dev/usb -type c -name 'lp*'`" "`find /dev -type c -name 'usblp*'` > for dev in $usblps; do > status=`$PRINTERID $dev 2>/dev/null | grep -y "hp LaserJet $MODEL"` > if [ "$status" != "" ]; then > # This is a LaserJet 100x > chmod 0666 $dev > status=`$PRINTERID $dev | grep 'FWVER'` > if [ "$status" = "" ]; then > # Firmware is not yet loaded > load_usblp "$dev" > else > log "HP LaserJet $MODEL firmware already loaded into $dev" > fi > fi > done > if [ "$usblps" != " " ]; then > # All done! > exit > fi > fi > > if [ -x $USB_BACKEND ]; then > # > # If we have CUPS installed, use the CUPS "usb" backend, as then we do > # not need to care whether the system uses the usblp kernel module or > # libusb > # > load_cups > fi >else > log "HP LaserJet $MODEL firmware was not downloaded..." > log "...couldn't find $PRINTERID, DEV is not set, and CUPS not installed." >fi
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 420623
:
314931
|
314933
|
314935
| 314937 |
339624
|
365606