Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] tinfo flag
Date: Wed, 07 Dec 2016 15:28:16
Message-Id: b021b97d-5fdb-a35a-5b52-d2bfa32f4a59@gentoo.org
In Reply to: Re: [gentoo-dev] tinfo flag by konsolebox
1 On 07/12/16 05:40 AM, konsolebox wrote:
2 > On Wed, Dec 7, 2016 at 5:16 PM, Michał Górny <mgorny@g.o> wrote:
3 >> On Wed, 7 Dec 2016 16:16:45 +0800
4 >> konsolebox <konsolebox@×××××.com> wrote:
5 >>
6 >>> On Wed, Dec 7, 2016 at 1:23 PM, Michał Górny <mgorny@g.o> wrote:
7 >>>> On Tue, 6 Dec 2016 20:11:34 -0600
8 >>>> William Hubbs <williamh@g.o> wrote:
9 >>>>
10 >>>>> On Tue, Dec 06, 2016 at 05:26:19PM -0500, Mike Gilbert wrote:
11 >>>>>> On Tue, Dec 6, 2016 at 4:15 PM, Michał Górny <mgorny@g.o> wrote:
12 >>>>>>> On Tue, 6 Dec 2016 12:54:26 -0500
13 >>>>>>> Mike Gilbert <floppym@g.o> wrote:
14 >>>>>>>
15 >>>>>>>> On Mon, Dec 5, 2016 at 6:13 AM, konsolebox <konsolebox@×××××.com> wrote:
16 >>>>>>>>> Please consider promoting the use of tinfo flag in packages that
17 >>>>>>>>> depend on sys-libs/ncurses so that they would synchronize properly
18 >>>>>>>>> with sys-libs/ncurses[tinfo].
19 >>>>>>>>
20 >>>>>>>> I would rather see the tinfo USE flag removed from ncurses.
21 >>>>>>>
22 >>>>>>> vapier doesn't consider this QA violation a QA violation.
23 >>>>>>>
24 >>>>>>> https://bugs.gentoo.org/487844
25 >>>>>>
26 >>>>>> Perhaps QA could take some action then?
27 >>>>>>
28 >>>>>> Updating ~1500 ebuilds with a [tinfo=] use-dep seems like a poor solution.
29 >>>>>
30 >>>>> <qa hat on>
31 >>>>> Our policies are in the dev manual, so please cite the violation there.
32 >>>>> If you can't, this is not a qa violation, so please don't call it one.
33 >>>>> </qa hat>
34 >>>>>
35 >>>>> I don't see a problem with the use flag and suggest updating the other ebuilds.
36 >>>>
37 >>>> The flag randomly changes ABI, breaking all reverse dependencies.
38 >>>> Please tell me this is a good practice.
39 >>>
40 >>> And there you had just proven that the ncurses package is installed in
41 >>> two modes, showing that a flag like tinfo is needed to represent them.
42 >>> It's not the ncurses package's fault. It's the depending packages'
43 >>> responsibility to properly adapt to it.
44 >>
45 >> Packages are not intelligent beings, so they can't have responsibility.
46 >
47 > Of course.
48 >
49 >> Package maintainers have. You can't expect people to spend a lot of
50 >> time updating a lot of packages every time a new ABI-breaking flag is
51 >> suddenly introduced in a core package, if it's not even clear if it
52 >> going to stay long-term.
53 >
54 > So you're suggesting to wait and keep things [partly] broken until
55 > then. Why not fix things first then remove the [-tinfo] feature when
56 > everything no longer needs it instead. This is even just a one-time
57 > solution, and is not much different with the massive number of
58 > pkg-config patches currently being implemented among ebuilds. (Again,
59 > I'm not exactly liking the use of pkg-config. I'd rather have a
60 > simple export since it's good enough, easier to implement, less
61 > compromising with the source, and is more universal.)
62 >
63
64 Here's the thing -- ncurses provides all functionality regardless of
65 whether it's split into two libs (libncurses+libtinfo) or not. So
66 what this flag is really doing is providing the capability of linking
67 to just part of ncurses instead of all of it, if a project desires.
68 And projects(binary ones at that) are doing this, which is why we have
69 some deps that require the tinfo flag to be enabled currently.
70
71 There is only one instance of a dependency atom that requires the
72 tinfo flag to be disabled, and that package is an old game whos build
73 system and ebuild is flawed in this regard. All others are fine with
74 the flag being enabled so far as I can tell (and if they're not then
75 it's a bug that needs to be addressed anyhow).
76
77 SO, in summary, it would seem to make sense (since anything prebuilt
78 will work as-is, and anything compiled will be built to work with it)
79 to remove the tinfo flag but force libtinfo to be built and installed
80 -- simply make it non-optional. Additionally, we can set
81 SLOT="0/6tinfo" which will trigger subslot rebuilds to ensure anything
82 that may need to be rebuilt to link to both libncurses and libtinfo
83 will be rebuilt when the tinfo-IUSE-less version gets installed.
84
85 We not only have a solution that'll address the
86 ABI-break-on-USE-change issue, but also a migration path that will be
87 transparent to users via a -uDN @world. I call that a win-win. The
88 only thing we lose is the easy ability to build an all-in-one
89 libncurses. So if there is an actual need for that which we have yet
90 to find, this is an official request for comments to let us know.

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] tinfo flag Pacho Ramos <pacho@g.o>
Re: [gentoo-dev] tinfo flag Daniel Campbell <zlg@g.o>