]> git.saurik.com Git - apt.git/log
apt.git
8 years agoapt-key del should correctly handle keyids prefixed with 0x
Daniel Kahn Gillmor [Fri, 4 Mar 2016 09:23:24 +0000 (10:23 +0100)] 
apt-key del should correctly handle keyids prefixed with 0x

8 years agoRelease 1.2.4 1.2.4
Julian Andres Klode [Sat, 27 Feb 2016 13:03:17 +0000 (14:03 +0100)] 
Release 1.2.4

8 years agoAdd missing numeric includes in files using std::accumulate()
Julian Andres Klode [Fri, 26 Feb 2016 14:17:14 +0000 (15:17 +0100)] 
Add missing numeric includes in files using std::accumulate()

Reported-By: Helmut Grohne on IRC
8 years agoFix crash with empty architecture list
Julian Andres Klode [Thu, 25 Feb 2016 15:46:42 +0000 (16:46 +0100)] 
Fix crash with empty architecture list

If the architecture list is empty somehow, fail normally.

LP: #1549819

8 years agopass versioned provides to external solvers in EDSP
David Kalnischkies [Tue, 16 Feb 2016 10:34:21 +0000 (11:34 +0100)] 
pass versioned provides to external solvers in EDSP

The EDSP output generated by apt didn't include the versioned provides
information so that every provides looked like an unversioned one in the
eyes of an external resolver.

8 years agoFix maintscript to properly remove 20changelog
Julian Andres Klode [Mon, 15 Feb 2016 08:04:12 +0000 (09:04 +0100)] 
Fix maintscript to properly remove 20changelog

Closes: #814754
8 years agoalways download changelogs into /tmp first
David Kalnischkies [Thu, 11 Feb 2016 21:54:49 +0000 (22:54 +0100)] 
always download changelogs into /tmp first

pkgAcqChangelog has the default behaviour of downloading a changelog to
a temporary directory (inside /tmp, not /tmp directly), which is cleaned
up on shutdown, but this can be overridden to store the changelog more
permanently – but that caries a permission problem.

For changelog we can 'easily' solve this by always downloading to a
temporary directory and only move it out of there on done.

8 years agouse local changelog from /usr/share/doc if possible
David Kalnischkies [Thu, 11 Feb 2016 20:07:56 +0000 (21:07 +0100)] 
use local changelog from /usr/share/doc if possible

If pkgAcqChangelog is told to acquire the changelog for a version it
will check first if this version is installed on the disk and if so will
use the local changelog in /usr/share/doc (possibily/likely gz
compressed) instead of downloading the file from the web.

An option is provided to disable this, which is enabled by default for
the Ubuntu vendor as they truncate the local changelogs – and for apts
--print-uris action.

8 years agoRelease 1.2.3 1.2.3
Julian Andres Klode [Wed, 10 Feb 2016 17:02:45 +0000 (18:02 +0100)] 
Release 1.2.3

Build system messed up the 1.2.2 commit by not updating the
.po files properly, so they are now.

8 years agotest: use our special downloaded dir for 'source' result
David Kalnischkies [Wed, 10 Feb 2016 13:17:06 +0000 (14:17 +0100)] 
test: use our special downloaded dir for 'source' result

Otherwise the test run as root fails seeing the
W: Can't drop privileges for downloading as file 'foo_1.tar.gz' couldn't be
accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
warning in a command which isn't supposed to warn.

One trivial test, two fixups and still counting…

Git-Dch: Ignore

8 years agoaccept any tarball compression in 814139 testcase
David Kalnischkies [Wed, 10 Feb 2016 12:50:40 +0000 (13:50 +0100)] 
accept any tarball compression in 814139 testcase

Travis still uses a dpkg version which defaults to gz and as which
compression is picked isn't all to important as long as one is just
accept any.

Git-Dch: Ignore

