After emerging sci-libs/blas-reference, sci-libs/cblas-reference, or sci-libs/lapack-reference, eselect {package} set reference will produce an error: rm: cannot remove `/usr/lib/libblas.so': Permission denied rm: cannot remove `/usr/lib/libblas.a': Permission denied ln: cannot remove `/usr/lib/libblas.so': Permission denied ln: creating symbolic link `/usr/lib/libblas.so.0': Permission denied ln: cannot remove `/usr/lib/libblas.a': Permission denied ln: creating symbolic link `/usr/lib/pkgconfig/blas.pc': Permission denied but the ebuild will report success. This is bad for further dependencies (virtual/cblas, virtual/blas, etc.) since they depend on the ${EPREFIX}/usr/lib libraries being in the right place. Reproducible: Always Steps to Reproduce: 1. emerge sci-libs/blas-reference 2. eselect blas set reference Actual Results: rm: cannot remove `/usr/lib/libblas.so': Permission denied rm: cannot remove `/usr/lib/libblas.a': Permission denied ln: cannot remove `/usr/lib/libblas.so': Permission denied ln: creating symbolic link `/usr/lib/libblas.so.0': Permission denied ln: cannot remove `/usr/lib/libblas.a': Permission denied ln: creating symbolic link `/usr/lib/pkgconfig/blas.pc': Permission denied Expected Results: successful ebuild/eselect eselect-{blas,cblas,lapack} scripts inherit skel.bash (see gentoo bug #189942) through `inherit skel`. (just for reference, the skel.bash file is in ${EPREFIX}/usr/share/eselect/libs/) and the relevant code is: ... # Set up new symlinks while read line; do # Skip comments [[ "${line}" = *#* ]] && continue line=${line//@LIBDIR@/${libdir}} set ${line} src=$1 dest=$2 ln -sf ${src} ${ROOT}${dest} done < ${implem_file} ... $ eselect blas set reference does the following: * eselect-blas script runs `inherit skel` * inerhit skel reads in ${EPREFIX}/etc/env.d/blas/lib/reference (for example, if the package is 'blas') line-by-line and creates symlinks
Created attachment 197952 [details, diff] sci-libs/lapack-reference ebuild patch
Created attachment 197954 [details, diff] sci-libs/blas-reference ebuild patch
Created attachment 197956 [details, diff] sci-libs/cblas-reference ebuild patch
Created attachment 197957 [details, diff] eselect lapack reference file patch (put in files)
Created attachment 197958 [details, diff] eselect blas reference file patch (put in files)
Created attachment 197959 [details, diff] eselect cblas reference file patch (put in files)
Comment on attachment 197952 [details, diff] sci-libs/lapack-reference ebuild patch The attached files insert a missing ${EPREFIX} in front of --libdir and also fix the eselect scripts
*** Bug 284392 has been marked as a duplicate of this bug. ***
Found another problem with the whole sci-*-eselect stuff. sci-libs/gsl won't merge, because eselect cblas add installs into /etc instead of $EPREFIX/etc due to a bug in eselect's libs/skel.bash. The attached patch fixes the problem for me. Additionally you'll need the second patch to fix get_libdirs() and thus the show/list/set helpers of eselect *.
Created attachment 207322 [details, diff] Tiny patch to fix 'eselect cblas add'.
Created attachment 207324 [details, diff] Fix eselect's libs/multilib.bash to return proper lib dirs.
(In reply to comment #10) > Created an attachment (id=207322) [details] > Tiny patch to fix 'eselect cblas add'. I don't understand how this can fix things?
(In reply to comment #12) > (In reply to comment #10) > > Created an attachment (id=207322) [details] [details] > > Tiny patch to fix 'eselect cblas add'. > > I don't understand how this can fix things? > Well $D is missing $EPREFIX whereas $ED is not. Thus the former will fail and the latter work. Anyway i second the non-existing readability of the eselect source ;)
*** Bug 277447 has been marked as a duplicate of this bug. ***
(In reply to comment #11) > Created an attachment (id=207324) [details] > Fix eselect's libs/multilib.bash to return proper lib dirs. > this is fix0rzed in eselect-1.2.7
Created attachment 210350 [details, diff] eselect-1.2.7 ebuild patch incorporates patch by Heiko Przybyl into eselect-1.2.7 (can we incorporate this into the main trunk?)
Created attachment 210352 [details, diff] eselect-1.2.7 files patch see: Heiko Przybyl patch. This one works with eselect-1.2.7, patching libs/skel.bash.in prior to compilation (can we incorporate into main trunk?)
no, since it's wrong, I filed bug #293317 for this issue
blas-reference ebuild fixed
Comment on attachment 210350 [details, diff] eselect-1.2.7 ebuild patch ok, thx fabian
Comment on attachment 210352 [details, diff] eselect-1.2.7 files patch ok, thx fabian
can we do the following: * apply the same patch to sci-libs/cblas-reference * ecopy virtual/cblas-1.0 ebuild (works fine) so that dev-python/numpy-1.3.0-r1 (lapack) and sci-libs/scipy-0.7.1 work?
lapack-reference ebuild fixed too
cblas-reference imported
Comment on attachment 207322 [details, diff] Tiny patch to fix 'eselect cblas add'. invalid patch
ok, looks like we dealt with everything on this bug now, didn't we?
I think we did fix this eventually