Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 528094 - app-text/po4a-0.45-r1: app-i18n/man-pages-de-1.7 requires po4a which is installed in /usr/script but PATH is not pointing there
Summary: app-text/po4a-0.45-r1: app-i18n/man-pages-de-1.7 requires po4a which is insta...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-03 09:51 UTC by Christian Burger
Modified: 2014-11-04 14:59 UTC (History)
0 users

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


Attachments
emerge log from dev-lang/perl and app-text/po4a (emerge-app-text-po4a.after.emerge-dev-lang-perl.text.xz,74.63 KB, application/x-xz)
2014-11-04 14:59 UTC, Christian Burger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Burger 2014-11-03 09:51:16 UTC
app-text/po4a installs its executable into /usr/script. But, there is no entry in PATH instructing the shell to search there for an executable. Yet the latest version of app-i18n/man-pages-de-1.7 requires to execute 'po4a' and fails because it cannot find it.

My quickfix on systems where I did not previously add the '/usr/script' for other reasons is:

# echo "PATH=/usr/script" > /etc/env.d/99paths && env-update && source /etc/profile

I suppose either 
1) '/usr/script/' gets added to the PATH variable on a global level or
2) app-text/po4a is instructed to install or link its scripts into '/usr/bin/'

'/usr/script/' is not part of the FHS, but its used by various packages on my system:

# cave owner /usr/script
app-text/po4a-0.45-r1::installed
dev-perl/Archive-Zip-1.300.0-r1::installed
dev-perl/DateManip-6.410.0::installed
dev-perl/SGMLSpm-1.03-r7::installed
dev-perl/libwww-perl-6.50.0::installed
perl-core/Archive-Tar-1.900.0-r1::installed
perl-core/Digest-SHA-5.820.0::installed
perl-core/ExtUtils-ParseXS-3.180.0-r1::installed
perl-core/IO-Compress-2.60.0::installed
perl-core/Module-Build-0.400.300-r1::installed
perl-core/Test-Harness-3.260.0::installed




$ emerge --info
Portage 2.2.8-r2 (hardened/linux/amd64, gcc-4.8.3, glibc-2.19-r1, 3.15.10-hardened-r1-server03 x86_64)  
=================================================================  
System uname: Linux-3.15.10-hardened-r1-server03-x86_64-Intel-R-_Core-TM-_i7-3770_CPU_@_3.40GHz-with-gentoo-2.2  
KiB Mem:    16130124 total,  11297928 free  
KiB Swap:    7813112 total,   7813112 free  
Timestamp of tree: Mon, 03 Nov 2014 00:45:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24  
distcc 3.1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          4.2_p53::<unknown repository>
dev-lang/perl:            5.18.2-r2::<unknown repository>
dev-lang/python:          2.7.7::<unknown repository>, 3.2.5-r6::<unknown repository>, 3.3.5-r1::<unknown repository>, 3.4.1::<unknown repository>
dev-util/cmake:           2.8.12.2-r1::<unknown repository>
dev-util/pkgconfig:       0.28-r1::<unknown repository>
sys-apps/baselayout:      2.2::<unknown repository>
sys-apps/openrc:          0.12.4::<unknown repository>
sys-apps/sandbox:         2.6-r1::<unknown repository>
sys-devel/autoconf:       2.69::<unknown repository>
sys-devel/automake:       1.11.6::<unknown repository>, 1.12.6::<unknown repository>, 1.13.4::<unknown repository>
sys-devel/binutils:       2.24-r3::<unknown repository>
sys-devel/gcc:            4.7.3-r1::<unknown repository>, 4.8.3::<unknown repository>
sys-devel/gcc-config:     1.7.3::<unknown repository>
sys-devel/libtool:        2.4.2-r1::<unknown repository>
sys-devel/make:           4.0-r1::<unknown repository>
sys-kernel/linux-headers: 3.13::<unknown repository> (virtual/os-headers)
sys-libs/glibc:           2.19-r1::<unknown repository>
Repositories: gentoo   
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/lib/redmine/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /var/lib/redmine/config/locales /var/lib/redmine/config/settings.yml"
CXXFLAGS="-O2 -pipe -march=native -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://de-mirror.org/distro/gentoo"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/" 
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="acl acpi amd64 bash-completion berkdb bzip2 cli cracklib crypt cxx dri fontconfig gdbm gif gpm hardened iconv icu idn inquisitio iproute2 ipv6 jpeg justify lzma mime mmap mmx modules multilib ncurses nls nptl openmp pam pax_kernel pcre png posix qa quotas readline session sse sse2 ssl syslog sysvipc tcpd threads truetype unicode urandom vhosts xattr xml xtpax zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-4 php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-11-04 08:19:42 UTC
It shouldn't install anything in /usr/script.

