Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 86131 - files named "packages" are not being synced on a local rsync network
Summary: files named "packages" are not being synced on a local rsync network
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 87834 88131 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-03-21 06:02 UTC by Tim Redman
Modified: 2005-04-06 04:20 UTC (History)
4 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 Tim Redman 2005-03-21 06:02:01 UTC
Whenever I perform an "emerge -av depclean", I get the following response:

*** WARNING *** : DEPCLEAN CAN  SERIOUSLY  IMPAIR YOUR SYSTEM. USE CAUTION.
*** WARNING *** : (Cancel: CONTROL-C) -- ALWAYS VERIFY ALL PACKAGES IN THE
*** WARNING *** : CANDIDATE LIST FOR  SANITY  BEFORE  ALLOWING DEPCLEAN TO
*** WARNING *** : UNMERGE ANY PACKAGES.
*** WARNING *** :
*** WARNING *** : USE FLAGS MAY HAVE AN EXTREME EFFECT ON THE OUTPUT.
*** WARNING *** : SOME LIBRARIES MAY BE USED BY PACKAGES BUT ARE NOT
*** WARNING *** : CONSIDERED TO BE A DEPEND DUE TO USE FLAG SETTINGS.
*** WARNING *** : emerge --update --deep --newuse world TO VERIFY
*** WARNING *** : SANITY IN THIS REGARD.
*** WARNING *** :
*** WARNING *** : Packages  in the list  that are  desired  may be added
*** WARNING *** : directly to the world file to cause them to be ignored
*** WARNING *** : by depclean and maintained in the future. BREAKAGES DUE
*** WARNING *** : TO UNMERGING AN  ==IN-USE LIBRARY==  MAY BE REPAIRED BY
*** WARNING *** : MERGING  *** THE PACKAGE THAT COMPLAINS ***  ABOUT THE
*** WARNING *** : MISSING LIBRARY.

Calculating depclean dependencies ... done!
!!! You have no system list. Cannot determine system from world.

This is happening both on my network at home, and on my production systems at work.  I have a local rsync mirror set up in both places.  The rsync server is unaffected, but the other machines get this error.

All are using the same make.profile link (../usr/portage/profile/default-linux/x86/2004.3).  However the files are different between the rsync server machines and the workstations.  On the rsync servers, the file "packages" in that profile directory exists.  On the workstation machines, it does not.



Reproducible: Always
Steps to Reproduce:



Expected Results:  
"packages" should be sync'd during an "emerge sync".  For some reason the
profiles directory is not being completely synchronized.

default-linux/x86/2004.3 is not the only place that "packages" is missing from.
 It's also missing from all other active profiles as well.

rsyncd is set up as follows:

# /etc/rsyncd.conf
# $Header: /var/cvsroot/gentoo-x86/net-misc/rsync/files/rsyncd.conf,v 1.4
2005/03/18 02:00:40 vapier Exp $

# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help

# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
use chroot = yes
read only = yes

# Simple example for enabling your own local rsync server
[gentoo-portage]
        path = /usr/portage
        comment = Gentoo Linux Portage tree
        exclude = distfiles packages

Doing an emerge sync does not bring the package files over.

Completely removing the /usr/portage/ directory contents and an "emerge sync"
still does not bring over the "packages" files.  The packages files have the
same permissions as all other files in the profile.

The only other solution is to copy over a tarball of the portage tree.  I'd
prefer a cleaner, more permanent solution.

EMERGE INFO FOR RSYNC SERVER (LOCAL GENTOO MIRROR)

Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.3.5, glibc-2.3.4.20041102-r1,
2.6.11-gentoo-r4 i686)
=================================================================
System uname: 2.6.11-gentoo-r4 i686 AMD Athlon(tm) 64 Processor 3200+
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb  7 2005, 09:01:35)]
dev-lang/python:     2.3.4-r1
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.5, 1.7.9-r1, 1.6.3, 1.4_p6, 1.9.4, 1.8.5-r3
sys-devel/binutils:  2.15.92.0.2-r1
sys-devel/libtool:   1.5.10-r4
virtual/os-headers:  2.4.22-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=athlon-xp -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=athlon-xp -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms"
GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo
ftp://ftp.ussg.iu.edu/pub/linux/gentoo
http://open-systems.ufl.edu/mirrors/gentoo ftp://gentoo.mirrors.pair.com/"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 apache2 apm berkdb cdr crypt cups curl emboss encode fam font-server
foomaticdb gd gdbm gif imagemagick imap innodb jpeg ldap libwww mad maildir
mikmod mp3 mysql ncurses nls offensive oggvorbis oss pam perl png ppds pwdb
python readline samba slang spell ssl tcpd tiff truetype truetype-fonts
type1-fonts usb xml2 zlib"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS

