diff options
author | Maurice van der Pot <griffon26@gentoo.org> | 2008-08-26 18:33:45 +0000 |
---|---|---|
committer | Maurice van der Pot <griffon26@gentoo.org> | 2008-08-26 18:33:45 +0000 |
commit | 7d443bb13398ccabb2c9a5fc8c43d6fffbbf0fe3 (patch) | |
tree | 42add824a3d328080e84c0d6a7fa509c039a5b85 /net-proxy/http-replicator | |
parent | Added convenience env file. (diff) | |
download | gentoo-2-7d443bb13398ccabb2c9a5fc8c43d6fffbbf0fe3.tar.gz gentoo-2-7d443bb13398ccabb2c9a5fc8c43d6fffbbf0fe3.tar.bz2 gentoo-2-7d443bb13398ccabb2c9a5fc8c43d6fffbbf0fe3.zip |
Fixed deprecation warnings in repcacheman (part of http-replicator).
(Portage version: 2.2_rc8/cvs/Linux 2.6.26.2 x86_64)
Diffstat (limited to 'net-proxy/http-replicator')
4 files changed, 215 insertions, 257 deletions
diff --git a/net-proxy/http-replicator/ChangeLog b/net-proxy/http-replicator/ChangeLog index b539245b2141..909fe87ca3e8 100644 --- a/net-proxy/http-replicator/ChangeLog +++ b/net-proxy/http-replicator/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-proxy/http-replicator -# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-proxy/http-replicator/ChangeLog,v 1.21 2007/12/30 11:45:38 mrness Exp $ +# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/http-replicator/ChangeLog,v 1.22 2008/08/26 18:33:44 griffon26 Exp $ + + 26 Aug 2008; Maurice van der Pot <griffon26@gentoo.org> + -files/http-replicator-3.0-repcacheman-0.21, + +files/http-replicator-3.0-repcacheman-0.44-r1, + http-replicator-3.0-r1.ebuild: + Removed repcacheman version for old portage and added a new one for portage + 2.2_rc6 and up (to prevent deprecation warnings). 30 Dec 2007; Alin Năstac <mrness@gentoo.org> -files/http-replicator-3.0-repcacheman-0.33, -http-replicator-3.0.ebuild: diff --git a/net-proxy/http-replicator/files/http-replicator-3.0-repcacheman-0.21 b/net-proxy/http-replicator/files/http-replicator-3.0-repcacheman-0.21 deleted file mode 100755 index a5636b39a256..000000000000 --- a/net-proxy/http-replicator/files/http-replicator-3.0-repcacheman-0.21 +++ /dev/null @@ -1,250 +0,0 @@ -#! /usr/bin/python -# -# repcacheman ver 0.21 -# -# Cache Manager for Http-Replicator -# deletes duplicate files in PORTDIR. -# imports authenticated (md5 + listed in portage) -# files from PORTDIR to replicator's cache directory. -# -# MD5, and database routines ripped from Portage -# All else, Copyright(C)2004 Tom Poplawski (poplawtm@earthlink.net) -# Distributed under the terms of the GNU General Public License v2 -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - - -import os,string,pwd,sys,optparse - -if os.getuid(): - print"Must be root" - sys.exit(1) - -# sys.path = ["/usr/lib/portage/pym"]+sys.path - - -# Perform the Checksum on a file -def perform_checksum(filename): - import md5 - myfilename=filename - f = open(myfilename, 'rb') - blocksize=327680 - data = f.read(blocksize) - sum = md5.new() - while data: - sum.update(data) - data = f.read(blocksize) - f.close() - - return (sum.hexdigest()) - - -# Import http-replicator settings - -parser = optparse.OptionParser() -parser.add_option('-d', '--dir', type='string', default="/var/cache/http-replicator", help='http-replicators cache DIR') -parser.add_option('-u','--user', type='string', default="portage", help='http-replicator USER') -options, args = parser.parse_args() # parse command line -DIR=options.dir -USER=options.user - -user=USER -if user: - try: - uid=pwd.getpwnam(user)[2] - gid=pwd.getpwnam(user)[3] - except: - print "User \'" + user + "\' Doesn't exist on system - edit config or add user to system." - sys.exit(1) - - -else: - print "Error\n\tunable to get USER from /etc/http-replicator.conf" - sys.exit(1) - -# DIR is replicator's cache directory -dir=DIR+"/" - -if os.path.isdir(dir): - newdir=0 -else: - print"\n\nBegin Http-Replicator Setup...." - try: - os.makedir(dir) - print "\tcreated " + dir - newdir=1 - except: - print "\tcreate " + dir + " failed" - print '\terror:', sys.exc_info()[1] - sys.exit(1) - try: - os.chown(dir,uid,gid) - print "\tchanged owner of " + dir + " to " + user - except: - print "\tchange owner " + dir + " to " + user + " failed:" - print '\terror:', sys.exc_info()[1] - -print "\n\nReplicator's cache directory: " + dir - -# Portage settings -import portage -distdir=portage.settings["DISTDIR"]+"/" -if distdir: - print "Portage's DISTDIR: " + distdir -else: - print"Unable to get Portage's DISTDIR" - sys.exit(1) - -print "\nComparing directories...." - -# Create filecmp object with -import filecmp -dc=filecmp.dircmp (distdir,dir,['cvs-src']) -print "Done!" - -#def __getattr__(self,common): -#print dc.left_only - -dupes=dc.common - -deleted=0 -if dupes: - print "\nDeleting duplicate file(s) in " + distdir - - for s in dupes: - print s - try: - os.remove(distdir + s ) - deleted +=1 - except: - print "\tdelete " + distdir + s + " failed:" - print '\terror:', sys.exc_info()[1] - - print "Done!" - -newfiles=dc.left_only -if newfiles: - print "\nNew files in DISTDIR:" - for s in newfiles: - print s - print"\nChecking authenticity and integrity of new files..." - print "Searching for ebuilds..." - - md5_list = {} - - # get all ebuilds? - ebuildlist = [] - for mycp in portage.db["/"]["porttree"].dbapi.cp_all(): - ebuildlist += portage.db["/"]["porttree"].dbapi.cp_list(mycp) - ebuildlist.sort() - - print "Done!" - print "\nFound " + str(len(ebuildlist)) + " ebuilds." - -# mycpv =app-admin/ulogd-0.89 -# pv = ulogd-0.89 - - print "\nExtracting the checksums...." - for mycpv in ebuildlist: - pv = string.split(mycpv, "/")[-1] - - - # lookup each ebuild digest and md5sums - digestpath = portage.db["/"]["porttree"].dbapi.findname(mycpv) - digestpath = os.path.dirname(digestpath)+"/files/digest-"+pv - md5sums = portage.digestParseFile(digestpath) - - if md5sums == None: - portage.writemsg("Missing digest: %s\n" % mycpv) - md5sums = {} - - for x in md5sums.keys(): - if x[0] == '/': - del md5sums[x] - - - for k, v in md5sums.iteritems(): - md5_list[k]= v - - - - del ebuildlist - print "Done!\n\nVerifying checksum's...." - - added=0 - rejected=0 - suspect=0 - missing=0 - - for file in newfiles: - - if not md5_list.has_key (file): - print "\nWARNING " + file + " is not in portage!!!\n" - suspect +=1 - continue - myfile=distdir + file - if os.path.isdir(myfile): - print "\nskipping directory:",myfile - continue - mymd5=perform_checksum(myfile) - - print myfile -# print "md5 is " + mymd5 - - t= md5_list[file] - if t[0]: - if t[0] == mymd5: - print "MD5 OK" - try: - os.rename(distdir+file,dir+file) - added += 1 - except: - try: - import shutil - shutil.copyfile(distdir+file,dir+file) - added += 1 - os.remove(distdir+file) - except: - print "\tmove/copy " + file + " failed:" - print '\terror:', sys.exc_info()[1] - continue - try: - os.chown(dir+file,uid,gid) - except: - print "\tchown " + file + " failed:" - print '\terror:', sys.exc_info()[1] - else: - print "CORRUPT or INCOMPLETE " - rejected +=1 - else: - missing +=1 - print "\nEbuild missing digest for " +file - - -print "\nSUMMARY:\nFound " + str(len(dupes)) + " duplicate file(s)." -print "\tDeleted " + str(deleted) + " dupe(s)." -if newfiles: - print "Found " + str(len(newfiles)) + " new file(s)." - print "\tAdded " + str(added) + " of those file(s) to the cache." - print "\tRejected " + str(rejected) + " corrupt or incomplete file(s)." - if missing: - print "\tCan't check " +str(missing) + " file(s) because of missing digest." - if suspect: - print "\t" + str(suspect) + " Unknown file(s) that are not listed in portage\ -\n\tYou may want to delete them yourself...." -if newdir: - print"\n\nexecute:\n/etc/init.d/http-replicator start" - print"to run http-replicator.\n\nexecute:\nrc-update add http-replicator default" - print"to make http-replicator start at boot" - print"\n\nexecute:\n/usr/bin/repcacheman\nafter emerge's on the server to delete" - print"dup files and add new files to the cache" -print "\n\nDone!\n\n" - diff --git a/net-proxy/http-replicator/files/http-replicator-3.0-repcacheman-0.44-r1 b/net-proxy/http-replicator/files/http-replicator-3.0-repcacheman-0.44-r1 new file mode 100755 index 000000000000..9f0069bc7ebb --- /dev/null +++ b/net-proxy/http-replicator/files/http-replicator-3.0-repcacheman-0.44-r1 @@ -0,0 +1,201 @@ +#! /usr/bin/python +# +# repcacheman ver 0.44 +# +# Cache Manager for Http-Replicator +# deletes duplicate files in PORTDIR. +# imports authenticated (checksum + listed in portage) +# files from PORTDIR to replicator's cache directory. +# +# Uses portage to perform checksum and database functions. +# All else, Copyright(C)2004-2007 Tom Poplawski (poplawtm@earthlink.net) +# Distributed under the terms of the GNU General Public License v2 +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +import portage.manifest +import portage.checksum +import portage.exception +import portage +import string +import os +import pwd,sys,optparse + +if os.getuid(): + print"Must be root" + sys.exit(1) + +# Parse Options + +parser = optparse.OptionParser() +parser.add_option('-d', '--dir', type='string', default="/var/cache/http-replicator", help='http-replicators cache DIR') +parser.add_option('-u','--user', type='string', default="portage", help='http-replicator USER') +options, args = parser.parse_args() # parse command line + +if options.user: + try: + uid=pwd.getpwnam(options.user)[2] + gid=pwd.getpwnam(options.user)[3] + except: + print "User \'" + options.user + "\' Doesn't exist on system - edit config or add user to system." + sys.exit(1) +else: + print "Error\n\tunable to get USER from /etc/http-replicator.conf" + sys.exit(1) + +# dir is replicator's cache directory +dir=options.dir+"/" + +if os.path.isdir(dir) : + newdir=0 +else : + print"\n\nBegin Http-Replicator Setup...." + try: + os.makedirs(dir) + print "\tcreated " + dir + newdir=1 + except: + print "\tcreate " + dir + " failed" + print '\terror:', sys.exc_info()[1] + sys.exit(1) + try: + os.chown(dir,uid,gid) + print "\tchanged owner of " + dir + " to " + options.user + except: + print "\tchange owner " + dir + " to " + options.user + " failed:" + print '\terror:', sys.exc_info()[1] + +print "\n\nReplicator's cache directory: " + dir + +# Import Portage settings + +distdir=portage.settings["DISTDIR"]+"/" +if distdir: + print "Portage's DISTDIR: " + distdir +else: + print"Unable to get Portage's DISTDIR" + sys.exit(1) + +# Start Work + +print "\nComparing directories...." + +# Create filecmp object +import filecmp +dc=filecmp.dircmp (distdir,dir,['cvs-src','git-src','hg-src','.locks']) +print "Done!" + +dupes=dc.common +deleted=0 + +if dupes: + print "\nDeleting duplicate file(s) in " + distdir + + for s in dupes: + print s + try: + os.remove(distdir + s ) + deleted +=1 + except: + print "\tdelete " + distdir + s + " failed:" + print '\terror:', sys.exc_info()[1] + + print "Done!" + + +newfiles=dc.left_only +nf=len(dc.left_only) + +if nf: + print "\nNew files in DISTDIR:" + for s in newfiles: + print s + print"\nChecking authenticity and integrity of new files..." + added=0 + errors=0 + badsum=0 + +# search all packages + + for mycp in portage.db["/"]["porttree"].dbapi.cp_all(): + manifest = portage.manifest.Manifest("/usr/portage/" + mycp , distdir) + if manifest == None: + portage.writemsg("Missing manifest: %s\n" % mycpv) + + remove=[] + for file in newfiles: + if manifest.hasFile("DIST",file): + try: + myok, myreason = manifest.checkFileHashes("DIST",file) + + try: + os.rename(distdir+file,dir+file) + added += 1 + except: + try: + import shutil + shutil.copyfile(distdir+file,dir+file) + added += 1 + os.remove(distdir+file) + except: + print "\tmove/copy " + file + " failed:" + print '\terror:', sys.exc_info()[1] + errors+=1 + + try: + os.chown(dir+file,uid,gid) + except: + print "\tchown " + file + " failed:" + print '\terror:', sys.exc_info()[1] + errors +=1 + + remove.append( file ) + + except portage.exception.DigestException, e: + print("\n!!! Digest verification failed:") + print("!!! %s" % e.value[0]) + print("!!! Reason: %s" % e.value[1]) + print("!!! Got: %s" % e.value[2]) + print("!!! Expected: %s" % e.value[3]) + badsum+=1 + if remove: + for rf in remove: + newfiles.remove ( rf ) + + +print "\nSUMMARY:" +print "Found " + str(len(dupes)) + " duplicate file(s)" +if deleted: + print "\tDeleted " + str(deleted) + " dupe(s)" + +if nf: + print "Found " + str(nf) + " new file(s)" + print "\tAdded " + str(added) + " of those file(s) to the cache" + + print "Rejected " +str(len(newfiles)) + " File(s) - ", + print str(badsum) + " failed checksum(s)" + for s in newfiles: + print "\t%s" %s + if errors: + print "Encountered " +str(errors) + " errors" +# if badsum: +# print str(badsum) + " partial/corrupted file(s)" + +if newdir: + print"\n\nexecute:\n/etc/init.d/http-replicator start" + print"to run http-replicator.\n\nexecute:\nrc-update add http-replicator default" + print"to make http-replicator start at boot" + print"\n\nexecute:\n/usr/bin/repcacheman\nafter emerge's on the server to delete" + print"dup files and add new files to the cache" + +print "\n\nHTTP-Replicator requires you delete any partial downloads in " + distdir +print "run rm -rf " + distdir +'*' + diff --git a/net-proxy/http-replicator/http-replicator-3.0-r1.ebuild b/net-proxy/http-replicator/http-replicator-3.0-r1.ebuild index 0782b301ef4d..1e2e53f59039 100644 --- a/net-proxy/http-replicator/http-replicator-3.0-r1.ebuild +++ b/net-proxy/http-replicator/http-replicator-3.0-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2007 Gentoo Foundation +# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-proxy/http-replicator/http-replicator-3.0-r1.ebuild,v 1.5 2007/12/05 16:57:00 armin76 Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-proxy/http-replicator/http-replicator-3.0-r1.ebuild,v 1.6 2008/08/26 18:33:44 griffon26 Exp $ inherit eutils @@ -25,10 +25,10 @@ src_install(){ exeinto /usr/bin doexe http-replicator newexe "${FILESDIR}/http-replicator-3.0-callrepcacheman-0.1" repcacheman - if has_version '>=sys-apps/portage-2.0.51'; then - newexe "${FILESDIR}/http-replicator-3.0-repcacheman-0.44" repcacheman.py + if has_version '>=sys-apps/portage-2.2_rc6'; then + newexe "${FILESDIR}/http-replicator-3.0-repcacheman-0.44-r1" repcacheman.py else - newexe "${FILESDIR}/http-replicator-3.0-repcacheman-0.21" repcacheman.py + newexe "${FILESDIR}/http-replicator-3.0-repcacheman-0.44" repcacheman.py fi # init.d scripts |