diff options
author | Sam Jorna <wraeth@gentoo.org> | 2016-03-23 21:58:13 +1100 |
---|---|---|
committer | Sam Jorna <wraeth@gentoo.org> | 2016-03-23 21:58:36 +1100 |
commit | 91d6d053b55f3c230fa90dc257d0bc994c3bc5e5 (patch) | |
tree | d882ba340834f9e9e8480a2030964efbd004b436 /net-proxy/http-replicator/files | |
parent | app-text/sigil: version bump to 0.9.4 (diff) | |
download | gentoo-91d6d053b55f3c230fa90dc257d0bc994c3bc5e5.tar.gz gentoo-91d6d053b55f3c230fa90dc257d0bc994c3bc5e5.tar.bz2 gentoo-91d6d053b55f3c230fa90dc257d0bc994c3bc5e5.zip |
net-proxy/http-replicator: revbump, bug 442874
Adds X-Unique-Cache-Name header to try and catch files based on their
saved name in DISTFILES. Additionally bumps ebuild to EAPI6 and elogs
information for required setup. Ebuild supplied by Matthew Ogilvie.
Gentoo-bug: 442874
Package-Manager: portage-2.2.28
Signed-off-by: Sam Jorna <wraeth@gentoo.org>
Diffstat (limited to 'net-proxy/http-replicator/files')
-rw-r--r-- | net-proxy/http-replicator/files/http-replicator-3-missing-directory.patch | 51 | ||||
-rw-r--r-- | net-proxy/http-replicator/files/http-replicator-3-unique-cache-name.patch | 31 |
2 files changed, 82 insertions, 0 deletions
diff --git a/net-proxy/http-replicator/files/http-replicator-3-missing-directory.patch b/net-proxy/http-replicator/files/http-replicator-3-missing-directory.patch new file mode 100644 index 000000000000..37c2ce2361f3 --- /dev/null +++ b/net-proxy/http-replicator/files/http-replicator-3-missing-directory.patch @@ -0,0 +1,51 @@ +Author: Matthew Ogilvie +Date: Sat Jan 17 09:24:34 2015 -0700 + + add some suggestions to the missing-directory error message + + Also wait until directory confirmed before forking. + + See gentoo bug 502574 and bug 442874 + +diff --git a/http-replicator b/http-replicator +index bbc163c..81e254d 100755 +--- a/http-replicator ++++ b/http-replicator +@@ -636,13 +636,6 @@ def main (): + parser.error('user %r does not exist' % options.user) + except OSError: + parser.error('no permission for changing to user %r' % options.user) +- pid = os.fork() # fork process +- if pid: # parent process +- pidfile.write(str(pid)) # store child's pid +- pidfile.close() +- return +- else: +- signal.signal(signal.SIGHUP, signal.SIG_IGN) + else: + handler = logging.StreamHandler(sys.stdout) # log to stdout + handler.setFormatter(logging.Formatter('%(levelname)s: %(name)s %(message)s')) +@@ -651,10 +644,22 @@ def main (): + try: + os.chdir(options.dir) # change to cache directory + except OSError: +- parser.error('invalid directory %r' % options.dir) ++ parser.error('invalid directory %r\n' \ ++ 'Try running repcacheman, and/or see\n' \ ++ 'http://forums.gentoo.org/viewtopic-t-173226.html' \ ++ % options.dir) + if not os.access(os.curdir, os.R_OK | os.W_OK): # check permissions for cache directory + parser.error('no read/write permission for directory %r' % options.dir) + ++ if options.daemon: ++ pid = os.fork() # fork process ++ if pid: # parent process ++ pidfile.write(str(pid)) # store child's pid ++ pidfile.close() ++ return ++ else: ++ signal.signal(signal.SIGHUP, signal.SIG_IGN) ++ + sys.stdout = sys.stderr = open('/dev/null', 'w') # redirect all output to bit bucket + logging.root.name = 'HttpReplicator' + try: diff --git a/net-proxy/http-replicator/files/http-replicator-3-unique-cache-name.patch b/net-proxy/http-replicator/files/http-replicator-3-unique-cache-name.patch new file mode 100644 index 000000000000..3ad0529ed16a --- /dev/null +++ b/net-proxy/http-replicator/files/http-replicator-3-unique-cache-name.patch @@ -0,0 +1,31 @@ +Author: Matthew Ogilvie +Date: Sun Dec 28 20:14:15 2014 -0700 + + honor x-unique-cache-name header in flat mode, if present + + This allows things like different versions of the adobe-flash + downloader that are given different names in a flat download + directory (like in gentoo) to work in an http-replicator cache + as well. As long as the fetcher passes the custom name through + the experimental header... + + See gentoo bug # 442874 + +diff --git a/http-replicator b/http-replicator +index 19ae427..befe9f2 100755 +--- a/http-replicator ++++ b/http-replicator +@@ -311,7 +311,12 @@ class HttpClient (Http): + self.log.info('requested range: bytes %s to %s' % self.range) # log request + + head = '' +- for tail in self.path.split('/'): # iterate over items in path ++ adjUrlPath = self.path ++ if not self.direct and self.flat: ++ uniqueCacheName = body.get('x-unique-cache-name') ++ if uniqueCacheName: ++ adjUrlPath = uniqueCacheName ++ for tail in adjUrlPath.split('/'): # iterate over items in path + head = os.path.join(head, tail) # build target path + if head in self.alias: # path up till now hos an alias + head = self.alias[head] # replace by alias |