Bug 205500

Summary: shells/zsh: Remove extraneous curses.so from pkg-plist
Product: Ports & Packages Reporter: Albert Ou <aou>
Component: Individual Port(s)Assignee: Adam Weinberger <adamw>
Status: Closed FIXED    
Severity: Affects Only Me Keywords: easy, patch, patch-ready, regression
Priority: --- Flags: bugzilla: maintainer-feedback? (adamw)
Version: Latest   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
Remove curses.so entry
none
Build log
none
config.log
none
make -C /usr/ports/shells/zsh showconfig
none
pkg info
none
/etc/make.conf none

Description Albert Ou 2015-12-21 22:41:50 UTC
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.

Thanks.

# 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
Path: shells/zsh
Working Copy Root Path: /usr/ports
URL: svn://svn.freebsd.org/ports/head/shells/zsh
Relative URL: ^/head/shells/zsh
Repository Root: svn://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 404194
Node Kind: directory
Schedule: normal
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 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
Comment 1 Adam Weinberger freebsd_committer 2015-12-22 17:54:29 UTC
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'
Comment 2 Albert Ou 2015-12-23 04:31:05 UTC
Created attachment 164531 [details]
Build log
Comment 3 Albert Ou 2015-12-23 04:31:26 UTC
Created attachment 164532 [details]
config.log
Comment 4 Albert Ou 2015-12-23 04:32:10 UTC
Created attachment 164533 [details]
make -C /usr/ports/shells/zsh showconfig
Comment 5 Albert Ou 2015-12-23 04:32:25 UTC
Created attachment 164534 [details]
pkg info
Comment 6 Albert Ou 2015-12-23 04:32:39 UTC
Created attachment 164535 [details]
/etc/make.conf
Comment 7 Albert Ou 2015-12-23 04:37:11 UTC
(In reply to Adam Weinberger from comment #1)

Hi Adam,

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.

Thanks.
Comment 8 commit-hook freebsd_committer 2015-12-23 22:57:32 UTC
A commit references this bug:

Author: adamw
Date: Wed Dec 23 22:56:46 UTC 2015
New revision: 404326
URL: https://svnweb.freebsd.org/changeset/ports/404326

Log:
  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.

  PR:	205500

Changes:
  head/shells/zsh/Makefile
Comment 9 Adam Weinberger freebsd_committer 2015-12-23 22:59:44 UTC
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.
Comment 10 Albert Ou 2015-12-24 02:34:48 UTC
Adam, thanks for figuring this out.