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
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?
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).
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.
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?
not everyone uses a local mirror and remote mirrors might have a "real" packages directory.
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.
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.
i added packages as an after thought to the rsyncd.conf removed in cvs
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.
*** Bug 86583 has been marked as a duplicate of this bug. ***
*** Bug 87834 has been marked as a duplicate of this bug. ***
*** Bug 88131 has been marked as a duplicate of this bug. ***