Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 183874 - Missing /usr/lib -> /usr/lib64 symlink blocks ccache feature in portage
Summary: Missing /usr/lib -> /usr/lib64 symlink blocks ccache feature in portage
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo non-Linux Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-01 19:05 UTC by Stefan Hoelldampf
Modified: 2008-04-12 08:49 UTC (History)
0 users

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


Attachments
patch against r20135 (bootstrap-prefix.sh.patch,1.18 KB, patch)
2008-03-31 21:31 UTC, Stefan Hoelldampf
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Hoelldampf 2007-07-01 19:05:56 UTC
Prefixed Gentoo does not create the /usr/lib -> /usr/lib64 symlink as in normal Gentoo. This blocks the portage ccache feature because ccache uses /usr/lib64/ccache/bin and /usr/lib/portage/bin/ebuild.sh only checks whether the directory /usr/lib/ccache/bin exists.
Comment 1 Timothy Redaelli (RETIRED) gentoo-dev 2007-07-01 21:49:45 UTC
Imho it's better to fix ebuild.sh
Comment 2 Fabian Groffen gentoo-dev 2007-07-02 07:34:24 UTC
It might be that baselayout should create this symlink, but maybe it does only for mulitlib systems.  Can you run emerge --info?
Comment 3 Roy Marples (RETIRED) gentoo-dev 2007-07-02 07:42:38 UTC
(In reply to comment #2)
> It might be that baselayout should create this symlink, but maybe it does only
> for mulitlib systems.

Correct - it's installed by baselayout based on the multilib settings in the profile.
Comment 4 Fabian Groffen gentoo-dev 2007-07-02 07:44:31 UTC
ok, then it's time for me to check baselayout-prefix, and most probably make a new version bump that is based on the normal baselayout.
Comment 5 Diego Elio Pettenò (RETIRED) gentoo-dev 2007-07-02 09:04:59 UTC
I'd add to that that there is still my old proposal to have a proper policy toward /usr/libexec, and then install ccache (and distcc) _there_, that would solve the issue.

Or we could fix this by adding ccache and distcc to multilib ignore, and let them install _always_ on /usr/lib if portage looks for them there; it also makes sense for them not to be ABI-limited, anyway.
Comment 6 Fabian Groffen gentoo-dev 2007-07-02 10:21:12 UTC
That's all fine with me, but for prefix I just follow the main tree, which for this bug means that baselayout should create the symlink if it does that in the main tree as well.
Comment 7 Stefan Hoelldampf 2007-07-02 20:37:30 UTC
(In reply to comment #2)
> It might be that baselayout should create this symlink, but maybe it does only
> for mulitlib systems.  Can you run emerge --info?
 
The machine runs Red Hat Enterprise Linux 4:

bash-3.2$ emerge --info
Portage 2.2.00.7085-prefix (default-prefix/linux/amd64, gcc-4.1.2, unavailable, 2.6.9-55.ELsmp x86_64)
=================================================================
System uname: 2.6.9-55.ELsmp x86_64 AMD Opteron(tm) Processor 852
Gentoo Prefix Base System version 1.12.5
Timestamp of tree: Mon, 02 Jul 2007 11:45:38 +0000
ccache version 2.4 [enabled]
dev-lang/python:     2.4.4-r04.2
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r7
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.17.50.0.17
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.24
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=opteron -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O2 -march=opteron -pipe"
DISTDIR="$HOME/gentoo/usr/portage/distfiles"
EPREFIX="$HOME/gentoo"
FEATURES="ccache collision-protect distlocks metadata-transfer parallel-fetch sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo"
LANG="en_US"
MAKEOPTS="-j5"
PKGDIR="$HOME/gentoo/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/gentoo/var/tmp"
PORTDIR="$HOME/gentoo/usr/portage"
PORTDIR_OVERLAY="$HOME/gentoo/usr/local/portage"
SYNC="svn+http://overlays.gentoo.org/svn/proj/alt/trunk/prefix-overlay"
USE="X amd64 bash-completion dvi gd gif iconv jpeg midi mng mudflap ncurses nls openmp pdf png prefix readline ssl svg tiff wmf xpm zlib" 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" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

bash-3.2$
Comment 8 Fabian Groffen gentoo-dev 2007-11-09 14:30:28 UTC
most probably fixed in baselayout-prefix-1.12.5-r5
Comment 9 Stefan Hoelldampf 2008-03-31 21:30:30 UTC
Reopening...

I've tried to nail down to root of the problem on amd64-linux.

Following http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-linux.xml the command
   $ ./bootstrap-prefix.sh $EPREFIX portage
creates /usr/lib/portage/.

During the following steps
   $ emerge --oneshot --nodeps baselayout-prefix
tries to create the required symlinks using "dosym" but fails when hitting the already existing /usr/lib directory. /lib64 -> /lib and /usr/local/lib64 -> /usr/local/lib are flawlessly created.

The attached patch creates the /usr/lib symlink when bootstrapping the tree. Right now, I've only added x86_64-pc-linux-gnu. Other targets can be easily added.
Comment 10 Stefan Hoelldampf 2008-03-31 21:31:23 UTC
Created attachment 147907 [details, diff]
patch against r20135
Comment 11 Fabian Groffen gentoo-dev 2008-04-12 08:49:24 UTC
ok, I made a similar patch to bootstrap-prefix.sh now.  I hope this solves it for new bootstraps... (and for good, until we finally rid ourselves of the multilib hell)