Gentoo Archives: gentoo-dev

From: "Marty E. Plummer" <hanetzer@×××××××××.com>
To: Michael Haubenwallner <haubi@g.o>
Cc: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: sys-libs/ncurses: erronious deletion of *.dll.a files; possibly other packages affected
Date: Fri, 29 Sep 2017 08:36:31
Message-Id: 20170929083346.hmhvulf5oul4daet@proprietary-killer.fossland
In Reply to: [gentoo-dev] Re: sys-libs/ncurses: erronious deletion of *.dll.a files; possibly other packages affected by Michael Haubenwallner
1 On Fri, Sep 29, 2017 at 08:29:07AM +0000, Michael Haubenwallner wrote:
2 > On 09/29/2017 03:36 AM, Marty E. Plummer wrote:
3 > > On Thu, Sep 28, 2017 at 07:35:20PM +0000, Mike Gilbert wrote:
4 > >> On Wed, Sep 20, 2017 at 10:01 PM, Marty E. Plummer
5 > >> <hanetzer@×××××××××.com> wrote:
6 > >>> arfrever suggests I send a mail here, as there are other packages which
7 > >>> may be affected by this issue and perhaps a more generalized fix is
8 > >>> required instead of an explicit fix in sys-libs/ncurses and other ebuilds
9 > >>> that may require it.
10 > >>
11 > >> I think the solution here is to remove those overly broad "find
12 > >> -delete" statements and replace them with something safer.
13 > >>
14 > >> Ideally the build system(s) would be patched to not compile static
15 > >> libs in the first place.
16 > >>
17 > >> If that's not possible, perhaps an eclass function could be created to
18 > >> safely remove static libs.
19 > >>
20 > > Honestly I already have a pr up that fixes this particular package's
21 > > issue, fairly simple fix https://github.com/gentoo/gentoo/pull/5734
22 > >
23 > > --- a/sys-libs/ncurses/ncurses-6.0-r1.ebuild
24 > > +++ b/sys-libs/ncurses/ncurses-6.0-r1.ebuild
25 > > @@ -241,7 +241,8 @@ multilib_src_install() {
26 > > # Provide a link for -lcurses.
27 > > ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die
28 > > fi
29 > > - use static-libs || find "${ED}"/usr/ -name '*.a' -delete
30 > > + # don't delete '*.dll.a', needed for linking #631468
31 > > + use static-libs || find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete
32 >
33 > In prefix overlay we have this version:
34 >
35 > use static-libs || find "${ED}"/usr/ -name '*.a' -not -name "*$(get_libname)" -delete
36 >
37 > /haubi/
38 Won't work here, as $(get_libname) returns .dll in this case, which is
39 why the symlinking is busted

Replies