| Summary: | media-libs/mesa: Bad string substitution in mesa-7.11.2.ebuild (when doing a prefix build with 'dri' in pathname) | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Duncan Forster <duncan.forster> |
| Component: | New packages | Assignee: | Gentoo X packagers <x11> |
| Status: | RESOLVED TEST-REQUEST | ||
| Severity: | normal | CC: | prefix |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
Possible idea:
mv -f "${x}" "${x%dri*}mesa/"
How about:
pushd "${ED}"/usr/$(get_libdir)/dri > /dev/null || die
for x in *$(get_libname);
do
if [ -f ${x} -o -L ${x} ]; then
mv -f "${x}" ../mesa/ || die "Failed to move ${x}";
fi;
done;
popd > /dev/null
thinking about this, why not just
mv -f "${ED}"/usr/$(get_libdir)/dri/*$(get_libname) "${ED}"/usr/$(get_libdir)/mesa/
?
Ducan, is this issue still valid? Yes, this is still a problem. Everytime mesa library is updated I hack the ebuild to make it work. @Duncan Forster I see different code in gx86 now, can you recheck it's fixed? |
Install phase of MESA build fails. A bad string substitution is the culprit, see below: src_install () { ... for x in "${ED}"/usr/$(get_libdir)/dri/*.so; do if [ -f ${x} -o -L ${x} ]; then mv -f "${x}" "${x/dri/mesa}" || die "Failed to move ${x}"; fi; done; This is mainly an issue with prefix builds were pathname contains 'dri'. A slightly more correct version is: ${x/dri/mesa} --> ${x/\/dri\///mesa/} Reproducible: Always Steps to Reproduce: 1. Create prefix install with a pathname that contains 'dri', such as /edrive/gentoo 2. emerge media-libs/mesa Actual Results: * Moving DRI/Gallium drivers for dynamic switching ... mv: cannot move `/edrive/gentoo/var/tmp/portage/media-libs/mesa-7.11.2/image/edrive/gentoo//usr/lib/dri/i810_dri.so' to `/emesave/gentoo/var/tmp/portage/media-libs/mesa-7.11.2/image/edrive/gentoo//usr/lib/dri/i810_dri.so': No such file or directory Expected Results: The mv should work. i.e. /edrive/gentoo/var/tmp/portage/media-libs/mesa-7.11.2/image/edrive/gentoo/usr/lib/dri/i810_dri.so to /edrive/gentoo/var/tmp/portage/media-libs/mesa-7.11.2/image/edrive/gentoo/usr/lib/mesa/i810_dri.so