Created attachment 164474 [details]
Remove curses.so entry
Since ports r403755 (bug #181720), the zsh/curses module is no longer
built along with zsh. Assuming that this is intentional, there remains
an extraneous pkg-plist entry for curses.so, which causes a spurious
installation error with option STATIC=off.
A proposed patch is attached.
# make -C /usr/ports/shells/zsh clean build reinstall
===> Installing for zsh-5.2_1
===> Checking if zsh already installed
===> Registering installation for zsh-5.2_1
pkg-static: Unable to access file /usr/obj/usr/ports/shells/zsh/work/stage/usr/local/lib/zsh/5.2/zsh/curses.so: No such file or directory
*** Error code 74
# svnlite info /usr/ports/shells/zsh
Working Copy Root Path: /usr/ports
Relative URL: ^/head/shells/zsh
Repository Root: svn://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Node Kind: directory
Last Changed Author: adamw
Last Changed Rev: 403755
Last Changed Date: 2015-12-14 20:02:17 -0800 (Mon, 14 Dec 2015)
# uname -a
FreeBSD promptuary.ferramentum.org 10.2-RELEASE FreeBSD 10.2-RELEASE #0 r286666: Wed Aug 12 15:26:37 UTC 2015 firstname.lastname@example.org:/usr/obj/usr/src/sys/GENERIC amd64
Hi Albert. Thanks for the bug report.
I can't reproduce this, in 9.3, 10.1, or 10.2, in i386 or amd64. There's something different in your setup from mine, and I'd like to figure out what it is.
It is unusual that the file it's looking for is /usr/obj/usr/ports/[...]
Can you please attach a couple things?
* full build log
* output of 'make -C /usr/ports/shells/zsh showconfig'
* contents of /etc/make.conf
* output of 'pkg info'
Created attachment 164531 [details]
Created attachment 164532 [details]
Created attachment 164533 [details]
make -C /usr/ports/shells/zsh showconfig
Created attachment 164534 [details]
Created attachment 164535 [details]
(In reply to Adam Weinberger from comment #1)
The unorthodox /usr/obj prefix is simply a consequence of setting
WRKDIRPREFIX in make.conf(5); it is documented in ports(7).
This issue arises even if WRKDIRPREFIX is unset.
A commit references this bug:
Date: Wed Dec 23 22:56:46 UTC 2015
New revision: 404326
Partially revert r403755. It can't build the curses module against ncurses from
ports. It probably can, but configure is too smart to figure that out.
I have no confidence that linking against curses from ports results in a properly
working zshell. So, for now, back out the change. It will build a shared lib zsh
against ncurses from ports, but breaks statically-linked zsh's. Mark the port
as IGNORE if we're using ncurses from ports and building a static zsh.
Also, remove a regression-test target that isn't useful anymore (thanks to bapt
for the reminder about this).
I am not enthused about this change. It doesn't really "fix" the below PR, so
much as shoot ourselves in the other foot instead.
Well, the problem is definitely linking against a shared ncurses from ports. At this point the port is behaving poorly and you get to choose between ncurses from ports working with static or shared linking. I've put things back to how they were before. Now the port will build for you again, but not for anybody with the STATIC option enabled and ncurses from ports.
But at least there's a message about it now.
Thanks for supplying all the logs, Albert. That was really helpful.
Adam, thanks for figuring this out.