Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 183398 - media-fonts/lfpfonts-fix-0.83-r2: broken font files
Summary: media-fonts/lfpfonts-fix-0.83-r2: broken font files
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Fonts Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-27 13:18 UTC by Martin Mokrejš
Modified: 2007-09-24 01:09 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
lfpfonts-fix-0.83-r2.ebuild (lfpfonts-fix-0.83-r2.ebuild,758 bytes, text/plain)
2007-09-23 23:09 UTC, Ed Catmur
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Mokrejš 2007-06-27 13:18:33 UTC
>>> Emerging (8 of 17) media-fonts/lfpfonts-fix-0.83-r2 to /
>>> Downloading 'http://distfiles.gentoo.org/distfiles/lfpfonts-fix-src-0.83.tar.bz2'
--15:13:49--  http://distfiles.gentoo.org/distfiles/lfpfonts-fix-src-0.83.tar.bz2
           => `/usr/portage/distfiles/lfpfonts-fix-src-0.83.tar.bz2'
Resolving distfiles.gentoo.org... 216.165.129.135, 156.56.247.195, 64.50.238.52, ...
Connecting to distfiles.gentoo.org|216.165.129.135|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 172,461 (168K) [application/x-tar]

100%[==============================================================================================>] 172,461      274.96K/s             

15:13:50 (274.45 KB/s) - `/usr/portage/distfiles/lfpfonts-fix-src-0.83.tar.bz2' saved [172461/172461]

 * checking ebuild checksums ;-) ...                                                                                                [ ok ]
 * checking auxfile checksums ;-) ...                                                                                               [ ok ]
 * checking miscfile checksums ;-) ...                                                                                              [ ok ]
 * checking lfpfonts-fix-src-0.83.tar.bz2 ;-) ...                                                                                   [ ok ]
>>> Unpacking source...
>>> Unpacking lfpfonts-fix-src-0.83.tar.bz2 to /var/tmp/portage/media-fonts/lfpfonts-fix-0.83-r2/work
 * Applying lfpfonts-fix-0.83-noglyph.patch ...                                                                                     [ ok ]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/media-fonts/lfpfonts-fix-0.83-r2/work/lfpfonts-fix-src ...

Generating different encodings:
No default character defined.
Writing 106 characters into file 'antique-10-m-r-ISO8859-1.bdf'.
No default character defined.
Writing 106 characters into file 'antique-10-m-r-ISO8859-15.bdf'.
No default character defined.
...
Writing 102 characters into file 'gamow-08-m-i-KOI8-R.bdf'.
No STARTFONT line found in 'gamow-08-m-r-sc.bdf'!
Writing 196 characters into file 'gamow-08-m-r-ISO8859-1.bdf'.
Writing 195 characters into file 'gamow-08-m-r-ISO8859-15.bdf'.
...
Writing 102 characters into file 'gamow-09-m-i-KOI8-R.bdf'.
No STARTFONT line found in 'gamow-09-m-r.bdf'!
No default character defined.
...
Writing 105 characters into file 'lucidaterminal-10-m-r-KOI8-R.bdf'.
FONT name in 'matto-10-m-r.bdf' is '-RoliBue-Matto-Medium-R-Normal-C-10-10-75-75-M-50-ISO8859-1' and not '*-ISO10646-1'!
FONT name in 'matto-12-m-r.bdf' is '-RoliBue-Matto-Medium-R-Normal-C-12-12-75-75-M-80-ISO8859-1' and not '*-ISO10646-1'!
FONT name in 'matto-14-b-r.bdf' is '-RoliBue-Matto-Bold-R-Normal-C-14-14-75-75-M-90-ISO8859-1' and not '*-ISO10646-1'!
FONT name in 'matto-small-12-m-r.bdf' is '-RoliBue-Matto Small-Medium-R-Normal-C-12-12-75-75-M-80-ISO8859-1' and not '*-ISO10646-1'!
Writing 195 characters into file 'nexus-08-m-r-ISO8859-1.bdf'.
...
Writing 99 characters into file 'shine-08-m-r-KOI8-R.bdf'.
No STARTFONT line found in 'smooth-09-m-r.bdf'!
Writing 196 characters into file 'terminal-10-m-r-sc-ISO8859-1.bdf'.
...
Writing 106 characters into file 'tixus-08-m-r-KOI8-R.bdf'.
No STARTFONT line found in 'trachtenberg-11-m-r.bdf'!
No default character defined.
...
Compiling fonts:
.....................................................................................................................................................BDF Error on line 0: bad 'STARTFONT'
bdftopcf: bdf input, gamow-08-m-r-sc.bdf, corrupt
.....................................BDF Error on line 0: bad 'STARTFONT'
bdftopcf: bdf input, gamow-09-m-r.bdf, corrupt
.................................................................BDF Error on line 0: bad 'STARTFONT'
bdftopcf: bdf input, smooth-09-m-r.bdf, corrupt
.................................................................................BDF Error on line 0: bad 'STARTFONT'
bdftopcf: bdf input, trachtenberg-11-m-r.bdf, corrupt
...............................
Compressing fonts:
...
Comment 1 Ryan Hill (RETIRED) gentoo-dev 2007-09-04 03:53:19 UTC
i can't seem to reproduce this.  sync up, delete lfpfont-fix-src-0.83.tar.bz2 from /usr/portage/distfiles, and try again.  if it still doesn't work can you post your emerge --info?
Comment 2 Marijn 2007-09-14 23:33:11 UTC
I am having a similar problem:

