Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: RFC: new eclass - pkgconfig.eclass
Date: Fri, 30 Nov 2012 04:38:32
Message-Id: pan.2012.11.30.04.37.19@cox.net
In Reply to: Re: [gentoo-dev] RFC: new eclass - pkgconfig.eclass by hasufell
1 hasufell posted on Thu, 29 Nov 2012 14:16:18 +0100 as excerpted:
2
3 > again, even if there are corner cases which cannot be dealt with in a
4 > different way...
5 >
6 > having an eclass function like the mentioned one is bad, cause it
7 > suggests that this is a way to fix things. It's not. Application
8 > developers running gentoo might think "oh great, there is a pkgconfig
9 > file for this, so I can use it in my Makefile". Then a Fedora packager
10 > comes across this package and realizes a compile failure until he
11 > notices the build system is calling for a pkgconfig file that cannot be
12 > found anywhere. So he contacts this developer and asks which distro he
13 > is using.
14 >
15 > This already happened for me multiple times and the answers was
16 > "debian".
17 >
18 > All this sounds like a very dirty workaround and if you need it, then do
19 > it, but _don't_ create an eclass, cause it's not a good thing to
20 > standardize.
21 > These files should _not_ be distro-dependant. Try to find other
22 > solutions.
23 >
24 > -1 for this eclass
25
26 Suggestion/question for Justin, Mike (Spanky), and others.
27
28 Assuming people eventually agree that this is a special case, which I'm
29 beginning to think it might be after reading Justin's arguments, tho I
30 recognize that's not a settled case yet...
31
32 The glibc ebuilds use glibc-specific eblits. This keeps the glibc-
33 specific common code out of the ebuilds (and out of more general purpose
34 eclasses) and in the files dir.
35
36 Obviously that specific solution won't work for the multiple blas/
37 whatever packages, since it's single-package/multi-version specific, but
38 is there some variant of it that could work, keeping the code out of
39 eclasses where the not-for-general-purpose solution might be mistakenly
40 thought to be general purpose and get used as such, while still allowing
41 a common to the various *blas/whatever packages solution?
42
43 The best I can come up with is eblits, thus keeping it out of the
44 individual ebuilds, but forcing the eblits to be copied to all the
45 different implementations individually. Still, that'd save a bit of code
46 between multiple versions of the same package, and a script could be
47 setup that updates all the eblits in the various packages in one go, so
48 it'd be a bit better than having to do it per ebuild.
49
50 But perhaps someone else can improve on that idea...
51
52 Another alternative might be an eclass, but name it something like blas-
53 utils or some such, not pkgconfig, thus discouraging inappropriate use,
54 and put in strict warnings and possibly repoman checks, so that only a
55 specific list of packages are allowed to use it. That list could then be
56 controlled by either the science or QA teams as thought appropriate, thus
57 strictly limiting the spread of this ordinarily inappropriate practice.
58
59 --
60 Duncan - List replies preferred. No HTML msgs.
61 "Every nonfree program has a lord, a master --
62 and if you use the program, he is your master." Richard Stallman

Replies