pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/51728: devel/ncurses renaming of lib{form,menu,panel} should be reverted before next release
The following reply was made to PR pkg/51728; it has been noted by GNATS.
From: David Holland <dholland-pbugs%netbsd.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc:
Subject: Re: pkg/51728: devel/ncurses renaming of lib{form,menu,panel} should
be reverted before next release
Date: Sun, 25 Dec 2016 19:41:49 +0000
On Sun, Dec 25, 2016 at 07:25:00PM +0000, David Holland wrote:
> > To rename such well-known libraries is imposing on each porter an
> > obligation to search through the package to see whether
> > lib{form,menu,panel} are used, and if so, to find out how to rename
> > these libraries with patches that can NEVER be accepted upstream.
>
> Nope...
to expand on this (since on reflection I'm not sure how much you may
know about this stuff so far)
- work/.buildlink/lib should contain links pointing to the correct
curses, form, panel, etc. libraries.
- the wrappers rewrite all compiler invocations to add
-L${WKRDIR}/.buildlink/lib.
- either the wrappers should translate -lform to the renamed name, or
there should be a libform.so in .buildlink/lib that's a link to the
renamed lib. (If neither of these is the case, the renaming is broken
and needs to be fixed. Check work/.work.log to see what the wrappers
do.)
- the wrappers also prune package-supplied -L options like
-L/wrong/base/dir or -L/usr/local/lib or whatever. Also /usr/pkg/lib.
- therefore, any package that just does -lform -lcurses will get the
right libraries and (for the most part) will not be able to use the
wrong libraries.
Packages that use curses but don't include mk/curses.bl3.mk will not
get the right sausage out. This will not keep them from building on
systems with curses libraries on the default linker path (typically
only /usr/lib) because the wrappers can't effectively intercept that.
Most of these should have been found and fixed already by now,
though.
Packages that are too smart for their own good and do too-clever
configure tests instead of just running the compiler like autoconf
will sometimes find things they aren't supposed to see, draw wrong
conclusions, and fail. This is probably what's happening with cmake.
To fix this problem properly we need to figure out why it probed
itself an inconsistent set of assumptions than then failed. Which
means looking at the logic that probes for CURSES_FORM_LIBRARY and
figuring out what it did that circumvented the wrappers.
I am assuming CMAKE_USE_SYSTEM_FORM means "don't use some random copy
of libform that came in the cmake distfile" and should therefore
always be set to "ON".
--
David A. Holland
dholland%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index