Summary: | INSTALL_MASK does nothing for installing .tbz2 from a binary repository | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Christopher Friedt <chrisfriedt> |
Component: | Binary packages support | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | kingtaco, solar |
Priority: | High | Keywords: | InVCS, REGRESSION |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | http://www.nabble.com/emerge-tbz2%27s---INSTALL_MASK-td16860637.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 216231 | ||
Attachments: |
fix environment handling for INSTALL_MASK
fix INSTALL_MASK |
Description
Christopher Friedt
2008-04-25 18:05:39 UTC
This is not a dupe of that other bug. This is a newly introduced regression. I'm able to reproduce it also using sys-apps/portage-2.1.4.4 cd /dev/shm/ ROOT=$PWD/ INSTALL_MASK="bb" emerge -Kq busybox *** Bug 219287 has been marked as a duplicate of this bug. *** INSTALL_MASK has no effect if it's defined in /etc/make.conf, but if it's exported as an environment variable it works without a problem. (In reply to comment #3) > INSTALL_MASK has no effect if it's defined in /etc/make.conf, but if it's > exported as an environment variable it works without a problem. > Sorry, that's incorrect. There are still installed .h files when I emerge to a completely blank filesystem. Created attachment 151887 [details, diff]
fix environment handling for INSTALL_MASK
(In reply to comment #5) > Created an attachment (id=151887) [edit] > fix environment handling for INSTALL_MASK > # cd /dev/shm # ROOT=${PWD} INSTALL_MASK="*.h" emerge -Kv --nodeps zlib ... # find . -name '*.h' # Excellent! Thanks a lot Zac - I was attempting to dig through the portage source code to try and fix this myself, but I really couldn't find where to begin. Oddly though, using INSTALL_MASK="bb" still doesn't strip out /bin/bb if I follow Ned's test below. Things like *.h, *.la, /usr/share, etc, work fine though. Do you think that this will find its way (back) into the main portage source? Should I mark the bug as fixed or wait until it's back in portage? (In reply to comment #6) > Oddly though, using INSTALL_MASK="bb" still doesn't strip out /bin/bb if I > follow Ned's test below. Things like *.h, *.la, /usr/share, etc, work fine > though. If you set INSTALL_MASK="*/bb" that will cause the find command in bin/misc-functions.sh to match it: set -o noglob for no_inst in ${install_mask}; do set +o noglob quiet_mode || einfo "Removing ${no_inst}" # normal stuff rm -Rf "${root}"/${no_inst} >&/dev/null # we also need to handle globs (*.a, *.h, etc) find "${root}" -path "${no_inst}" -exec rm -fR {} \; >/dev/null done > Do you think that this will find its way (back) into the main portage source? > Should I mark the bug as fixed or wait until it's back in portage? I'll mark it fixed pretty soon when portage-2.1.5_rc7 is released with the patch. (In reply to comment #7) > (In reply to comment #6) > > Oddly though, using INSTALL_MASK="bb" still doesn't strip out /bin/bb if I > > follow Ned's test below. Things like *.h, *.la, /usr/share, etc, work fine > > though. > > If you set INSTALL_MASK="*/bb" that will cause the find command in > bin/misc-functions.sh to match it: That is a change in behavior. Is it unavoidable? find "${root}" -path "${no_inst}" -exec rm -fR {} \; >/dev/null Would -o -name "{$no_inst}" also do the trick? The old syntax worked as such "/bin/{busybox,bb,foo} *.a /path/to/file base_name_file" this blocks emul-linux-x86-* building. Created attachment 152019 [details, diff] fix INSTALL_MASK (In reply to comment #8) > find "${root}" -path "${no_inst}" -exec rm -fR {} \; >/dev/null > Would -o -name "{$no_inst}" also do the trick? That's included in this new patch. (In reply to comment #9) > this blocks emul-linux-x86-* building. You can apply this patch to portage if you want. It's going to be released in portage-2.1.5_rc7 later today. (In reply to comment #10) > Created an attachment (id=152019) [edit] > fix INSTALL_MASK > > (In reply to comment #8) > > find "${root}" -path "${no_inst}" -exec rm -fR {} \; >/dev/null > > Would -o -name "{$no_inst}" also do the trick? > > That's included in this new patch. > > (In reply to comment #9) > > this blocks emul-linux-x86-* building. > > You can apply this patch to portage if you want. It's going to be released in > portage-2.1.5_rc7 later today. > I just tried this patch and it doesn't work. It seems that -name /usr/share/doc is not cut out. Apparently -name only works for files and not directories. I think that the previous patch worked, so I might go back to using that. (In reply to comment #11) > I just tried this patch and it doesn't work. It seems that -name /usr/share/doc > is not cut out. Apparently -name only works for files and not directories. I don't see how this is a problem because /usr/share/doc should be removed by the rm -Rf "${root}"/${no_inst} part. This patch is included in 2.1.5_rc7. Please reopen if there are any more problems. |