1 |
Alan McKinnon (Mon, 04 Jul 2011 18:24:54 +0200): |
2 |
> On Monday 04 July 2011 14:47:47 Roman Zilka did opine thusly: |
3 |
> > Hi once again, |
4 |
> > |
5 |
> > am I missing something or are these bugs? If bugs, do you think I |
6 |
> > should file them through bugzilla? |
7 |
> > |
8 |
> > |
9 |
> > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
10 |
> > |
11 |
> > |
12 |
> > # emerge -uDN --with-bdeps y world |
13 |
> > Calculating dependencies... done! |
14 |
> > |
15 |
> > >>> Auto-cleaning packages... |
16 |
> > >>> |
17 |
> > >>> No outdated packages were found on your system. |
18 |
> |
19 |
> So a routine world update says nothing needs to be done right now. |
20 |
> |
21 |
> > # emerge -uN -D 100 --with-bdeps y world |
22 |
> > Calculating dependencies... done! |
23 |
> > |
24 |
> > >>> Auto-cleaning packages... |
25 |
> > >>> |
26 |
> > >>> No outdated packages were found on your system. |
27 |
> |
28 |
> I expect this to be the same, it will halt after a depth of 100 (a |
29 |
> gigantic depth just btw) |
30 |
> |
31 |
> > |
32 |
> > # emerge -ep world |
33 |
> > .......... shows mostly remerges, but also 6 new merges, for example |
34 |
> > sys-devel/autogen and virtual/pam. Shouldn't there be no new merges |
35 |
> > here? Let's re-check. |
36 |
> > |
37 |
> > |
38 |
> > # equery d virtual/pam |
39 |
> > * These packages depend on virtual/pam: |
40 |
> > net-mail/mailbase-1 (pam ? virtual/pam) |
41 |
> > net-misc/openssh-5.8_p1-r1 (pam ? virtual/pam) |
42 |
> > sys-apps/openrc-0.8.3-r1 (pam ? virtual/pam) |
43 |
> > sys-apps/shadow-4.1.4.3 (pam ? virtual/pam) |
44 |
> > sys-auth/consolekit-0.4.4 (pam ? virtual/pam) |
45 |
> > x11-apps/xdm-1.1.10-r1 (pam ? virtual/pam) |
46 |
> > x11-misc/xlockmore-5.31 (pam ? virtual/pam) |
47 |
> > |
48 |
> > |
49 |
> > # emerge -pq virtual/pam |
50 |
> > [ebuild N ] virtual/pam-0 |
51 |
> |
52 |
> -ep is not the same as -avuND! |
53 |
> |
54 |
> The former is what happens if you tell portage to consider nothing to |
55 |
> be merged yet. It will try and rebuild every possible thing you might |
56 |
> ever need considering your setup. |
57 |
> |
58 |
> The latter is simply everything that needs to be done now. With that, |
59 |
> build deps and virtuals can be omitted as they do not need to be |
60 |
> rebuilt to satisfy the current emerge. |
61 |
> |
62 |
> Make sense? |
63 |
|
64 |
Not quite. This is how I'm thinking: if '-ep world' says virtual/pam |
65 |
needs to be installed, then it either |
66 |
* is in the world file, or |
67 |
* is in the system set, or |
68 |
* is a buildtime or runtime dependency (immediate or deep) of one of the |
69 |
packages in the world set (i.e., world file and system set combined). |
70 |
|
71 |
But it's neither in my world file, nor in my system set (checked with |
72 |
'emerge -epO system'). So it must be a dependency. Then why doesn't |
73 |
'-uDN --with-bdeps y world' demand it? Obviously, virtual/pam is listed |
74 |
as necessary for running or building something in my world set. '-uDN |
75 |
world' shouldn't omit merging something I need to run my packages. And |
76 |
with '--with-bdeps y' it also shouldn't omit merging something I might |
77 |
ever need to build these packages. |
78 |
|
79 |
The quoted equery call shows that virtual/pam is needed to run 7 pieces |
80 |
of software in my world. (I understand it's not literally needed for |
81 |
them to run, but that's the semantics of runtime deps and portage has |
82 |
no way to know the difference, I suppose.) And it's not an alternative |
83 |
to another possible dependency - it must be virtual/pam (checked some |
84 |
of the ebuilds). |
85 |
|
86 |
Even if it's all correct behavior, I'd still like to know where exactly |
87 |
is the robber on my train of thoughts. |
88 |
|
89 |
|
90 |
> > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
91 |
> > |
92 |
> > |
93 |
> > # emerge -uDN --with-bdeps y --autounmask y world |
94 |
> > Calculating dependencies... done! |
95 |
> > |
96 |
> > >>> Auto-cleaning packages... |
97 |
> > >>> |
98 |
> > >>> No outdated packages were found on your system. |
99 |
> > |
100 |
> > # grep skype /var/lib/portage/world |
101 |
> > net-im/skype |
102 |
> > |
103 |
> > |
104 |
> > # emerge -p --autounmask y skype |
105 |
> > |
106 |
> > These are the packages that would be merged, in order: |
107 |
> > |
108 |
> > Calculating dependencies... done! |
109 |
> > [ebuild U ~] net-im/skype-2.2.0.35-r1 [2.1.0.81] |
110 |
> > USE="-hardened%" |
111 |
> > |
112 |
> > The following keyword changes are necessary to proceed: |
113 |
> > #required by skype (argument) |
114 |
> > |
115 |
> > >=net-im/skype-2.2.0.35-r1 ~amd64 |
116 |
> > |
117 |
> > NOTE: This --autounmask behavior can be disabled by setting |
118 |
> > EMERGE_DEFAULT_OPTS="--autounmask=n" in make.conf. |
119 |
> > |
120 |
> > |
121 |
> > # grep KEYWORDS /usr/portage/net-im/skype/skype-2.* |
122 |
> > /usr/portage/net-im/skype/skype-2.1.0.81.ebuild:KEYWORDS="~amd64 |
123 |
> > ~x86" |
124 |
> > /usr/portage/net-im/skype/skype-2.2.0.25.ebuild:KEYWORDS="~amd64 |
125 |
> > ~x86" |
126 |
> > /usr/portage/net-im/skype/skype-2.2.0.35-r1.ebuild:KEYWORDS="~amd64 |
127 |
> > ~x86" .......... Shouldn't 'emerge -uDN world' pull in |
128 |
> > skype-2.2.0.35-r1 too, as per the autounmask functionality? |
129 |
> |
130 |
> autounmask is not the same as autounmask-write, and neither means to |
131 |
> automatically install the absolute latest version in the tree. |
132 |
> |
133 |
> The former will tell you what you need to do to satisfy deps, and the |
134 |
> current stable skype might suit. You haven't unmasked skype and |
135 |
> portage does not need to unmask anything to satisfy a world update. So |
136 |
> it is quite happy leaving things as they are. |
137 |
> |
138 |
> If you want latest skype, you have two approaches: |
139 |
> |
140 |
> Keyword it manually, |
141 |
> Run an unstable system. |
142 |
> |
143 |
> Portage will not all of it's own do anything to violate you |
144 |
> ACCEPT_KEYWORDS setting - that one trumps everything when automation |
145 |
> kicks in. |
146 |
> |
147 |
> In short, portage is working as designed and your understanding is |
148 |
> faulty. |
149 |
|
150 |
It seems that you assume that my current skype is a stable version. In |
151 |
fact, it isn't - see the quoted grep of the ebuilds. There is not a |
152 |
single stable version of skype in portage now. They're all ~arch. |
153 |
|
154 |
My ACCEPT_KEYWORDS="amd64". 'emerge skype' (I'll be omitting the |
155 |
'--autounmask y', it's the default anyway) wants to upgrade from my |
156 |
current 2.1.0.81 ~skype to 2.2.0.35-r1, which happens to be the latest |
157 |
available ~skype. I assume that's the strategy: if there's no stable |
158 |
version available, at least get the latest ~arch version. That's fine. |
159 |
But why doesn't the same strategy apply for a '-uDN world'? |
160 |
|
161 |
The manpage says nothing about this, as my eyes interepret it. There |
162 |
might be some unintended hidden behavior of --autounmask or --update or |
163 |
something else. If it's intended, I'd still like to understand the |
164 |
reasoning - just to get what's going on. |
165 |
|
166 |
|
167 |
> > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
168 |
> > |
169 |
> > |
170 |
> > I'm using latest stable portage for this - 2.1.10.3. ~arch is |
171 |
> > 2.1.10.4 and I haven't tried it, but its changelog doesn't suggest |
172 |
> > any changes in relevant areas. |
173 |
> > |
174 |
> > |
175 |
> > # cat /etc/portage/package.keywords |
176 |
> > =sys-boot/grub-1.97.1 ** |
177 |
> > =app-emulation/wine-1.3.15 ~amd64 |
178 |
> > |
179 |
> > |
180 |
> > # cat /etc/portage/package.mask |
181 |
> > <sys-boot/grub-1.0 |
182 |
> > |
183 |
> > |
184 |
> > # cat /etc/portage/package.use |
185 |
> > media-libs/libsdl joystick |
186 |
> > dev-python/PyQt4 webkit |
187 |
> > dev-libs/libxml2 python |
188 |
> > dev-lang/perl ithreads |
189 |
> > media-plugins/audacious-plugins scrobbler |
190 |
> > |
191 |
> > |
192 |
> > # emerge --info |
193 |
> > Portage 2.1.10.3 (default/linux/amd64/10.0/desktop, gcc-4.4.5, |
194 |
> > glibc-2.12.2-r0, 2.6.38-gentoo-r6 x86_64) |
195 |
> > ================================================================= |
196 |
> > System uname: |
197 |
> > Linux-2.6.38-gentoo-r6-x86_64-AMD_Athlon-tm-_X2_Dual-Core_QL-65-wit |
198 |
> > h-gentoo-2.0.2 Timestamp of tree: Sun, 03 Jul 2011 18:15:01 +0000 |
199 |
> > app-shells/bash: 4.1_p9 |
200 |
> > dev-lang/python: 2.7.1-r1, 3.1.3-r1 |
201 |
> > dev-util/cmake: 2.8.4-r1 |
202 |
> > dev-util/pkgconfig: 0.25-r2 |
203 |
> > sys-apps/baselayout: 2.0.2 |
204 |
> > sys-apps/openrc: 0.8.3-r1 |
205 |
> > sys-apps/sandbox: 2.4 |
206 |
> > sys-devel/autoconf: 2.68 |
207 |
> > sys-devel/automake: 1.9.6-r3, 1.11.1 |
208 |
> > sys-devel/binutils: 2.20.1-r1 |
209 |
> > sys-devel/gcc: 4.4.5 |
210 |
> > sys-devel/gcc-config: 1.4.1-r1 |
211 |
> > sys-devel/libtool: 2.2.10 |
212 |
> > sys-devel/make: 3.82 |
213 |
> > sys-kernel/linux-headers: 2.6.36.1 (virtual/os-headers) |
214 |
> > sys-libs/glibc: 2.12.2 |
215 |
> > Repositories: gentoo |
216 |
> > ACCEPT_KEYWORDS="amd64 x86" |
217 |
> > ACCEPT_LICENSE="*" |
218 |
> > CBUILD="x86_64-pc-linux-gnu" |
219 |
> > CFLAGS="-O2 -pipe -fomit-frame-pointer -mtune=athlon64-sse3 |
220 |
> > -march=athlon64-sse3 -mmmx -msse -msse2 -msse3 -m3dnow" |
221 |
> > CHOST="x86_64-pc-linux-gnu" |
222 |
> > CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" |
223 |
> > CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d |
224 |
> > /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release |
225 |
> > /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo |
226 |
> > /etc/texmf/language.dat.d /etc/texmf/language.def.d |
227 |
> > /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe |
228 |
> > -fomit-frame-pointer -mtune=athlon64-sse3 -march=athlon64-sse3 |
229 |
> > -mmmx -msse -msse2 -msse3 -m3dnow" DISTDIR="/tmp/distfiles" |
230 |
> > FEATURES="assume-digests binpkg-logs collision-protect distlocks |
231 |
> > ebuild-locks fixlafiles fixpackages news nodoc noinfo |
232 |
> > parallel-fetch protect-owned sandbox severe sfperms strict |
233 |
> > unknown-features-warn unmerge-logs unmerge-orphans userfetch |
234 |
> > usersync" FFLAGS="" |
235 |
> > GENTOO_MIRRORS="http://gentoo.mirror.web4u.cz/ |
236 |
> > http://gentoo.mirror.dkm.cz/pub/gentoo/ |
237 |
> > ftp://gentoo.mirror.web4u.cz/ |
238 |
> > ftp://gentoo.mirror.dkm.cz/pub/gentoo/ http://gentoo.supp.name/" |
239 |
> > LANG="en_US.UTF-8" |
240 |
> > LC_ALL="en_US.UTF-8" |
241 |
> > LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--as-needed" |
242 |
> > LINGUAS="en cs ja" |
243 |
> > MAKEOPTS="-j2" |
244 |
> > PKGDIR="/usr/portage/packages" |
245 |
> > PORTAGE_CONFIGROOT="/" |
246 |
> > PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times |
247 |
> > --compress --force --whole-file --delete --stats --timeout=180 |
248 |
> > --exclude=/distfiles --exclude=/local --exclude=/packages" |
249 |
> > PORTAGE_TMPDIR="/tmp" |
250 |
> > PORTDIR="/usr/portage" |
251 |
> > PORTDIR_OVERLAY="" |
252 |
> > SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" |
253 |
> > USE="3dnow X a52 aac acpi alsa amd64 bash-completion berkdb branding |
254 |
> > bzip2 cairo cddb cdr cjk cli consolekit cracklib crypt css dbus dri |
255 |
> > dts dv dvd dvdr encode exif fam ffmpeg flac ftp gdbm gdu geoip gif |
256 |
> > gnutls gsm gtk gzip iconv icq icu idn imap javascript jbig jpeg |
257 |
> > jpeg2k latex lcms ldap libnotify lzma mad matroska mbox mime mmx |
258 |
> > mng modules mp3 mp4 mpeg mplayer mudflap multilib musepack |
259 |
> > musicbrainz ncurses nls nocd nptl nptlonly ogg opengl oscar pam |
260 |
> > pango pcre pdf png pppd qt3support qt4 quicktime raw readline |
261 |
> > recode sdl session shorten smp sockets sound speex spell sse sse2 |
262 |
> > ssl startup-notification svg sysfs syslog szip theora threads tiff |
263 |
> > truetype udev unicode usb videos vim-syntax vorbis wavpack wifi |
264 |
> > x264 xcb xml xorg xpm xscreensaver xv xvid zlib" |
265 |
> > ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci |
266 |
> > emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 |
267 |
> > intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" |
268 |
> > ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty |
269 |
> > extplug file hooks iec958 ioplug ladspa lfloat linear meter |
270 |
> > mmap_emul mulaw multi null plug rate route share shm softvol" |
271 |
> > APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon |
272 |
> > authn_dbm authn_default authn_file authz_dbm authz_default |
273 |
> > authz_groupfile authz_host authz_owner authz_user autoindex cache |
274 |
> > cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires |
275 |
> > ext_filter file_cache filter headers include info log_config logio |
276 |
> > mem_cache mime mime_magic negotiation rewrite setenvif speling |
277 |
> > status unique_id userdir usertrack vhost_alias" |
278 |
> > CALLIGRA_FEATURES="braindump flow karbon kexi kpresenter krita |
279 |
> > tables words" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq |
280 |
> > load memory rrdtool swap syslog" ELIBC="glibc" |
281 |
> > GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin |
282 |
> > garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver |
283 |
> > oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip |
284 |
> > tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse synaptics" |
285 |
> > KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 |
286 |
> > lb216 lcdm001 mtxorb ncurses text" LINGUAS="en cs ja" |
287 |
> > PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" |
288 |
> > VIDEO_CARDS="radeon vesa fglrx" XTABLES_ADDONS="quota2 psd pknock |
289 |
> > lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition |
290 |
> > tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos |
291 |
> > account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, |
292 |
> > INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, |
293 |
> > PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS |