summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Do not buffer writes larger than the buffer if possibleJulian Andres Klode2016-02-011-0/+6
| | | | | | It makes no sense to split a large block into multiple small blocks, so when we have the chance to write them unbuffered, do so.
* BufferedWriteFileFdPrivate: Simplify InternalWrite()Julian Andres Klode2016-02-011-9/+3
| | | | | | We do not need the loop, FileFd::Private() handles this for us. Gbp-Dch: ignore
* simple_buffer::write: Use free() instead of maxsize - size()Julian Andres Klode2016-02-011-3/+3
| | | | | | | | We want to check whether the amount of free space is smaller than the requested write size. Checking maxsize - size() is incorrect for bufferstart >= 0, as size() = end - start. Gbp-Dch: ignore
* support <libc>-<kernel>-<cpu> in architecture specsDavid Kalnischkies2016-01-314-18/+125
| | | | | | | | | | | | | | | | | | | APT has a different understanding than dpkg (#748936) what matches and what doesn't match an architecture specification as it isn't converting back (and forward) to Debian triplets. That has to eventually be solved some way or the other, but until that happens we change the matching in apt so that porters can continue their work on non-gnu libc-ports even if policy doesn't specify that yet (and dpkg just supporting it "by accident" via triplets). The initial patch was reformatted, fixed in terms of patterns containing "any-any", dealing with expanding an arch without libc to gnu while a pattern expands libc to any, the parsedepends test was fixed (the new if's were inserted one step too early) and another test just for the specifications added. Closes: #812212 Thanks: Bálint Réczey for initial patch
* test all redirection codes work as expectedDavid Kalnischkies2016-01-312-6/+14
| | | | Git-Dch: Ignore
* use CPPFLAGS instead of CXXFLAGS for stringview exportDavid Kalnischkies2016-01-311-1/+1
| | | | Git-Dch: Ignore
* fix "Mismatched free() / delete / delete []" in simple_bufferStefan Bühler2016-01-301-1/+1
|
* only warn about missing/invalid Date field for nowDavid Kalnischkies2016-01-273-12/+61
| | | | | | | | | | | | | | | | | | | | | The Date field in the Release file is useful to avoid allowing an attacker to 'downgrade' a user to earlier Release files (and hence to older states of the archieve with open security bugs). It is also needed to allow a user to define min/max values for the validation of a Release file (with or without the Release file providing a Valid-Until field). APT wasn't formally requiring this field before through and (agrueable not binding and still incomplete) online documentation declares it optional (until now), so we downgrade the error to a warning for now to give repository creators a bit more time to adapt – the bigger ones should have a Date field for years already, so the effected group should be small in any case. It should be noted that earlier apt versions had this as an error already, but only showed it if a Valid-Until field was present (or the user tried to used the configuration items for min/max valid-until). Closes: 809329
* deal better with (very) small apt::cache-start valuesDavid Kalnischkies2016-01-273-17/+26
| | | | | | | | | It is a bit academic to support values which aren't big enough to fit even the hashtables without resizing, but cleaning up ensures that we do the right thing (aka not segfaulting) even if something goes wrong in these deep layers. You still can't have very very small values through… Git-Dch: Ignore
* convert Version() and Architecture() to APT::StringViewDavid Kalnischkies2016-01-264-38/+47
| | | | | | Part of hidden classes, so conversion is abi-free. Git-Dch: Ignore
* remove unused Description methods in listparsersDavid Kalnischkies2016-01-265-32/+4
| | | | | | | These virtual methods are implemented in hidden classes, so we can drop them without breaking the ABI. Git-Dch: Ignore
* get sources for packages in multiple releases againDavid Kalnischkies2016-01-263-28/+28
| | | | | | | | | In 321213f0dcdcdaab04e01663e7a047b261400c9c Andreas Cadhalpun corrected the incorrect overriding of earlier better-fitting results with later (semi-)matches – but that broke the case in which packages are in multiple releases in the same version (and the user has both releases configured). Closes: 812497
* parse version correctly from binary Source fieldDavid Kalnischkies2016-01-263-2/+22
| | | | | | | | | | | In commit a221efc331693f8905da870141756c892911c433 I promoted the source package name and version to the binary cache for faster access by e.g. EDSP, but due to changing the interpretation length to soon we always ignored the version part of the Source field, so that packages ended up having the binary version as source version – which while usually just fine it is wrong for binary rebuilds. Closes: 812492
* stablize gtest testcase environmentDavid Kalnischkies2016-01-263-4/+26
| | | | | | | | | Avoid the dependency on a specific current path for the tar test and ensure that _system is correctly initialized (gcc-6 runs into a segfault otherwise and with it fixed starts to depend on the multi-arch configuration of the running system… not good). Git-Dch: Ignore
* act on various suggestions from cppcheckDavid Kalnischkies2016-01-265-21/+16
| | | | | Reported-By: cppcheck Git-Dch: Ignore
* drop explicit check for EWOULDBLOCK if it has the same value as EAGAINDavid Kalnischkies2016-01-261-0/+4
| | | | | | | | | gcc correctly reports that we check for the same value twice, expect that the manpage of read(2) tells us to do it for portability, so to make both sides happy lets add a little #if'ing here. Reported-By: gcc-6 Git-Dch: Ignore
* Delete copy constructor and operator= for DynamicJulian Andres Klode2016-01-261-0/+5
| | | | | | | | This would mess up reference counting and should not be allowed (it could be implemented correctly, but it would not be efficient and we do not need it). Gbp-Dch: ignore
* fix tests run via sudo checking the history fileDavid Kalnischkies2016-01-253-3/+23
| | | | Git-Dch: Ignore
* reimplement build-dep via apts normal resolverDavid Kalnischkies2016-01-2515-427/+398
| | | | | | | | | | | | | | | | | | | | | | | | build-dep was implemented by parsing the build-dependencies of a package and figuring out which packages to install/remove based on this. That means that for the first level of dependencies build-dep was implementing its very own resolver with all the benefits (aka: bugs) this gives us for not using the existing resolver for all levels. Making this work involves generating a dummy binary package with fitting Depends and Conflicts and as we can't create them out of thin air the cache generation needs to be involved so we end up writing a Packages file which we want to parse – after we have parsed the other Packages files already. With .dsc/.deb files we could add them before we started parsing anything. With a bit of care we can avoid generating too much data we have to throw away again (as many parts assume that e.g. the count of packages doesn't change midair), so that on a speed front there shouldn't be much of a difference, but output can be slightly confusing as if we have a completely valid cache on disk the "Reading package lists... Done" is printed two times – but apt is pretty quick about it in that case. Closes: #137560, #444930, #489911, #583914, #728317, #812173
* use consistently the last : as name:arch separatorDavid Kalnischkies2016-01-252-2/+2
| | | | | | | | Proper debian packages do not contain ':' in the package name, so for real packages this is a non-issue, but apt itself frequently makes use of packages with such an illegal name for internal proposes. Git-Dch: Ignore
* prefer upgrading installed provides satisfierDavid Kalnischkies2016-01-251-0/+2
| | | | | | | | If you have chosen to install a foreign architecture provider it is more reasonable to keep this provider instead of removing this one to replace it with a newer version from a (usually) more preferred arch. Git-Dch: Ignore
* treat an empty dependency field just like it doesn't existDavid Kalnischkies2016-01-251-1/+1
| | | | Git-Dch: Ignore
* always create pkg at the time pkg:arch is createdDavid Kalnischkies2016-01-253-21/+41
| | | | | | | | | To resolve dependencies like "pkg:arch" we create a package with the name "pkg:arch" and the architecture "any". We create these packages only if a dependency needs it as these kind of dependencies aren't that common. This commit ensured that in the even this architecture specific dependency is the only relation this package has we still create the underlying package to have them available in provides resolution.
* Release 1.2.11.2.1Julian Andres Klode2016-01-2557-65/+77
|
* Use c++11 for loop in AptHistoryRequestingUserMichael Vogt2016-01-251-6/+4
| | | | Git-Dch: ignore
* Store "Requested-By" user in history.log in a simpler formatMichael Vogt2016-01-251-7/+20
| | | | | Git-Dch: ignore Thanks: David Kalnischkies
* Log calling SUDO_USER or PKEXEC_UID in history.logMichael Vogt2016-01-251-0/+18
| | | | Thanks: Thomas Reusch
* Remap another (non-parameter) StringViewJulian Andres Klode2016-01-231-1/+3
| | | | | | | | | I only looked at parameters in the previous commit, which was not enough: One place also generated local string views. In this case, we only need to make ArchA dynamic, as NameA is not used after the FindPkg() call. Gbp-Dch: ignore
* Remap StringView instances pointing into the cacheJulian Andres Klode2016-01-231-0/+19
| | | | | | | | | | | | | | | | | | | | It turns out that StringViews might need to be remapped in some places because they come from the cache. For example, some sites pass a Ver.VerStr() to NewProvides(). Such a StringView would become invalid during the duration of the call if the cache is remapped, causing the program to die with a segmentation fault. We can take care of those issues by remapping string views in the same way we remap all the iterators. String views are only remapped if they point into the cache though, this allows us to write more generic code on the callee site without having to check whether the view points into the cache or not. That's not as efficient as possible, but the overhead does not appear to be measurable. Closes: #812251
* Pass the old map size to ReMap()Julian Andres Klode2016-01-232-5/+8
| | | | | | | This allows us to check if a value to be remapped was inside the cache or not, which will become useful at a later point. Gbp-Dch: ignore
* po: update zh_CN programs translationZhou Mo2016-01-221-56/+62
|
* Release 1.21.2Julian Andres Klode2016-01-1557-71/+95
|
* string_view: Drop constexpr constructor for standard compatibilityJulian Andres Klode2016-01-152-18/+12
| | | | | | | | | | | | | APT::StringView is supposed to be a temporary measure, until support for the standardized string_view is widely available. Introducing additional unstandardized features just makes porting to the standard version harder. The constexpr constructor also won't have any real effect on most systems, as the compiler will happily optimise the strlen() call away for constant strings. Gbp-Dch: ignore
* use APT::StringView for GrabWordDavid Kalnischkies2016-01-152-11/+13
| | | | Git-Dch: Ignore
* provide a constexpr char[] overload for APT::StringViewDavid Kalnischkies2016-01-152-4/+98
| | | | | | The commit also adds a few trivial tests Git-Dch: Ignore
* return correct position in APT::StringView::(r)findDavid Kalnischkies2016-01-151-8/+16
| | | | | | | The position returned is supposed to be the position of the character counted from the start of the string, but if we used the substr calling overloads the skipped over prefix wasn't considered. The pos parameter of rfind had also the wrong semantic.
* po: update simplified chinese programs translationZhou Mo2016-01-151-76/+83
|
* revert file-hash based action-merging in acquireDavid Kalnischkies2016-01-152-2/+1
| | | | | | | | | | | | | | | Introduced in 9d2a8a7388cf3b0bbbe92f6b0b30a533e1167f40 apt tries to merge actions like downloading the same (as judged by hashes) file into doing it once. The implementation was very simple in that it isn't planing at all. Turns out that it works 90% of the time just fine, but has issues in more complicated situations in which items can be in different stages downloading different files emitting potentially the "wrong" hash – like while pdiffs are worked on we might end up copying the patch instead of the result file giving us very strange errors in return. Reverting the change until we can implement a better planing solution seems to be the best course of action even if its sad. Closes: 810046
* fix M-A:foreign provides creation for unknown archsDavid Kalnischkies2016-01-144-6/+26
| | | | | | | | Architectures for packages which do not belong to the native nor a foreign architecture (dubbed barbarian for now) which are marked M-A:foreign still provide in their own architecture even if not for others. Also, other M-A:foreign (and allowed) packages provide in these barbarian architectures.
* delay build-dep variable initialisation until neededDavid Kalnischkies2016-01-141-18/+20
| | | | Git-Dch: Ignore
* update symbols fileDavid Kalnischkies2016-01-141-0/+6
| | | | git-Dch: Ignore
* evaluate sourceslist-list-format entity in vendors sources.listDavid Kalnischkies2016-01-145-9/+19
| | | | | | | | Parsing XML entity files in shell isn't exactly nice and causing the substitution with a while-read loop isn't either, but it seems to be good enough for the moment without changing too much. Thanks: Niels Thykier for reporting on IRC
* change debian related entities to a more explicit nameDavid Kalnischkies2016-01-1419-916/+949
| | | | Git-Dch: Ignore
* ensure built en-manpages are ignored by gitDavid Kalnischkies2016-01-141-0/+1
| | | | | | | Seems like the interaction between wildcards and exemptions has changed slightly, so be positively more explicit about our ignoring of en. Git-Dch: Ignore
* mark not-declared helper function for showsrc as staticDavid Kalnischkies2016-01-141-2/+2
| | | | Git-Dch: Ignore
* Do not show multiple identical apt-cache showsrc entriesMichael Vogt2016-01-142-3/+43
| | | | Closes: #734922
* test-apt-acquire-additional-files: Set file mode of touched filesJulian Andres Klode2016-01-121-0/+4
| | | | | | | | | This prevents a test suite failure on systems with weird umasks. Also set umask 000 at the beginning so we can actually check for that anywhere. Gbp-Dch: ignore
* Only enable pipelining if server is HTTP/1.1Julian Andres Klode2016-01-123-3/+13
| | | | | | | Just enabling it for anyone breaks with HTTP/1.0 servers and proxies sometimes. Closes: #810796
* AUTHORS: Update: I am active, bubulle is notJulian Andres Klode2016-01-122-6/+6
| | | | Gbp-Dch: ignore
* Sort the list of sources to be built and linkedMattia Rizzolo2016-01-113-6/+6
| | | | | | | | | Fix reproducibility issue due to readdir() order by sorting the list of sources to be built and linked. [jak@debian.org: Added summary and fixed typo] Closes: #810509