8 years agotest that seeking to a position earlier in the file works
Julian Andres Klode [Wed, 10 Feb 2016 12:29:19 +0000 (13:29 +0100)] 
test that seeking to a position earlier in the file works

This tests the fix for #812994, #813000

Gbp-Dch: ignore

8 years agoget dpkg lock in build-dep if cache was invalid again
David Kalnischkies [Wed, 10 Feb 2016 11:26:49 +0000 (12:26 +0100)] 
get dpkg lock in build-dep if cache was invalid again

Regression introduced in a249b3e6fd798935a02b769149c9791a6fa6ef16, which
in the case of an invalid cache would build the first part unlocked and
later pick up the (still unlocked) cache for further processing, so the
system got never locked and apt would end up complaining about being
unable to release the lock at shutdown.

The far more common case of having a valid cache worked as expected and
hence covered up the problem – especially as tests who would have
noticed it are simulations only, which do not lock.

Closes: 814139
Reported-By: Balint Reczey <balint@balintreczey.hu>
Reported-By: Helmut Grohne <helmut@subdivi.de> on IRC
8 years agoSet seekpos to 0 after reopening files in Seek()
Julian Andres Klode [Wed, 10 Feb 2016 11:45:47 +0000 (12:45 +0100)] 
Set seekpos to 0 after reopening files in Seek()

If we just reopened the file, we also need to reset the current
seek position when we reset the buffer, otherwise the code will
not try to seek to the position given to Skip (from 0), but will
try to seek to old offset + the position given to skip.

Closes: #812994, #813000
8 years agoRelease 1.2.2 1.2.2
Julian Andres Klode [Thu, 4 Feb 2016 21:50:52 +0000 (22:50 +0100)] 
Release 1.2.2

8 years agoUse some semantically more correct buffer operations
Julian Andres Klode [Thu, 4 Feb 2016 17:33:30 +0000 (18:33 +0100)] 
Use some semantically more correct buffer operations

When writing into the buffer write to free() bytes starting
at getend(), instead of buffersize_max bytes at get()
-> get() is a read pointer.

This makes no difference in practice though, as we reset
the buffer before the call, so start = end = 0.

Gbp-Dch: ignore

8 years agotest: Fix apt-key tests to work with current gpg 2.1
Julian Andres Klode [Thu, 4 Feb 2016 17:13:05 +0000 (18:13 +0100)] 
test: Fix apt-key tests to work with current gpg 2.1

8 years agoCorrectly report write errors when flushing buffered writer
Julian Andres Klode [Thu, 4 Feb 2016 17:00:42 +0000 (18:00 +0100)] 
Correctly report write errors when flushing buffered writer

We cannot just return false without setting an error,
as InternalWrite does not set one itself.

8 years agorred: If there were I/O errors, fail
Julian Andres Klode [Thu, 4 Feb 2016 16:56:27 +0000 (17:56 +0100)] 
rred: If there were I/O errors, fail

We basically ignored errors from writing and flushing, let's
not do that.

8 years agoNEWS: Prefix the keep deb option with Binary::apt::
Julian Andres Klode [Thu, 4 Feb 2016 15:32:35 +0000 (16:32 +0100)] 
NEWS: Prefix the keep deb option with Binary::apt::

I find the per-binary overrides a bit confusing in their current
form, but let's tell the user the truth.

Closes: #812111
8 years agoMerge branch 'master' of github.com:adrian17/apt
Julian Andres Klode [Thu, 4 Feb 2016 00:08:50 +0000 (01:08 +0100)] 
Merge branch 'master' of github.com:adrian17/apt

8 years agoedspsystem.cc: include <stdlib.h> for mkdtemp
Fredrik Fornwall [Mon, 7 Dec 2015 23:48:50 +0000 (00:48 +0100)] 
edspsystem.cc: include <stdlib.h> for mkdtemp

Include <stdlib.h> to ensure that mkdtemp(3) is defined to improve
general portability and fix a specific build failure on Android.

