[xorg-commit-diffs] xc/packager/solaris/GISWxprintglue Imakefile, NONE, 1.1.2.1 README, NONE, 1.1.2.1 depend, NONE, 1.1.2.1 make_solaris_pkg.sh, NONE, 1.1.2.1 pkginfo, NONE, 1.1.2.1 postinstall, NONE, 1.1.2.1 preinstall, NONE, 1.1.2.1

Roland Mainz xorg-commit at pdx.freedesktop.org
Mon Apr 12 20:16:36 PDT 2004


Committed by: gisburn

Update of /cvs/xorg/xc/packager/solaris/GISWxprintglue
In directory pdx:/tmp/cvs-serv9732/xc/packager/solaris/GISWxprintglue

Added Files:
      Tag: XPRINT
	Imakefile README depend make_solaris_pkg.sh pkginfo 
	postinstall preinstall 
Log Message:
Fix for http://xprint.freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=462 - RFE: Merge xprint.mozdev.org Xprint enhancements into Xorg XPRINT branch

--- NEW FILE: Imakefile ---
XCOMM $Xorg: Imakefile,v 1.1 2003/01/20 19:54:53 gisburn Exp $

#if BuildGISWxprintglue
make_GISWxprintglue::
	XPRINTDIR=$(XPRINTDIR) XBINDIR=$(BINDIR) XTOP=$(TOP) ; \
	export XPRINTDIR XBINDIR XTOP ; \
	/bin/ksh -e ./make_solaris_pkg.sh "GISWxprintglue"
        
clean::
	$(RM) GISWxprintglue.tar.gz pkgproto.tmp
#endif /* BuildGISWxprintglue */

--- NEW FILE: README ---
README for GISWxprintglue (=Xprint glue for Solaris) package

This package contains the Xprint glue (startup and configuration files)
which are currently missing in Solaris to use Xprint-based applications
(like Mozilla, Phoenix, Eclipse, Motif2, Qt etc.)

For futher information please consult the Xprint FAQ (available under
/opt/GISWxprintglue/docs/Xprint_FAQ.txt after installation - or see
http://xprint.mozdev.org/ for the newest version) and/or
http://xprint.mozdev.org/

Installation requirements:
==========================
The following Solaris patches are REQUIRED to gurantee correct behaviour of
this package:
* Solaris 2.7/SPARC:
  106541-27   SunOS 5.7: Kernel Update Patch
  107443-17   SunOS 5.7: packaging utilities patch
  107650-08   OpenWindows 3.6.1 X11R6.4 Xprint Extension Patch
  107654-10   OpenWindows 3.6.1: X11R6.4 LBX & XRX Extensions Patch
  107656-11   OpenWindows 3.6.1 libXt Patch
  108376-44   OpenWindows 3.6.1: Xsun Patch
  115228-01   CDE 1.3: dtksh patch
* Solaris 2.7/x86:
  106542-27  SunOS 5.7_x86: Kernel Update Patch
  107444-17  SunOS 5.7_x86: packaging utilities patch
  107651-08  OpenWindows 3.6.1_x86: X11R6.4 Xprint Extension Patch
  107655-10  OpenWindows 3.6.1_x86: X11R6.4 LBX & XRX Extensions Patch
  107657-09  OpenWindows 3.6.1_x86: ERC X11R6.4 Extension Patch
  108377-39  OpenWindows 3.6.1_x86: Xsun Patch

* Solaris 2.8/SPARC:
  108652-74   X11 6.4.1: Xsun patch
  108897-01   X11 6.4.1 Xprint patch
  110934-14   SunOS 5.8: pkgtrans, pkgadd, pkgchk, pkgmk and libpkg.a patch
  114956-02   CDE 1.4: dtksh patch
* Solaris 2.8/x86:
  108653-63   X11 6.4.1_x86: Xsun patch
  110934-14   SunOS 5.8: pkgtrans, pkgadd, pkgchk, pkgmk and libpkg.a patch

* Solaris 2.9/SPARC:
  112785-26   X11 6.6.1: Xsun patch
  113713-03   SunOS 5.9: pkginstall Patch
* Solaris 2.9/x86:
  112786-15   X11 6.6.1_x86: Xsun patch
  114568-02   SunOS 5.9_x86: usr/sadm/install/bin/pkginstall Patch


Installation:
============
1. Install the package:
  % /usr/sbin/pkgadd -d GISWxprintglue.pkg

2. Start Xprint server side:
  a) reboot
    or
  b) start the Xprint servers manually using
     % /etc/init.d/xprint start
     % sleep 30
     and restart your user CDE sessions (e.g. re-login.)