00:0B:DB:05:86:EAbdftopcf  antique-10-m-r.bdf -o antique-10-m-r.pcf
BDF Error on line 0: bad 'STARTFONT'
bdftopcf: bdf input, antique-10-m-r.bdf, corrupt
make: *** [antique-10-m-r.pcf] Error 1

!!! ERROR: media-fonts/lfpfonts-fix-0.83-r2 failed.
Call stack:
  ebuild.sh, line 1638:   Called dyn_compile
  ebuild.sh, line 985:   Called qa_call 'src_compile'
  ebuild.sh, line 44:   Called src_compile
  lfpfonts-fix-0.83-r2.ebuild, line 38:   Called ebdftopcf 'antique-10-m-r.bdf' 'artist-10-m-r-alt.bdf' 'artist-10-m-r-serif.bdf' 'artist-10-m-r.bdf' 'artsie-09-m-r.bdf' 'asimov-09-m-r.bdf' 'bright-09-m-r.bdf' 'cantor-10-m-r-sc.bdf' 'cantor-10-m-r.bdf' 'cntdown-09-m-r.bdf' 'computer-09-m-r-alt.bdf' 'computer-09-m-r.bdf' 'computer-11-m-r.bdf' 'escher-10-m-r.bdf' 'eurotype-12-m-r.bdf' 'feynman-10-m-r.bdf' 'gagarin-10-m-i.bdf' 'gagarin-10-m-r-sc.bdf' 'gagarin-10-m-r.bdf' 'gamow-05-m-r.bdf' 'gamow-06-m-r.bdf' 'gamow-07-b-i.bdf' 'gamow-07-b-r.bdf' 'gamow-07-m-i.bdf' 'gamow-07-m-r-sc.bdf' 'gamow-07-m-r.bdf' 'gamow-08-b-i.bdf' 'gamow-08-b-r.bdf' 'gamow-08-m-i.bdf' 'gamow-08-m-r-sc.bdf' 'gamow-08-m-r.bdf' 'gamow-09-b-i-sc.bdf' 'gamow-09-b-i.bdf' 'gamow-09-b-r-alt.bdf' 'gamow-09-b-r-sc-alt.bdf' 'gamow-09-b-r.bdf' 'gamow-09-m-i-sc.bdf' 'gamow-09-m-i.bdf' 'gamow-09-m-r.bdf' 'hollow-11-m-r.bdf' 'julie-10-m-r.bdf' 'kandinsky-08-m-r-alt.bdf' 'kandinsky-09-m-r.bdf' 'lomonosov-08-m-r.bdf' 'lomonosov-10-m-r.bdf' 'lucidaterminal-10-b-r.bdf' 'lucidaterminal-10-m-r.bdf' 'matto-10-m-r.bdf' 'matto-12-m-r.bdf' 'matto-14-b-r.bdf' 'matto-small-12-m-r.bdf' 'nexus-08-m-r.bdf' 'noxis-08-m-r.bdf' 'ocr-10-m-r.bdf' 'shine-08-m-r.bdf' 'smooth-09-m-r.bdf' 'terminal-10-m-r-sc.bdf' 'terminal-10-m-r.bdf' 'terminal-16-m-r.bdf' 'terminal-20-m-r.bdf' 'test-09-b-r-alt.bdf' 'test-09-m-r-alt.bdf' 'test-09-m-r.bdf' 'test-10-m-r-alt.bdf' 'test-10-m-r.bdf' 'test-11-b-r-alt.bdf' 'test-11-bb-r-alt.bdf' 'test-11-m-r-alt.bdf' 'test-14-m-r-alt.bdf' 'thin-09-m-r.bdf' 'tixus-08-m-r-alt.bdf' 'tixus-08-m-r.bdf' 'trachtenberg-11-m-r.bdf' 'uniread-08-m-r.bdf' 'uniread-09-m-i.bdf' 'uniread-09-m-r.bdf' 'uniread-10-m-r.bdf' 'zin-09-m-r.bdf' 'zin-09-t-r.bdf'
  font-ebdftopcf.eclass, line 25:   Called die