Closes: #807367
8 years agoAvoid temporary strings in SubstVar.
Adrian Wielgosik [Tue, 2 Feb 2016 22:15:25 +0000 (23:15 +0100)] 
Avoid temporary strings in SubstVar.

Microoptimization, but still gives a measurable 2-3% improvement
when using commands with lots of output like `apt list`.

8 years agoavoid building dependency tree in 'source' command
David Kalnischkies [Wed, 3 Feb 2016 13:56:49 +0000 (14:56 +0100)] 
avoid building dependency tree in 'source' command

We don't need the dependencies for obvious reasons and we don't need the
candidate version either, so building a pkgDepCache is wasted effort,
which we can stop doing now that build-dep cleared the path.

8 years agouse pkgCache::VS instead of pkgDepCache::VS()
David Kalnischkies [Wed, 3 Feb 2016 11:58:23 +0000 (12:58 +0100)] 
use pkgCache::VS instead of pkgDepCache::VS()

The later just calls the earlier, but the later needs the fullblown
dependency cache to be initialized, which is a very costly operation and
isn't done anymore that early in the run as we would need to throw away
and rebuild it again after we got all the information about source pkgs.

As we end up with a nullptr for the pkgDepCache, we use a slightly
longer calling convention to make sure that we use the pkgCache
directly, avoiding nullptr induced segfaults and costly operations.

Git-Dch: Ignore
Reported-By: Balint Reczey <balint@balintreczey.hu>
8 years agoDrop the g++ build-dep, transition is done
Julian Andres Klode [Wed, 3 Feb 2016 08:58:45 +0000 (09:58 +0100)] 
Drop the g++ build-dep, transition is done

It's not cross-satisfiable.

Reported-by: Helmut Grohne
8 years agoMerge github.com:adrian17/apt
Julian Andres Klode [Tue, 2 Feb 2016 21:19:36 +0000 (22:19 +0100)] 
Merge github.com:adrian17/apt

8 years agoTry avoiding loading long package description
Adrian Wielgosik [Tue, 2 Feb 2016 17:55:48 +0000 (18:55 +0100)] 
Try avoiding loading long package description

It's a fairly expensive call and it's called on every package,
even though it's usually only used when we're interested in
a small number of packages.
Long description is currently only shown by this function
when using `apt search X --full`.

On my PC, this patch speeds up `apt list` by roughly 20%
and `apt list --installed` by 1-2%.

8 years agoSpanish program translation update
Manuel "Venturi" Porras Peralta [Tue, 2 Feb 2016 13:32:22 +0000 (14:32 +0100)] 
Spanish program translation update

Closes: 813467
8 years agoDo not buffer writes larger than the buffer if possible
Julian Andres Klode [Mon, 1 Feb 2016 15:46:53 +0000 (16:46 +0100)] 
Do not buffer writes larger than the buffer if possible

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.

8 years agoBufferedWriteFileFdPrivate: Simplify InternalWrite()
Julian Andres Klode [Mon, 1 Feb 2016 15:28:43 +0000 (16:28 +0100)] 
BufferedWriteFileFdPrivate: Simplify InternalWrite()

We do not need the loop, FileFd::Private() handles this for us.

Gbp-Dch: ignore

8 years agosimple_buffer::write: Use free() instead of maxsize - size()
Julian Andres Klode [Mon, 1 Feb 2016 15:25:03 +0000 (16:25 +0100)] 
simple_buffer::write: Use free() instead of maxsize - size()

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

8 years agosupport <libc>-<kernel>-<cpu> in architecture specs
David Kalnischkies [Sun, 31 Jan 2016 21:32:45 +0000 (22:32 +0100)] 
support <libc>-<kernel>-<cpu> in architecture specs

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

8 years agotest all redirection codes work as expected
David Kalnischkies [Thu, 28 Jan 2016 23:52:48 +0000 (00:52 +0100)] 
test all redirection codes work as expected

