Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 20777 - par-1.1 ebuild bug in sed command line
Summary: par-1.1 ebuild bug in sed command line
Status: VERIFIED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: x86 Linux
: High major
Assignee: Martin Holzer (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-05-11 00:45 UTC by Rees Machtemes
Modified: 2011-10-30 22:19 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rees Machtemes 2003-05-11 00:45:40 UTC
emerge par fails. the following is the output from that command:

Calculating dependencies ...done!
>>> emerge (1 of 1) app-arch/par-1.1 to /
>>> md5 ;-) par-v1.1.tar.gz
>>> Unpacking source...
>>> Unpacking par-v1.1.tar.gz to /var/tmp/portage/par-1.1/work
sed: -e expression #1, char 87: Unterminated `s' command
>>> Source unpacked.
make: *** No targets.  Stop.
 
!!! ERROR: app-arch/par-1.1 failed.
!!! Function src_compile, Line 25, Exitcode 2
!!! (no error message)

as you can see, sed fails to substitute the CFLAGS in the orignal makefile due
to a bug in the ebuild. the ebuild uses double quotes in the sed command which
can cause problems. ideally, when specifing a script on the command line with
sed, single quotes should be used. modifiying the ebuild fixes this problem.

here is the output from 'emerge info':

Portage 2.0.47-r10 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4)
=================================================================
System uname: 2.4.20-gentoo-r4 i686 AMD Athlon(TM) XP 2100+
GENTOO_MIRRORS=" ftp://mirror.iawnet.sandia.gov/pub/gentoo/"
CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config
/usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config
/usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
PORTDIR="/usr/portage"
DISTDIR="/usr/portage/distfiles"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR_OVERLAY=""
USE="3dnow cups gif libg++ mikmod mmx ncurses nls spell xml2 gdbm berkdb slang
readline tetex svga guile gpm tcpd ssl motif kde qt -alsa arts apm avi bonobo
cdr crypt dga encode esd gnome gtk gtk2 gtkhtml imlib java jpeg leim libwww
mozilla mpeg oggvorbis opengl oss pam pda pdflib perl png python quicktime
scanner sdl
sse tcltk tiff truetype usb X xmms xv zlib x86"
COMPILER="gcc3"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer -m3dnow -msse
-mfpmath=sse -mmmx -falign-functions=4 -ffast-math"
CXXFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer -m3dnow -msse
-mfpmath=sse -mmmx -falign-functions=4 -ffast-math"
ACCEPT_KEYWORDS="x86"
MAKEOPTS="-j2"
AUTOCLEAN="yes"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
FEATURES="sandbox ccache"

there is only one version of par, par-1.1, and it is affected. i am currently
using sed ver. 4.0.7.

by going into /var/tmp/portage/par-1.1/work/par-cmdline and testing the sed
command from the ebuild seperately, the sed command no longer fails. previously,
it would output a blank 'Makefile' since sed bombed out with an error. this is
what causes 'emerge par' to report " make: *** No targets.  Stop."

Reproducible: Always
Steps to Reproduce:
1. emerge par
Actual Results:  
command failed with the error 

"!!! ERROR: app-arch/par-1.1 failed.
!!! Function src_compile, Line 25, Exitcode 2
!!! (no error message)"

Expected Results:  
should have emerged par

sed command line in /usr/portage/app-arch/par/par-1.1.ebuild should read as follows:
" sed 's/CFLAGS.*/CFLAGS = -Wall $CFLAGS/' Makefile.orig > Makefile"
instead of
"sed "s/CFLAGS.*/CFLAGS = -Wall $CFLAGS/" Makefile.orig > Makefile"

last minute note: this does not solve the problem. changing the above results in:

 Calculating dependencies ...done!
>>> emerge (1 of 1) app-arch/par-1.1 to /
>>> md5 ;-) par-v1.1.tar.gz
>>> Unpacking source...
>>> Unpacking par-v1.1.tar.gz to /var/tmp/portage/par-1.1/work
>>> Source unpacked.
gcc -Wall FLAGS   -c -o backend.o backend.c
gcc -Wall FLAGS   -c -o checkpar.o checkpar.c
gcc: cannot specify -o with -c or -S and multiple compilations
make: *** [backend.o] Error 1
make: *** Waiting for unfinished jobs....
gcc: cannot specify -o with -c or -S and multiple compilations
make: *** [checkpar.o] Error 1
 
!!! ERROR: app-arch/par-1.1 failed.
!!! Function src_compile, Line 25, Exitcode 2
!!! (no error message)

I thought I had fixed this for sure! It seems like sed does not interpret
$CFLAGS in its command line as a shell variable, and instead puts '$CFLAGS'
verbatim in the new output Makefile. So now running 'make' fails since gcc
thinks more than one input file is being used.

Hopefully more collaboration can fix this buggy ebuild. I'd really like to get
par to work!
Comment 1 Martin Holzer (RETIRED) gentoo-dev 2003-05-19 14:48:45 UTC
fixed in cvs

compiles fine here
Comment 2 Rees Machtemes 2003-12-28 16:42:02 UTC
This works for me now. Please close this off completely.