| Summary: | sys-devel/crossdev-20120305 claims to use the last overlay from PORTDIR_OVERLAY but actually uses the first | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | W. Trevor King <wking> |
| Component: | [OLD] Development | Assignee: | Embedded Gentoo Team <embedded> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | Keywords: | PATCH |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | Patch fixing crossdev implementation to match documentation | ||
I forgot to explain why I expect crossdev to use the last overlay. There's the comment in the crossdev code directly above the patched lines:
# see if user told us where to write things, otherwise
# install our stuff to the last overlay in the list
And the help message:
$ crossdev --help | grep -A1 oO
-oO, --ov-output path Overlay to write crossdev package links
[default: last from --overlays list]
the crossdev code has always picked the first overlay. better to fix the documentation than to change the behavior. http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commitdiff;h=e1e09a9a671c9c7c55a0e853d4f562472f8332f0 |
Created attachment 319512 [details] Patch fixing crossdev implementation to match documentation The crossdev code: : ${CROSSDEV_OVERLAY:=${SEARCH_OVERLAYS}} CROSSDEV_OVERLAY=${CROSSDEV_OVERLAY%% *} But: $ A="1 2 3" $ echo "${A%% *}" 1 $ echo "${A##* }" 3 With a fixed implementation, Layman users could use their default config: $ tail -n2 /etc/portage/make.conf PORTDIR_OVERLAY="/usr/local/portage" source /var/lib/layman/make.conf $ cat /var/lib/layman/make.conf PORTDIR_OVERLAY=" /var/lib/layman/abc /var/lib/layman/def $PORTDIR_OVERLAY " to install into /usr/local/portage, which is nicer than clobbering the abc (or whatever) overlay, or making them rewrite their main make.conf. I've attached a patch with the fix.