Git-Dch: Ignore

8 years agouse CPPFLAGS instead of CXXFLAGS for stringview export
David Kalnischkies [Thu, 28 Jan 2016 23:49:07 +0000 (00:49 +0100)] 
use CPPFLAGS instead of CXXFLAGS for stringview export

Git-Dch: Ignore

8 years agofix "Mismatched free() / delete / delete []" in simple_buffer
Stefan Bühler [Sat, 30 Jan 2016 11:06:02 +0000 (12:06 +0100)] 
fix "Mismatched free() / delete / delete []" in simple_buffer

8 years agoonly warn about missing/invalid Date field for now
David Kalnischkies [Wed, 27 Jan 2016 14:28:17 +0000 (15:28 +0100)] 
only warn about missing/invalid Date field for now

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
8 years agodeal better with (very) small apt::cache-start values
David Kalnischkies [Tue, 26 Jan 2016 23:15:12 +0000 (00:15 +0100)] 
deal better with (very) small apt::cache-start values

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

8 years agoconvert Version() and Architecture() to APT::StringView
David Kalnischkies [Tue, 26 Jan 2016 22:18:05 +0000 (23:18 +0100)] 
convert Version() and Architecture() to APT::StringView

Part of hidden classes, so conversion is abi-free.

Git-Dch: Ignore

8 years agoremove unused Description methods in listparsers
David Kalnischkies [Tue, 26 Jan 2016 20:58:57 +0000 (21:58 +0100)] 
remove unused Description methods in listparsers

These virtual methods are implemented in hidden classes, so we can drop
them without breaking the ABI.

Git-Dch: Ignore

8 years agoget sources for packages in multiple releases again
David Kalnischkies [Tue, 26 Jan 2016 20:09:47 +0000 (21:09 +0100)] 
get sources for packages in multiple releases again

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
8 years agoparse version correctly from binary Source field
David Kalnischkies [Tue, 26 Jan 2016 18:17:11 +0000 (19:17 +0100)] 
parse version correctly from binary Source field

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
8 years agostablize gtest testcase environment
David Kalnischkies [Tue, 26 Jan 2016 16:42:33 +0000 (17:42 +0100)] 
stablize gtest testcase environment

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

8 years agoact on various suggestions from cppcheck
David Kalnischkies [Mon, 25 Jan 2016 21:13:52 +0000 (22:13 +0100)] 
act on various suggestions from cppcheck

Reported-By: cppcheck
Git-Dch: Ignore

8 years agodrop explicit check for EWOULDBLOCK if it has the same value as EAGAIN
David Kalnischkies [Mon, 25 Jan 2016 19:05:54 +0000 (20:05 +0100)] 
drop explicit check for EWOULDBLOCK if it has the same value as EAGAIN

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

8 years agoDelete copy constructor and operator= for Dynamic
Julian Andres Klode [Tue, 26 Jan 2016 11:42:39 +0000 (12:42 +0100)] 
Delete copy constructor and operator= for Dynamic

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

8 years agofix tests run via sudo checking the history file
David Kalnischkies [Mon, 25 Jan 2016 18:14:37 +0000 (19:14 +0100)] 
fix tests run via sudo checking the history file

Git-Dch: Ignore

8 years agoreimplement build-dep via apts normal resolver
David Kalnischkies [Thu, 21 Jan 2016 22:22:00 +0000 (23:22 +0100)] 
reimplement build-dep via apts normal resolver

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
8 years agouse consistently the last : as name:arch separator
David Kalnischkies [Fri, 22 Jan 2016 01:00:42 +0000 (02:00 +0100)] 
use consistently the last : as name:arch separator

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

8 years agoprefer upgrading installed provides satisfier
David Kalnischkies [Wed, 20 Jan 2016 14:49:46 +0000 (15:49 +0100)] 
prefer upgrading installed provides satisfier

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

