Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 347269 - sys-apps/portage does not detect the change of ebuild's source repository
Summary: sys-apps/portage does not detect the change of ebuild's source repository
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 462372 (view as bug list)
Depends on:
Blocks: 240187
  Show dependency tree
 
Reported: 2010-11-30 10:33 UTC by Anton Bolshakov
Modified: 2016-06-13 16:07 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 Anton Bolshakov 2010-11-30 10:33:38 UTC
There are many cases then an ebuild (with the same name) has multiple sources.
It could be a remote or local overlay. The portage should detect such cases, let choose the priority of the source. It should also force recompilation of an ebuild if it has been removed from one of the sources. It would allow to add/remove overlays (which uses the exactly the same name and version) smoother.

Here is an example. I had eet, eeze and efreet packages in my local overlay. Recently they have been added to the portage so I have removed them from local hard disk.

Now, the source of ebuild is unknown:

[ebuild   R   ] dev-libs/eet-1.4.0_beta2  USE="nls ssl threads -debug -doc -examples -gnutls -static-libs -test%" 0 kB [?=>0]
[ebuild   R   ] dev-libs/eeze-1.0.0_beta2  USE="nls -doc -static-libs" 0 kB [?=>0]
[ebuild   R   ] dev-libs/efreet-1.0.0_beta2  USE="nls -doc -static-libs" 0 kB [?=>0]

 [?] indicates that the source repository could not be determined

I think it's should be some way to find and recompile such ebuilds.



emerge  --info
Portage 2.1.9.24 (default/linux/x86/10.0/desktop/gnome, gcc-4.4.4, glibc-2.11.2-r3, 2.6.36-gentoo i686)
=================================================================
System uname: Linux-2.6.36-gentoo-i686-Intel-R-_Pentium-R-_M_processor_1.70GHz-with-gentoo-2.0.1
Timestamp of tree: Tue, 30 Nov 2010 00:15:01 +0000
app-shells/bash:     4.1_p7
dev-java/java-config: 2.1.11-r1
dev-lang/python:     2.6.5-r3::pentoo, 3.1.2-r4
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1-r1
sys-apps/openrc:     0.6.5::pentoo
sys-apps/sandbox:    2.3-r1
sys-devel/autoconf:  2.65-r1
sys-devel/automake:  1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.4.4-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.30-r1 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA PUEL skype-eula AdobeFlash-10.1 @FSF-APPROVED"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4m -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=pentium4m -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://gentoo.channelx.biz/"
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en ru"
MAKEOPTS="-j1"
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="/var/lib/layman/enlightenment /usr/local/portage/pentoo /usr/local/portage /usr/local/portage/e17"
SYNC="rsync://rsync.sg.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa avahi bash-completion berkdb branding bzip2 cairo cdr cli consolekit cracklib crypt cxx dbus dri dts dvdr eds emboss encode evo exif fam firefox flac fortran fuse gdbm gdu gif gnome gnome-keyring gstreamer gtk hal iconv ipv6 jpeg lcms libnotify mad mikmod mng modules mp3 mp4 mpeg mudflap nautilus ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pango pcre pdf perl png policykit ppds pppd python qt3support readline samba sdl session spell ssl startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis x264 x86 xcb xml xorg xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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" CAMERAS="canon ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vesa radeon" 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, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 SpanKY gentoo-dev 2010-12-01 14:21:29 UTC
this is correct behavior.  i'm pretty sure this is a dupe, but i cant recall the bug that someone else opened.  search forums/mailing list archives for scripts people have put together for this sort of thing.
Comment 2 Anton Bolshakov 2010-12-01 22:57:52 UTC
Thanks, found the suggested workaround here:
http://forums.gentoo.org/viewtopic-t-701720-start-0.html

cd /var/db/pkg ; for x in */* ; do [[ ! -f "${x}/repository" ]] && PACKAGES="${PACKAGES} =${x}" ; done ; emerge -1 ${PACKAGES}

Comment 3 Anton Bolshakov 2010-12-05 23:26:08 UTC
Hi, I would like to reopen the bug because the script does not actually work.
It can't detect the change of the source if it's described in the "profiles/repo_name" or give false positive results (for the second run) if it's unknown.

I believe this feature should be part of the portage. Here is the test case:

bash# emerge -pv eio

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] dev-libs/eio-0.1.0.54504  USE="nls threads -doc -static-libs" 0 kB [1=>2]

Total: 1 package (1 reinstall), Size of downloads: 0 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /usr/local/portage/e17
 [2] /var/lib/layman/enlightenment

bash# emerge -DNupv world

These are the packages that would be merged, in order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 kB

I suggest to implement an additional switch for emerge which would allow to rebuild such packages.
Again, such feature would be very helpful with overlays for clean add/removal because it's quite common that overlays overlap ebuild's names.
Comment 4 Anton Bolshakov 2016-04-24 08:52:49 UTC
would be good to see some progress here
Comment 5 Rick Farina (Zero_Chaos) gentoo-dev 2016-06-13 14:50:47 UTC
       --newrepo
              Tells emerge to recompile a package if it is now being pulled from a different repository. This option also implies the --selective option.

This kinda seems like this bug just wasn't resolved after the feature was added to portage.  Is this what you wanted?
Comment 6 Anton Bolshakov 2016-06-13 15:20:50 UTC
(In reply to Rick Farina (Zero_Chaos) from comment #5)
>        --newrepo
>               Tells emerge to recompile a package if it is now being pulled
> from a different repository. This option also implies the --selective option.
> 
> This kinda seems like this bug just wasn't resolved after the feature was
> added to portage.  Is this what you wanted?

Good find. Thank you.
Yes, it is exactly what I needed.
Comment 8 Zac Medico gentoo-dev 2016-06-13 16:07:21 UTC
*** Bug 462372 has been marked as a duplicate of this bug. ***