#!/bin/sh set -e # # (c) Copyright Rick Richardson 2008 # This version has been modified by Debian # # PLEASE don't remove the copyright statements. They should # be displayed to the human that is running this. # VERSION='$Id: getweb.in,v 1.114 2015/02/12 00:22:02 rick Exp $' WGETOPTS="--passive-ftp -q" ARM2HPDL="/usr/bin/arm2hpdl" if [ $(id -ru) -ne 0 ]; then echo "You need to be root" exit 1 fi usage() { cat <&2 exit 1 } SYSTEM=`uname -s` WGET=`which wget` if [ "$SYSTEM" = Darwin -a "$WGET" = "" ] then WGETOPTS= wget() { shift curl -o $* } fi putfw() { inputname=$1 outputname=$2 $ARM2HPDL $inputname > /var/lib/foo2zjs/firmware/$outputname rm $inputname } puticm() { drivername=$1 icmfolder=/usr/share/"$drivername"/icm/ [ -d $icmfolder ] || mkdir -p $icmfolder mv *.icm $icmfolder } # # Download a .EXE file from the web, unzip it, and extract the # files we want getexe() { url="$1" exefile="$2" shift; shift wget $WGETOPTS -O $exefile "$url/$exefile" || error "Couldn't download $url/$exefile" unzip -oj $exefile "$@" rm $exefile } # # Download a .tar.gz file from the web, untar it, and extract the # files we want gettgz() { url="$1" file="$2" what="$3" wget $WGETOPTS -O $file "$url/$file" || error "Couldn't download $url/$file" gunzip <$file | tar xvf - $what rm $file } copyright() { echo echo "$1" echo } getone() { case "$1" in lj1000|1000) gettgz \ https://www.quirinux.org/printers sihp1000.tar.gz \ "" #echo "provided" #getexe \ #ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2 \ #lj1488en.exe \ #sihp1000.img copyright "(c) Copyright Hewlett-Packard 2001" putfw sihp1000.img sihp1000.dl ;; lj1005|1005) gettgz \ https://www.quirinux.org/printers sihp1005.tar.gz \ "" #echo "provided" #getexe \ #ftp://ftp.hp.com/pub/softlib/software2/COL2222/lj-10067-2 \ #lj1005hostbased-en.exe \ #sihp1005.img copyright "(c) Copyright Hewlett-Packard 2002" gettgz \ https://www.quirinux.org/printers sihpP1005.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihp1005.img sihp1005.dl ;; lj1018|1018) gettgz \ https://www.quirinux.org/printers sihp1018.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2005" putfw sihp1018.img sihp1018.dl ;; lj1020|1020) # http://ftp.hp.com/pub/softlib/software8/COL14041/lj-39322-2/hp_LJ_1020-1022_Full_Solution.exe gettgz \ https://www.quirinux.org/printers sihp1020.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2005" putfw sihp1020.img sihp1020.dl ;; [pP]100[57]) gettgz \ https://www.quirinux.org/printers sihpP1005.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihpP1005.img sihpP1005.dl ;; [pP]100[68]) gettgz \ https://www.quirinux.org/printers sihpP1006.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihpP1006.img sihpP1006.dl ;; [pP]1505) gettgz \ https://www.quirinux.org/printers sihpP1505.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihpP1505.img sihpP1505.dl ;; 2200dl|2200) if true; then gettgz \ https://www.quirinux.org/printers dl2300.tar.gz \ "" else getexe \ http://printer.konicaminolta.net/drivers/win2000 m22dlicc.exe \ "*.icm" fi copyright "(c) Copyright Minolta-QMS 1999" puticm foo2zjs ;; 2300dl|2300) if true; then gettgz \ https://www.quirinux.org/printers dl2300.tar.gz \ "" else getexe \ http://printer.konicaminolta.net/drivers/other m23dlicc.exe \ "*.icm" fi gettgz \ https://www.quirinux.org/printers km2430.tar.gz \ "" copyright "(c) Copyright Minolta-QMS 2001" puticm foo2zjs ;; 2300dl_fw) # 2300DL firmware upgrade to v2.55 BASE="http://crm01.minoltaeurope.com" BASE="$BASE/openmind/technic/swfw/mswprtdl.nsf/logdwl" FILE="MC2300DL_v255.zip" URL="$BASE?openagent&4CE486C20839C75AC1256D9E001EBD1F/\$File/$FILE" wget $WGETOPTS "$URL" || error "Couldn't download $URL" echo "*** Now use a windows box to unzip and install $FILE ***" ;; cpwl|pageworks) if true; then gettgz \ https://www.quirinux.org/printers dl2300.tar.gz \ "" else getexe \ ftp://ftp.minolta-qms.com/pub/crc/out_going/windows cpplxp.exe \ "*.IC_" for i in C*.IC_ do base=`basename $i .IC_` mv $base.IC_ $base.ic_ ./msexpand $base.ic_ rm -f $base.ic_ done fi copyright "(c) Copyright Minolta-QMS 1998" puticm foo2zjs ;; 2430) gettgz \ https://www.quirinux.org/printers km2430.tar.gz \ "" copyright "(c) Copyright Konica Minolta 2003" puticm foo2zjs ;; 2530|2490|6115|2480|1600w|1680|1690|4690|110|6121) gettgz \ https://www.quirinux.org/printers km2530.tar.gz \ "" copyright "(c) Copyright Konica Minolta 2005" copyright "(c) Copyright Rick Richardson 2007. All Rights Reserved" gettgz \ https://www.quirinux.org/printers km-1600.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2009. All Rights Reserved" puticm foo2lava ;; 1500) gettgz \ https://www.quirinux.org/printers hpclj2500.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2002" gettgz \ https://www.quirinux.org/printers hpclj2600n.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2003" copyright "(c) Copyright Rick Richardson 2006. All Rights Reserved" puticm foo2oak ;; 1025) gettgz \ https://www.quirinux.org/printer hp-cp1025.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2010. All Rights Reserved" puticm foo2zjs ;; 1215|1600|2600*) gettgz \ https://www.quirinux.org/printer hpclj2600n.tar.gz \ "" gettgz \ https://www.quirinux.org/printer km2430.tar.gz \ "km2430_2.icm" copyright "(c) Copyright Hewlett-Packard 2003" copyright "(c) Copyright Rick Richardson 2006. All Rights Reserved" gettgz \ https://www.quirinux.org/printer hp1215.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2008. All Rights Reserved" puticm foo2hp ;; 300|310|315|325|360|365|2160|3160|3175|3185|6110) gettgz \ https://www.quirinux.org/printer samclp300.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2007. All Rights Reserved" gettgz \ https://www.quirinux.org/printer samclp315.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2008. All Rights Reserved" puticm foo2qpdl ;; 600|610) ;; 500) gettgz \ https://www.quirinux.org/printer lexc500.tar.gz \ "" copyright "(c) Copyright Lexmark 2006" puticm foo2slx ;; oki) echo "Please wait, ~20MB is being downloaded from a slow site..." getexe \ http://www.okiprintingsolutions.at/binaryData/16516/ \ ICCProfiles.zip \ "*OK3200*ICM" "*OK5600*ICM" "*rom732*7.zip" unzip -oj *rom732*7.zip "*C3400*ICM" rm -f *rom732*7.zip for i in OK*ICM C3400*ICM; do base=`basename $i .ICM` mv "$base.ICM" "$base.icm" done copyright "(c) Copyright Okidata 2005, 2006" puticm foo2hiperc ;; 301) gettgz \ https://www.quirinux.org/printer okic301.tar.gz \ "" copyright "(c) Copyright Okidata 2012" puticm foo2hiperc ;; c310) gettgz \ https://www.quirinux.org/printer okic310.tar.gz \ "" copyright "(c) Copyright Okidata 2010" puticm foo2hiperc ;; c511) gettgz \ https://www.quirinux.org/printer okic511.tar.gz \ "" copyright "(c) Copyright Okidata 2012" puticm foo2hiperc ;; c810) gettgz \ https://www.quirinux.org/printer okic810.tar.gz \ "" copyright "(c) Copyright Okidata 2012" puticm foo2hiperc ;; 3100|3200|5100|5150|5200|5250) gettgz \ https://www.quirinux.org/printer okic3200.tar.gz \ "" copyright "(c) Copyright Okidata 2005" puticm foo2hiperc ;; 3300|3400|3530) gettgz \ https://www.quirinux.org/printer okic3400.tar.gz \ "" copyright "(c) Copyright Okidata 2006" puticm foo2hiperc ;; 5500|5600|5800|160) gettgz \ https://www.quirinux.org/printer okic5600.tar.gz \ "" copyright "(c) Copyright Okidata 2006" puticm foo2hiperc ;; xPPD) # Snarf PPD files from linuxprinting [ -d PPD ] || mkdir PPD for i in foomatic-db/printer/*.xml do case "$i" in */Gen*) continue;; esac printer=`basename $i .xml` echo $printer case "$printer" in *1500*|*oak*) driver=foo2oak;; *) driver=foo2zjs;; esac URL="http://www.linuxprinting.org/ppd-o-matic.cgi" URL="$URL?driver=$driver&printer=$printer" URL="$URL&.submit=Generate+PPD+file" URL="$URL&show=1&.cgifields=shortgui&.cgifields=show" wget $WGETOPTS -O PPD/$printer.ppd "$URL" || error "Couldn't dowload $URL" done ;; ppd) # Generate PPD files using local tools [ -d PPD ] || mkdir PPD for i in foomatic-db/printer/*.xml do printer=`basename $i .xml` echo $printer case "$printer" in *M1005*|*M1120*) driver=foo2xqx;; *P1[05]0[56]*) driver=foo2xqx;; *P2014*) driver=foo2xqx;; *M1212*) driver=foo2xqx;; *1500*|*OAKT*) driver=foo2oak;; *1600*|*2600*) driver=foo2hp;; *1215*) driver=foo2hp;; *2530*|*24[89]0*) driver=foo2lava;; *6115*) driver=foo2lava;; *C110*) driver=foo2lava;; *C500*) driver=foo2slx;; *C3[234]00*) driver=foo2hiperc;; *C5[12568]00*) driver=foo2hiperc;; *CLP*|*CLX*|*6110*) driver=foo2qpdl;; *) driver=foo2zjs;; esac ENGINE=../foomatic/foomatic-db-engine PERL5LIB=$ENGINE/lib $ENGINE/foomatic-ppdfile \ -d $driver -p $printer \ > PPD/$printer.ppd # | sed -e 's/\(^\*NickName.*\)"/\1 (foo2zjs recommended)"/' done ;; "") usage ;; *) error "Don't know how to get extra stuff for printer $1" ;; esac } if [ $# = 0 ]; then echo "$VERSION" usage fi OLDPWD=`pwd` NEWPWD=`mktemp --tmpdir --directory foo2zjs.XXXXXX` cd "$NEWPWD" for i in $* do case "$1" in all) getone 1000 getone 1005 getone 1018 getone 1020 getone p1005 getone p1006 getone p1505 getone 2200 getone 2300 # getone 2430 already done # getone cpwl # file doesn't exist 1/28/08 getone 1500 getone 2600n # getone 1215 # already done getone 1025 getone 2530 getone 300 # getone 6110 already done getone 600 getone 500 getone 301 getone c310 getone c511 getone c810 getone 3200 getone 3400 getone 5600 ;; *) getone $i ;; esac done cd "$OLDPWD" rmdir "$NEWPWD"