8 years agotreat an empty dependency field just like it doesn't exist
David Kalnischkies [Wed, 20 Jan 2016 11:24:48 +0000 (12:24 +0100)] 
treat an empty dependency field just like it doesn't exist

Git-Dch: Ignore

8 years agoalways create pkg at the time pkg:arch is created
David Kalnischkies [Tue, 19 Jan 2016 23:09:36 +0000 (00:09 +0100)] 
always create pkg at the time pkg:arch is created

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.

8 years agoRelease 1.2.1 1.2.1
Julian Andres Klode [Mon, 25 Jan 2016 17:04:27 +0000 (18:04 +0100)] 
Release 1.2.1

8 years agoUse c++11 for loop in AptHistoryRequestingUser
Michael Vogt [Mon, 25 Jan 2016 16:17:54 +0000 (17:17 +0100)] 
Use c++11 for loop in AptHistoryRequestingUser

Git-Dch: ignore

8 years agoStore "Requested-By" user in history.log in a simpler format
Michael Vogt [Mon, 25 Jan 2016 15:49:48 +0000 (16:49 +0100)] 
Store "Requested-By" user in history.log in a simpler format

Git-Dch: ignore
Thanks: David Kalnischkies

8 years agoLog calling SUDO_USER or PKEXEC_UID in history.log
Michael Vogt [Mon, 25 Jan 2016 13:44:42 +0000 (14:44 +0100)] 
Log calling SUDO_USER or PKEXEC_UID in history.log

Thanks: Thomas Reusch

8 years agoRemap another (non-parameter) StringView
Julian Andres Klode [Sat, 23 Jan 2016 14:37:59 +0000 (15:37 +0100)] 
Remap another (non-parameter) StringView

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

8 years agoRemap StringView instances pointing into the cache
Julian Andres Klode [Sat, 23 Jan 2016 12:15:31 +0000 (13:15 +0100)] 
Remap StringView instances pointing into the cache

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
8 years agoPass the old map size to ReMap()
Julian Andres Klode [Sat, 23 Jan 2016 14:02:48 +0000 (15:02 +0100)] 
Pass the old map size to ReMap()

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

8 years agopo: update zh_CN programs translation
Zhou Mo [Fri, 22 Jan 2016 02:07:10 +0000 (02:07 +0000)] 
po: update zh_CN programs translation

8 years agoRelease 1.2 1.2
Julian Andres Klode [Fri, 15 Jan 2016 18:53:52 +0000 (19:53 +0100)] 
Release 1.2

8 years agostring_view: Drop constexpr constructor for standard compatibility
Julian Andres Klode [Fri, 15 Jan 2016 18:18:29 +0000 (19:18 +0100)] 
string_view: Drop constexpr constructor for standard compatibility

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

8 years agouse APT::StringView for GrabWord
David Kalnischkies [Fri, 15 Jan 2016 16:54:43 +0000 (17:54 +0100)] 
use APT::StringView for GrabWord

Git-Dch: Ignore

8 years agoprovide a constexpr char[] overload for APT::StringView
David Kalnischkies [Fri, 15 Jan 2016 16:11:19 +0000 (17:11 +0100)] 
provide a constexpr char[] overload for APT::StringView

The commit also adds a few trivial tests

Git-Dch: Ignore

8 years agoreturn correct position in APT::StringView::(r)find
David Kalnischkies [Fri, 15 Jan 2016 14:57:32 +0000 (15:57 +0100)] 
return correct position in APT::StringView::(r)find

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.

8 years agopo: update simplified chinese programs translation
Zhou Mo [Fri, 15 Jan 2016 09:45:44 +0000 (09:45 +0000)] 
po: update simplified chinese programs translation

8 years agorevert file-hash based action-merging in acquire
David Kalnischkies [Fri, 15 Jan 2016 01:45:35 +0000 (02:45 +0100)] 
revert file-hash based action-merging in acquire

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
8 years agofix M-A:foreign provides creation for unknown archs
David Kalnischkies [Thu, 14 Jan 2016 19:13:16 +0000 (20:13 +0100)] 
fix M-A:foreign provides creation for unknown archs

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.