3. Verification:
  After (re-)login into CDE the env variable ${XPSERVERLIST} should be
  set and
  % /opt/GISWxprintglue/bin/xplsprinters
  should list all available printer queues.


Deinstallation:
===============
1. Stop Xprint servers:
  % /etc/init.d/xprint stop

2. Remove the package
  % /usr/sbin/pkgrm GISWxprintglue


Known bugs/issues:
==================
- Printing may remove spaces when monotype fonts (like "-monotype-arial-*")
  are being used by the PostScript driver.
  This is a bug in the Solaris Xprint server binary (/usr/openwin/bin/Xprt).

  Various bug reports have been filed, see
  - SunSolve bugid 4843234 
  - http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353 ("Solaris Xprt looses
    space when rendering with '-monotype-arial-*'-fonts")
  - http://bugzilla.mozilla.org/show_bug.cgi?id=199957 ("Solaris 8 Mozilla
    removes spaces for text within <font face="Arial">...</font>")

  Solution:
    Please apply the patches listed in the section "Installation requirements"
    of this document.
  
  Known workarounds:
  - Remove the '-monotype-arial-*' fonts from the font path
  - Use an alternate Xprint server like available in the "GISWxprint" package
    (this package is identical to the "GISWxprintglue" package except that it
    uses a Xprint server build from xprint.mozdev.org sources and not the
    /usr/openwin/bin/Xprt binary from Solaris)
  - Mozilla-only: Adding
    -- snip --
    user_pref("print.xprint.font.rejectfontpattern",
    "fname=-dt-.*;scalable=.*;outline_scaled=false;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*|" + 
    "fname=-monotype-arial.*;scalable=.*;outline_scaled=.*;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*");
    -- snip --
    to prefs.js works around the problem (see
    http://bugzilla.mozilla.org/show_bug.cgi?id=199957#c6 , too).

- Not all paper sizes defined in the "PSdefault" printer models may be
  available since the Xprint drivers(including the PostScript DDX) within
  Xprt will validate those lists against a buildin list and this list may
  not have been updated yet in Solaris's version of Xprt.


Reporting bugs:
===============
Please send bug reports/comments/questions to 
mailto:roland.mainz at nrubsig.org or
mailto:xprint at mozdev.org


--- NEW FILE: depend ---
# Copyright 2003-2004 Roland Mainz <roland.mainz at nrubsig.org>
# All Rights Reserved.
# Use is subject to license terms.
#
#	$Id: depend,v 1.3 2004/02/13 04:43:47 gisburn Exp $
#
# This package information file defines software dependencies associated
# with the pkg.  You can define three types of pkg dependencies with this file:
#	 P indicates a prerequisite for installation
#	 I indicates an incompatible package
#	 R indicates a reverse dependency
# <pkg.abbr> see pkginfo(4), PKG parameter
# <name> see pkginfo(4), NAME parameter
# <version> see pkginfo(4), VERSION parameter
# <arch> see pkginfo(4), ARCH parameter
# <type> <pkg.abbr> <name>
# 	(<arch>)<version>
# 	(<arch>)<version>
# 	...
# <type> <pkg.abbr> <name>
# ...

P SUNWcsr	Core Solaris, (Root)
P SUNWxwplt	X Window System platform software
P SUNWpcu	SunSoft Print - Client, (usr)
P SUNWxcu4      XCU4 Utilities
P SUNWxwfnt     X Window System platform required fonts
P SUNWdtbas     CDE application basic runtime environment

# "GISWxprint" is the full version (incl. Xprt binary; "GISWxprintglue"
# uses Solaris's own /usr/openwin/bin/Xprt instead) of the package
# (which installs it's own /etc/init.d/xprint)
I GISWxprint	Xprint server (full version)
# "GISWxprintcommon" may be used in the future for /etc/init.d/xprint and co.
I GISWxprintcommon

# make sure we don't collide with the blastwave.org versions of these packages
I CSWxprint
I CSWxprintglue
I CSWxprintcommon
# EOF.

--- NEW FILE: make_solaris_pkg.sh ---
#!/bin/ksh

# Set search path for commands
export PATH=/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/dt/bin:/usr/openwin/bin

#XPRINTDIR=/usr/openwin/server/etc/XpConfig/
#XBINDIR=/usr/openwin/bin

case "$1" in
    'GISWxprintglue')
        PKG_NAME="GISWxprintglue"
        ;;
    'GISWxprint')
        PKG_NAME="GISWxprint"
        ;;
    *)
        echo "## Error illegal target"
        exit 1
        ;;
esac


PKG_FILES=/tmp/tmp_${PKG_NAME}


if [ "${XPRINTDIR}" = "" ] ; then
    echo "$0: Error: XPRINTDIR not set"
    exit 1
fi

if [ "${XBINDIR}" = "" ] ; then
    echo "$0: Error: XBINDIR not set"
    exit 1
fi
 

# Do not edit
# REL_* vars are paths relative to '/'
# Thanks to the "wonders" of some /bin/sh I cannot use ...
# REL_XPRINTDIR=${XPRINTDIR#*/}
# REL_XBINDIR=${XBINDIR#*/}
# ... ;-(
REL_XPRINTDIR="`echo ${XPRINTDIR} | sed 's/\///'`"
REL_XBINDIR="`echo ${XBINDIR} | sed 's/\///'`"

createpkgproto()
{
    pkgproto | 
    while read i1 i2 i3 i4 i5 ; do       
        if [ "${i1}" = "f" ] ; then
            if [ ! -r "${i3}" ] ; then
                echo "${0}: \"${i3}\" not found." >&2
                exit 1
            fi
        fi
    
        if [ "${i1}" = "d" -o -x "${i3}" ] ; then
            echo "$i1 $i2 $i3 0755"
        else
            echo "$i1 $i2 $i3"
        fi  
    done
}

#### Main

# Create and test tarball of files which should be in the final RPM...
if true ; then
echo "###### Fetching files from build dir..."
(
  # Go to xc/packager/tarball
  cd ../../tarball
  # ${XPDESTTARFILE} is used by "make make_xprint_tarball"
  export XPDESTTARFILE="/tmp/xprint_pkg_`date +%y%m%d%H%M%S`.tar.gz"
  make make_xprint_tarball

  # Check if the temp. tarball was being build
  if [ ! -f "${XPDESTTARFILE}" ] ; then
      echo "# temp. tarball missing."
      exit 1
  fi

  # ... and then unpack the temp. tarball in the ${PKG_FILES} dir
  [ -d "${PKG_FILES}" ] && rm -Rf "${PKG_FILES}"
  mkdir "${PKG_FILES}"
  cd "${PKG_FILES}"
  gunzip -c ${XPDESTTARFILE} | tar -xf -
  rm -f ${XPDESTTARFILE}
  
  cd xprint/install
   
  # Remove old ReadMe
  rm -f ${REL_XPRINTDIR}/README
  
  if [ "${PKG_NAME}" = "GISWxprintglue" ] ; then
    # Remove our own Xprt binary, Solaris has it's own working version
    # under /usr/openwin/bin/Xprt and the GISWxprintglue will use that
    # (only the "GISWxprint" package will ship it's own version of Xprt)
    rm -f ${REL_XBINDIR}/Xprt
  fi
)
fi

echo "###### Building pkgproto file..."

rm -f pkgproto.tmp
(
  OLD_PWD="${PWD}"
  cd "${PKG_FILES}/xprint/install"

  # Add files in /etc but skip any dirs (they are part of SUNWcsr)
  # (and treat them all as executable)
  echo '!default 755 root bin'
  find etc '!' -type d -print | createpkgproto

  # Add entry for package base dir ("/opt/GISWxprintglue" or "/opt/GISWxprint")
  echo "opt/${PKG_NAME}" | createpkgproto

  # Add files in opt/${PKG_NAME}/bin (executables)
  echo '!default 755 root bin'
  find opt/${PKG_NAME}/bin -print | createpkgproto

  # Add CDE/1.x glue
  find usr/dt/config/Xsession.d '!' -type d -print | createpkgproto

  # Add config files in opt/${PKG_NAME}/server (all non-executable)
  echo '!default 644 root bin'
  find opt/${PKG_NAME}/server -print | createpkgproto

  # Add Xfree86 encoding files for GISWxprint
  # (GISWxprintglue uses Solaris Xprt which uses the Solaris encoding/ttmap files)
  if [ "${PKG_NAME}" = "GISWxprint" ] ; then
    find opt/${PKG_NAME}/lib/X11/fonts/encodings -print | createpkgproto
  fi

  # Add files in opt/${PKG_NAME}/man (manual pages)
  if [ -d opt/${PKG_NAME}/man ] ; then 
    echo '!default 644 root bin'
    find opt/${PKG_NAME}/man -print | createpkgproto
  fi

  # Add FAQ, README etc.
  echo '!default 644 root bin'
  [ ! -d "opt/${PKG_NAME}/docs" ] && mkdirhier "opt/${PKG_NAME}/docs"
  cp "${OLD_PWD}/../../../doc/hardcopy/XPRINT/Xprint_FAQ.txt" opt/${PKG_NAME}/docs/.
  cp "${OLD_PWD}/README" opt/${PKG_NAME}/docs/.
  find opt/${PKG_NAME}/docs -print | createpkgproto
  
  # List package info files
  echo "# packaging files"
  echo "i pkginfo"
  echo "i depend"
  echo "i preinstall=./preinstall"
  echo "i postinstall=./postinstall"
) >pkgproto.tmp
ls -l pkgproto.tmp

