Merge lp:~pitti/apt/compressed-indexes into lp:~ubuntu-core-dev/apt/ubuntu
- compressed-indexes
- Merge into ubuntu
Status: | Rejected |
---|---|
Rejected by: | Martin Pitt |
Proposed branch: | lp:~pitti/apt/compressed-indexes |
Merge into: | lp:~ubuntu-core-dev/apt/ubuntu |
Diff against target: |
90174 lines (+26606/-12459) (has conflicts) 118 files modified
apt-inst/contrib/arfile.h (+1/-0) apt-inst/makefile (+1/-1) apt-pkg/acquire-item.cc (+40/-5) apt-pkg/acquire-item.h (+13/-1) apt-pkg/aptconfiguration.cc (+235/-4) apt-pkg/aptconfiguration.h (+27/-0) apt-pkg/contrib/configuration.cc (+11/-11) apt-pkg/contrib/configuration.h (+19/-18) apt-pkg/contrib/fileutl.cc (+41/-6) apt-pkg/contrib/fileutl.h (+6/-3) apt-pkg/contrib/mmap.cc (+89/-46) apt-pkg/contrib/mmap.h (+7/-3) apt-pkg/contrib/strutl.cc (+18/-0) apt-pkg/contrib/strutl.h (+1/-0) apt-pkg/deb/debindexfile.cc (+34/-17) apt-pkg/deb/debindexfile.h (+3/-2) apt-pkg/deb/deblistparser.cc (+24/-5) apt-pkg/deb/deblistparser.h (+2/-1) apt-pkg/deb/debmetaindex.cc (+17/-3) apt-pkg/deb/debrecords.cc (+9/-3) apt-pkg/deb/debsrcrecords.cc (+3/-2) apt-pkg/deb/debsrcrecords.h (+3/-3) apt-pkg/deb/dpkgpm.cc (+1/-1) apt-pkg/depcache.cc (+5/-5) apt-pkg/indexfile.cc (+23/-24) apt-pkg/init.h (+1/-1) apt-pkg/makefile (+1/-1) apt-pkg/pkgcache.cc (+18/-9) apt-pkg/pkgcache.h (+2/-2) apt-pkg/policy.cc (+15/-1) apt-pkg/srcrecords.cc (+2/-2) apt-pkg/srcrecords.h (+4/-4) buildlib/apti18n.h.in (+3/-0) buildlib/library.mak (+7/-7) buildlib/libversion.mak (+3/-0) cmdline/apt-cache.cc (+14/-3) cmdline/apt-get.cc (+7/-5) cmdline/apt-key (+1/-0) cmdline/apt-mark (+11/-11) configure.in (+8/-0) debian/NEWS (+8/-1) debian/changelog (+165/-0) debian/control (+18/-0) debian/rules (+13/-12) doc/apt-cdrom.8.xml (+1/-1) doc/apt-ftparchive.1.xml (+21/-1) doc/apt.conf.5.xml (+32/-1) doc/apt_preferences.5.xml (+9/-1) doc/examples/configure-index (+9/-0) doc/po/apt-doc.pot (+411/-371) doc/po/de.po (+462/-373) doc/po/es.po (+3511/-2616) doc/po/fr.po (+390/-295) doc/po/it.po (+284/-257) doc/po/ja.po (+306/-257) doc/po/pl.po (+2580/-759) doc/po/pt_BR.po (+285/-258) ftparchive/apt-ftparchive.cc (+6/-4) ftparchive/cachedb.cc (+17/-13) ftparchive/cachedb.h (+11/-11) ftparchive/contents.cc (+1/-1) ftparchive/contents.h (+1/-1) ftparchive/multicompress.cc (+7/-7) ftparchive/multicompress.h (+6/-6) ftparchive/override.cc (+8/-8) ftparchive/override.h (+5/-5) ftparchive/writer.cc (+37/-38) ftparchive/writer.h (+20/-19) po/ar.po.OTHER (+2896/-0) po/ast.po (+200/-175) po/bg.po (+201/-176) po/bs.po (+193/-172) po/ca.po (+200/-175) po/cs.po (+200/-175) po/cy.po (+200/-173) po/da.po (+200/-174) po/de.po (+430/-410) po/dz.po (+201/-175) po/el.po (+200/-175) po/en_GB.po (+256/-231) po/es.po (+200/-175) po/eu.po (+200/-175) po/fi.po (+200/-175) po/fr.po (+6/-8) po/gl.po (+200/-175) po/hu.po (+200/-175) po/it.po (+16/-7) po/ja.po (+200/-175) po/km.po (+201/-175) po/ko.po (+200/-175) po/ku.po.OTHER (+2875/-0) po/lt.po (+200/-178) po/makefile (+1/-0) po/mr.po (+200/-175) po/nb.po (+200/-175) po/ne.po (+200/-175) po/nl.po (+329/-312) po/nn.po (+200/-173) po/pl.po (+200/-175) po/pt.po (+200/-175) po/pt_BR.po (+200/-175) po/ro.po (+200/-175) po/ru.po (+202/-188) po/sk.po (+11/-10) po/sl.po (+200/-173) po/sv.po (+200/-175) po/th.po (+200/-175) po/tl.po (+200/-174) po/uk.po.OTHER (+3161/-0) po/vi.po (+200/-175) po/zh_CN.po (+200/-174) po/zh_TW.po (+200/-175) test/libapt/assert.h (+21/-0) test/libapt/getlanguages_test.cc (+149/-0) test/libapt/makefile (+25/-0) test/libapt/parsedepends_test.cc (+128/-0) test/libapt/run-tests.sh (+7/-0) test/test-indexes.sh (+143/-0) Text conflict in apt-pkg/indexfile.cc Text conflict in buildlib/libversion.mak Text conflict in configure.in Text conflict in debian/changelog Text conflict in debian/control Text conflict in doc/po/fr.po Contents conflict in po/ar.po Contents conflict in po/ku.po Contents conflict in po/uk.po |
To merge this branch: | bzr merge lp:~pitti/apt/compressed-indexes |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Pitt | Needs Fixing | ||
Michael Vogt | Pending | ||
Review via email: mp+27342@code.launchpad.net |
Commit message
Description of the change
This branch introduces support for storing gzip-compressed package indexes locally. On my system, this reduces /var/lib/apt/lists/ from 70 MB to 19 MB without introducing noticeable additional latency (mostly because my hard disk is very slow, thus the additional CPU overhead of uncompressing the indexes for building the cache is more than offset by the saved I/O). But even on netbooks or thin clients with fast SSD and slow processor this is an interesting option if the install is very space constrained.
I did not enable this option by default. To use it, one needs to create a file like
$ cat /etc/apt/
Acquire:
Acquire:
The second is necessary since the patch deliberately avoids re-compressing downloaded indexes, it just keeps an already gzip compressed index if it gets one.
I also added some test cases for this in test/test-
Note that although this introduces a new protected member in FileFD, this does _not_ change the ABI of libapt, since FileFD is an internal class only and not exported in libapt-pkg-dev. I ran the abi checker and it gave me a clean bill.
Martin Pitt (pitti) wrote : | # |
Martin Pitt (pitti) wrote : | # |
Ah, seems that lp:apt is indeed quite different, sorry :-( So please ignore the autogenerated diff here, and perhaps just use the bazaar.lp.net links for review?
Martin Pitt (pitti) wrote : | # |
Ah, I just discovered some regressions wrt. apt-get source and apt-cache showsrc. I committed test cases for those (r1982), and will re-propose the merge against the correct branch (lp:~mvo/apt/debian-sid should be a good mirror of the Debian one?) once it's fixed.
Unmerged revisions
Preview Diff
1 | === modified file 'apt-inst/contrib/arfile.h' |
2 | --- apt-inst/contrib/arfile.h 2006-10-02 14:16:54 +0000 |
3 | +++ apt-inst/contrib/arfile.h 2010-06-11 16:24:33 +0000 |
4 | @@ -39,6 +39,7 @@ |
5 | |
6 | // Locate a member by name |
7 | const Member *FindMember(const char *Name) const; |
8 | + inline Member *Members() { return List; } |
9 | |
10 | ARArchive(FileFd &File); |
11 | ~ARArchive(); |
12 | |
13 | === modified file 'apt-inst/makefile' |
14 | --- apt-inst/makefile 2009-12-14 09:08:27 +0000 |
15 | +++ apt-inst/makefile 2010-06-11 16:24:33 +0000 |
16 | @@ -14,7 +14,7 @@ |
17 | |
18 | # The library name |
19 | LIBRARY=apt-inst |
20 | -MAJOR=1.1 |
21 | +MAJOR=1.2 |
22 | MINOR=0 |
23 | SLIBS=$(PTHREADLIB) -lapt-pkg |
24 | APT_DOMAIN:=libapt-inst$(MAJOR) |
25 | |
26 | === modified file 'apt-pkg/acquire-item.cc' |
27 | --- apt-pkg/acquire-item.cc 2010-02-17 21:40:05 +0000 |
28 | +++ apt-pkg/acquire-item.cc 2010-06-11 16:24:33 +0000 |
29 | @@ -360,7 +360,7 @@ |
30 | if(last_space != string::npos) |
31 | Description.erase(last_space, Description.size()-last_space); |
32 | new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, |
33 | - ExpectedHash, available_patches); |
34 | + ExpectedHash, ServerSha1, available_patches); |
35 | Complete = false; |
36 | Status = StatDone; |
37 | Dequeue(); |
38 | @@ -428,9 +428,10 @@ |
39 | pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire *Owner, |
40 | string URI,string URIDesc,string ShortDesc, |
41 | HashString ExpectedHash, |
42 | + string ServerSha1, |
43 | vector<DiffInfo> diffs) |
44 | : Item(Owner), RealURI(URI), ExpectedHash(ExpectedHash), |
45 | - available_patches(diffs) |
46 | + available_patches(diffs), ServerSha1(ServerSha1) |
47 | { |
48 | |
49 | DestFile = _config->FindDir("Dir::State::lists") + "partial/"; |
50 | @@ -516,6 +517,13 @@ |
51 | std::clog << "QueueNextDiff: " |
52 | << FinalFile << " (" << local_sha1 << ")"<<std::endl; |
53 | |
54 | + // final file reached before all patches are applied |
55 | + if(local_sha1 == ServerSha1) |
56 | + { |
57 | + Finish(true); |
58 | + return true; |
59 | + } |
60 | + |
61 | // remove all patches until the next matching patch is found |
62 | // this requires the Index file to be ordered |
63 | for(vector<DiffInfo>::iterator I=available_patches.begin(); |
64 | @@ -613,7 +621,7 @@ |
65 | // see if there is more to download |
66 | if(available_patches.size() > 0) { |
67 | new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, |
68 | - ExpectedHash, available_patches); |
69 | + ExpectedHash, ServerSha1, available_patches); |
70 | return Finish(); |
71 | } else |
72 | return Finish(true); |
73 | @@ -662,6 +670,8 @@ |
74 | { |
75 | string Final = _config->FindDir("Dir::State::lists"); |
76 | Final += URItoFileName(RealURI); |
77 | + if (_config->FindB("Acquire::GzipIndexes",false)) |
78 | + Final += ".gz"; |
79 | |
80 | struct stat Buf; |
81 | if (stat(Final.c_str(),&Buf) != 0) |
82 | @@ -791,6 +801,21 @@ |
83 | string compExt = flExtension(flNotDir(URI(Desc.URI).Path)); |
84 | string decompProg; |
85 | |
86 | + // If we enable compressed indexes and already have gzip, keep it |
87 | + if (_config->FindB("Acquire::GzipIndexes",false) && compExt == "gz") { |
88 | + string FinalFile = _config->FindDir("Dir::State::lists"); |
89 | + FinalFile += URItoFileName(RealURI) + ".gz"; |
90 | + //if(Debug) |
91 | + // std::clog << "pkgAcqIndex: keeping gzipped " << FinalFile << endl; |
92 | + Rename(DestFile,FinalFile); |
93 | + chmod(FinalFile.c_str(),0644); |
94 | + |
95 | + // Update DestFile for .gz suffix so that the clean operation keeps it |
96 | + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; |
97 | + DestFile += URItoFileName(RealURI) + ".gz"; |
98 | + return; |
99 | + } |
100 | + |
101 | // get the binary name for your used compression type |
102 | decompProg = _config->Find(string("Acquire::CompressionTypes::").append(compExt),""); |
103 | if(decompProg.empty() == false); |
104 | @@ -1591,8 +1616,9 @@ |
105 | /* The file is added to the queue */ |
106 | pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string Hash, |
107 | unsigned long Size,string Dsc,string ShortDesc, |
108 | - const string &DestDir, const string &DestFilename) : |
109 | - Item(Owner), ExpectedHash(Hash) |
110 | + const string &DestDir, const string &DestFilename, |
111 | + bool IsIndexFile) : |
112 | + Item(Owner), ExpectedHash(Hash), IsIndexFile(IsIndexFile) |
113 | { |
114 | Retries = _config->FindI("Acquire::Retries",0); |
115 | |
116 | @@ -1707,3 +1733,12 @@ |
117 | Item::Failed(Message,Cnf); |
118 | } |
119 | /*}}}*/ |
120 | +// AcqIndex::Custom600Headers - Insert custom request headers /*{{{*/ |
121 | +// --------------------------------------------------------------------- |
122 | +/* The only header we use is the last-modified header. */ |
123 | +string pkgAcqFile::Custom600Headers() |
124 | +{ |
125 | + if (IsIndexFile) |
126 | + return "\nIndex-File: true"; |
127 | +} |
128 | + /*}}}*/ |
129 | |
130 | === modified file 'apt-pkg/acquire-item.h' |
131 | --- apt-pkg/acquire-item.h 2009-09-23 15:26:43 +0000 |
132 | +++ apt-pkg/acquire-item.h 2010-06-11 16:24:33 +0000 |
133 | @@ -434,6 +434,10 @@ |
134 | * off the front? |
135 | */ |
136 | vector<DiffInfo> available_patches; |
137 | + |
138 | + /** Stop applying patches when reaching that sha1 */ |
139 | + string ServerSha1; |
140 | + |
141 | /** The current status of this patch. */ |
142 | enum DiffState |
143 | { |
144 | @@ -487,6 +491,7 @@ |
145 | */ |
146 | pkgAcqIndexDiffs(pkgAcquire *Owner,string URI,string URIDesc, |
147 | string ShortDesc, HashString ExpectedHash, |
148 | + string ServerSha1, |
149 | vector<DiffInfo> diffs=vector<DiffInfo>()); |
150 | }; |
151 | /*}}}*/ |
152 | @@ -868,6 +873,9 @@ |
153 | */ |
154 | unsigned int Retries; |
155 | |
156 | + /** \brief Should this file be considered a index file */ |
157 | + bool IsIndexFile; |
158 | + |
159 | public: |
160 | |
161 | // Specialized action members |
162 | @@ -876,6 +884,7 @@ |
163 | pkgAcquire::MethodConfig *Cnf); |
164 | virtual string DescURI() {return Desc.URI;}; |
165 | virtual string HashSum() {return ExpectedHash.toStr(); }; |
166 | + virtual string Custom600Headers(); |
167 | |
168 | /** \brief Create a new pkgAcqFile object. |
169 | * |
170 | @@ -899,6 +908,8 @@ |
171 | * |
172 | * \param DestFilename The filename+path the file is downloaded to. |
173 | * |
174 | + * \param IsIndexFile The file is considered a IndexFile and cache-control |
175 | + * headers like "cache-control: max-age=0" are send |
176 | * |
177 | * If DestFilename is empty, download to DestDir/<basename> if |
178 | * DestDir is non-empty, $CWD/<basename> otherwise. If |
179 | @@ -908,7 +919,8 @@ |
180 | |
181 | pkgAcqFile(pkgAcquire *Owner, string URI, string Hash, unsigned long Size, |
182 | string Desc, string ShortDesc, |
183 | - const string &DestDir="", const string &DestFilename=""); |
184 | + const string &DestDir="", const string &DestFilename="", |
185 | + bool IsIndexFile=false); |
186 | }; |
187 | /*}}}*/ |
188 | /** @} */ |
189 | |
190 | === modified file 'apt-pkg/aptconfiguration.cc' |
191 | --- apt-pkg/aptconfiguration.cc 2009-09-08 13:02:15 +0000 |
192 | +++ apt-pkg/aptconfiguration.cc 2010-06-11 16:24:33 +0000 |
193 | @@ -8,13 +8,18 @@ |
194 | ##################################################################### */ |
195 | /*}}}*/ |
196 | // Include Files /*{{{*/ |
197 | -#include <apt-pkg/fileutl.h> |
198 | #include <apt-pkg/aptconfiguration.h> |
199 | #include <apt-pkg/configuration.h> |
200 | - |
201 | +#include <apt-pkg/fileutl.h> |
202 | +#include <apt-pkg/macros.h> |
203 | +#include <apt-pkg/strutl.h> |
204 | + |
205 | +#include <sys/types.h> |
206 | +#include <dirent.h> |
207 | + |
208 | +#include <algorithm> |
209 | +#include <string> |
210 | #include <vector> |
211 | -#include <string> |
212 | -#include <algorithm> |
213 | /*}}}*/ |
214 | namespace APT { |
215 | // getCompressionTypes - Return Vector of usbale compressiontypes /*{{{*/ |
216 | @@ -87,4 +92,230 @@ |
217 | return types; |
218 | } |
219 | /*}}}*/ |
220 | +// GetLanguages - Return Vector of Language Codes /*{{{*/ |
221 | +// --------------------------------------------------------------------- |
222 | +/* return a vector of language codes in the prefered order. |
223 | + the special word "environment" will be replaced with the long and the short |
224 | + code of the local settings and it will be insured that this will not add |
225 | + duplicates. So in an german local the setting "environment, de_DE, en, de" |
226 | + will result in "de_DE, de, en". |
227 | + The special word "none" is the stopcode for the not-All code vector */ |
228 | +std::vector<std::string> const Configuration::getLanguages(bool const &All, |
229 | + bool const &Cached, char const ** const Locale) { |
230 | + using std::string; |
231 | + |
232 | + // The detection is boring and has a lot of cornercases, |
233 | + // so we cache the results to calculated it only once. |
234 | + std::vector<string> static allCodes; |
235 | + std::vector<string> static codes; |
236 | + |
237 | + // we have something in the cache |
238 | + if (codes.empty() == false || allCodes.empty() == false) { |
239 | + if (Cached == true) { |
240 | + if(All == true && allCodes.empty() == false) |
241 | + return allCodes; |
242 | + else |
243 | + return codes; |
244 | + } else { |
245 | + allCodes.clear(); |
246 | + codes.clear(); |
247 | + } |
248 | + } |
249 | + |
250 | + // Include all Language codes we have a Translation file for in /var/lib/apt/lists |
251 | + // so they will be all included in the Cache. |
252 | + std::vector<string> builtin; |
253 | + DIR *D = opendir(_config->FindDir("Dir::State::lists").c_str()); |
254 | + if (D != 0) { |
255 | + builtin.push_back("none"); |
256 | + for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) { |
257 | + string const name = Ent->d_name; |
258 | + size_t const foundDash = name.rfind("-"); |
259 | + size_t const foundUnderscore = name.rfind("_"); |
260 | + if (foundDash == string::npos || foundUnderscore == string::npos || |
261 | + foundDash <= foundUnderscore || |
262 | + name.substr(foundUnderscore+1, foundDash-(foundUnderscore+1)) != "Translation") |
263 | + continue; |
264 | + string const c = name.substr(foundDash+1); |
265 | + if (unlikely(c.empty() == true) || c == "en") |
266 | + continue; |
267 | + // Skip unusual files, like backups or that alike |
268 | + string::const_iterator s = c.begin(); |
269 | + for (;s != c.end(); ++s) { |
270 | + if (isalpha(*s) == 0) |
271 | + break; |
272 | + } |
273 | + if (s != c.end()) |
274 | + continue; |
275 | + if (std::find(builtin.begin(), builtin.end(), c) != builtin.end()) |
276 | + continue; |
277 | + builtin.push_back(c); |
278 | + } |
279 | + } |
280 | + |
281 | + // get the environment language codes: LC_MESSAGES (and later LANGUAGE) |
282 | + // we extract both, a long and a short code and then we will |
283 | + // check if we actually need both (rare) or if the short is enough |
284 | + string const envMsg = string(Locale == 0 ? std::setlocale(LC_MESSAGES, NULL) : *Locale); |
285 | + size_t const lenShort = (envMsg.find('_') != string::npos) ? envMsg.find('_') : 2; |
286 | + size_t const lenLong = (envMsg.find_first_of(".@") != string::npos) ? envMsg.find_first_of(".@") : (lenShort + 3); |
287 | + |
288 | + string envLong = envMsg.substr(0,lenLong); |
289 | + string const envShort = envLong.substr(0,lenShort); |
290 | + bool envLongIncluded = true; |
291 | + |
292 | + // first cornercase: LANG=C, so we use only "en" Translation |
293 | + if (envLong == "C") { |
294 | + codes.push_back("en"); |
295 | + allCodes = codes; |
296 | + allCodes.insert(allCodes.end(), builtin.begin(), builtin.end()); |
297 | + if (All == true) |
298 | + return allCodes; |
299 | + else |
300 | + return codes; |
301 | + } |
302 | + |
303 | + // to save the servers from unneeded queries, we only try also long codes |
304 | + // for languages it is realistic to have a long code translation file… |
305 | + // TODO: Improve translation acquire system to drop them dynamic |
306 | + char const *needLong[] = { "cs", "en", "pt", "sv", "zh", NULL }; |
307 | + if (envLong != envShort) { |
308 | + for (char const **l = needLong; *l != NULL; l++) |
309 | + if (envShort.compare(*l) == 0) { |
310 | + envLongIncluded = false; |
311 | + break; |
312 | + } |
313 | + } |
314 | + |
315 | + // we don't add the long code, but we allow the user to do so |
316 | + if (envLongIncluded == true) |
317 | + envLong.clear(); |
318 | + |
319 | + // FIXME: Remove support for the old APT::Acquire::Translation |
320 | + // it was undocumented and so it should be not very widthly used |
321 | + string const oldAcquire = _config->Find("APT::Acquire::Translation",""); |
322 | + if (oldAcquire.empty() == false && oldAcquire != "environment") { |
323 | + if (oldAcquire != "none") |
324 | + codes.push_back(oldAcquire); |
325 | + codes.push_back("en"); |
326 | + allCodes = codes; |
327 | + for (std::vector<string>::const_iterator b = builtin.begin(); |
328 | + b != builtin.end(); ++b) |
329 | + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) |
330 | + allCodes.push_back(*b); |
331 | + if (All == true) |
332 | + return allCodes; |
333 | + else |
334 | + return codes; |
335 | + } |
336 | + |
337 | + // It is very likely we will need to environment codes later, |
338 | + // so let us generate them now from LC_MESSAGES and LANGUAGE |
339 | + std::vector<string> environment; |
340 | + // take care of LC_MESSAGES |
341 | + if (envLongIncluded == false) |
342 | + environment.push_back(envLong); |
343 | + environment.push_back(envShort); |
344 | + // take care of LANGUAGE |
345 | + const char *language_env = getenv("LANGUAGE") == 0 ? "" : getenv("LANGUAGE"); |
346 | + string envLang = Locale == 0 ? language_env : *(Locale+1); |
347 | + if (envLang.empty() == false) { |
348 | + std::vector<string> env = ExplodeString(envLang,':'); |
349 | + short addedLangs = 0; // add a maximum of 3 fallbacks from the environment |
350 | + for (std::vector<string>::const_iterator e = env.begin(); |
351 | + e != env.end() && addedLangs < 3; ++e) { |
352 | + if (unlikely(e->empty() == true) || *e == "en") |
353 | + continue; |
354 | + if (*e == envLong || *e == envShort) |
355 | + continue; |
356 | + if (std::find(environment.begin(), environment.end(), *e) != environment.end()) |
357 | + continue; |
358 | + if (e->find('_') != string::npos) { |
359 | + // Drop LongCodes here - ShortCodes are also included |
360 | + string const shorty = e->substr(0, e->find('_')); |
361 | + char const **n = needLong; |
362 | + for (; *n != NULL; ++n) |
363 | + if (shorty == *n) |
364 | + break; |
365 | + if (*n == NULL) |
366 | + continue; |
367 | + } |
368 | + ++addedLangs; |
369 | + environment.push_back(*e); |
370 | + } |
371 | + } |
372 | + |
373 | + // Support settings like Acquire::Translation=none on the command line to |
374 | + // override the configuration settings vector of languages. |
375 | + string const forceLang = _config->Find("Acquire::Languages",""); |
376 | + if (forceLang.empty() == false) { |
377 | + if (forceLang == "environment") { |
378 | + codes = environment; |
379 | + } else if (forceLang != "none") |
380 | + codes.push_back(forceLang); |
381 | + allCodes = codes; |
382 | + for (std::vector<string>::const_iterator b = builtin.begin(); |
383 | + b != builtin.end(); ++b) |
384 | + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) |
385 | + allCodes.push_back(*b); |
386 | + if (All == true) |
387 | + return allCodes; |
388 | + else |
389 | + return codes; |
390 | + } |
391 | + |
392 | + std::vector<string> const lang = _config->FindVector("Acquire::Languages"); |
393 | + // the default setting -> "environment, en" |
394 | + if (lang.empty() == true) { |
395 | + codes = environment; |
396 | + if (envShort != "en") |
397 | + codes.push_back("en"); |
398 | + allCodes = codes; |
399 | + for (std::vector<string>::const_iterator b = builtin.begin(); |
400 | + b != builtin.end(); ++b) |
401 | + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) |
402 | + allCodes.push_back(*b); |
403 | + if (All == true) |
404 | + return allCodes; |
405 | + else |
406 | + return codes; |
407 | + } |
408 | + |
409 | + // the configs define the order, so add the environment |
410 | + // then needed and ensure the codes are not listed twice. |
411 | + bool noneSeen = false; |
412 | + for (std::vector<string>::const_iterator l = lang.begin(); |
413 | + l != lang.end(); l++) { |
414 | + if (*l == "environment") { |
415 | + for (std::vector<string>::const_iterator e = environment.begin(); |
416 | + e != environment.end(); ++e) { |
417 | + if (std::find(allCodes.begin(), allCodes.end(), *e) != allCodes.end()) |
418 | + continue; |
419 | + if (noneSeen == false) |
420 | + codes.push_back(*e); |
421 | + allCodes.push_back(*e); |
422 | + } |
423 | + continue; |
424 | + } else if (*l == "none") { |
425 | + noneSeen = true; |
426 | + continue; |
427 | + } else if (std::find(allCodes.begin(), allCodes.end(), *l) != allCodes.end()) |
428 | + continue; |
429 | + |
430 | + if (noneSeen == false) |
431 | + codes.push_back(*l); |
432 | + allCodes.push_back(*l); |
433 | + } |
434 | + |
435 | + for (std::vector<string>::const_iterator b = builtin.begin(); |
436 | + b != builtin.end(); ++b) |
437 | + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) |
438 | + allCodes.push_back(*b); |
439 | + |
440 | + if (All == true) |
441 | + return allCodes; |
442 | + else |
443 | + return codes; |
444 | +} |
445 | + /*}}}*/ |
446 | } |
447 | |
448 | === modified file 'apt-pkg/aptconfiguration.h' |
449 | --- apt-pkg/aptconfiguration.h 2009-08-25 13:32:40 +0000 |
450 | +++ apt-pkg/aptconfiguration.h 2010-06-11 16:24:33 +0000 |
451 | @@ -39,6 +39,33 @@ |
452 | * \return a vector of (all) Language Codes in the prefered usage order |
453 | */ |
454 | std::vector<std::string> static const getCompressionTypes(bool const &Cached = true); |
455 | + |
456 | + /** \brief Returns a vector of Language Codes |
457 | + * |
458 | + * Languages can be defined with their two or five chars long code. |
459 | + * This methods handles the various ways to set the prefered codes, |
460 | + * honors the environment and ensures that the codes are not listed twice. |
461 | + * |
462 | + * The special word "environment" will be replaced with the long and the short |
463 | + * code of the local settings and it will be insured that this will not add |
464 | + * duplicates. So in an german local the setting "environment, de_DE, en, de" |
465 | + * will result in "de_DE, de, en". |
466 | + * |
467 | + * Another special word is "none" which separates the prefered from all codes |
468 | + * in this setting. So setting and method can be used to get codes the user want |
469 | + * to see or to get all language codes APT (should) have Translations available. |
470 | + * |
471 | + * \param All return all codes or only codes for languages we want to use |
472 | + * \param Cached saves the result so we need to calculated it only once |
473 | + * this parameter should ony be used for testing purposes. |
474 | + * \param Locale don't get the locale from the system but use this one instead |
475 | + * this parameter should ony be used for testing purposes. |
476 | + * |
477 | + * \return a vector of (all) Language Codes in the prefered usage order |
478 | + */ |
479 | + std::vector<std::string> static const getLanguages(bool const &All = false, |
480 | + bool const &Cached = true, char const ** const Locale = 0); |
481 | + |
482 | /*}}}*/ |
483 | }; |
484 | /*}}}*/ |
485 | |
486 | === modified file 'apt-pkg/contrib/configuration.cc' |
487 | --- apt-pkg/contrib/configuration.cc 2010-02-17 21:40:05 +0000 |
488 | +++ apt-pkg/contrib/configuration.cc 2010-06-11 16:24:33 +0000 |
489 | @@ -79,7 +79,7 @@ |
490 | /* This will lookup a single item by name below another item. It is a |
491 | helper function for the main lookup function */ |
492 | Configuration::Item *Configuration::Lookup(Item *Head,const char *S, |
493 | - unsigned long Len,bool Create) |
494 | + unsigned long const &Len,bool const &Create) |
495 | { |
496 | int Res = 1; |
497 | Item *I = Head->Child; |
498 | @@ -112,7 +112,7 @@ |
499 | // --------------------------------------------------------------------- |
500 | /* This performs a fully scoped lookup of a given name, possibly creating |
501 | new items */ |
502 | -Configuration::Item *Configuration::Lookup(const char *Name,bool Create) |
503 | +Configuration::Item *Configuration::Lookup(const char *Name,bool const &Create) |
504 | { |
505 | if (Name == 0) |
506 | return Root->Child; |
507 | @@ -239,7 +239,7 @@ |
508 | // Configuration::FindI - Find an integer value /*{{{*/ |
509 | // --------------------------------------------------------------------- |
510 | /* */ |
511 | -int Configuration::FindI(const char *Name,int Default) const |
512 | +int Configuration::FindI(const char *Name,int const &Default) const |
513 | { |
514 | const Item *Itm = Lookup(Name); |
515 | if (Itm == 0 || Itm->Value.empty() == true) |
516 | @@ -256,7 +256,7 @@ |
517 | // Configuration::FindB - Find a boolean type /*{{{*/ |
518 | // --------------------------------------------------------------------- |
519 | /* */ |
520 | -bool Configuration::FindB(const char *Name,bool Default) const |
521 | +bool Configuration::FindB(const char *Name,bool const &Default) const |
522 | { |
523 | const Item *Itm = Lookup(Name); |
524 | if (Itm == 0 || Itm->Value.empty() == true) |
525 | @@ -332,7 +332,7 @@ |
526 | // Configuration::Set - Set an integer value /*{{{*/ |
527 | // --------------------------------------------------------------------- |
528 | /* */ |
529 | -void Configuration::Set(const char *Name,int Value) |
530 | +void Configuration::Set(const char *Name,int const &Value) |
531 | { |
532 | Item *Itm = Lookup(Name,true); |
533 | if (Itm == 0) |
534 | @@ -345,7 +345,7 @@ |
535 | // Configuration::Clear - Clear an single value from a list /*{{{*/ |
536 | // --------------------------------------------------------------------- |
537 | /* */ |
538 | -void Configuration::Clear(const string Name, int Value) |
539 | +void Configuration::Clear(string const &Name, int const &Value) |
540 | { |
541 | char S[300]; |
542 | snprintf(S,sizeof(S),"%i",Value); |
543 | @@ -355,7 +355,7 @@ |
544 | // Configuration::Clear - Clear an single value from a list /*{{{*/ |
545 | // --------------------------------------------------------------------- |
546 | /* */ |
547 | -void Configuration::Clear(const string Name, string Value) |
548 | +void Configuration::Clear(string const &Name, string const &Value) |
549 | { |
550 | Item *Top = Lookup(Name.c_str(),false); |
551 | if (Top == 0 || Top->Child == 0) |
552 | @@ -386,7 +386,7 @@ |
553 | // Configuration::Clear - Clear an entire tree /*{{{*/ |
554 | // --------------------------------------------------------------------- |
555 | /* */ |
556 | -void Configuration::Clear(string Name) |
557 | +void Configuration::Clear(string const &Name) |
558 | { |
559 | Item *Top = Lookup(Name.c_str(),false); |
560 | if (Top == 0) |
561 | @@ -501,8 +501,8 @@ |
562 | sections like 'zone "foo.org" { .. };' This causes each section to be |
563 | added in with a tag like "zone::foo.org" instead of being split |
564 | tag/value. AsSectional enables Sectional parsing.*/ |
565 | -bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional, |
566 | - unsigned Depth) |
567 | +bool ReadConfigFile(Configuration &Conf,const string &FName,bool const &AsSectional, |
568 | + unsigned const &Depth) |
569 | { |
570 | // Open the stream for reading |
571 | ifstream F(FName.c_str(),ios::in); |
572 | @@ -830,7 +830,7 @@ |
573 | // --------------------------------------------------------------------- |
574 | /* */ |
575 | bool ReadConfigDir(Configuration &Conf,const string &Dir, |
576 | - bool AsSectional, unsigned Depth) |
577 | + bool const &AsSectional, unsigned const &Depth) |
578 | { |
579 | vector<string> const List = GetListOfFilesInDir(Dir, "conf", true, true); |
580 | |
581 | |
582 | === modified file 'apt-pkg/contrib/configuration.h' |
583 | --- apt-pkg/contrib/configuration.h 2009-09-23 15:26:43 +0000 |
584 | +++ apt-pkg/contrib/configuration.h 2010-06-11 16:24:33 +0000 |
585 | @@ -58,8 +58,8 @@ |
586 | Item *Root; |
587 | bool ToFree; |
588 | |
589 | - Item *Lookup(Item *Head,const char *S,unsigned long Len,bool Create); |
590 | - Item *Lookup(const char *Name,bool Create); |
591 | + Item *Lookup(Item *Head,const char *S,unsigned long const &Len,bool const &Create); |
592 | + Item *Lookup(const char *Name,const bool &Create); |
593 | inline const Item *Lookup(const char *Name) const |
594 | { |
595 | return ((Configuration *)this)->Lookup(Name,false); |
596 | @@ -68,32 +68,33 @@ |
597 | public: |
598 | |
599 | string Find(const char *Name,const char *Default = 0) const; |
600 | - string Find(const string Name,const char *Default = 0) const {return Find(Name.c_str(),Default);}; |
601 | + string Find(string const &Name,const char *Default = 0) const {return Find(Name.c_str(),Default);}; |
602 | + string Find(string const &Name, string const &Default) const {return Find(Name.c_str(),Default.c_str());}; |
603 | string FindFile(const char *Name,const char *Default = 0) const; |
604 | string FindDir(const char *Name,const char *Default = 0) const; |
605 | - std::vector<string> FindVector(const string &Name) const; |
606 | + std::vector<string> FindVector(string const &Name) const; |
607 | std::vector<string> FindVector(const char *Name) const; |
608 | - int FindI(const char *Name,int Default = 0) const; |
609 | - int FindI(const string Name,int Default = 0) const {return FindI(Name.c_str(),Default);}; |
610 | - bool FindB(const char *Name,bool Default = false) const; |
611 | - bool FindB(const string Name,bool Default = false) const {return FindB(Name.c_str(),Default);}; |
612 | + int FindI(const char *Name,int const &Default = 0) const; |
613 | + int FindI(string const &Name,int const &Default = 0) const {return FindI(Name.c_str(),Default);}; |
614 | + bool FindB(const char *Name,bool const &Default = false) const; |
615 | + bool FindB(string const &Name,bool const &Default = false) const {return FindB(Name.c_str(),Default);}; |
616 | string FindAny(const char *Name,const char *Default = 0) const; |
617 | |
618 | - inline void Set(const string Name,string Value) {Set(Name.c_str(),Value);}; |
619 | + inline void Set(const string &Name,const string &Value) {Set(Name.c_str(),Value);}; |
620 | void CndSet(const char *Name,const string &Value); |
621 | void Set(const char *Name,const string &Value); |
622 | - void Set(const char *Name,int Value); |
623 | + void Set(const char *Name,const int &Value); |
624 | |
625 | - inline bool Exists(const string Name) const {return Exists(Name.c_str());}; |
626 | + inline bool Exists(const string &Name) const {return Exists(Name.c_str());}; |
627 | bool Exists(const char *Name) const; |
628 | bool ExistsAny(const char *Name) const; |
629 | |
630 | // clear a whole tree |
631 | - void Clear(const string Name); |
632 | + void Clear(const string &Name); |
633 | |
634 | // remove a certain value from a list (e.g. the list of "APT::Keep-Fds") |
635 | - void Clear(const string List, string Value); |
636 | - void Clear(const string List, int Value); |
637 | + void Clear(string const &List, string const &Value); |
638 | + void Clear(string const &List, int const &Value); |
639 | |
640 | inline const Item *Tree(const char *Name) const {return Lookup(Name);}; |
641 | |
642 | @@ -108,11 +109,11 @@ |
643 | extern Configuration *_config; |
644 | |
645 | bool ReadConfigFile(Configuration &Conf,const string &FName, |
646 | - bool AsSectional = false, |
647 | - unsigned Depth = 0); |
648 | + bool const &AsSectional = false, |
649 | + unsigned const &Depth = 0); |
650 | |
651 | bool ReadConfigDir(Configuration &Conf,const string &Dir, |
652 | - bool AsSectional = false, |
653 | - unsigned Depth = 0); |
654 | + bool const &AsSectional = false, |
655 | + unsigned const &Depth = 0); |
656 | |
657 | #endif |
658 | |
659 | === modified file 'apt-pkg/contrib/fileutl.cc' |
660 | --- apt-pkg/contrib/fileutl.cc 2010-02-17 21:40:05 +0000 |
661 | +++ apt-pkg/contrib/fileutl.cc 2010-06-11 16:24:33 +0000 |
662 | @@ -11,6 +11,7 @@ |
663 | Most of this source is placed in the Public Domain, do with it what |
664 | you will |
665 | It was originally written by Jason Gunthorpe <jgg@debian.org>. |
666 | + FileFd gzip support added by Martin Pitt <martin.pitt@canonical.com> |
667 | |
668 | The exception is RunScripts() it is under the GPLv2 |
669 | |
670 | @@ -603,6 +604,13 @@ |
671 | { |
672 | case ReadOnly: |
673 | iFd = open(FileName.c_str(),O_RDONLY); |
674 | + if (iFd > 0 && FileName.compare(FileName.size()-3, 3, ".gz") == 0) { |
675 | + gz = gzdopen (iFd, "r"); |
676 | + if (gz == NULL) { |
677 | + close (iFd); |
678 | + iFd = -1; |
679 | + } |
680 | + } |
681 | break; |
682 | |
683 | case WriteEmpty: |
684 | @@ -658,7 +666,10 @@ |
685 | |
686 | do |
687 | { |
688 | - Res = read(iFd,To,Size); |
689 | + if (gz != NULL) |
690 | + Res = gzread(gz,To,Size); |
691 | + else |
692 | + Res = read(iFd,To,Size); |
693 | if (Res < 0 && errno == EINTR) |
694 | continue; |
695 | if (Res < 0) |
696 | @@ -697,7 +708,10 @@ |
697 | errno = 0; |
698 | do |
699 | { |
700 | - Res = write(iFd,From,Size); |
701 | + if (gz != NULL) |
702 | + Res = gzwrite(gz,From,Size); |
703 | + else |
704 | + Res = write(iFd,From,Size); |
705 | if (Res < 0 && errno == EINTR) |
706 | continue; |
707 | if (Res < 0) |
708 | @@ -723,7 +737,12 @@ |
709 | /* */ |
710 | bool FileFd::Seek(unsigned long To) |
711 | { |
712 | - if (lseek(iFd,To,SEEK_SET) != (signed)To) |
713 | + int res; |
714 | + if (gz) |
715 | + res = gzseek(gz,To,SEEK_SET); |
716 | + else |
717 | + res = lseek(iFd,To,SEEK_SET); |
718 | + if (res != (signed)To) |
719 | { |
720 | Flags |= Fail; |
721 | return _error->Error("Unable to seek to %lu",To); |
722 | @@ -737,7 +756,12 @@ |
723 | /* */ |
724 | bool FileFd::Skip(unsigned long Over) |
725 | { |
726 | - if (lseek(iFd,Over,SEEK_CUR) < 0) |
727 | + int res; |
728 | + if (gz) |
729 | + res = gzseek(gz,Over,SEEK_CUR); |
730 | + else |
731 | + res = lseek(iFd,Over,SEEK_CUR); |
732 | + if (res < 0) |
733 | { |
734 | Flags |= Fail; |
735 | return _error->Error("Unable to seek ahead %lu",Over); |
736 | @@ -751,6 +775,11 @@ |
737 | /* */ |
738 | bool FileFd::Truncate(unsigned long To) |
739 | { |
740 | + if (gz) |
741 | + { |
742 | + Flags |= Fail; |
743 | + return _error->Error("Truncating gzipped files is not implemented (%s)", FileName.c_str()); |
744 | + } |
745 | if (ftruncate(iFd,To) != 0) |
746 | { |
747 | Flags |= Fail; |
748 | @@ -765,7 +794,11 @@ |
749 | /* */ |
750 | unsigned long FileFd::Tell() |
751 | { |
752 | - off_t Res = lseek(iFd,0,SEEK_CUR); |
753 | + off_t Res; |
754 | + if (gz) |
755 | + Res = gztell(gz); |
756 | + else |
757 | + Res = lseek(iFd,0,SEEK_CUR); |
758 | if (Res == (off_t)-1) |
759 | _error->Errno("lseek","Failed to determine the current file position"); |
760 | return Res; |
761 | @@ -776,6 +809,7 @@ |
762 | /* */ |
763 | unsigned long FileFd::Size() |
764 | { |
765 | + //TODO: For gz, do we need the actual file size here or the uncompressed length? |
766 | struct stat Buf; |
767 | if (fstat(iFd,&Buf) != 0) |
768 | return _error->Errno("fstat","Unable to determine the file size"); |
769 | @@ -789,9 +823,10 @@ |
770 | { |
771 | bool Res = true; |
772 | if ((Flags & AutoClose) == AutoClose) |
773 | - if (iFd >= 0 && close(iFd) != 0) |
774 | + if ((gz != NULL && gzclose(gz) != 0) || (gz == NULL && iFd > 0 && close(iFd) != 0)) |
775 | Res &= _error->Errno("close",_("Problem closing the file")); |
776 | iFd = -1; |
777 | + gz = NULL; |
778 | |
779 | if ((Flags & Fail) == Fail && (Flags & DelOnFail) == DelOnFail && |
780 | FileName.empty() == false) |
781 | |
782 | === modified file 'apt-pkg/contrib/fileutl.h' |
783 | --- apt-pkg/contrib/fileutl.h 2010-02-17 21:40:05 +0000 |
784 | +++ apt-pkg/contrib/fileutl.h 2010-06-11 16:24:33 +0000 |
785 | @@ -25,6 +25,8 @@ |
786 | #include <string> |
787 | #include <vector> |
788 | |
789 | +#include <zlib.h> |
790 | + |
791 | using std::string; |
792 | |
793 | class FileFd |
794 | @@ -36,6 +38,7 @@ |
795 | HitEof = (1<<3)}; |
796 | unsigned long Flags; |
797 | string FileName; |
798 | + gzFile gz; |
799 | |
800 | public: |
801 | enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny,WriteTemp}; |
802 | @@ -69,12 +72,12 @@ |
803 | inline string &Name() {return FileName;}; |
804 | |
805 | FileFd(string FileName,OpenMode Mode,unsigned long Perms = 0666) : iFd(-1), |
806 | - Flags(0) |
807 | + Flags(0), gz(NULL) |
808 | { |
809 | Open(FileName,Mode,Perms); |
810 | }; |
811 | - FileFd(int Fd = -1) : iFd(Fd), Flags(AutoClose) {}; |
812 | - FileFd(int Fd,bool) : iFd(Fd), Flags(0) {}; |
813 | + FileFd(int Fd = -1) : iFd(Fd), Flags(AutoClose), gz(NULL) {}; |
814 | + FileFd(int Fd,bool) : iFd(Fd), Flags(0), gz(NULL) {}; |
815 | virtual ~FileFd(); |
816 | }; |
817 | |
818 | |
819 | === modified file 'apt-pkg/contrib/mmap.cc' |
820 | --- apt-pkg/contrib/mmap.cc 2009-08-24 11:30:05 +0000 |
821 | +++ apt-pkg/contrib/mmap.cc 2010-06-11 16:24:33 +0000 |
822 | @@ -140,8 +140,10 @@ |
823 | // DynamicMMap::DynamicMMap - Constructor /*{{{*/ |
824 | // --------------------------------------------------------------------- |
825 | /* */ |
826 | -DynamicMMap::DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace) : |
827 | - MMap(F,Flags | NoImmMap), Fd(&F), WorkSpace(WorkSpace) |
828 | +DynamicMMap::DynamicMMap(FileFd &F,unsigned long Flags,unsigned long const &Workspace, |
829 | + unsigned long const &Grow, unsigned long const &Limit) : |
830 | + MMap(F,Flags | NoImmMap), Fd(&F), WorkSpace(Workspace), |
831 | + GrowFactor(Grow), Limit(Limit) |
832 | { |
833 | if (_error->PendingError() == true) |
834 | return; |
835 | @@ -165,32 +167,48 @@ |
836 | /* We try here to use mmap to reserve some space - this is much more |
837 | cooler than the fallback solution to simply allocate a char array |
838 | and could come in handy later than we are able to grow such an mmap */ |
839 | -DynamicMMap::DynamicMMap(unsigned long Flags,unsigned long WorkSpace) : |
840 | - MMap(Flags | NoImmMap | UnMapped), Fd(0), WorkSpace(WorkSpace) |
841 | +DynamicMMap::DynamicMMap(unsigned long Flags,unsigned long const &WorkSpace, |
842 | + unsigned long const &Grow, unsigned long const &Limit) : |
843 | + MMap(Flags | NoImmMap | UnMapped), Fd(0), WorkSpace(WorkSpace), |
844 | + GrowFactor(Grow), Limit(Limit) |
845 | { |
846 | - if (_error->PendingError() == true) |
847 | - return; |
848 | + if (_error->PendingError() == true) |
849 | + return; |
850 | + |
851 | + // disable Moveable if we don't grow |
852 | + if (Grow == 0) |
853 | + Flags &= ~Moveable; |
854 | + |
855 | +#ifndef __linux__ |
856 | + // kfreebsd doesn't have mremap, so we use the fallback |
857 | + if ((Flags & Moveable) == Moveable) |
858 | + Flags |= Fallback; |
859 | +#endif |
860 | |
861 | #ifdef _POSIX_MAPPED_FILES |
862 | - // Set the permissions. |
863 | - int Prot = PROT_READ; |
864 | - int Map = MAP_PRIVATE | MAP_ANONYMOUS; |
865 | - if ((Flags & ReadOnly) != ReadOnly) |
866 | - Prot |= PROT_WRITE; |
867 | - if ((Flags & Public) == Public) |
868 | - Map = MAP_SHARED | MAP_ANONYMOUS; |
869 | - |
870 | - // use anonymous mmap() to get the memory |
871 | - Base = (unsigned char*) mmap(0, WorkSpace, Prot, Map, -1, 0); |
872 | - |
873 | - if(Base == MAP_FAILED) |
874 | - _error->Errno("DynamicMMap",_("Couldn't make mmap of %lu bytes"),WorkSpace); |
875 | -#else |
876 | - // fallback to a static allocated space |
877 | - Base = new unsigned char[WorkSpace]; |
878 | - memset(Base,0,WorkSpace); |
879 | + if ((Flags & Fallback) != Fallback) { |
880 | + // Set the permissions. |
881 | + int Prot = PROT_READ; |
882 | + int Map = MAP_PRIVATE | MAP_ANONYMOUS; |
883 | + if ((Flags & ReadOnly) != ReadOnly) |
884 | + Prot |= PROT_WRITE; |
885 | + if ((Flags & Public) == Public) |
886 | + Map = MAP_SHARED | MAP_ANONYMOUS; |
887 | + |
888 | + // use anonymous mmap() to get the memory |
889 | + Base = (unsigned char*) mmap(0, WorkSpace, Prot, Map, -1, 0); |
890 | + |
891 | + if(Base == MAP_FAILED) |
892 | + _error->Errno("DynamicMMap",_("Couldn't make mmap of %lu bytes"),WorkSpace); |
893 | + |
894 | + iSize = 0; |
895 | + return; |
896 | + } |
897 | #endif |
898 | - iSize = 0; |
899 | + // fallback to a static allocated space |
900 | + Base = new unsigned char[WorkSpace]; |
901 | + memset(Base,0,WorkSpace); |
902 | + iSize = 0; |
903 | } |
904 | /*}}}*/ |
905 | // DynamicMMap::~DynamicMMap - Destructor /*{{{*/ |
906 | @@ -311,30 +329,55 @@ |
907 | /*}}}*/ |
908 | // DynamicMMap::Grow - Grow the mmap /*{{{*/ |
909 | // --------------------------------------------------------------------- |
910 | -/* This method will try to grow the mmap we currently use. This doesn't |
911 | - work most of the time because we can't move the mmap around in the |
912 | - memory for now as this would require to adjust quite a lot of pointers |
913 | - but why we should not at least try to grow it before we give up? */ |
914 | -bool DynamicMMap::Grow() |
915 | -{ |
916 | +/* This method is a wrapper around different methods to (try to) grow |
917 | + a mmap (or our char[]-fallback). Encounterable environments: |
918 | + 1. Moveable + !Fallback + linux -> mremap with MREMAP_MAYMOVE |
919 | + 2. Moveable + !Fallback + !linux -> not possible (forbidden by constructor) |
920 | + 3. Moveable + Fallback -> realloc |
921 | + 4. !Moveable + !Fallback + linux -> mremap alone - which will fail in 99,9% |
922 | + 5. !Moveable + !Fallback + !linux -> not possible (forbidden by constructor) |
923 | + 6. !Moveable + Fallback -> not possible |
924 | + [ While Moveable and Fallback stands for the equally named flags and |
925 | + "linux" indicates a linux kernel instead of a freebsd kernel. ] |
926 | + So what you can see here is, that a MMAP which want to be growable need |
927 | + to be moveable to have a real chance but that this method will at least try |
928 | + the nearly impossible 4 to grow it before it finally give up: Never say never. */ |
929 | +bool DynamicMMap::Grow() { |
930 | + if (Limit != 0 && WorkSpace >= Limit) |
931 | + return _error->Error(_("The size of a MMap has already reached the defined limit of %lu bytes," |
932 | + "abort the try to grow the MMap."), Limit); |
933 | + |
934 | + unsigned long const newSize = WorkSpace + 1024*1024; |
935 | + |
936 | + if(Fd != 0) { |
937 | + Fd->Seek(newSize - 1); |
938 | + char C = 0; |
939 | + Fd->Write(&C,sizeof(C)); |
940 | + } |
941 | + if ((Flags & Fallback) != Fallback) { |
942 | #if defined(_POSIX_MAPPED_FILES) && defined(__linux__) |
943 | - unsigned long newSize = WorkSpace + 1024*1024; |
944 | - |
945 | - if(Fd != 0) |
946 | - { |
947 | - Fd->Seek(newSize - 1); |
948 | - char C = 0; |
949 | - Fd->Write(&C,sizeof(C)); |
950 | - } |
951 | - |
952 | - Base = mremap(Base, WorkSpace, newSize, 0); |
953 | - if(Base == MAP_FAILED) |
954 | - return false; |
955 | - |
956 | - WorkSpace = newSize; |
957 | - return true; |
958 | + #ifdef MREMAP_MAYMOVE |
959 | + if ((Flags & Moveable) == Moveable) |
960 | + Base = mremap(Base, WorkSpace, newSize, MREMAP_MAYMOVE); |
961 | + else |
962 | + #endif |
963 | + Base = mremap(Base, WorkSpace, newSize, 0); |
964 | + |
965 | + if(Base == MAP_FAILED) |
966 | + return false; |
967 | #else |
968 | - return false; |
969 | + return false; |
970 | #endif |
971 | + } else { |
972 | + if ((Flags & Moveable) != Moveable) |
973 | + return false; |
974 | + |
975 | + Base = realloc(Base, newSize); |
976 | + if (Base == NULL) |
977 | + return false; |
978 | + } |
979 | + |
980 | + WorkSpace = newSize; |
981 | + return true; |
982 | } |
983 | /*}}}*/ |
984 | |
985 | === modified file 'apt-pkg/contrib/mmap.h' |
986 | --- apt-pkg/contrib/mmap.h 2009-07-30 15:34:48 +0000 |
987 | +++ apt-pkg/contrib/mmap.h 2010-06-11 16:24:33 +0000 |
988 | @@ -50,7 +50,7 @@ |
989 | public: |
990 | |
991 | enum OpenFlags {NoImmMap = (1<<0),Public = (1<<1),ReadOnly = (1<<2), |
992 | - UnMapped = (1<<3)}; |
993 | + UnMapped = (1<<3), Moveable = (1<<4), Fallback = (1 << 5)}; |
994 | |
995 | // Simple accessors |
996 | inline operator void *() {return Base;}; |
997 | @@ -82,6 +82,8 @@ |
998 | |
999 | FileFd *Fd; |
1000 | unsigned long WorkSpace; |
1001 | + unsigned long const GrowFactor; |
1002 | + unsigned long const Limit; |
1003 | Pool *Pools; |
1004 | unsigned int PoolCount; |
1005 | |
1006 | @@ -96,8 +98,10 @@ |
1007 | inline unsigned long WriteString(const string &S) {return WriteString(S.c_str(),S.length());}; |
1008 | void UsePools(Pool &P,unsigned int Count) {Pools = &P; PoolCount = Count;}; |
1009 | |
1010 | - DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace = 2*1024*1024); |
1011 | - DynamicMMap(unsigned long Flags,unsigned long WorkSpace = 2*1024*1024); |
1012 | + DynamicMMap(FileFd &F,unsigned long Flags,unsigned long const &WorkSpace = 2*1024*1024, |
1013 | + unsigned long const &Grow = 1024*1024, unsigned long const &Limit = 0); |
1014 | + DynamicMMap(unsigned long Flags,unsigned long const &WorkSpace = 2*1024*1024, |
1015 | + unsigned long const &Grow = 1024*1024, unsigned long const &Limit = 0); |
1016 | virtual ~DynamicMMap(); |
1017 | }; |
1018 | |
1019 | |
1020 | === modified file 'apt-pkg/contrib/strutl.cc' |
1021 | --- apt-pkg/contrib/strutl.cc 2010-03-31 20:03:34 +0000 |
1022 | +++ apt-pkg/contrib/strutl.cc 2010-06-11 16:24:33 +0000 |
1023 | @@ -1008,6 +1008,24 @@ |
1024 | return true; |
1025 | } |
1026 | /*}}}*/ |
1027 | +// ExplodeString - Split a string up into a vector /*{{{*/ |
1028 | +// --------------------------------------------------------------------- |
1029 | +/* This can be used to split a given string up into a vector, so the |
1030 | + propose is the same as in the method above and this one is a bit slower |
1031 | + also, but the advantage is that we an iteratable vector */ |
1032 | +vector<string> ExplodeString(string const &haystack, char const &split) |
1033 | +{ |
1034 | + string::const_iterator start = haystack.begin(); |
1035 | + string::const_iterator end = start; |
1036 | + vector<string> exploded; |
1037 | + do { |
1038 | + for (; end != haystack.end() && *end != split; ++end); |
1039 | + exploded.push_back(string(start, end)); |
1040 | + start = end + 1; |
1041 | + } while (end != haystack.end() && (++end) != haystack.end()); |
1042 | + return exploded; |
1043 | +} |
1044 | + /*}}}*/ |
1045 | // RegexChoice - Simple regex list/list matcher /*{{{*/ |
1046 | // --------------------------------------------------------------------- |
1047 | /* */ |
1048 | |
1049 | === modified file 'apt-pkg/contrib/strutl.h' |
1050 | --- apt-pkg/contrib/strutl.h 2010-03-31 20:03:34 +0000 |
1051 | +++ apt-pkg/contrib/strutl.h 2010-06-11 16:24:33 +0000 |
1052 | @@ -60,6 +60,7 @@ |
1053 | bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length); |
1054 | bool TokSplitString(char Tok,char *Input,char **List, |
1055 | unsigned long ListMax); |
1056 | +vector<string> ExplodeString(string const &haystack, char const &split); |
1057 | void ioprintf(ostream &out,const char *format,...) APT_FORMAT2; |
1058 | void strprintf(string &out,const char *format,...) APT_FORMAT2; |
1059 | char *safe_snprintf(char *Buffer,char *End,const char *Format,...) APT_FORMAT3; |
1060 | |
1061 | === modified file 'apt-pkg/deb/debindexfile.cc' |
1062 | --- apt-pkg/deb/debindexfile.cc 2010-03-08 16:46:43 +0000 |
1063 | +++ apt-pkg/deb/debindexfile.cc 2010-06-11 16:24:33 +0000 |
1064 | @@ -106,8 +106,14 @@ |
1065 | /* */ |
1066 | inline string debSourcesIndex::IndexFile(const char *Type) const |
1067 | { |
1068 | - return URItoFileName(IndexURI(Type)); |
1069 | + string s = URItoFileName(IndexURI(Type)); |
1070 | + string sgzip = s + ".gz"; |
1071 | + if (!FileExists(s) && FileExists(sgzip)) |
1072 | + return sgzip; |
1073 | + else |
1074 | + return s; |
1075 | } |
1076 | + |
1077 | string debSourcesIndex::IndexURI(const char *Type) const |
1078 | { |
1079 | string Res; |
1080 | @@ -213,7 +219,12 @@ |
1081 | /* */ |
1082 | inline string debPackagesIndex::IndexFile(const char *Type) const |
1083 | { |
1084 | - return _config->FindDir("Dir::State::lists") + URItoFileName(IndexURI(Type)); |
1085 | + string s =_config->FindDir("Dir::State::lists") + URItoFileName(IndexURI(Type)); |
1086 | + string sgzip = s + ".gz"; |
1087 | + if (!FileExists(s) && FileExists(sgzip)) |
1088 | + return sgzip; |
1089 | + else |
1090 | + return s; |
1091 | } |
1092 | string debPackagesIndex::IndexURI(const char *Type) const |
1093 | { |
1094 | @@ -329,17 +340,23 @@ |
1095 | // TranslationsIndex::debTranslationsIndex - Contructor /*{{{*/ |
1096 | // --------------------------------------------------------------------- |
1097 | /* */ |
1098 | -debTranslationsIndex::debTranslationsIndex(string URI,string Dist,string Section) : |
1099 | - pkgIndexFile(true), URI(URI), Dist(Dist), Section(Section) |
1100 | -{ |
1101 | -} |
1102 | +debTranslationsIndex::debTranslationsIndex(string URI,string Dist,string Section, |
1103 | + char const * const Translation) : |
1104 | + pkgIndexFile(true), URI(URI), Dist(Dist), Section(Section), |
1105 | + Language(Translation) |
1106 | +{} |
1107 | /*}}}*/ |
1108 | // TranslationIndex::Trans* - Return the URI to the translation files /*{{{*/ |
1109 | // --------------------------------------------------------------------- |
1110 | /* */ |
1111 | inline string debTranslationsIndex::IndexFile(const char *Type) const |
1112 | { |
1113 | - return _config->FindDir("Dir::State::lists") + URItoFileName(IndexURI(Type)); |
1114 | + string s =_config->FindDir("Dir::State::lists") + URItoFileName(IndexURI(Type)); |
1115 | + string sgzip = s + ".gz"; |
1116 | + if (!FileExists(s) && FileExists(sgzip)) |
1117 | + return sgzip; |
1118 | + else |
1119 | + return s; |
1120 | } |
1121 | string debTranslationsIndex::IndexURI(const char *Type) const |
1122 | { |
1123 | @@ -365,8 +382,8 @@ |
1124 | bool debTranslationsIndex::GetIndexes(pkgAcquire *Owner) const |
1125 | { |
1126 | if (TranslationsAvailable()) { |
1127 | - string TranslationFile = "Translation-" + LanguageCode(); |
1128 | - new pkgAcqIndexTrans(Owner, IndexURI(LanguageCode().c_str()), |
1129 | + string const TranslationFile = string("Translation-").append(Language); |
1130 | + new pkgAcqIndexTrans(Owner, IndexURI(Language), |
1131 | Info(TranslationFile.c_str()), |
1132 | TranslationFile); |
1133 | } |
1134 | @@ -385,7 +402,7 @@ |
1135 | snprintf(S,sizeof(S),"%s",Info(TranslationFile().c_str()).c_str()); |
1136 | else |
1137 | snprintf(S,sizeof(S),"%s (%s)",Info(TranslationFile().c_str()).c_str(), |
1138 | - IndexFile(LanguageCode().c_str()).c_str()); |
1139 | + IndexFile(Language).c_str()); |
1140 | return S; |
1141 | } |
1142 | /*}}}*/ |
1143 | @@ -407,20 +424,20 @@ |
1144 | return Info; |
1145 | } |
1146 | /*}}}*/ |
1147 | -bool debTranslationsIndex::HasPackages() const |
1148 | +bool debTranslationsIndex::HasPackages() const /*{{{*/ |
1149 | { |
1150 | if(!TranslationsAvailable()) |
1151 | return false; |
1152 | |
1153 | - return FileExists(IndexFile(LanguageCode().c_str())); |
1154 | + return FileExists(IndexFile(Language)); |
1155 | } |
1156 | - |
1157 | + /*}}}*/ |
1158 | // TranslationsIndex::Exists - Check if the index is available /*{{{*/ |
1159 | // --------------------------------------------------------------------- |
1160 | /* */ |
1161 | bool debTranslationsIndex::Exists() const |
1162 | { |
1163 | - return FileExists(IndexFile(LanguageCode().c_str())); |
1164 | + return FileExists(IndexFile(Language)); |
1165 | } |
1166 | /*}}}*/ |
1167 | // TranslationsIndex::Size - Return the size of the index /*{{{*/ |
1168 | @@ -429,7 +446,7 @@ |
1169 | unsigned long debTranslationsIndex::Size() const |
1170 | { |
1171 | struct stat S; |
1172 | - if (stat(IndexFile(LanguageCode().c_str()).c_str(),&S) != 0) |
1173 | + if (stat(IndexFile(Language).c_str(),&S) != 0) |
1174 | return 0; |
1175 | return S.st_size; |
1176 | } |
1177 | @@ -440,7 +457,7 @@ |
1178 | bool debTranslationsIndex::Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const |
1179 | { |
1180 | // Check the translation file, if in use |
1181 | - string TranslationFile = IndexFile(LanguageCode().c_str()); |
1182 | + string TranslationFile = IndexFile(Language); |
1183 | if (TranslationsAvailable() && FileExists(TranslationFile)) |
1184 | { |
1185 | FileFd Trans(TranslationFile,FileFd::ReadOnly); |
1186 | @@ -472,7 +489,7 @@ |
1187 | /* */ |
1188 | pkgCache::PkgFileIterator debTranslationsIndex::FindInCache(pkgCache &Cache) const |
1189 | { |
1190 | - string FileName = IndexFile(LanguageCode().c_str()); |
1191 | + string FileName = IndexFile(Language); |
1192 | |
1193 | pkgCache::PkgFileIterator File = Cache.FileBegin(); |
1194 | for (; File.end() == false; File++) |
1195 | |
1196 | === modified file 'apt-pkg/deb/debindexfile.h' |
1197 | --- apt-pkg/deb/debindexfile.h 2007-06-14 09:59:13 +0000 |
1198 | +++ apt-pkg/deb/debindexfile.h 2010-06-11 16:24:33 +0000 |
1199 | @@ -77,12 +77,13 @@ |
1200 | string URI; |
1201 | string Dist; |
1202 | string Section; |
1203 | + const char * const Language; |
1204 | |
1205 | string Info(const char *Type) const; |
1206 | string IndexFile(const char *Type) const; |
1207 | string IndexURI(const char *Type) const; |
1208 | |
1209 | - inline string TranslationFile() const {return "Translation-" + LanguageCode();}; |
1210 | + inline string TranslationFile() const {return string("Translation-").append(Language);}; |
1211 | |
1212 | public: |
1213 | |
1214 | @@ -99,7 +100,7 @@ |
1215 | virtual bool Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const; |
1216 | virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; |
1217 | |
1218 | - debTranslationsIndex(string URI,string Dist,string Section); |
1219 | + debTranslationsIndex(string URI,string Dist,string Section, char const * const Language); |
1220 | }; |
1221 | |
1222 | class debSourcesIndex : public pkgIndexFile |
1223 | |
1224 | === modified file 'apt-pkg/deb/deblistparser.cc' |
1225 | --- apt-pkg/deb/deblistparser.cc 2010-02-17 21:40:05 +0000 |
1226 | +++ apt-pkg/deb/deblistparser.cc 2010-06-11 16:24:33 +0000 |
1227 | @@ -13,6 +13,7 @@ |
1228 | #include <apt-pkg/deblistparser.h> |
1229 | #include <apt-pkg/error.h> |
1230 | #include <apt-pkg/configuration.h> |
1231 | +#include <apt-pkg/aptconfiguration.h> |
1232 | #include <apt-pkg/strutl.h> |
1233 | #include <apt-pkg/crc-16.h> |
1234 | #include <apt-pkg/md5.h> |
1235 | @@ -128,10 +129,11 @@ |
1236 | only describe package properties */ |
1237 | string debListParser::Description() |
1238 | { |
1239 | - if (DescriptionLanguage().empty()) |
1240 | + string const lang = DescriptionLanguage(); |
1241 | + if (lang.empty()) |
1242 | return Section.FindS("Description"); |
1243 | else |
1244 | - return Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str()); |
1245 | + return Section.FindS(string("Description-").append(lang).c_str()); |
1246 | } |
1247 | /*}}}*/ |
1248 | // ListParser::DescriptionLanguage - Return the description lang string /*{{{*/ |
1249 | @@ -141,7 +143,16 @@ |
1250 | assumed to describe original description. */ |
1251 | string debListParser::DescriptionLanguage() |
1252 | { |
1253 | - return Section.FindS("Description").empty() ? pkgIndexFile::LanguageCode() : ""; |
1254 | + if (Section.FindS("Description").empty() == false) |
1255 | + return ""; |
1256 | + |
1257 | + std::vector<string> const lang = APT::Configuration::getLanguages(); |
1258 | + for (std::vector<string>::const_iterator l = lang.begin(); |
1259 | + l != lang.end(); l++) |
1260 | + if (Section.FindS(string("Description-").append(*l).c_str()).empty() == false) |
1261 | + return *l; |
1262 | + |
1263 | + return ""; |
1264 | } |
1265 | /*}}}*/ |
1266 | // ListParser::Description - Return the description_md5 MD5SumValue /*{{{*/ |
1267 | @@ -383,7 +394,8 @@ |
1268 | bit by bit. */ |
1269 | const char *debListParser::ParseDepends(const char *Start,const char *Stop, |
1270 | string &Package,string &Ver, |
1271 | - unsigned int &Op, bool ParseArchFlags) |
1272 | + unsigned int &Op, bool const &ParseArchFlags, |
1273 | + bool const &StripMultiArch) |
1274 | { |
1275 | // Strip off leading space |
1276 | for (;Start != Stop && isspace(*Start) != 0; Start++); |
1277 | @@ -402,7 +414,14 @@ |
1278 | |
1279 | // Stash the package name |
1280 | Package.assign(Start,I - Start); |
1281 | - |
1282 | + |
1283 | + // We don't want to confuse library users which can't handle MultiArch |
1284 | + if (StripMultiArch == true) { |
1285 | + size_t const found = Package.rfind(':'); |
1286 | + if (found != string::npos) |
1287 | + Package = Package.substr(0,found); |
1288 | + } |
1289 | + |
1290 | // Skip white space to the '(' |
1291 | for (;I != Stop && isspace(*I) != 0 ; I++); |
1292 | |
1293 | |
1294 | === modified file 'apt-pkg/deb/deblistparser.h' |
1295 | --- apt-pkg/deb/deblistparser.h 2006-12-14 11:39:29 +0000 |
1296 | +++ apt-pkg/deb/deblistparser.h 2010-06-11 16:24:33 +0000 |
1297 | @@ -64,7 +64,8 @@ |
1298 | |
1299 | static const char *ParseDepends(const char *Start,const char *Stop, |
1300 | string &Package,string &Ver,unsigned int &Op, |
1301 | - bool ParseArchFlags = false); |
1302 | + bool const &ParseArchFlags = false, |
1303 | + bool const &StripMultiArch = false); |
1304 | static const char *ConvertRelation(const char *I,unsigned int &Op); |
1305 | |
1306 | debListParser(FileFd *File); |
1307 | |
1308 | === modified file 'apt-pkg/deb/debmetaindex.cc' |
1309 | --- apt-pkg/deb/debmetaindex.cc 2009-07-30 15:34:48 +0000 |
1310 | +++ apt-pkg/deb/debmetaindex.cc 2010-06-11 16:24:33 +0000 |
1311 | @@ -5,6 +5,7 @@ |
1312 | #include <apt-pkg/strutl.h> |
1313 | #include <apt-pkg/acquire-item.h> |
1314 | #include <apt-pkg/configuration.h> |
1315 | +#include <apt-pkg/aptconfiguration.h> |
1316 | #include <apt-pkg/error.h> |
1317 | |
1318 | using namespace std; |
1319 | @@ -170,13 +171,20 @@ |
1320 | new indexRecords (Dist)); |
1321 | |
1322 | // Queue the translations |
1323 | + std::vector<std::string> const lang = APT::Configuration::getLanguages(true); |
1324 | for (vector<const debSectionEntry *>::const_iterator I = SectionEntries.begin(); |
1325 | I != SectionEntries.end(); I++) { |
1326 | |
1327 | if((*I)->IsSrc) |
1328 | continue; |
1329 | - debTranslationsIndex i = debTranslationsIndex(URI,Dist,(*I)->Section); |
1330 | - i.GetIndexes(Owner); |
1331 | + |
1332 | + for (vector<string>::const_iterator l = lang.begin(); |
1333 | + l != lang.end(); l++) |
1334 | + { |
1335 | + if (*l == "none") continue; |
1336 | + debTranslationsIndex i = debTranslationsIndex(URI,Dist,(*I)->Section,(*l).c_str()); |
1337 | + i.GetIndexes(Owner); |
1338 | + } |
1339 | } |
1340 | |
1341 | return true; |
1342 | @@ -202,6 +210,7 @@ |
1343 | return Indexes; |
1344 | |
1345 | Indexes = new vector <pkgIndexFile*>; |
1346 | + std::vector<std::string> const lang = APT::Configuration::getLanguages(true); |
1347 | for (vector<const debSectionEntry *>::const_iterator I = SectionEntries.begin(); |
1348 | I != SectionEntries.end(); I++) { |
1349 | if ((*I)->IsSrc) |
1350 | @@ -209,7 +218,12 @@ |
1351 | else |
1352 | { |
1353 | Indexes->push_back(new debPackagesIndex (URI, Dist, (*I)->Section, IsTrusted())); |
1354 | - Indexes->push_back(new debTranslationsIndex(URI, Dist, (*I)->Section)); |
1355 | + |
1356 | + for (vector<string>::const_iterator l = lang.begin(); |
1357 | + l != lang.end(); l++) { |
1358 | + if (*l == "none") continue; |
1359 | + Indexes->push_back(new debTranslationsIndex(URI,Dist,(*I)->Section,(*l).c_str())); |
1360 | + } |
1361 | } |
1362 | } |
1363 | |
1364 | |
1365 | === modified file 'apt-pkg/deb/debrecords.cc' |
1366 | --- apt-pkg/deb/debrecords.cc 2010-05-05 07:58:23 +0000 |
1367 | +++ apt-pkg/deb/debrecords.cc 2010-06-11 16:24:33 +0000 |
1368 | @@ -11,6 +11,7 @@ |
1369 | #include <apt-pkg/debrecords.h> |
1370 | #include <apt-pkg/strutl.h> |
1371 | #include <apt-pkg/error.h> |
1372 | +#include <apt-pkg/aptconfiguration.h> |
1373 | #include <langinfo.h> |
1374 | /*}}}*/ |
1375 | |
1376 | @@ -110,13 +111,18 @@ |
1377 | string debRecordParser::LongDesc() |
1378 | { |
1379 | string orig, dest; |
1380 | - char *codeset = nl_langinfo(CODESET); |
1381 | |
1382 | if (!Section.FindS("Description").empty()) |
1383 | orig = Section.FindS("Description").c_str(); |
1384 | - else |
1385 | - orig = Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str()).c_str(); |
1386 | + else |
1387 | + { |
1388 | + vector<string> const lang = APT::Configuration::getLanguages(); |
1389 | + for (vector<string>::const_iterator l = lang.begin(); |
1390 | + orig.empty() && l != lang.end(); l++) |
1391 | + orig = Section.FindS(string("Description-").append(*l).c_str()); |
1392 | + } |
1393 | |
1394 | + char const * const codeset = nl_langinfo(CODESET); |
1395 | if (strcmp(codeset,"UTF-8") != 0) { |
1396 | UTF8ToCodeset(codeset, orig, &dest); |
1397 | orig = dest; |
1398 | |
1399 | === modified file 'apt-pkg/deb/debsrcrecords.cc' |
1400 | --- apt-pkg/deb/debsrcrecords.cc 2009-12-18 16:08:45 +0000 |
1401 | +++ apt-pkg/deb/debsrcrecords.cc 2010-06-11 16:24:33 +0000 |
1402 | @@ -54,7 +54,8 @@ |
1403 | package/version records representing the build dependency. The returned |
1404 | array need not be freed and will be reused by the next call to this |
1405 | function */ |
1406 | -bool debSrcRecordParser::BuildDepends(vector<pkgSrcRecords::Parser::BuildDepRec> &BuildDeps, bool ArchOnly) |
1407 | +bool debSrcRecordParser::BuildDepends(vector<pkgSrcRecords::Parser::BuildDepRec> &BuildDeps, |
1408 | + bool const &ArchOnly, bool const &StripMultiArch) |
1409 | { |
1410 | unsigned int I; |
1411 | const char *Start, *Stop; |
1412 | @@ -77,7 +78,7 @@ |
1413 | while (1) |
1414 | { |
1415 | Start = debListParser::ParseDepends(Start, Stop, |
1416 | - rec.Package,rec.Version,rec.Op,true); |
1417 | + rec.Package,rec.Version,rec.Op,true, StripMultiArch); |
1418 | |
1419 | if (Start == 0) |
1420 | return _error->Error("Problem parsing dependency: %s", fields[I]); |
1421 | |
1422 | === modified file 'apt-pkg/deb/debsrcrecords.h' |
1423 | --- apt-pkg/deb/debsrcrecords.h 2009-07-30 15:34:48 +0000 |
1424 | +++ apt-pkg/deb/debsrcrecords.h 2010-06-11 16:24:33 +0000 |
1425 | @@ -30,14 +30,14 @@ |
1426 | |
1427 | virtual bool Restart() {return Tags.Jump(Sect,0);}; |
1428 | virtual bool Step() {iOffset = Tags.Offset(); return Tags.Step(Sect);}; |
1429 | - virtual bool Jump(unsigned long Off) {iOffset = Off; return Tags.Jump(Sect,Off);}; |
1430 | + virtual bool Jump(unsigned long const &Off) {iOffset = Off; return Tags.Jump(Sect,Off);}; |
1431 | |
1432 | virtual string Package() const {return Sect.FindS("Package");}; |
1433 | virtual string Version() const {return Sect.FindS("Version");}; |
1434 | virtual string Maintainer() const {return Sect.FindS("Maintainer");}; |
1435 | virtual string Section() const {return Sect.FindS("Section");}; |
1436 | virtual const char **Binaries(); |
1437 | - virtual bool BuildDepends(vector<BuildDepRec> &BuildDeps, bool ArchOnly); |
1438 | + virtual bool BuildDepends(vector<BuildDepRec> &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch = true); |
1439 | virtual unsigned long Offset() {return iOffset;}; |
1440 | virtual string AsStr() |
1441 | { |
1442 | @@ -47,7 +47,7 @@ |
1443 | }; |
1444 | virtual bool Files(vector<pkgSrcRecords::File> &F); |
1445 | |
1446 | - debSrcRecordParser(string File,pkgIndexFile const *Index) |
1447 | + debSrcRecordParser(string const &File,pkgIndexFile const *Index) |
1448 | : Parser(Index), Fd(File,FileFd::ReadOnly), Tags(&Fd,102400), |
1449 | Buffer(0), BufSize(0) {} |
1450 | ~debSrcRecordParser(); |
1451 | |
1452 | === modified file 'apt-pkg/deb/dpkgpm.cc' |
1453 | --- apt-pkg/deb/dpkgpm.cc 2010-05-30 18:44:11 +0000 |
1454 | +++ apt-pkg/deb/dpkgpm.cc 2010-06-11 16:24:33 +0000 |
1455 | @@ -1082,7 +1082,7 @@ |
1456 | } |
1457 | // wait for input or output here |
1458 | FD_ZERO(&rfds); |
1459 | - if (!stdin_is_dev_null) |
1460 | + if (master >= 0 && !stdin_is_dev_null) |
1461 | FD_SET(0, &rfds); |
1462 | FD_SET(_dpkgin, &rfds); |
1463 | if(master >= 0) |
1464 | |
1465 | === modified file 'apt-pkg/depcache.cc' |
1466 | --- apt-pkg/depcache.cc 2009-12-18 16:08:45 +0000 |
1467 | +++ apt-pkg/depcache.cc 2010-06-11 16:24:33 +0000 |
1468 | @@ -186,16 +186,16 @@ |
1469 | if(reason > 0) |
1470 | PkgState[pkg->ID].Flags |= Flag::Auto; |
1471 | if(debug_autoremove) |
1472 | - std::cout << "Auto-Installed : " << pkgname << std::endl; |
1473 | + std::clog << "Auto-Installed : " << pkgname << std::endl; |
1474 | amt+=section.size(); |
1475 | if(Prog != NULL) |
1476 | Prog->OverallProgress(amt, file_size, 1, |
1477 | _("Reading state information")); |
1478 | } |
1479 | - if(Prog != NULL) |
1480 | - Prog->OverallProgress(file_size, file_size, 1, |
1481 | - _("Reading state information")); |
1482 | } |
1483 | + if(Prog != NULL) |
1484 | + Prog->OverallProgress(file_size, file_size, 1, |
1485 | + _("Reading state information")); |
1486 | } |
1487 | |
1488 | return true; |
1489 | @@ -1511,7 +1511,7 @@ |
1490 | { |
1491 | state.Garbage=true; |
1492 | if(debug_autoremove) |
1493 | - std::cout << "Garbage: " << p.Name() << std::endl; |
1494 | + std::clog << "Garbage: " << p.Name() << std::endl; |
1495 | } |
1496 | } |
1497 | |
1498 | |
1499 | === modified file 'apt-pkg/indexfile.cc' |
1500 | --- apt-pkg/indexfile.cc 2010-05-05 08:16:02 +0000 |
1501 | +++ apt-pkg/indexfile.cc 2010-06-11 16:24:33 +0000 |
1502 | @@ -8,9 +8,9 @@ |
1503 | ##################################################################### */ |
1504 | /*}}}*/ |
1505 | // Include Files /*{{{*/ |
1506 | -#include <apt-pkg/configuration.h> |
1507 | #include <apt-pkg/indexfile.h> |
1508 | #include <apt-pkg/error.h> |
1509 | +#include <apt-pkg/aptconfiguration.h> |
1510 | |
1511 | #include <clocale> |
1512 | #include <cstring> |
1513 | @@ -66,34 +66,23 @@ |
1514 | return string(); |
1515 | } |
1516 | /*}}}*/ |
1517 | -// IndexFile::TranslationsAvailable - Check if will use Translation /*{{{*/ |
1518 | +// IndexFile::TranslationsAvailable - Check if will use Translation /*{{{*/ |
1519 | // --------------------------------------------------------------------- |
1520 | /* */ |
1521 | -bool pkgIndexFile::TranslationsAvailable() |
1522 | -{ |
1523 | - const string Translation = _config->Find("APT::Acquire::Translation"); |
1524 | - |
1525 | - if (Translation.compare("none") != 0) |
1526 | - return CheckLanguageCode(LanguageCode().c_str()); |
1527 | - else |
1528 | - return false; |
1529 | +bool pkgIndexFile::TranslationsAvailable() { |
1530 | + return (APT::Configuration::getLanguages().empty() != true); |
1531 | } |
1532 | /*}}}*/ |
1533 | -// IndexFile::CheckLanguageCode - Check the Language Code /*{{{*/ |
1534 | +// IndexFile::CheckLanguageCode - Check the Language Code /*{{{*/ |
1535 | // --------------------------------------------------------------------- |
1536 | -/* */ |
1537 | -/* common cases: de_DE, de_DE@euro, de_DE.UTF-8, de_DE.UTF-8@euro, |
1538 | - de_DE.ISO8859-1, tig_ER |
1539 | - more in /etc/gdm/locale.conf |
1540 | -*/ |
1541 | - |
1542 | -bool pkgIndexFile::CheckLanguageCode(const char *Lang) |
1543 | +/* No intern need for this method anymore as the check for correctness |
1544 | + is already done in getLanguages(). Note also that this check is |
1545 | + rather bad (doesn't take three character like ast into account). |
1546 | + TODO: Remove method with next API break */ |
1547 | +__attribute__ ((deprecated)) bool pkgIndexFile::CheckLanguageCode(const char *Lang) |
1548 | { |
1549 | - if (strlen(Lang) == 2 || |
1550 | - strlen(Lang) == 3 || |
1551 | - (strlen(Lang) > 3 && Lang[3] == '_') || |
1552 | - (strlen(Lang) == 5 && Lang[2] == '_')) |
1553 | - return true; |
1554 | + if (strlen(Lang) == 2 || (strlen(Lang) == 5 && Lang[2] == '_')) |
1555 | + return true; |
1556 | |
1557 | if (strcmp(Lang,"C") != 0) |
1558 | _error->Warning("Wrong language code %s", Lang); |
1559 | @@ -101,8 +90,9 @@ |
1560 | return false; |
1561 | } |
1562 | /*}}}*/ |
1563 | -// IndexFile::LanguageCode - Return the Language Code /*{{{*/ |
1564 | +// IndexFile::LanguageCode - Return the Language Code /*{{{*/ |
1565 | // --------------------------------------------------------------------- |
1566 | +<<<<<<< TREE |
1567 | /* return the language code */ |
1568 | string pkgIndexFile::LanguageCode() |
1569 | { |
1570 | @@ -133,5 +123,14 @@ |
1571 | } |
1572 | else |
1573 | return Translation; |
1574 | +======= |
1575 | +/* As we have now possibly more than one LanguageCode this method is |
1576 | + supersided by a) private classmembers or b) getLanguages(). |
1577 | + TODO: Remove method with next API break */ |
1578 | +__attribute__ ((deprecated)) string pkgIndexFile::LanguageCode() { |
1579 | + if (TranslationsAvailable() == false) |
1580 | + return ""; |
1581 | + return APT::Configuration::getLanguages()[0]; |
1582 | +>>>>>>> MERGE-SOURCE |
1583 | } |
1584 | /*}}}*/ |
1585 | |
1586 | === modified file 'apt-pkg/init.h' |
1587 | --- apt-pkg/init.h 2009-12-18 16:08:45 +0000 |
1588 | +++ apt-pkg/init.h 2010-06-11 16:24:33 +0000 |
1589 | @@ -22,7 +22,7 @@ |
1590 | // Non-ABI-Breaks should only increase RELEASE number. |
1591 | // See also buildlib/libversion.mak |
1592 | #define APT_PKG_MAJOR 4 |
1593 | -#define APT_PKG_MINOR 8 |
1594 | +#define APT_PKG_MINOR 9 |
1595 | #define APT_PKG_RELEASE 0 |
1596 | |
1597 | extern const char *pkgVersion; |
1598 | |
1599 | === modified file 'apt-pkg/makefile' |
1600 | --- apt-pkg/makefile 2010-02-17 21:40:05 +0000 |
1601 | +++ apt-pkg/makefile 2010-06-11 16:24:33 +0000 |
1602 | @@ -14,7 +14,7 @@ |
1603 | LIBRARY=apt-pkg |
1604 | MAJOR=$(LIBAPTPKG_MAJOR) |
1605 | MINOR=$(LIBAPTPKG_RELEASE) |
1606 | -SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl |
1607 | +SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl -lz |
1608 | APT_DOMAIN:=libapt-pkg$(LIBAPTPKG_MAJOR) |
1609 | |
1610 | # Source code for the contributed non-core things |
1611 | |
1612 | === modified file 'apt-pkg/pkgcache.cc' |
1613 | --- apt-pkg/pkgcache.cc 2010-02-17 21:40:05 +0000 |
1614 | +++ apt-pkg/pkgcache.cc 2010-06-11 16:24:33 +0000 |
1615 | @@ -22,11 +22,12 @@ |
1616 | // Include Files /*{{{*/ |
1617 | #include <apt-pkg/pkgcache.h> |
1618 | #include <apt-pkg/policy.h> |
1619 | -#include <apt-pkg/indexfile.h> |
1620 | #include <apt-pkg/version.h> |
1621 | #include <apt-pkg/error.h> |
1622 | #include <apt-pkg/strutl.h> |
1623 | #include <apt-pkg/configuration.h> |
1624 | +#include <apt-pkg/aptconfiguration.h> |
1625 | +#include <apt-pkg/macros.h> |
1626 | |
1627 | #include <apti18n.h> |
1628 | |
1629 | @@ -673,14 +674,22 @@ |
1630 | */ |
1631 | pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescription() const |
1632 | { |
1633 | - pkgCache::DescIterator DescDefault = DescriptionList(); |
1634 | - pkgCache::DescIterator Desc = DescDefault; |
1635 | - for (; Desc.end() == false; Desc++) |
1636 | - if (pkgIndexFile::LanguageCode() == Desc.LanguageCode()) |
1637 | - break; |
1638 | - if (Desc.end() == true) |
1639 | - Desc = DescDefault; |
1640 | - return Desc; |
1641 | + std::vector<string> const lang = APT::Configuration::getLanguages(); |
1642 | + for (std::vector<string>::const_iterator l = lang.begin(); |
1643 | + l != lang.end(); l++) |
1644 | + { |
1645 | + pkgCache::DescIterator DescDefault = DescriptionList(); |
1646 | + pkgCache::DescIterator Desc = DescDefault; |
1647 | + |
1648 | + for (; Desc.end() == false; Desc++) |
1649 | + if (*l == Desc.LanguageCode()) |
1650 | + break; |
1651 | + if (Desc.end() == true) |
1652 | + Desc = DescDefault; |
1653 | + return Desc; |
1654 | + } |
1655 | + |
1656 | + return DescriptionList(); |
1657 | }; |
1658 | |
1659 | /*}}}*/ |
1660 | |
1661 | === modified file 'apt-pkg/pkgcache.h' |
1662 | --- apt-pkg/pkgcache.h 2009-07-30 15:34:48 +0000 |
1663 | +++ apt-pkg/pkgcache.h 2010-06-11 16:24:33 +0000 |
1664 | @@ -245,7 +245,7 @@ |
1665 | map_ptrloc File; // PackageFile |
1666 | map_ptrloc NextFile; // PkgVerFile |
1667 | map_ptrloc Offset; // File offset |
1668 | - unsigned short Size; |
1669 | + unsigned long Size; |
1670 | }; |
1671 | /*}}}*/ |
1672 | struct pkgCache::DescFile /*{{{*/ |
1673 | @@ -253,7 +253,7 @@ |
1674 | map_ptrloc File; // PackageFile |
1675 | map_ptrloc NextFile; // PkgVerFile |
1676 | map_ptrloc Offset; // File offset |
1677 | - unsigned short Size; |
1678 | + unsigned long Size; |
1679 | }; |
1680 | /*}}}*/ |
1681 | struct pkgCache::Version /*{{{*/ |
1682 | |
1683 | === modified file 'apt-pkg/policy.cc' |
1684 | --- apt-pkg/policy.cc 2010-02-17 21:40:05 +0000 |
1685 | +++ apt-pkg/policy.cc 2010-06-11 16:24:33 +0000 |
1686 | @@ -106,7 +106,7 @@ |
1687 | |
1688 | if (_config->FindB("Debug::pkgPolicy",false) == true) |
1689 | for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); F++) |
1690 | - cout << "Prio of " << F.FileName() << ' ' << PFPriority[F->ID] << endl; |
1691 | + std::clog << "Prio of " << F.FileName() << ' ' << PFPriority[F->ID] << std::endl; |
1692 | |
1693 | return true; |
1694 | } |
1695 | @@ -121,6 +121,10 @@ |
1696 | signed Max = GetPriority(Pkg); |
1697 | pkgCache::VerIterator Pref = GetMatch(Pkg); |
1698 | |
1699 | + // Alternatives in case we can not find our package pin (Bug#512318). |
1700 | + signed MaxAlt = 0; |
1701 | + pkgCache::VerIterator PrefAlt; |
1702 | + |
1703 | // no package = no candidate version |
1704 | if (Pkg.end() == true) |
1705 | return Pref; |
1706 | @@ -159,6 +163,11 @@ |
1707 | { |
1708 | Pref = Ver; |
1709 | Max = Prio; |
1710 | + } |
1711 | + if (Prio > MaxAlt) |
1712 | + { |
1713 | + PrefAlt = Ver; |
1714 | + MaxAlt = Prio; |
1715 | } |
1716 | } |
1717 | |
1718 | @@ -175,6 +184,11 @@ |
1719 | break; |
1720 | } |
1721 | } |
1722 | + // If we do not find our candidate, use the one with the highest pin. |
1723 | + // This means that if there is a version available with pin > 0; there |
1724 | + // will always be a candidate (Closes: #512318) |
1725 | + if (!Pref.IsGood() && MaxAlt > 0) |
1726 | + Pref = PrefAlt; |
1727 | return Pref; |
1728 | } |
1729 | /*}}}*/ |
1730 | |
1731 | === modified file 'apt-pkg/srcrecords.cc' |
1732 | --- apt-pkg/srcrecords.cc 2007-06-14 09:59:13 +0000 |
1733 | +++ apt-pkg/srcrecords.cc 2010-06-11 16:24:33 +0000 |
1734 | @@ -77,7 +77,7 @@ |
1735 | /* This searches on both source package names and output binary names and |
1736 | returns the first found. A 'cursor' like system is used to allow this |
1737 | function to be called multiple times to get successive entries */ |
1738 | -pkgSrcRecords::Parser *pkgSrcRecords::Find(const char *Package,bool SrcOnly) |
1739 | +pkgSrcRecords::Parser *pkgSrcRecords::Find(const char *Package,bool const &SrcOnly) |
1740 | { |
1741 | if (Current == Files.end()) |
1742 | return 0; |
1743 | @@ -116,7 +116,7 @@ |
1744 | // Parser::BuildDepType - Convert a build dep to a string /*{{{*/ |
1745 | // --------------------------------------------------------------------- |
1746 | /* */ |
1747 | -const char *pkgSrcRecords::Parser::BuildDepType(unsigned char Type) |
1748 | +const char *pkgSrcRecords::Parser::BuildDepType(unsigned char const &Type) |
1749 | { |
1750 | const char *fields[] = {"Build-Depends", |
1751 | "Build-Depends-Indep", |
1752 | |
1753 | === modified file 'apt-pkg/srcrecords.h' |
1754 | --- apt-pkg/srcrecords.h 2007-06-14 09:59:13 +0000 |
1755 | +++ apt-pkg/srcrecords.h 2010-06-11 16:24:33 +0000 |
1756 | @@ -59,7 +59,7 @@ |
1757 | |
1758 | virtual bool Restart() = 0; |
1759 | virtual bool Step() = 0; |
1760 | - virtual bool Jump(unsigned long Off) = 0; |
1761 | + virtual bool Jump(unsigned long const &Off) = 0; |
1762 | virtual unsigned long Offset() = 0; |
1763 | virtual string AsStr() = 0; |
1764 | |
1765 | @@ -69,8 +69,8 @@ |
1766 | virtual string Section() const = 0; |
1767 | virtual const char **Binaries() = 0; // Ownership does not transfer |
1768 | |
1769 | - virtual bool BuildDepends(vector<BuildDepRec> &BuildDeps, bool ArchOnly) = 0; |
1770 | - static const char *BuildDepType(unsigned char Type); |
1771 | + virtual bool BuildDepends(vector<BuildDepRec> &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch = true) = 0; |
1772 | + static const char *BuildDepType(unsigned char const &Type); |
1773 | |
1774 | virtual bool Files(vector<pkgSrcRecords::File> &F) = 0; |
1775 | |
1776 | @@ -90,7 +90,7 @@ |
1777 | bool Restart(); |
1778 | |
1779 | // Locate a package by name |
1780 | - Parser *Find(const char *Package,bool SrcOnly = false); |
1781 | + Parser *Find(const char *Package,bool const &SrcOnly = false); |
1782 | |
1783 | pkgSrcRecords(pkgSourceList &List); |
1784 | ~pkgSrcRecords(); |
1785 | |
1786 | === modified file 'buildlib/apti18n.h.in' |
1787 | --- buildlib/apti18n.h.in 2008-11-24 10:16:13 +0000 |
1788 | +++ buildlib/apti18n.h.in 2010-06-11 16:24:33 +0000 |
1789 | @@ -11,8 +11,10 @@ |
1790 | # include <libintl.h> |
1791 | # ifdef APT_DOMAIN |
1792 | # define _(x) dgettext(APT_DOMAIN,x) |
1793 | +# define P_(msg,plural,n) dngettext(APT_DOMAIN,msg,plural,n) |
1794 | # else |
1795 | # define _(x) gettext(x) |
1796 | +# define P_(msg,plural,n) ngettext(msg,plural,n) |
1797 | # endif |
1798 | # define N_(x) x |
1799 | #else |
1800 | @@ -21,5 +23,6 @@ |
1801 | # define textdomain(a) |
1802 | # define bindtextdomain(a, b) |
1803 | # define _(x) x |
1804 | +# define P_(msg,plural,n) (n == 1 ? msg : plural) |
1805 | # define N_(x) x |
1806 | #endif |
1807 | |
1808 | === modified file 'buildlib/library.mak' |
1809 | --- buildlib/library.mak 2009-12-12 00:54:33 +0000 |
1810 | +++ buildlib/library.mak 2010-06-11 16:24:33 +0000 |
1811 | @@ -16,11 +16,11 @@ |
1812 | # See defaults.mak for information about LOCAL |
1813 | |
1814 | # Some local definitions |
1815 | -LOCAL := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR) |
1816 | +LOCAL := lib$(LIBRARY).so.$(MAJOR).$(MINOR) |
1817 | $(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename $(SOURCE))))) |
1818 | $(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename $(SOURCE))))) |
1819 | $(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS)) |
1820 | -$(LOCAL)-SONAME := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) |
1821 | +$(LOCAL)-SONAME := lib$(LIBRARY).so.$(MAJOR) |
1822 | $(LOCAL)-SLIBS := $(SLIBS) |
1823 | $(LOCAL)-LIBRARY := $(LIBRARY) |
1824 | |
1825 | @@ -29,7 +29,7 @@ |
1826 | |
1827 | # Install the command hooks |
1828 | headers: $($(LOCAL)-HEADERS) |
1829 | -library: $(LIB)/lib$(LIBRARY).so $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) |
1830 | +library: $(LIB)/lib$(LIBRARY).so $(LIB)/lib$(LIBRARY).so.$(MAJOR) |
1831 | clean: clean/$(LOCAL) |
1832 | veryclean: veryclean/$(LOCAL) |
1833 | |
1834 | @@ -44,14 +44,14 @@ |
1835 | -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.so* |
1836 | |
1837 | # Build rules for the two symlinks |
1838 | -.PHONY: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) $(LIB)/lib$(LIBRARY).so |
1839 | -$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR): $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR) |
1840 | +.PHONY: $(LIB)/lib$(LIBRARY).so.$(MAJOR) $(LIB)/lib$(LIBRARY).so |
1841 | +$(LIB)/lib$(LIBRARY).so.$(MAJOR): $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR) |
1842 | ln -sf $(<F) $@ |
1843 | -$(LIB)/lib$(LIBRARY).so: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR) |
1844 | +$(LIB)/lib$(LIBRARY).so: $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR) |
1845 | ln -sf $(<F) $@ |
1846 | |
1847 | # The binary build rule |
1848 | -$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) |
1849 | +$(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) |
1850 | -rm -f $(LIB)/lib$($(@F)-LIBRARY)*.so* 2> /dev/null |
1851 | echo Building shared library $@ |
1852 | $(CXX) $(CXXFLAGS) $(LDFLAGS) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\ |
1853 | |
1854 | === modified file 'buildlib/libversion.mak' |
1855 | --- buildlib/libversion.mak 2009-12-22 09:01:18 +0000 |
1856 | +++ buildlib/libversion.mak 2010-06-11 16:24:33 +0000 |
1857 | @@ -12,6 +12,7 @@ |
1858 | # The versionnumber is extracted from apt-inst/makefile - see also there. |
1859 | LIBAPTINST_MAJOR=$(shell egrep '^MAJOR=' $(BASE)/apt-inst/makefile |cut -d '=' -f 2) |
1860 | LIBAPTINST_MINOR=$(shell egrep '^MINOR=' $(BASE)/apt-inst/makefile |cut -d '=' -f 2) |
1861 | +<<<<<<< TREE |
1862 | |
1863 | # FIXME: In previous releases this lovely variable includes |
1864 | # the detected libc and libdc++ version. As this is bogus we |
1865 | @@ -19,3 +20,5 @@ |
1866 | # And we don't want to do this now. So we hardcode a value here, |
1867 | # and drop it later on (hopefully as fast as possible). |
1868 | LIBEXT=-libc6.10-6 |
1869 | +======= |
1870 | +>>>>>>> MERGE-SOURCE |
1871 | |
1872 | === modified file 'cmdline/apt-cache.cc' |
1873 | --- cmdline/apt-cache.cc 2010-02-17 21:40:05 +0000 |
1874 | +++ cmdline/apt-cache.cc 2010-06-11 16:24:33 +0000 |
1875 | @@ -1500,15 +1500,26 @@ |
1876 | if (_error->PendingError() == true) |
1877 | return false; |
1878 | |
1879 | + unsigned found = 0; |
1880 | for (const char **I = CmdL.FileList + 1; *I != 0; I++) |
1881 | { |
1882 | SrcRecs.Restart(); |
1883 | |
1884 | pkgSrcRecords::Parser *Parse; |
1885 | - while ((Parse = SrcRecs.Find(*I,false)) != 0) |
1886 | - cout << Parse->AsStr() << endl;; |
1887 | + unsigned found_this = 0; |
1888 | + while ((Parse = SrcRecs.Find(*I,false)) != 0) { |
1889 | + cout << Parse->AsStr() << endl;; |
1890 | + found++; |
1891 | + found_this++; |
1892 | + } |
1893 | + if (found_this == 0) { |
1894 | + _error->Warning(_("Unable to locate package %s"),*I); |
1895 | + continue; |
1896 | + } |
1897 | } |
1898 | - return true; |
1899 | + if (found > 0) |
1900 | + return true; |
1901 | + return _error->Error(_("No packages found")); |
1902 | } |
1903 | /*}}}*/ |
1904 | // Policy - Show the results of the preferences file /*{{{*/ |
1905 | |
1906 | === modified file 'cmdline/apt-get.cc' |
1907 | --- cmdline/apt-get.cc 2010-04-08 19:14:03 +0000 |
1908 | +++ cmdline/apt-get.cc 2010-06-11 16:24:33 +0000 |
1909 | @@ -1520,10 +1520,9 @@ |
1910 | // only show stuff in the list that is not yet marked for removal |
1911 | if(Cache[Pkg].Delete() == false) |
1912 | { |
1913 | + ++autoRemoveCount; |
1914 | // we don't need to fill the strings if we don't need them |
1915 | - if (smallList == true) |
1916 | - ++autoRemoveCount; |
1917 | - else |
1918 | + if (smallList == false) |
1919 | { |
1920 | autoremovelist += string(Pkg.Name()) + " "; |
1921 | autoremoveversions += string(Cache[Pkg].CandVersion) + "\n"; |
1922 | @@ -1536,9 +1535,12 @@ |
1923 | if (doAutoRemove == false && (autoremovelist.empty() == false || autoRemoveCount != 0)) |
1924 | { |
1925 | if (smallList == false) |
1926 | - ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions); |
1927 | + ShowList(c1out, P_("The following package is automatically installed and is no longer required:", |
1928 | + "The following packages were automatically installed and are no longer required:", |
1929 | + autoRemoveCount), autoremovelist, autoremoveversions); |
1930 | else |
1931 | - ioprintf(c1out, _("%lu packages were automatically installed and are no longer required.\n"), autoRemoveCount); |
1932 | + ioprintf(c1out, P_("%lu package was automatically installed and is no longer required.\n", |
1933 | + "%lu packages were automatically installed and are no longer required.\n", autoRemoveCount), autoRemoveCount); |
1934 | c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl; |
1935 | } |
1936 | // Now see if we had destroyed anything (if we had done anything) |
1937 | |
1938 | === modified file 'cmdline/apt-key' |
1939 | --- cmdline/apt-key 2010-02-17 21:40:05 +0000 |
1940 | +++ cmdline/apt-key 2010-06-11 16:24:33 +0000 |
1941 | @@ -143,6 +143,7 @@ |
1942 | else |
1943 | #echo "generate list" |
1944 | TRUSTEDFILE="/etc/apt/trusted.gpg" |
1945 | + eval $(apt-config shell TRUSTEDFILE Apt::GPGV::TrustedKeyring) |
1946 | if [ -r "$TRUSTEDFILE" ]; then |
1947 | GPG="$GPG --keyring $TRUSTEDFILE" |
1948 | fi |
1949 | |
1950 | === modified file 'cmdline/apt-mark' |
1951 | --- cmdline/apt-mark 2010-03-12 09:16:11 +0000 |
1952 | +++ cmdline/apt-mark 2010-06-11 16:24:33 +0000 |
1953 | @@ -19,10 +19,10 @@ |
1954 | if not os.path.exists(STATE_FILE): |
1955 | return |
1956 | auto = set() |
1957 | - tagfile = apt_pkg.ParseTagFile(open(STATE_FILE)) |
1958 | - while tagfile.Step(): |
1959 | - pkgname = tagfile.Section.get("Package") |
1960 | - autoInst = tagfile.Section.get("Auto-Installed") |
1961 | + tagfile = apt_pkg.TagFile(open(STATE_FILE)) |
1962 | + for section in tagfile: |
1963 | + pkgname = section.get("Package") |
1964 | + autoInst = section.get("Auto-Installed") |
1965 | if int(autoInst): |
1966 | auto.add(pkgname) |
1967 | print "\n".join(sorted(auto)) |
1968 | @@ -33,24 +33,24 @@ |
1969 | # open the statefile |
1970 | if os.path.exists(STATE_FILE): |
1971 | try: |
1972 | - tagfile = apt_pkg.ParseTagFile(open(STATE_FILE)) |
1973 | + tagfile = apt_pkg.TagFile(open(STATE_FILE)) |
1974 | outfile = open(STATE_FILE+".tmp","w") |
1975 | except IOError, msg: |
1976 | print "%s, are you root?" % (msg) |
1977 | sys.exit(1) |
1978 | - while tagfile.Step(): |
1979 | - pkgname = tagfile.Section.get("Package") |
1980 | - autoInst = tagfile.Section.get("Auto-Installed") |
1981 | + for section in tagfile: |
1982 | + pkgname = section.get("Package") |
1983 | + autoInst = section.get("Auto-Installed") |
1984 | if pkgname in pkgs: |
1985 | if options.verbose: |
1986 | print "changing %s to %s" % (pkgname,action) |
1987 | - newsec = apt_pkg.RewriteSection(tagfile.Section, |
1988 | + newsec = apt_pkg.rewrite_section(section, |
1989 | [], |
1990 | [ ("Auto-Installed",str(action)) ]) |
1991 | pkgs.remove(pkgname) |
1992 | outfile.write(newsec+"\n") |
1993 | else: |
1994 | - outfile.write(str(tagfile.Section)+"\n") |
1995 | + outfile.write(str(section)+"\n") |
1996 | if action == 1: |
1997 | for pkgname in pkgs: |
1998 | if options.verbose: |
1999 | @@ -78,7 +78,7 @@ |
2000 | |
2001 | # get the state-file |
2002 | if not options.filename: |
2003 | - STATE_FILE = apt_pkg.Config.FindDir("Dir::State") + "extended_states" |
2004 | + STATE_FILE = apt_pkg.config.find_dir("Dir::State") + "extended_states" |
2005 | else: |
2006 | STATE_FILE=options.filename |
2007 | |
2008 | |
2009 | === modified file 'configure.in' |
2010 | --- configure.in 2010-02-17 21:40:05 +0000 |
2011 | +++ configure.in 2010-06-11 16:24:33 +0000 |
2012 | @@ -18,7 +18,11 @@ |
2013 | AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) |
2014 | |
2015 | dnl -- SET THIS TO THE RELEASE VERSION -- |
2016 | +<<<<<<< TREE |
2017 | AC_DEFINE_UNQUOTED(VERSION,"0.7.25ubuntu1") |
2018 | +======= |
2019 | +AC_DEFINE_UNQUOTED(VERSION,"0.7.25.4") |
2020 | +>>>>>>> MERGE-SOURCE |
2021 | PACKAGE="apt" |
2022 | AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") |
2023 | AC_SUBST(PACKAGE) |
2024 | @@ -83,6 +87,10 @@ |
2025 | |
2026 | AC_SUBST(BDBLIB) |
2027 | |
2028 | +AC_CHECK_LIB(z, gzopen, |
2029 | + [AC_CHECK_HEADER(zlib.h, [], AC_MSG_ERROR([failed: zlib.h not found]))], |
2030 | + AC_MSG_ERROR([failed: Need libz])) |
2031 | + |
2032 | dnl Converts the ARCH to be something singular for this general CPU family |
2033 | dnl This is often the dpkg architecture string. |
2034 | dnl First check against the full canonical canoncial-system-type in $target |
2035 | |
2036 | === modified file 'debian/NEWS' |
2037 | --- debian/NEWS 2009-11-24 11:26:07 +0000 |
2038 | +++ debian/NEWS 2010-06-11 16:24:33 +0000 |
2039 | @@ -1,8 +1,15 @@ |
2040 | +apt (0.7.26~exp3) experimental; urgency=low |
2041 | + |
2042 | + * apt-ftparchive now reads the standard configuration files in |
2043 | + /etc/apt/apt.conf and /etc/apt/apt.conf.d. |
2044 | + |
2045 | + -- Julian Andres Klode <jak@debian.org> Fri, 26 Mar 2010 15:34:16 +0100 |
2046 | + |
2047 | apt (0.7.24) unstable; urgency=low |
2048 | |
2049 | * Already included in the last version but now with better documentation |
2050 | is the possibility to add/prefer different compression types while |
2051 | - downloading archive informations, which can decrease the time needed for |
2052 | + downloading archive information, which can decrease the time needed for |
2053 | update on slow machines. See apt.conf (5) manpage for details. |
2054 | * APT manages his manpage translations now with po4a, thanks to Nicolas |
2055 | François and Kurasawa Nozomu, who also provide the ja translation. |
2056 | |
2057 | === modified file 'debian/changelog' |
2058 | --- debian/changelog 2010-06-09 10:04:54 +0000 |
2059 | +++ debian/changelog 2010-06-11 16:24:33 +0000 |
2060 | @@ -1,3 +1,4 @@ |
2061 | +<<<<<<< TREE |
2062 | apt (0.7.25.3ubuntu10) maverick; urgency=low |
2063 | |
2064 | [ Michael Vogt ] |
2065 | @@ -78,6 +79,150 @@ |
2066 | - fix memory leaks in error conditions in DoSource() |
2067 | * apt-pkg/deb/dpkgpm.cc: |
2068 | - fix error message construction in OpenLog() |
2069 | +======= |
2070 | +apt (0.7.26~exp5) UNRELEASED; urgency=low |
2071 | + |
2072 | + [ Christian Perrier ] |
2073 | + * Slovak translation update. Closes: #581159 |
2074 | + * Italian translation update. Closes: #581742 |
2075 | + |
2076 | + [ Martin Pitt ] |
2077 | + * debian/rules: |
2078 | + - Make DEB_BUILD_OPTIONS=noopt actually work by passing the right |
2079 | + CXXFLAGS. |
2080 | + * apt-pkg/contrib/fileutl.{h,cc}: |
2081 | + - Add support for transparent reading of gzipped files. |
2082 | + - Link against zlib (in apt-pkg/makefile) and add zlib build dependency. |
2083 | + - [Weak internal ABI BREAK] This changes the behaviour of FileFd for |
2084 | + reading gzipped files. |
2085 | + * configure.in: |
2086 | + - Check for zlib library and headers. |
2087 | + * apt-pkg/deb/debindexfile.cc: |
2088 | + - If we do not find uncompressed package/source/translation indexes, look |
2089 | + for gzip compressed ones. |
2090 | + * apt-pkg/acquire-item.cc: |
2091 | + - If the Acquire::GzipIndexes option is true and we download a gzipped |
2092 | + index file, keep it as it is (and rename to .gz) instead of |
2093 | + uncompressing it. |
2094 | + * doc/apt.conf.5.xml: |
2095 | + - Document the new Acquire::GzipIndexes option. |
2096 | + * doc/po/apt-doc.pot, doc/po/de.po: |
2097 | + - German translation of new Acquire::GzipIndexes option. |
2098 | + * Add test/test-indexes.sh: |
2099 | + - Test behaviour of index retrieval and usage, in particular with |
2100 | + uncompressed and gzip compressed indexes. |
2101 | + |
2102 | + -- Christian Perrier <bubulle@debian.org> Tue, 11 May 2010 19:52:00 +0200 |
2103 | + |
2104 | +apt (0.7.26~exp4) unstable; urgency=low |
2105 | + |
2106 | + * [ Abi break ] apt-pkg/acquire-item.{cc,h}: |
2107 | + - add "IsIndexFile" to constructor of pkgAcqFile so that it sends |
2108 | + the right cache control headers |
2109 | + * apt-pkg/depcache.cc: |
2110 | + - fix incorrect std::cout usage for debug output |
2111 | + * test/libapt/getlanguages_test.cc: |
2112 | + - Add test for Esperanto that has nocounty associated with them |
2113 | + (LP: #560956) |
2114 | + * apt-pkg/deb/debrecords.cc: |
2115 | + - fix max tag buffer size (LP: #545336, closes: #578959) |
2116 | + * debian/rules: |
2117 | + - install html doxygen in libapt-pkg-doc as well |
2118 | + |
2119 | + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 04 May 2010 09:55:08 +0200 |
2120 | + |
2121 | +apt (0.7.26~exp3) UNRELEASED; urgency=low |
2122 | + |
2123 | + [ Christian Perrier ] |
2124 | + * German translation update. Closes: #571037 |
2125 | + * Spanish manpages translation update. Closes: #573293 |
2126 | + * Dutch translation update. Closes: #573946 |
2127 | + * Polish manpages translation update. Closes: #574558 |
2128 | + * Add "manpages-pl (<< 20060617-3~)" to avoid file conflicts with |
2129 | + that package that was providing some manpages for APT utilities. |
2130 | + |
2131 | + [ Julian Andres Klode ] |
2132 | + * cmdline/apt-cache.cc: |
2133 | + - Change behavior of showsrc to match the one of show (Closes: #512046). |
2134 | + * cmdline/apt-key: |
2135 | + - Honor Apt::GPGV::TrustedKeyring (Closes: #316390) |
2136 | + * cmdline/apt-mark: |
2137 | + - Use the new python-apt API (and conflict with python-apt << 0.7.93.2). |
2138 | + * apt-inst/contrib/arfile.h: |
2139 | + - Add public ARArchive::Members() which returns the list of members. |
2140 | + * apt-pkg/policy.cc: |
2141 | + - Always return a candidate if there is at least one version pinned > 0 |
2142 | + (Closes: #512318) |
2143 | + * ftparchive/apt-ftparchive.cc: |
2144 | + - Read default configuration (Closes: #383257) |
2145 | + * debian/rules: |
2146 | + - Fix the libraries name to be e.g. libapt-pkg4.9 instead of |
2147 | + libapt-pkg-4.9. |
2148 | + |
2149 | + [ Michael Vogt ] |
2150 | + * apt-pkg/deb/dpkgpm.cc: |
2151 | + - fix backgrounding when dpkg runs (closes: #486222) |
2152 | + * cmdline/apt-mark: |
2153 | + - show error on incorrect aguments (LP: #517917), thanks to |
2154 | + Torsten Spindler |
2155 | + * cmdline/apt-get.cc: |
2156 | + - if apt-get source foo=version or foo/distro can not be found, |
2157 | + error out (LP: #502641) |
2158 | + * apt-pkg/packagemanager.cc: |
2159 | + - better debug output |
2160 | + * doc/examples/configure-index: |
2161 | + - add missing Debug::pkgPackageManager option |
2162 | + |
2163 | + -- Christian Perrier <bubulle@debian.org> Wed, 24 Feb 2010 22:13:50 +0100 |
2164 | + |
2165 | +apt (0.7.26~exp2) experimental; urgency=low |
2166 | + |
2167 | + * fix crash when LANGUAGE is not set |
2168 | + |
2169 | + -- Michael Vogt <mvo@debian.org> Thu, 18 Feb 2010 22:07:23 +0100 |
2170 | + |
2171 | +apt (0.7.26~exp1) experimental; urgency=low |
2172 | + |
2173 | + [ David Kalnischkies ] |
2174 | + * [BREAK] add possibility to download and use multiply |
2175 | + Translation files, configurable with Acquire::Translation |
2176 | + (Closes: #444222, #448216, #550564) |
2177 | + * Ignore :qualifiers after package name in build dependencies |
2178 | + for now as long we don't understand them (Closes: #558103) |
2179 | + * apt-pkg/contrib/mmap.{cc,h}: |
2180 | + - extend it to have a growable flag - unused now but maybe... |
2181 | + * apt-pkg/pkgcache.h: |
2182 | + - use long instead of short for {Ver,Desc}File size, |
2183 | + patch from VÃctor Manuel Jáquez Leal, thanks! (Closes: #538917) |
2184 | + * apt-pkg/acquire-item.cc: |
2185 | + - allow also to skip the last patch if target is reached, |
2186 | + thanks Bernhard R. Link! (Closes: #545699) |
2187 | + * ftparchive/writer.{cc,h}: |
2188 | + - add --arch option for packages and contents commands |
2189 | + - if an arch is given accept only *_all.deb and *_arch.deb instead |
2190 | + of *.deb. Thanks Stephan Bosch for the patch! (Closes: #319710) |
2191 | + - add APT::FTPArchive::AlwaysStat to disable the too aggressive |
2192 | + caching if versions are build multiply times (not recommend) |
2193 | + Patch by Christoph Goehre, thanks! (Closes: #463260) |
2194 | + * apt-pkg/deb/dpkgpm.cc: |
2195 | + - stdin redirected to /dev/null takes all CPU (Closes: #569488) |
2196 | + Thanks to Aurelien Jarno for providing (again) a patch! |
2197 | + * buildlib/apti18n.h.in, po/makefile: |
2198 | + - add ngettext support with P_() |
2199 | + * aptconfiguration.cc: |
2200 | + - include all existing Translation files in the Cache (Closes: 564137) |
2201 | + * debian/control: |
2202 | + - update with no changes to debian policy 3.8.4 |
2203 | + * doc/apt_preferences.5.xml: |
2204 | + - explicitly warn against careless use (Closes: #567669) |
2205 | + * debian/rules: |
2206 | + - remove creation of empty dir /usr/share/apt |
2207 | + * doc/apt-cdrom.8.xml: |
2208 | + - fix typo spotted by lintian: proc(c)eed |
2209 | + |
2210 | + [ Ivan Masár ] |
2211 | + * Slovak translation update. Closes: #568294 |
2212 | +>>>>>>> MERGE-SOURCE |
2213 | |
2214 | -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 26 Mar 2010 16:57:49 +0100 |
2215 | |
2216 | @@ -92,9 +237,23 @@ |
2217 | apt (0.7.25.3ubuntu2) lucid; urgency=low |
2218 | |
2219 | [ Michael Vogt ] |
2220 | +<<<<<<< TREE |
2221 | +======= |
2222 | + * [BREAK] merged lp:~mvo/apt/history |
2223 | + - this writes a /var/log/apt/history tagfile that contains details |
2224 | + from the transaction (complements term.log) |
2225 | + * methods/http.cc: |
2226 | + - add cache-control headers even if no cache is given to allow |
2227 | + adding options for intercepting proxies |
2228 | + - add Acquire::http::ProxyAutoDetect configuration that |
2229 | + can be used to call a external helper to figure out the |
2230 | + proxy configuration and return it to apt via stdout |
2231 | + (this is a step towards WPAD and zeroconf/avahi support) |
2232 | +>>>>>>> MERGE-SOURCE |
2233 | * abicheck/ |
2234 | - add new abitest tester using the ABI Compliance Checker from |
2235 | http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker |
2236 | +<<<<<<< TREE |
2237 | * debian/apt.conf.autoremove: |
2238 | - add "oldlibs" to the APT::Never-MarkAuto-Sections as its used |
2239 | for transitional packages |
2240 | @@ -118,12 +277,15 @@ |
2241 | From that point on gnome-control-center will have to warn if |
2242 | the user makes changes to the proxy settings and does not apply |
2243 | them system wide |
2244 | +======= |
2245 | +>>>>>>> MERGE-SOURCE |
2246 | |
2247 | [ Robert Collins ] |
2248 | * Change the package index Info methods to allow apt-cache policy to be |
2249 | useful when using several different archives on the same host. |
2250 | (Closes: #329814, LP: #22354) |
2251 | |
2252 | +<<<<<<< TREE |
2253 | -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 12 Mar 2010 23:10:52 +0100 |
2254 | |
2255 | apt (0.7.25.3ubuntu1) lucid; urgency=low |
2256 | @@ -140,6 +302,9 @@ |
2257 | * Slovak translation update. Closes: #568294 |
2258 | |
2259 | -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 17 Feb 2010 23:33:32 +0100 |
2260 | +======= |
2261 | + -- Michael Vogt <mvo@debian.org> Thu, 18 Feb 2010 16:11:39 +0100 |
2262 | +>>>>>>> MERGE-SOURCE |
2263 | |
2264 | apt (0.7.25.3) unstable; urgency=low |
2265 | |
2266 | |
2267 | === modified file 'debian/control' |
2268 | --- debian/control 2010-04-22 08:57:37 +0000 |
2269 | +++ debian/control 2010-06-11 16:24:33 +0000 |
2270 | @@ -6,16 +6,31 @@ |
2271 | Uploaders: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>, |
2272 | Christian Perrier <bubulle@debian.org>, Daniel Burrows <dburrows@debian.org>, |
2273 | Luca Bruno <lethalman88@gmail.com>, Julian Andres Klode <jak@debian.org> |
2274 | +<<<<<<< TREE |
2275 | Standards-Version: 3.8.3 |
2276 | Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5), debiandoc-sgml, xsltproc, docbook-xsl, po4a (>= 0.34-2), autotools-dev, intltool |
2277 | Vcs-Bzr: https://code.launchpad.net/~ubuntu-core-dev/apt/ubuntu |
2278 | +======= |
2279 | +Standards-Version: 3.8.4 |
2280 | +Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, po4a (>= 0.34-2), autotools-dev |
2281 | +Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ |
2282 | +>>>>>>> MERGE-SOURCE |
2283 | |
2284 | Package: apt |
2285 | Architecture: any |
2286 | +<<<<<<< TREE |
2287 | Depends: ${shlibs:Depends}, ${misc:Depends} |
2288 | Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7) |
2289 | +======= |
2290 | +Depends: ${shlibs:Depends}, debian-archive-keyring, ${misc:Depends} |
2291 | +Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7), manpages-pl (<< 20060617-3~) |
2292 | +>>>>>>> MERGE-SOURCE |
2293 | Provides: ${libapt-pkg:provides} |
2294 | +<<<<<<< TREE |
2295 | Recommends: ubuntu-keyring |
2296 | +======= |
2297 | +Conflicts: python-apt (<< 0.7.93.2~) |
2298 | +>>>>>>> MERGE-SOURCE |
2299 | Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt |
2300 | Description: Advanced front-end for dpkg |
2301 | This is Debian's next generation front-end for the dpkg package manager. |
2302 | @@ -53,6 +68,9 @@ |
2303 | Description: Documentation for APT development |
2304 | This package contains documentation for development of the APT |
2305 | Debian package manipulation program and its libraries. |
2306 | + . |
2307 | + This includes the source code documentation generated by doxygen |
2308 | + in html format. |
2309 | |
2310 | Package: apt-utils |
2311 | Architecture: any |
2312 | |
2313 | === modified file 'debian/rules' |
2314 | --- debian/rules 2010-06-09 08:49:00 +0000 |
2315 | +++ debian/rules 2010-06-11 16:24:33 +0000 |
2316 | @@ -78,21 +78,21 @@ |
2317 | include buildlib/libversion.mak |
2318 | |
2319 | # Determine which package we should provide in the control files |
2320 | -LIBAPTPKG_PROVIDE=libapt-pkg$(LIBEXT)-$(LIBAPTPKG_MAJOR) |
2321 | -LIBAPTINST_PROVIDE=libapt-inst$(LIBEXT)-$(LIBAPTINST_MAJOR) |
2322 | +LIBAPTPKG_PROVIDE=libapt-pkg$(LIBAPTPKG_MAJOR) |
2323 | +LIBAPTINST_PROVIDE=libapt-inst$(LIBAPTINST_MAJOR) |
2324 | |
2325 | debian/shlibs.local: apt-pkg/makefile |
2326 | # We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and |
2327 | # one for the rest of the packages. This ensures that each package gets |
2328 | # the right overrides.. |
2329 | rm -rf $@ $@.apt $@.apt-utils |
2330 | - echo "libapt-pkg$(LIBEXT) $(LIBAPTPKG_MAJOR)" > $@.apt |
2331 | - |
2332 | - echo "libapt-pkg$(LIBEXT) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils |
2333 | - echo "libapt-inst$(LIBEXT) $(LIBAPTINST_MAJOR)" >> $@.apt-utils |
2334 | - |
2335 | - echo "libapt-pkg$(LIBEXT) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@ |
2336 | - echo "libapt-inst$(LIBEXT) $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@ |
2337 | + echo "libapt-pkg $(LIBAPTPKG_MAJOR)" > $@.apt |
2338 | + |
2339 | + echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils |
2340 | + echo "libapt-inst $(LIBAPTINST_MAJOR)" >> $@.apt-utils |
2341 | + |
2342 | + echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@ |
2343 | + echo "libapt-inst $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@ |
2344 | |
2345 | build: build/build-stamp |
2346 | build-doc: build/build-doc-stamp |
2347 | @@ -108,7 +108,7 @@ |
2348 | dh_testdir |
2349 | -mkdir build |
2350 | cp COPYING debian/copyright |
2351 | - cd build && CXXFLAGS="$(confcxxflags)" ../configure $(confflags) |
2352 | + cd build && CXXFLAGS="$(CXXFLAGS)" ../configure $(confflags) |
2353 | touch $@ |
2354 | |
2355 | build/build-stamp: build/configure-stamp |
2356 | @@ -144,7 +144,8 @@ |
2357 | # |
2358 | dh_installdocs -p$@ $(BLD)/docs/cache* $(BLD)/docs/design* $(BLD)/docs/dpkg-tech* \ |
2359 | $(BLD)/docs/files* $(BLD)/docs/method* \ |
2360 | - doc/libapt-pkg2_to_3.txt doc/style.txt |
2361 | + doc/libapt-pkg2_to_3.txt doc/style.txt \ |
2362 | + $(BLD)/doc/doxygen/html/* |
2363 | dh_installexamples -p$@ |
2364 | # dh_installmenu -p$@ |
2365 | # dh_installinit -p$@ |
2366 | @@ -190,7 +191,7 @@ |
2367 | dh_testdir -p$@ |
2368 | dh_testroot -p$@ |
2369 | dh_clean -p$@ -k |
2370 | - dh_installdirs -p$@ /usr/share/bug/$@ /usr/share/$@ |
2371 | + dh_installdirs -p$@ |
2372 | # |
2373 | # apt install |
2374 | # |
2375 | |
2376 | === modified file 'doc/apt-cdrom.8.xml' |
2377 | --- doc/apt-cdrom.8.xml 2009-08-26 10:21:54 +0000 |
2378 | +++ doc/apt-cdrom.8.xml 2010-06-11 16:24:33 +0000 |
2379 | @@ -65,7 +65,7 @@ |
2380 | <varlistentry><term>add</term> |
2381 | <listitem><para><literal>add</literal> is used to add a new disc to the |
2382 | source list. It will unmount the |
2383 | - CDROM device, prompt for a disk to be inserted and then procceed to |
2384 | + CDROM device, prompt for a disk to be inserted and then proceed to |
2385 | scan it and copy the index files. If the disc does not have a proper |
2386 | <filename>disk</filename> directory you will be prompted for a descriptive |
2387 | title. |
2388 | |
2389 | === modified file 'doc/apt-ftparchive.1.xml' |
2390 | --- doc/apt-ftparchive.1.xml 2009-12-12 15:32:18 +0000 |
2391 | +++ doc/apt-ftparchive.1.xml 2010-06-11 16:24:33 +0000 |
2392 | @@ -39,6 +39,7 @@ |
2393 | <arg><option>--delink</option></arg> |
2394 | <arg><option>--readonly</option></arg> |
2395 | <arg><option>--contents</option></arg> |
2396 | + <arg><option>--arch <replaceable>architecture</replaceable></option></arg> |
2397 | <arg><option>-o <replaceable>config</replaceable>=<replaceable>string</replaceable></option></arg> |
2398 | <arg><option>-c=<replaceable>file</replaceable></option></arg> |
2399 | <group choice="req"> |
2400 | @@ -542,7 +543,26 @@ |
2401 | <listitem><para> |
2402 | Make the caching databases read only. |
2403 | Configuration Item: <literal>APT::FTPArchive::ReadOnlyDB</literal>.</para></listitem> |
2404 | - </varlistentry> |
2405 | + </varlistentry> |
2406 | + |
2407 | + <varlistentry><term><option>-a</option></term><term><option>--arch</option></term> |
2408 | + <listitem><para>Accept in the <literal>packages</literal> and <literal>contents</literal> |
2409 | + commands only package files matching <literal>*_arch.deb</literal> or |
2410 | + <literal>*_all.deb</literal> instead of all package files in the given path. |
2411 | + Configuration Item: <literal>APT::FTPArchive::Architecture</literal>.</para></listitem> |
2412 | + </varlistentry> |
2413 | + |
2414 | + <varlistentry><term><option>APT::FTPArchive::AlwaysStat</option></term> |
2415 | + <listitem><para> |
2416 | + &apt-ftparchive; caches as much as possible of metadata in a cachedb. If packages |
2417 | + are recompiled and/or republished with the same version again, this will lead to problems |
2418 | + as the now outdated cached metadata like size and checksums will be used. With this option |
2419 | + enabled this will no longer happen as it will be checked if the file was changed. |
2420 | + Note that this option is set to "<literal>false</literal>" by default as it is not recommend |
2421 | + to upload multiply versions/builds of a package with the same versionnumber, so in theory |
2422 | + nobody will have these problems and therefore all these extra checks are useless. |
2423 | + </para></listitem> |
2424 | + </varlistentry> |
2425 | |
2426 | <varlistentry><term><option>APT::FTPArchive::LongDescription</option></term> |
2427 | <listitem><para> |
2428 | |
2429 | === modified file 'doc/apt.conf.5.xml' |
2430 | --- doc/apt.conf.5.xml 2010-01-22 23:37:21 +0000 |
2431 | +++ doc/apt.conf.5.xml 2010-06-11 16:24:33 +0000 |
2432 | @@ -153,7 +153,7 @@ |
2433 | <listitem><para>Default release to install packages from if more than one |
2434 | version available. Contains release name, codename or release version. Examples: 'stable', 'testing', 'unstable', 'lenny', 'squeeze', '4.0', '5.0*'. See also &apt-preferences;.</para></listitem> |
2435 | </varlistentry> |
2436 | - |
2437 | + |
2438 | <varlistentry><term>Ignore-Hold</term> |
2439 | <listitem><para>Ignore Held packages; This global option causes the problem resolver to |
2440 | ignore held packages in its decision making.</para></listitem> |
2441 | @@ -410,6 +410,36 @@ |
2442 | these warnings are most of the time false negatives. Future versions will maybe include a way to |
2443 | really prefer uncompressed files to support the usage of local mirrors.</para></listitem> |
2444 | </varlistentry> |
2445 | + |
2446 | + <varlistentry><term>GzipIndexes</term> |
2447 | + <listitem><para> |
2448 | + When downloading <literal>gzip</literal> compressed indexes (Packages, Sources, or |
2449 | + Translations), keep them gzip compressed locally instead of unpacking |
2450 | + them. This saves quite a lot of disk space at the expense of more CPU |
2451 | + requirements when building the local package caches. False by default. |
2452 | + </para></listitem> |
2453 | + </varlistentry> |
2454 | + |
2455 | + <varlistentry><term>Languages</term> |
2456 | + <listitem><para>The Languages subsection controls which <filename>Translation</filename> files are downloaded |
2457 | + and in which order APT tries to display the Description-Translations. APT will try to display the first |
2458 | + available Description in the Language which is listed at first. Languages can be defined with their |
2459 | + short or long Languagecodes. Note that not all archives provide <filename>Translation</filename> |
2460 | + files for every Language - especially the long Languagecodes are rare, so please |
2461 | + inform you which ones are available before you set here impossible values.</para> |
2462 | + <para>The default list includes "environment" and "en". "<literal>environment</literal>" has a special meaning here: |
2463 | + It will be replaced at runtime with the languagecodes extracted from the <literal>LC_MESSAGES</literal> environment variable. |
2464 | + It will also ensure that these codes are not included twice in the list. If <literal>LC_MESSAGES</literal> |
2465 | + is set to "C" only the <filename>Translation-en</filename> file (if available) will be used. |
2466 | + To force apt to use no Translation file use the setting <literal>Acquire::Languages=none</literal>. "<literal>none</literal>" |
2467 | + is another special meaning code which will stop the search for a fitting <filename>Translation</filename> file. |
2468 | + This can be used by the system administrator to let APT know that it should download also this files without |
2469 | + actually use them if the environment doesn't specify this languages. So the following example configuration will |
2470 | + result in the order "en, de" in an english and in "de, en" in a german localization. Note that "fr" is downloaded, |
2471 | + but not used if APT is not used in a french localization, in such an environment the order would be "fr, de, en". |
2472 | + <programlisting>Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };</programlisting></para></listitem> |
2473 | + </varlistentry> |
2474 | + |
2475 | </variablelist> |
2476 | </para> |
2477 | </refsect1> |
2478 | @@ -1001,6 +1031,7 @@ |
2479 | </listitem> |
2480 | </varlistentry> |
2481 | --> |
2482 | + |
2483 | </variablelist> |
2484 | </refsect1> |
2485 | |
2486 | |
2487 | === modified file 'doc/apt_preferences.5.xml' |
2488 | --- doc/apt_preferences.5.xml 2010-02-17 21:40:05 +0000 |
2489 | +++ doc/apt_preferences.5.xml 2010-06-11 16:24:33 +0000 |
2490 | @@ -14,7 +14,7 @@ |
2491 | &apt-email; |
2492 | &apt-product; |
2493 | <!-- The last update date --> |
2494 | - <date>04 May 2009</date> |
2495 | + <date>16 February 2010</date> |
2496 | </refentryinfo> |
2497 | |
2498 | <refmeta> |
2499 | @@ -53,6 +53,14 @@ |
2500 | The APT preferences file does not affect the choice of instance, only |
2501 | the choice of version.</para> |
2502 | |
2503 | +<para>Preferences are a strong power in the hands of a system administrator |
2504 | +but they can become also their biggest nightmare if used without care! |
2505 | +APT will not questioning the preferences so wrong settings will therefore |
2506 | +lead to uninstallable packages or wrong decisions while upgrading packages. |
2507 | +Even more problems will arise if multiply distribution releases are mixed |
2508 | +without a good understanding of the following paragraphs. |
2509 | +You have been warned.</para> |
2510 | + |
2511 | <para>Note that the files in the <filename>/etc/apt/preferences.d</filename> |
2512 | directory are parsed in alphanumeric ascending order and need to obey the |
2513 | following naming convention: The files have no or "<literal>pref</literal>" |
2514 | |
2515 | === modified file 'doc/examples/configure-index' |
2516 | --- doc/examples/configure-index 2010-04-14 17:51:40 +0000 |
2517 | +++ doc/examples/configure-index 2010-06-11 16:24:33 +0000 |
2518 | @@ -289,6 +289,15 @@ |
2519 | |
2520 | Order { "gz"; "lzma"; "bz2"; }; |
2521 | }; |
2522 | + |
2523 | + Languages |
2524 | + { |
2525 | + "environment"; |
2526 | + "de"; |
2527 | + "en"; |
2528 | + "none"; |
2529 | + "fr"; |
2530 | + }; |
2531 | }; |
2532 | |
2533 | // Directory layout |
2534 | |
2535 | === modified file 'doc/po/apt-doc.pot' |
2536 | --- doc/po/apt-doc.pot 2010-01-22 23:37:21 +0000 |
2537 | +++ doc/po/apt-doc.pot 2010-06-11 16:24:33 +0000 |
2538 | @@ -7,7 +7,7 @@ |
2539 | msgid "" |
2540 | msgstr "" |
2541 | "Project-Id-Version: PACKAGE VERSION\n" |
2542 | -"POT-Creation-Date: 2010-01-20 12:18+0100\n" |
2543 | +"POT-Creation-Date: 2010-06-11 10:56+0300\n" |
2544 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
2545 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
2546 | "Language-Team: LANGUAGE <LL@li.org>\n" |
2547 | @@ -894,7 +894,7 @@ |
2548 | msgstr "" |
2549 | |
2550 | #. type: Content of: <refentry><refsect1><title> |
2551 | -#: apt-cache.8.xml:62 apt-cdrom.8.xml:47 apt-config.8.xml:47 apt-extracttemplates.1.xml:43 apt-ftparchive.1.xml:55 apt-get.8.xml:125 apt-key.8.xml:35 apt-mark.8.xml:52 apt-secure.8.xml:40 apt-sortpkgs.1.xml:44 apt.conf.5.xml:39 apt_preferences.5.xml:33 sources.list.5.xml:33 |
2552 | +#: apt-cache.8.xml:62 apt-cdrom.8.xml:47 apt-config.8.xml:47 apt-extracttemplates.1.xml:43 apt-ftparchive.1.xml:56 apt-get.8.xml:125 apt-key.8.xml:35 apt-mark.8.xml:52 apt-secure.8.xml:40 apt-sortpkgs.1.xml:44 apt.conf.5.xml:39 apt_preferences.5.xml:33 sources.list.5.xml:33 |
2553 | msgid "Description" |
2554 | msgstr "" |
2555 | |
2556 | @@ -1284,7 +1284,7 @@ |
2557 | msgstr "" |
2558 | |
2559 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2560 | -#: apt-cache.8.xml:281 apt-config.8.xml:93 apt-extracttemplates.1.xml:56 apt-ftparchive.1.xml:492 apt-get.8.xml:319 apt-mark.8.xml:89 apt-sortpkgs.1.xml:54 apt.conf.5.xml:502 apt.conf.5.xml:524 |
2561 | +#: apt-cache.8.xml:281 apt-config.8.xml:93 apt-extracttemplates.1.xml:56 apt-ftparchive.1.xml:493 apt-get.8.xml:319 apt-mark.8.xml:89 apt-sortpkgs.1.xml:54 apt.conf.5.xml:511 apt.conf.5.xml:533 |
2562 | msgid "options" |
2563 | msgstr "" |
2564 | |
2565 | @@ -1307,7 +1307,7 @@ |
2566 | msgstr "" |
2567 | |
2568 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2569 | -#: apt-cache.8.xml:291 apt-ftparchive.1.xml:535 apt-get.8.xml:376 apt-sortpkgs.1.xml:58 |
2570 | +#: apt-cache.8.xml:291 apt-ftparchive.1.xml:536 apt-get.8.xml:376 apt-sortpkgs.1.xml:58 |
2571 | msgid "<option>-s</option>" |
2572 | msgstr "" |
2573 | |
2574 | @@ -1327,12 +1327,12 @@ |
2575 | msgstr "" |
2576 | |
2577 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2578 | -#: apt-cache.8.xml:299 apt-ftparchive.1.xml:509 apt-get.8.xml:366 |
2579 | +#: apt-cache.8.xml:299 apt-ftparchive.1.xml:510 apt-get.8.xml:366 |
2580 | msgid "<option>-q</option>" |
2581 | msgstr "" |
2582 | |
2583 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2584 | -#: apt-cache.8.xml:299 apt-ftparchive.1.xml:509 apt-get.8.xml:366 |
2585 | +#: apt-cache.8.xml:299 apt-ftparchive.1.xml:510 apt-get.8.xml:366 |
2586 | msgid "<option>--quiet</option>" |
2587 | msgstr "" |
2588 | |
2589 | @@ -1381,7 +1381,7 @@ |
2590 | msgstr "" |
2591 | |
2592 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2593 | -#: apt-cache.8.xml:317 apt-cdrom.8.xml:131 |
2594 | +#: apt-cache.8.xml:317 apt-cdrom.8.xml:131 apt-ftparchive.1.xml:548 |
2595 | msgid "<option>-a</option>" |
2596 | msgstr "" |
2597 | |
2598 | @@ -1477,12 +1477,12 @@ |
2599 | msgstr "" |
2600 | |
2601 | #. type: Content of: <refentry><refsect1><variablelist> |
2602 | -#: apt-cache.8.xml:356 apt-cdrom.8.xml:150 apt-config.8.xml:98 apt-extracttemplates.1.xml:67 apt-ftparchive.1.xml:568 apt-get.8.xml:554 apt-sortpkgs.1.xml:64 |
2603 | +#: apt-cache.8.xml:356 apt-cdrom.8.xml:150 apt-config.8.xml:98 apt-extracttemplates.1.xml:67 apt-ftparchive.1.xml:576 apt-get.8.xml:554 apt-sortpkgs.1.xml:64 |
2604 | msgid "&apt-commonoptions;" |
2605 | msgstr "" |
2606 | |
2607 | #. type: Content of: <refentry><refsect1><title> |
2608 | -#: apt-cache.8.xml:361 apt-get.8.xml:559 apt-key.8.xml:153 apt-mark.8.xml:122 apt.conf.5.xml:1035 apt_preferences.5.xml:622 |
2609 | +#: apt-cache.8.xml:361 apt-get.8.xml:559 apt-key.8.xml:153 apt-mark.8.xml:122 apt.conf.5.xml:1044 apt_preferences.5.xml:630 |
2610 | msgid "Files" |
2611 | msgstr "" |
2612 | |
2613 | @@ -1492,7 +1492,7 @@ |
2614 | msgstr "" |
2615 | |
2616 | #. type: Content of: <refentry><refsect1><title> |
2617 | -#: apt-cache.8.xml:368 apt-cdrom.8.xml:155 apt-config.8.xml:103 apt-extracttemplates.1.xml:74 apt-ftparchive.1.xml:584 apt-get.8.xml:569 apt-key.8.xml:174 apt-mark.8.xml:133 apt-secure.8.xml:181 apt-sortpkgs.1.xml:69 apt.conf.5.xml:1041 apt_preferences.5.xml:629 sources.list.5.xml:233 |
2618 | +#: apt-cache.8.xml:368 apt-cdrom.8.xml:155 apt-config.8.xml:103 apt-extracttemplates.1.xml:74 apt-ftparchive.1.xml:592 apt-get.8.xml:569 apt-key.8.xml:174 apt-mark.8.xml:133 apt-secure.8.xml:181 apt-sortpkgs.1.xml:69 apt.conf.5.xml:1050 apt_preferences.5.xml:637 sources.list.5.xml:233 |
2619 | msgid "See Also" |
2620 | msgstr "" |
2621 | |
2622 | @@ -1502,7 +1502,7 @@ |
2623 | msgstr "" |
2624 | |
2625 | #. type: Content of: <refentry><refsect1><title> |
2626 | -#: apt-cache.8.xml:373 apt-cdrom.8.xml:160 apt-config.8.xml:108 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:588 apt-get.8.xml:575 apt-mark.8.xml:137 apt-sortpkgs.1.xml:73 |
2627 | +#: apt-cache.8.xml:373 apt-cdrom.8.xml:160 apt-config.8.xml:108 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:596 apt-get.8.xml:575 apt-mark.8.xml:137 apt-sortpkgs.1.xml:73 |
2628 | msgid "Diagnostics" |
2629 | msgstr "" |
2630 | |
2631 | @@ -1566,7 +1566,7 @@ |
2632 | #: apt-cdrom.8.xml:66 |
2633 | msgid "" |
2634 | "<literal>add</literal> is used to add a new disc to the source list. It will " |
2635 | -"unmount the CDROM device, prompt for a disk to be inserted and then procceed " |
2636 | +"unmount the CDROM device, prompt for a disk to be inserted and then proceed " |
2637 | "to scan it and copy the index files. If the disc does not have a proper " |
2638 | "<filename>disk</filename> directory you will be prompted for a descriptive " |
2639 | "title." |
2640 | @@ -1606,7 +1606,7 @@ |
2641 | msgstr "" |
2642 | |
2643 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2644 | -#: apt-cdrom.8.xml:95 apt-ftparchive.1.xml:503 apt-get.8.xml:328 |
2645 | +#: apt-cdrom.8.xml:95 apt-ftparchive.1.xml:504 apt-get.8.xml:328 |
2646 | msgid "<option>-d</option>" |
2647 | msgstr "" |
2648 | |
2649 | @@ -1750,7 +1750,7 @@ |
2650 | msgstr "" |
2651 | |
2652 | #. type: Content of: <refentry><refsect1><para> |
2653 | -#: apt-config.8.xml:53 apt-ftparchive.1.xml:71 |
2654 | +#: apt-config.8.xml:53 apt-ftparchive.1.xml:72 |
2655 | msgid "" |
2656 | "Unless the <option>-h</option>, or <option>--help</option> option is given " |
2657 | "one of the commands below must be present." |
2658 | @@ -1801,7 +1801,7 @@ |
2659 | msgstr "" |
2660 | |
2661 | #. type: Content of: <refentry><refsect1><para> |
2662 | -#: apt-config.8.xml:104 apt-extracttemplates.1.xml:75 apt-ftparchive.1.xml:585 apt-sortpkgs.1.xml:70 |
2663 | +#: apt-config.8.xml:104 apt-extracttemplates.1.xml:75 apt-ftparchive.1.xml:593 apt-sortpkgs.1.xml:70 |
2664 | msgid "&apt-conf;" |
2665 | msgstr "" |
2666 | |
2667 | @@ -1910,7 +1910,8 @@ |
2668 | "<command>apt-ftparchive</command> <arg><option>-hvdsq</option></arg> " |
2669 | "<arg><option>--md5</option></arg> <arg><option>--delink</option></arg> " |
2670 | "<arg><option>--readonly</option></arg> " |
2671 | -"<arg><option>--contents</option></arg> <arg><option>-o " |
2672 | +"<arg><option>--contents</option></arg> <arg><option>--arch " |
2673 | +"<replaceable>architecture</replaceable></option></arg> <arg><option>-o " |
2674 | "<replaceable>config</replaceable>=<replaceable>string</replaceable></option></arg> " |
2675 | "<arg><option>-c=<replaceable>file</replaceable></option></arg> <group " |
2676 | "choice=\"req\"> <arg>packages<arg choice=\"plain\" " |
2677 | @@ -1929,7 +1930,7 @@ |
2678 | msgstr "" |
2679 | |
2680 | #. type: Content of: <refentry><refsect1><para> |
2681 | -#: apt-ftparchive.1.xml:56 |
2682 | +#: apt-ftparchive.1.xml:57 |
2683 | msgid "" |
2684 | "<command>apt-ftparchive</command> is the command line tool that generates " |
2685 | "the index files that APT uses to access a distribution source. The index " |
2686 | @@ -1938,7 +1939,7 @@ |
2687 | msgstr "" |
2688 | |
2689 | #. type: Content of: <refentry><refsect1><para> |
2690 | -#: apt-ftparchive.1.xml:60 |
2691 | +#: apt-ftparchive.1.xml:61 |
2692 | msgid "" |
2693 | "<command>apt-ftparchive</command> is a superset of the &dpkg-scanpackages; " |
2694 | "program, incorporating its entire functionality via the " |
2695 | @@ -1948,7 +1949,7 @@ |
2696 | msgstr "" |
2697 | |
2698 | #. type: Content of: <refentry><refsect1><para> |
2699 | -#: apt-ftparchive.1.xml:66 |
2700 | +#: apt-ftparchive.1.xml:67 |
2701 | msgid "" |
2702 | "Internally <command>apt-ftparchive</command> can make use of binary " |
2703 | "databases to cache the contents of a .deb file and it does not rely on any " |
2704 | @@ -1958,12 +1959,12 @@ |
2705 | msgstr "" |
2706 | |
2707 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2708 | -#: apt-ftparchive.1.xml:75 |
2709 | +#: apt-ftparchive.1.xml:76 |
2710 | msgid "packages" |
2711 | msgstr "" |
2712 | |
2713 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2714 | -#: apt-ftparchive.1.xml:77 |
2715 | +#: apt-ftparchive.1.xml:78 |
2716 | msgid "" |
2717 | "The packages command generates a package file from a directory tree. It " |
2718 | "takes the given directory and recursively searches it for .deb files, " |
2719 | @@ -1972,17 +1973,17 @@ |
2720 | msgstr "" |
2721 | |
2722 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2723 | -#: apt-ftparchive.1.xml:82 apt-ftparchive.1.xml:106 |
2724 | +#: apt-ftparchive.1.xml:83 apt-ftparchive.1.xml:107 |
2725 | msgid "The option <option>--db</option> can be used to specify a binary caching DB." |
2726 | msgstr "" |
2727 | |
2728 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2729 | -#: apt-ftparchive.1.xml:85 |
2730 | +#: apt-ftparchive.1.xml:86 |
2731 | msgid "sources" |
2732 | msgstr "" |
2733 | |
2734 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2735 | -#: apt-ftparchive.1.xml:87 |
2736 | +#: apt-ftparchive.1.xml:88 |
2737 | msgid "" |
2738 | "The <literal>sources</literal> command generates a source index file from a " |
2739 | "directory tree. It takes the given directory and recursively searches it " |
2740 | @@ -1991,7 +1992,7 @@ |
2741 | msgstr "" |
2742 | |
2743 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2744 | -#: apt-ftparchive.1.xml:92 |
2745 | +#: apt-ftparchive.1.xml:93 |
2746 | msgid "" |
2747 | "If an override file is specified then a source override file will be looked " |
2748 | "for with an extension of .src. The --source-override option can be used to " |
2749 | @@ -1999,12 +2000,12 @@ |
2750 | msgstr "" |
2751 | |
2752 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2753 | -#: apt-ftparchive.1.xml:97 |
2754 | +#: apt-ftparchive.1.xml:98 |
2755 | msgid "contents" |
2756 | msgstr "" |
2757 | |
2758 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2759 | -#: apt-ftparchive.1.xml:99 |
2760 | +#: apt-ftparchive.1.xml:100 |
2761 | msgid "" |
2762 | "The <literal>contents</literal> command generates a contents file from a " |
2763 | "directory tree. It takes the given directory and recursively searches it for " |
2764 | @@ -2015,12 +2016,12 @@ |
2765 | msgstr "" |
2766 | |
2767 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2768 | -#: apt-ftparchive.1.xml:109 |
2769 | +#: apt-ftparchive.1.xml:110 |
2770 | msgid "release" |
2771 | msgstr "" |
2772 | |
2773 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2774 | -#: apt-ftparchive.1.xml:111 |
2775 | +#: apt-ftparchive.1.xml:112 |
2776 | msgid "" |
2777 | "The <literal>release</literal> command generates a Release file from a " |
2778 | "directory tree. It recursively searches the given directory for Packages, " |
2779 | @@ -2030,7 +2031,7 @@ |
2780 | msgstr "" |
2781 | |
2782 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2783 | -#: apt-ftparchive.1.xml:118 |
2784 | +#: apt-ftparchive.1.xml:119 |
2785 | msgid "" |
2786 | "Values for the additional metadata fields in the Release file are taken from " |
2787 | "the corresponding variables under " |
2788 | @@ -2044,12 +2045,12 @@ |
2789 | msgstr "" |
2790 | |
2791 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2792 | -#: apt-ftparchive.1.xml:128 |
2793 | +#: apt-ftparchive.1.xml:129 |
2794 | msgid "generate" |
2795 | msgstr "" |
2796 | |
2797 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2798 | -#: apt-ftparchive.1.xml:130 |
2799 | +#: apt-ftparchive.1.xml:131 |
2800 | msgid "" |
2801 | "The <literal>generate</literal> command is designed to be runnable from a " |
2802 | "cron script and builds indexes according to the given config file. The " |
2803 | @@ -2059,24 +2060,24 @@ |
2804 | msgstr "" |
2805 | |
2806 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
2807 | -#: apt-ftparchive.1.xml:137 apt-get.8.xml:292 |
2808 | +#: apt-ftparchive.1.xml:138 apt-get.8.xml:292 |
2809 | msgid "clean" |
2810 | msgstr "" |
2811 | |
2812 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
2813 | -#: apt-ftparchive.1.xml:139 |
2814 | +#: apt-ftparchive.1.xml:140 |
2815 | msgid "" |
2816 | "The <literal>clean</literal> command tidies the databases used by the given " |
2817 | "configuration file by removing any records that are no longer necessary." |
2818 | msgstr "" |
2819 | |
2820 | #. type: Content of: <refentry><refsect1><title> |
2821 | -#: apt-ftparchive.1.xml:145 |
2822 | +#: apt-ftparchive.1.xml:146 |
2823 | msgid "The Generate Configuration" |
2824 | msgstr "" |
2825 | |
2826 | #. type: Content of: <refentry><refsect1><para> |
2827 | -#: apt-ftparchive.1.xml:147 |
2828 | +#: apt-ftparchive.1.xml:148 |
2829 | msgid "" |
2830 | "The <literal>generate</literal> command uses a configuration file to " |
2831 | "describe the archives that are going to be generated. It follows the typical " |
2832 | @@ -2087,17 +2088,17 @@ |
2833 | msgstr "" |
2834 | |
2835 | #. type: Content of: <refentry><refsect1><para> |
2836 | -#: apt-ftparchive.1.xml:155 |
2837 | +#: apt-ftparchive.1.xml:156 |
2838 | msgid "The generate configuration has 4 separate sections, each described below." |
2839 | msgstr "" |
2840 | |
2841 | #. type: Content of: <refentry><refsect1><refsect2><title> |
2842 | -#: apt-ftparchive.1.xml:157 |
2843 | +#: apt-ftparchive.1.xml:158 |
2844 | msgid "Dir Section" |
2845 | msgstr "" |
2846 | |
2847 | #. type: Content of: <refentry><refsect1><refsect2><para> |
2848 | -#: apt-ftparchive.1.xml:159 |
2849 | +#: apt-ftparchive.1.xml:160 |
2850 | msgid "" |
2851 | "The <literal>Dir</literal> section defines the standard directories needed " |
2852 | "to locate the files required during the generation process. These " |
2853 | @@ -2106,12 +2107,12 @@ |
2854 | msgstr "" |
2855 | |
2856 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2857 | -#: apt-ftparchive.1.xml:164 |
2858 | +#: apt-ftparchive.1.xml:165 |
2859 | msgid "ArchiveDir" |
2860 | msgstr "" |
2861 | |
2862 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2863 | -#: apt-ftparchive.1.xml:166 |
2864 | +#: apt-ftparchive.1.xml:167 |
2865 | msgid "" |
2866 | "Specifies the root of the FTP archive, in a standard Debian configuration " |
2867 | "this is the directory that contains the <filename>ls-LR</filename> and dist " |
2868 | @@ -2119,44 +2120,44 @@ |
2869 | msgstr "" |
2870 | |
2871 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2872 | -#: apt-ftparchive.1.xml:171 |
2873 | +#: apt-ftparchive.1.xml:172 |
2874 | msgid "OverrideDir" |
2875 | msgstr "" |
2876 | |
2877 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2878 | -#: apt-ftparchive.1.xml:173 |
2879 | +#: apt-ftparchive.1.xml:174 |
2880 | msgid "Specifies the location of the override files." |
2881 | msgstr "" |
2882 | |
2883 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2884 | -#: apt-ftparchive.1.xml:176 |
2885 | +#: apt-ftparchive.1.xml:177 |
2886 | msgid "CacheDir" |
2887 | msgstr "" |
2888 | |
2889 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2890 | -#: apt-ftparchive.1.xml:178 |
2891 | +#: apt-ftparchive.1.xml:179 |
2892 | msgid "Specifies the location of the cache files" |
2893 | msgstr "" |
2894 | |
2895 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2896 | -#: apt-ftparchive.1.xml:181 |
2897 | +#: apt-ftparchive.1.xml:182 |
2898 | msgid "FileListDir" |
2899 | msgstr "" |
2900 | |
2901 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2902 | -#: apt-ftparchive.1.xml:183 |
2903 | +#: apt-ftparchive.1.xml:184 |
2904 | msgid "" |
2905 | "Specifies the location of the file list files, if the " |
2906 | "<literal>FileList</literal> setting is used below." |
2907 | msgstr "" |
2908 | |
2909 | #. type: Content of: <refentry><refsect1><refsect2><title> |
2910 | -#: apt-ftparchive.1.xml:189 |
2911 | +#: apt-ftparchive.1.xml:190 |
2912 | msgid "Default Section" |
2913 | msgstr "" |
2914 | |
2915 | #. type: Content of: <refentry><refsect1><refsect2><para> |
2916 | -#: apt-ftparchive.1.xml:191 |
2917 | +#: apt-ftparchive.1.xml:192 |
2918 | msgid "" |
2919 | "The <literal>Default</literal> section specifies default values, and " |
2920 | "settings that control the operation of the generator. Other sections may " |
2921 | @@ -2164,12 +2165,12 @@ |
2922 | msgstr "" |
2923 | |
2924 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2925 | -#: apt-ftparchive.1.xml:195 |
2926 | +#: apt-ftparchive.1.xml:196 |
2927 | msgid "Packages::Compress" |
2928 | msgstr "" |
2929 | |
2930 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2931 | -#: apt-ftparchive.1.xml:197 |
2932 | +#: apt-ftparchive.1.xml:198 |
2933 | msgid "" |
2934 | "Sets the default compression schemes to use for the Package index files. It " |
2935 | "is a string that contains a space separated list of at least one of: '.' (no " |
2936 | @@ -2178,60 +2179,60 @@ |
2937 | msgstr "" |
2938 | |
2939 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2940 | -#: apt-ftparchive.1.xml:203 |
2941 | +#: apt-ftparchive.1.xml:204 |
2942 | msgid "Packages::Extensions" |
2943 | msgstr "" |
2944 | |
2945 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2946 | -#: apt-ftparchive.1.xml:205 |
2947 | +#: apt-ftparchive.1.xml:206 |
2948 | msgid "" |
2949 | "Sets the default list of file extensions that are package files. This " |
2950 | "defaults to '.deb'." |
2951 | msgstr "" |
2952 | |
2953 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2954 | -#: apt-ftparchive.1.xml:209 |
2955 | +#: apt-ftparchive.1.xml:210 |
2956 | msgid "Sources::Compress" |
2957 | msgstr "" |
2958 | |
2959 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2960 | -#: apt-ftparchive.1.xml:211 |
2961 | +#: apt-ftparchive.1.xml:212 |
2962 | msgid "" |
2963 | "This is similar to <literal>Packages::Compress</literal> except that it " |
2964 | "controls the compression for the Sources files." |
2965 | msgstr "" |
2966 | |
2967 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2968 | -#: apt-ftparchive.1.xml:215 |
2969 | +#: apt-ftparchive.1.xml:216 |
2970 | msgid "Sources::Extensions" |
2971 | msgstr "" |
2972 | |
2973 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2974 | -#: apt-ftparchive.1.xml:217 |
2975 | +#: apt-ftparchive.1.xml:218 |
2976 | msgid "" |
2977 | "Sets the default list of file extensions that are source files. This " |
2978 | "defaults to '.dsc'." |
2979 | msgstr "" |
2980 | |
2981 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2982 | -#: apt-ftparchive.1.xml:221 |
2983 | +#: apt-ftparchive.1.xml:222 |
2984 | msgid "Contents::Compress" |
2985 | msgstr "" |
2986 | |
2987 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
2988 | -#: apt-ftparchive.1.xml:223 |
2989 | +#: apt-ftparchive.1.xml:224 |
2990 | msgid "" |
2991 | "This is similar to <literal>Packages::Compress</literal> except that it " |
2992 | "controls the compression for the Contents files." |
2993 | msgstr "" |
2994 | |
2995 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
2996 | -#: apt-ftparchive.1.xml:227 |
2997 | +#: apt-ftparchive.1.xml:228 |
2998 | msgid "DeLinkLimit" |
2999 | msgstr "" |
3000 | |
3001 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3002 | -#: apt-ftparchive.1.xml:229 |
3003 | +#: apt-ftparchive.1.xml:230 |
3004 | msgid "" |
3005 | "Specifies the number of kilobytes to delink (and replace with hard links) " |
3006 | "per run. This is used in conjunction with the per-section " |
3007 | @@ -2239,24 +2240,24 @@ |
3008 | msgstr "" |
3009 | |
3010 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3011 | -#: apt-ftparchive.1.xml:234 |
3012 | +#: apt-ftparchive.1.xml:235 |
3013 | msgid "FileMode" |
3014 | msgstr "" |
3015 | |
3016 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3017 | -#: apt-ftparchive.1.xml:236 |
3018 | +#: apt-ftparchive.1.xml:237 |
3019 | msgid "" |
3020 | "Specifies the mode of all created index files. It defaults to 0644. All " |
3021 | "index files are set to this mode with no regard to the umask." |
3022 | msgstr "" |
3023 | |
3024 | #. type: Content of: <refentry><refsect1><refsect2><title> |
3025 | -#: apt-ftparchive.1.xml:243 |
3026 | +#: apt-ftparchive.1.xml:244 |
3027 | msgid "TreeDefault Section" |
3028 | msgstr "" |
3029 | |
3030 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3031 | -#: apt-ftparchive.1.xml:245 |
3032 | +#: apt-ftparchive.1.xml:246 |
3033 | msgid "" |
3034 | "Sets defaults specific to <literal>Tree</literal> sections. All of these " |
3035 | "variables are substitution variables and have the strings $(DIST), " |
3036 | @@ -2264,12 +2265,12 @@ |
3037 | msgstr "" |
3038 | |
3039 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3040 | -#: apt-ftparchive.1.xml:250 |
3041 | +#: apt-ftparchive.1.xml:251 |
3042 | msgid "MaxContentsChange" |
3043 | msgstr "" |
3044 | |
3045 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3046 | -#: apt-ftparchive.1.xml:252 |
3047 | +#: apt-ftparchive.1.xml:253 |
3048 | msgid "" |
3049 | "Sets the number of kilobytes of contents files that are generated each " |
3050 | "day. The contents files are round-robined so that over several days they " |
3051 | @@ -2277,12 +2278,12 @@ |
3052 | msgstr "" |
3053 | |
3054 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3055 | -#: apt-ftparchive.1.xml:257 |
3056 | +#: apt-ftparchive.1.xml:258 |
3057 | msgid "ContentsAge" |
3058 | msgstr "" |
3059 | |
3060 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3061 | -#: apt-ftparchive.1.xml:259 |
3062 | +#: apt-ftparchive.1.xml:260 |
3063 | msgid "" |
3064 | "Controls the number of days a contents file is allowed to be checked without " |
3065 | "changing. If this limit is passed the mtime of the contents file is " |
3066 | @@ -2293,60 +2294,60 @@ |
3067 | msgstr "" |
3068 | |
3069 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3070 | -#: apt-ftparchive.1.xml:268 |
3071 | +#: apt-ftparchive.1.xml:269 |
3072 | msgid "Directory" |
3073 | msgstr "" |
3074 | |
3075 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3076 | -#: apt-ftparchive.1.xml:270 |
3077 | +#: apt-ftparchive.1.xml:271 |
3078 | msgid "" |
3079 | "Sets the top of the .deb directory tree. Defaults to " |
3080 | "<filename>$(DIST)/$(SECTION)/binary-$(ARCH)/</filename>" |
3081 | msgstr "" |
3082 | |
3083 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3084 | -#: apt-ftparchive.1.xml:274 |
3085 | +#: apt-ftparchive.1.xml:275 |
3086 | msgid "SrcDirectory" |
3087 | msgstr "" |
3088 | |
3089 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3090 | -#: apt-ftparchive.1.xml:276 |
3091 | +#: apt-ftparchive.1.xml:277 |
3092 | msgid "" |
3093 | "Sets the top of the source package directory tree. Defaults to " |
3094 | "<filename>$(DIST)/$(SECTION)/source/</filename>" |
3095 | msgstr "" |
3096 | |
3097 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3098 | -#: apt-ftparchive.1.xml:280 apt-ftparchive.1.xml:406 |
3099 | +#: apt-ftparchive.1.xml:281 apt-ftparchive.1.xml:407 |
3100 | msgid "Packages" |
3101 | msgstr "" |
3102 | |
3103 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3104 | -#: apt-ftparchive.1.xml:282 |
3105 | +#: apt-ftparchive.1.xml:283 |
3106 | msgid "" |
3107 | "Sets the output Packages file. Defaults to " |
3108 | "<filename>$(DIST)/$(SECTION)/binary-$(ARCH)/Packages</filename>" |
3109 | msgstr "" |
3110 | |
3111 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3112 | -#: apt-ftparchive.1.xml:286 apt-ftparchive.1.xml:411 |
3113 | +#: apt-ftparchive.1.xml:287 apt-ftparchive.1.xml:412 |
3114 | msgid "Sources" |
3115 | msgstr "" |
3116 | |
3117 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3118 | -#: apt-ftparchive.1.xml:288 |
3119 | +#: apt-ftparchive.1.xml:289 |
3120 | msgid "" |
3121 | "Sets the output Sources file. Defaults to " |
3122 | "<filename>$(DIST)/$(SECTION)/source/Sources</filename>" |
3123 | msgstr "" |
3124 | |
3125 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3126 | -#: apt-ftparchive.1.xml:292 |
3127 | +#: apt-ftparchive.1.xml:293 |
3128 | msgid "InternalPrefix" |
3129 | msgstr "" |
3130 | |
3131 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3132 | -#: apt-ftparchive.1.xml:294 |
3133 | +#: apt-ftparchive.1.xml:295 |
3134 | msgid "" |
3135 | "Sets the path prefix that causes a symlink to be considered an internal link " |
3136 | "instead of an external link. Defaults to " |
3137 | @@ -2354,12 +2355,12 @@ |
3138 | msgstr "" |
3139 | |
3140 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3141 | -#: apt-ftparchive.1.xml:299 apt-ftparchive.1.xml:417 |
3142 | +#: apt-ftparchive.1.xml:300 apt-ftparchive.1.xml:418 |
3143 | msgid "Contents" |
3144 | msgstr "" |
3145 | |
3146 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3147 | -#: apt-ftparchive.1.xml:301 |
3148 | +#: apt-ftparchive.1.xml:302 |
3149 | msgid "" |
3150 | "Sets the output Contents file. Defaults to " |
3151 | "<filename>$(DIST)/Contents-$(ARCH)</filename>. If this setting causes " |
3152 | @@ -2369,34 +2370,34 @@ |
3153 | msgstr "" |
3154 | |
3155 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3156 | -#: apt-ftparchive.1.xml:308 |
3157 | +#: apt-ftparchive.1.xml:309 |
3158 | msgid "Contents::Header" |
3159 | msgstr "" |
3160 | |
3161 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3162 | -#: apt-ftparchive.1.xml:310 |
3163 | +#: apt-ftparchive.1.xml:311 |
3164 | msgid "Sets header file to prepend to the contents output." |
3165 | msgstr "" |
3166 | |
3167 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3168 | -#: apt-ftparchive.1.xml:313 apt-ftparchive.1.xml:442 |
3169 | +#: apt-ftparchive.1.xml:314 apt-ftparchive.1.xml:443 |
3170 | msgid "BinCacheDB" |
3171 | msgstr "" |
3172 | |
3173 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3174 | -#: apt-ftparchive.1.xml:315 |
3175 | +#: apt-ftparchive.1.xml:316 |
3176 | msgid "" |
3177 | "Sets the binary cache database to use for this section. Multiple sections " |
3178 | "can share the same database." |
3179 | msgstr "" |
3180 | |
3181 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3182 | -#: apt-ftparchive.1.xml:319 |
3183 | +#: apt-ftparchive.1.xml:320 |
3184 | msgid "FileList" |
3185 | msgstr "" |
3186 | |
3187 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3188 | -#: apt-ftparchive.1.xml:321 |
3189 | +#: apt-ftparchive.1.xml:322 |
3190 | msgid "" |
3191 | "Specifies that instead of walking the directory tree, " |
3192 | "<command>apt-ftparchive</command> should read the list of files from the " |
3193 | @@ -2404,12 +2405,12 @@ |
3194 | msgstr "" |
3195 | |
3196 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3197 | -#: apt-ftparchive.1.xml:326 |
3198 | +#: apt-ftparchive.1.xml:327 |
3199 | msgid "SourceFileList" |
3200 | msgstr "" |
3201 | |
3202 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3203 | -#: apt-ftparchive.1.xml:328 |
3204 | +#: apt-ftparchive.1.xml:329 |
3205 | msgid "" |
3206 | "Specifies that instead of walking the directory tree, " |
3207 | "<command>apt-ftparchive</command> should read the list of files from the " |
3208 | @@ -2418,12 +2419,12 @@ |
3209 | msgstr "" |
3210 | |
3211 | #. type: Content of: <refentry><refsect1><refsect2><title> |
3212 | -#: apt-ftparchive.1.xml:336 |
3213 | +#: apt-ftparchive.1.xml:337 |
3214 | msgid "Tree Section" |
3215 | msgstr "" |
3216 | |
3217 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3218 | -#: apt-ftparchive.1.xml:338 |
3219 | +#: apt-ftparchive.1.xml:339 |
3220 | msgid "" |
3221 | "The <literal>Tree</literal> section defines a standard Debian file tree " |
3222 | "which consists of a base directory, then multiple sections in that base " |
3223 | @@ -2433,7 +2434,7 @@ |
3224 | msgstr "" |
3225 | |
3226 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3227 | -#: apt-ftparchive.1.xml:343 |
3228 | +#: apt-ftparchive.1.xml:344 |
3229 | msgid "" |
3230 | "The <literal>Tree</literal> section takes a scope tag which sets the " |
3231 | "<literal>$(DIST)</literal> variable and defines the root of the tree (the " |
3232 | @@ -2442,7 +2443,7 @@ |
3233 | msgstr "" |
3234 | |
3235 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3236 | -#: apt-ftparchive.1.xml:348 |
3237 | +#: apt-ftparchive.1.xml:349 |
3238 | msgid "" |
3239 | "All of the settings defined in the <literal>TreeDefault</literal> section " |
3240 | "can be use in a <literal>Tree</literal> section as well as three new " |
3241 | @@ -2450,7 +2451,7 @@ |
3242 | msgstr "" |
3243 | |
3244 | #. type: Content of: <refentry><refsect1><refsect2><para><programlisting> |
3245 | -#: apt-ftparchive.1.xml:354 |
3246 | +#: apt-ftparchive.1.xml:355 |
3247 | #, no-wrap |
3248 | msgid "" |
3249 | "for i in Sections do \n" |
3250 | @@ -2460,7 +2461,7 @@ |
3251 | msgstr "" |
3252 | |
3253 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3254 | -#: apt-ftparchive.1.xml:351 |
3255 | +#: apt-ftparchive.1.xml:352 |
3256 | msgid "" |
3257 | "When processing a <literal>Tree</literal> section " |
3258 | "<command>apt-ftparchive</command> performs an operation similar to: " |
3259 | @@ -2468,12 +2469,12 @@ |
3260 | msgstr "" |
3261 | |
3262 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3263 | -#: apt-ftparchive.1.xml:360 |
3264 | +#: apt-ftparchive.1.xml:361 |
3265 | msgid "Sections" |
3266 | msgstr "" |
3267 | |
3268 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3269 | -#: apt-ftparchive.1.xml:362 |
3270 | +#: apt-ftparchive.1.xml:363 |
3271 | msgid "" |
3272 | "This is a space separated list of sections which appear under the " |
3273 | "distribution, typically this is something like <literal>main contrib " |
3274 | @@ -2481,12 +2482,12 @@ |
3275 | msgstr "" |
3276 | |
3277 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3278 | -#: apt-ftparchive.1.xml:367 |
3279 | +#: apt-ftparchive.1.xml:368 |
3280 | msgid "Architectures" |
3281 | msgstr "" |
3282 | |
3283 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3284 | -#: apt-ftparchive.1.xml:369 |
3285 | +#: apt-ftparchive.1.xml:370 |
3286 | msgid "" |
3287 | "This is a space separated list of all the architectures that appear under " |
3288 | "search section. The special architecture 'source' is used to indicate that " |
3289 | @@ -2494,56 +2495,56 @@ |
3290 | msgstr "" |
3291 | |
3292 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3293 | -#: apt-ftparchive.1.xml:374 apt-ftparchive.1.xml:422 |
3294 | +#: apt-ftparchive.1.xml:375 apt-ftparchive.1.xml:423 |
3295 | msgid "BinOverride" |
3296 | msgstr "" |
3297 | |
3298 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3299 | -#: apt-ftparchive.1.xml:376 |
3300 | +#: apt-ftparchive.1.xml:377 |
3301 | msgid "" |
3302 | "Sets the binary override file. The override file contains section, priority " |
3303 | "and maintainer address information." |
3304 | msgstr "" |
3305 | |
3306 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3307 | -#: apt-ftparchive.1.xml:380 apt-ftparchive.1.xml:427 |
3308 | +#: apt-ftparchive.1.xml:381 apt-ftparchive.1.xml:428 |
3309 | msgid "SrcOverride" |
3310 | msgstr "" |
3311 | |
3312 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3313 | -#: apt-ftparchive.1.xml:382 |
3314 | +#: apt-ftparchive.1.xml:383 |
3315 | msgid "" |
3316 | "Sets the source override file. The override file contains section " |
3317 | "information." |
3318 | msgstr "" |
3319 | |
3320 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3321 | -#: apt-ftparchive.1.xml:386 apt-ftparchive.1.xml:432 |
3322 | +#: apt-ftparchive.1.xml:387 apt-ftparchive.1.xml:433 |
3323 | msgid "ExtraOverride" |
3324 | msgstr "" |
3325 | |
3326 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3327 | -#: apt-ftparchive.1.xml:388 apt-ftparchive.1.xml:434 |
3328 | +#: apt-ftparchive.1.xml:389 apt-ftparchive.1.xml:435 |
3329 | msgid "Sets the binary extra override file." |
3330 | msgstr "" |
3331 | |
3332 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3333 | -#: apt-ftparchive.1.xml:391 apt-ftparchive.1.xml:437 |
3334 | +#: apt-ftparchive.1.xml:392 apt-ftparchive.1.xml:438 |
3335 | msgid "SrcExtraOverride" |
3336 | msgstr "" |
3337 | |
3338 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3339 | -#: apt-ftparchive.1.xml:393 apt-ftparchive.1.xml:439 |
3340 | +#: apt-ftparchive.1.xml:394 apt-ftparchive.1.xml:440 |
3341 | msgid "Sets the source extra override file." |
3342 | msgstr "" |
3343 | |
3344 | #. type: Content of: <refentry><refsect1><refsect2><title> |
3345 | -#: apt-ftparchive.1.xml:398 |
3346 | +#: apt-ftparchive.1.xml:399 |
3347 | msgid "BinDirectory Section" |
3348 | msgstr "" |
3349 | |
3350 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3351 | -#: apt-ftparchive.1.xml:400 |
3352 | +#: apt-ftparchive.1.xml:401 |
3353 | msgid "" |
3354 | "The <literal>bindirectory</literal> section defines a binary directory tree " |
3355 | "with no special structure. The scope tag specifies the location of the " |
3356 | @@ -2553,64 +2554,64 @@ |
3357 | msgstr "" |
3358 | |
3359 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3360 | -#: apt-ftparchive.1.xml:408 |
3361 | +#: apt-ftparchive.1.xml:409 |
3362 | msgid "Sets the Packages file output." |
3363 | msgstr "" |
3364 | |
3365 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3366 | -#: apt-ftparchive.1.xml:413 |
3367 | +#: apt-ftparchive.1.xml:414 |
3368 | msgid "" |
3369 | "Sets the Sources file output. At least one of <literal>Packages</literal> or " |
3370 | "<literal>Sources</literal> is required." |
3371 | msgstr "" |
3372 | |
3373 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3374 | -#: apt-ftparchive.1.xml:419 |
3375 | +#: apt-ftparchive.1.xml:420 |
3376 | msgid "Sets the Contents file output. (optional)" |
3377 | msgstr "" |
3378 | |
3379 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3380 | -#: apt-ftparchive.1.xml:424 |
3381 | +#: apt-ftparchive.1.xml:425 |
3382 | msgid "Sets the binary override file." |
3383 | msgstr "" |
3384 | |
3385 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3386 | -#: apt-ftparchive.1.xml:429 |
3387 | +#: apt-ftparchive.1.xml:430 |
3388 | msgid "Sets the source override file." |
3389 | msgstr "" |
3390 | |
3391 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3392 | -#: apt-ftparchive.1.xml:444 |
3393 | +#: apt-ftparchive.1.xml:445 |
3394 | msgid "Sets the cache DB." |
3395 | msgstr "" |
3396 | |
3397 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3398 | -#: apt-ftparchive.1.xml:447 |
3399 | +#: apt-ftparchive.1.xml:448 |
3400 | msgid "PathPrefix" |
3401 | msgstr "" |
3402 | |
3403 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3404 | -#: apt-ftparchive.1.xml:449 |
3405 | +#: apt-ftparchive.1.xml:450 |
3406 | msgid "Appends a path to all the output paths." |
3407 | msgstr "" |
3408 | |
3409 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3410 | -#: apt-ftparchive.1.xml:452 |
3411 | +#: apt-ftparchive.1.xml:453 |
3412 | msgid "FileList, SourceFileList" |
3413 | msgstr "" |
3414 | |
3415 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3416 | -#: apt-ftparchive.1.xml:454 |
3417 | +#: apt-ftparchive.1.xml:455 |
3418 | msgid "Specifies the file list file." |
3419 | msgstr "" |
3420 | |
3421 | #. type: Content of: <refentry><refsect1><title> |
3422 | -#: apt-ftparchive.1.xml:461 |
3423 | +#: apt-ftparchive.1.xml:462 |
3424 | msgid "The Binary Override File" |
3425 | msgstr "" |
3426 | |
3427 | #. type: Content of: <refentry><refsect1><para> |
3428 | -#: apt-ftparchive.1.xml:462 |
3429 | +#: apt-ftparchive.1.xml:463 |
3430 | msgid "" |
3431 | "The binary override file is fully compatible with &dpkg-scanpackages;. It " |
3432 | "contains 4 fields separated by spaces. The first field is the package name, " |
3433 | @@ -2620,19 +2621,19 @@ |
3434 | msgstr "" |
3435 | |
3436 | #. type: Content of: <refentry><refsect1><para><literallayout> |
3437 | -#: apt-ftparchive.1.xml:468 |
3438 | +#: apt-ftparchive.1.xml:469 |
3439 | #, no-wrap |
3440 | msgid "old [// oldn]* => new" |
3441 | msgstr "" |
3442 | |
3443 | #. type: Content of: <refentry><refsect1><para><literallayout> |
3444 | -#: apt-ftparchive.1.xml:470 |
3445 | +#: apt-ftparchive.1.xml:471 |
3446 | #, no-wrap |
3447 | msgid "new" |
3448 | msgstr "" |
3449 | |
3450 | #. type: Content of: <refentry><refsect1><para> |
3451 | -#: apt-ftparchive.1.xml:467 |
3452 | +#: apt-ftparchive.1.xml:468 |
3453 | msgid "" |
3454 | "The general form of the maintainer field is: <placeholder " |
3455 | "type=\"literallayout\" id=\"0\"/> or simply, <placeholder " |
3456 | @@ -2643,12 +2644,12 @@ |
3457 | msgstr "" |
3458 | |
3459 | #. type: Content of: <refentry><refsect1><title> |
3460 | -#: apt-ftparchive.1.xml:478 |
3461 | +#: apt-ftparchive.1.xml:479 |
3462 | msgid "The Source Override File" |
3463 | msgstr "" |
3464 | |
3465 | #. type: Content of: <refentry><refsect1><para> |
3466 | -#: apt-ftparchive.1.xml:480 |
3467 | +#: apt-ftparchive.1.xml:481 |
3468 | msgid "" |
3469 | "The source override file is fully compatible with &dpkg-scansources;. It " |
3470 | "contains 2 fields separated by spaces. The first fields is the source " |
3471 | @@ -2656,12 +2657,12 @@ |
3472 | msgstr "" |
3473 | |
3474 | #. type: Content of: <refentry><refsect1><title> |
3475 | -#: apt-ftparchive.1.xml:485 |
3476 | +#: apt-ftparchive.1.xml:486 |
3477 | msgid "The Extra Override File" |
3478 | msgstr "" |
3479 | |
3480 | #. type: Content of: <refentry><refsect1><para> |
3481 | -#: apt-ftparchive.1.xml:487 |
3482 | +#: apt-ftparchive.1.xml:488 |
3483 | msgid "" |
3484 | "The extra override file allows any arbitrary tag to be added or replaced in " |
3485 | "the output. It has 3 columns, the first is the package, the second is the " |
3486 | @@ -2669,12 +2670,12 @@ |
3487 | msgstr "" |
3488 | |
3489 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3490 | -#: apt-ftparchive.1.xml:496 |
3491 | +#: apt-ftparchive.1.xml:497 |
3492 | msgid "<option>--md5</option>" |
3493 | msgstr "" |
3494 | |
3495 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3496 | -#: apt-ftparchive.1.xml:498 |
3497 | +#: apt-ftparchive.1.xml:499 |
3498 | msgid "" |
3499 | "Generate MD5 sums. This defaults to on, when turned off the generated index " |
3500 | "files will not have MD5Sum fields where possible. Configuration Item: " |
3501 | @@ -2682,19 +2683,19 @@ |
3502 | msgstr "" |
3503 | |
3504 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3505 | -#: apt-ftparchive.1.xml:503 |
3506 | +#: apt-ftparchive.1.xml:504 |
3507 | msgid "<option>--db</option>" |
3508 | msgstr "" |
3509 | |
3510 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3511 | -#: apt-ftparchive.1.xml:505 |
3512 | +#: apt-ftparchive.1.xml:506 |
3513 | msgid "" |
3514 | "Use a binary caching DB. This has no effect on the generate command. " |
3515 | "Configuration Item: <literal>APT::FTPArchive::DB</literal>." |
3516 | msgstr "" |
3517 | |
3518 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3519 | -#: apt-ftparchive.1.xml:511 |
3520 | +#: apt-ftparchive.1.xml:512 |
3521 | msgid "" |
3522 | "Quiet; produces output suitable for logging, omitting progress indicators. " |
3523 | "More q's will produce more quiet up to a maximum of 2. You can also use " |
3524 | @@ -2703,12 +2704,12 @@ |
3525 | msgstr "" |
3526 | |
3527 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3528 | -#: apt-ftparchive.1.xml:517 |
3529 | +#: apt-ftparchive.1.xml:518 |
3530 | msgid "<option>--delink</option>" |
3531 | msgstr "" |
3532 | |
3533 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3534 | -#: apt-ftparchive.1.xml:519 |
3535 | +#: apt-ftparchive.1.xml:520 |
3536 | msgid "" |
3537 | "Perform Delinking. If the <literal>External-Links</literal> setting is used " |
3538 | "then this option actually enables delinking of the files. It defaults to on " |
3539 | @@ -2717,12 +2718,12 @@ |
3540 | msgstr "" |
3541 | |
3542 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3543 | -#: apt-ftparchive.1.xml:525 |
3544 | +#: apt-ftparchive.1.xml:526 |
3545 | msgid "<option>--contents</option>" |
3546 | msgstr "" |
3547 | |
3548 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3549 | -#: apt-ftparchive.1.xml:527 |
3550 | +#: apt-ftparchive.1.xml:528 |
3551 | msgid "" |
3552 | "Perform contents generation. When this option is set and package indexes are " |
3553 | "being generated with a cache DB then the file listing will also be extracted " |
3554 | @@ -2732,12 +2733,12 @@ |
3555 | msgstr "" |
3556 | |
3557 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3558 | -#: apt-ftparchive.1.xml:535 |
3559 | +#: apt-ftparchive.1.xml:536 |
3560 | msgid "<option>--source-override</option>" |
3561 | msgstr "" |
3562 | |
3563 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3564 | -#: apt-ftparchive.1.xml:537 |
3565 | +#: apt-ftparchive.1.xml:538 |
3566 | msgid "" |
3567 | "Select the source override file to use with the <literal>sources</literal> " |
3568 | "command. Configuration Item: " |
3569 | @@ -2745,26 +2746,40 @@ |
3570 | msgstr "" |
3571 | |
3572 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3573 | -#: apt-ftparchive.1.xml:541 |
3574 | +#: apt-ftparchive.1.xml:542 |
3575 | msgid "<option>--readonly</option>" |
3576 | msgstr "" |
3577 | |
3578 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3579 | -#: apt-ftparchive.1.xml:543 |
3580 | +#: apt-ftparchive.1.xml:544 |
3581 | msgid "" |
3582 | "Make the caching databases read only. Configuration Item: " |
3583 | "<literal>APT::FTPArchive::ReadOnlyDB</literal>." |
3584 | msgstr "" |
3585 | |
3586 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3587 | -#: apt-ftparchive.1.xml:547 |
3588 | +#: apt-ftparchive.1.xml:548 |
3589 | +msgid "<option>--arch</option>" |
3590 | +msgstr "" |
3591 | + |
3592 | +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3593 | +#: apt-ftparchive.1.xml:549 |
3594 | +msgid "" |
3595 | +"Accept in the <literal>packages</literal> and <literal>contents</literal> " |
3596 | +"commands only package files matching <literal>*_arch.deb</literal> or " |
3597 | +"<literal>*_all.deb</literal> instead of all package files in the given " |
3598 | +"path. Configuration Item: <literal>APT::FTPArchive::Architecture</literal>." |
3599 | +msgstr "" |
3600 | + |
3601 | +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3602 | +#: apt-ftparchive.1.xml:555 |
3603 | msgid "<option>APT::FTPArchive::AlwaysStat</option>" |
3604 | msgstr "" |
3605 | |
3606 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3607 | -#: apt-ftparchive.1.xml:549 |
3608 | +#: apt-ftparchive.1.xml:557 |
3609 | msgid "" |
3610 | -"&apt-ftparchive; caches as much as possible of metadata in it is cachedb. If " |
3611 | +"&apt-ftparchive; caches as much as possible of metadata in a cachedb. If " |
3612 | "packages are recompiled and/or republished with the same version again, this " |
3613 | "will lead to problems as the now outdated cached metadata like size and " |
3614 | "checksums will be used. With this option enabled this will no longer happen " |
3615 | @@ -2776,12 +2791,12 @@ |
3616 | msgstr "" |
3617 | |
3618 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3619 | -#: apt-ftparchive.1.xml:559 |
3620 | +#: apt-ftparchive.1.xml:567 |
3621 | msgid "<option>APT::FTPArchive::LongDescription</option>" |
3622 | msgstr "" |
3623 | |
3624 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3625 | -#: apt-ftparchive.1.xml:561 |
3626 | +#: apt-ftparchive.1.xml:569 |
3627 | msgid "" |
3628 | "This configuration option defaults to \"<literal>true</literal>\" and should " |
3629 | "only be set to <literal>\"false\"</literal> if the Archive generated with " |
3630 | @@ -2791,12 +2806,12 @@ |
3631 | msgstr "" |
3632 | |
3633 | #. type: Content of: <refentry><refsect1><title> |
3634 | -#: apt-ftparchive.1.xml:573 apt.conf.5.xml:1029 apt_preferences.5.xml:469 sources.list.5.xml:193 |
3635 | +#: apt-ftparchive.1.xml:581 apt.conf.5.xml:1038 apt_preferences.5.xml:477 sources.list.5.xml:193 |
3636 | msgid "Examples" |
3637 | msgstr "" |
3638 | |
3639 | #. type: Content of: <refentry><refsect1><para><programlisting> |
3640 | -#: apt-ftparchive.1.xml:579 |
3641 | +#: apt-ftparchive.1.xml:587 |
3642 | #, no-wrap |
3643 | msgid "" |
3644 | "<command>apt-ftparchive</command> packages " |
3645 | @@ -2805,14 +2820,14 @@ |
3646 | msgstr "" |
3647 | |
3648 | #. type: Content of: <refentry><refsect1><para> |
3649 | -#: apt-ftparchive.1.xml:575 |
3650 | +#: apt-ftparchive.1.xml:583 |
3651 | msgid "" |
3652 | "To create a compressed Packages file for a directory containing binary " |
3653 | "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>" |
3654 | msgstr "" |
3655 | |
3656 | #. type: Content of: <refentry><refsect1><para> |
3657 | -#: apt-ftparchive.1.xml:589 |
3658 | +#: apt-ftparchive.1.xml:597 |
3659 | msgid "" |
3660 | "<command>apt-ftparchive</command> returns zero on normal operation, decimal " |
3661 | "100 on error." |
3662 | @@ -5028,11 +5043,25 @@ |
3663 | |
3664 | #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><term> |
3665 | #: apt.conf.5.xml:414 |
3666 | +msgid "GzipIndexes" |
3667 | +msgstr "" |
3668 | + |
3669 | +#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para> |
3670 | +#: apt.conf.5.xml:416 |
3671 | +msgid "" |
3672 | +"When downloading <literal>gzip</literal> compressed indexes (Packages, " |
3673 | +"Sources, or Translations), keep them gzip compressed locally instead of " |
3674 | +"unpacking them. This saves quite a lot of disk space at the expense of more " |
3675 | +"CPU requirements when building the local package caches. False by default." |
3676 | +msgstr "" |
3677 | + |
3678 | +#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><term> |
3679 | +#: apt.conf.5.xml:423 |
3680 | msgid "Languages" |
3681 | msgstr "" |
3682 | |
3683 | #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para> |
3684 | -#: apt.conf.5.xml:415 |
3685 | +#: apt.conf.5.xml:424 |
3686 | msgid "" |
3687 | "The Languages subsection controls which <filename>Translation</filename> " |
3688 | "files are downloaded and in which order APT tries to display the " |
3689 | @@ -5045,13 +5074,13 @@ |
3690 | msgstr "" |
3691 | |
3692 | #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para><programlisting> |
3693 | -#: apt.conf.5.xml:431 |
3694 | +#: apt.conf.5.xml:440 |
3695 | #, no-wrap |
3696 | msgid "Acquire::Languages { \"environment\"; \"de\"; \"en\"; \"none\"; \"fr\"; };" |
3697 | msgstr "" |
3698 | |
3699 | #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para> |
3700 | -#: apt.conf.5.xml:421 |
3701 | +#: apt.conf.5.xml:430 |
3702 | msgid "" |
3703 | "The default list includes \"environment\" and " |
3704 | "\"en\". \"<literal>environment</literal>\" has a special meaning here: It " |
3705 | @@ -5082,12 +5111,12 @@ |
3706 | msgstr "" |
3707 | |
3708 | #. type: Content of: <refentry><refsect1><title> |
3709 | -#: apt.conf.5.xml:438 |
3710 | +#: apt.conf.5.xml:447 |
3711 | msgid "Directories" |
3712 | msgstr "" |
3713 | |
3714 | #. type: Content of: <refentry><refsect1><para> |
3715 | -#: apt.conf.5.xml:440 |
3716 | +#: apt.conf.5.xml:449 |
3717 | msgid "" |
3718 | "The <literal>Dir::State</literal> section has directories that pertain to " |
3719 | "local state information. <literal>lists</literal> is the directory to place " |
3720 | @@ -5099,7 +5128,7 @@ |
3721 | msgstr "" |
3722 | |
3723 | #. type: Content of: <refentry><refsect1><para> |
3724 | -#: apt.conf.5.xml:447 |
3725 | +#: apt.conf.5.xml:456 |
3726 | msgid "" |
3727 | "<literal>Dir::Cache</literal> contains locations pertaining to local cache " |
3728 | "information, such as the two package caches <literal>srcpkgcache</literal> " |
3729 | @@ -5112,7 +5141,7 @@ |
3730 | msgstr "" |
3731 | |
3732 | #. type: Content of: <refentry><refsect1><para> |
3733 | -#: apt.conf.5.xml:456 |
3734 | +#: apt.conf.5.xml:465 |
3735 | msgid "" |
3736 | "<literal>Dir::Etc</literal> contains the location of configuration files, " |
3737 | "<literal>sourcelist</literal> gives the location of the sourcelist and " |
3738 | @@ -5122,7 +5151,7 @@ |
3739 | msgstr "" |
3740 | |
3741 | #. type: Content of: <refentry><refsect1><para> |
3742 | -#: apt.conf.5.xml:462 |
3743 | +#: apt.conf.5.xml:471 |
3744 | msgid "" |
3745 | "The <literal>Dir::Parts</literal> setting reads in all the config fragments " |
3746 | "in lexical order from the directory specified. After this is done then the " |
3747 | @@ -5130,7 +5159,7 @@ |
3748 | msgstr "" |
3749 | |
3750 | #. type: Content of: <refentry><refsect1><para> |
3751 | -#: apt.conf.5.xml:466 |
3752 | +#: apt.conf.5.xml:475 |
3753 | msgid "" |
3754 | "Binary programs are pointed to by " |
3755 | "<literal>Dir::Bin</literal>. <literal>Dir::Bin::Methods</literal> specifies " |
3756 | @@ -5142,7 +5171,7 @@ |
3757 | msgstr "" |
3758 | |
3759 | #. type: Content of: <refentry><refsect1><para> |
3760 | -#: apt.conf.5.xml:474 |
3761 | +#: apt.conf.5.xml:483 |
3762 | msgid "" |
3763 | "The configuration item <literal>RootDir</literal> has a special meaning. If " |
3764 | "set, all paths in <literal>Dir::</literal> will be relative to " |
3765 | @@ -5155,12 +5184,12 @@ |
3766 | msgstr "" |
3767 | |
3768 | #. type: Content of: <refentry><refsect1><title> |
3769 | -#: apt.conf.5.xml:487 |
3770 | +#: apt.conf.5.xml:496 |
3771 | msgid "APT in DSelect" |
3772 | msgstr "" |
3773 | |
3774 | #. type: Content of: <refentry><refsect1><para> |
3775 | -#: apt.conf.5.xml:489 |
3776 | +#: apt.conf.5.xml:498 |
3777 | msgid "" |
3778 | "When APT is used as a &dselect; method several configuration directives " |
3779 | "control the default behaviour. These are in the <literal>DSelect</literal> " |
3780 | @@ -5168,12 +5197,12 @@ |
3781 | msgstr "" |
3782 | |
3783 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3784 | -#: apt.conf.5.xml:493 |
3785 | +#: apt.conf.5.xml:502 |
3786 | msgid "Clean" |
3787 | msgstr "" |
3788 | |
3789 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3790 | -#: apt.conf.5.xml:494 |
3791 | +#: apt.conf.5.xml:503 |
3792 | msgid "" |
3793 | "Cache Clean mode; this value may be one of always, prompt, auto, pre-auto " |
3794 | "and never. always and prompt will remove all packages from the cache after " |
3795 | @@ -5184,50 +5213,50 @@ |
3796 | msgstr "" |
3797 | |
3798 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3799 | -#: apt.conf.5.xml:503 |
3800 | +#: apt.conf.5.xml:512 |
3801 | msgid "" |
3802 | "The contents of this variable is passed to &apt-get; as command line options " |
3803 | "when it is run for the install phase." |
3804 | msgstr "" |
3805 | |
3806 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3807 | -#: apt.conf.5.xml:507 |
3808 | +#: apt.conf.5.xml:516 |
3809 | msgid "Updateoptions" |
3810 | msgstr "" |
3811 | |
3812 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3813 | -#: apt.conf.5.xml:508 |
3814 | +#: apt.conf.5.xml:517 |
3815 | msgid "" |
3816 | "The contents of this variable is passed to &apt-get; as command line options " |
3817 | "when it is run for the update phase." |
3818 | msgstr "" |
3819 | |
3820 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3821 | -#: apt.conf.5.xml:512 |
3822 | +#: apt.conf.5.xml:521 |
3823 | msgid "PromptAfterUpdate" |
3824 | msgstr "" |
3825 | |
3826 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3827 | -#: apt.conf.5.xml:513 |
3828 | +#: apt.conf.5.xml:522 |
3829 | msgid "" |
3830 | "If true the [U]pdate operation in &dselect; will always prompt to continue. " |
3831 | "The default is to prompt only on error." |
3832 | msgstr "" |
3833 | |
3834 | #. type: Content of: <refentry><refsect1><title> |
3835 | -#: apt.conf.5.xml:519 |
3836 | +#: apt.conf.5.xml:528 |
3837 | msgid "How APT calls dpkg" |
3838 | msgstr "" |
3839 | |
3840 | #. type: Content of: <refentry><refsect1><para> |
3841 | -#: apt.conf.5.xml:520 |
3842 | +#: apt.conf.5.xml:529 |
3843 | msgid "" |
3844 | "Several configuration directives control how APT invokes &dpkg;. These are " |
3845 | "in the <literal>DPkg</literal> section." |
3846 | msgstr "" |
3847 | |
3848 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3849 | -#: apt.conf.5.xml:525 |
3850 | +#: apt.conf.5.xml:534 |
3851 | msgid "" |
3852 | "This is a list of options to pass to dpkg. The options must be specified " |
3853 | "using the list notation and each list item is passed as a single argument to " |
3854 | @@ -5235,17 +5264,17 @@ |
3855 | msgstr "" |
3856 | |
3857 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3858 | -#: apt.conf.5.xml:530 |
3859 | +#: apt.conf.5.xml:539 |
3860 | msgid "Pre-Invoke" |
3861 | msgstr "" |
3862 | |
3863 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3864 | -#: apt.conf.5.xml:530 |
3865 | +#: apt.conf.5.xml:539 |
3866 | msgid "Post-Invoke" |
3867 | msgstr "" |
3868 | |
3869 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3870 | -#: apt.conf.5.xml:531 |
3871 | +#: apt.conf.5.xml:540 |
3872 | msgid "" |
3873 | "This is a list of shell commands to run before/after invoking &dpkg;. Like " |
3874 | "<literal>options</literal> this must be specified in list notation. The " |
3875 | @@ -5254,12 +5283,12 @@ |
3876 | msgstr "" |
3877 | |
3878 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3879 | -#: apt.conf.5.xml:537 |
3880 | +#: apt.conf.5.xml:546 |
3881 | msgid "Pre-Install-Pkgs" |
3882 | msgstr "" |
3883 | |
3884 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3885 | -#: apt.conf.5.xml:538 |
3886 | +#: apt.conf.5.xml:547 |
3887 | msgid "" |
3888 | "This is a list of shell commands to run before invoking dpkg. Like " |
3889 | "<literal>options</literal> this must be specified in list notation. The " |
3890 | @@ -5269,7 +5298,7 @@ |
3891 | msgstr "" |
3892 | |
3893 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3894 | -#: apt.conf.5.xml:544 |
3895 | +#: apt.conf.5.xml:553 |
3896 | msgid "" |
3897 | "Version 2 of this protocol dumps more information, including the protocol " |
3898 | "version, the APT configuration space and the packages, files and versions " |
3899 | @@ -5280,36 +5309,36 @@ |
3900 | msgstr "" |
3901 | |
3902 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3903 | -#: apt.conf.5.xml:551 |
3904 | +#: apt.conf.5.xml:560 |
3905 | msgid "Run-Directory" |
3906 | msgstr "" |
3907 | |
3908 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3909 | -#: apt.conf.5.xml:552 |
3910 | +#: apt.conf.5.xml:561 |
3911 | msgid "" |
3912 | "APT chdirs to this directory before invoking dpkg, the default is " |
3913 | "<filename>/</filename>." |
3914 | msgstr "" |
3915 | |
3916 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
3917 | -#: apt.conf.5.xml:556 |
3918 | +#: apt.conf.5.xml:565 |
3919 | msgid "Build-options" |
3920 | msgstr "" |
3921 | |
3922 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
3923 | -#: apt.conf.5.xml:557 |
3924 | +#: apt.conf.5.xml:566 |
3925 | msgid "" |
3926 | "These options are passed to &dpkg-buildpackage; when compiling packages, the " |
3927 | "default is to disable signing and produce all binaries." |
3928 | msgstr "" |
3929 | |
3930 | #. type: Content of: <refentry><refsect1><refsect2><title> |
3931 | -#: apt.conf.5.xml:562 |
3932 | +#: apt.conf.5.xml:571 |
3933 | msgid "dpkg trigger usage (and related options)" |
3934 | msgstr "" |
3935 | |
3936 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3937 | -#: apt.conf.5.xml:563 |
3938 | +#: apt.conf.5.xml:572 |
3939 | msgid "" |
3940 | "APT can call dpkg in a way so it can make aggressive use of triggers over " |
3941 | "multiply calls of dpkg. Without further options dpkg will use triggers only " |
3942 | @@ -5324,7 +5353,7 @@ |
3943 | msgstr "" |
3944 | |
3945 | #. type: Content of: <refentry><refsect1><refsect2><para><literallayout> |
3946 | -#: apt.conf.5.xml:578 |
3947 | +#: apt.conf.5.xml:587 |
3948 | #, no-wrap |
3949 | msgid "" |
3950 | "DPkg::NoTriggers \"true\";\n" |
3951 | @@ -5334,7 +5363,7 @@ |
3952 | msgstr "" |
3953 | |
3954 | #. type: Content of: <refentry><refsect1><refsect2><para> |
3955 | -#: apt.conf.5.xml:572 |
3956 | +#: apt.conf.5.xml:581 |
3957 | msgid "" |
3958 | "Note that it is not guaranteed that APT will support these options or that " |
3959 | "these options will not cause (big) trouble in the future. If you have " |
3960 | @@ -5348,12 +5377,12 @@ |
3961 | msgstr "" |
3962 | |
3963 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3964 | -#: apt.conf.5.xml:584 |
3965 | +#: apt.conf.5.xml:593 |
3966 | msgid "DPkg::NoTriggers" |
3967 | msgstr "" |
3968 | |
3969 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3970 | -#: apt.conf.5.xml:585 |
3971 | +#: apt.conf.5.xml:594 |
3972 | msgid "" |
3973 | "Add the no triggers flag to all dpkg calls (except the ConfigurePending " |
3974 | "call). See &dpkg; if you are interested in what this actually means. In " |
3975 | @@ -5365,12 +5394,12 @@ |
3976 | msgstr "" |
3977 | |
3978 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3979 | -#: apt.conf.5.xml:592 |
3980 | +#: apt.conf.5.xml:601 |
3981 | msgid "PackageManager::Configure" |
3982 | msgstr "" |
3983 | |
3984 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
3985 | -#: apt.conf.5.xml:593 |
3986 | +#: apt.conf.5.xml:602 |
3987 | msgid "" |
3988 | "Valid values are \"<literal>all</literal>\", \"<literal>smart</literal>\" " |
3989 | "and \"<literal>no</literal>\". \"<literal>all</literal>\" is the default " |
3990 | @@ -5387,12 +5416,12 @@ |
3991 | msgstr "" |
3992 | |
3993 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
3994 | -#: apt.conf.5.xml:603 |
3995 | +#: apt.conf.5.xml:612 |
3996 | msgid "DPkg::ConfigurePending" |
3997 | msgstr "" |
3998 | |
3999 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
4000 | -#: apt.conf.5.xml:604 |
4001 | +#: apt.conf.5.xml:613 |
4002 | msgid "" |
4003 | "If this option is set apt will call <command>dpkg --configure " |
4004 | "--pending</command> to let dpkg handle all required configurations and " |
4005 | @@ -5404,12 +5433,12 @@ |
4006 | msgstr "" |
4007 | |
4008 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
4009 | -#: apt.conf.5.xml:610 |
4010 | +#: apt.conf.5.xml:619 |
4011 | msgid "DPkg::TriggersPending" |
4012 | msgstr "" |
4013 | |
4014 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
4015 | -#: apt.conf.5.xml:611 |
4016 | +#: apt.conf.5.xml:620 |
4017 | msgid "" |
4018 | "Useful for <literal>smart</literal> configuration as a package which has " |
4019 | "pending triggers is not considered as <literal>installed</literal> and dpkg " |
4020 | @@ -5419,12 +5448,12 @@ |
4021 | msgstr "" |
4022 | |
4023 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
4024 | -#: apt.conf.5.xml:616 |
4025 | +#: apt.conf.5.xml:625 |
4026 | msgid "PackageManager::UnpackAll" |
4027 | msgstr "" |
4028 | |
4029 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
4030 | -#: apt.conf.5.xml:617 |
4031 | +#: apt.conf.5.xml:626 |
4032 | msgid "" |
4033 | "As the configuration can be deferred to be done at the end by dpkg it can be " |
4034 | "tried to order the unpack series only by critical needs, e.g. by " |
4035 | @@ -5436,12 +5465,12 @@ |
4036 | msgstr "" |
4037 | |
4038 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> |
4039 | -#: apt.conf.5.xml:624 |
4040 | +#: apt.conf.5.xml:633 |
4041 | msgid "OrderList::Score::Immediate" |
4042 | msgstr "" |
4043 | |
4044 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para><literallayout> |
4045 | -#: apt.conf.5.xml:632 |
4046 | +#: apt.conf.5.xml:641 |
4047 | #, no-wrap |
4048 | msgid "" |
4049 | "OrderList::Score {\n" |
4050 | @@ -5453,7 +5482,7 @@ |
4051 | msgstr "" |
4052 | |
4053 | #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> |
4054 | -#: apt.conf.5.xml:625 |
4055 | +#: apt.conf.5.xml:634 |
4056 | msgid "" |
4057 | "Essential packages (and there dependencies) should be configured immediately " |
4058 | "after unpacking. It will be a good idea to do this quite early in the " |
4059 | @@ -5467,12 +5496,12 @@ |
4060 | msgstr "" |
4061 | |
4062 | #. type: Content of: <refentry><refsect1><title> |
4063 | -#: apt.conf.5.xml:645 |
4064 | +#: apt.conf.5.xml:654 |
4065 | msgid "Periodic and Archives options" |
4066 | msgstr "" |
4067 | |
4068 | #. type: Content of: <refentry><refsect1><para> |
4069 | -#: apt.conf.5.xml:646 |
4070 | +#: apt.conf.5.xml:655 |
4071 | msgid "" |
4072 | "<literal>APT::Periodic</literal> and <literal>APT::Archives</literal> groups " |
4073 | "of options configure behavior of apt periodic updates, which is done by " |
4074 | @@ -5481,12 +5510,12 @@ |
4075 | msgstr "" |
4076 | |
4077 | #. type: Content of: <refentry><refsect1><title> |
4078 | -#: apt.conf.5.xml:654 |
4079 | +#: apt.conf.5.xml:663 |
4080 | msgid "Debug options" |
4081 | msgstr "" |
4082 | |
4083 | #. type: Content of: <refentry><refsect1><para> |
4084 | -#: apt.conf.5.xml:656 |
4085 | +#: apt.conf.5.xml:665 |
4086 | msgid "" |
4087 | "Enabling options in the <literal>Debug::</literal> section will cause " |
4088 | "debugging information to be sent to the standard error stream of the program " |
4089 | @@ -5497,7 +5526,7 @@ |
4090 | msgstr "" |
4091 | |
4092 | #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> |
4093 | -#: apt.conf.5.xml:667 |
4094 | +#: apt.conf.5.xml:676 |
4095 | msgid "" |
4096 | "<literal>Debug::pkgProblemResolver</literal> enables output about the " |
4097 | "decisions made by <literal>dist-upgrade, upgrade, install, remove, " |
4098 | @@ -5505,7 +5534,7 @@ |
4099 | msgstr "" |
4100 | |
4101 | #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> |
4102 | -#: apt.conf.5.xml:675 |
4103 | +#: apt.conf.5.xml:684 |
4104 | msgid "" |
4105 | "<literal>Debug::NoLocking</literal> disables all file locking. This can be " |
4106 | "used to run some operations (for instance, <literal>apt-get -s " |
4107 | @@ -5513,7 +5542,7 @@ |
4108 | msgstr "" |
4109 | |
4110 | #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> |
4111 | -#: apt.conf.5.xml:684 |
4112 | +#: apt.conf.5.xml:693 |
4113 | msgid "" |
4114 | "<literal>Debug::pkgDPkgPM</literal> prints out the actual command line each " |
4115 | "time that <literal>apt</literal> invokes &dpkg;." |
4116 | @@ -5523,110 +5552,110 @@ |
4117 | #. motivating example, except I haven't a clue why you'd want |
4118 | #. to do this. |
4119 | #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> |
4120 | -#: apt.conf.5.xml:692 |
4121 | +#: apt.conf.5.xml:701 |
4122 | msgid "" |
4123 | "<literal>Debug::IdentCdrom</literal> disables the inclusion of statfs data " |
4124 | "in CDROM IDs." |
4125 | msgstr "" |
4126 | |
4127 | #. type: Content of: <refentry><refsect1><para> |
4128 | -#: apt.conf.5.xml:702 |
4129 | +#: apt.conf.5.xml:711 |
4130 | msgid "A full list of debugging options to apt follows." |
4131 | msgstr "" |
4132 | |
4133 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4134 | -#: apt.conf.5.xml:707 |
4135 | +#: apt.conf.5.xml:716 |
4136 | msgid "<literal>Debug::Acquire::cdrom</literal>" |
4137 | msgstr "" |
4138 | |
4139 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4140 | -#: apt.conf.5.xml:711 |
4141 | +#: apt.conf.5.xml:720 |
4142 | msgid "Print information related to accessing <literal>cdrom://</literal> sources." |
4143 | msgstr "" |
4144 | |
4145 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4146 | -#: apt.conf.5.xml:718 |
4147 | +#: apt.conf.5.xml:727 |
4148 | msgid "<literal>Debug::Acquire::ftp</literal>" |
4149 | msgstr "" |
4150 | |
4151 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4152 | -#: apt.conf.5.xml:722 |
4153 | +#: apt.conf.5.xml:731 |
4154 | msgid "Print information related to downloading packages using FTP." |
4155 | msgstr "" |
4156 | |
4157 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4158 | -#: apt.conf.5.xml:729 |
4159 | +#: apt.conf.5.xml:738 |
4160 | msgid "<literal>Debug::Acquire::http</literal>" |
4161 | msgstr "" |
4162 | |
4163 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4164 | -#: apt.conf.5.xml:733 |
4165 | +#: apt.conf.5.xml:742 |
4166 | msgid "Print information related to downloading packages using HTTP." |
4167 | msgstr "" |
4168 | |
4169 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4170 | -#: apt.conf.5.xml:740 |
4171 | +#: apt.conf.5.xml:749 |
4172 | msgid "<literal>Debug::Acquire::https</literal>" |
4173 | msgstr "" |
4174 | |
4175 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4176 | -#: apt.conf.5.xml:744 |
4177 | +#: apt.conf.5.xml:753 |
4178 | msgid "Print information related to downloading packages using HTTPS." |
4179 | msgstr "" |
4180 | |
4181 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4182 | -#: apt.conf.5.xml:751 |
4183 | +#: apt.conf.5.xml:760 |
4184 | msgid "<literal>Debug::Acquire::gpgv</literal>" |
4185 | msgstr "" |
4186 | |
4187 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4188 | -#: apt.conf.5.xml:755 |
4189 | +#: apt.conf.5.xml:764 |
4190 | msgid "" |
4191 | "Print information related to verifying cryptographic signatures using " |
4192 | "<literal>gpg</literal>." |
4193 | msgstr "" |
4194 | |
4195 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4196 | -#: apt.conf.5.xml:762 |
4197 | +#: apt.conf.5.xml:771 |
4198 | msgid "<literal>Debug::aptcdrom</literal>" |
4199 | msgstr "" |
4200 | |
4201 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4202 | -#: apt.conf.5.xml:766 |
4203 | +#: apt.conf.5.xml:775 |
4204 | msgid "" |
4205 | "Output information about the process of accessing collections of packages " |
4206 | "stored on CD-ROMs." |
4207 | msgstr "" |
4208 | |
4209 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4210 | -#: apt.conf.5.xml:773 |
4211 | +#: apt.conf.5.xml:782 |
4212 | msgid "<literal>Debug::BuildDeps</literal>" |
4213 | msgstr "" |
4214 | |
4215 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4216 | -#: apt.conf.5.xml:776 |
4217 | +#: apt.conf.5.xml:785 |
4218 | msgid "Describes the process of resolving build-dependencies in &apt-get;." |
4219 | msgstr "" |
4220 | |
4221 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4222 | -#: apt.conf.5.xml:783 |
4223 | +#: apt.conf.5.xml:792 |
4224 | msgid "<literal>Debug::Hashes</literal>" |
4225 | msgstr "" |
4226 | |
4227 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4228 | -#: apt.conf.5.xml:786 |
4229 | +#: apt.conf.5.xml:795 |
4230 | msgid "" |
4231 | "Output each cryptographic hash that is generated by the " |
4232 | "<literal>apt</literal> libraries." |
4233 | msgstr "" |
4234 | |
4235 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4236 | -#: apt.conf.5.xml:793 |
4237 | +#: apt.conf.5.xml:802 |
4238 | msgid "<literal>Debug::IdentCDROM</literal>" |
4239 | msgstr "" |
4240 | |
4241 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4242 | -#: apt.conf.5.xml:796 |
4243 | +#: apt.conf.5.xml:805 |
4244 | msgid "" |
4245 | "Do not include information from <literal>statfs</literal>, namely the number " |
4246 | "of used and free blocks on the CD-ROM filesystem, when generating an ID for " |
4247 | @@ -5634,92 +5663,92 @@ |
4248 | msgstr "" |
4249 | |
4250 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4251 | -#: apt.conf.5.xml:804 |
4252 | +#: apt.conf.5.xml:813 |
4253 | msgid "<literal>Debug::NoLocking</literal>" |
4254 | msgstr "" |
4255 | |
4256 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4257 | -#: apt.conf.5.xml:807 |
4258 | +#: apt.conf.5.xml:816 |
4259 | msgid "" |
4260 | "Disable all file locking. For instance, this will allow two instances of " |
4261 | "<quote><literal>apt-get update</literal></quote> to run at the same time." |
4262 | msgstr "" |
4263 | |
4264 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4265 | -#: apt.conf.5.xml:815 |
4266 | +#: apt.conf.5.xml:824 |
4267 | msgid "<literal>Debug::pkgAcquire</literal>" |
4268 | msgstr "" |
4269 | |
4270 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4271 | -#: apt.conf.5.xml:819 |
4272 | +#: apt.conf.5.xml:828 |
4273 | msgid "Log when items are added to or removed from the global download queue." |
4274 | msgstr "" |
4275 | |
4276 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4277 | -#: apt.conf.5.xml:826 |
4278 | +#: apt.conf.5.xml:835 |
4279 | msgid "<literal>Debug::pkgAcquire::Auth</literal>" |
4280 | msgstr "" |
4281 | |
4282 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4283 | -#: apt.conf.5.xml:829 |
4284 | +#: apt.conf.5.xml:838 |
4285 | msgid "" |
4286 | "Output status messages and errors related to verifying checksums and " |
4287 | "cryptographic signatures of downloaded files." |
4288 | msgstr "" |
4289 | |
4290 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4291 | -#: apt.conf.5.xml:836 |
4292 | +#: apt.conf.5.xml:845 |
4293 | msgid "<literal>Debug::pkgAcquire::Diffs</literal>" |
4294 | msgstr "" |
4295 | |
4296 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4297 | -#: apt.conf.5.xml:839 |
4298 | +#: apt.conf.5.xml:848 |
4299 | msgid "" |
4300 | "Output information about downloading and applying package index list diffs, " |
4301 | "and errors relating to package index list diffs." |
4302 | msgstr "" |
4303 | |
4304 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4305 | -#: apt.conf.5.xml:847 |
4306 | +#: apt.conf.5.xml:856 |
4307 | msgid "<literal>Debug::pkgAcquire::RRed</literal>" |
4308 | msgstr "" |
4309 | |
4310 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4311 | -#: apt.conf.5.xml:851 |
4312 | +#: apt.conf.5.xml:860 |
4313 | msgid "" |
4314 | "Output information related to patching apt package lists when downloading " |
4315 | "index diffs instead of full indices." |
4316 | msgstr "" |
4317 | |
4318 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4319 | -#: apt.conf.5.xml:858 |
4320 | +#: apt.conf.5.xml:867 |
4321 | msgid "<literal>Debug::pkgAcquire::Worker</literal>" |
4322 | msgstr "" |
4323 | |
4324 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4325 | -#: apt.conf.5.xml:862 |
4326 | +#: apt.conf.5.xml:871 |
4327 | msgid "Log all interactions with the sub-processes that actually perform downloads." |
4328 | msgstr "" |
4329 | |
4330 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4331 | -#: apt.conf.5.xml:869 |
4332 | +#: apt.conf.5.xml:878 |
4333 | msgid "<literal>Debug::pkgAutoRemove</literal>" |
4334 | msgstr "" |
4335 | |
4336 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4337 | -#: apt.conf.5.xml:873 |
4338 | +#: apt.conf.5.xml:882 |
4339 | msgid "" |
4340 | "Log events related to the automatically-installed status of packages and to " |
4341 | "the removal of unused packages." |
4342 | msgstr "" |
4343 | |
4344 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4345 | -#: apt.conf.5.xml:880 |
4346 | +#: apt.conf.5.xml:889 |
4347 | msgid "<literal>Debug::pkgDepCache::AutoInstall</literal>" |
4348 | msgstr "" |
4349 | |
4350 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4351 | -#: apt.conf.5.xml:883 |
4352 | +#: apt.conf.5.xml:892 |
4353 | msgid "" |
4354 | "Generate debug messages describing which packages are being automatically " |
4355 | "installed to resolve dependencies. This corresponds to the initial " |
4356 | @@ -5729,12 +5758,12 @@ |
4357 | msgstr "" |
4358 | |
4359 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4360 | -#: apt.conf.5.xml:894 |
4361 | +#: apt.conf.5.xml:903 |
4362 | msgid "<literal>Debug::pkgDepCache::Marker</literal>" |
4363 | msgstr "" |
4364 | |
4365 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4366 | -#: apt.conf.5.xml:897 |
4367 | +#: apt.conf.5.xml:906 |
4368 | msgid "" |
4369 | "Generate debug messages describing which package is marked as " |
4370 | "keep/install/remove while the ProblemResolver does his work. Each addition " |
4371 | @@ -5752,90 +5781,90 @@ |
4372 | msgstr "" |
4373 | |
4374 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4375 | -#: apt.conf.5.xml:916 |
4376 | +#: apt.conf.5.xml:925 |
4377 | msgid "<literal>Debug::pkgInitConfig</literal>" |
4378 | msgstr "" |
4379 | |
4380 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4381 | -#: apt.conf.5.xml:919 |
4382 | +#: apt.conf.5.xml:928 |
4383 | msgid "Dump the default configuration to standard error on startup." |
4384 | msgstr "" |
4385 | |
4386 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4387 | -#: apt.conf.5.xml:926 |
4388 | +#: apt.conf.5.xml:935 |
4389 | msgid "<literal>Debug::pkgDPkgPM</literal>" |
4390 | msgstr "" |
4391 | |
4392 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4393 | -#: apt.conf.5.xml:929 |
4394 | +#: apt.conf.5.xml:938 |
4395 | msgid "" |
4396 | "When invoking &dpkg;, output the precise command line with which it is being " |
4397 | "invoked, with arguments separated by a single space character." |
4398 | msgstr "" |
4399 | |
4400 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4401 | -#: apt.conf.5.xml:937 |
4402 | +#: apt.conf.5.xml:946 |
4403 | msgid "<literal>Debug::pkgDPkgProgressReporting</literal>" |
4404 | msgstr "" |
4405 | |
4406 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4407 | -#: apt.conf.5.xml:940 |
4408 | +#: apt.conf.5.xml:949 |
4409 | msgid "" |
4410 | "Output all the data received from &dpkg; on the status file descriptor and " |
4411 | "any errors encountered while parsing it." |
4412 | msgstr "" |
4413 | |
4414 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4415 | -#: apt.conf.5.xml:947 |
4416 | +#: apt.conf.5.xml:956 |
4417 | msgid "<literal>Debug::pkgOrderList</literal>" |
4418 | msgstr "" |
4419 | |
4420 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4421 | -#: apt.conf.5.xml:951 |
4422 | +#: apt.conf.5.xml:960 |
4423 | msgid "" |
4424 | "Generate a trace of the algorithm that decides the order in which " |
4425 | "<literal>apt</literal> should pass packages to &dpkg;." |
4426 | msgstr "" |
4427 | |
4428 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4429 | -#: apt.conf.5.xml:959 |
4430 | +#: apt.conf.5.xml:968 |
4431 | msgid "<literal>Debug::pkgPackageManager</literal>" |
4432 | msgstr "" |
4433 | |
4434 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4435 | -#: apt.conf.5.xml:963 |
4436 | +#: apt.conf.5.xml:972 |
4437 | msgid "Output status messages tracing the steps performed when invoking &dpkg;." |
4438 | msgstr "" |
4439 | |
4440 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4441 | -#: apt.conf.5.xml:970 |
4442 | +#: apt.conf.5.xml:979 |
4443 | msgid "<literal>Debug::pkgPolicy</literal>" |
4444 | msgstr "" |
4445 | |
4446 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4447 | -#: apt.conf.5.xml:974 |
4448 | +#: apt.conf.5.xml:983 |
4449 | msgid "Output the priority of each package list on startup." |
4450 | msgstr "" |
4451 | |
4452 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4453 | -#: apt.conf.5.xml:980 |
4454 | +#: apt.conf.5.xml:989 |
4455 | msgid "<literal>Debug::pkgProblemResolver</literal>" |
4456 | msgstr "" |
4457 | |
4458 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4459 | -#: apt.conf.5.xml:984 |
4460 | +#: apt.conf.5.xml:993 |
4461 | msgid "" |
4462 | "Trace the execution of the dependency resolver (this applies only to what " |
4463 | "happens when a complex dependency problem is encountered)." |
4464 | msgstr "" |
4465 | |
4466 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4467 | -#: apt.conf.5.xml:992 |
4468 | +#: apt.conf.5.xml:1001 |
4469 | msgid "<literal>Debug::pkgProblemResolver::ShowScores</literal>" |
4470 | msgstr "" |
4471 | |
4472 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4473 | -#: apt.conf.5.xml:995 |
4474 | +#: apt.conf.5.xml:1004 |
4475 | msgid "" |
4476 | "Display a list of all installed packages with their calculated score used by " |
4477 | "the pkgProblemResolver. The description of the package is the same as " |
4478 | @@ -5843,39 +5872,39 @@ |
4479 | msgstr "" |
4480 | |
4481 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> |
4482 | -#: apt.conf.5.xml:1003 |
4483 | +#: apt.conf.5.xml:1012 |
4484 | msgid "<literal>Debug::sourceList</literal>" |
4485 | msgstr "" |
4486 | |
4487 | #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> |
4488 | -#: apt.conf.5.xml:1007 |
4489 | +#: apt.conf.5.xml:1016 |
4490 | msgid "" |
4491 | "Print information about the vendors read from " |
4492 | "<filename>/etc/apt/vendors.list</filename>." |
4493 | msgstr "" |
4494 | |
4495 | #. type: Content of: <refentry><refsect1><para> |
4496 | -#: apt.conf.5.xml:1030 |
4497 | +#: apt.conf.5.xml:1039 |
4498 | msgid "" |
4499 | "&configureindex; is a configuration file showing example values for all " |
4500 | "possible options." |
4501 | msgstr "" |
4502 | |
4503 | #. type: Content of: <refentry><refsect1><variablelist> |
4504 | -#: apt.conf.5.xml:1037 |
4505 | +#: apt.conf.5.xml:1046 |
4506 | msgid "&file-aptconf;" |
4507 | msgstr "" |
4508 | |
4509 | #. ? reading apt.conf |
4510 | #. type: Content of: <refentry><refsect1><para> |
4511 | -#: apt.conf.5.xml:1042 |
4512 | +#: apt.conf.5.xml:1051 |
4513 | msgid "&apt-cache;, &apt-config;, &apt-preferences;." |
4514 | msgstr "" |
4515 | |
4516 | #. The last update date |
4517 | #. type: Content of: <refentry><refentryinfo> |
4518 | #: apt_preferences.5.xml:13 |
4519 | -msgid "&apt-author.team; &apt-email; &apt-product; <date>04 May 2009</date>" |
4520 | +msgid "&apt-author.team; &apt-email; &apt-product; <date>16 February 2010</date>" |
4521 | msgstr "" |
4522 | |
4523 | #. type: Content of: <refentry><refnamediv><refname> |
4524 | @@ -5923,6 +5952,17 @@ |
4525 | #. type: Content of: <refentry><refsect1><para> |
4526 | #: apt_preferences.5.xml:56 |
4527 | msgid "" |
4528 | +"Preferences are a strong power in the hands of a system administrator but " |
4529 | +"they can become also their biggest nightmare if used without care! APT will " |
4530 | +"not questioning the preferences so wrong settings will therefore lead to " |
4531 | +"uninstallable packages or wrong decisions while upgrading packages. Even " |
4532 | +"more problems will arise if multiply distribution releases are mixed without " |
4533 | +"a good understanding of the following paragraphs. You have been warned." |
4534 | +msgstr "" |
4535 | + |
4536 | +#. type: Content of: <refentry><refsect1><para> |
4537 | +#: apt_preferences.5.xml:64 |
4538 | +msgid "" |
4539 | "Note that the files in the <filename>/etc/apt/preferences.d</filename> " |
4540 | "directory are parsed in alphanumeric ascending order and need to obey the " |
4541 | "following naming convention: The files have no or " |
4542 | @@ -5932,12 +5972,12 @@ |
4543 | msgstr "" |
4544 | |
4545 | #. type: Content of: <refentry><refsect1><refsect2><title> |
4546 | -#: apt_preferences.5.xml:63 |
4547 | +#: apt_preferences.5.xml:71 |
4548 | msgid "APT's Default Priority Assignments" |
4549 | msgstr "" |
4550 | |
4551 | #. type: Content of: <refentry><refsect1><refsect2><para><programlisting> |
4552 | -#: apt_preferences.5.xml:78 |
4553 | +#: apt_preferences.5.xml:86 |
4554 | #, no-wrap |
4555 | msgid "" |
4556 | "<command>apt-get install -t testing " |
4557 | @@ -5945,13 +5985,13 @@ |
4558 | msgstr "" |
4559 | |
4560 | #. type: Content of: <refentry><refsect1><refsect2><para><programlisting> |
4561 | -#: apt_preferences.5.xml:81 |
4562 | +#: apt_preferences.5.xml:89 |
4563 | #, no-wrap |
4564 | msgid "APT::Default-Release \"stable\";\n" |
4565 | msgstr "" |
4566 | |
4567 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4568 | -#: apt_preferences.5.xml:65 |
4569 | +#: apt_preferences.5.xml:73 |
4570 | msgid "" |
4571 | "If there is no preferences file or if there is no entry in the file that " |
4572 | "applies to a particular version then the priority assigned to that version " |
4573 | @@ -5968,39 +6008,39 @@ |
4574 | msgstr "" |
4575 | |
4576 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4577 | -#: apt_preferences.5.xml:90 |
4578 | +#: apt_preferences.5.xml:98 |
4579 | msgid "priority 100" |
4580 | msgstr "" |
4581 | |
4582 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4583 | -#: apt_preferences.5.xml:91 |
4584 | +#: apt_preferences.5.xml:99 |
4585 | msgid "to the version that is already installed (if any)." |
4586 | msgstr "" |
4587 | |
4588 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4589 | -#: apt_preferences.5.xml:95 |
4590 | +#: apt_preferences.5.xml:103 |
4591 | msgid "priority 500" |
4592 | msgstr "" |
4593 | |
4594 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4595 | -#: apt_preferences.5.xml:96 |
4596 | +#: apt_preferences.5.xml:104 |
4597 | msgid "" |
4598 | "to the versions that are not installed and do not belong to the target " |
4599 | "release." |
4600 | msgstr "" |
4601 | |
4602 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4603 | -#: apt_preferences.5.xml:100 |
4604 | +#: apt_preferences.5.xml:108 |
4605 | msgid "priority 990" |
4606 | msgstr "" |
4607 | |
4608 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4609 | -#: apt_preferences.5.xml:101 |
4610 | +#: apt_preferences.5.xml:109 |
4611 | msgid "to the versions that are not installed and belong to the target release." |
4612 | msgstr "" |
4613 | |
4614 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4615 | -#: apt_preferences.5.xml:85 |
4616 | +#: apt_preferences.5.xml:93 |
4617 | msgid "" |
4618 | "If the target release has been specified then APT uses the following " |
4619 | "algorithm to set the priorities of the versions of a package. Assign: " |
4620 | @@ -6008,7 +6048,7 @@ |
4621 | msgstr "" |
4622 | |
4623 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4624 | -#: apt_preferences.5.xml:106 |
4625 | +#: apt_preferences.5.xml:114 |
4626 | msgid "" |
4627 | "If the target release has not been specified then APT simply assigns " |
4628 | "priority 100 to all installed package versions and priority 500 to all " |
4629 | @@ -6016,14 +6056,14 @@ |
4630 | msgstr "" |
4631 | |
4632 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4633 | -#: apt_preferences.5.xml:110 |
4634 | +#: apt_preferences.5.xml:118 |
4635 | msgid "" |
4636 | "APT then applies the following rules, listed in order of precedence, to " |
4637 | "determine which version of a package to install." |
4638 | msgstr "" |
4639 | |
4640 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4641 | -#: apt_preferences.5.xml:113 |
4642 | +#: apt_preferences.5.xml:121 |
4643 | msgid "" |
4644 | "Never downgrade unless the priority of an available version exceeds 1000. " |
4645 | "(\"Downgrading\" is installing a less recent version of a package in place " |
4646 | @@ -6033,19 +6073,19 @@ |
4647 | msgstr "" |
4648 | |
4649 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4650 | -#: apt_preferences.5.xml:119 |
4651 | +#: apt_preferences.5.xml:127 |
4652 | msgid "Install the highest priority version." |
4653 | msgstr "" |
4654 | |
4655 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4656 | -#: apt_preferences.5.xml:120 |
4657 | +#: apt_preferences.5.xml:128 |
4658 | msgid "" |
4659 | "If two or more versions have the same priority, install the most recent one " |
4660 | "(that is, the one with the higher version number)." |
4661 | msgstr "" |
4662 | |
4663 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4664 | -#: apt_preferences.5.xml:123 |
4665 | +#: apt_preferences.5.xml:131 |
4666 | msgid "" |
4667 | "If two or more versions have the same priority and version number but either " |
4668 | "the packages differ in some of their metadata or the " |
4669 | @@ -6053,7 +6093,7 @@ |
4670 | msgstr "" |
4671 | |
4672 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4673 | -#: apt_preferences.5.xml:129 |
4674 | +#: apt_preferences.5.xml:137 |
4675 | msgid "" |
4676 | "In a typical situation, the installed version of a package (priority 100) " |
4677 | "is not as recent as one of the versions available from the sources listed in " |
4678 | @@ -6064,7 +6104,7 @@ |
4679 | msgstr "" |
4680 | |
4681 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4682 | -#: apt_preferences.5.xml:136 |
4683 | +#: apt_preferences.5.xml:144 |
4684 | msgid "" |
4685 | "More rarely, the installed version of a package is <emphasis>more</emphasis> " |
4686 | "recent than any of the other available versions. The package will not be " |
4687 | @@ -6074,7 +6114,7 @@ |
4688 | msgstr "" |
4689 | |
4690 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4691 | -#: apt_preferences.5.xml:141 |
4692 | +#: apt_preferences.5.xml:149 |
4693 | msgid "" |
4694 | "Sometimes the installed version of a package is more recent than the version " |
4695 | "belonging to the target release, but not as recent as a version belonging to " |
4696 | @@ -6086,12 +6126,12 @@ |
4697 | msgstr "" |
4698 | |
4699 | #. type: Content of: <refentry><refsect1><refsect2><title> |
4700 | -#: apt_preferences.5.xml:150 |
4701 | +#: apt_preferences.5.xml:158 |
4702 | msgid "The Effect of APT Preferences" |
4703 | msgstr "" |
4704 | |
4705 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4706 | -#: apt_preferences.5.xml:152 |
4707 | +#: apt_preferences.5.xml:160 |
4708 | msgid "" |
4709 | "The APT preferences file allows the system administrator to control the " |
4710 | "assignment of priorities. The file consists of one or more multi-line " |
4711 | @@ -6100,7 +6140,7 @@ |
4712 | msgstr "" |
4713 | |
4714 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4715 | -#: apt_preferences.5.xml:158 |
4716 | +#: apt_preferences.5.xml:166 |
4717 | msgid "" |
4718 | "The specific form assigns a priority (a \"Pin-Priority\") to one or more " |
4719 | "specified packages and specified version or version range. For example, the " |
4720 | @@ -6110,7 +6150,7 @@ |
4721 | msgstr "" |
4722 | |
4723 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><programlisting> |
4724 | -#: apt_preferences.5.xml:165 |
4725 | +#: apt_preferences.5.xml:173 |
4726 | #, no-wrap |
4727 | msgid "" |
4728 | "Package: perl\n" |
4729 | @@ -6119,7 +6159,7 @@ |
4730 | msgstr "" |
4731 | |
4732 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4733 | -#: apt_preferences.5.xml:171 |
4734 | +#: apt_preferences.5.xml:179 |
4735 | msgid "" |
4736 | "The general form assigns a priority to all of the package versions in a " |
4737 | "given distribution (that is, to all the versions of packages that are listed " |
4738 | @@ -6129,7 +6169,7 @@ |
4739 | msgstr "" |
4740 | |
4741 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4742 | -#: apt_preferences.5.xml:177 |
4743 | +#: apt_preferences.5.xml:185 |
4744 | msgid "" |
4745 | "This general-form entry in the APT preferences file applies only to groups " |
4746 | "of packages. For example, the following record assigns a high priority to " |
4747 | @@ -6137,7 +6177,7 @@ |
4748 | msgstr "" |
4749 | |
4750 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><programlisting> |
4751 | -#: apt_preferences.5.xml:182 |
4752 | +#: apt_preferences.5.xml:190 |
4753 | #, no-wrap |
4754 | msgid "" |
4755 | "Package: *\n" |
4756 | @@ -6146,7 +6186,7 @@ |
4757 | msgstr "" |
4758 | |
4759 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4760 | -#: apt_preferences.5.xml:187 |
4761 | +#: apt_preferences.5.xml:195 |
4762 | msgid "" |
4763 | "A note of caution: the keyword used here is \"<literal>origin</literal>\". " |
4764 | "This should not be confused with the Origin of a distribution as specified " |
4765 | @@ -6156,7 +6196,7 @@ |
4766 | msgstr "" |
4767 | |
4768 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4769 | -#: apt_preferences.5.xml:193 |
4770 | +#: apt_preferences.5.xml:201 |
4771 | msgid "" |
4772 | "The following record assigns a low priority to all package versions " |
4773 | "belonging to any distribution whose Archive name is " |
4774 | @@ -6164,7 +6204,7 @@ |
4775 | msgstr "" |
4776 | |
4777 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><programlisting> |
4778 | -#: apt_preferences.5.xml:197 |
4779 | +#: apt_preferences.5.xml:205 |
4780 | #, no-wrap |
4781 | msgid "" |
4782 | "Package: *\n" |
4783 | @@ -6173,7 +6213,7 @@ |
4784 | msgstr "" |
4785 | |
4786 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4787 | -#: apt_preferences.5.xml:202 |
4788 | +#: apt_preferences.5.xml:210 |
4789 | msgid "" |
4790 | "The following record assigns a high priority to all package versions " |
4791 | "belonging to any distribution whose Codename is " |
4792 | @@ -6181,7 +6221,7 @@ |
4793 | msgstr "" |
4794 | |
4795 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><programlisting> |
4796 | -#: apt_preferences.5.xml:206 |
4797 | +#: apt_preferences.5.xml:214 |
4798 | #, no-wrap |
4799 | msgid "" |
4800 | "Package: *\n" |
4801 | @@ -6190,7 +6230,7 @@ |
4802 | msgstr "" |
4803 | |
4804 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4805 | -#: apt_preferences.5.xml:211 |
4806 | +#: apt_preferences.5.xml:219 |
4807 | msgid "" |
4808 | "The following record assigns a high priority to all package versions " |
4809 | "belonging to any release whose Archive name is \"<literal>stable</literal>\" " |
4810 | @@ -6198,7 +6238,7 @@ |
4811 | msgstr "" |
4812 | |
4813 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><programlisting> |
4814 | -#: apt_preferences.5.xml:216 |
4815 | +#: apt_preferences.5.xml:224 |
4816 | #, no-wrap |
4817 | msgid "" |
4818 | "Package: *\n" |
4819 | @@ -6207,82 +6247,82 @@ |
4820 | msgstr "" |
4821 | |
4822 | #. type: Content of: <refentry><refsect1><refsect2><title> |
4823 | -#: apt_preferences.5.xml:227 |
4824 | +#: apt_preferences.5.xml:235 |
4825 | msgid "How APT Interprets Priorities" |
4826 | msgstr "" |
4827 | |
4828 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4829 | -#: apt_preferences.5.xml:235 |
4830 | +#: apt_preferences.5.xml:243 |
4831 | msgid "P > 1000" |
4832 | msgstr "" |
4833 | |
4834 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4835 | -#: apt_preferences.5.xml:236 |
4836 | +#: apt_preferences.5.xml:244 |
4837 | msgid "" |
4838 | "causes a version to be installed even if this constitutes a downgrade of the " |
4839 | "package" |
4840 | msgstr "" |
4841 | |
4842 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4843 | -#: apt_preferences.5.xml:240 |
4844 | +#: apt_preferences.5.xml:248 |
4845 | msgid "990 < P <=1000" |
4846 | msgstr "" |
4847 | |
4848 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4849 | -#: apt_preferences.5.xml:241 |
4850 | +#: apt_preferences.5.xml:249 |
4851 | msgid "" |
4852 | "causes a version to be installed even if it does not come from the target " |
4853 | "release, unless the installed version is more recent" |
4854 | msgstr "" |
4855 | |
4856 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4857 | -#: apt_preferences.5.xml:246 |
4858 | +#: apt_preferences.5.xml:254 |
4859 | msgid "500 < P <=990" |
4860 | msgstr "" |
4861 | |
4862 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4863 | -#: apt_preferences.5.xml:247 |
4864 | +#: apt_preferences.5.xml:255 |
4865 | msgid "" |
4866 | "causes a version to be installed unless there is a version available " |
4867 | "belonging to the target release or the installed version is more recent" |
4868 | msgstr "" |
4869 | |
4870 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4871 | -#: apt_preferences.5.xml:252 |
4872 | +#: apt_preferences.5.xml:260 |
4873 | msgid "100 < P <=500" |
4874 | msgstr "" |
4875 | |
4876 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4877 | -#: apt_preferences.5.xml:253 |
4878 | +#: apt_preferences.5.xml:261 |
4879 | msgid "" |
4880 | "causes a version to be installed unless there is a version available " |
4881 | "belonging to some other distribution or the installed version is more recent" |
4882 | msgstr "" |
4883 | |
4884 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4885 | -#: apt_preferences.5.xml:258 |
4886 | +#: apt_preferences.5.xml:266 |
4887 | msgid "0 < P <=100" |
4888 | msgstr "" |
4889 | |
4890 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4891 | -#: apt_preferences.5.xml:259 |
4892 | +#: apt_preferences.5.xml:267 |
4893 | msgid "" |
4894 | "causes a version to be installed only if there is no installed version of " |
4895 | "the package" |
4896 | msgstr "" |
4897 | |
4898 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4899 | -#: apt_preferences.5.xml:263 |
4900 | +#: apt_preferences.5.xml:271 |
4901 | msgid "P < 0" |
4902 | msgstr "" |
4903 | |
4904 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
4905 | -#: apt_preferences.5.xml:264 |
4906 | +#: apt_preferences.5.xml:272 |
4907 | msgid "prevents the version from being installed" |
4908 | msgstr "" |
4909 | |
4910 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4911 | -#: apt_preferences.5.xml:230 |
4912 | +#: apt_preferences.5.xml:238 |
4913 | msgid "" |
4914 | "Priorities (P) assigned in the APT preferences file must be positive or " |
4915 | "negative integers. They are interpreted as follows (roughly speaking): " |
4916 | @@ -6290,7 +6330,7 @@ |
4917 | msgstr "" |
4918 | |
4919 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4920 | -#: apt_preferences.5.xml:269 |
4921 | +#: apt_preferences.5.xml:277 |
4922 | msgid "" |
4923 | "If any specific-form records match an available package version then the " |
4924 | "first such record determines the priority of the package version. Failing " |
4925 | @@ -6299,14 +6339,14 @@ |
4926 | msgstr "" |
4927 | |
4928 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4929 | -#: apt_preferences.5.xml:275 |
4930 | +#: apt_preferences.5.xml:283 |
4931 | msgid "" |
4932 | "For example, suppose the APT preferences file contains the three records " |
4933 | "presented earlier:" |
4934 | msgstr "" |
4935 | |
4936 | #. type: Content of: <refentry><refsect1><refsect2><programlisting> |
4937 | -#: apt_preferences.5.xml:279 |
4938 | +#: apt_preferences.5.xml:287 |
4939 | #, no-wrap |
4940 | msgid "" |
4941 | "Package: perl\n" |
4942 | @@ -6323,12 +6363,12 @@ |
4943 | msgstr "" |
4944 | |
4945 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4946 | -#: apt_preferences.5.xml:292 |
4947 | +#: apt_preferences.5.xml:300 |
4948 | msgid "Then:" |
4949 | msgstr "" |
4950 | |
4951 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4952 | -#: apt_preferences.5.xml:294 |
4953 | +#: apt_preferences.5.xml:302 |
4954 | msgid "" |
4955 | "The most recent available version of the <literal>perl</literal> package " |
4956 | "will be installed, so long as that version's version number begins with " |
4957 | @@ -6338,7 +6378,7 @@ |
4958 | msgstr "" |
4959 | |
4960 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4961 | -#: apt_preferences.5.xml:299 |
4962 | +#: apt_preferences.5.xml:307 |
4963 | msgid "" |
4964 | "A version of any package other than <literal>perl</literal> that is " |
4965 | "available from the local system has priority over other versions, even " |
4966 | @@ -6346,7 +6386,7 @@ |
4967 | msgstr "" |
4968 | |
4969 | #. type: Content of: <refentry><refsect1><refsect2><para><itemizedlist><listitem><simpara> |
4970 | -#: apt_preferences.5.xml:303 |
4971 | +#: apt_preferences.5.xml:311 |
4972 | msgid "" |
4973 | "A version of a package whose origin is not the local system but some other " |
4974 | "site listed in &sources-list; and which belongs to an " |
4975 | @@ -6355,12 +6395,12 @@ |
4976 | msgstr "" |
4977 | |
4978 | #. type: Content of: <refentry><refsect1><refsect2><title> |
4979 | -#: apt_preferences.5.xml:313 |
4980 | +#: apt_preferences.5.xml:321 |
4981 | msgid "Determination of Package Version and Distribution Properties" |
4982 | msgstr "" |
4983 | |
4984 | #. type: Content of: <refentry><refsect1><refsect2><para> |
4985 | -#: apt_preferences.5.xml:315 |
4986 | +#: apt_preferences.5.xml:323 |
4987 | msgid "" |
4988 | "The locations listed in the &sources-list; file should provide " |
4989 | "<filename>Packages</filename> and <filename>Release</filename> files to " |
4990 | @@ -6368,27 +6408,27 @@ |
4991 | msgstr "" |
4992 | |
4993 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term> |
4994 | -#: apt_preferences.5.xml:327 |
4995 | +#: apt_preferences.5.xml:335 |
4996 | msgid "the <literal>Package:</literal> line" |
4997 | msgstr "" |
4998 | |
4999 | #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> |
5000 | -#: apt_preferences.5.xml:328 |
Oh, forgot: I based this branch off http:// bzr.debian. org/apt/ debian- sid/, so lp:apt might not actually be the correct target here. My intention for this is to land in the upstream (Debian) trunk.
FYI, I backported the changes to lucid, and are now running with this version on my desktop (with compressed indexes).