8 years agodelay build-dep variable initialisation until needed
David Kalnischkies [Tue, 12 Jan 2016 10:12:56 +0000 (11:12 +0100)] 
delay build-dep variable initialisation until needed

Git-Dch: Ignore

8 years agoupdate symbols file
David Kalnischkies [Thu, 14 Jan 2016 16:16:30 +0000 (17:16 +0100)] 
update symbols file

git-Dch: Ignore

8 years agoevaluate sourceslist-list-format entity in vendors sources.list
David Kalnischkies [Thu, 14 Jan 2016 13:45:37 +0000 (14:45 +0100)] 
evaluate sourceslist-list-format entity in vendors sources.list

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

8 years agochange debian related entities to a more explicit name
David Kalnischkies [Thu, 14 Jan 2016 15:11:28 +0000 (16:11 +0100)] 
change debian related entities to a more explicit name

Git-Dch: Ignore

8 years agoensure built en-manpages are ignored by git
David Kalnischkies [Tue, 12 Jan 2016 10:15:39 +0000 (11:15 +0100)] 
ensure built en-manpages are ignored by git

Seems like the interaction between wildcards and exemptions has changed
slightly, so be positively more explicit about our ignoring of en.

Git-Dch: Ignore

8 years agomark not-declared helper function for showsrc as static
David Kalnischkies [Thu, 14 Jan 2016 16:24:27 +0000 (17:24 +0100)] 
mark not-declared helper function for showsrc as static

Git-Dch: Ignore

8 years agoDo not show multiple identical apt-cache showsrc entries
Michael Vogt [Thu, 14 Jan 2016 08:28:47 +0000 (09:28 +0100)] 
Do not show multiple identical apt-cache showsrc entries

Closes: #734922
8 years agotest-apt-acquire-additional-files: Set file mode of touched files
Julian Andres Klode [Tue, 12 Jan 2016 22:45:59 +0000 (23:45 +0100)] 
test-apt-acquire-additional-files: Set file mode of touched files

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

8 years agoOnly enable pipelining if server is HTTP/1.1
Julian Andres Klode [Tue, 12 Jan 2016 14:18:12 +0000 (15:18 +0100)] 
Only enable pipelining if server is HTTP/1.1

Just enabling it for anyone breaks with HTTP/1.0 servers and
proxies sometimes.

Closes: #810796
8 years agoAUTHORS: Update: I am active, bubulle is not
Julian Andres Klode [Tue, 12 Jan 2016 10:27:13 +0000 (11:27 +0100)] 
AUTHORS: Update: I am active, bubulle is not

Gbp-Dch: ignore

8 years agoSort the list of sources to be built and linked
Mattia Rizzolo [Sat, 9 Jan 2016 10:45:34 +0000 (10:45 +0000)] 
Sort the list of sources to be built and linked

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
8 years agosearch: Handle packages without description
Julian Andres Klode [Mon, 11 Jan 2016 16:36:58 +0000 (17:36 +0100)] 
search: Handle packages without description

If a package has no description, we would crash in search. While
this should not happen, there seem to be some weird cases where
it does.

A safer way might be to make the whole parser thing safe
against this, so pkgRecords::Lookup(Desc.FileList()) works
and returns a parser where all values are empty. This would
also fix all other instances of this bug, if there are any.

Closes: #810622
8 years agoVersion the build-depends on liblz4-dev to >= 0.0~r126
Julian Andres Klode [Sat, 9 Jan 2016 00:38:05 +0000 (01:38 +0100)] 
Version the build-depends on liblz4-dev to >= 0.0~r126

We need r126 of lz4, as this introduces the lz4frame.h
header.

