Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 329151 - emerge --fetchonly should not require USE dependencies to be satisfied
Summary: emerge --fetchonly should not require USE dependencies to be satisfied
Status: RESOLVED WONTFIX
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: High enhancement
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 533130 890303 (view as bug list)
Depends on:
Blocks: 377365
  Show dependency tree
 
Reported: 2010-07-20 18:28 UTC by Nick Bowler
Modified: 2023-01-10 12:39 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Bowler 2010-07-20 18:28:55 UTC
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
Comment 1 Sebastian Luther (few) 2010-07-20 19:12:15 UTC
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.
Comment 2 Nick Bowler 2010-07-20 19:34:49 UTC
(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.
Comment 3 Sebastian Luther (few) 2010-07-20 19:41:19 UTC
(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.
Comment 4 DarkNRG 2011-09-03 09:54:42 UTC
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.
Comment 5 Zac Medico gentoo-dev 2011-09-06 21:26:07 UTC
(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.
Comment 6 Zac Medico gentoo-dev 2011-09-19 18:34:34 UTC
(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.
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-01-10 12:37:25 UTC
*** Bug 890303 has been marked as a duplicate of this bug. ***
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-01-10 12:39:18 UTC
*** Bug 533130 has been marked as a duplicate of this bug. ***