!!! Failed to build PCF files
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/mnt/storage/tmp/portage/portage/media-fonts/lfpfonts-fix-0.83-r2/temp/build.log'.


My terminal is using (at least partly) UTF-8, is it possible that something like that is generating weird errors like these?

Regards.
Comment 3 Martin Mokrejš 2007-09-20 15:58:47 UTC
bdftopcf  artist-10-m-r.bdf -o artist-10-m-r.pcf
BDF Error on line 0: bad 'STARTFONT'
bdftopcf: bdf input, artist-10-m-r.bdf, corrupt
make: *** [artist-10-m-r.pcf] Error 1
 * 
 * ERROR: media-fonts/lfpfonts-fix-0.83-r2 failed.
 * Call stack:
 *   ebuild.sh, line 1654:   Called dyn_compile
 *   ebuild.sh, line 990:   Called qa_call 'src_compile'
 *   ebuild.sh, line 44:   Called src_compile
 *   lfpfonts-fix-0.83-r2.ebuild, line 37:   Called font-ebdftopcf_src_compile
 *   font-ebdftopcf.eclass, line 42:   Called ebdftopcf './computer-09-m-r-alt.bdf' './test-09-b-r-alt.bdf' './matto-14-b-r.bdf' './escher-10-m-r.bdf' './matto-12-m-r.bdf' './artist-10-m-r-serif.bdf' './thin-09-m-r.bdf' './test-11-bb-r-alt.bdf' './trachtenberg-11-m-r.bdf' './asimov-09-m-r.bdf' './gamow-05-m-r.bdf' './cantor-10-m-r.bdf' './gamow-07-m-i.bdf' './eurotype-12-m-r.bdf' './lucidaterminal-10-m-r.bdf' './terminal-20-m-r.bdf' './shine-08-m-r.bdf' './hollow-11-m-r.bdf' './noxis-08-m-r.bdf' './gamow-09-m-i.bdf' './gamow-07-b-i.bdf' './ocr-10-m-r.bdf' './terminal-10-m-r.bdf' './gamow-08-b-r.bdf' './lomonosov-08-m-r.bdf' './gamow-08-m-r.bdf' './uniread-08-m-r.bdf' './antique-10-m-r.bdf' './gamow-07-m-r-sc.bdf' './gamow-09-m-i-sc.bdf' './feynman-10-m-r.bdf' './gamow-09-b-r.bdf' './gamow-09-m-r.bdf' './artist-10-m-r.bdf' './test-10-m-r-alt.bdf' './terminal-16-m-r.bdf' './zin-09-t-r.bdf' './kandinsky-09-m-r.bdf' './lomonosov-10-m-r.bdf' './terminal-10-m-r-sc.bdf' './bright-09-m-r.bdf' './computer-09-m-r.bdf' './gagarin-10-m-r-sc.bdf' './computer-11-m-r.bdf' './gamow-09-b-i.bdf' './smooth-09-m-r.bdf' './gamow-09-b-i-sc.bdf' './gamow-09-b-r-alt.bdf' './test-11-m-r-alt.bdf' './test-09-m-r.bdf' './matto-10-m-r.bdf' './gamow-07-b-r.bdf' './test-10-m-r.bdf' './gamow-06-m-r.bdf' './matto-small-12-m-r.bdf' './tixus-08-m-r-alt.bdf' './test-11-b-r-alt.bdf' './gamow-09-b-r-sc-alt.bdf' './cntdown-09-m-r.bdf' './artist-10-m-r-alt.bdf' './gamow-08-m-r-sc.bdf' './zin-09-m-r.bdf' './tixus-08-m-r.bdf' './julie-10-m-r.bdf' './uniread-09-m-i.bdf' './uniread-10-m-r.bdf' './kandinsky-08-m-r-alt.bdf' './gamow-08-m-i.bdf' './gagarin-10-m-r.bdf' './uniread-09-m-r.bdf' './artsie-09-m-r.bdf' './cantor-10-m-r-sc.bdf' './test-14-m-r-alt.bdf' './test-09-m-r-alt.bdf' './gagarin-10-m-i.bdf' './gamow-08-b-i.bdf' './gamow-07-m-r.bdf' './nexus-08-m-r.bdf' './lucidaterminal-10-b-r.bdf'
 *   font-ebdftopcf.eclass, line 33:   Called die
 * 
 * Failed to build PCF files
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/media-fonts/lfpfonts-fix-0.83-r2/temp/build.log'.
 * 

 * Messages for package media-fonts/lfpfonts-fix-0.83-r2:

 * 
 * ERROR: media-fonts/lfpfonts-fix-0.83-r2 failed.
 * Call stack:
 *   ebuild.sh, line 1654:   Called dyn_compile
 *   ebuild.sh, line 990:   Called qa_call 'src_compile'
 *   ebuild.sh, line 44:   Called src_compile
 *   lfpfonts-fix-0.83-r2.ebuild, line 37:   Called font-ebdftopcf_src_compile
 *   font-ebdftopcf.eclass, line 42:   Called ebdftopcf './computer-09-m-r-alt.bdf' './test-09-b-r-alt.bdf' './matto-14-b-r.bdf' './escher-10-m-r.bdf' './matto-12-m-r.bdf' './artist-10-m-r-serif.bdf' './thin-09-m-r.bdf' './test-11-bb-r-alt.bdf' './trachtenberg-11-m-r.bdf' './asimov-09-m-r.bdf' './gamow-05-m-r.bdf' './cantor-10-m-r.bdf' './gamow-07-m-i.bdf' './eurotype-12-m-r.bdf' './lucidaterminal-10-m-r.bdf' './terminal-20-m-r.bdf' './shine-08-m-r.bdf' './hollow-11-m-r.bdf' './noxis-08-m-r.bdf' './gamow-09-m-i.bdf' './gamow-07-b-i.bdf' './ocr-10-m-r.bdf' './terminal-10-m-r.bdf' './gamow-08-b-r.bdf' './lomonosov-08-m-r.bdf' './gamow-08-m-r.bdf' './uniread-08-m-r.bdf' './antique-10-m-r.bdf' './gamow-07-m-r-sc.bdf' './gamow-09-m-i-sc.bdf' './feynman-10-m-r.bdf' './gamow-09-b-r.bdf' './gamow-09-m-r.bdf' './artist-10-m-r.bdf' './test-10-m-r-alt.bdf' './terminal-16-m-r.bdf' './zin-09-t-r.bdf' './kandinsky-09-m-r.bdf' './lomonosov-10-m-r.bdf' './terminal-10-m-r-sc.bdf' './bright-09-m-r.bdf' './computer-09-m-r.bdf' './gagarin-10-m-r-sc.bdf' './computer-11-m-r.bdf' './gamow-09-b-i.bdf' './smooth-09-m-r.bdf' './gamow-09-b-i-sc.bdf' './gamow-09-b-r-alt.bdf' './test-11-m-r-alt.bdf' './test-09-m-r.bdf' './matto-10-m-r.bdf' './gamow-07-b-r.bdf' './test-10-m-r.bdf' './gamow-06-m-r.bdf' './matto-small-12-m-r.bdf' './tixus-08-m-r-alt.bdf' './test-11-b-r-alt.bdf' './gamow-09-b-r-sc-alt.bdf' './cntdown-09-m-r.bdf' './artist-10-m-r-alt.bdf' './gamow-08-m-r-sc.bdf' './zin-09-m-r.bdf' './tixus-08-m-r.bdf' './julie-10-m-r.bdf' './uniread-09-m-i.bdf' './uniread-10-m-r.bdf' './kandinsky-08-m-r-alt.bdf' './gamow-08-m-i.bdf' './gagarin-10-m-r.bdf' './uniread-09-m-r.bdf' './artsie-09-m-r.bdf' './cantor-10-m-r-sc.bdf' './test-14-m-r-alt.bdf' './test-09-m-r-alt.bdf' './gagarin-10-m-i.bdf' './gamow-08-b-i.bdf' './gamow-07-m-r.bdf' './nexus-08-m-r.bdf' './lucidaterminal-10-b-r.bdf'
 *   font-ebdftopcf.eclass, line 33:   Called die
 * 
 * Failed to build PCF files
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/media-fonts/lfpfonts-fix-0.83-r2/temp/build.log'.


