]> git.saurik.com Git - apt.git/log
apt.git
11 years agorefactor onError relabeling of DestFile as '.FAILED'
David Kalnischkies [Wed, 2 Oct 2013 23:12:18 +0000 (01:12 +0200)] 
refactor onError relabeling of DestFile as '.FAILED'

This helps ensure three things:
- each error is reported via ReportMirrorFailure
- if DestFile doesn't exist, do not attempt rename
- renames happen for every error

The last one wasn't the case for Size mismatches, which isn't nice, but
not a exploitable problem per-se as the file isn't picked up and remains
in partial/ where the following download-try will at most take it for a
partial request which fails the hashsum verification later on

Git-Dch: Ignore

11 years agotests: fix some problems travis encounters
David Kalnischkies [Wed, 2 Oct 2013 11:34:59 +0000 (13:34 +0200)] 
tests: fix some problems travis encounters

Git-Dch: Ignore

11 years agodon't consider holds for autoremoval
David Kalnischkies [Mon, 30 Sep 2013 16:51:40 +0000 (18:51 +0200)] 
don't consider holds for autoremoval

We can't remove packages which are held back by the user with a hold, so
marking them (or its dependencies) as garbage will lead our autoremover
into madness – and given that the package is important enough that the
user has held it back it can't be garbage (at least at the moment), so
even if a front-end wants to use the info just for information display
its a good idea to not consider it garbage for them.

Closes: 724995
11 years agohandle complete responses to https range requests
David Kalnischkies [Mon, 30 Sep 2013 14:41:16 +0000 (16:41 +0200)] 
handle complete responses to https range requests

Servers might respond with a complete file either because they don't
support Ranges at all or the If-Range condition isn't statisfied, so we
have to parse the headers curl gets ourself to seek or truncate the file
we have so far.

This also finially adds the testcase testing a bunch of partial
situations for both, http and https - which is now all green.

Closes: 617643, 667699
LP: 1157943

11 years agofix partial (206 and 416) support in https
David Kalnischkies [Mon, 30 Sep 2013 11:42:33 +0000 (13:42 +0200)] 
fix partial (206 and 416) support in https

As lengthy discussed in lp:1157943 partial https support was utterly
broken as a 206 response was handled as an (unhandled) error. This is
the first part of fixing it by supporting a 206 response and starting to
deal with 416.

11 years agorefactor http client implementation
David Kalnischkies [Tue, 17 Sep 2013 20:35:44 +0000 (22:35 +0200)] 
refactor http client implementation

No effective behavior change, just shuffling big junks of code between
methods and classes to split them into those strongly related to our
client implementation and those implementing HTTP.

The idea is to get HTTPS to a point in which most of the implementation
can be shared even though the client implementations itself is
completely different. This isn't anywhere near yet though, but it should
beenough to reuse at least a few lines from http in https now.

Git-Dch: Ignore

11 years agoreplace "filesize - 1" trick in http with proper 416 handling
David Kalnischkies [Mon, 16 Sep 2013 22:41:58 +0000 (00:41 +0200)] 
replace "filesize - 1" trick in http with proper 416 handling

Our http client requests the "filesize - 1" for the small edgecase of
handling a file which was completely downloaded, but not yet moved to
the correct place as we get 416 errors in that case, but as we can
handle 416 returns now we just special-case the situation of requesting
the exact filesize and handle it as a 200 without content instead.

11 years agoretry without partial data after a 416 response
David Kalnischkies [Mon, 16 Sep 2013 21:21:11 +0000 (23:21 +0200)] 
retry without partial data after a 416 response

If we get a 416 from the server it means the Range we asked for is above
the real filesize of the file on the server. Mostly this happens if the
server isn't supporting If-Range, but regardless of how we end up with
the partial data, the data is invalid so we discard it and retry with a
fresh plate and hope for the best.