You might want to run something like `equery b /usr/script/po4a' to see what package installed that, if any.
Comment 2 Christian Burger 2014-11-04 14:54:33 UTC
TL;DR: Okay, I think I've got it and to my astonishment the 'Configure' script picks up on my custom '/usr/script' directory and decides to go with it. The directory got installed by a custom ebuild of mine. Here's the relevant excerpt from '/var/tmp/paludis/work/perl-5.18.2/Configure'

   9459 : Set the vendorscript variables
   9460 case "$vendorprefix" in
   9461 '')     d_vendorscript="$undef"
   9462         vendorscript=''
   9463         vendorscriptexp=''
   9464         ;;
   9465 *)      d_vendorscript="$define"
   9466         : determine where vendor-supplied scripts go.
   9467         case "$vendorscript" in
   9468         '')     dflt=$vendorprefix/script
   9469                 $test -d $dflt || dflt=$vendorbin ;;
   9470         *)  dflt="$vendorscript" ;;
   9471         esac

So either I report that upstream or I just add a file to env.d in the ebuild of the package supplying '/usr/script'. Probably the latter ... though I find it a bit inconsistent behavior. But what do I know.

I am going to close this report, but attach the build log mentioned further down just for completeness' sake.


--- full story ---

Let me state first that I am using Paludis. Though, I do not think that it should make a difference regarding the install location. 

Took me some time, but I think I found the culprit on multiple systems:

-r--r--r-- 1 root root 46672 21. Okt 12:39 /usr/lib/perl5/5.18.2/i686-linux/Config_heavy.pl
-r--r--r-- 1 root root 46866 Oct 21 12:18 /usr/lib/perl5/5.18.2/x86_64-linux/Config_heavy.pl

This file always contains the line 

installvendorscript='/usr/script'

and if I change that to

installvendorscript='/usr/bin'

all is good. BTW: There are other lines in it containing '/usr/script'.

The is part of 'dev-lang/perl'.

Just to be sure Paludis has nothing to do with it, I reinstalled dev-lang/perl and app-text/po4a with Portage. In case Paludis changed the general installation location there -- though I doubt that, the commands it executes come from the same eclasses and ebuilds. I did a 'emerge -v dev-lang/perl dev-perl/po4a', same result. I attached the console output from the emerge. Please don't wonder, that the merge removes the files from the correct position -- I had it fixed before, but when I reinstalled perl with Portage, my fix was reverted.

But you will find a line in the build log:
Pathname for the vendor-supplied scripts directory? (~name ok) [/usr/script]  


This is all happening on another system of mine, having the same issue. I wonder if dev-lang/perl picks up on my custom '/usr/script' directory and thinks: "Ah, let's install it there."

As I said: po4a is not the only package showing up in '/usr/script' -- 'cave-owner' shows which package have installed a specific file/directory just like 'equery b' does. But just to be on the safe side, 

here is the output of 'equery b /usr/script/po4a'

# equery b /usr/script/po4a
 * Searching for /usr/script/po4a ... 
app-text/po4a-0.45-r1 (/usr/script/po4a)


here is 'equery b /usr/script/'

# equery b /usr/script/
 * Searching for /usr/script/ ... 
app-text/po4a-0.45-r1 (/usr/script)
dev-perl/DBI-1.628.0 (/usr/script)
dev-perl/SGMLSpm-1.03-r7 (/usr/script)


here is a direct query on the actual package database 

# grep usr/script /var/db/pkg/app-text/po4a-0.45-r1/CONTENTS 
dir /usr/script
obj /usr/script/po4a-normalize 3dc811e0b5e4cdacbdd4e3369076ec59 1415109377
obj /usr/script/po4a-gettextize c8a19796c30924254b43f4cd97989806 1415109377
obj /usr/script/po4aman-display-po 4a30362c46273fa25808aa68bca115e6 1415109377
obj /usr/script/po4a-updatepo b0169da3d46a2ab0e9b536d0bbade8d0 1415109377
obj /usr/script/po4apod-display-po 02df6da6136b1ab27bd3f22e9f09b4fb 1415109377
obj /usr/script/po4a-build c9dc0fdf465f21e893da5ed76f93e8b5 1415109377
obj /usr/script/msguntypot 3a78c96fcdbeb215554120371c07ec39 1415109377
obj /usr/script/po4a d5af2ff40d9536080119be23b6f7bcfd 1415109377
obj /usr/script/po4a-translate 22375001aa298fcfecac20282c8fb4f5 1415109377


here is a direct query on the problematic file after I installed it with Portage

# grep -i /usr/script /usr/lib/perl5/5.18.2/x86_64-linux/Config_heavy.pl 
installvendorscript='/usr/script'
vendorscript='/usr/script'
vendorscriptexp='/usr/script'


and ownership of the file according to 'equery b'

# equery b /usr/lib64/perl5/5.18.2/x86_64-linux/Config_heavy.pl 
 * Searching for /usr/lib64/perl5/5.18.2/x86_64-linux/Config_heavy.pl ... 
dev-lang/perl-5.18.2-r2 (/usr/lib64/perl5/5.18.2/x86_64-linux/Config_heavy.pl)
Comment 3 Christian Burger 2014-11-04 14:59:37 UTC
Created attachment 388532 [details]
emerge log from dev-lang/perl and app-text/po4a