# emerge --info
Portage 2.1.3.9 (default-linux/x86/2007.0/desktop, gcc-4.2.0, glibc-2.6.1-r0, 2.6.22.6 i686)
=================================================================
System uname: 2.6.22.6 i686 Mobile Intel(R) Pentium(R) 4 - M CPU 1.80GHz
Timestamp of tree: Thu, 20 Sep 2007 14:30:01 +0000
app-shells/bash:     3.2_p17-r1
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.3.6-r2, 2.4.4-r5, 2.5.1-r2
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.10-r4
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18
sys-devel/gcc-config: 1.4.0-r2
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.22-r2
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -mmmx -msse -msse2 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /usr/spool/PBS /var/bind /var/qmail/alias /var/qmail/control /var/vpopmail/domains /var/vpopmail/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=pentium4 -mmmx -msse -msse2 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LINGUAS="en cs cz"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="FFmpeg X Xaw3d a52 aac aalib acl acpi alsa amr amrnb amrwb apache2 asf ati avi berkdb bitmap-fonts bonobo caca cairo cddb cdio cdparanoia cdr cli cpudetection cracklib crypt cscope ctype cups curl dba dbus dga directfb divx divx5 divx5linux dri dts dv dvb dvd dvdr dvdread eds emacs emacs-w3 emboss emf encode ethereal evo f77 faad faad2 fam fame fbcon ffmpeg firefox flac flash fortran fvwm fvwm2 gb gcj gd gdbm ggi gif gphoto2 gpm gstreamer gtk gtk2 gtkhtml hal highvolume i8x0 icc iconv ieee1394 ifc imagemagick imlib imlib2 inifile innodb isdnlog ithreads jack java jpeg kdtree kerberos lcms leim libcaca libedit libwww live lzo mad matroska mcal mesa mhash midi mikmod ming mjpeg mmx mmx2 mmxext mng modplug motif mozilla mp2 mp3 mpeg mpi mudflap mule musepack mysql ncurses network nls nptl nptlonly ogg oggvorbis opengl openmp oss pam pcre pda pdf pdflib perl plotutils plugin png poppler ppds pppd pthread pthreads python qt qt3 qt3support qt4 qtx quicktime readline reflection rtc samba scanner scp server session slp spell spl sse sse2 ssl ssse3 stroke svg tcl tcltk tcpd tetex theora thread threads tiff tk truetype truetype-fonts type1-fonts unicode usb userlocales v4l v4l2 vcd vidix vorbis win32codecs winvidix wlan wmf x264 x86 xanim xml xml2 xorg xosd xprint xv xvid xvmc zeo zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en cs cz" USERLAND="GNU" VIDEO_CARDS="radeon"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 4 Marijn 2007-09-23 11:21:52 UTC
Just tried to re-emerge (emerge --oneshot) the fonts on a machine that actually already has them installed and I got the exact same error. It seems like some package changed which broke these fonts :\.
Comment 5 Ed Catmur 2007-09-23 23:06:32 UTC
The problem is this line in the ebuild:

                cat < ${a} | ( rm ${a}; sed '/^FONT /s/\(.*-\)C*-/\1C-/' > ${a} )

