Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 16706 - Unreal-Tournament No Emerge ; bash / sh problem?
Summary: Unreal-Tournament No Emerge ; bash / sh problem?
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-03-02 21:47 UTC by Jason H.
Modified: 2003-04-18 11:58 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 Jason H. 2003-03-02 21:47:05 UTC
Unreal Tournament fails to emerge, when it tries to run the installer, it
complains about /bin/sh and b0rks, but pretends as though it installed
sucessfully. Using offical installer fails too. /bin/sh works, tried to re-merge
bash,  2.05b, emerges, but problem still occurs. Tried different enviroments,
tried different methods of su, tried from xterm, and normal console. 

Reproducible: Always
Steps to Reproduce:
1. emerge unreal-tournament
2. get line that reads:
 
Uncompressing Unreal Tournament version 436 Linux
install.......................................................................
ut-install-436.run: ./setup.sh: /bin/sh: bad interpreter: Permission denied

3. Rinse and repeat

Actual Results:  
Got output of (from terminal):

main root # emerge unreal-tournament
Calculating dependencies ...done!
>>> emerge (1 of 1) app-games/unreal-tournament-436 to /
>>> md5 ;-) ut-install-436.run
>>> md5 ;-) IpDrv-436-Linux-08-20-02.zip
>>> Unpacking source...
>>> Unpacking IpDrv-436-Linux-08-20-02.zip to
/var/tmp/portage/unreal-tournament-436/work
>>> Source unpacked.
 