EMERGE INFO FOR TYPICAL WORKSTATION

Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.3.5, glibc-2.3.4.20041102-r1,
2.6.11-gentoo-r4 i686)
=================================================================
System uname: 2.6.11-gentoo-r4 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb  7 2005, 09:02:58)]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.4-r1
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.5, 1.7.9-r1, 1.6.3, 1.4_p6, 1.9.4, 1.8.5-r3
sys-devel/binutils:  2.15.92.0.2-r1
sys-devel/libtool:   1.5.10-r4
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-Os -march=pentium4 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-Os -march=pentium4 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms"
GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo
http://mirror.datapipe.net/gentoo http://mirror.datapipe.net/gentoo
http://mirrors.tds.net/gentoo"
MAKEOPTS="-j6"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.davidandgoliathtees.com/gentoo-portage"
USE="x86 X alsa apache2 arts avi berkdb bitmap-fonts cdr chroot crypt cups
curldga divx4linux dv dvd dvdr emboss encode esd faad fam flac font-server
foomaticdb gd gdbm gif gimpprint gtk gtk2 icq imagemagick imap imlib innodb java
jpeg junit kde lcms ldap lesstif libg++ libwww live mad maildir mmx mng motif
mozilla mozsvg mp3 mpeg msn mysql ncurses nptl nptlonly offensive oggvorbis
opengl oss pam pdflib perl png ppds python qt quicktime radeon readline samba
sdl softmmu spell sse ssl svg svga tcltk tcpd tiff truetype truetype-fonts
type1-fonts userlocales v4l v4l2 xml xml2 xmms xv xvid zlib video_cards_radeon"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS
Comment 1 Tim Redman 2005-03-21 06:29:13 UTC
I also tried copying a tarball of the portage tree from the local mirror to the workstation.  Then I did an emerge sync on the workstation.  Sure enough, the emerge sync removed the packages files from the workstation, so moving a tarball over is definitely not a permanent solution.

Is "packages" some kind of reserved keyword, filename or something with rsyncd?
Comment 2 solar (RETIRED) gentoo-dev 2005-03-21 08:10:21 UTC
That is correct. emerge runs the following command when rsyncing.

/usr/bin/rsync --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages' --progress rsync://FQDN/gentoo-portage/ /usr/portage

As you can see it leaves out packages for a reason (and a good reason at that).
Comment 3 Tim Redman 2005-03-21 08:34:58 UTC
Oh, I most wholeheartedly agree.

But that's a different "packages".

The ones I'm referring to are the files called "packages" that are located in each profile directory.  For example, if I go to /usr/portage/profiles/default-linux/x86/2004.3, there is a file called "packages" there, but only on the rsync server.  It doesn't exist on any of the workstations.  It's the same for every other profile directory as well.

Also, this only seems to be happening since the last upgrade of net-misc/rsync to 2.6.0-r4.
Comment 4 Tim Redman 2005-03-21 08:37:32 UTC
Also, I would think that because of the settings in the rsyncd.conf on the local mirror that it wouldn't be necessary to explicitly exclude distfiles and packages during a client call to rsync, since the server daemon process is already excluding them.  Am I mistaken there?
Comment 5 Marius Mauch (RETIRED) gentoo-dev 2005-03-21 13:37:00 UTC
not everyone uses a local mirror and remote mirrors might have a "real" packages directory.
Comment 6 Jason Stubbs (RETIRED) gentoo-dev 2005-03-21 15:35:05 UTC
I should have seen it the first time. You're explicity telling your server to not export those files. Check the rsync man page. Excludes is not a list of relative paths. It's a list of expressions. There's a whole section on it, but "packages" by itself will match any occurrence of it.
Comment 7 Tim Redman 2005-03-21 20:15:56 UTC
Then this is a problem with the rsync ebuild, since the rsyncd.conf displayed above is almost verbatim with the one that gets installed by default.  The difference is that I've uncommented the gentoo-portage section.

It does appear that if you put the slash after the pattern, rsyncd only excludes directories with those patterns, not directories and files:

[gentoo-portage]
        path = /usr/portage
        comment = Gentoo Linux Portage tree
        exclude = distfiles/ packages/

Somebody might want to look at updating the rsyncd.conf file with those values.
Comment 8 SpanKY gentoo-dev 2005-03-21 20:17:25 UTC
i added packages as an after thought to the rsyncd.conf

removed in cvs
Comment 9 Mike Nerone 2005-03-22 01:07:00 UTC
The example is fine and should remain, IMHO, except with one tiny fix: The exclude line should be:

  exclude = /distfiles /packages

This tells rsync to exclude those names ONLY in the top directory of the rsync "share." This is much safer, and allows the profile "packages" files to be sync'd, and also allows for some future time when there may actually be an ebuild called "packages" or "distfiles" somewhere (note that only using *trailing* slashes would make such ebuilds fail to sync, since they would be located within directories with those names).

BTW, either way, I don't think this bug is "invalid". Tim's report was correct: the provided example had to be fixed or removed.
Comment 10 Seemant Kulleen (RETIRED) gentoo-dev 2005-03-25 09:38:31 UTC
*** Bug 86583 has been marked as a duplicate of this bug. ***
Comment 11 SpanKY gentoo-dev 2005-04-04 05:42:55 UTC
*** Bug 87834 has been marked as a duplicate of this bug. ***
Comment 12 Seemant Kulleen (RETIRED) gentoo-dev 2005-04-06 04:20:27 UTC
*** Bug 88131 has been marked as a duplicate of this bug. ***