8 years agoBump dpkg-dev and debhelper build-dep to make lintian happy
Julian Andres Klode [Sat, 9 Jan 2016 00:31:05 +0000 (01:31 +0100)] 
Bump dpkg-dev and debhelper build-dep to make lintian happy

This is not really needed anymore, as those are in stable,
but as they are versioned already, let's just do it.

Gbp-Dch: ignore

8 years agoDo not break apt-file (<< 3.0~exp1~), 2.X works fine
Julian Andres Klode [Sat, 9 Jan 2016 00:27:22 +0000 (01:27 +0100)] 
Do not break apt-file (<< 3.0~exp1~), 2.X works fine

There's no point in breaking all older apt-file versions just
because one old experimental upload was broken.

8 years agoNEWS: Refer to apt(8) instead of apt(1)
Julian Andres Klode [Sat, 9 Jan 2016 00:25:06 +0000 (01:25 +0100)] 
NEWS: Refer to apt(8) instead of apt(1)

Reported-By: Mattia Rizzolo (on IRC)
Gbp-Dch: ignore

8 years agoRelease 1.2~exp1 1.2_exp1
Julian Andres Klode [Fri, 8 Jan 2016 20:42:06 +0000 (21:42 +0100)] 
Release 1.2~exp1

8 years agoBreak apt-file (<< 3.0~exp1~)
Julian Andres Klode [Fri, 8 Jan 2016 20:40:38 +0000 (21:40 +0100)] 
Break apt-file (<< 3.0~exp1~)

Gbp-Dch: ignore

8 years agoInstall bash completion with correct name
Julian Andres Klode [Fri, 8 Jan 2016 20:36:53 +0000 (21:36 +0100)] 
Install bash completion with correct name

Move the completion to completions/bash/apt and install all
bash completions from completions/bash.

Gbp-Dch: ignore

8 years agolibapt-pkg5.0: Add Breaks appstream (<< 0.9.0-3~)
Julian Andres Klode [Fri, 8 Jan 2016 20:23:24 +0000 (21:23 +0100)] 
libapt-pkg5.0: Add Breaks appstream (<< 0.9.0-3~)

This ensures that a compatible version of appstream is
installed, that is, one that disables lz4 compression
for its data.

8 years agoStore the size of strings in the cache
Julian Andres Klode [Fri, 8 Jan 2016 10:12:14 +0000 (11:12 +0100)] 
Store the size of strings in the cache

By storing the size of the string in the cache, we can make use of
it when comparing the names in the hashtable in pkgCache::FindGrp.

8 years agoHashSumValue::Set: Do not provide const char* overload
Julian Andres Klode [Fri, 8 Jan 2016 20:19:32 +0000 (21:19 +0100)] 
HashSumValue::Set: Do not provide const char* overload

Hide the std::string overload instead of providing a
const char * one, the old variant was stupid.

Gbp-Dch: ignore

8 years agodebListParser: Convert another ParseDepends to StringView
Julian Andres Klode [Fri, 8 Jan 2016 19:57:23 +0000 (20:57 +0100)] 
debListParser: Convert another ParseDepends to StringView

I overlooked this

Gbp-Dch: ignore

8 years agoNEWS: Document recompression of indices
Julian Andres Klode [Fri, 8 Jan 2016 19:45:22 +0000 (20:45 +0100)] 
NEWS: Document recompression of indices

8 years agoremove uncompressed leftover partial file before pdiff bootstrap
David Kalnischkies [Fri, 8 Jan 2016 16:51:23 +0000 (17:51 +0100)] 
remove uncompressed leftover partial file before pdiff bootstrap

The code already deals with compressed leftovers, but forgot the
uncompressed files. The opertunity is picked to reorder this code and
add debug messages about the actions taken as well as produce such a
leftover file in the associated testcase.

8 years agouse filesize of compressed pdiffs for the limit if possible
David Kalnischkies [Fri, 8 Jan 2016 14:30:05 +0000 (15:30 +0100)] 
use filesize of compressed pdiffs for the limit if possible