>>> Install unreal-tournament-436 into
/var/tmp/portage/unreal-tournament-436/image/ category app-games
Verifying archive integrity...OK
Uncompressing Unreal Tournament version 436 Linux
install.......................................................................
ut-install-436.run: ./setup.sh: /bin/sh: bad interpreter: Permission denied
The program returned an error code (126)
mv: cannot move `/var/tmp/portage/unreal-tournament-436/work/IpDrv.so' to
`/var/tmp/portage/unreal-tournament-436/image//opt/unreal-tournament/System/IpDrv.so':
No such file or directory
/usr/sbin/ebuild.sh: line 84: cd:
/var/tmp/portage/unreal-tournament-436/image//opt/unreal-tournament: No such
file or directory
ls: ./Maps/*.uz: No such file or directory
rm: cannot remove `/var/tmp/portage/unreal-tournament-436/image//usr/bin/*': No
such file or directory
man:
strip:
>>> Completed installing into /var/tmp/portage/unreal-tournament-436/image/
 
>>> Merging app-games/unreal-tournament-436 to /
--- /usr/
--- /usr/bin/
>>> /usr/bin/ut -> /opt/unreal-tournament/ut
>>> /usr/bin/ucc -> /opt/unreal-tournament/ucc
 
>>> Safely unmerging already-installed instance...
<<<        sym /usr/bin/ut
<<<        sym /usr/bin/ucc
--- !empty dir /usr/bin
--- !empty dir /usr
>>> original instance of package unmerged safely.
 
 * You might want to install the bonus packs too.
 * Many servers on the internet use them, and the
 * majority of players do too.
 
 * Just run: emerge unreal-tournament-bonuspacks
 
>>> Regenerating /etc/ld.so.cache...
>>> app-games/unreal-tournament-436 merged.
 
 app-games/unreal-tournament
    selected: none
   protected: 436
     omitted: none
 
>>> clean: No packages selected for removal.
 
>>> Regenerating /etc/ld.so.cache...
>>> Auto-cleaning packages ...
 
>>> No outdated packages were found on your system.
 
 
 * GNU info directory index is up-to-date.



Expected Results:  
Should have gotten nice installer, got squat.

Here's some portage info: 

Portage 2.0.47-r7 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r2)
=================================================================
System uname: 2.4.20-gentoo-r1 i686 AMD Duron(tm) Processor
GENTOO_MIRRORS=" ftp://csociety-ftp.ecn.purdue.edu/pub/gentoo/"
CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config
/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="x86 oss 3dnow apm avi crypt cups encode gif jpeg libg++ libwww mikmod mmx
mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib directfb
alsa gdbm berkdb slang readline arts aalib ggi java guile X sdl gpm tcpd pam ssl
python imlib oggvorbis gnome gtk qt kde motif opengl mozilla ldap bonobo cdr dvd
esd flash gd gphoto2 gtk2 gtkhtml imap jikes mbox oav perl pic samba snmp socks5
sse -svga tcltk tiff usb xface xml"
COMPILER="gcc3"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon -O3 -pipe -mmmx -msse -mfpmath=sse"
CXXFLAGS="-march=athlon -O3 -pipe -mmmx -msse -mfpmath=sse"
ACCEPT_KEYWORDS="x86"
MAKEOPTS="-j2"
AUTOCLEAN="yes"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
FEATURES="sandbox ccache"

Bash, is up to date, hmm...
Comment 1 Jason H. 2003-03-06 15:41:10 UTC
After some more tinkering, it turns out tcsh won't execute from /tmp. Furthermore, the ebuild doesn't seem to notice that the installer failed. Is there some bad setting in tcsh? And shouldn't the ebuild be able to notice?
Comment 2 Jason H. 2003-03-06 15:48:51 UTC
Semi-Solution found:

The installer tries to make executables in /tmp.
Since tcsh doesn't execute stuff in /tmp (to protect from scrpt-kiddiez, most
likely a default behavor), the installer fails to launch.
Seeing as how portage works within /usr/tmp/portage, (to prevent overfilling of
a non-separate /tmp partition), the option: --target /usr/tmp/portage/ut-436
should be placed on the end of sh ut-install-436 to insure that it is properly
installed. Otherwise, tcsh will bork and quit, furthermore, it'll make sure that the install files are extracted to the standard portage install tmp.

-Gamera2
Comment 4 Jason H. 2003-03-10 12:41:44 UTC
Nope, it's not a permission problem, tcsh won't execute things in /tmp, which is the installer's default tmp directory. Which also isn't correct, as portage is supposed to use /usr/tmp
Like I said, adding the option:
--target /usr/tmp/portage/ut-436
(replace /usr/tmp/portage with whatever exactly is appropriate for ebuilds)
to the installer.
I tried tinkering with permisions at /tmp, and it doesn't matter what it is, (shell script, self-contained executable, etc.) tcsh refuses to execute it. And all of the settings on /tmp are set to allow executions, it's just a matter of tcsh not wanting to.

Hope that explains it a little better.
Comment 5 SpanKY gentoo-dev 2003-03-10 13:04:33 UTC
you're right ... i forgot about the rest of the bug :) 
 
i remember *now* you saying how to fix it properly 
Comment 7 Jason H. 2003-03-12 11:38:46 UTC
Nope,  you need to be a /little/ more specific. The target can't exsist before hand. The installer
attempts to create one, and if it can't it panics. Sorry for all this trouble.

Calculating dependencies ...done!
>>> emerge (1 of 1) app-games/unreal-tournament-436 to /
>>> md5 ;-) ut-install-436.run
>>> md5 ;-) IpDrv-436-Linux-08-20-02.zip
>>> Unpacking source...
>>> Unpacking IpDrv-436-Linux-08-20-02.zip to /var/tmp/portage/unreal-tournament-436/work
>>> Source unpacked.
 
>>> Install unreal-tournament-436 into /var/tmp/portage/unreal-tournament-436/image/ category app-games
Creating directory /var/tmp/portage/unreal-tournament-436/temp
mkdir: cannot create directory `/var/tmp/portage/unreal-tournament-436/temp': File exists
ut-install-436.run: line 122: Cannot create target directory: command not found
ut-install-436.run: line 123: you should perhaps try option -target OtherDirectory: command not found
 
!!! ERROR: app-games/unreal-tournament-436 failed.
!!! Function src_install, Line 78, Exitcode 1
!!! (no error message)
Comment 8 Sami Nieminen 2003-04-18 11:58:42 UTC
I am getting the same error as Jason H reports above. 
 
Creating directory /var/tmp/portage/unreal-tournament-436/temp 
mkdir: cannot create directory `/var/tmp/portage/unreal-tournament-436/temp': File 
exists 
ut-install-436.run: line 122: Cannot create target directory: command not found 
ut-install-436.run: line 123: you should perhaps try option -target OtherDirectory: 
command not found 
 
!!! ERROR: app-games/unreal-tournament-436 failed. 
!!! Function src_install, Line 78, Exitcode 1 
!!! (no error message)