On Tue, 2003-06-10 at 23:43, Brett Simpson wrote: > I'm running into a problem were I have to manually rsync several servers PORTDIR_OVERLAY contents so that my custom ebuilds get used properly. While this is manageable for a couple systems it's a pain for me since I have over 6 servers and 4 workstations running Gentoo Linux. > > Using NFS is not an option since some of the servers are locked down as a firewall. All of these systems of course have internet access so I was thinking (which is dangerous) that maybe an additional option called PORTHTTP_OVERLAY be added. This would in effect look to a web server for custom ebuilds. > > My other option would be to write an rsync script to pull the files from my own rsync server to a local PORTDIR_OVERLAY on each system. This is also not a problem but it would be cooler to have the PORTHTTP_OVERLAY feature. > > Brett I had the same issue, and I solved it by creating my own (tainted) rsync server. First off, I put all my local ebuilds in a own category, "local" for an example, and merge that into the portage tree. Emerge app-admin/gentoo-rsync-mirror and at the end of /opt/gentoo-rsync/rsync-gentoo-portage.sh add /opt/gentoo-rsync/rsync-local-portage.sh Which contain something like this: ---8<------8<------8<------8<------8<------8<--- #!/bin/bash RSYNC="/usr/bin/rsync" LOPTS="--quiet --recursive --links --perms --times --devices --compress --timeout=600 --delete --exclude=CVS" RSYNC_PORTDIR="/opt/gentoo-rsync/portage" LSRC="/opt/gentoo-rsync/gentoo-x86/local/" DST="/opt/gentoo-rsync/portage/local/" echo "Started update at" `date` >> $0.log 2>&1 logger -t rsync "re-syncing local portage tree" old_pwd=`pwd` # Get the files from local CVS cd /opt/gentoo-rsync/gentoo-x86 && cvs -q up -d && cd $old_pwd ${RSYNC} ${LOPTS} ${LSRC} ${DST} grep -q local ${RSYNC_PORTDIR}/profiles/categories 2>/dev/null RETURN_VALUE=$? if [ $RETURN_VALUE -eq 1 ]; then echo "Adding 'local' category" >> $0.log 2>&1 echo local >> ${RSYNC_PORTDIR}/profiles/categories else echo "'local' category already exists" >> $0.log 2>&1 fi echo "End: "`date` >> $0.log 2>&1 ---8<------8<------8<------8<------8<------8<--- /opt/gentoo-rsync/gentoo-x86 is a CVS repository (always good to keep track of changes) that has already been checked out. Of course you don't need to use CVS in which case you can just copy your PORTAGE_OVERLAY tree over there and skip the cvs commands. After that is done it's just point on that server as your SYNC="" mirror in make.conf and you should be on your way ;) I am currently working on policies and procedures how to create and maintain servers running Gentoo GNU/Linux so that things doesn't break ;) Once it's finished you can be sure GWN gets a copy of it, but there is a few issues still like having libstdc++ as a own package so no compiler is needed on the server, and producing binary kernel images as packages. If you have any solution how to do that I would be very grateful. Best regards Michael Boman -- Michael Boman Security Architect, SecureCiRT Pte Ltd http://www.securecirt.com