One cannot use emerge --fetchonly or --fetch-all-uri to download sources for packages unless all USE dependencies are satisfied. For example: % emerge -pF kdelibs These are the packages that would be fetched, in order: Calculating dependencies... done! emerge: there are no ebuilds built with USE flags to satisfy ">=x11-libs/qt-webkit-4.6.0:4[kde]". !!! One of the following packages is required to complete your request: - x11-libs/qt-webkit-4.6.2-r1 (Change USE: +kde) (dependency required by "kde-base/kdelibs-4.4.4" [ebuild]) (dependency required by "kdelibs" [argument]) Especially in the case of -F, which doesn't even care about USE flags, this action should proceed and download the sources instead of bailing out. As --fetchonly does care about USE flags, it should download sourcs as if the use flags were set on the appropriate packages. Portage 2.1.8.3 (default/linux/amd64/10.0, gcc-4.4.3, glibc-2.11.2-r0, 2.6.35-rc4-00043-g140236b x86_64) ================================================================= System uname: Linux-2.6.35-rc4-00043-g140236b-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q8300_@_2.50GHz-with-gentoo-2.0.1 Timestamp of tree: Mon, 19 Jul 2010 16:40:01 +0000 distcc 3.1 x86_64-pc-linux-gnu [disabled] ccache version 2.4 [enabled] app-shells/bash: 4.0_p37 dev-java/java-config: 2.1.11 dev-lang/python: 2.6.5-r2, 3.1.2-r3 dev-util/ccache: 2.4-r7 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.1-r1 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.3-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=core2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/bin/startx /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -march=core2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps=y" FEATURES="assume-digests ccache distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://mirror.datapipe.net/gentoo" LANG="en_CA.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en_CA en ja" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl alsa amd64 berkdb bzip2 cairo cjk cli cracklib crypt cups curl cvs cxx doc dri exif fbcon ffmpeg flac fortran gdbm gpm graphviz gtk iconv icu idn imagemagick ipv6 jadetex jpeg kpathsea latex lcms mmx modules mp3 mudflap multilib ncurses nis nls nptl nptlonly ogg opengl openmp pam pcre perl png postgres pppd python qt3support readline reflection sdl session smp spl sse sse2 sse3 ssl ssse3 svg sysfs tcpd tex4ht theora tiff truetype unicode vim-syntax vorbis xcb xinerama xorg xulrunner xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_CA en ja" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="intel fbdev" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
No, it shouldn't. The current hack for unsatisfied deps already leads to strange behavior (bug 314579). The resulting fetch could be incomplete because use flags change which deps are pulled in, not to speak of use conditionals in SRC_URI.
(In reply to comment #1) > No, it shouldn't. The current hack for unsatisfied deps already leads to > strange behavior (bug 314579). That looks like an unrelated bug to me -- it looks like too much stuff gets fetched there? IMO it's totally fine if too much stuff gets fetched. > The resulting fetch could be incomplete because use flags change which deps > are pulled in, not to speak of use conditionals in SRC_URI. Conditionals in SRC_URI should not be a problem in the --fetch-all-uri case.
(In reply to comment #2) > (In reply to comment #1) > > No, it shouldn't. The current hack for unsatisfied deps already leads to > > strange behavior (bug 314579). > > That looks like an unrelated bug to me -- it looks like too much stuff gets > fetched there? IMO it's totally fine if too much stuff gets fetched. > > > The resulting fetch could be incomplete because use flags change which deps > > are pulled in, not to speak of use conditionals in SRC_URI. > > Conditionals in SRC_URI should not be a problem in the --fetch-all-uri case. > Especially in the USE case, it could be the other way around. Anyway, people will always complain.
I have the same problem on my server, which fetches files needed for my Gentoo boxes during the night. The list of packages on the Gentoo boxes is created by equery list -F '\$cp' '*' an then copied to the server. The server of course has different use flags than my Gentoo boxes. I even tried with --keep-going like: "emerge --fetch-all-uri --keep-going `cat /tmp/all-installed-pkgs`" but it didn't work either. So maybe --keep-going (in combination with --fetchonly|--fetch-all-uri) should be extended so that it skips unmet requirements because in this case the user told emerge via --keep-going that it's fine if not all of the packages could be processed.
(In reply to comment #4) > I have the same problem on my server, which fetches files needed for my Gentoo > boxes during the night. > The list of packages on the Gentoo boxes is created by > equery list -F '\$cp' '*' > an then copied to the server. > > The server of course has different use flags than my Gentoo boxes. I think this goes beyond the scope of what emerge --fetch should do. I've filed bug 382089 for a more general purpose mirroring tool.
(In reply to comment #1) > The resulting fetch could be incomplete because use flags change which deps are > pulled in, not to speak of use conditionals in SRC_URI. Right. It's just not reliable enough to be worth the trouble, so I'm closing this as WONTFIX. We can consider adding emerge --fetch like options to the mirroring tool that's planned for bug 382089.
*** Bug 890303 has been marked as a duplicate of this bug. ***
*** Bug 533130 has been marked as a duplicate of this bug. ***