On Fri, Sep 10, 1999 at 04:08:02PM +0900, Changwoo Ryu wrote: > Is there a Debian standard of an X fonts package? > > xfntbig5p-cmex24m installs its fonts into a new path, > `/usr/X11R6/lib/X11/fonts/chinese'. And the postinst adds a "FontPath > ..." line into /etc/X11/XF86Config. But I think it is not a clean > solution; /etc/X11/XF86Config can be easily overwritten by xf86config. > > Is there any better way?
Well, this is probably as good a time as any to start talking about the "X font policy proposal" I'm going to be making one of these days. Yes, there is a better way, and it became available with the release of xbase-clients 3.3.3.1-5. This is not yet policy, but I'd like people's feedback on the following: *) BDF fonts should be converted to PCF fonts with the bdftopcf utility, gzipped, and placed in a directory that corresponds to their resolution: 100dpi fonts should go in /usr/X11R6/lib/X11/fonts/100dpi. 75dpi fonts should go in /usr/X11R6/lib/X11/fonts/75dpi. character-cell fonts, cursor fonts, and other low-resolution fonts should go in /usr/X11R6/lib/X11/fonts/misc. *) Speedo fonts should go in /usr/X11R6/lib/X11/fonts/Speedo. (I know of no freely-licensed Speedo fonts other than those that ship with X itself.) *) Type 1 fonts should go in /usr/X11R6/lib/X11/fonts/Type1. *) The creation and usage of other font directories under /usr/X11R6/lib/X11/fonts is discouraged. (The PEX and cyrillic directories are "grandfathered" in because they are part of the X distribution.) *) Font packages should not contain both 75dpi and 100pi versions of a font. If both are available from the upstream source, they should be provided in separate binary packages with "-75dpi" or "-100dpi" appended to the package name. *) Under no circumstances should font packages provide fonts.dir, fonts.alias, or fonts.scale files in a font directory. The fonts.dir file should not be provided at all (it is auto-generated by the mkfontdir program). fonts.alias and fonts.scale files, if needed, should be provided in the directory /etc/X11/fonts/FONTDIR/PACKAGE.EXTENSION where: FONTDIR is the name of the subdirectory of /usr/X11R6/lib/X11/fonts where the fonts are stored (e.g., 75dpi, misc, and so forth); PACKAGE is the name of the package that provides these fonts; and EXTENSION is either scale or alias, whichever corresponds to the file contents. [I'd appreciate feedback on the usage of /etc vs. /var for the fonts.scale and fonts.alias files; I don't see why anyone could or should modify *.scale files, but it could well be desirable for the sophisticated user to modify *.alias files.] *) Font packages must declare a dependency on xbase-clients and invoke mkfontdir on each directory into which they installed fonts in the post-installation and post-removal scripts. *) Font packages that provide a fonts.scale file as described above must declare a dependency on xbase-clients (>= 3.3.3.1-5) and invoke update-fonts-scale on each directory into which they installed fonts BEFORE invoking mkfontdir on that directory. (See the mkfontdir manual page for why.) This invocation must occur in both the post-installation and post-removal scripts. *) Font packages that provide a fonts.alias file as described above must declare a dependency on xbase-clients (>= 3.3.3.1-5) and invoke update-fonts-alias on each directory into which they installed fonts in the post-installation and post-removal scripts. (It does not matter when update-fonts-alias is called in relation to mkfontdir or update-fonts-scale.) *) Font packages should not provide alias names for their fonts that collide with alias names already in use by another package without discussing this with the package maintainer of the package in question. Such a collision should also be documented in the README.Debian file of the font package. [This point needs some more work.] *) Font packages must not provide fonts with the same XLFD registry name as another font already packaged. Sample post-installation and post-removal scripts are attached. I encourage maintainers of font packages to follow these examples as closely as possible, but any implementation that follows the policy guidelines above is acceptable. It would also be worthwhile to read the manual pages for mkfontdir, update-fonts-alias, and update-fonts-scale. Comments? -- G. Branden Robinson | Q: How does a Unix guru have sex? Debian GNU/Linux | A: unzip;strip;touch;finger;mount;fsck; [EMAIL PROTECTED] | more;yes;fsck;fsck;fsck;umount;sleep cartoon.ecn.purdue.edu/~branden/ |
#!/bin/sh # Debian xfonts-base package post-installation script # Copyright 1998, 1999 Branden Robinson. Licensed under the GNU GPL. # Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava. set -e trap "echo ;\ echo 'Received signal. Aborting configuration of xfonts-base package.' ;\ echo ;\ exit 1" 1 2 3 15 case "$1" in configure) ;; abort-upgrade|abort-remove|abort-deconfigure) exit 0 ;; *) echo "ERROR: xfonts-base postinst called with unknown argument \"$1\"." echo "Aborting configuration of xfonts-base package." exit 1 ;; esac fontdirs="misc" updatecmds="/usr/bin/X11/mkfontdir /usr/sbin/update-fonts-alias" for currentdir in $fontdirs; do longdir=/usr/lib/X11/fonts/$currentdir if [ -e $longdir ]; then if [ -d $longdir ]; then for currentcmd in $updatecmds; do if [ -e $currentcmd ]; then if [ -x $currentcmd ]; then shortcmd=$(basename $currentcmd) echo -n "Running $shortcmd in $currentdir font directory..." $currentcmd $longdir echo "done." else echo "Warning: $currentcmd not executable." fi else echo "Warning: $currentcmd not found." fi done else echo "Error: $longdir is not a directory!" exit 1 fi else echo "Error: $longdir does not exist!" exit 1 fi done exit
#!/bin/sh # Debian xfonts-base package post-removal script # Copyright 1998, 1999 Branden Robinson. Licensed under the GNU GPL. # Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava. set -e trap "echo ;\ echo 'Received signal. Aborting removal of xfonts-base package.' ;\ echo ;\ exit 1" 1 2 3 15 case "$1" in remove) ;; purge) ;; upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) exit 0 ;; *) echo "ERROR: xfonts-base postrm called with unknown argument \"$1\"." echo "Aborting removal of xfonts-base package." exit 1 ;; esac fontdirs="misc" updatecmds="/usr/bin/X11/mkfontdir /usr/sbin/update-fonts-alias" for currentdir in $fontdirs; do longdir=/usr/lib/X11/fonts/$currentdir if [ -d $longdir ]; then for file in fonts.dir fonts.alias; do if [ -e $file ]; then rm $file fi done if [ $(find | wc -l) -eq 1 ]; then echo "$currentdir font directory is empty. Removing." rmdir $longdir else for currentcmd in $updatecmds; do if [ -e $currentcmd ]; then if [ -x $currentcmd ]; then shortcmd=$(basename $currentcmd) echo -n "Running $shortcmd in $currentdir font directory..." $currentcmd $longdir echo "done." else echo "Warning: $currentcmd not executable." fi else echo "Warning: $currentcmd not found." fi done fi fi done exit
#!/bin/sh # Debian xfonts-scalable package post-installation script # Copyright 1998, 1999 Branden Robinson. Licensed under the GNU GPL. # Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava. set -e trap "echo ;\ echo 'Received signal. Aborting configuration of xfonts-scalable package.' ;\ echo ;\ exit 1" 1 2 3 15 case "$1" in configure) ;; abort-upgrade|abort-remove|abort-deconfigure) exit 0 ;; *) echo "ERROR: xfonts-scalable postinst called with unknown argument \"$1\"." echo "Aborting configuration of xfonts-scalable package." exit 1 ;; esac fontdirs="Speedo Type1" updatecmds="/usr/sbin/update-fonts-scale /usr/bin/X11/mkfontdir" for currentdir in $fontdirs; do longdir=/usr/lib/X11/fonts/$currentdir if [ -e $longdir ]; then if [ -d $longdir ]; then for currentcmd in $updatecmds; do if [ -e $currentcmd ]; then if [ -x $currentcmd ]; then shortcmd=$(basename $currentcmd) echo -n "Running $shortcmd in $currentdir font directory..." $currentcmd $longdir echo "done." else echo "Warning: $currentcmd not executable." fi else echo "Warning: $currentcmd not found." fi done else echo "Error: $longdir is not a directory!" exit 1 fi else echo "Error: $longdir does not exist!" exit 1 fi done exit
#!/bin/sh # Debian xfonts-scalable package post-removal script # Copyright 1998, 1999 Branden Robinson. Licensed under the GNU GPL. # Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava. set -e trap "echo ;\ echo 'Received signal. Aborting removal of xfonts-scalable package.' ;\ echo ;\ exit 1" 1 2 3 15 case "$1" in remove) ;; purge) ;; upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) exit 0 ;; *) echo "ERROR: xfonts-scalable postrm called with unknown argument \"$1\"." echo "Aborting removal of xfonts-scalable package." exit 1 ;; esac fontdirs="Speedo Type1" updatecmds="/usr/sbin/update-fonts-scale /usr/bin/X11/mkfontdir" for currentdir in $fontdirs; do longdir=/usr/lib/X11/fonts/$currentdir if [ -d $longdir ]; then for file in fonts.dir fonts.alias; do if [ -e $file ]; then rm $file fi done if [ $(find | wc -l) -eq 1 ]; then echo "$currentdir font directory is empty. Removing." rmdir $longdir else for currentcmd in $updatecmds; do if [ -e $currentcmd ]; then if [ -x $currentcmd ]; then shortcmd=$(basename $currentcmd) echo -n "Running $shortcmd in $currentdir font directory..." $currentcmd $longdir echo "done." else echo "Warning: $currentcmd not executable." fi else echo "Warning: $currentcmd not found." fi done fi fi done exit
pgptZRSafGuyt.pgp
Description: PGP signature