[apt-proxy-devel] r611 - in people/halls/rework: apt_proxy debian
debian/po doc doc/po
Chris Halls
halls at costa.debian.org
Thu Aug 3 17:05:51 UTC 2006
Author: halls
Date: Thu Aug 3 17:05:49 2006
New Revision: 611
Modified:
people/halls/rework/apt_proxy/apt_proxy.py
people/halls/rework/apt_proxy/apt_proxy_conf.py
people/halls/rework/apt_proxy/cache.py
people/halls/rework/apt_proxy/fetchers.py
people/halls/rework/apt_proxy/test/test_apt_proxy.py
people/halls/rework/apt_proxy/test/test_cache.py
people/halls/rework/apt_proxy/test/test_config.py
people/halls/rework/apt_proxy/test/test_fetchers.py
people/halls/rework/apt_proxy/test/test_requests.py
people/halls/rework/debian/changelog
people/halls/rework/debian/control
people/halls/rework/debian/po/cs.po
people/halls/rework/debian/po/da.po
people/halls/rework/debian/po/fr.po
people/halls/rework/debian/po/nl.po
people/halls/rework/debian/po/vi.po
people/halls/rework/debian/rules
people/halls/rework/doc/apt-proxy-import.8.inc
people/halls/rework/doc/apt-proxy.8
people/halls/rework/doc/apt-proxy.conf
people/halls/rework/doc/apt-proxy.conf.5
people/halls/rework/doc/po/apt-proxy.pot
people/halls/rework/doc/po/fr.po
people/halls/rework/doc/po4a.cfg
Log:
* Merge and acknowledge NMU in changelog
* Merge po files from NMU
* Close bug #375677 (already fixed here)
* Remove http scheme, host and port from requested URL (Closes: #374405)
* Add DownloadQueuePerClient queuing strategy. Each backend gets a
separate connection per connected apt instance.
* In example apt-proxy.conf, remove references to non-US archive
* Give a meaningful error message if an empty time is given in the configuration file (Closes: #304611)
* Remove references to -i parameter in apt-proxy.conf manpage. (Closes: #328983)
* Remove FetcherCachedFile, now part of cacheEntry
Modified: people/halls/rework/apt_proxy/apt_proxy.py
==============================================================================
--- people/halls/rework/apt_proxy/apt_proxy.py (original)
+++ people/halls/rework/apt_proxy/apt_proxy.py Thu Aug 3 17:05:49 2006
@@ -54,13 +54,20 @@
packages = None
name = None
+ downloadQueuePerClient = True # Set to true if a download queue should be created per client
+
def __init__(self, factory, config):
log.debug("Creating Backend: " + config.name)
self.factory = factory
self.config = config # apBackendConfig configuration information
self.base = config.name # Name of backend
self.uris = [] # Sequence of BackendServers, in order of preference
- self.queue = fetchers.DownloadQueue()
+
+ if self.downloadQueuePerClient:
+ self.queue = fetchers.DownloadQueuePerClient()
+ else:
+ self.queue = fetchers.DownloadQueue()
+
self.entries = {} # Hash of active cache entries
self.packages = None # Packages database for this backend
@@ -215,9 +222,7 @@
"""
Each new request begins processing here
"""
- log.debug("Request: " + self.method + " " + self.uri,'Request',8);
- # Clean up URL
- self.uri = os.path.normpath(self.uri)
+ self.uri = self.clean_path(self.uri)
if_modified_since = self.getHeader('if-modified-since')
if if_modified_since != None:
@@ -268,6 +273,12 @@
self.cacheEntry.add_request(self)
+ def clean_path(self, uri):
+ # Clean up URL given
+ scheme, netloc, path, params, query, fragment = urlparse.urlparse(uri)
+ return os.path.normpath(path)
+
+
def start_streaming(self, size, mtime):
"""
Prepare client to stream file
@@ -313,6 +324,17 @@
self.cacheEntry.remove_request(self)
#self.finish()
+ def getFileno(self):
+ """
+ Get identifier which is unique per apt client
+ """
+ try:
+ fileno = self.channel.transport.fileno()
+ except:
+ fileno = -1
+ log.msg("could not get transport's file descriptor", 'Request')
+ return fileno
+
class Channel(http.HTTPChannel):
"""
This class encapsulates a channel (an HTTP socket connection with a single
@@ -671,7 +693,7 @@
return db
def open_shelve(self, dbname):
- from bsddb3 import db,dbshelve
+ from bsddb import db,dbshelve
shelve = dbshelve.DBShelf()
db_dir = self.factory.config.cache_dir+'/'+status_dir+'/db'
Modified: people/halls/rework/apt_proxy/apt_proxy_conf.py
==============================================================================
--- people/halls/rework/apt_proxy/apt_proxy_conf.py (original)
+++ people/halls/rework/apt_proxy/apt_proxy_conf.py Thu Aug 3 17:05:49 2006
@@ -49,6 +49,8 @@
def gettime(self, section, option):
mult = 1
value = self.get(section, option)
+ if len(value) == 0:
+ raise ConfigError("Configuration parse error: [%s] %s" % (section, option))
suffix = value[-1].lower()
if suffix in self.time_multipliers.keys():
mult = self.time_multipliers[suffix]
@@ -84,7 +86,7 @@
['address', '', 'string'],
['port', 9999, 'int'],
['min_refresh_delay', 30, 'time'],
- ['complete_clientless_downloads', '0', 'boolean'],
+ ['complete_clientless_downloads', False, 'boolean'],
['telnet_port', 0, 'int'],
['telnet_user', '', 'string'],
['telnet_pass', '', 'string'],
Modified: people/halls/rework/apt_proxy/cache.py
==============================================================================
--- people/halls/rework/apt_proxy/cache.py (original)
+++ people/halls/rework/apt_proxy/cache.py Thu Aug 3 17:05:49 2006
@@ -43,7 +43,7 @@
STATE_DOWNLOAD = 3 # File is in process of downloading
STATE_SENDFILE = 4 # File is being sent from cache
STATE_SENT = 5 # Post download processing / waiting for clients to complete
-
+ STATE_FAILED = 6 # Download failed
bytesDownloaded = 0
@@ -83,6 +83,8 @@
self.file_mtime = None
self.file_size = None
+ self.fetcher = None
+
def add_request(self, request):
"""
A new request has been received for this file
@@ -115,11 +117,13 @@
log.debug("Last request removed",'cacheEntry')
self.backend.entry_done(self)
- if (not self.factory.config.complete_clientless_downloads
- and self.state == self.STATE_DOWNLOAD
- and self.fetcher is not None):
- # Cancel download in progress
- self.fetcher.cancel_download()
+ # TODO - fixme
+ #if (self.factory.config.complete_clientless_downloads == False
+ #and self.state == self.STATE_DOWNLOAD
+ #and self.fetcher is not None):
+ ## Cancel download in progress
+ #log.debug("cancelling download (set complete_clientless_downloads to continue)",'cacheEntry')
+ #self.fetcher.cancel_download()
if self.streamfile is not None:
# File was streamed to clients
@@ -328,6 +332,7 @@
File streaming is complete
"""
log.msg("download_data_end:" + self.file_path, "CacheEntry")
+ self.state = self.STATE_SENT
if self.streamfile is not None:
# File was streamed to clients
@@ -353,7 +358,7 @@
for request in self.requests:
request.finishCode(http_code, reason)
-
+ self.state = self.STATE_FAILED
## Remove directory if file was not created
#if not os.path.exists(self.file_path):
#try:
@@ -530,10 +535,14 @@
self.deferred.callback(None)
return self.deferred
+ class VerificationFailure:
+ def __init__(self, path, reason):
+ self.path = path
+ self.reason = reason
def failed(self, reason):
log.msg("cache file verification FAILED for %s: %s"%(self.path, reason), 'verify')
os.unlink(self.path)
- self.deferred.errback(None)
+ self.deferred.errback(self.VerificationFailure(self.path, reason))
def passed(self):
log.debug("cache file verification passed: %s"%(self.path), 'verify')
Modified: people/halls/rework/apt_proxy/fetchers.py
==============================================================================
--- people/halls/rework/apt_proxy/fetchers.py (original)
+++ people/halls/rework/apt_proxy/fetchers.py Thu Aug 3 17:05:49 2006
@@ -108,7 +108,7 @@
Download was successful
"""
log.debug("download complete. Sent:%s bytes" % (self.len_received), "Fetcher")
- if not self.fetcher.pipelining:
+ if self.fetcher is not None and not self.fetcher.pipelining:
self.connection_closed(self.fetcher)
if self.len_received==0:
self.download_started() # Send status code to clients
@@ -126,7 +126,7 @@
def download_failed(self, reason_code, reason_msg):
#self.cacheEntry.download_data_end()
log.debug("download_failed: (%s) %s " %(reason_code, reason_msg), "Fetcher")
- if not self.fetcher.pipelining:
+ if self.fetcher is not None and not self.fetcher.pipelining:
self.connection_closed(self.fetcher)
self.cacheEntry.download_failure(reason_code, reason_msg)
self.deferred.callback((False, reason_msg))
@@ -970,96 +970,26 @@
os.kill(self.rsyncProcess.pid, signal.SIGTERM)
self.transport.loseConnection()
-class FetcherCachedFile(Fetcher):
- """
- Sends the cached file or tells the client that the file was not
- 'modified-since' if appropriate.
- """
- post_convert = re.compile(r"/Packages.gz$")
- gzip_convert = re.compile(r"^Should not match anything$")
-
- request = None
- def if_modified(self, request):
- """
- Check if the file was 'modified-since' and tell the client if it
- wasn't.
- """
- if_modified_since = request.getHeader('if-modified-since')
- if if_modified_since != None:
- if_modified_since = http.stringToDatetime(
- if_modified_since)
-
- if request.local_mtime <= if_modified_since:
- request.setResponseCode(http.NOT_MODIFIED)
- request.setHeader("Content-Length", 0)
- request.write("")
- request.finish()
- self.remove_request(request)
-
- def insert_request(self, request):
- if not request.serve_if_cached:
- request.finish()
- return
- Fetcher.insert_request(self, request)
-
- log.debug("Serving from cache for additional client: " + self.local_file + " size:" + str(self.size))
- self.start_transfer(request)
-
- def activate(self, request):
- Fetcher.activate(self, request)
- if not request.apFetcher:
- return
- self.factory.file_served(request.uri)
- self.size = request.local_size
-
- self.start_transfer(request)
-
- def start_transfer(self, request):
- self.if_modified(request)
-
- if len(self.requests) == 0:
- #we had a single request and didn't have to send it
- self.apEnd()
- return
-
- if self.size:
- log.debug("Serving from cache: " + self.local_file + " size:" + str(self.size), 'FetcherCachedFile')
- file = open(self.local_file,'rb')
- fcntl.lockf(file.fileno(), fcntl.LOCK_SH)
-
- request.setHeader("Content-Length", request.local_size)
- request.setHeader("Last-modified",
- http.datetimeToString(request.local_mtime))
- basic.FileSender().beginFileTransfer(file, request) \
- .addBoth(self.file_transfer_complete, request) \
- .addBoth(lambda r: file.close())
-# .addBoth(lambda r: request.transport.loseConnection())
- else:
- log.debug("Zero length file! " + self.local_file, 'FetcherCachedFile')
- self.file_transfer_complete(None, request)
- request.finish()
-
- # A file transfer has completed
- def file_transfer_complete(self, result, request):
- log.debug("transfer complete", 'FetcherCachedFile')
- request.finish()
- # Remove this client from request list
- self.remove_request(request)
- if len(self.requests) == 0:
- Fetcher.apEnd(self)
-
class DownloadQueue:
"""
This class manages a list of files to download and schedules downloads
"""
- closeTimeout = 5 # Time to close fetcher connections after lsat download (seconds)
- def __init__(self):
+ closeTimeout = 5 # Time to close fetcher connections after last download (seconds)
+ def __init__(self, parent = None):
+ """
+ Initialise download queue
+ @param parent Class to notify (see downloadQueueEmpty) when queue is empty [class, data]
+ """
#import traceback
#traceback.print_stack()
self.queue = [] # List of cacheEntry classes waiting
self.activeFile = None
self.fetcher = None
self.timeoutCB = None
+ if parent is not None:
+ self.parent, self.parentId = parent
+ else:
+ self.parent = None
def addFile(self, cacheEntry):
"""
@@ -1071,7 +1001,6 @@
self.timeoutCB.cancel()
self.timeoutCB = None
self.queue.append(cacheEntry)
- print dir(cacheEntry.requests[0].transport)
if self.activeFile is None:
self.startNextDownload()
else:
@@ -1087,11 +1016,17 @@
self.startNextDownload()
def startNextDownload(self):
- if len(self.queue)>0:
+ while len(self.queue)>0:
self.activeFile = self.queue[0]
- log.debug("start next download (%s)" % (self.activeFile.cache_path), 'DownloadQueue')
self.queue = self.queue[1:]
+ if self.activeFile.state != self.activeFile.STATE_NEW:
+ log.debug("active download skipped (%s)" % (self.activeFile.cache_path), 'DownloadQueue')
+ self.activeFile = None
+ continue # Go to next file
+
+ log.debug("start next download (%s)" % (self.activeFile.cache_path), 'DownloadQueue')
+
if self.fetcher is not None:
if self.fetcher.backendServer.backend != self.activeFile.backend:
log.debug("old:%s new:%s" %(self.fetcher.backendServer.backend,self.activeFile.backend)
@@ -1106,13 +1041,15 @@
self.fetcher = Fetcher()
d = self.fetcher.start(self.activeFile)
d.addCallback(self.downloadFinished)
+ return
+
+ # Download queue was empty
+ #twisted.internet.base.DelayedCall.debug = True
+ log.debug("download queue is empty", 'DownloadQueue')
+ if self.closeTimeout and self.fetcher is not None:
+ self.timeoutCB = reactor.callLater(self.closeTimeout, self.closeFetcher)
else:
- #twisted.internet.base.DelayedCall.debug = True
- log.debug("download queue is empty", 'DownloadQueue')
- if self.closeTimeout:
- self.timeoutCB = reactor.callLater(self.closeTimeout, self.closeFetcher)
- else:
- self.closeFetcher()
+ self.closeFetcher()
def closeFetcher(self):
"Close active fetcher - called after queue has been empty for closeTimeout seconds"
@@ -1123,7 +1060,44 @@
self.fetcher.disconnect()
self.fetcher = None
+ if self.parent is not None:
+ self.parent.downloadQueueEmpty(self, self.parentId)
+
def stop(self):
+ log.debug("queue stop", 'DownloadQueue')
if self.timeoutCB is not None:
self.timeoutCB.cancel()
self.closeFetcher()
+
+class DownloadQueuePerClient:
+ """
+ DownloadQueue that creates several queues, one per client
+ """
+ def __init__(self):
+ self.queues = {}
+
+ def addFile(self, cacheEntry):
+ # Add queue entries for all clients. The client
+ # queue that is ready first will start the download
+ for req in cacheEntry.requests:
+ clientId = req.getFileno()
+
+ if self.queues.has_key(clientId):
+ q = self.queues[clientId]
+ else:
+ q = DownloadQueue([self, clientId])
+ self.queues[clientId] = q
+ log.debug("Adding new queue for client id %s" % (clientId), 'DownloadQueuePerClient')
+
+ q.addFile(cacheEntry)
+
+ def downloadQueueEmpty(self, queue, data):
+ """
+ DownloadQueue notifies that it is empty
+ """
+ log.debug("Removing queue for client id %s" % (data), 'DownloadQueuePerClient')
+ del self.queues[data]
+
+ def stop(self):
+ for q in self.queues.values():
+ q.stop()
\ No newline at end of file
Modified: people/halls/rework/apt_proxy/test/test_apt_proxy.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_apt_proxy.py (original)
+++ people/halls/rework/apt_proxy/test/test_apt_proxy.py Thu Aug 3 17:05:49 2006
@@ -22,7 +22,7 @@
from StringIO import StringIO
from apt_proxy.apt_proxy_conf import apConfig
-from apt_proxy.apt_proxy import Factory
+from apt_proxy.apt_proxy import Factory, Request
from apt_proxy.misc import log
config1="""
@@ -312,4 +312,14 @@
def testPassword(self):
backend = self.factory.getBackend('test_usernames')
self.assertEquals(backend.uris[0].password,'thePassword')
-
\ No newline at end of file
+
+class testRequests(unittest.TestCase):
+ def setUp(self):
+ class DummyChannel:
+ factory = None
+ transport = None
+ self.req = Request(DummyChannel(), None)
+ def testSimplifyPath(self):
+ self.assertEquals(self.req.clean_path('/foo/bar/../baz'), '/foo/baz')
+ def testRemoveHost(self):
+ self.assertEquals(self.req.clean_path('http://test:1234/foo/bar'), '/foo/bar')
Modified: people/halls/rework/apt_proxy/test/test_cache.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_cache.py (original)
+++ people/halls/rework/apt_proxy/test/test_cache.py Thu Aug 3 17:05:49 2006
@@ -18,7 +18,7 @@
import os, time, shutil
from twisted.trial import unittest
-from twisted.internet import reactor
+from twisted.internet import reactor, defer
from StringIO import StringIO
from apt_proxy.apt_proxy_conf import apConfig
@@ -36,6 +36,8 @@
self.finished = True
def start_streaming(self, file_size, file_mtime):
self.streamed = self.streamed + 1
+ def getFileno(self):
+ return 0
class CacheEntryTest(apTestHelper):
def setUp(self):
@@ -129,11 +131,24 @@
Create a bogus .deb and check that CacheEntry starts
a download
"""
+ self.testResult = defer.Deferred()
+ class VerifySizeError:
+ pass
+ class VerifyMtimeError:
+ pass
+ class StreamedError:
+ pass
def start_download(entry):
# This test function replaces the normal
# Backend.start_download so we can see that
# it was called without starting the download
- entry.test_download = True
+ if entry.file_mtime is not None:
+ self.testResult.errback(failure.Failure(VerifyMtimeError()))
+ if entry.file_size is not None:
+ self.testResult.errback(failure.Failure(VerifySizeError()))
+ if self.request.streamed:
+ self.testResult.errback(failure.Failure(StreamedError()))
+ self.testResult.callback(None)
self.backend.start_download = start_download
entry = CacheEntry(self.backend, "testdir/test.deb")
entry.test_download = False
@@ -142,14 +157,8 @@
f.write('this is not a real .deb')
f.close()
entry.add_request(self.request)
- while not entry.test_download and not self.request.streamed:
- #print "iterate.."
- reactor.iterate(0.1)
- # Check that our special function was not called
- self.failUnless(entry.test_download)
- self.failIf(self.request.streamed)
- self.assertEquals(entry.file_mtime, None)
- self.assertEquals(entry.file_size, None)
+ return self.testResult
+ testVerifyFail.timeout = 2
def testCheckAgeImmutable(self):
# testfile.deb is immutable
Modified: people/halls/rework/apt_proxy/test/test_config.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_config.py (original)
+++ people/halls/rework/apt_proxy/test/test_config.py Thu Aug 3 17:05:49 2006
@@ -19,7 +19,7 @@
from twisted.trial import unittest
from StringIO import StringIO
-from apt_proxy.apt_proxy_conf import apConfig
+from apt_proxy.apt_proxy_conf import apConfig, ConfigError
class EmptyConfigTest(unittest.TestCase):
def setUp(self):
@@ -86,6 +86,10 @@
self.assertEquals(self.c.backends['backend1'].bandwidth_limit,3434)
self.assertEquals(self.c.backends['backend2'].bandwidth_limit,2323)
+class BrokenTimeoutTest(unittest.TestCase):
+ def testBrokenTimeout(self):
+ self.assertRaises(ConfigError, apConfig, StringIO("[Default]\ntimeout = "))
+
class DefaultsTest(unittest.TestCase):
def setUp(self):
self.c = apConfig(StringIO(""))
Modified: people/halls/rework/apt_proxy/test/test_fetchers.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_fetchers.py (original)
+++ people/halls/rework/apt_proxy/test/test_fetchers.py Thu Aug 3 17:05:49 2006
@@ -16,16 +16,21 @@
"""This module tests the Fetcher classes"""
-from apt_proxy.apt_proxy_conf import apConfig
-from apt_proxy.test.test_apt_proxy import apTestHelper, FactoryTestHelper
-from apt_proxy.apt_proxy import Factory
-from apt_proxy.misc import log
-from apt_proxy.fetchers import HttpFetcher, FetcherHttpClient, FtpFetcher, Fetcher, RsyncFetcher
+import time, os, socket, signal, string
+
from twisted.internet import reactor, protocol, defer, error
from twisted.protocols import ftp
from twisted.cred import portal, checkers, credentials
from twisted.python import failure
-import time, os, socket, signal, string
+
+from apt_proxy.apt_proxy_conf import apConfig
+from apt_proxy.apt_proxy import Factory
+from apt_proxy.misc import log
+from apt_proxy.cache import CacheEntry
+from apt_proxy.fetchers import HttpFetcher, FetcherHttpClient, FtpFetcher, Fetcher, \
+ RsyncFetcher, DownloadQueue, DownloadQueuePerClient
+from apt_proxy.test.test_apt_proxy import apTestHelper, FactoryTestHelper
+
config1="""
[DEFAULT]
@@ -378,3 +383,185 @@
fileName = 'notHereFile'
self.fetcher.cacheEntry = self.backend.get_cache_entry(fileName)
self.rsyncFetcher.download(self.fetcher, fileName, 0)
+
+QueueConfig = """
+[test_queue]
+backends=http://server1/path1
+"""
+
+class DummyFetcher:
+ def __init__(self, backend):
+ self.backend = backend
+ def connect(self):
+ # We always conect
+ d = defer.succeed(True)
+ return d
+ def disconnect(self):
+ pass
+ def download(self, fetcher, uri, mtime):
+ fetcher.cacheEntry.state = CacheEntry.STATE_DOWNLOAD
+ pass
+
+class DummyServer:
+ fetcher = DummyFetcher
+ path = 'Dummy'
+ uri = 'dummy://'
+class DummyBackend:
+ name = 'Dummy'
+ def get_first_server(self):
+ return DummyServer()
+class DummyCacheEntry:
+ """
+ Class that provides basic CacheEntry information
+ """
+
+ STATE_NEW = CacheEntry.STATE_NEW
+ STATE_DOWNLOAD = CacheEntry.STATE_DOWNLOAD
+ def __init__(self, cache_dir, backend, file):
+ self.filename = os.path.basename(file)
+ self.path = file
+ self.cache_path = backend + os.sep + file
+ self.file_path = cache_dir + os.sep + self.cache_path
+ self.file_mtime = None
+ self.requests = []
+ self.state = self.STATE_NEW
+
+class DownloadQueueTest(FactoryTestHelper):
+
+ def setUp(self):
+ """
+ Set up a factory using the additional config given
+ """
+ FactoryTestHelper.setUp(self, QueueConfig)
+ self.queue = DownloadQueue()
+ self.backend = self.factory.getBackend('test_queue')
+ def testInit(self):
+ self.assertEquals(len(self.queue.queue), 0)
+ self.assertEquals(self.queue.fetcher, None)
+ self.assertEquals(self.queue.activeFile, None)
+ def testAddFile(self):
+ entry = DummyCacheEntry(self.cache_dir, 'test_queue', 'test.deb')
+ entry.backend = DummyBackend()
+ self.queue.addFile(entry)
+ self.assertEquals(len(self.queue.queue), 0)
+ self.assertEquals(self.queue.activeFile, entry)
+ self.queue.stop() # Cancel timeout CB
+ def testDownloadComplete(self):
+ entry = DummyCacheEntry(self.cache_dir, 'test_queue', 'test.deb')
+ entry.backend = DummyBackend()
+ self.queue.addFile(entry)
+ self.assertEquals(self.queue.activeFile, entry)
+ self.queue.downloadFinished([True, 'Test complete'])
+ self.assertEquals(self.queue.activeFile, None)
+ self.queue.stop() # Cancel timeout CB
+
+class DummyRequest:
+ def __init__(self, fileno=0):
+ self.fileno=fileno
+ self.finished = False
+ self.streamed = 0
+ def finishCode(self, code, reason):
+ self.finished = True
+ def start_streaming(self, file_size, file_mtime):
+ self.streamed = self.streamed + 1
+ def getFileno(self):
+ return self.fileno
+
+class DownloadQueuePerClientTest(FactoryTestHelper):
+ def setUp(self):
+ """
+ Set up a factory using the additional config given
+ """
+ FactoryTestHelper.setUp(self, QueueConfig)
+ self.queue = DownloadQueuePerClient()
+ self.backend = self.factory.getBackend('test_queue')
+ def testInit(self):
+ self.assertEquals(len(self.queue.queues), 0)
+ def testSeparateFilesAndClients(self):
+ req1 = DummyRequest(123)
+ req2 = DummyRequest(234)
+
+ entry1 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test1.deb')
+ entry1.requests = [req1]
+ entry1.backend = DummyBackend()
+
+ entry2 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test2.deb')
+ entry2.requests = [req2]
+ entry2.backend = entry1.backend
+
+ self.assertEquals(len(self.queue.queues.keys()), 0)
+ self.assertNotEquals(self.queue.queues.has_key(req1.fileno), True)
+ self.queue.addFile(entry1)
+ self.assertEquals(len(self.queue.queues.keys()), 1)
+ self.assertEquals(self.queue.queues[req1.fileno].activeFile, entry1)
+
+ self.queue.addFile(entry2)
+ self.assertEquals(len(self.queue.queues.keys()), 2)
+ self.assertEquals(self.queue.queues[req2.fileno].activeFile, entry2)
+
+ self.queue.stop() # Cancel timeout CB
+
+ def testSeparateFiles(self):
+ req1 = DummyRequest(123)
+ req2 = DummyRequest(123)
+
+ entry1 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test1.deb')
+ entry1.requests = [req1]
+ entry1.backend = DummyBackend()
+
+ entry2 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test2.deb')
+ entry2.requests = [req2]
+ entry2.backend = entry1.backend
+
+ self.assertEquals(len(self.queue.queues.keys()), 0)
+ self.assertNotEquals(self.queue.queues.has_key(req1.fileno), True)
+ self.queue.addFile(entry1)
+ self.assertEquals(len(self.queue.queues.keys()), 1)
+ self.assertEquals(self.queue.queues[req1.fileno].activeFile, entry1)
+
+ self.queue.addFile(entry2)
+ self.assertEquals(len(self.queue.queues.keys()), 1)
+ # Entry 2 should have been added to the first queue, and entry1 will
+ # still be active
+ self.assertEquals(self.queue.queues[req2.fileno].activeFile, entry1)
+ self.assertEquals(self.queue.queues[req2.fileno].queue[0], entry2)
+
+ self.queue.stop() # Cancel timeout CB
+
+ def testSeparateClients(self):
+ # 2 clients requesting 1 file
+ req1 = DummyRequest(123)
+ req2 = DummyRequest(234)
+
+ entry1 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test1.deb')
+ entry1.requests = [req1]
+ entry1.backend = DummyBackend()
+
+ self.assertEquals(len(self.queue.queues.keys()), 0)
+ self.assertNotEquals(self.queue.queues.has_key(req1.fileno), True)
+ self.queue.addFile(entry1)
+ self.assertEquals(len(self.queue.queues.keys()), 1)
+ self.assertEquals(self.queue.queues[req1.fileno].activeFile, entry1)
+
+ entry2 = entry1
+ entry2.requests.append(req2)
+
+ # Entry 2 will have been added to a second queue, but will be immediately
+ # dequeued because it is on entry 1's queue
+ self.queue.addFile(entry2)
+ self.assertEquals(len(self.queue.queues.keys()), 2)
+ self.assertEquals(self.queue.queues[req2.fileno].activeFile, None)
+
+ self.queue.stop() # Cancel timeout CB
+
+ def testDownloadComplete(self):
+ req = DummyRequest(678)
+ entry = DummyCacheEntry(self.cache_dir, 'test_queue', 'test.deb')
+ entry.backend = DummyBackend()
+ entry.requests = [req]
+ self.queue.addFile(entry)
+ self.assertEquals(len(self.queue.queues.keys()), 1)
+ self.queue.queues[req.fileno].closeFetcher()
+ # Check that queue for this client has been removed
+ self.assertEquals(len(self.queue.queues.keys()), 0)
+ #self.queue.stop() # Cancel timeout CB
Modified: people/halls/rework/apt_proxy/test/test_requests.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_requests.py (original)
+++ people/halls/rework/apt_proxy/test/test_requests.py Thu Aug 3 17:05:49 2006
@@ -36,11 +36,12 @@
"""
class containing test data for a request
"""
- def __init__(self, filename, expectedResponse, if_modified_since=None, expectedSize=None, filePath=None):
+ def __init__(self, filename, expectedResponse, if_modified_since=None, expectedSize=None, filePath=None, abortTransfer=False):
self.filename = filename
self.expectedResponse = expectedResponse
self.if_modified_since = if_modified_since
self.filePath = filePath
+ self.abortTransfer = abortTransfer
if expectedSize is not None:
self.expectedSize = expectedSize # If not none, the file sent should have this size
@@ -130,27 +131,35 @@
def dataReceived(self, data):
self.received_len = self.received_len + len(data)
log.debug("data received, len: %s" % (self.received_len), 'uriRequester')
- http.HTTPClient.dataReceived(self, data)
+ if self.nextTest.abortTransfer == False:
+ http.HTTPClient.dataReceived(self, data)
+ else:
+ self.passed() # Trigger disconnection of connection
+ class ResponseError:
+ pass
+ class SizeError:
+ pass
+
def handleResponse(self, buffer):
received_len = len(buffer)
log.debug('data received: %s bytes, expected:%s' % (received_len, self.nextTest.expectedSize), 'uriRequester')
if self.http_status != self.nextTest.expectedResponse:
log.debug('test FAILED: response code (%s) is not %s' %
(self.http_status, self.nextTest.expectedResponse), 'uriRequester')
- self.failed()
+ self.failed(self.ResponseError())
elif self.nextTest.expectedSize is not None and received_len != self.nextTest.expectedSize:
log.debug('test FAILED: received %s bytes, but expected %s' %
(received_len, self.nextTest.expectedSize), 'uriRequester')
- self.failed()
+ self.failed(self.SizeError())
else:
self.passed()
def passed(self):
self.getNextTest()
- def failed(self):
+ def failed(self, data):
log.debug('test failed', 'uriRequester')
- self.deferred.errback(failure.Failure())
+ self.deferred.errback(data)
class TestRequestHelper(apTestHelper):
@@ -270,6 +279,17 @@
"""
return self.downloadFiles(file)
+ def getFilePaths(self, file):
+ """
+ Given a filename, generate real filename and request path
+ """
+ filename = '/' + self.backendName + file
+ sourcepath = self.testfilesdir+file
+ destpath = self.cache_dir + filename
+ # File should not be in cache
+ self.assertRaises(OSError, os.stat, destpath)
+ return filename, sourcepath, destpath
+
def downloadFiles(self, *files):
"""
Download a number of files to cache
@@ -277,12 +297,9 @@
data = []
self.filepaths = []
for f in files:
- self.filename = '/' + self.backendName + f
- filepath = self.cache_dir + self.filename
- # File should not be in cache
- self.assertRaises(OSError, os.stat, filepath)
- self.filepaths.append(filepath)
- data.append(uriData(self.filename, http.OK, filePath=self.testfilesdir+f))
+ self.filename, sourcepath, destpath = self.getFilePaths(f)
+ self.filepaths.append(destpath)
+ data.append(uriData(self.filename, http.OK, filePath=sourcepath))
d = self.doRequest(*data)
def checkPath(x):
# Check that files were really placed in cache
@@ -326,16 +343,16 @@
DownloadQueue.closeTimeout = 0 # Close fetcher immediately
return self.downloadFile().addCallback(self.CloseFetcherImmediately2)
def CloseFetcherImmediately2(self, x):
- f = self.factory.getBackend(self.backendName).queue.fetcher
- self.assertEquals(f, None)
+ queues = self.factory.getBackend(self.backendName).queue.queues.values()
+ self.assertEquals(len(queues), 0)
testCloseFetcherImmediately.timeout = 2
def testLeaveFetcherOpen(self):
DownloadQueue.closeTimeout = 2 # 2 second delay to close
return self.downloadFile().addCallback(self.LeaveFetcherOpen2)
def LeaveFetcherOpen2(self, x):
- f = self.factory.getBackend(self.backendName).queue.fetcher
- self.assertNotEquals(f, None)
+ queues = self.factory.getBackend(self.backendName).queue.queues.values()
+ self.assertNotEquals(len(queues), 0)
testLeaveFetcherOpen.timeout = 4
def testAutoCloseFetcher(self):
@@ -347,11 +364,11 @@
return self.autoclosedeferred
def AutoCloseFetcher2(self, x):
# File is downloaded, now check fetcher state
- self.f = self.factory.getBackend(self.backendName).queue.fetcher
+ self.f = self.factory.getBackend(self.backendName).queue.queues.values()[0].fetcher
reactor.callLater(0.2, self.AutoCloseFetcher3)
def AutoCloseFetcher3(self):
- f = self.factory.getBackend(self.backendName).queue.fetcher
- self.assertEquals(f, None)
+ queues = self.factory.getBackend(self.backendName).queue.queues.values()
+ self.assertEquals(len(queues), 0)
self.autoclosedeferred.callback(None)
testAutoCloseFetcher.timeout = 2
@@ -386,6 +403,22 @@
return self.downloadFile(file='/packages/apt_0.0.1_test.deb')
testBwLimit.timeout = 2
+ def testAbort(self):
+ "Abort with complete_clientless_downloads=off"
+ import twisted
+ twisted.internet.base.DelayedCall.debug = True
+ b = self.factory.getBackend(self.backendName)
+ b.config.bandwidth_limit = 10
+ # We're not testing here that limiting is applied, just that the code runs
+ filename, sourcepath, destpath = self.getFilePaths('/packages/apt_0.0.1_test.deb')
+ d = self.doRequest(uriData(filename, http.OK, filePath=sourcepath, abortTransfer=True))
+ d.addCallback(self.Abort2)
+ return d
+ testBwLimit.timeout = 2
+ def Abort2(self, x):
+ "Connection was aborted, check that fetchers were closed"
+
+
# This test does not work with current twisted http client :(
#def testPipeline(self):
#"Test pipelined GETs"
@@ -439,6 +472,7 @@
backends=file:///<path to test packages directory>
"""
import test_fetchers
+ import twisted
self.debugname = 'FtpBackendTest'
self.ftpserver = test_fetchers.FtpServer()
port = self.ftpserver.start()
@@ -448,6 +482,11 @@
self.ftpserver.stop()
BackendTestBase.tearDown(self)
+ # The ftp classes use callLater(0, ...) several times, so allow
+ # those calls to complete
+ reactor.iterate()
+ reactor.iterate()
+
class RsyncBackendTest(TestRequestHelper, BackendTestBase):
def setUp(self):
"""
@@ -472,7 +511,7 @@
self.testResult = defer.Deferred()
return self.testResult
def TempFile2(self):
- fetcher = self.factory.getBackend(self.backendName).queue.fetcher.fetcher
+ fetcher = self.factory.getBackend(self.backendName).queue.queues.values()[0].fetcher.fetcher
fetcher.findRsyncTempFile()
file = fetcher.rsyncTempFile
log.debug("rsync TempFile is %s" % (file), self.debugname)
Modified: people/halls/rework/debian/changelog
==============================================================================
--- people/halls/rework/debian/changelog (original)
+++ people/halls/rework/debian/changelog Thu Aug 3 17:05:49 2006
@@ -1,24 +1,66 @@
apt-proxy (1.9.33+svn) unstable; urgency=low
+ * Acknowledge NMU by Luk Claes, thanks! (Closes: #359798)
+ * Change maintainer to myself and add Otavio to Uploaders, at
+ Otavio's request. Thanks Otavio for all your work.
+ * Fix breakage caused by new twisted (Closes: #375677)
* http_proxy can now be set in each [backend] section
* Add support for username and password in http_proxy parameter.
- Thanks to Thomas Champagne for the patch (Closes: #323147)
+ Thanks to Thomas Champagne for the patch
+ (Closes: #323147, #327239)
* Move fetchers and cache management into separate files
* Add bandwidth_limit configuration parameter to limit download
- rates (Closes: #306095)
+ rates (Closes: #306095, #259011)
* Add support for rsync port specification
* Always check cache directory and logfile permissions when package
is installed, thanks Ben Hutchings for the patch (Closes: #312969)
* Add more unit tests
* Remove obsolete debian/TODO from source package
- * Change maintainer to myself and add Otavio to Uploaders, at
- Otavio's request
+ * Update doc/TODO, removing fixed items
* Recognise apt package diff files (*.diff/Index). Thanks
Florian Weimer for the patch (Closes: #336433)
* Add debhelper to Build-Depends, needed for dh_clean in clean target
- * Update doc/TODO, removing fixed items
+ * Remove http scheme, host and port from requested URL (Closes: #374405)
+ * Add download queueing mechanism. Clients can now use HTTP pipelining to
+ request files, and each file will be queued at the corresponding backend.
+ Each separate apt client connection generates a connection to the
+ backend. (Closes: #261802)
+ * HTTP pipelining now works and is enabled by default
+ (Closes: #272206, #141312)
+ * Fix shutdown code (Closes: #359805)
+ * Remove reference to v1 in description (Closes: #337966)
+ * Give a meaningful error message if an empty time is given in the
+ configuration file (Closes: #304611)
+ * Reorganise download process to be more logical, fixing several problems
+ (Closes: #329764)
+ * Remove references to -i parameter in apt-proxy.conf manpage.
+ (Closes: #328983)
+ * In example apt-proxy.conf, remove references to non-US archive
+ (Closes: #329935)
+
+ -- Chris Halls <halls at debian.org> Thu, 3 Aug 2006 18:01:01 +0100
+
+apt-proxy (1.9.33-0.1) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * Update for bsddb module (Closes: #352917).
+ * Add comma in depends (Closes: #353386, #350551, #354668, #355228).
+ * Updated Vietnamese debconf translation (Closes: #313121).
+ * Complete manpage translation with po4a (Closes: #334380).
+ * Fix typos in apt-proxy.conf.5 (Closes: #355225).
+ * Remove extra 'by default' from apt-proxy.8 (Closes: #355229).
+ * Add German debconf translation (Closes: #352484).
+ * Updated French debconf translation (Closes: #328689).
+ * Add Portuguese debconf translation (Closes: #330202).
+ * Add Swedish debconf translation (Closes: #331515).
+ * Add Catalan debconf translation (Closes: #336384).
+ * Updated Danish debconf translation (Closes: #340132).
+ * Updated Dutch debconf translation (Closes: #356210).
+ * Add Spanish debconf translation (Closes: #333874).
+ * Updated Czech debconf translation (Closes: #335361).
+ * Updated French manpage translation (Closes: #332304).
- -- Chris Halls <halls at debian.org> Mon, 19 Jun 2006 16:39:08 +0100
+ -- Luk Claes <luk at debian.org> Wed, 29 Mar 2006 00:05:51 +0200
apt-proxy (1.9.33) unstable; urgency=low
Modified: people/halls/rework/debian/control
==============================================================================
--- people/halls/rework/debian/control (original)
+++ people/halls/rework/debian/control Thu Aug 3 17:05:49 2006
@@ -9,7 +9,7 @@
Package: apt-proxy
Architecture: all
-Depends: debconf (>= 0.5.00) | debconf-2.0, ${python:Depends}, python-twisted (>= 1.3.0-7) | python2.3 (<< 2.3.5-1), python-twisted (>= 1.0.0), python-twisted-web | python-twisted (<< 2.1.0) python-apt (>= 0.5.8), python-bsddb3, bzip2, logrotate, adduser
+Depends: debconf (>= 0.5.00) | debconf-2.0, ${python:Depends}, python-twisted (>= 1.3.0-7) | python2.3 (<< 2.3.5-1), python-twisted (>= 1.0.0), python-twisted-web | python-twisted (<< 2.1.0), python-apt (>= 0.5.8), bzip2, logrotate, adduser
Conflicts: apt-proxy-v2 (<= 1.9.5)
Replaces: apt-proxy-v2 (<= 1.9.5)
Suggests: rsync
Modified: people/halls/rework/debian/po/cs.po
==============================================================================
--- people/halls/rework/debian/po/cs.po (original)
+++ people/halls/rework/debian/po/cs.po Thu Aug 3 17:05:49 2006
@@ -16,9 +16,9 @@
"Project-Id-Version: apt-proxy\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-08-13 15:32+0200\n"
+"PO-Revision-Date: 2005-10-23 11:25+0200\n"
"Last-Translator: Jan Outrata <outrataj at upcase.inf.upol.cz>\n"
-"Language-Team: Czech <provoz at debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech at debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -49,7 +49,6 @@
#. Type: note
#. Description
#: ../templates:3
-#, fuzzy
msgid ""
"I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
"you didn't already have such file. In any case, a backup file will be "
Modified: people/halls/rework/debian/po/da.po
==============================================================================
--- people/halls/rework/debian/po/da.po (original)
+++ people/halls/rework/debian/po/da.po Thu Aug 3 17:05:49 2006
@@ -16,7 +16,7 @@
"Project-Id-Version: apt-proxy 1.9.18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-10-15 18:08+0200\n"
+"PO-Revision-Date: 2005-11-21 07:09+0200\n"
"Last-Translator: Morten Brix Pedersen <morten at wtf.dk>\n"
"Language-Team: Danish <dansk at klid.dk>\n"
"MIME-Version: 1.0\n"
@@ -51,15 +51,15 @@
#. Type: note
#. Description
#: ../templates:3
-#, fuzzy
msgid ""
"I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
"you didn't already have such file. In any case, a backup file will be "
"written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
msgstr ""
"Jeg vil bygge /etc/apt-proxy/apt-proxy-v2.conf baseret på dine gamle "
-"indstillinger hvis du allerede har en sådan fil. I hvert tilfælde, vil en "
-"sikkerhedskopi blive skrevet til /etc/apt-proxy/apt-proxy-v2.conf.backup"
+"indstillinger hvis du ikke allerede har en sådan fil. I hvert tilfælde, "
+"vil en sikkerhedskopi blive skrevet til "
+"/etc/apt-proxy/apt-proxy-v2.conf.backup"
#. Type: note
#. Description
Modified: people/halls/rework/debian/po/fr.po
==============================================================================
--- people/halls/rework/debian/po/fr.po (original)
+++ people/halls/rework/debian/po/fr.po Thu Aug 3 17:05:49 2006
@@ -12,16 +12,16 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: apt-proxy_1.9.15\n"
+"Project-Id-Version: apt-proxy_1.9.32\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-07-23 15:00+0200\n"
+"PO-Revision-Date: 2005-09-16 20:40+0200\n"
"Last-Translator: Olivier Trichet <olivier.trichet at freesurf.fr>\n"
"Language-Team: French <debian-l10n-french at lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
+"X-Generator: KBabel 1.10.2\n"
#. Type: note
#. Description
@@ -51,7 +51,6 @@
#. Type: note
#. Description
#: ../templates:3
-#, fuzzy
msgid ""
"I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
"you didn't already have such file. In any case, a backup file will be "
@@ -65,8 +64,7 @@
#. Type: note
#. Description
#: ../templates:3
-msgid ""
-"There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
+msgid "There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
msgstr ""
"D'autres problèmes liés à cette mise à niveau sont documentés dans /usr/"
"share/doc/apt-proxy/UPGRADING."
@@ -97,3 +95,4 @@
"Il est recommandé de lire ces avertissements ainsi que le fichier /usr/share/"
"doc/apt-proxy/UPGRADING et d'adapter la configuration qui se trouve dans le "
"fichier /etc/apt-proxy/apt-proxy-v2.conf."
+
Modified: people/halls/rework/debian/po/nl.po
==============================================================================
--- people/halls/rework/debian/po/nl.po (original)
+++ people/halls/rework/debian/po/nl.po Thu Aug 3 17:05:49 2006
@@ -16,7 +16,7 @@
"Project-Id-Version: apt-proxy\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-11-09 01:09+0100\n"
+"PO-Revision-Date: 2006-03-10 14:00+0100\n"
"Last-Translator: Bart Cornelis <cobaco at linux.be>\n"
"Language-Team: debian-l10n-duth <debian-l10n-dutch at lists.debian.org>\n"
"MIME-Version: 1.0\n"
@@ -38,35 +38,20 @@
#. Type: note
#. Description
#: ../templates:3
-msgid ""
-"apt-proxy has been rewritten in python and the new configuration file format "
-"is incompatible with previous version. Hopefully you will like the new "
-"format better :)"
-msgstr ""
-"apt-proxy is herschreven in python en het nieuwe bestandsformaat van het "
-"configuratiebestand is incompatibel met de de vorige versie. Hopelijk vindt "
-"u het nieuwe formaat beter :-)"
+msgid "apt-proxy has been rewritten in python and the new configuration file format is incompatible with previous version. Hopefully you will like the new format better :)"
+msgstr "apt-proxy is herschreven in python en het nieuwe bestandsformaat van het configuratiebestand is incompatibel met de de vorige versie. Hopelijk vindt u het nieuwe formaat beter :-)"
#. Type: note
#. Description
#: ../templates:3
-#, fuzzy
-msgid ""
-"I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
-"you didn't already have such file. In any case, a backup file will be "
-"written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
-msgstr ""
-"Als u dit bestand nog niet heeft, wordt /etc/apt-proxy/apt-proxy-v2.conf "
-"opgebouwd aan de hand van uw oude instellingen. Zowieso wordt er een "
-"reservekopie opgeslagen onder de naam /etc/apt-proxy/apt-proxy-v2.conf.backup"
+msgid "I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if you didn't already have such file. In any case, a backup file will be written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
+msgstr "Wanneer /etc/apt-proxy/apt-proxy-v2.conf nog niet bestaat wordt deze opgebouwd aan de hand van uw oude instellingen. Er wordt altijd een reservekopie opgeslagen onder de naam /etc/apt-proxy/apt-proxy-v2.conf.backup"
#. Type: note
#. Description
#: ../templates:3
-msgid ""
-"There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
-msgstr ""
-"Er zijn verdere issues gedocumenteerd in /usr/share/doc/apt-proxy/UPGRADING"
+msgid "There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
+msgstr "Er zijn verdere issues gedocumenteerd in /usr/share/doc/apt-proxy/UPGRADING"
#. Type: note
#. Description
@@ -77,20 +62,12 @@
#. Type: note
#. Description
#: ../templates:19
-msgid ""
-"The upgrading script dumped some warnings and they have been mailed to "
-"root at localhost."
-msgstr ""
-"Het opwaarderingsscript gaf enkele waarschuwingen; deze zijn naar "
-"root at localhost gemaild."
+msgid "The upgrading script dumped some warnings and they have been mailed to root at localhost."
+msgstr "Het opwaarderingsscript gaf enkele waarschuwingen; deze zijn naar root at localhost gemaild."
#. Type: note
#. Description
#: ../templates:19
-msgid ""
-"You should read those warnings and /usr/share/doc/apt-proxy/UPGRADING and "
-"revise your configuration (/etc/apt-proxy/apt-proxy-v2.conf)"
-msgstr ""
-"U kunt deze waarschuwingen en /usr/share/doc/apt-proxy/UPGRADING best "
-"nalezen en vervolgens uw configuratie herzien (/etc/apt-prox/apt-proxy-v2."
-"conf)"
+msgid "You should read those warnings and /usr/share/doc/apt-proxy/UPGRADING and revise your configuration (/etc/apt-proxy/apt-proxy-v2.conf)"
+msgstr "U kunt deze waarschuwingen en /usr/share/doc/apt-proxy/UPGRADING best nalezen en vervolgens uw configuratie herzien (/etc/apt-prox/apt-proxy-v2.conf)"
+
Modified: people/halls/rework/debian/po/vi.po
==============================================================================
--- people/halls/rework/debian/po/vi.po (original)
+++ people/halls/rework/debian/po/vi.po Thu Aug 3 17:05:49 2006
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: apt-proxy 1.9.28\n"
+"Project-Id-Version: apt-proxy 1.9.30\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2005-05-12 23:46+0930\n"
+"PO-Revision-Date: 2005-06-12 12:04+0930\n"
"Last-Translator: Clytie Siddall <clytie at riverland.net.au>\n"
"Language-Team: Vietnamese <gnomevi-list at lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -19,7 +19,7 @@
#. Description
#: ../templates:3
msgid "Upgrading from pre-v1.9 packages."
-msgstr "Cáºp nhât từ các gói tin trưá»c phiên bản 1.9..."
+msgstr "Cáºp nhât từ các gói tin trưá»c phiên bản 1.9."
#. Type: note
#. Description
@@ -47,9 +47,9 @@
"you didn't already have such file. In any case, a backup file will be "
"written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
msgstr ""
-"Sẽ xây dụng /etc/apt-proxy/apt-proxy-v2.conf Äá»±a và o các thiết láºp cÅ© cá»§a "
+"Sẽ xây dụng «/etc/apt-proxy/apt-proxy-v2.conf» Äá»±a và o các thiết láºp cÅ© cá»§a "
"bạn nếu bạn chưa có táºp tin như váºy. Trong bất cứ trưá»ng hợp nà o, sẽ ghi má»t "
-"táºp tin lưu trữ và o /etc/apt-proxy/apt-proxy-v2.conf.backup"
+"táºp tin lưu trữ và o «/etc/apt-proxy/apt-proxy-v2.conf.backup»."
#. Type: note
#. Description
@@ -57,8 +57,8 @@
msgid ""
"There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
msgstr ""
-"CÅ©ng có má»t sá» vấn Äá» khác ÄÆ°á»£c diá»
n tả trong tà i liá»u /usr/share/doc/apt-"
-"proxy/UPGRADING (cáºp nháºt)"
+"CÅ©ng có má»t sá» vấn Äá» khác ÄÆ°á»£c diá»
n tả trong tà i liá»u «/usr/share/doc/apt-"
+"proxy/UPGRADING» (cáºp nháºt)"
#. Type: note
#. Description
@@ -73,7 +73,7 @@
"The upgrading script dumped some warnings and they have been mailed to "
"root at localhost."
msgstr ""
-"Táºp lá»nh cáºp nháºt Äã Äá» má»t sá» cảnh báo mÃ ÄÆ°á»£c gá»i cho root at localhost."
+"Táºp lá»nh cáºp nháºt Äã Äá» má»t sá» cảnh báo mÃ ÄÆ°á»£c gá»i cho «root at localhost»."
#. Type: note
#. Description
@@ -82,5 +82,6 @@
"You should read those warnings and /usr/share/doc/apt-proxy/UPGRADING and "
"revise your configuration (/etc/apt-proxy/apt-proxy-v2.conf)"
msgstr ""
-"Bạn hãy Äá»c những cảnh báo ấy và tà i liá»u /usr/share/doc/apt-proxy/UPGRADING "
-"và cÅ©ng sá»a Äá»i cấu hình cá»§a bạn (/etc/apt-proxy/apt-proxy-v2.conf)."
+"Bạn hãy Äá»c những cảnh báo ấy và tà i liá»u «/usr/share/doc/apt-proxy/"
+"UPGRADING» và cÅ©ng sá»a Äá»i cấu hình cá»§a bạn («/etc/apt-proxy/apt-proxy-v2."
+"conf»)."
Modified: people/halls/rework/debian/rules
==============================================================================
--- people/halls/rework/debian/rules (original)
+++ people/halls/rework/debian/rules Thu Aug 3 17:05:49 2006
@@ -6,8 +6,8 @@
build-stamp:
dh_testdir
- po4a doc/po4a.cfg
$(MAKE) -C doc apt-proxy-import.8
+ po4a doc/po4a.cfg
touch build-stamp
clean:
Modified: people/halls/rework/doc/apt-proxy-import.8.inc
==============================================================================
--- people/halls/rework/doc/apt-proxy-import.8.inc (original)
+++ people/halls/rework/doc/apt-proxy-import.8.inc Thu Aug 3 17:05:49 2006
@@ -19,14 +19,14 @@
.PP
2. Import files from apt's cache:
.nf
- apt\-proxy\-import \-i /var/cache/apt/archives
+ apt\-proxy\-import /var/cache/apt/archives
.fi
[IMPORTING APT\-MOVE CACHE]
You can import the apt\-move generated cache into apt\-proxy using the following command:
.PP
.nf
- apt\-proxy\-import \-r \-i /var/cache/apt\-move
+ apt\-proxy\-import \-r /var/cache/apt\-move
.fi
.PP
This tells apt\-proxy\-import to recuse over each directory in the apt\-move cache.
Modified: people/halls/rework/doc/apt-proxy.8
==============================================================================
--- people/halls/rework/doc/apt-proxy.8 (original)
+++ people/halls/rework/doc/apt-proxy.8 Thu Aug 3 17:05:49 2006
@@ -11,7 +11,7 @@
\fBapt\-proxy\fP is a python program designed to be run as an stand alone
server via twistd, and provides a clean, caching, intelligent proxy for
\fBapt\-get\fP, which speaks HTTP to apt\-get clients, and http, ftp or rsync to
-the backend server(s)\&. apt-proxy listens by default on port 9999 by default\&.
+the backend server(s)\&. apt-proxy listens by default on port 9999\&.
.PP
.TP
\fB\-h\fR, \fB\-\-help\fR
Modified: people/halls/rework/doc/apt-proxy.conf
==============================================================================
--- people/halls/rework/doc/apt-proxy.conf (original)
+++ people/halls/rework/doc/apt-proxy.conf Thu Aug 3 17:05:49 2006
@@ -88,15 +88,6 @@
http://ftp2.de.debian.org/debian
ftp://ftp.uk.debian.org/debian
-
-[debian-non-US]
-;; Debian debian-non-US archive
-;timeout will be the global value
-backends =
- http://ftp.uk.debian.org/debian-non-US
- http://ftp.de.debian.org/debian-non-US
- ftp://ftp.uk.debian.org/debian
-
[security]
;; Debian security archive
backends =
Modified: people/halls/rework/doc/apt-proxy.conf.5
==============================================================================
--- people/halls/rework/doc/apt-proxy.conf.5 (original)
+++ people/halls/rework/doc/apt-proxy.conf.5 Thu Aug 3 17:05:49 2006
@@ -11,7 +11,7 @@
make upgrading from v1 easier.
The configuration file is divided up into several sections, where each \fI[resource]\fP
-section defines a seperate resource. The \fBDEFAULT\fP section applies to all resources.
+section defines a separate resource. The \fBDEFAULT\fP section applies to all resources.
The supplied \fIapt\-proxy\&.conf\fP will work out of the box, but it is best to
change the backends you use to a mirror closer to you. There are some in the
@@ -77,7 +77,7 @@
.TP
.B dynamic_backends
-By default apt\-proxy will add HTTP backends dynamicaly if not already
+By default apt\-proxy will add HTTP backends dynamically if not already
defined. Specify \fBoff\fP to restrict the available backends to those
listed in the configuration file. Default: on
Modified: people/halls/rework/doc/po/apt-proxy.pot
==============================================================================
--- people/halls/rework/doc/po/apt-proxy.pot (original)
+++ people/halls/rework/doc/po/apt-proxy.pot Thu Aug 3 17:05:49 2006
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2005-08-19 14:21-0300\n"
+"POT-Creation-Date: 2006-03-29 0:11+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
@@ -40,7 +40,7 @@
msgstr ""
# type: SH
-#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4
+#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4 doc/apt-proxy-import.8:5
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
@@ -51,7 +51,7 @@
msgstr ""
# type: SH
-#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy.conf.5:6
+#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy-import.8:8 doc/apt-proxy.conf.5:6
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
@@ -62,11 +62,11 @@
"B<apt-proxy> is a python program designed to be run as an stand alone server "
"via twistd, and provides a clean, caching, intelligent proxy for B<apt-get>, "
"which speaks HTTP to apt-get clients, and http, ftp or rsync to the backend "
-"server(s)\\&. apt-proxy listens by default on port 9999 by default\\&."
+"server(s)\\&. apt-proxy listens by default on port 9999\\&."
msgstr ""
# type: TP
-#: doc/apt-proxy.8:16
+#: doc/apt-proxy.8:16 doc/apt-proxy-import.8:29
#, no-wrap
msgid "B<-h>, B<--help>"
msgstr ""
@@ -77,7 +77,7 @@
msgstr ""
# type: TP
-#: doc/apt-proxy.8:19
+#: doc/apt-proxy.8:19 doc/apt-proxy-import.8:32
#, no-wrap
msgid "B<-c>, B<--config-file=>"
msgstr ""
@@ -161,7 +161,7 @@
msgstr ""
# type: SH
-#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy.conf.5:148
+#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy-import.8:66 doc/apt-proxy.conf.5:186
#, no-wrap
msgid "FILES"
msgstr ""
@@ -172,7 +172,7 @@
msgstr ""
# type: SH
-#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy-import.8:77 doc/apt-proxy.conf.5:190
#, no-wrap
msgid "SEE ALSO"
msgstr ""
@@ -183,7 +183,7 @@
msgstr ""
# type: SH
-#: doc/apt-proxy.8:68 doc/apt-proxy.conf.5:161
+#: doc/apt-proxy.8:68 doc/apt-proxy-import.8:68 doc/apt-proxy.conf.5:199
#, no-wrap
msgid "BUGS"
msgstr ""
@@ -197,7 +197,7 @@
msgstr ""
# type: SH
-#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22
+#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22 doc/apt-proxy-import.8:75
#, no-wrap
msgid "AUTHORS"
msgstr ""
@@ -221,20 +221,22 @@
msgid "November 2002"
msgstr ""
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
# type: TH
-#: doc/apt-proxy-v1tov2.8:1
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
#, no-wrap
msgid "Debian GNU/Linux"
msgstr ""
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
# type: TH
-#: doc/apt-proxy-v1tov2.8:1
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
#, no-wrap
-msgid " "
+msgid " "
msgstr ""
# type: SH
-#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy.conf.5:3
+#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy-import.8:3 doc/apt-proxy.conf.5:3
#, no-wrap
msgid "NAME"
msgstr ""
@@ -275,12 +277,12 @@
msgstr ""
# type: Plain text
-#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:150
+#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:188
msgid "/etc/apt-proxy/apt-proxy\\&.conf"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:190
msgid "/etc/apt-proxy/apt-proxy-v2\\&.conf"
msgstr ""
@@ -290,106 +292,223 @@
msgstr ""
# type: Plain text
-#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8.inc:42
+#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8:82
msgid "B<apt-proxy>(8), B<apt-proxy.conf>(5)"
msgstr ""
-#. Man page was originaly copied from apt-proxy man page.
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+# type: TH
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "APT-PROXY-IMPORT"
+msgstr ""
+
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+# type: TH
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "March 2006"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:5
+msgid "apt-proxy-import - Import packages into the apt-proxy cache."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:8
+msgid "B<apt-proxy-import> [I<options>] I<E<lt>filenameE<gt> >..."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:11
+msgid ""
+"WARNING: apt-proxy has not been tested under this version of twisted "
+"(2.2.0). WARNING: although it should work without problem."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:13
+msgid "apt-proxy-import B<-r> [options] E<lt>directoryE<gt> ..."
+msgstr ""
+
+# type: SH
+#: doc/apt-proxy-import.8:13
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:14
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:17
+msgid "print version and quit"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:17
+#, no-wrap
+msgid "B<-v>, B<--verbose>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:20
+msgid "give verbose output"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:20
+#, no-wrap
+msgid "B<-d>, B<--debug>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:23
+msgid "debug output"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:23
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:26
+msgid "try not to write messages to stdout"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:26
+#, no-wrap
+msgid "B<-r>, B<--recursive>"
+msgstr ""
+
# type: Plain text
-#: doc/apt-proxy-import.8.inc:4
-msgid "[NAME] apt-proxy-import - Import packages into the apt-proxy cache."
+#: doc/apt-proxy-import.8:29
+msgid "recurse into subdirectories"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:9
+#: doc/apt-proxy-import.8:32
+msgid "Display this help and exit."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:35
+msgid "Configuration file"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:37
+msgid "apt-proxy-import imports .deb files into the apt-proxy cache."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:41
msgid ""
-"/apt-proxy-import imports / It uses the package lists to determine where "
-"each file should be placed, so you should run B<'apt-get update'> to allow "
-"apt-proxy to update the package lists before running apt-proxy-import."
+"It uses the package lists to determine where each file should be placed, so "
+"you should run B<'apt-get update'> to allow apt-proxy to update the package "
+"lists before running apt-proxy-import."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:44
+msgid "WARNING: although it should work without problem. apt-proxy-import 1.9.x"
+msgstr ""
+
+# type: SH
+#: doc/apt-proxy-import.8:44
+#, no-wrap
+msgid "USING TO BOOTSTRAP A NEW APT-PROXY CACHE"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:14
+#: doc/apt-proxy-import.8:48
msgid ""
-"[USING TO BOOTSTRAP A NEW APT-PROXY CACHE] If you have been using apt "
-"standalone, you probably have built up a large collection of .debs or .udebs "
-"in apt's cache directory. You can import these files into apt-proxy as "
-"follows:"
+"If you have been using apt standalone, you probably have built up a large "
+"collection of .debs or .udebs in apt's cache directory. You can import "
+"these files into apt-proxy as follows:"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:16
+#: doc/apt-proxy-import.8:50
msgid "1. Update apt-proxy's filelists:"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:18
+#: doc/apt-proxy-import.8:52
#, no-wrap
msgid " apt-get update\n"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:21
+#: doc/apt-proxy-import.8:55
msgid "2. Import files from apt's cache:"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:23
+#: doc/apt-proxy-import.8:57
#, no-wrap
msgid " apt-proxy-import -i /var/cache/apt/archives\n"
msgstr ""
+# type: SH
+#: doc/apt-proxy-import.8:58
+#, no-wrap
+msgid "IMPORTING APT-MOVE CACHE"
+msgstr ""
+
# type: Plain text
-#: doc/apt-proxy-import.8.inc:27
+#: doc/apt-proxy-import.8:60
msgid ""
-"[IMPORTING APT-MOVE CACHE] You can import the apt-move generated cache into "
-"apt-proxy using the following command:"
+"You can import the apt-move generated cache into apt-proxy using the "
+"following command:"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:30
+#: doc/apt-proxy-import.8:63
#, no-wrap
msgid " apt-proxy-import -r -i /var/cache/apt-move\n"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:33
+#: doc/apt-proxy-import.8:66
msgid ""
"This tells apt-proxy-import to recuse over each directory in the apt-move "
"cache."
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:36
-msgid "[FILES] \\ /etc/apt-proxy/apt-proxy\\&.conf"
+#: doc/apt-proxy-import.8:68
+msgid "\\ /etc/apt-proxy/apt-proxy\\&.conf"
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:38
-msgid "[SEE ALSO]"
-msgstr ""
-
-# type: Plain text
-#: doc/apt-proxy-import.8.inc:48
+#: doc/apt-proxy-import.8:71
msgid ""
-"[BUGS] apt-proxy-import does not use I<max_age> or I<max_versions> to clean "
-"the cache directory on import."
+"apt-proxy-import does not use I<max_age> or I<max_versions> to clean the "
+"cache directory on import."
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:50
+#: doc/apt-proxy-import.8:73
msgid "It does not yet import source.tar.gz or Packages files."
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:52
+#: doc/apt-proxy-import.8:75
msgid "You must run it as the apt-proxy user or as root."
msgstr ""
# type: Plain text
-#: doc/apt-proxy-import.8.inc:54
+#: doc/apt-proxy-import.8:77
msgid ""
-"[AUTHORS] Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
+"Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
"E<lt>ranty at debian.orgE<gt>"
msgstr ""
@@ -404,7 +523,7 @@
# type: TH
#: doc/apt-proxy.conf.5:2
#, no-wrap
-msgid "21 Nov 2002"
+msgid "5 Jan 2006"
msgstr ""
# type: Plain text
@@ -416,72 +535,89 @@
#: doc/apt-proxy.conf.5:9
msgid ""
"B<apt-proxy\\&.conf> is the configuration file for apt-proxy. When "
-"apt-proxy starts up, it will read B</etc/apt-proxy/apt-proxy\\&.conf>\\&."
+"apt-proxy starts up, it will read I</etc/apt-proxy/apt-proxy\\&.conf>\\&."
msgstr ""
# type: Plain text
#: doc/apt-proxy.conf.5:12
msgid ""
-"B</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
+"I</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
"make upgrading from v1 easier."
msgstr ""
+# type: Plain text
+#: doc/apt-proxy.conf.5:15
+msgid ""
+"The configuration file is divided up into several sections, where each "
+"I<[resource]> section defines a separate resource. The B<DEFAULT> section "
+"applies to all resources."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:19
+msgid ""
+"The supplied I<apt-proxy\\&.conf> will work out of the box, but it is best "
+"to change the backends you use to a mirror closer to you. There are some in "
+"the default file, and it may be enough just to reorder the lines in the "
+"file\\&."
+msgstr ""
+
# type: SH
-#: doc/apt-proxy.conf.5:13
+#: doc/apt-proxy.conf.5:21
#, no-wrap
msgid "[DEFAULT]"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:15
+#: doc/apt-proxy.conf.5:23
msgid "This section holds options global to the whole apt-proxy:"
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:16
+#: doc/apt-proxy.conf.5:24
#, no-wrap
msgid "B<address>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:20
+#: doc/apt-proxy.conf.5:28
msgid ""
"IP address on which apt-proxy will listen for requests. Multiple addresses "
"have a empty space between it."
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:21
+#: doc/apt-proxy.conf.5:29
#, no-wrap
msgid "B<port>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:24
+#: doc/apt-proxy.conf.5:32
msgid "TCP port on which apt-proxy will listen for requests."
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:25
+#: doc/apt-proxy.conf.5:33
#, no-wrap
msgid "B<min_refresh_delay>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:30
+#: doc/apt-proxy.conf.5:38
msgid ""
"If different from B<off>, means that Packages and other control files will "
"not be refreshed more frequently than this number of seconds\\&."
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:31 doc/apt-proxy.conf.5:92
+#: doc/apt-proxy.conf.5:39 doc/apt-proxy.conf.5:96
#, no-wrap
msgid "B<timeout>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:36
+#: doc/apt-proxy.conf.5:44
msgid ""
"Maximum I/O timeout in seconds for backend transfers. Default: 30 seconds. "
"If no response is received from a backend server in this time, apt-proxy "
@@ -489,24 +625,24 @@
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:37
+#: doc/apt-proxy.conf.5:45
#, no-wrap
msgid "B<cache_dir>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:40
+#: doc/apt-proxy.conf.5:48
msgid "Cache directory. Default: /var/cache/apt-proxy"
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:41
+#: doc/apt-proxy.conf.5:49
#, no-wrap
msgid "B<cleanup_freq>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:46
+#: doc/apt-proxy.conf.5:54
msgid ""
"If different from B<off>, indicates the time between housekeeping attempts: "
"delete files that have not been accessed in max_age, scan cache directories "
@@ -514,26 +650,26 @@
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:47
+#: doc/apt-proxy.conf.5:55
#, no-wrap
msgid "B<max_age>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:51
+#: doc/apt-proxy.conf.5:59
msgid ""
"If different from B<off>, indicates the maximum age of files before deletion "
"from the cache."
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:52
+#: doc/apt-proxy.conf.5:60
#, no-wrap
msgid "B<max_versions>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:59
+#: doc/apt-proxy.conf.5:67
msgid ""
"If different from B<off>, indicates the maximum number of versions of a "
"\\&.deb to keep. This is the number of versions per distribution, for "
@@ -543,13 +679,13 @@
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:60 doc/apt-proxy.conf.5:106
+#: doc/apt-proxy.conf.5:68 doc/apt-proxy.conf.5:111
#, no-wrap
msgid "B<passive_ftp>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:65
+#: doc/apt-proxy.conf.5:73
msgid ""
"Specify B<on> to use passive FTP, which works from behind a firewall, but "
"may not be supported on all servers. Specify B<off> to use active FTP "
@@ -557,38 +693,38 @@
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:66
+#: doc/apt-proxy.conf.5:74
#, no-wrap
msgid "B<http_proxy>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:69
+#: doc/apt-proxy.conf.5:77
msgid "Specify B<hostname:port> to use an upstream proxy."
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:70
+#: doc/apt-proxy.conf.5:78
#, no-wrap
msgid "B<dynamic_backends>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:75
+#: doc/apt-proxy.conf.5:83
msgid ""
-"By default apt-proxy will add HTTP backends dynamicaly if not already "
+"By default apt-proxy will add HTTP backends dynamically if not already "
"defined. Specify B<off> to restrict the available backends to those listed "
"in the configuration file. Default: on"
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:76
+#: doc/apt-proxy.conf.5:84
#, no-wrap
msgid "B<disable_pipelining>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:82
+#: doc/apt-proxy.conf.5:90
msgid ""
"apt-proxy can use HTTP pipelining to fetch several files at once (up to 10), "
"but this can generate multiple connections to each backend server. "
@@ -597,70 +733,83 @@
msgstr ""
# type: SH
-#: doc/apt-proxy.conf.5:84
+#: doc/apt-proxy.conf.5:92
#, no-wrap
-msgid "BACKENDS"
-msgstr ""
-
-# type: Plain text
-#: doc/apt-proxy.conf.5:87
-msgid ""
-"All other sections will be interpreted as backend names, and the options "
-"specified within are local to the backend."
+msgid "RESOURCES"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:91
+#: doc/apt-proxy.conf.5:95
msgid ""
-"The supplied apt-proxy\\&.conf will work out of the box, but I suggest you "
-"look for a mirror closer to you\\&. There are some in the default "
-"apt-proxy\\&.conf and it may be enough just to reorder the lines in the "
-"file\\&."
+"All other sections in the configuration file will be interpreted as resource "
+"names. The options in the section apply to this resource only."
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:95
+#: doc/apt-proxy.conf.5:99
msgid "Overrides the global timeout"
msgstr ""
# type: TP
-#: doc/apt-proxy.conf.5:96
+#: doc/apt-proxy.conf.5:100
#, no-wrap
-msgid "B<backends = E<lt>protocolE<gt>://E<lt>serverE<gt>/E<lt>directoryE<gt>>"
+msgid ""
+"B<backends = "
+">I<E<lt>protocolE<gt>>B<://>I<E<lt>serverE<gt>>B</>I<E<lt>directoryE<gt>>B< "
+"[...]>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:99
-msgid "A list of backend URLs\\&."
+#: doc/apt-proxy.conf.5:103
+msgid "A list one or more URLs referring to servers which hold debian packages\\&."
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:101
-msgid "Protocol - internet protocol to use: http, ftp or rsync"
+#: doc/apt-proxy.conf.5:106
+msgid "I<protocol>: internet protocol to use: http, ftp or rsync"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:103
-msgid "Server - hostname of the backend server to contact"
+#: doc/apt-proxy.conf.5:108
+msgid "I<server>: hostname of the backend server to contact"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:105
-msgid "Directory - directory name to prepend requests to for this server"
+#: doc/apt-proxy.conf.5:110
+msgid "I<directory>: directory name to prepend requests to for this server"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:109
+#: doc/apt-proxy.conf.5:114
msgid "Override the global setting of passive_ftp"
msgstr ""
+# type: SH
+#: doc/apt-proxy.conf.5:115
+#, no-wrap
+msgid "CONFIGURATION EXAMPLES"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:120
+msgid ""
+"To access a resource that's listed under a specific section name, simply "
+"append the section name (without the brackets) to the end of your deb source "
+"line in /etc/apt/sources.list"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:122
+msgid "B<Debian main>"
+msgstr ""
+
# type: Plain text
-#: doc/apt-proxy.conf.5:113
+#: doc/apt-proxy.conf.5:125
msgid "This example shows how to give clients access to the main Debian archive:"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:117
+#: doc/apt-proxy.conf.5:129
#, no-wrap
msgid ""
"[debian]\n"
@@ -669,25 +818,25 @@
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:122
-msgid "Using this configuration, the client would use a B<sources.list> entry like:"
+#: doc/apt-proxy.conf.5:134
+msgid "Using this configuration, the client would use a I<sources.list> entry like:"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:125
+#: doc/apt-proxy.conf.5:137
#, no-wrap
-msgid " deb http://server:9999/debian/ woody main\n"
+msgid " deb http://server:9999/debian woody main\n"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:130
+#: doc/apt-proxy.conf.5:142
msgid ""
"And so the file request `/debian/woody/main/binary-i386/x11/foo_1-1.deb' "
"would turn into a backend request of first"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:133
+#: doc/apt-proxy.conf.5:145
#, no-wrap
msgid ""
" "
@@ -695,12 +844,12 @@
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:136
+#: doc/apt-proxy.conf.5:148
msgid "and if that failed,"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:139
+#: doc/apt-proxy.conf.5:151
#, no-wrap
msgid ""
" "
@@ -708,13 +857,12 @@
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:142
-#, no-wrap
-msgid "and the file would be placed in\n"
+#: doc/apt-proxy.conf.5:154
+msgid "and apt-proxy will place the downloaded package in"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:144
+#: doc/apt-proxy.conf.5:156
#, no-wrap
msgid ""
" "
@@ -722,31 +870,76 @@
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:147
+#: doc/apt-proxy.conf.5:159
+msgid "B<backports.org>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:161
+msgid "The backports.org website tells you to use this I<sources.list> line:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:164
+#, no-wrap
+msgid " deb http://www.backports.org/debian sarge-backports main\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:168
+msgid ""
+"You can add this to apt-proxy by creating a new section in "
+"I<apt-proxy\\&.conf>\\&. In the new section, add a backends entry for the "
+"URL:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:172
+#, no-wrap
+msgid ""
+" [backports]\n"
+" backends = http://www.backports.org/debian\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:177
+msgid ""
+"On the clients, replace the URL with one pointing to the apt-proxy resource "
+"name, in the form I<http://hostname:port/backend>. If your apt-proxy "
+"hostname is I<proxy> and it is running on port 9999, you would write:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:180
#, no-wrap
+msgid " deb http://proxy:9999/backports sarge-backports main\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:185
msgid ""
"For many more examples, see the supplied "
-"/etc/apt-proxy/apt-proxy\\&.conf\\&.\n"
+"/etc/apt-proxy/apt-proxy\\&.conf\\&."
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:158
+#: doc/apt-proxy.conf.5:196
msgid "B<apt-proxy(8),> B</usr/share/doc/apt-proxy/README,> B<apt-proxy-import(8)>"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:163
+#: doc/apt-proxy.conf.5:201
msgid "Plenty sure. Please report."
msgstr ""
# type: SH
-#: doc/apt-proxy.conf.5:164
+#: doc/apt-proxy.conf.5:202
#, no-wrap
msgid "AUTHOR"
msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:165
+#: doc/apt-proxy.conf.5:203
msgid ""
"apt-proxy v2 was written by Manuel Estrada Sainz "
"E<lt>ranty at debian.orgE<gt>\\&."
Modified: people/halls/rework/doc/po/fr.po
==============================================================================
--- people/halls/rework/doc/po/fr.po (original)
+++ people/halls/rework/doc/po/fr.po Thu Aug 3 17:05:49 2006
@@ -1,19 +1,21 @@
-# Translation of fr.po to french
+# translation of fr.po to French
# Raphaël 'SurcouF' Bordet <surcouf at debianfr.net>, 2004.
# <surcouf at gmx.fr>, 2004.
-#
-#
+# Sylvain Archenault <sylvain.archenault at laposte.net>, 2005.
+#
+#
msgid ""
msgstr ""
"Project-Id-Version: apt-proxy 1.3.6.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-18 11:55-0300\n"
-"PO-Revision-Date: 2005-02-17 01:20+0100\n"
-"Last-Translator: Raphaël 'SurcouF' Bordet <surcouf at debianfr.net>\n"
-"Language-Team: French <debian-l10n-french at lists.debian.org>\n"
+"POT-Creation-Date: 2006-03-29 0:11+0200\n"
+"PO-Revision-Date: 2005-10-18 19:14+0200\n"
+"Last-Translator: Sylvain Archenault <sylvain.archenault at laposte.net>\n"
+"Language-Team: French <French <debian-l10n-french at lists.debian.org>>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10.2\n"
# type: TH
#. Man page copied from apt.conf man page.
@@ -27,7 +29,7 @@
#: doc/apt-proxy.8:2
#, no-wrap
msgid "15 Jul 2005"
-msgstr ""
+msgstr "15 jul 2005"
# type: SH
#: doc/apt-proxy.8:3
@@ -39,11 +41,11 @@
#: doc/apt-proxy.8:5
msgid "apt-proxy - A proxy for saving bandwidth to Debian servers"
msgstr ""
-"apt\\-proxy \\- Un mandataire pour économiser de la bande passante sur les "
+"apt-proxy - Un mandataire pour économiser de la bande passante sur les "
"serveurs Debian"
# type: SH
-#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4
+#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4 doc/apt-proxy-import.8:5
#, no-wrap
msgid "SYNOPSIS"
msgstr "SYNOPSIS"
@@ -51,53 +53,53 @@
# type: Plain text
#: doc/apt-proxy.8:8
msgid "B<apt-proxy> I<[options] [logfile]>"
-msgstr "B<apt\\-proxy> I<[options] [fichier de log]>"
+msgstr "B<apt-proxy> I<[options] [fichier de journal]>"
# type: SH
-#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy.conf.5:6
+#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy-import.8:8
+#: doc/apt-proxy.conf.5:6
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
# type: Plain text
#: doc/apt-proxy.8:15
-#, fuzzy
msgid ""
"B<apt-proxy> is a python program designed to be run as an stand alone server "
"via twistd, and provides a clean, caching, intelligent proxy for B<apt-get>, "
"which speaks HTTP to apt-get clients, and http, ftp or rsync to the backend "
-"server(s)\\&. apt-proxy listens by default on port 9999 by default\\&."
+"server(s)\\&. apt-proxy listens by default on port 9999\\&."
msgstr ""
-"B<apt\\-proxy> est un logiciel écrit en python, conçu pour tourner de lui-"
+"B<apt-proxy> est un logiciel écrit en python, conçu pour fonctionner de lui-"
"même via twistd et qui fournit un serveur mandataire (« proxy ») propre, "
-"cachant et intelligent pour B<apt\\-get>.Il communique via HTTP avec les "
-"clients apt\\-get et HTTP ou FTP aux serveurs\\&. Normalement, il est "
-"configuré sur le port TCP 9999, principalement parce que c'est la "
-"configuration par défaut, et que les gens sont paresseux\\&."
+"cachant et intelligent pour B<apt-get>. Il communique via HTTP avec les "
+"clients apt-get et via HTTP, FTP et rsync avec les serveur(s) finaux. apt-"
+"proxy écoute par défaut sur le port 9999."
# type: TP
-#: doc/apt-proxy.8:16
+#: doc/apt-proxy.8:16 doc/apt-proxy-import.8:29
#, no-wrap
msgid "B<-h>, B<--help>"
-msgstr ""
+msgstr "B<-h>, B<--help>"
# type: Plain text
#: doc/apt-proxy.8:19
msgid "Display usage information\\&."
-msgstr ""
+msgstr "Affiche les informations d'utilisation"
# type: TP
-#: doc/apt-proxy.8:19
+#: doc/apt-proxy.8:19 doc/apt-proxy-import.8:32
#, no-wrap
msgid "B<-c>, B<--config-file=>"
-msgstr ""
+msgstr "B<-c>, B<--config-file=>"
# type: Plain text
#: doc/apt-proxy.8:22
-#, fuzzy
msgid ""
"Configuration file. This defaults to /etc/apt-proxy/apt-proxy-v2\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy-v2\\&.conf"
+msgstr ""
+"Fichier de configuration. Le fichier par défaut est /etc/apt-proxy/apt-proxy-"
+"v2.conf."
# type: SH
#: doc/apt-proxy.8:23
@@ -107,14 +109,13 @@
# type: Plain text
#: doc/apt-proxy.8:27
-#, fuzzy
msgid ""
"Once B<apt-proxy> is configured on a host SERVER, users then edit their "
"B<sources\\&.list> file to point to the proxy (which uses the http protocol "
"to serve clients), like so:"
msgstr ""
-"Une fois qu'B<apt\\-proxy> est configuré, les utilisateurs doivent éditer "
-"leur fichier B<sources\\&.list> pour utiliser le serveur mandataire ou "
+"Une fois qu'B<apt-proxy> est configuré, les utilisateurs doivent éditer leur "
+"fichier B<sources.list> pour utiliser le serveur mandataire ou "
"« proxy » (qui utilise le protocole HTTP pour servir les clients), comme "
"suit :"
@@ -125,8 +126,8 @@
"deb http://SERVER:9999/debian stable main contrib non-free\n"
"deb-src http://SERVER:9999/debian stable main contrib non-free\n"
msgstr ""
-"deb http://SERVER:9999/main stable main contrib non\\-free\n"
-"deb\\-src http://SERVER:9999/main stable main contrib non\\-free\n"
+"deb http://SERVEUR:9999/debian stable main contrib non-free\n"
+"deb-src http://SERVEUR:9999/debian stable main contrib non-free\n"
# type: Plain text
#: doc/apt-proxy.8:33
@@ -136,7 +137,6 @@
# type: Plain text
#: doc/apt-proxy.8:39
-#, fuzzy
msgid ""
"What path should be specified after the server name and port number depends "
"on the configuration of B<apt-proxy> (which can restrict paths and send "
@@ -144,14 +144,12 @@
"\\&."
msgstr ""
"Le chemin devant être spécifié après le nom du serveur et le numéro de port "
-"dépendent de la configuration d'B<apt\\-proxy> (ce qui peut restreindre les "
-"chemins et envoyer des chemins différents à différents serveurs)\\&. Dans "
-"cet exemple, non\\-US/ et helixcode/ récupèrent actuellement des fichiers de "
-"différents serveurs\\&."
+"dépend de la configuration d'B<apt-proxy> (ce qui peut restreindre les "
+"chemins et envoyer des chemins différents à différents serveurs). Voir B< "
+"CONFIGURATION DU SERVEUR>."
# type: Plain text
#: doc/apt-proxy.8:43
-#, fuzzy
msgid ""
"Note that you can also use the nicknames `unstable', `frozen' etc, but "
"Packages/Sources files may get duplicated, so it is best to use either the "
@@ -159,14 +157,14 @@
msgstr ""
"Notez que vous pouvez aussi utiliser les saveurs « unstable », « frozen », "
"etc., mais les fichiers Packages/Sources seraient dupliqués, aussi il est "
-"conseillé d'utiliser soit le lien symbolique soit le nom de code mais de s'y "
+"conseillé d'utiliser soit le nom symbolique soit le nom de code et de s'y "
"tenir."
# type: SH
#: doc/apt-proxy.8:44
#, no-wrap
msgid "SERVER CONFIGURATION"
-msgstr "CONFIGURATION DU SERVER"
+msgstr "CONFIGURATION DU SERVEUR"
# type: Plain text
#: doc/apt-proxy.8:48
@@ -174,8 +172,8 @@
"See B<apt-proxy.conf>(5) for details of how to set up apt-proxy to use "
"backends near to you."
msgstr ""
-"Voir B<apt\\-proxy.conf>(5) pour les détails sur comment configurer apt-"
-"proxy afin d'utiliser les dorsaux proches de vous."
+"Voir B<apt-proxy.conf>(5) pour les détails sur comment configurer apt-proxy "
+"afin d'utiliser les serveurs proches de vous."
# type: SH
#: doc/apt-proxy.8:49
@@ -191,26 +189,27 @@
"from the back end and only doing a single fetch for any file, how ever many "
"users request it from the proxy."
msgstr ""
-"B<apt\\-proxy> réduit les besoins en bande passante des miroirs Debian en "
+"B<apt-proxy> réduit les besoins en bande passante des miroirs Debian en "
"restreignant la fréquence des mises à jour des fichiers Packages, Releases "
-"et Sources depuis le serveur et en téléchargeant une seule fois pour tout "
+"et Sources depuis le serveur et en téléchargeant une seule fois chaque "
"fichier, sans tenir compte du nombre d'utilisateurs qui en font la requête "
"au mandataire (« proxy »)."
# type: SH
-#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy.conf.5:148
+#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy-import.8:66
+#: doc/apt-proxy.conf.5:186
#, no-wrap
msgid "FILES"
msgstr "FICHIERS"
# type: Plain text
#: doc/apt-proxy.8:60
-#, fuzzy
msgid "/etc/apt-proxy/apt-proxy\\&.conf or /etc/apt-proxy/apt-proxy-v2\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy-v2\\&.conf"
+msgstr "/etc/apt-proxy/apt-proxy.conf ou /etc/apt-proxy/apt-proxy-v2.conf"
# type: SH
-#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy-import.8:77
+#: doc/apt-proxy.conf.5:190
#, no-wrap
msgid "SEE ALSO"
msgstr "VOIR AUSSI"
@@ -218,10 +217,10 @@
# type: Plain text
#: doc/apt-proxy.8:65
msgid "B<apt-proxy.conf>(5),B<apt-proxy-import>(8)"
-msgstr "B<apt-proxy.conf>(5),B<apt-proxy-import>(8)"
+msgstr "B<apt-proxy.conf>(5), B<apt-proxy-import>(8)"
# type: SH
-#: doc/apt-proxy.8:68 doc/apt-proxy.conf.5:161
+#: doc/apt-proxy.8:68 doc/apt-proxy-import.8:68 doc/apt-proxy.conf.5:199
#, no-wrap
msgid "BUGS"
msgstr "ANOMALIES"
@@ -233,15 +232,15 @@
"reduction in bytes transferred for binary packages, and much greater for "
"source and other packages."
msgstr ""
-"Les paquets ne sont pas compressés en utilisant l'option \\-\\-rsyncable de "
-"gzip, ce qui octroie une réduction de 30 % pour les paquets binaires, et "
+"Les paquets ne sont pas compressés en utilisant l'option --rsyncable de "
+"gzip, qui octroie une réduction de 30 % pour les paquets binaires, et "
"beaucoup plus pour les paquets sources et autres."
# type: SH
-#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22
+#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22 doc/apt-proxy-import.8:75
#, no-wrap
msgid "AUTHORS"
-msgstr "AUTEUR"
+msgstr "AUTEURS"
# type: Plain text
#: doc/apt-proxy.8:75
@@ -249,7 +248,7 @@
"apt-proxy v2 was written by Manuel Estrada Sainz and is maintained by Otavio "
"Salvador and Chris Halls."
msgstr ""
-"apt-proxy·v2 a été écrit par Manuel Estrada Sainz et est maintenu par Chris "
+"apt-proxy v2 a été écrit par Manuel Estrada Sainz et est maintenu par Chris "
"Halls."
# type: TH
@@ -262,22 +261,24 @@
#: doc/apt-proxy-v1tov2.8:1
#, no-wrap
msgid "November 2002"
-msgstr "Novembre 2002"
+msgstr "novembre 2002"
# type: TH
-#: doc/apt-proxy-v1tov2.8:1
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
#, no-wrap
msgid "Debian GNU/Linux"
msgstr "Debian GNU/Linux"
# type: TH
-#: doc/apt-proxy-v1tov2.8:1
-#, no-wrap
-msgid " "
-msgstr "."
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
+#, fuzzy, no-wrap
+msgid " "
+msgstr " "
# type: SH
-#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy.conf.5:3
+#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy-import.8:3 doc/apt-proxy.conf.5:3
#, no-wrap
msgid "NAME"
msgstr "NOM"
@@ -286,13 +287,13 @@
#: doc/apt-proxy-v1tov2.8:4
msgid "apt-proxy-v1tov2 - Updates apt-proxy configuration to the new format."
msgstr ""
-"apt-proxy-v1tov2·-·Convertit la configuration d'apt-proxy vers le nouveau "
+"apt-proxy-v1tov2 - Convertit la configuration d'apt-proxy vers le nouveau "
"format."
# type: Plain text
#: doc/apt-proxy-v1tov2.8:7
msgid "B<apt-proxy-v1tov2> [v1_conf [v2_sample_conf]] E<gt> v2_conf"
-msgstr "B<apt-proxy-v1tov2>·[v1_conf·[v2_sample_conf]]·E<gt>·v2_conf"
+msgstr "B<apt-proxy-v1tov2> [v1_conf [v2_exemple_conf]] E<gt> v2_conf"
# type: Plain text
#: doc/apt-proxy-v1tov2.8:11
@@ -300,8 +301,8 @@
"apt-proxy-v1tov2 tries to update I<v2_sample_conf> with the configuration "
"found in I<v1_conf> and writes the result to I<stdout>."
msgstr ""
-"apt-proxy-v1tov2 tente de convertir I<v2_sample_conf> avec la configuration "
-"trouvée dans le fichier I<v1_conf> et écrira le résultat vers I<stdout>."
+"apt-proxy-v1tov2 tente de convertir I<v2_exemple_conf> avec la configuration "
+"trouvée dans le fichier I<v1_conf> et écrira le résultat sur I<stdout>."
# type: Plain text
#: doc/apt-proxy-v1tov2.8:14
@@ -310,7 +311,7 @@
"etc/apt-proxy/apt-proxy-v2.conf for I<v2_sample_conf>."
msgstr ""
"Par défaut, il utilisera /etc/apt-proxy/apt-proxy.conf pour I<v1_conf> et /"
-"etc/apt-proxy/apt-proxy-v2.conf pour I<v2_sample_conf>."
+"etc/apt-proxy/apt-proxy-v2.conf pour I<v2_example_conf>."
# type: SH
#: doc/apt-proxy-v1tov2.8:15
@@ -326,96 +327,217 @@
"fait pour vous."
# type: Plain text
-#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:150
+#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:188
msgid "/etc/apt-proxy/apt-proxy\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
+msgstr "/etc/apt-proxy/apt-proxy.conf"
# type: Plain text
-#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:190
msgid "/etc/apt-proxy/apt-proxy-v2\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy-v2\\&.conf"
+msgstr "/etc/apt-proxy/apt-proxy-v2.conf"
# type: Plain text
#: doc/apt-proxy-v1tov2.8:24
msgid "Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>"
-msgstr "Manuel·Estrada·Sainz·E<lt>ranty at debian.orgE<gt>"
+msgstr "Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>"
# type: Plain text
-#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8.inc:42
+#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8:82
msgid "B<apt-proxy>(8), B<apt-proxy.conf>(5)"
-msgstr "B<ap\\-proxy>(8), B<apt\\-proxy\\&.conf>(5)"
+msgstr "B<apt-proxy>(8), B<apt-proxy.conf>(5)"
+
+# type: TH
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "APT-PROXY-IMPORT"
+msgstr "APT-PROXY-IMPORT"
+
+# type: TH
+#. DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "March 2006"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:5
+msgid "apt-proxy-import - Import packages into the apt-proxy cache."
+msgstr "apt-proxy-import - Importe les paquets dans le cache d'apt-proxy."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:8
+msgid "B<apt-proxy-import> [I<options>] I<E<lt>filenameE<gt> >..."
+msgstr "B<apt-proxy-import> [I<options>] I<E<lt>[fichier de journalL<gt> >..."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:11
+msgid ""
+"WARNING: apt-proxy has not been tested under this version of twisted "
+"(2.2.0). WARNING: although it should work without problem."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:13
+msgid "apt-proxy-import B<-r> [options] E<lt>directoryE<gt> ..."
+msgstr "apt-proxy-import B<-r> [options] E<lt>directoryE<gt> ..."
+
+# type: SH
+#: doc/apt-proxy-import.8:13
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPTIONS"
+
+# type: TP
+#: doc/apt-proxy-import.8:14
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:17
+msgid "print version and quit"
+msgstr "Affiche la version"
+
+# type: TP
+#: doc/apt-proxy-import.8:17
+#, no-wrap
+msgid "B<-v>, B<--verbose>"
+msgstr "B<-v>, B<--verbose>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:20
+msgid "give verbose output"
+msgstr "Sortie verbeuse"
+
+# type: TP
+#: doc/apt-proxy-import.8:20
+#, no-wrap
+msgid "B<-d>, B<--debug>"
+msgstr "B<-d>, B<--debug>"
# type: Plain text
-#. Man page was originaly copied from apt-proxy man page.
-#: doc/apt-proxy-import.8.inc:4
-msgid "[NAME] apt-proxy-import - Import packages into the apt-proxy cache."
+#: doc/apt-proxy-import.8:23
+msgid "debug output"
+msgstr "Sortie debug"
+
+# type: TP
+#: doc/apt-proxy-import.8:23
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:26
+msgid "try not to write messages to stdout"
+msgstr "N'essaye pas d'écrire des messages dans stdout"
+
+# type: TP
+#: doc/apt-proxy-import.8:26
+#, no-wrap
+msgid "B<-r>, B<--recursive>"
+msgstr "B<-r>, B<--recursive>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:29
+msgid "recurse into subdirectories"
+msgstr "Récursif dans les sous répertoires"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:32
+msgid "Display this help and exit."
+msgstr "Affiche cette aide."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:35
+msgid "Configuration file"
+msgstr "Fichier de configuration"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:37
+msgid "apt-proxy-import imports .deb files into the apt-proxy cache."
+msgstr " apt-proxy-import - Importe les paquets dans le cache d'apt-proxy."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:41
+msgid ""
+"It uses the package lists to determine where each file should be placed, so "
+"you should run B<'apt-get update'> to allow apt-proxy to update the package "
+"lists before running apt-proxy-import."
msgstr ""
-"[NOM] apt-proxy-import - Importe les paquets dans le cache d'apt-proxy."
+"Il utilise la liste de paquets pour déterminer où sera placé chaque fichier, "
+"aussi vous devriez lancer la commande B<'apt-get update'> pour permettre à "
+"apt-proxy de mettre à jour la liste de paquets avant de lancer apt-proxy-"
+"import."
# type: Plain text
-#: doc/apt-proxy-import.8.inc:9
+#: doc/apt-proxy-import.8:44
msgid ""
-"/apt-proxy-import imports / It uses the package lists to determine where "
-"each file should be placed, so you should run B<'apt-get update'> to allow "
-"apt-proxy to update the package lists before running apt-proxy-import."
+"WARNING: although it should work without problem. apt-proxy-import 1.9.x"
msgstr ""
-"/apt-proxy-import / Il utilise la liste de paquets pour déterminer où sera "
-"placé chaque fichier, aussi vous devriez lancer la commande B<'apt-get "
-"update'> pour permettre à apt-proxy de mettre à jour la liste de paquets "
-"avant de lancer apt-proxy-import."
+
+# type: SH
+#: doc/apt-proxy-import.8:44
+#, no-wrap
+msgid "USING TO BOOTSTRAP A NEW APT-PROXY CACHE"
+msgstr "À UTILISER POUR REMPLIR UN NOUVEAU CACHE POUR APT-PROXY"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:14
+#: doc/apt-proxy-import.8:48
msgid ""
-"[USING TO BOOTSTRAP A NEW APT-PROXY CACHE] If you have been using apt "
-"standalone, you probably have built up a large collection of .debs or .udebs "
-"in apt's cache directory. You can import these files into apt-proxy as "
-"follows:"
+"If you have been using apt standalone, you probably have built up a large "
+"collection of .debs or .udebs in apt's cache directory. You can import "
+"these files into apt-proxy as follows:"
msgstr ""
-"[À UTILISER POUR REMPLIR UN NOUVEAU CACHE POUR APT-PROXY] Si vous aviez déjà "
-"utilisé apt, vous avez probablement créé une importante collection de "
-"fichiers .deb ou .udeb dans le répertoire cache d'apt. Vous pouvez importer "
-"ces fichiers dans apt-proxy comme suit:"
+"Si vous aviez déjà utilisé apt, vous avez probablement créé une importante "
+"collection de fichiers .deb ou .udeb dans le répertoire cache d'apt. Vous "
+"pouvez importer ces fichiers dans apt-proxy comme suit :"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:16
+#: doc/apt-proxy-import.8:50
msgid "1. Update apt-proxy's filelists:"
-msgstr "1. Mettre à jour la liste de fichiers d'apt-proxy:"
+msgstr "1. Mettre à jour la liste de fichiers d'apt-proxy :"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:18
+#: doc/apt-proxy-import.8:52
#, no-wrap
msgid " apt-get update\n"
msgstr " apt-get update\n"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:21
+#: doc/apt-proxy-import.8:55
msgid "2. Import files from apt's cache:"
-msgstr "2. Importer des fichiers depuis le cache d'apt:"
+msgstr "2. Importer des fichiers depuis le cache d'apt :"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:23
+#: doc/apt-proxy-import.8:57
#, no-wrap
msgid " apt-proxy-import -i /var/cache/apt/archives\n"
msgstr " apt-proxy-import -i /var/cache/apt/archives\n"
+# type: SH
+#: doc/apt-proxy-import.8:58
+#, no-wrap
+msgid "IMPORTING APT-MOVE CACHE"
+msgstr "IMPORTER LE CACHE D'APT-MOVE"
+
# type: Plain text
-#: doc/apt-proxy-import.8.inc:27
+#: doc/apt-proxy-import.8:60
msgid ""
-"[IMPORTING APT-MOVE CACHE] You can import the apt-move generated cache into "
-"apt-proxy using the following command:"
+"You can import the apt-move generated cache into apt-proxy using the "
+"following command:"
msgstr ""
-"[IMPORTER LE CACHE D'APT-MOVE] Vous pouvez importer le cache généré par apt-"
-"move dans apt-proxy en utilisant la commande suivante:"
+"Vous pouvez importer le cache généré par apt-move dans apt-proxy en "
+"utilisant la commande suivante :"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:30
+#: doc/apt-proxy-import.8:63
#, no-wrap
msgid " apt-proxy-import -r -i /var/cache/apt-move\n"
msgstr " apt-proxy-import -r -i /var/cache/apt-move\n"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:33
+#: doc/apt-proxy-import.8:66
msgid ""
"This tells apt-proxy-import to recuse over each directory in the apt-move "
"cache."
@@ -424,44 +546,36 @@
"dans le cache d'apt-move."
# type: Plain text
-#: doc/apt-proxy-import.8.inc:36
-#, fuzzy
-msgid "[FILES] \\ /etc/apt-proxy/apt-proxy\\&.conf"
-msgstr "[FICHIERS] /etc/apt\\-proxy/apt\\-proxy\\&.conf"
-
-# type: SH
-#: doc/apt-proxy-import.8.inc:38
-msgid "[SEE ALSO]"
-msgstr "VOIR AUSSI"
+#: doc/apt-proxy-import.8:68
+msgid "\\ /etc/apt-proxy/apt-proxy\\&.conf"
+msgstr "\\ /etc/apt-proxy/apt-proxy.conf"
# type: Plain text
-#: doc/apt-proxy-import.8.inc:48
+#: doc/apt-proxy-import.8:71
msgid ""
-"[BUGS] apt-proxy-import does not use I<max_age> or I<max_versions> to clean "
-"the cache directory on import."
+"apt-proxy-import does not use I<max_age> or I<max_versions> to clean the "
+"cache directory on import."
msgstr ""
-"[BOGUES] apt-proxy-import n'utilise pas les options I<max_age> ou "
-"I<max_versions> pour purger le répertoire cache pendant l'import."
+"apt-proxy-import n'utilise pas les options I<max_age> ou I<max_versions> "
+"pour purger le répertoire cache pendant l'import."
# type: Plain text
-#: doc/apt-proxy-import.8.inc:50
+#: doc/apt-proxy-import.8:73
msgid "It does not yet import source.tar.gz or Packages files."
msgstr "Il n'importe pas encore les fichiers source.tar.gz ou Packages."
# type: Plain text
-#: doc/apt-proxy-import.8.inc:52
+#: doc/apt-proxy-import.8:75
msgid "You must run it as the apt-proxy user or as root."
-msgstr ""
-"Vous devez le lancer en tant que l'utilisateur d'apt-proxy ou en tant que "
-"root."
+msgstr "Vous devez le lancer en tant qu'utilisateur apt-proxy ou root."
# type: Plain text
-#: doc/apt-proxy-import.8.inc:54
+#: doc/apt-proxy-import.8:77
msgid ""
-"[AUTHORS] Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
+"Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
"E<lt>ranty at debian.orgE<gt>"
msgstr ""
-"[AUTEURS] Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
+"Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
"E<lt>ranty at debian.orgE<gt>"
# type: TH
@@ -469,157 +583,184 @@
#: doc/apt-proxy.conf.5:2
#, no-wrap
msgid "apt-proxy\\&.conf"
-msgstr "apt\\-proxy\\&.conf"
+msgstr "apt-proxy.conf"
# type: TH
#. Man page copied from apt.conf man page.
#: doc/apt-proxy.conf.5:2
-#, no-wrap
-msgid "21 Nov 2002"
-msgstr "21 Novembre 2002"
+#, fuzzy, no-wrap
+msgid "5 Jan 2006"
+msgstr "15 jul 2005"
# type: Plain text
#: doc/apt-proxy.conf.5:5
msgid "apt-proxy\\&.conf - configuration file for apt-proxy"
-msgstr "apt-proxy\\&.conf - fichier de configuration pour apt-proxy"
+msgstr "apt-proxy.conf - fichier de configuration pour apt-proxy"
# type: Plain text
#: doc/apt-proxy.conf.5:9
+#, fuzzy
msgid ""
"B<apt-proxy\\&.conf> is the configuration file for apt-proxy. When apt-"
-"proxy starts up, it will read B</etc/apt-proxy/apt-proxy\\&.conf>\\&."
+"proxy starts up, it will read I</etc/apt-proxy/apt-proxy\\&.conf>\\&."
msgstr ""
-"B<apt-proxy\\&.conf>·est le fichier de configuration pour apt-proxy. Au "
-"démarrage d'apt-proxy, il lira le fichier B</etc/apt-proxy/apt-proxy\\&.conf>"
-"\\&."
+"B<apt-proxy.conf> est le fichier de configuration pour apt-proxy. Au "
+"démarrage d'apt-proxy, il lira le fichier B</etc/apt-proxy/apt-proxy.conf>."
# type: Plain text
#: doc/apt-proxy.conf.5:12
+#, fuzzy
msgid ""
-"B</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
+"I</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
"make upgrading from v1 easier."
msgstr ""
-"B</etc/apt-proxy/apt-proxy-v2\\&.conf> sera lu à la place s'il existe afin "
-"de rendre la mise à jour depuis la v1 mieux transparente."
+"B</etc/apt-proxy/apt-proxy-v2.conf> sera lu à la place s'il existe afin de "
+"rendre la mise à jour depuis la version 1 plus transparente."
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:15
+msgid ""
+"The configuration file is divided up into several sections, where each I<"
+"[resource]> section defines a separate resource. The B<DEFAULT> section "
+"applies to all resources."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:19
+#, fuzzy
+msgid ""
+"The supplied I<apt-proxy\\&.conf> will work out of the box, but it is best "
+"to change the backends you use to a mirror closer to you. There are some in "
+"the default file, and it may be enough just to reorder the lines in the file"
+"\\&."
+msgstr ""
+"Le fichier apt-proxy.conf fourni devrait fonctionner tel quel, mais il est "
+"suggéré de choisir un miroir plus proche de vous. Certains sont dans le "
+"fichier apt-proxy.conf par défaut et il devrait suffire de réordonner les "
+"lignes dans ce fichier."
# type: SH
-#: doc/apt-proxy.conf.5:13
+#: doc/apt-proxy.conf.5:21
#, no-wrap
msgid "[DEFAULT]"
msgstr "[DÉFAUT]"
# type: Plain text
-#: doc/apt-proxy.conf.5:15
+#: doc/apt-proxy.conf.5:23
msgid "This section holds options global to the whole apt-proxy:"
-msgstr "Cette section contient les options globles à tout apt-proxy:"
+msgstr "Cette section contient les options globales d'apt-proxy :"
# type: TP
-#: doc/apt-proxy.conf.5:16
+#: doc/apt-proxy.conf.5:24
#, no-wrap
msgid "B<address>"
msgstr "B<address>"
# type: Plain text
-#: doc/apt-proxy.conf.5:20
+#: doc/apt-proxy.conf.5:28
msgid ""
"IP address on which apt-proxy will listen for requests. Multiple addresses "
"have a empty space between it."
msgstr ""
-"L'adresse IP sur laquelle apt-proxy sera à l'écoute des requêtes. Pour "
-"plusieurs adresses il faut avoir un espace entre elles."
+"L'adresse IP sur laquelle apt-proxy sera à l'écoute des requêtes. S'il y a "
+"plusieurs adresses, les séparer par un espace."
# type: TP
-#: doc/apt-proxy.conf.5:21
+#: doc/apt-proxy.conf.5:29
#, no-wrap
msgid "B<port>"
msgstr "B<port>"
# type: Plain text
-#: doc/apt-proxy.conf.5:24
+#: doc/apt-proxy.conf.5:32
msgid "TCP port on which apt-proxy will listen for requests."
msgstr "Le port TCP sur lequel apt-proxy sera à l'écoute des requêtes."
# type: TP
-#: doc/apt-proxy.conf.5:25
+#: doc/apt-proxy.conf.5:33
#, no-wrap
msgid "B<min_refresh_delay>"
msgstr "B<min_refresh_delay>"
# type: Plain text
-#: doc/apt-proxy.conf.5:30
+#: doc/apt-proxy.conf.5:38
msgid ""
"If different from B<off>, means that Packages and other control files will "
"not be refreshed more frequently than this number of seconds\\&."
msgstr ""
-"Si différent de B<off>, il signifie que les fichiers Packages et autres "
-"control ne seront pas rafraîchis plus fréquemment que ce nombre de secondes"
-"\\&."
+"Si différent de B<off>, cela signifie que les fichiers Packages et les "
+"autres fichiers de contrôle ne seront pas rafraîchis plus fréquemment que ce "
+"nombre de secondes."
# type: TP
-#: doc/apt-proxy.conf.5:31 doc/apt-proxy.conf.5:92
+#: doc/apt-proxy.conf.5:39 doc/apt-proxy.conf.5:96
#, no-wrap
msgid "B<timeout>"
msgstr "B<timeout>"
# type: Plain text
-#: doc/apt-proxy.conf.5:36
+#: doc/apt-proxy.conf.5:44
msgid ""
"Maximum I/O timeout in seconds for backend transfers. Default: 30 seconds. "
"If no response is received from a backend server in this time, apt-proxy "
"will try the next server in the list. Y"
msgstr ""
+"Délai d'I/O dépassé pour les transferts. Défaut : 30 secondes. Si aucune "
+"réponse n'est reçue du serveur dans ce laps de temps, apt-proxy essaiera le "
+"serveur suivant de la liste."
# type: TP
-#: doc/apt-proxy.conf.5:37
+#: doc/apt-proxy.conf.5:45
#, no-wrap
msgid "B<cache_dir>"
msgstr "B<cache_dir>"
# type: Plain text
-#: doc/apt-proxy.conf.5:40
+#: doc/apt-proxy.conf.5:48
msgid "Cache directory. Default: /var/cache/apt-proxy"
-msgstr "Répertoire de cache: Défaut: /var/cache/apt-proxy"
+msgstr "Répertoire de cache. Défaut : /var/cache/apt-proxy"
# type: TP
-#: doc/apt-proxy.conf.5:41
+#: doc/apt-proxy.conf.5:49
#, no-wrap
msgid "B<cleanup_freq>"
msgstr "B<cleanup_freq>"
# type: Plain text
-#: doc/apt-proxy.conf.5:46
+#: doc/apt-proxy.conf.5:54
msgid ""
"If different from B<off>, indicates the time between housekeeping attempts: "
"delete files that have not been accessed in max_age, scan cache directories "
"and update internal tables, ..."
msgstr ""
-"Si différent de B<off>, il indique la période entre les tentatives de "
-"nettoyage: les fichiers effacés qui n'ont pas été accédés depuis max_age, "
-"les scan de répertoires de cache et les mises à jour des tables internes, ..."
+"Si différent de B<off>, cela indique la période entre les tentatives de "
+"nettoyage : suppression des fichiers qui n'ont pas été accédés depuis "
+"max_age, analyse des répertoires de cache, mise à jour des tables "
+"internes, ..."
# type: TP
-#: doc/apt-proxy.conf.5:47
+#: doc/apt-proxy.conf.5:55
#, no-wrap
msgid "B<max_age>"
msgstr "B<max_age>"
# type: Plain text
-#: doc/apt-proxy.conf.5:51
+#: doc/apt-proxy.conf.5:59
msgid ""
"If different from B<off>, indicates the maximum age of files before deletion "
"from the cache."
msgstr ""
-"Si différent de B<off>, il indique l'âge maximal des fichiers avant "
+"Si différent de B<off>, cela indique l'âge maximal des fichiers avant leur "
"effacement du cache."
# type: TP
-#: doc/apt-proxy.conf.5:52
+#: doc/apt-proxy.conf.5:60
#, no-wrap
msgid "B<max_versions>"
msgstr "B<max_versions>"
# type: Plain text
-#: doc/apt-proxy.conf.5:59
+#: doc/apt-proxy.conf.5:67
msgid ""
"If different from B<off>, indicates the maximum number of versions of a \\&."
"deb to keep. This is the number of versions per distribution, for example "
@@ -627,66 +768,65 @@
"kept: the last 2 stable versions, the last 2 testing versions and the last 2 "
"unstable versions."
msgstr ""
-"Si différent de B<off>, il indique le nombre maximum de version d'un "
-"\\&paquet debian à conserver. Il y a un nombre de versions par "
-"distribution, par exemple mettre max_versions à 2 assurera qu'un maximum de "
-"6 paquets sera conservé: les deux dernières versions de stable, les deux "
-"dernières versions de testing et les deux dernières versions d'unstable."
+"Si différent de B<off>, cela indique le nombre maximum de version d'un "
+"paquet Debian à conserver. Il s'agit du nombre de versions par distribution. "
+"Par exemple, mettre max_versions à 2 assurera qu'un maximum de 6 paquets "
+"sera conservé : les deux dernières versions de stable, les deux dernières "
+"versions de testing et les deux dernières versions d'unstable."
# type: TP
-#: doc/apt-proxy.conf.5:60 doc/apt-proxy.conf.5:106
+#: doc/apt-proxy.conf.5:68 doc/apt-proxy.conf.5:111
#, no-wrap
msgid "B<passive_ftp>"
msgstr "B<passive_ftp>"
# type: Plain text
-#: doc/apt-proxy.conf.5:65
+#: doc/apt-proxy.conf.5:73
msgid ""
"Specify B<on> to use passive FTP, which works from behind a firewall, but "
"may not be supported on all servers. Specify B<off> to use active FTP "
"instead. Default: on"
msgstr ""
"Spécifiez B<on> pour utiliser le FTP passif, qui fonctionne à travers un "
-"firewall, mais n'est pas supporté sur tous les serveurs. Spécifiez B<off> "
-"pour utiliser le FTP actif à la place. Défaut; on"
+"pare-feu, mais n'est pas géré sur tous les serveurs. Spécifiez B<off> pour "
+"utiliser le FTP actif à la place. Défaut : on"
# type: TP
-#: doc/apt-proxy.conf.5:66
+#: doc/apt-proxy.conf.5:74
#, no-wrap
msgid "B<http_proxy>"
msgstr "B<http_proxy>"
# type: Plain text
-#: doc/apt-proxy.conf.5:69
+#: doc/apt-proxy.conf.5:77
msgid "Specify B<hostname:port> to use an upstream proxy."
-msgstr ""
-"Spécifiez B<nom d'hôte:numéro de port> pour utiliser un proxy en amont."
+msgstr "Indiquez B<nom d'hôte:port> pour utiliser un proxy amont."
# type: TP
-#: doc/apt-proxy.conf.5:70
+#: doc/apt-proxy.conf.5:78
#, no-wrap
msgid "B<dynamic_backends>"
msgstr "B<dynamic_backends>"
# type: Plain text
-#: doc/apt-proxy.conf.5:75
+#: doc/apt-proxy.conf.5:83
msgid ""
-"By default apt-proxy will add HTTP backends dynamicaly if not already "
+"By default apt-proxy will add HTTP backends dynamically if not already "
"defined. Specify B<off> to restrict the available backends to those listed "
"in the configuration file. Default: on"
msgstr ""
"Par défaut, apt-proxy ajoutera les dorsaux HTTP dynamiquement s'ils ne sont "
"pas déjà définis. Mettre à B<off> pour restreindre les dorsaux disponibles à "
-"ceux listés dans le fichier de configuration. Défaut: on"
+"ceux listés dans le fichier de configuration. Défaut : on"
# type: TP
-#: doc/apt-proxy.conf.5:76
+#: doc/apt-proxy.conf.5:84
#, no-wrap
msgid "B<disable_pipelining>"
msgstr "B<disable_pipelining>"
# type: Plain text
-#: doc/apt-proxy.conf.5:82
+#: doc/apt-proxy.conf.5:90
msgid ""
"apt-proxy can use HTTP pipelining to fetch several files at once (up to 10), "
"but this can generate multiple connections to each backend server. "
@@ -695,85 +835,97 @@
msgstr ""
"apt-proxy peut utiliser la canalisation HTTP pour récupérer plusieurs "
"fichiers en une fois (jusqu'à 10), mais ceci génère de multiples connexions "
-"sur chaque dorsaux. La canalisation est désactivée par défaut jusqu'à ce "
-"qu'elle soit fixée. Mettre à B<0> pour activer la canalisation "
-"expérimentale HTTP. Défaut: 1"
+"sur chaque dorsal. La canalisation est désactivée par défaut jusqu'à ce que "
+"ce problème soit corrigé. Mettre à B<0> pour activer la canalisation "
+"expérimentale HTTP. Défaut : 1"
# type: SH
-#: doc/apt-proxy.conf.5:84
+#: doc/apt-proxy.conf.5:92
#, no-wrap
-msgid "BACKENDS"
-msgstr "DORSAUX"
-
-# type: Plain text
-#: doc/apt-proxy.conf.5:87
-msgid ""
-"All other sections will be interpreted as backend names, and the options "
-"specified within are local to the backend."
+msgid "RESOURCES"
msgstr ""
-"Toutes les autres sections devront être interprétées comme des noms de "
-"miroirs, et les options spécifiées avec seront locales à ce miroir."
# type: Plain text
-#: doc/apt-proxy.conf.5:91
+#: doc/apt-proxy.conf.5:95
+#, fuzzy
msgid ""
-"The supplied apt-proxy\\&.conf will work out of the box, but I suggest you "
-"look for a mirror closer to you\\&. There are some in the default apt-proxy"
-"\\&.conf and it may be enough just to reorder the lines in the file\\&."
+"All other sections in the configuration file will be interpreted as resource "
+"names. The options in the section apply to this resource only."
msgstr ""
-"Le fichier apt-proxy\\&.conf fourni devrait fonctionner tel quel, mais je "
-"vous suggère de choisir un miroir plus proche de vous\\&. Nombreux sont "
-"dans le fichier apt-proxy.conf par défaut et il devrait être suffisant de ré-"
-"ordonner les lignes dans ce fichier\\&."
+"Toutes les autres sections devront être interprétées comme des noms de "
+"miroir, et les options qui y seront spécifiées seront spécifiques à ce "
+"miroir."
# type: Plain text
-#: doc/apt-proxy.conf.5:95
+#: doc/apt-proxy.conf.5:99
msgid "Overrides the global timeout"
-msgstr "Surcharger le temps de réponse global"
+msgstr "Supplanter le temps global d'expiration"
# type: TP
-#: doc/apt-proxy.conf.5:96
-#, no-wrap
-msgid "B<backends = E<lt>protocolE<gt>://E<lt>serverE<gt>/E<lt>directoryE<gt>>"
+#: doc/apt-proxy.conf.5:100
+#, fuzzy, no-wrap
+msgid "B<backends = >I<E<lt>protocolE<gt>>B<://>I<E<lt>serverE<gt>>B</>I<E<lt>directoryE<gt>>B< [...]>"
msgstr "B<miroirs = E<lt>protocoleE<gt>://E<lt>serveurE<gt>/E<lt>répertoireE<gt>>"
# type: Plain text
-#: doc/apt-proxy.conf.5:99
-msgid "A list of backend URLs\\&."
-msgstr "Une liste d'URLs de dorsaux\\&."
+#: doc/apt-proxy.conf.5:103
+msgid ""
+"A list one or more URLs referring to servers which hold debian packages\\&."
+msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:101
-msgid "Protocol - internet protocol to use: http, ftp or rsync"
-msgstr "Protocole - protocole à utiliser: http, ftp ou rsync"
+#: doc/apt-proxy.conf.5:106
+#, fuzzy
+msgid "I<protocol>: internet protocol to use: http, ftp or rsync"
+msgstr "Protocole - protocole à utiliser : http, ftp ou rsync"
# type: Plain text
-#: doc/apt-proxy.conf.5:103
-msgid "Server - hostname of the backend server to contact"
-msgstr "Serveur - nom d'hote du miroir à contacter"
+#: doc/apt-proxy.conf.5:108
+#, fuzzy
+msgid "I<server>: hostname of the backend server to contact"
+msgstr "Serveur - nom d'hôte du miroir à contacter"
# type: Plain text
-#: doc/apt-proxy.conf.5:105
-msgid "Directory - directory name to prepend requests to for this server"
-msgstr ""
-"Répertoire - nom du répertoire où ajouter des demandes au début pour ce "
-"serveur"
+#: doc/apt-proxy.conf.5:110
+#, fuzzy
+msgid "I<directory>: directory name to prepend requests to for this server"
+msgstr "Répertoire - nom du répertoire où ajouter des demandes pour ce serveur"
# type: Plain text
-#: doc/apt-proxy.conf.5:109
+#: doc/apt-proxy.conf.5:114
msgid "Override the global setting of passive_ftp"
-msgstr "Surcharger la directive globale de passive_ftp"
+msgstr "Supplanter la configuration globale de passive_ftp"
+
+# type: SH
+#: doc/apt-proxy.conf.5:115
+#, fuzzy, no-wrap
+msgid "CONFIGURATION EXAMPLES"
+msgstr "CONFIGURATION DU CLIENT"
# type: Plain text
-#: doc/apt-proxy.conf.5:113
+#: doc/apt-proxy.conf.5:120
+msgid ""
+"To access a resource that's listed under a specific section name, simply "
+"append the section name (without the brackets) to the end of your deb source "
+"line in /etc/apt/sources.list"
+msgstr ""
+
+# type: TH
+#: doc/apt-proxy.conf.5:122
+#, fuzzy
+msgid "B<Debian main>"
+msgstr "Debian GNU/Linux"
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:125
msgid ""
"This example shows how to give clients access to the main Debian archive:"
msgstr ""
-"Cet exemple montre comment donner aux clients accès à l'archive debian "
-"principale:"
+"Cet exemple montre comment donner aux clients l'accès à l'archive Debian "
+"principale :"
# type: Plain text
-#: doc/apt-proxy.conf.5:117
+#: doc/apt-proxy.conf.5:129
#, no-wrap
msgid ""
"[debian]\n"
@@ -781,138 +933,157 @@
" http://ftp.de.debian.org/debian/\n"
msgstr ""
"[debian]\n"
-"backends·=·http://ftp.us.debian.org/debian/\n"
-" http://ftp.de.debian.org/debian/\n"
+"backends = http://ftp.us.debian.org/debian/\n"
+" http://ftp.fr.debian.org/debian/\n"
# type: Plain text
-#: doc/apt-proxy.conf.5:122
+#: doc/apt-proxy.conf.5:134
+#, fuzzy
msgid ""
-"Using this configuration, the client would use a B<sources.list> entry like:"
+"Using this configuration, the client would use a I<sources.list> entry like:"
msgstr ""
"En utilisant cette configuration, le client utilisera une entrée B<sources."
-"list> comme ceci:"
+"list> comme ceci :"
# type: Plain text
-#: doc/apt-proxy.conf.5:125
-#, no-wrap
-msgid " deb http://server:9999/debian/ woody main\n"
-msgstr " deb http://SERVER:9999/debian/ woody main\n"
+#: doc/apt-proxy.conf.5:137
+#, fuzzy, no-wrap
+msgid " deb http://server:9999/debian woody main\n"
+msgstr " deb http://SERVEUR:9999/debian/ woody main\n"
# type: Plain text
-#: doc/apt-proxy.conf.5:130
-#, fuzzy
+#: doc/apt-proxy.conf.5:142
msgid ""
"And so the file request `/debian/woody/main/binary-i386/x11/foo_1-1.deb' "
"would turn into a backend request of first"
msgstr ""
-"Et ainsi la demande du fichier `/debian/woody/main/binary-i386/x11/foo_1-1."
-"deb' sera convertie en une demande prioritaire"
+"Ainsi, la demande du fichier « /debian/woody/main/binary-i386/x11/foo_1-1."
+"deb » sera convertie en une demande d'abord de"
# type: Plain text
-#: doc/apt-proxy.conf.5:133
-#, fuzzy, no-wrap
+#: doc/apt-proxy.conf.5:145
+#, no-wrap
msgid " `http://ftp.us.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
-msgstr ""
-" `http://ftp.us.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
-" \n"
+msgstr " « http://ftp.us.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb »\n"
# type: Plain text
-#: doc/apt-proxy.conf.5:136
+#: doc/apt-proxy.conf.5:148
msgid "and if that failed,"
-msgstr "et s'il a échoué,"
+msgstr "et, en cas d'échec, de"
# type: Plain text
-#: doc/apt-proxy.conf.5:139
-#, fuzzy, no-wrap
+#: doc/apt-proxy.conf.5:151
+#, no-wrap
msgid " `http://ftp.de.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
+msgstr " « http://ftp.fr.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb »\n"
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:154
+msgid "and apt-proxy will place the downloaded package in"
msgstr ""
-" `http://ftp.de.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
-" \n"
# type: Plain text
-#: doc/apt-proxy.conf.5:142
+#: doc/apt-proxy.conf.5:156
#, no-wrap
-msgid "and the file would be placed in\n"
-msgstr "et le fichier devrait être placé dans\n"
+msgid " `/var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb'\\&.\n"
+msgstr " « /var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb ».\n"
+
+# type: TP
+#: doc/apt-proxy.conf.5:159
+#, fuzzy
+msgid "B<backports.org>"
+msgstr "B<port>"
# type: Plain text
-#: doc/apt-proxy.conf.5:144
+#: doc/apt-proxy.conf.5:161
+msgid "The backports.org website tells you to use this I<sources.list> line:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:164
#, no-wrap
-msgid " `/var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb'\\&.\n"
-msgstr "····`/var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb'\\&.\n"
+msgid " deb http://www.backports.org/debian sarge-backports main\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:168
+msgid ""
+"You can add this to apt-proxy by creating a new section in I<apt-proxy\\&."
+"conf>\\&. In the new section, add a backends entry for the URL:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:172
+#, no-wrap
+msgid ""
+" [backports]\n"
+" backends = http://www.backports.org/debian\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:177
+msgid ""
+"On the clients, replace the URL with one pointing to the apt-proxy resource "
+"name, in the form I<http://hostname:port/backend>. If your apt-proxy "
+"hostname is I<proxy> and it is running on port 9999, you would write:"
+msgstr ""
# type: Plain text
-#: doc/apt-proxy.conf.5:147
+#: doc/apt-proxy.conf.5:180
#, fuzzy, no-wrap
-msgid "For many more examples, see the supplied /etc/apt-proxy/apt-proxy\\&.conf\\&.\n"
-msgstr "Pour d'autres exemples, voir le fichier /etc/apt-proxy/apt-proxy\\&.conf\\& fourni."
+msgid " deb http://proxy:9999/backports sarge-backports main\n"
+msgstr " deb http://SERVEUR:9999/debian/ woody main\n"
# type: Plain text
-#: doc/apt-proxy.conf.5:158
+#: doc/apt-proxy.conf.5:185
+#, fuzzy
+msgid ""
+"For many more examples, see the supplied /etc/apt-proxy/apt-proxy\\&.conf\\&."
+msgstr ""
+"Pour d'autres exemples, voir le fichier /etc/apt-proxy/apt-proxy.conf.\n"
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:196
msgid ""
"B<apt-proxy(8),> B</usr/share/doc/apt-proxy/README,> B<apt-proxy-import(8)>"
msgstr ""
"B<apt-proxy>(8), B</usr/share/doc/apt-proxy/README,>B<apt-proxy-import>(8)"
# type: Plain text
-#: doc/apt-proxy.conf.5:163
+#: doc/apt-proxy.conf.5:201
msgid "Plenty sure. Please report."
-msgstr "Totalement sûr. Prière de rapporter."
+msgstr "Certainement. Veuillez nous en faire part."
# type: SH
-#: doc/apt-proxy.conf.5:164
+#: doc/apt-proxy.conf.5:202
#, no-wrap
msgid "AUTHOR"
msgstr "AUTEUR"
# type: Plain text
-#: doc/apt-proxy.conf.5:165
+#: doc/apt-proxy.conf.5:203
msgid ""
"apt-proxy v2 was written by Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>"
"\\&."
msgstr ""
-"apt\\-proxy·v2 a été écrit par Manuel Estrada Sainz E<lt>ranty at debian."
-"orgE<gt>\\&."
+"apt-proxy v2 a été écrit par Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>."
# type: TH
-#~ msgid "03 Dec 2004"
-#~ msgstr "03 Décembre 2004"
+#~ msgid "October 2005"
+#~ msgstr "Octobre 2005"
-# type: Plain text
-#, fuzzy
-#~ msgid ""
-#~ "deb http://SERVER:9999/debian-non-US stable/non-US main contrib non-free\n"
-#~ "deb-src http://SERVER:9999/debian-non-US stable/non-US main contrib non-free\n"
-#~ msgstr ""
-#~ "deb http://SERVER:9999/main stable main contrib non\\-free\n"
-#~ "deb\\-src http://SERVER:9999/main stable main contrib non\\-free\n"
-
-# type: Plain text
-#~ msgid "Maximum I/O timeout in seconds for backend transfers."
-#~ msgstr ""
-#~ "Temps de réponse maximal des E/S en secondes pour les transferts dorsaux."
-
-# type: Plain text
-#~ msgid "deb http://SERVER:9999/helixcode/ woody main\n"
-#~ msgstr "deb http://SERVER:9999/helixcode/ woody main\n"
-
-# type: Plain text
-#~ msgid ""
-#~ "NOTE: v2 doesn't officially support rsync backends, so for now the above "
-#~ "does not apply."
-#~ msgstr ""
-#~ "NOTE : la seconde version ne gère pas officiellement rsync, donc, ce "
-#~ "qui suit ne s'applique pas."
+# type: TH
+#~ msgid "21 Nov 2002"
+#~ msgstr "21 novembre 2002"
-# type: Plain text
-#~ msgid "\n"
-#~ msgstr "\n"
+# type: SH
+#~ msgid "BACKENDS"
+#~ msgstr "DORSAUX"
# type: Plain text
-#~ msgid "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
-#~ msgstr "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
+#~ msgid "A list of backend URLs\\&."
+#~ msgstr "Une liste de liens de dorsaux."
# type: Plain text
-#, fuzzy
-#~ msgid "B<apt\\-proxy>(8), B<apt\\-proxy.conf>(5)"
-#~ msgstr "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
+#~ msgid "and the file would be placed in\n"
+#~ msgstr "et le fichier devrait être placé dans\n"
Modified: people/halls/rework/doc/po4a.cfg
==============================================================================
--- people/halls/rework/doc/po4a.cfg (original)
+++ people/halls/rework/doc/po4a.cfg Thu Aug 3 17:05:49 2006
@@ -1,5 +1,5 @@
[po4a_paths] doc/po/apt-proxy.pot fr:doc/po/fr.po
[type: man] doc/apt-proxy.8 fr:doc/apt-proxy.fr.8 add_fr:doc/apt-proxy.add.fr
-[type: man] doc/apt-proxy.conf.5
-[type: man] doc/apt-proxy-import.8.inc
-[type: man] doc/apt-proxy-v1tov2.8
+[type: man] doc/apt-proxy.conf.5 fr:doc/apt-proxy.conf.fr.5 add_fr:doc/apt-proxy.add.fr
+[type: man] doc/apt-proxy-import.8 fr:doc/apt-proxy-import.fr.8 add_fr:doc/apt-proxy.add.fr
+[type: man] doc/apt-proxy-v1tov2.8 fr:doc/apt-proxy-v1tov2.fr.8 add_fr:doc/apt-proxy.add.fr
More information about the apt-proxy-devel
mailing list