Home | History | Annotate | Download | only in foomatic-ppd
      1 #!/usr/bin/sh
      2 #
      3 # CDDL HEADER START
      4 #
      5 # The contents of this file are subject to the terms of the
      6 # Common Development and Distribution License (the "License").
      7 # You may not use this file except in compliance with the License.
      8 #
      9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10 # or http://www.opensolaris.org/os/licensing.
     11 # See the License for the specific language governing permissions
     12 # and limitations under the License.
     13 #
     14 # When distributing Covered Code, include this CDDL HEADER in each
     15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16 # If applicable, add the following below this CDDL HEADER, with the
     17 # fields enclosed by brackets "[]" replaced with your own identifying
     18 # information: Portions Copyright [yyyy] [name of copyright owner]
     19 #
     20 # CDDL HEADER END
     21 #
     22 #
     23 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
     24 # Use is subject to license terms.
     25 #
     26 #ident	"@(#)findunsupported.sh	1.2	08/09/23 SMI"
     27 
     28 
     29 
     30 # Find the PPD files delivered by foomatic that Sun does not support.
     31 # There are two reasons for non-support:
     32 #
     33 #	1. license/patent issues with the driver: foo2zjs
     34 #	2. The driver used by the PPD file must be brought down
     35 #	and compiled and Sun has not chosen to do so.
     36 #
     37 # The unsupported PPD file should be listed in /tmp/ppdunsupported for review.
     38 # The catchall file, /tmp/ppdsnomatch, should be empty. If not, a new case
     39 # is needed in this script. The other files are there for debugging purposes.
     40 #
     41 # This is not part of the build process as the resulting file, ppdunsupported,
     42 # should be reviewed.
     43 
     44 # Notes:
     45 #	drivers come in several flavors: gs built in, gs uniprint, postscript,
     46 #	hpijs, and then the several other drivers.
     47 # Drivers are noted in many PPD files with driverType. To sort these, look
     48 # for:	driverType G/GhostScript built-in:
     49 #	driverType U/GhostScript Uniprint:
     50 #	driverType F/Filter: "" 
     51 # Drivers are also noted in the name of the ppd file. This is used
     52 # to cull out postscript, hpijs, and pxlmono . These do not reliably
     53 # use driverType. note: pxlmono driver is a gs built-in but many of the
     54 # ppd files that use this driver do not utilize the driverType line.
     55 # driverType I/IJS: "" is not reliable for hpijs as not used in many ppds.
     56  
     57 # driverType F/Filter: "" denotes ppd files that use GhostScript and
     58 # then pipe that output to one or more other drivers. These will only be 
     59 # supported if Sun compiles and delivers these drivers.
     60 
     61 VER=foomatic-filters-ppds-20080818
     62 
     63 if [ -f  ${SRC}/cmd/foomatic-ppd/ppdunsupported ]; then 
     64 	/bin/rm ${SRC}/cmd/foomatic-ppd/ppdunsupported
     65 fi
     66 if [ -f  ${SRC}/cmd/foomatic-ppd/ppdsnomatch ]; then
     67 	/bin/rm ${SRC}/cmd/foomatic-ppd/ppdsnomatch 
     68 fi
     69 if [ -f  ${SRC}/cmd/foomatic-ppd/ppdsupported ]; then 
     70 	/bin/rm ${SRC}/cmd/foomatic-ppd/ppdsupported
     71 fi
     72 
     73 cd $VER/share/ppd
     74 
     75 for i in *
     76 do
     77 	cd $i
     78 		for j in *
     79 		do
     80 			# The following cases pull out supported drivers
     81 			ls $j | grep Postscript > /dev/null
     82 			if [ $? = 0 ]; then
     83 				#echo $j >> /tmp/ppdps
     84 				echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
     85 				continue
     86 			fi
     87 
     88 			grep "driverType G/GhostScript built-in: """ $j >> /dev/null
     89 			if [ $? = 0 ];
     90 			then
     91 				#echo $j >> /tmp/ppdsgsbuiltin
     92 				echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
     93 				continue
     94 			fi
     95 
     96 			grep "driverType U/GhostScript Uniprint: """ $j >> /dev/null
     97 			if [ $? = 0 ];
     98 			then
     99 				#echo $j >> /tmp/ppdgsuniprint
    100 				echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
    101 				continue
    102 			fi
    103 
    104 			ls $j | grep hpijs > /dev/null
    105 			if [ $? = 0 ];
    106 			then
    107 				#echo $j >> /tmp/ppdijs
    108 				# HPLIP (hpijs) supplies it's own Foomatic PPD files
    109 				echo $j >> ${SRC}/cmd/foomatic-ppd/ppdunsupported
    110 				continue
    111 			fi
    112 
    113 			ls $j | grep pxlmono > /dev/null
    114 			if [ $? = 0 ];
    115 			then
    116 				#echo $j >> /tmp/pxlmono
    117 				echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
    118 				continue
    119 			fi
    120 
    121 			# These are the unsupported printers unless
    122 			# we build and deliver the drivers
    123 			grep "driverType F/Filter: """ $j >> /dev/null
    124 			if [ $? = 0 ];
    125 			then
    126 				echo $j >> ${SRC}/cmd/foomatic-ppd/ppdunsupported
    127 				continue
    128 			fi
    129 
    130 			# No match : this should be empty
    131 			echo $j >> ${SRC}/cmd/foomatic-ppd/ppdunsupported/ppdsnomatch
    132 		done
    133 	cd ..
    134 done
    135 
    136 cd ../../..
    137 
    138