With the addition of the $HASH-Download field in the .diff/Index we got
the size of the compressed patches for 'free', so if that information is
available we can use it for a more fitting calculation of the size
requirements of the patches vs. the complete file.

Note that this predicts a too small size in the transition case in which
the information isn't available for all patches, but figuring this out
would be a lot of code for practically nothing as only one update can
ever be in such a transition phase.

8 years agotests: limit autotest-functionname generation to sane characters
David Kalnischkies [Fri, 8 Jan 2016 12:08:19 +0000 (13:08 +0100)] 
tests: limit autotest-functionname generation to sane characters

Some (older) versions of bash seem to be allergic to a method named
"aptautotest_grep_^apt" (note the caret). Unlikely that we are going to
write autotests for such commands so we could just skip those, but lets
instead just use "normal" characters in the names and strip the rest as
we already did with the (arguable more common) '-'.

8 years agosupport '-' and no parameter for stdin in apt-helper cat-file
David Kalnischkies [Thu, 7 Jan 2016 23:35:39 +0000 (00:35 +0100)] 
support '-' and no parameter for stdin in apt-helper cat-file

This way it works more similar to the compressor binaries, which we
can relief in this way from their job in the test framework avoiding the
need of adding e.g. liblz4-tool to the test dependencies.

8 years agokeep compressed indexes in a low-cost format
David Kalnischkies [Thu, 7 Jan 2016 19:32:09 +0000 (20:32 +0100)] 
keep compressed indexes in a low-cost format

Downloading and storing are two different operations were different
compression types can be preferred. For downloading we provide the
choice via Acquire::CompressionTypes::Order as there is a choice to
be made between download size and speed – and limited by whats available
in the repository.

Storage on the other hand has all compressions currently supported by
apt available and to reduce runtime of tools accessing these files the
compression type should be a low-cost format in terms of decompression.

apt traditionally stores its indexes uncompressed on disk, but has
options to keep them compressed. Now that apt downloads additional files
we also deal with files which simply can't be stored uncompressed as
they are just too big (like Contents for apt-file). Traditionally they
are downloaded in a low-cost format (gz) as repositories do not provide
other formats, but there might be even lower-cost formats and for
download we could introduce higher-cost in the repositories.

Downloading an entire index potentially requires recompression to
another format, so an update takes potentially longer – but big files
are usually updated via pdiffs which has to de- and re-compress anyhow
and does it on the fly anyhow, so there is no extra time needed and in
general it seems to be benefitial to invest the time in update to save
time later on file access.

8 years agotests: try to pick up compressors from config automatically
David Kalnischkies [Sun, 3 Jan 2016 21:39:46 +0000 (22:39 +0100)] 
tests: try to pick up compressors from config automatically

Less hardcoding should help while introducing new compressors.

Git-Dch: Ignore

8 years agoallow pdiff bootstrap from all supported compressors
David Kalnischkies [Tue, 5 Jan 2016 23:05:24 +0000 (00:05 +0100)] 
allow pdiff bootstrap from all supported compressors

There is no reason to enforce that the file we start the bootstrap with
is compressed with a compressor which is available online. This allows
us to change the on-disk format as well as deals with repositories
adding/removing support for a specific compressor.

8 years agoensure compression cleanup even without lists-cleanup
David Kalnischkies [Tue, 5 Jan 2016 23:08:04 +0000 (00:08 +0100)] 
ensure compression cleanup even without lists-cleanup

If we store files compressed in lists/ and the file switched compression
formats we happened to retain the "old" format, but by default the
cleanup process catched this oversight and removed the file.
[The initial situation described doesn't arise as we store no files by
default compressed and even with apt-file configuring Contents files, we
don't really have that problem as there is just .gz files for those.]

We solve this by just removing any uncompressed as well as compressed
(we support) file just before we move the 'new' version of the file in.