Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 149521

Summary: rsync include/exclude filtering not working
Product: Gentoo Linux Reporter: Bob <custom_basses>
Component: Current packagesAssignee: Gentoo's Team for Core System packages <base-system>
Status: RESOLVED INVALID    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Bob 2006-09-29 07:54:20 UTC
I've run into an odd idiosyncracy in Portage 2.1.1 when using rsync_excludes.  Although rsync_excludes can be used successfully to eliminate categories from the portage tree update, the syntax that is used to include specific applications in directories that are excluded seems to be failing.  

For example, look at the following excerpt from /etc/portage/rsync_excludes:

<snip>
**mail-mta/
+ media-gfx/splashutils
+ media-gfx/splash-themes-gentoo
**media-gfx/
**media-plugins/
</snip>

With these entries in the exclude file, the entire mail-mta, media-gfx, and media-plugins directories are excluded from the sync.  What is supposed to happen is that splashutils and splash-themes-gentoo are supposed to be sync'd in the media-gfx directory, while the rest of that directory is excluded.

Here is the output of emerge -uD world on a system that's otherwise fully up to date:

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

Calculating world dependencies - 
!!! Ebuilds for the following packages are either all
!!! masked or don't exist:
media-gfx/splash-themes-gentoo media-gfx/splashutils

... done!

Total size of downloads: 0 kb
</snip>

I do not have a package.mask file on the system.

# emerge --info
Portage 2.1.1 (default-linux/x86/2006.0, gcc-4.1.1, glibc-2.4-r3, 2.6.17-gentoo-r7 i686)
=================================================================
System uname: 2.6.17-gentoo-r7 i686 Pentium II (Deschutes)
Gentoo Base System version 1.12.5
Last Sync: Fri, 29 Sep 2006 14:00:01 +0000
ccache version 2.3 [enabled]
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: [Not Present]
dev-lang/python:     2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O2 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo"
CXXFLAGS="-march=i686 -O2 -fomit-frame-pointer -pipe -fvisibility-inlines-hidden"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms strict userpriv usersandbox"
GENTOO_MIRRORS="http://gentoo.netnitco.net http://gentoo.osuosl.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -s"
LINGUAS=""
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --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="x86 apache2 berkdb bitmap-fonts cli crypt dlloader dri eds elibc_glibc emboss encode esd fortran gdbm imlib kernel_linux libg++ libwww mad mikmod motif  ncurses nls nptl nptlonly pam pcre perl pppd python readline session ssl tcpd udev userland_GNU xv zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL

I am hoping that this is a simple configuration error and not a bug.  Thanks.
Comment 1 Jason Stubbs (RETIRED) gentoo-dev 2006-09-29 08:12:44 UTC
It would appear that **media-gfx/ is matched and thus excluded meaning that it is never descended into. If you change it to **media-gfx/* it should work.
Comment 2 SpanKY gentoo-dev 2006-09-29 10:33:29 UTC
portage does not parse the exclude list at all ... it merely passes it to rsync
Comment 3 SpanKY gentoo-dev 2006-09-29 10:57:12 UTC
as odd as it may seem, this is by design

you need to do:
+ media-gfx/
+ media-gfx/splashutils/
+ media-gfx/splashutils/**
- media-gfx/**