Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Reverse use of Python/Ruby versions
Date: Tue, 11 Apr 2017 04:49:08
Message-Id: pan$6a9a6$e6b1ebf2$7a81a80a$7c7bfb43@cox.net
In Reply to: Re: [gentoo-dev] Reverse use of Python/Ruby versions by "William L. Thomson Jr."
1 William L. Thomson Jr. posted on Mon, 10 Apr 2017 17:58:57 -0400 as
2 excerpted:
3
4 > When did changing targets to only have 1 version of Ruby, or 2 pythons
5 > becoming hacking. I do like how it was phrased. It shows right there the
6 > issue. If ANYONE has to hack around it, it sucks....
7 >
8 >> Well, you've already dismissed the users for which it works out of the
9 >> box... obviously they're not a proper Gentoo users if they don't break
10 >> their system and then complain that Gentoo is doing everything wrong
11 >> because they can break their systems.
12 >
13 > Only users who it works for, is those who are not wanting specific
14 > versions and not others. As in those who do not set the targets and let
15 > them be wide open, or wildcard. So they do not care what is installed.
16 >
17 > They are likely also not doing much with USE flags or other things. They
18 > obviously do not care what is on their systems.
19 >
20 > Most any system admin does care about what is on their system. Every
21 > other version is another potential for security issues etc. What good
22 > system adminstrator just installs needless stuff because they are lazy.
23
24 Not to step into the general argument here, but you're arguing in the
25 name of gentoo users, of which I am one, and are misstating facts
26 regarding the situation for users, so I thought I'd step in and correct
27 that.
28
29 FWIW:
30
31 $$ equery l python
32 * Searching for python ...
33 [IP-] [ ] dev-lang/python-2.7.13:2.7
34 [IP-] [ ] dev-lang/python-3.4.6:3.4/3.4m
35
36 $$ grep -r PYTHON_TARGETS /etc/portage
37 /etc/portage/make/useexpand:PYTHON_TARGETS="python3_4 python2_7"
38
39
40 Every once in awhile I decide to check to see if I can make that python3_5
41 yet, with something like this (lines added between packages for clarity
42 due to wrapping):
43
44 $$ emerge -vp --emptytree @world | grep python3_4 | grep -v python3_5
45
46 [ebuild R ] net-dns/bind-9.11.0_p3::gentoo USE="caps filter-aaaa
47 idn ssl threads xml zlib -berkdb -dlz -dnstap -doc -fixed-rrset -geoip -
48 gost -gssapi -ipv6 -json -ldap -libressl -lmdb -mysql -nslint -odbc -
49 postgres -python -rpz (-seccomp) (-selinux) -static-libs -urandom"
50 PYTHON_TARGETS="python2_7 python3_4" 0 KiB
51
52 [ebuild R ] app-portage/mirrorselect-2.2.2-r2::gentoo
53 PYTHON_TARGETS="python2_7 python3_4" 0 KiB
54
55 [ebuild R ] app-portage/esearch-1.3-r1::gentoo LINGUAS="-fr -it"
56 PYTHON_TARGETS="python2_7 python3_4" 0 KiB
57
58
59 OK, so I've not synced and updated since the end of March (30th) so that
60 might be slightly dated, but as of that sync, there's still three
61 packages I have installed that haven't yet been certified as having
62 python3_5 support yet.
63
64 So I continue to wait before trying the python:3.5 update. In the mean
65 time, it's locally masked so as to prevent randomly pulling it in, and
66 packages continue to "just work" with 2.7/3.4.
67
68 No real hassle or hacks. No specific per-package PYTHON_TARGET settings
69 for some other :3.x, but I've set the global PYTHON_TARGETS to get just
70 the two versions, one 3.x and one 2.x. There is as I said a simple
71 package mask to prevent pulling in :3.5 prematurely, but that's not a
72 hack, nor is it complex, it's a quite reasonable straight-forward package-
73 mask of a newer version because not everything's ready to handle it yet
74 and I don't want to pull in a third version unless I really have to.
75
76 Yet I'm anything /but/ the claimed:
77
78 > They are likely also not doing much with USE flags or other things.
79 > They obviously do not care what is on their systems.
80
81 Not only do I set USE="-* ..." to prevent devs randomly screwing up my
82 painstakingly set USE flags, but I also set -* in
83 /etc/portage/profile/packages (a newly possible negated wildcard, FWIW)
84 to negate the full cascaded @system set.
85
86 Further more, I am known to make the argument that anyone with the
87 responsibility of managing what's installed on their own systems is a de-
88 facto sysadmin, and should be taking that responsibility very seriously,
89 including the security implications of excess packages, etc, as I most
90 certainly do myself.
91
92 That's also why I run the gentoo git repo and check selected commit
93 messages based on what portage wants to update, including many of the -r
94 updates (upstream didn't update, what's important enough for a gentoo -r
95 bump and is it something I need to worry about other implications of for
96 my system?), and checking out every one of the bugs listed in the portage
97 update commit messages. Of course I check upstream changelogs as well
98 for selected important packages, and run live-git-9999 versions of some
99 of them, checking upstream git logs as well. (Not that I'd argue that
100 /every/ responsible admin must do that, but it can certainly help in
101 figuring out what went wrong with the update, sometimes, which at times
102 makes my job as an admin easier. =:^)
103
104 Taking that admin responsibility seriously is also, BTW, the big reason
105 I'm subscribed here, to get a heads-up on many of the major system
106 changes that are likely to affect me before I'm trying to figure them out
107 from emerge -vp errors. Of course it's also because I actively chose
108 gentoo as my distro and what happens in the gentoo community is something
109 I care about, not just because it affects my system, but because I'm a
110 part of that community and care what happens in it.
111
112 So I'm about the /last/ user to accuse of "not caring" about what's on my
113 system, yet apparently because I don't have PYTHON_TARGETS wildcarded and
114 didn't have to hack it to only have the two versions on the system,
115 you're claiming I /don't/ care.
116
117 Of course if I wanted the 3.x version to be 3.5, I'd have a bit more
118 hacking to do, but that just comes with the territory -- it's the same
119 sort of grabbing patches from bugzie, etc, that I had to do when I wanted
120 to run the still masked because not all packages had integrated the
121 required patches yet gcc. In fact, that's effectively what python:3.5
122 *is* on my system, via package.mask, for much the same reason, not all
123 packages I have merged have tested support for it yet.
124
125
126 Meanwhile, what you're proposing would turn that upside down. I *would*
127 have to hack things to get and keep them working then, package-masking
128 the new python for versions that didn't work with it yet that hadn't been
129 masked in the upstream gentoo and overlay repos, and/or googling gentoo
130 bugzie and the net for patches so they would work, etc, much as I had to
131 do with new gccs to get them to work, because you will have broken the
132 previously working PYTHON_TARGETS system that was keeping things sane by
133 only updating a package's PYTHON_TARGETS for a new python once it had
134 actually been tested to work with it.
135
136 --
137 Duncan - List replies preferred. No HTML msgs.
138 "Every nonfree program has a lord, a master --
139 and if you use the program, he is your master." Richard Stallman

Replies

Subject Author
Re: [gentoo-dev] Re: Reverse use of Python/Ruby versions James Potts <arek75@×××××.com>