This is an obvious race; occasionally rm will remove the file before cat reads it.

The solution is to use sed -i.
Comment 6 Ed Catmur 2007-09-23 23:09:58 UTC
Created attachment 131742 [details]
lfpfonts-fix-0.83-r2.ebuild

Fixed ebuild.
Comment 7 Ed Catmur 2007-09-23 23:16:18 UTC
(In reply to comment #5)
> The problem is this line in the ebuild:
> 
>                 cat < ${a} | ( rm ${a}; sed '/^FONT /s/\(.*-\)C*-/\1C-/' > ${a}
> )
> 
> This is an obvious race; occasionally rm will remove the file before cat reads
> it.
Actually, that's not quite what's happening; rather, whereas the intended behaviour is:

1. ${a} is opened as cat's stdin (redirection)
2. rm unlinks ${a}
3. ${a} is created and opened as sed's stdout
4. cat reads, from the unlinked file formerly named ${a}
5. sed writes, to ${a}

However, a race can occur between the shell setting up the redirections and rm unlinking the file, such that:

1. rm unlinks ${a}; ${a} is deleted
2. ${a} is truncated and opened as sed's stdout
3. ${a} is opened as cat's stdin
4. cat reads, from the empty ${a}
5. sed writes (nothing), to ${a}

The fix is the same, of course.
Comment 8 Ryan Hill (RETIRED) gentoo-dev 2007-09-24 01:09:36 UTC
yuck.  thanks ed.