Trying to just update the emerge tree, updates zsh, builds ok, won't install gives this error: >>> Completed installing zsh-4.3.10-r1 into /sys_tools/var/tmp/portage/app-shells/zsh-4.3.10-r1/image/sys_tools/ ecompressdir: bzip2 -9 /sys_tools/usr/share/man * QA Notice: the following files use invalid (possible non-prefixed) shebangs: * sys_tools/usr/share/zsh/4.3.10/Util/reporter:/sys_tools/usr/bin/zsh (explicit EPREFIX but target not found) * sys_tools/usr/share/zsh/4.3.10/Misc/globtests:/sys_tools/usr/bin/zsh (explicit EPREFIX but target not found) * sys_tools/usr/share/zsh/4.3.10/Misc/globtests.ksh:/sys_tools/usr/bin/zsh (explicit EPREFIX but target not found) * ERROR: app-shells/zsh-4.3.10-r1 failed: * Aborting due to QA concerns: invalid shebangs found
interesting bug. Is there a /sys_tools/var/tmp/portage/app-shells/zsh-4.3.10-r1/image/sys_tools/usr/bin/zsh?
No, there are these /sys_tools/var/tmp/portage/app-shells/zsh-4.3.10-r1/image/sys_tools/bin/zsh /sys_tools/var/tmp/portage/app-shells/zsh-4.3.10-r1/image/sys_tools/bin/zsh-4.3.10 there though. (/bin, not /usr/bin)
Ah, phew! So the bug is valid. The scripts indeed point to non-existing interpreters. I quite forgot why this is an error and not just a warning instead. I think because if an app explicitly sets the EPREFIX, it should do it right.
Well, this only seemed to affect Solaris sparc, and x86. I have a Centos 32/64 bits OS that it emerged correctly on both of them.
The configure script probably has some logic that places zsh in /usr/bin on Solaris, and in /bin on Linux to better match the OS.
Ok, I committed a patch to portage to just warn about this when the script is not in PATH.
# install miscellaneous scripts; bug #54520 local i sed -i -e "s:/usr/local:${EPREFIX}/usr:g" "${S}"/{Util,Misc}/* || die for i in Util Misc ; do insinto /usr/share/zsh/${PV%_*}/${i} doins ${i}/* || die done Uhm, that suggests it should be the same everywhere
ok, after going left and right, this just appears to be a problem in the ebuild. I installed zsh-4.3.10-r1 on a Gentoo Linux system and I have no /usr/bin/zsh, yet still /usr/share/zsh/4.3.10/Util/reporter has shebang "#!/usr/bin/zsh". The sed -i -e "s:/usr/local:/usr:g" "${S}"/{Util,Misc}/* || die should probably just read sed -i -e "s:/usr/local::g" "${S}"/{Util,Misc}/* || die
(In reply to comment #8) > ok, after going left and right, this just appears to be a problem in the > ebuild. > > I installed zsh-4.3.10-r1 on a Gentoo Linux system and I have no /usr/bin/zsh, > yet still /usr/share/zsh/4.3.10/Util/reporter has shebang "#!/usr/bin/zsh". > > The > sed -i -e "s:/usr/local:/usr:g" "${S}"/{Util,Misc}/* || die > should probably just read > sed -i -e "s:/usr/local::g" "${S}"/{Util,Misc}/* || die > Not ideal as it switches /usr/local/bin/perl to /bin/perl (incorrect). New patch in a second.
Created attachment 234009 [details] new fix for QA concern Also, this is a diff from gentoo-x86 repo to Gentoo Prefix repo. Is it ok to commmit to gentoo-x86?
+ cp "${FILESDIR}"/zprofile "${T}"/zprofile Renamed "${FILESDIR}"/zprofile to zprofile-r1, because the other non-prefixed zsh versions wouldn't be happy with this zprofile version. | if [ -e ""/etc/profile.env ] ; then | for sh in ""/etc/profile.d/*.sh ; do look ugly. I don't think we want to remove /usr/local/{sbin,bin} from PATH.
(In reply to comment #11) > | if [ -e ""/etc/profile.env ] ; then > | for sh in ""/etc/profile.d/*.sh ; do > look ugly. Yep. Cheap alternatives are "/etc/profile.env" and "/etc/profile.d"/*.sh > I don't think we want to remove /usr/local/{sbin,bin} from PATH. For non-Prefix, yes we should keep it, however for Prefix, it should be removed.
Fixed. Thanks.