Old behavior was to consider 416 an error and retry with a different
compression until we ran out of compression and requested the
uncompressed file (which doesn't exist on most mirrors) with an accept
line which server answered with "406 Not Acceptable".

Closes: 710924
11 years agoadd Range and If-Range support in the webserver
David Kalnischkies [Sun, 15 Sep 2013 22:02:21 +0000 (00:02 +0200)] 
add Range and If-Range support in the webserver

Git-Dch: Ignore

11 years agoaccess _config via GET requests in the webserver
David Kalnischkies [Sun, 15 Sep 2013 20:54:04 +0000 (22:54 +0200)] 
access _config via GET requests in the webserver

Git-Dch: Ignore

11 years agoAPT has no bugs
David Kalnischkies [Mon, 30 Sep 2013 07:08:33 +0000 (09:08 +0200)] 
APT has no bugs

Okay, maybe it does have a "few", but the DDTP issues mentioned in this
file are long since gone, so lets just drop the file and look at the PTS
instead: http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=apt

Git-Dch: Ignore

11 years agotest: apt-get source with more than one argument
David Kalnischkies [Thu, 26 Sep 2013 14:25:11 +0000 (16:25 +0200)] 
test: apt-get source with more than one argument

Closes: 722549
Git-Dch: Ignore

11 years agoprint-uris prints regardless of quiet-level again
David Kalnischkies [Thu, 26 Sep 2013 12:56:45 +0000 (14:56 +0200)] 
print-uris prints regardless of quiet-level again

While the InstallPackages code was moved from apt-get into the private
library the output was moved from (std::)cout to c1out which isn't shown
in quiet level 2 (and above), so we flip back to std::cout to ensure
that it is always printed as you are not going to use --print-uris if
you don't want to see the uris…

Closes: 722207
11 years agocompression-neutral message for missing data.tar member
David Kalnischkies [Thu, 26 Sep 2013 12:06:25 +0000 (14:06 +0200)] 
compression-neutral message for missing data.tar member

It even reuses the message used for the other check-for members, so one
less message to translate (good, as not that many people will ever see it).

Closes: 722710
11 years agopkg from only trusted sources keeps being trusted
David Kalnischkies [Thu, 26 Sep 2013 11:32:49 +0000 (13:32 +0200)] 
pkg from only trusted sources keeps being trusted

--allow-unauthenticated switches the download to a pre-0.6 system in
which a package can come from any source, rather than that trusted
packages can only come from trusted sources.

To allow this the flag used to set all packages as untrusted, which is a
bit much, so we check now if the package can be acquired via an
untrusted source and only if this is the case set it as untrusted.

As APT nowadays supports setting sources as trusted via a flag in the
sources.list this mode shouldn't be used that much anymore though.

[Note that this is not the patch from the BTS]

Closes: 617690
11 years agodon't strip :any from dependencies in single-arch
David Kalnischkies [Sat, 21 Sep 2013 12:23:02 +0000 (14:23 +0200)] 
don't strip :any from dependencies in single-arch

The parser goes a bit to far by stripping :any from dependencies in a
single architecture environment. the flag "Multi-Arch: allowed" doesn't
care any architecture restrictions in that case (as in single arch
everything is native), but it still limits the possible versions
statisfying the dependency so stripping :any over-simplifies in upgrade
situations from "Multi-Arch: none" to "Multi-Arch: allowed".

Closes: 723586
11 years agoFix typo in apt-private/private-show.cc. Thanks to Benjamin Keresa. Closes: #724073
Christian PERRIER [Mon, 23 Sep 2013 05:06:18 +0000 (07:06 +0200)] 
Fix typo in apt-private/private-show.cc. Thanks to Benjamin Keresa. Closes: #724073

11 years agoreleasing package apt version 0.9.11.4
Michael Vogt [Fri, 20 Sep 2013 12:11:48 +0000 (14:11 +0200)] 
releasing package apt version 0.9.11.4

11 years agodo not trust FileFd::Eof() in pkgTagFile::Fill()
David Kalnischkies [Fri, 20 Sep 2013 11:34:22 +0000 (13:34 +0200)] 
do not trust FileFd::Eof() in pkgTagFile::Fill()

The Eof check was added (by me of course) in
0aae6d14390193e25ab6d0fd49295bd7b131954f
as part of a fix up ~a month ago (at DebConf).

The idea was not that bad, but doesn't make that much sense either
as this bit is set by the FileFd based on Actual as well, so this is
basically doing the same check again – with the difference that the
HitEof bit can still linger from a previous Read we did at the end of
the file, but have seek'd away from it now.

Combined with the length of entries, entry order and other not that
easily controllable conditions you can be 'lucky' enough to hit this
problem in a way which even visible (truncating of other fields might
 not be visible easily, like 'Tags' and others).

Closes: 723705
Thanks: Cyril Brulebois

11 years agoadd a testcase for 100 char long path truncate bug #689582
David Kalnischkies [Thu, 12 Sep 2013 11:42:37 +0000 (13:42 +0200)] 
add a testcase for 100 char long path truncate bug #689582

Git-Dch: Ignore

11 years agodon't truncate 100 char long paths in tar extraction
Oskari Saarenmaa [Thu, 12 Sep 2013 11:20:01 +0000 (13:20 +0200)] 
don't truncate 100 char long paths in tar extraction

When a data.tar.{gz,xz} contains a path name that is exactly
100 characters long, it will get truncated to 99 chars upon
extraction in ExtractTar::Go().

Using all of the 100 available characters for the filename
seems to be new behaviour in gnu tar.

Closes: #689582
Thanks: Mika Eloranta for the testcase!

11 years agoFix regression of "apt-cache unmet -i", thanks to Daniel Schepler (closes: #722324) 0.9.11.3
Michael Vogt [Tue, 10 Sep 2013 15:41:01 +0000 (17:41 +0200)] 
Fix regression of "apt-cache unmet -i", thanks to Daniel Schepler (closes: #722324)

11 years agoprepare upload
Michael Vogt [Tue, 10 Sep 2013 15:32:50 +0000 (17:32 +0200)] 
prepare upload

11 years agouse FileFd in HashSum test to unbreak non-linux ports
David Kalnischkies [Tue, 3 Sep 2013 21:00:37 +0000 (23:00 +0200)] 
use FileFd in HashSum test to unbreak non-linux ports

The testcode happily mixes FILE* operations and direct access to fds
which is even a bit suprising that it works on linux and worked so
long for non-linux ports, so we switch to usage of FileFd instead
which provides us with simple fd-only operations. Its overkill for this
test as its a bare file and we ask for the descriptor all the time, but
it shouldn't hurt to implicitly test it a bit this way.

Closes: 721723
Thanks: Aaron M. Ucko

11 years agofix vim-style foldmarker
David Kalnischkies [Fri, 30 Aug 2013 15:18:20 +0000 (17:18 +0200)] 
fix vim-style foldmarker

Git-Dch: Ignore

11 years agoRemove invalid "-f" option for apt-get check
Michael Vogt [Sun, 1 Sep 2013 16:34:34 +0000 (18:34 +0200)] 
Remove invalid "-f" option for apt-get check

Thanks to Philipp Weis (closes: #721477)

11 years agoMerge branch 'debian/sid' of ssh://git.debian.org/git/apt/apt into debian/sid
Michael Vogt [Sun, 1 Sep 2013 16:33:26 +0000 (18:33 +0200)] 
Merge branch 'debian/sid' of ssh://git.debian.org/git/apt/apt into debian/sid

11 years agofix typo (mkostemp->mkstemp)
Michael Vogt [Sat, 31 Aug 2013 15:05:23 +0000 (17:05 +0200)] 
fix typo (mkostemp->mkstemp)

11 years agoprepare upload of 0.9.12 0.9.11.2
Michael Vogt [Sat, 31 Aug 2013 14:31:53 +0000 (16:31 +0200)] 
prepare upload of 0.9.12

11 years agoMerge remote-tracking branch 'mvo/feature/install-progress' into debian/sid
Michael Vogt [Wed, 28 Aug 2013 08:59:54 +0000 (10:59 +0200)] 
Merge remote-tracking branch 'mvo/feature/install-progress' into debian/sid

11 years agoMerge remote-tracking branch 'mvo/feature/upgrade-with-cmdline' into debian/sid
Michael Vogt [Wed, 28 Aug 2013 07:15:26 +0000 (09:15 +0200)] 
Merge remote-tracking branch 'mvo/feature/upgrade-with-cmdline' into debian/sid

11 years agoMerge remote-tracking branch 'donkult/debian/sid' into debian/sid
Michael Vogt [Wed, 28 Aug 2013 07:12:41 +0000 (09:12 +0200)] 
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid

11 years agoComplete Italian translation
Christian PERRIER [Wed, 28 Aug 2013 04:54:13 +0000 (06:54 +0200)] 
Complete Italian translation

11 years agoconfigurable compression for testcases
David Kalnischkies [Tue, 27 Aug 2013 22:24:32 +0000 (00:24 +0200)] 
configurable compression for testcases

Compressing files in 4 different styles eats test-time for no practical
gain if we don't test them explicitly, so default to just building 'gz'
compressed files as it is the simplest compression algorithm supported

Git-Dch: Ignore

11 years agoold-style dpkg foreign architecture adding for tests
David Kalnischkies [Tue, 27 Aug 2013 21:14:49 +0000 (23:14 +0200)] 
old-style dpkg foreign architecture adding for tests

Looks like the travis service runs on Ubuntu in a version which has dpkg
with an earlier interface implementation, so lets try if we can't make
the framework work with this dpkg version as well.

Git-Dch: Ignore

11 years agouse mkstemp instead of mkostemp in FileFd::Open()
David Kalnischkies [Tue, 27 Aug 2013 19:50:22 +0000 (21:50 +0200)] 
use mkstemp instead of mkostemp in FileFd::Open()

FileFd currently supports no fileflags which would make sense to provide
via mkostemp, so we can just use mkstemp here which is a standard
function compared to glib extension mkostemp.

O_CREAT (Create) and O_TRUNC (Empty) are implied by O_EXCL, which is the
mode mkstemp uses by default. The file description is opened ReadWrite,
but that used to be the default for FileFd in the old times and not a
problem as the difference is needed by FileFd to decide in which way the
compressor pipeline needs to be created (if any).

Git-Dch: Ignore

11 years agoreplace usage of potential dangerous mktemp with mkstemp
Angel Guzman Maeso [Tue, 27 Aug 2013 19:29:01 +0000 (21:29 +0200)] 
replace usage of potential dangerous mktemp with mkstemp

Avoid the warning "the use of `mktemp' is dangerous,
better use `mkstemp' or `mkdtemp'". It is not strictly necessary to
change the usage from a security point of view here, but mktemp is
also removed from the standard since POSIX.1-2008.

The mkostemp call returns a file descriptor the logic for
TemporaryFileName has been changed accordingly to get the same results.
The file permissions are corrected by using fchmod() as the default for
FileFd is 666 while mkstemp creates files with 600 by default.

11 years agoUpdate Italian translation. Closes: #721030
Christian PERRIER [Tue, 27 Aug 2013 17:01:46 +0000 (19:01 +0200)] 
Update Italian translation. Closes: #721030

11 years agoallow pkg manipulation in the upgrade/dist-upgrade commandline, e.g. apt-get dist...
Michael Vogt [Tue, 27 Aug 2013 06:50:06 +0000 (08:50 +0200)] 
allow pkg manipulation in the upgrade/dist-upgrade commandline, e.g. apt-get dist-upgrade 2vcard- 4g8+

11 years agouse SPtr<pkgProblemResolver> to simply code
Michael Vogt [Tue, 27 Aug 2013 06:38:05 +0000 (08:38 +0200)] 
use SPtr<pkgProblemResolver> to simply code

11 years agoupdate changelog
Michael Vogt [Mon, 26 Aug 2013 16:52:13 +0000 (18:52 +0200)] 
update changelog

11 years agoapt-private/private-cmndline.cc: fix typo: s/deselect-upgrade/dselect-upgrade/
Michael Vogt [Mon, 26 Aug 2013 16:52:06 +0000 (18:52 +0200)] 
apt-private/private-cmndline.cc: fix typo: s/deselect-upgrade/dselect-upgrade/

11 years agodselect/install: add new DSELECT_UPGRADE_OPTS="-f"
Michael Vogt [Mon, 26 Aug 2013 16:51:40 +0000 (18:51 +0200)] 
dselect/install: add new DSELECT_UPGRADE_OPTS="-f"

11 years agodselect/install:
Michael Vogt [Mon, 26 Aug 2013 16:45:32 +0000 (18:45 +0200)] 
dselect/install:

* dselect/install:
 - remove "-f" option for apt-get dselect-upgrade (closes: #720532)

11 years agoMerge branch 'debian/sid' of ssh://git.debian.org/git/apt/apt into debian/sid
Michael Vogt [Mon, 26 Aug 2013 16:42:58 +0000 (18:42 +0200)] 
Merge branch 'debian/sid' of ssh://git.debian.org/git/apt/apt into debian/sid

Conflicts:
debian/changelog

11 years agoChangelog entry for Vietnamese translation
Christian PERRIER [Sun, 25 Aug 2013 13:40:44 +0000 (15:40 +0200)] 
Changelog entry for Vietnamese translation

11 years agoUpdate Vietnamese translation to 0.9.11
Tran Ngoc Quan [Sun, 25 Aug 2013 07:20:31 +0000 (14:20 +0700)] 
Update Vietnamese translation to 0.9.11

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
11 years agoupdate changelog for update 0.9.11.1
Michael Vogt [Sat, 24 Aug 2013 07:13:57 +0000 (09:13 +0200)] 
update changelog for update

11 years agoMerge remote-tracking branch 'mvo/debian/sid' into debian/sid
Michael Vogt [Sat, 24 Aug 2013 07:07:37 +0000 (09:07 +0200)] 
Merge remote-tracking branch 'mvo/debian/sid' into debian/sid

11 years agodselect/update: remove "-f" option as its not being used in the context of apt-get...
Michael Vogt [Fri, 23 Aug 2013 11:44:21 +0000 (13:44 +0200)] 
dselect/update: remove "-f" option as its not being used in the context of apt-get update

11 years agoftparchive/override.cc: fix "skip empty lines" code, the pointer needs to get de...
Michael Vogt [Fri, 23 Aug 2013 07:15:00 +0000 (09:15 +0200)] 
ftparchive/override.cc: fix "skip empty lines" code, the pointer needs to get de-referenced first

11 years agoMerge branch 'debian/sid' of ssh://git.debian.org/git/apt/apt into debian/sid
Michael Vogt [Thu, 22 Aug 2013 21:00:31 +0000 (23:00 +0200)] 
Merge branch 'debian/sid' of ssh://git.debian.org/git/apt/apt into debian/sid

11 years agodo chdir("/") after chroot()
Michael Vogt [Thu, 22 Aug 2013 20:30:20 +0000 (22:30 +0200)] 
do chdir("/") after chroot()

11 years agoMerge remote-tracking branch 'donkult/debian/sid' into debian/sid
Michael Vogt [Thu, 22 Aug 2013 20:26:05 +0000 (22:26 +0200)] 
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid

11 years agoapt-pkg:contrib Avoid compiler warning about sign-compare
Ángel Guzmán Maeso [Wed, 21 Aug 2013 17:38:35 +0000 (19:38 +0200)] 
apt-pkg:contrib Avoid compiler warning about sign-compare

The fix avoid the warning "comparison between signed and
unsigned integer expressions [-Wsign-compare]"· The index for the loop needs
to be unsigned for compare with globbuf.gl_pathc structure
member

11 years agoMerge remote-tracking branch 'mvo/bugfix/coverity' into debian/sid
Michael Vogt [Thu, 22 Aug 2013 20:24:27 +0000 (22:24 +0200)] 
Merge remote-tracking branch 'mvo/bugfix/coverity' into debian/sid

Conflicts:
apt-pkg/tagfile.h

11 years agoMerge remote-tracking branch 'mvo/debian/sid' into debian/sid
Michael Vogt [Thu, 22 Aug 2013 20:23:04 +0000 (22:23 +0200)] 
Merge remote-tracking branch 'mvo/debian/sid' into debian/sid

11 years agofix compiler warning about sign-compare
Angel Guzman Maeso [Thu, 22 Aug 2013 14:54:20 +0000 (16:54 +0200)] 
fix compiler warning about sign-compare

This fix avoids the warning "comparison between signed and unsigned
integer expressions [-Wsign-compare]". The index for the loop
needs to be unsigned for compare with globbuf.gl_pathc structure
member.

11 years agoadd versions to manpages-it Replaces+Breaks
David Kalnischkies [Thu, 22 Aug 2013 14:46:43 +0000 (16:46 +0200)] 
add versions to manpages-it Replaces+Breaks

In the meantime the package was updated to remove the old APT manpages
from this package, so we can now add a Breaks and version it, too.

The intial Replaces was added in:
b57220d815aedbc023847d0885e08c6ed50e629a

11 years agoadd a breaks libapt-inst for FileFd changes in 0.9.9
David Kalnischkies [Thu, 22 Aug 2013 14:36:31 +0000 (16:36 +0200)] 
add a breaks libapt-inst for FileFd changes in 0.9.9

Partial upgrades…

The fix for 704608 assumes that bf35c19b817cc1474b3deabce0b0953c248bad42
was applied to libapt-inst which isn't the case for partial upgrades of
course, so break it to ensure that it is the case.

Closes: 720449
11 years agoprepare unstable upload 0.9.11
Michael Vogt [Wed, 21 Aug 2013 15:59:30 +0000 (17:59 +0200)] 
prepare unstable upload

11 years agofix incorrect bugnumber for the Pre-Install-Pkgs hook (Closes: #671726)
Michael Vogt [Mon, 19 Aug 2013 13:54:23 +0000 (15:54 +0200)] 
fix incorrect bugnumber for the Pre-Install-Pkgs hook (Closes: #671726)

11 years agoadd lintian override for no-shlibs-control-file and only install libapt-private.so...
Michael Vogt [Mon, 19 Aug 2013 12:59:29 +0000 (14:59 +0200)] 
add lintian override for no-shlibs-control-file and only install libapt-private.so.* instead libapt-private.so

11 years agoMerge pull request #3 from cbaines/debian/sid
Michael Vogt [Mon, 19 Aug 2013 12:39:55 +0000 (05:39 -0700)] 
Merge pull request #3 from cbaines/debian/sid

Add test for bug 507998

11 years agoprepare for release
Michael Vogt [Mon, 19 Aug 2013 09:00:44 +0000 (11:00 +0200)] 
prepare for release

11 years agoupdate changelog
Michael Vogt [Sat, 17 Aug 2013 08:03:02 +0000 (10:03 +0200)] 
update changelog

11 years agoMerge remote-tracking branch 'mvo/feature/apt-binary2' into debian/sid
Michael Vogt [Sat, 17 Aug 2013 07:18:36 +0000 (09:18 +0200)] 
Merge remote-tracking branch 'mvo/feature/apt-binary2' into debian/sid

Conflicts:
cmdline/apt-get.cc

11 years agoMerge remote-tracking branch 'donkult/debian/sid' into debian/sid
Michael Vogt [Sat, 17 Aug 2013 06:38:09 +0000 (08:38 +0200)] 
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid

11 years agoMerge branch 'debian/sid' of git://git.debian.org/git/apt/apt into debian/sid
Christian PERRIER [Sat, 17 Aug 2013 05:58:13 +0000 (07:58 +0200)] 
Merge branch 'debian/sid' of git://git.debian.org/git/apt/apt into debian/sid

11 years agoFrench translation update.
Christian PERRIER [Sat, 17 Aug 2013 05:58:02 +0000 (07:58 +0200)] 
French translation update.

11 years agoAdd test for bug 507998
Christopher Baines [Fri, 16 Aug 2013 10:44:00 +0000 (12:44 +0200)] 
Add test for bug 507998

11 years agoallow Pre-Install-Pkgs hooks to get info over an FD != stdin
David Kalnischkies [Tue, 13 Aug 2013 16:18:15 +0000 (18:18 +0200)] 
allow Pre-Install-Pkgs hooks to get info over an FD != stdin

This adds ::InfoFD option alongside the ::Version one to request sending
the information to the specified FD, by default it is STDIN as it was
the case before.

The environment variable APT_HOOK_INFO_FD contains the FD the data is on as
a confirmation that the APT version used understood the request.

Allowing the hook to choose the FD is needed/helpful e.g. for shellscripts
which have a hard time accessing FDs above 9 (as >= 10 are usually used
 internally by them)

Closes: #671728
11 years agouse malloc instead of new[] in pkgTagFile
David Kalnischkies [Thu, 15 Aug 2013 15:26:30 +0000 (17:26 +0200)] 
use malloc instead of new[] in pkgTagFile

We don't need initialized memory for pkgTagFile, but more to the point
we can use realloc this way which hides the bloody details of increasing
the size of the buffer used.

Git-Dch: Ignore

11 years agoensure that pkgTagFile isn't writing past Buffer length
David Kalnischkies [Thu, 15 Aug 2013 14:49:51 +0000 (16:49 +0200)] 
ensure that pkgTagFile isn't writing past Buffer length

In 91c4cc14d3654636edf997d23852f05ad3de4853 I removed the +256 from
the pkgTagFile call parsing Release files as I couldn't find a
mentioning of a reason for why and it was marked as XXX which suggested
that at least someone else was suspicious.

It turns out that it is indeed "documented", it just didn't found it at
first but the changelog of apt 0.6.6 (29. Dec 2003) mentions:
  * Restore the ugly hack I removed from indexRecords::Load which set the
    pkgTagFile buffer size to (file size)+256.  This is concealing a bug,
    but I can't fix it right now.  This should fix the segfaults that
    folks are seeing with 0.6.[45].

The bug it is "hiding" is that if pkgTagFile works with a file which doesn't
end in a double newline it will be adding it without checking if the Buffer
is big enough to store them. Its also not a good idea to let the End
pointer be past the end of our space, even if we don't access the data.

Closes: 719629
11 years agoset MALLOC_CHECK_ and MALLOC_PERTURB_ for testcases
David Kalnischkies [Thu, 15 Aug 2013 14:45:09 +0000 (16:45 +0200)] 
set MALLOC_CHECK_ and MALLOC_PERTURB_ for testcases

In bugreport deb:719629 Paul Wise mentions both to enable some malloc
checks and as more testing can't hurt we enable both for all testcases.

Git-Dch: Ignore

11 years agorework the parameter creation for the Hashsum test
David Kalnischkies [Thu, 15 Aug 2013 14:41:16 +0000 (16:41 +0200)] 
rework the parameter creation for the Hashsum test

Avoids having to different places from which test binaries are called

Git-Dch: Ignore

11 years agodo not call make from libapt/run-tests if its called by make
David Kalnischkies [Thu, 15 Aug 2013 14:36:32 +0000 (16:36 +0200)] 
do not call make from libapt/run-tests if its called by make

If we are called by make everything is build already and
so this is just a noise nop we can just skip.
(Noisy as it complains about being unable to communicate with
 the other makes to coordinate with the jobserver)

Git-Dch: Ignore

11 years agoinit the pkgTagFile with the size of the Release file
David Kalnischkies [Tue, 13 Aug 2013 19:46:32 +0000 (21:46 +0200)] 
init the pkgTagFile with the size of the Release file

Release files are basically one big Section, so we might safe some
Resize circles by starting with the filesize.

Git-Dch: Ignore

11 years agoadd PACKAGE_MATCHER_ABI_COMPAT mode for now so that this branch can be merged without...
Michael Vogt [Thu, 15 Aug 2013 11:39:32 +0000 (13:39 +0200)] 
add PACKAGE_MATCHER_ABI_COMPAT mode for now so that this branch can be merged without breaking ABI

11 years ago* lp:~mvo/apt/add-glob-function:
Michael Vogt [Wed, 17 Oct 2012 08:27:50 +0000 (10:27 +0200)] 
* lp:~mvo/apt/add-glob-function:
  -  add Glob() to fileutl.{cc,h}
Conflicts:
apt-pkg/contrib/fileutl.h
debian/changelog

11 years ago* lp:~mvo/apt/config-clear:
Michael Vogt [Wed, 17 Oct 2012 08:29:52 +0000 (10:29 +0200)] 
* lp:~mvo/apt/config-clear:
  - support Configuration.Clear() for a clear of the entire
    configuration
Conflicts:
debian/changelog

11 years agomerge patch from Daniel Hartwig to Show a error message if {,dist-}upgrade is used...
Michael Vogt [Tue, 23 Apr 2013 06:16:21 +0000 (08:16 +0200)] 
merge patch from Daniel Hartwig to  Show a error message if {,dist-}upgrade is used with additional
    arguments (closes: #705510)

11 years agomerge patch from Daniel Hartwig to Clarify units of Acquire::http::Dl-Limit (closes...
Michael Vogt [Tue, 23 Apr 2013 06:15:06 +0000 (08:15 +0200)] 
merge patch from Daniel Hartwig to  Clarify units of Acquire::http::Dl-Limit (closes: #705445)
Conflicts:
debian/changelog

11 years agomake destructors virtual
Michael Vogt [Thu, 15 Aug 2013 07:04:25 +0000 (09:04 +0200)] 
make destructors virtual

11 years agoreally build apt.install
Michael Vogt [Mon, 12 Aug 2013 21:59:44 +0000 (23:59 +0200)] 
really build apt.install

11 years agoinstall libapt-private* into the apt binary
Michael Vogt [Mon, 12 Aug 2013 21:42:35 +0000 (23:42 +0200)] 
install libapt-private* into the apt binary

11 years agoMerge remote-tracking branch 'upstream/debian/sid' into feature/apt-binary2
Michael Vogt [Mon, 12 Aug 2013 21:35:21 +0000 (23:35 +0200)] 
Merge remote-tracking branch 'upstream/debian/sid' into feature/apt-binary2

11 years agofix typo in the test for abi-compliance-checker
Michael Vogt [Mon, 12 Aug 2013 21:33:57 +0000 (23:33 +0200)] 
fix typo in the test for abi-compliance-checker

11 years agosquash merge of the feature/apt-binary branch without the changes from experimental
Michael Vogt [Mon, 12 Aug 2013 21:24:08 +0000 (23:24 +0200)] 
squash merge of the feature/apt-binary branch without the changes from experimental

11 years agoupdate changelog for upload 0.9.10
Michael Vogt [Mon, 12 Aug 2013 19:45:59 +0000 (21:45 +0200)] 
update changelog for upload

11 years agodo not call 'apt-key update' in apt.postinst
David Kalnischkies [Mon, 12 Aug 2013 15:26:54 +0000 (17:26 +0200)] 
do not call 'apt-key update' in apt.postinst

The debian-archive-keyring package ships trusted.gpg.d fragment files
for a while now and dropped their call to 'apt-key update', so there is
no need for use to call it as the keys will always be available.

This also finally allows a user to remove key(ring)s without APT to
overriding this decision by readding them with this step.

The functionality is kept around in the odd case that an old
debian-archive-keyring package is used which still calls 'apt-key
update' and depends on the import (hence, we also do not enforce a newer
version of the debian-archive-keyring via our dependencies)

11 years agolet apt-key del work better with softlink and single key keyrings
David Kalnischkies [Mon, 12 Aug 2013 14:19:37 +0000 (16:19 +0200)] 
let apt-key del work better with softlink and single key keyrings

Having fragement files means there is a good chance that there is one
key per keyring, so deal with that as well as with setups in which
keyrings are linked into trusted.gpg.d as we can't just modify those
files (they might be in /usr for example).

11 years agoensure that testcases exiting because of set -e aren't successful
David Kalnischkies [Mon, 12 Aug 2013 13:51:42 +0000 (15:51 +0200)] 
ensure that testcases exiting because of set -e aren't successful

Git-Dch: Ignore

11 years agomake the keyring locations in apt-key configurable
David Kalnischkies [Sun, 11 Aug 2013 22:36:52 +0000 (00:36 +0200)] 
make the keyring locations in apt-key configurable

Might come in handy for more than just a simple testcase.

11 years agodo not double-slash paths in apt-key
David Kalnischkies [Sun, 11 Aug 2013 22:33:37 +0000 (00:33 +0200)] 
do not double-slash paths in apt-key

Closes: 665411
11 years agouse a tmpfile for trustdb.gpg in apt-key
David Kalnischkies [Sun, 11 Aug 2013 22:19:10 +0000 (00:19 +0200)] 
use a tmpfile for trustdb.gpg in apt-key

for some "interesting" reason gpg decides that it needs to update its
trustdb.gpg file in a --list-keys command even if right before gpg is
asked to --check-trustdb. That wouldn't be as bad if it wouldn't modify
the keyring being listed at that moment as well, which generates not
only warnings which are not a problem for us, but as the keyring
modified can be in /usr it modified files which aren't allowed to be
modified.

The suggested solution in the bugreport is running --check-trustdb
unconditionally in an 'apt-key update' call, but this command will not
be used in the future and this could still potentially bite us in
net-update or adv calls. All of this just to keep a file around, which
we do not need…

The commit therefore switches to the use of a temporary created
trusted.gpg file for everyone and asks gpg to not try to update the
trustdb after its intial creation, which seems to avoid the problem
altogether.

It is using your also faked secring btw as calling the check-trustdb
without a keyring is a lot slower …

Closes: #687611
Thanks: Andreas Beckmann for the initial patch!

11 years agoalways use our own trustdb.gpg in apt-key
David Kalnischkies [Thu, 11 Jul 2013 18:07:22 +0000 (20:07 +0200)] 
always use our own trustdb.gpg in apt-key

APT doesn't care for the trustdb.gpg, but gnupg requires one even for
the simplest commands, so we either use the one root has available in
/etc or if we don't have access to it (as only root can read that file)
we create a temporary directory to store a trustdb.gpg in it.

We can't create just a temporary file as gpg requires the given
trustdb.gpg file to be valid (if it exists), so we would have to remove
the file before calling gnupg which would allow mktemp (and co) to hand
exactly this filename out to another program (unlikely, but still).

11 years agoadd a not documented apt-key --fakeroot option
David Kalnischkies [Thu, 11 Jul 2013 17:20:09 +0000 (19:20 +0200)] 
add a not documented apt-key --fakeroot option

Usually, most apt-key commands require root, so the script is checking
for being run as root, but in your tests we use a non-root location, so
we don't need to be root and therefore need an option to skip the check.

Git-Dch: Ignore

11 years agouse our _error stack to generate openpty errors
David Kalnischkies [Sat, 13 Jul 2013 21:14:41 +0000 (23:14 +0200)] 
use our _error stack to generate openpty errors

While we don't want these error messages on our usual stack, we can use
our usual infrastructure to generate an error message with all the usual
bells like errno and strerror attached.

Git-Dch: Ignore

11 years agodo not try to chown if not run as root
David Kalnischkies [Sat, 13 Jul 2013 21:05:55 +0000 (23:05 +0200)] 
do not try to chown if not run as root

If this code is run as non-root we are in a special situation (e.g. in
our testcases) where it is obvious that we can't enforce user/group on
any file, so skip this code altogether instead of bugging users with
an error message – which we also switch to a warning as a failure to
open the file is "just" a warning, so the 'wrong' owner shouldn't be
that much of an issue.

The file is still handled with chmod, so all the security we can enforce
is still enforced of course, which also gets a warning if it fails.

Git-Dch: Ignore