Bug 175258 - /usr/bin/man is not an executable file after emerge of man with nls support
Bug#: 175258 Product:  Gentoo Linux Version: unspecified Platform: x86
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: base-system@gentoo.org Reported By: cwills@witznd.net
Component: Core system
URL: 
Summary: /usr/bin/man is not an executable file after emerge of man with nls support
Keywords:  
Status Whiteboard: 
Opened: 2007-04-19 19:10 0000
Description:   Opened: 2007-04-19 19:10 0000
I've had this problem for quite awhile, and it keeps showing up on every drop
of sys-apps/man.

emerge sys-apps/man with USE="nls" places a non-executable file as /usr/bin/man 

Reproducible: Always

Steps to Reproduce:
1.USE="nls" emerge man
2./usr/bin/man
3.

Actual Results:  
$ man man
-bash: /usr/bin/man: Permission denied



I've had this problem for quite a while.  

I believe the bug occurs in the install phase of the Makefile (specifically the
make install in the msgs directory).  The "man" executable in .../work/../src
directory is okay after an ebuild compile, but the file that is moved into the
.../image/usr/bin directory loses it's executable bit and is not even an
executable.

pwd   
/tmp/portage/sys-apps/man-1.6e-r3/image/usr/bin
bin # ls -l
total 68
-rwxr-xr-x 1 root root  1786 Apr 19 12:37 apropos
-rw-r--r-- 1 root root  5559 Apr 19 12:37 man
-rwxr-xr-x 1 root root   409 Apr 19 12:37 man2dvi
-rwxr-xr-x 1 root root 45824 Apr 19 12:37 man2html
lrwxrwxrwx 1 root root     3 Apr 19 12:37 manpath -> man
-rwxr-xr-x 1 root root  1784 Apr 19 12:37 whatis
bin # ./man
-su: ./man: Permission denied
bin # chmod +x man
bin # ./man
-su: ./man: cannot execute binary file


=====================
emerge --info
Portage 2.1.2.2 (default-linux/x86/2007.0, gcc-4.1.1, glibc-2.5-r0,
2.6.19.7Local i686)
=================================================================
System uname: 2.6.19.7Local i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Gentoo Base System release 1.12.9
Timestamp of tree: Thu, 19 Apr 2007 09:30:08 +0000
dev-java/java-config: 1.3.7, 2.0.31-r5
dev-lang/python:     2.3.5-r3, 2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
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.16.1-r3
sys-devel/gcc-config: 1.3.15-r1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -fomit-frame-pointer -march=pentium4 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf
/etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -fomit-frame-pointer -march=pentium4 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer nomirror sandbox sfperms strict"
GENTOO_MIRRORS="ftp://twmlinux.raleigh.ibm.com/gentoo"
LINGUAS="en_US"
MAKEOPTS="-j3"
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="/home/porttmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/ibm-internal
/usr/portage/local/layman/enlightenment"
SYNC="rsync://twmlinux.raleigh.ibm.com/gentoo-portage"
USE="X aac acl alsa apm audacious audiofile bash-completion berkdb bitmap-fonts
bzip2 cddb cdparanoia cdr clamav cli cracklib crypt cscope cups dcraw directfb
dri dvd dvdread fbcon ffmpeg fftw firefox foomaticdb fortran gdbm gif gnome gpm
gtk gtk2 hardened iconv imagemagick imlib ipv6 isdnlog javascript jbig jpeg
libg++ libwww logrotate mad mbox midi mikmod mime mmx motif mp3 mpeg mplayer
ncurses nls nptl nptlonly nsplugin opengl oss pam pcre pdf perl png postfix
pppd python quicktime readline reflection sdl session sharedmem smp sndfile
sockets sox spell spl sse sse2 ssl svg tcl tcltk tcpd tetex tiff truetype
truetype-fonts type1-fonts unicode usb vim-syntax x86 xinetd xorg xpm xv 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_US" USERLAND="GNU" VIDEO_CARDS="i810 fbdev"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS,
PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

------- Comment #1 From Bryan Østergaard (RETIRED) 2007-04-19 21:44:11 0000 -------
I'm using sys-apps/man wíth USE=nls with no problems.

------- Comment #2 From Cheyenne Wills 2007-04-20 02:49:08 0000 -------
I believe the problem might be related to either LANG="en_US" or LC_ALL="en_US"
(I haven't dug that deep into the config / makefiles)

Here is where the error is being introduced..

USE="nls" ebuild man-1.6e-r3.ebuild install > /tmp/ebuild.err 

then selecting some lines from the /tmp/ebuild.err

....

make[2]: Leaving directory
`/var/tmp/portage/sys-apps/man-1.6e-r3/work/man-1.6e/man/sl'
make[1]: Leaving directory
`/var/tmp/portage/sys-apps/man-1.6e-r3/work/man-1.6e/man'
cd msgs; make install
make[1]: Entering directory
`/var/tmp/portage/sys-apps/man-1.6e-r3/work/man-1.6e/msgs'
sh ./inst.sh "??" "/usr/bin/%N"
mkdir -p /var/tmp/portage/sys-apps/man-1.6e-r3/image//usr/bin

*#*#*#*#*#*#*#*#*#*#*#*#*#*# ERROR HERE *#*#*#*#*#*#*#*#*#*#*#*#

install -c -m 644 mess.bg.cat
/var/tmp/portage/sys-apps/man-1.6e-r3/image//usr/bin/man

*#*#*#*#*#*#*
this is repeated for each of the mess.xx.cat files.  This is overwriting
/usr/bin/man 

------- Comment #3 From SpanKY 2007-04-20 04:07:58 0000 -------
post the full build output as an attachment by running `emerge man >& log` ...
i use en_US on my machine w/out a problem

------- Comment #4 From Cheyenne Wills 2007-04-20 04:28:44 0000 -------
Created an attachment (id=116771) [details]
Output of USE="nls" emerge man >/tmp/man.log

------- Comment #5 From Peter Volkov 2007-04-21 07:36:33 0000 -------
Seems that you have set NLSPATH to wrong value. What is the output of `env |
grep NLSPATH`? Try `NLSPATH="" emerge man`.

------- Comment #6 From Cheyenne Wills 2007-04-23 22:53:01 0000 -------
Yes -- I did have a stray NLSPATH set (I had at onetime an app that required
NLSPATH to be set -- app has since changed and doesn't need it set anymore --
so on my system at least I can safely unset NLSPATH).  Setting NLSPATH to ""
does correct the install problem.  

One suggestion if having NLSPATH set is going to cause the building of man to
have problems, a QA check might be helpful in the ebuild to flag it.

Thanks for the help.

------- Comment #7 From SpanKY 2007-05-05 06:39:43 0000 -------
thanks Peter, doubt i would have caught that without spending a huge amount of
time on it ...

man-1.6e-r3 now unsets NLSPATH