echo "###### Making package..."
[ -d "/tmp/${PKG_NAME}" ] && rm -R "/tmp/${PKG_NAME}"

echo "#### pkgmk..."
pkgmk -f pkgproto.tmp -d /tmp -o -r "${PKG_FILES}/xprint/install" ${PKG_NAME}

echo "#### pkgtrans..."
pwd
rm -f "./${PKG_NAME}.pkg"
pkgtrans /tmp "${PWD}/${PKG_NAME}.pkg" ${PKG_NAME}

echo "#### compressing..."
rm -f "${PKG_NAME}.tar.gz"
tar -cvf - "${PKG_NAME}.pkg" README | gzip --best --stdout >"${PKG_NAME}.tar.gz"
rm -f "${PKG_NAME}.pkg"

echo "###### Cleaning up..."
rm -rf "${PKG_FILES}"
rm -R "/tmp/${PKG_NAME}"
#rm -f pkgproto.tmp

echo "###### Package done:"
ls -lad "${PKG_NAME}.tar.gz"

echo "###### Done."
exit 0
#

--- NEW FILE: pkginfo ---
#
# Copyright 2003-2004 Roland Mainz <roland.mainz at nrubsig.org>
# All Rights Reserved.
# Use is subject to license terms.
#
#ident	"$Id: pkginfo,v 1.4 2004/02/13 04:43:47 gisburn Exp $"
#
# This required package information file describes characteristics of the
# package, such as package abbreviation, full package name, package version,
# and package architecture.
#
PKG="GISWxprintglue"
NAME="Xprint server glue"
ARCH="sparc"
VERSION="0.9"
CATEGORY="system"
DESC="Runtime glue for Xprint server"
VENDOR="xprint.mozdev.org"
HOTLINE="Please contact your local service provider"
EMAIL="xprint at mozdev.org"
CLASSES="none"
BASEDIR=/
# EOF.

--- NEW FILE: postinstall ---
#!/bin/sh
#
# Copyright 2003-2004 Roland Mainz <roland.mainz at nrubsig.org>
# All Rights Reserved.
# Use is subject to license terms.
#
#ident	"$Id: postinstall,v 1.2 2004/02/13 04:43:47 gisburn Exp $"
#
# postinstall for GISWxprintglue package

print_package_usage()
{
cat <<'@EOF'
# To finish the installation please
#   a) reboot
#     or
#   b) start the Xprint servers manually using
#      % /etc/init.d/xprint start
#      % sleep 30
#      and restart your user CDE sessions (e.g. re-login.)
#
# Verification:
#   After login the env variable ${XPSERVERLIST} should be set and
#   % /opt/GISWxprintglue/bin/xplsprinters
#   should list all available printer queues.
@EOF
}

# Print postinstall notice about the steps todo after installation
print_package_usage

exit 0
# EOF.

--- NEW FILE: preinstall ---
#!/bin/sh
#
# Copyright 2003-2004 Roland Mainz <roland.mainz at nrubsig.org>
# All Rights Reserved.
# Use is subject to license terms.
#
#ident	"$Id: preinstall,v 1.4 2004/02/13 04:43:47 gisburn Exp $"
#
# preinstall for GISWxprintglue package

# nothing here 

exit 0
# EOF.




More information about the xorg-commit-diffs mailing list