--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/foomatic-ppd/findunsupported.sh Wed Oct 21 17:43:30 2009 +0200
@@ -0,0 +1,137 @@
+#!/usr/bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "@(#)findunsupported.sh 1.2 08/09/23 SMI"
+
+
+
+# Find the PPD files delivered by foomatic that Sun does not support.
+# There are two reasons for non-support:
+#
+# 1. license/patent issues with the driver: foo2zjs
+# 2. The driver used by the PPD file must be brought down
+# and compiled and Sun has not chosen to do so.
+#
+# The unsupported PPD file should be listed in /tmp/ppdunsupported for review.
+# The catchall file, /tmp/ppdsnomatch, should be empty. If not, a new case
+# is needed in this script. The other files are there for debugging purposes.
+#
+# This is not part of the build process as the resulting file, ppdunsupported,
+# should be reviewed.
+
+# Notes:
+# drivers come in several flavors: gs built in, gs uniprint, postscript,
+# hpijs, and then the several other drivers.
+# Drivers are noted in many PPD files with driverType. To sort these, look
+# for: driverType G/GhostScript built-in:
+# driverType U/GhostScript Uniprint:
+# driverType F/Filter: ""
+# Drivers are also noted in the name of the ppd file. This is used
+# to cull out postscript, hpijs, and pxlmono . These do not reliably
+# use driverType. note: pxlmono driver is a gs built-in but many of the
+# ppd files that use this driver do not utilize the driverType line.
+# driverType I/IJS: "" is not reliable for hpijs as not used in many ppds.
+
+# driverType F/Filter: "" denotes ppd files that use GhostScript and
+# then pipe that output to one or more other drivers. These will only be
+# supported if Sun compiles and delivers these drivers.
+
+VER=foomatic-filters-ppds-20080818
+
+if [ -f ${SRC}/cmd/foomatic-ppd/ppdunsupported ]; then
+ /bin/rm ${SRC}/cmd/foomatic-ppd/ppdunsupported
+fi
+if [ -f ${SRC}/cmd/foomatic-ppd/ppdsnomatch ]; then
+ /bin/rm ${SRC}/cmd/foomatic-ppd/ppdsnomatch
+fi
+if [ -f ${SRC}/cmd/foomatic-ppd/ppdsupported ]; then
+ /bin/rm ${SRC}/cmd/foomatic-ppd/ppdsupported
+fi
+
+cd $VER/share/ppd
+
+for i in *
+do
+ cd $i
+ for j in *
+ do
+ # The following cases pull out supported drivers
+ ls $j | grep Postscript > /dev/null
+ if [ $? = 0 ]; then
+ #echo $j >> /tmp/ppdps
+ echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
+ continue
+ fi
+
+ grep "driverType G/GhostScript built-in: """ $j >> /dev/null
+ if [ $? = 0 ];
+ then
+ #echo $j >> /tmp/ppdsgsbuiltin
+ echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
+ continue
+ fi
+
+ grep "driverType U/GhostScript Uniprint: """ $j >> /dev/null
+ if [ $? = 0 ];
+ then
+ #echo $j >> /tmp/ppdgsuniprint
+ echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
+ continue
+ fi
+
+ ls $j | grep hpijs > /dev/null
+ if [ $? = 0 ];
+ then
+ #echo $j >> /tmp/ppdijs
+ # HPLIP (hpijs) supplies it's own Foomatic PPD files
+ echo $j >> ${SRC}/cmd/foomatic-ppd/ppdunsupported
+ continue
+ fi
+
+ ls $j | grep pxlmono > /dev/null
+ if [ $? = 0 ];
+ then
+ #echo $j >> /tmp/pxlmono
+ echo $j >> ${SRC}/cmd/foomatic-ppd/ppdsupported
+ continue
+ fi
+
+ # These are the unsupported printers unless
+ # we build and deliver the drivers
+ grep "driverType F/Filter: """ $j >> /dev/null
+ if [ $? = 0 ];
+ then
+ echo $j >> ${SRC}/cmd/foomatic-ppd/ppdunsupported
+ continue
+ fi
+
+ # No match : this should be empty
+ echo $j >> ${SRC}/cmd/foomatic-ppd/ppdunsupported/ppdsnomatch
+ done
+ cd ..
+done
+
+cd ../../..
+