1 |
On Wed, 15 Jul 2020 00:46:58 +0100 |
2 |
Ashley Dixon <ash@××××××××××.uk> wrote: |
3 |
|
4 |
> On Tue, Jul 14, 2020 at 11:24:31PM +0200, n952162 wrote: |
5 |
> > binary packages: how to: |
6 |
> > |
7 |
> > 1. find out if a package is binary before you install it (e.g. where on |
8 |
> > app-arch/rar does it say it's a binary package) |
9 |
> |
10 |
> RAR is an unusual case, with both the "mirror" and "bindist" flags set in the |
11 |
> RESTRICT variable (i.e., Gentoo cannot legally mirror the package, and you're |
12 |
> not allowed to redistribute binaries either). I couldn't find anything in the |
13 |
> ebuild which suggests it is a binary package; perhaps this is something that |
14 |
> should be reviewed by the Gentoo developers, as most packages supporting a |
15 |
> binary distribution provide a separate package with the `-bin` suffix, although |
16 |
> I suppose this doesn't make much sense when there is no source package. |
17 |
> |
18 |
> The entire RAR business model of free decompression and paid compression has |
19 |
> caused confusion for many people over many decades. I'd always stick to 7zip or |
20 |
> one of the classic UNIX compression utilities, if I had a choice. |
21 |
> |
22 |
> > 2. inhibit their installation |
23 |
> |
24 |
> Don't install them. ;-) |
25 |
> |
26 |
> More seriously: there's not that many of them, so it's probably not a process |
27 |
> worth automating, unless you're on a multi-user machine, in which untrusted |
28 |
> users can install packages - although I think you'd have more significant |
29 |
> problems at that point. As you've unfortunately discovered, there isn't much of |
30 |
> a concrete framework in place to automatically detect binary packages, which |
31 |
> also makes Point (3) difficult. |
32 |
> |
33 |
> > 3. get a list of the ones installed on a system |
34 |
> |
35 |
> `EIX_LIMIT=0 eix --only-names -I *-bin`, perhaps ? Unfortunately, this won't |
36 |
> catch the unusual cases, as seen with `app-arch/rar`. |
37 |
> |
38 |
> > Any ideas about that are appreciated. |
39 |
> |
40 |
> [1] might be worth a read; it's quite comprehensive, and gives you a glimpse |
41 |
> into the inner-workings of Portage, allowing you to fix these issues yourself. |
42 |
> |
43 |
> Something to note: "bindist", as the USE-flag and RESTRICT option, does not mean |
44 |
> "use a binary distribution", but rather "compile the package in such a way that |
45 |
> I can redistribute my build without putting myself in a legal problem with the |
46 |
> package authors" (this commonly is synonymous with disabling official branding): |
47 |
> |
48 |
> $ ash-euses -sk bindist |
49 |
> |
50 |
> dev-libs/openssl:bindist - Disable/Restrict EC algorithms (as they seem to be patented) -- note: changes the ABI |
51 |
> dev-libs/openssl-compat:bindist - Disable/Restrict EC algorithms (as they seem to be patented) -- note: changes the ABI |
52 |
> dev-qt/qtnetwork:bindist - Disable EC support via dev-libs/openssl |
53 |
> mail-client/thunderbird:bindist - Disable official Firefox/Thunderbird branding (icons, name) which are not binary-redistributable according to upstream. |
54 |
> media-libs/freetype:bindist - Disable ClearType support (see http://freetype.org/patents.html) |
55 |
> net-libs/liboauth:bindist - Alias for the nss USE flag, since there are license compliancy trouble when using OpenSSL. |
56 |
> net-misc/openssh:bindist - Disable EC/RC5 algorithms in OpenSSL for patent reasons. |
57 |
> sys-apps/ucspi-ssl:bindist - Disable EC/RC5 algorithms in OpenSSL for patent reasons. |
58 |
> www-client/firefox:bindist - Disable official Firefox branding (icons, name) which are not binary-redistributable according to upstream. |
59 |
> |
60 |
> Hope this helps, |
61 |
> Ashley. |
62 |
> |
63 |
> [1] https://wiki.gentoo.org/wiki/Binary_package_guide |
64 |
> |
65 |
Searching for -bin does not help to find binary only packages. Two more |
66 |
examples, which are binary only: |
67 |
zoom, skypeforlinux |
68 |
|
69 |
Searching for -bin mostly (if not always) implies that there would be a |
70 |
possibility to compile it from source. |
71 |
|
72 |
In my experience so far, every binary-only package does not have an open |
73 |
source license. So mostly you'll hit a license issue and you have to |
74 |
accept the license (/etc/portage/package.license) before you will be |
75 |
able to merge the package. Any license issue should start make you |
76 |
thinking what is going on, since it is a potential binary-only package. |
77 |
Installation of these packages is inhibited by emerge, because you have |
78 |
to accept the license first ;) |
79 |
When I look into my /etc/portage/package.license file I get a good idea |
80 |
of which packages are binary only. Not all of them are pure binary |
81 |
packages, but it is a superset as far as I can tell. |
82 |
|
83 |
To conclude: You cannot find out if a package is binary only with |
84 |
emerge. You have to do the research yourself, but |
85 |
/etc/portage/package.license is a good starting point to find potential |
86 |
candidates. |
87 |
|
88 |
Cheers |
89 |
Andreas |