]> git.saurik.com Git - apt.git/log
apt.git
9 years agoMerge remote-tracking branch 'upstream/debian/jessie' into debian/sid
Michael Vogt [Fri, 22 May 2015 14:17:08 +0000 (16:17 +0200)] 
Merge remote-tracking branch 'upstream/debian/jessie' into debian/sid

Conflicts:
apt-pkg/deb/dpkgpm.cc

9 years agoparse arch-qualified Provides correctly
Helmut Grohne [Mon, 9 Mar 2015 17:11:10 +0000 (18:11 +0100)] 
parse arch-qualified Provides correctly

The underlying problem is that libapt-pkg does not correctly parse these
provides. Internally, it creates a version named "baz:i386" with
architecture amd64. Of course, such a package name is invalid and thus
this version is completely inaccessible. Thus, this bug should not cause
apt to accept a broken situation as valid. Nevertheless, it prevents
using architecture qualified depends.

Closes: 777071
9 years agoAdd regression test for LP: #1445239
Michael Vogt [Fri, 22 May 2015 14:05:05 +0000 (16:05 +0200)] 
Add regression test for LP: #1445239

Add a regression test that reproduced the hang of apt when a
partial file is present.

Git-Dch: ignore

9 years agoRename "Size" in ServerState to TotalFileSize
Michael Vogt [Fri, 22 May 2015 13:40:18 +0000 (15:40 +0200)] 
Rename "Size" in ServerState to TotalFileSize

The variable "Size" was misleading and caused bug #1445239. To
avoid similar issues in the future, rename it to make the meaning
more obvious.

git-dch: ignore

9 years agoFix endless loop in apt-get update that can cause disk fillup
Michael Vogt [Fri, 22 May 2015 13:28:53 +0000 (15:28 +0200)] 
Fix endless loop in apt-get update that can cause disk fillup

The apt http code parses Content-Length and Content-Range. For
both requests the variable "Size" is used and the semantic for
this Size is the total file size. However Content-Length is not
the entire file size for partital file requests. For servers that
send the Content-Range header first and then the Content-Length
header this can lead to globbing of Size so that its less than
the real file size. This may lead to a subsequent passing of a
negative number into the CircleBuf which leads to a endless
loop that writes data.

Thanks to Anton Blanchard for the analysis and initial patch.

LP: #1445239

9 years agoMerge remote-tracking branch 'upstream/debian/sid' into debian/sid
Michael Vogt [Fri, 22 May 2015 12:17:04 +0000 (14:17 +0200)] 
Merge remote-tracking branch 'upstream/debian/sid' into debian/sid

9 years agoMove sysconf(_SC_OPEN_MAX); out of the for() loop to avoid unneeded syscalls
Michael Vogt [Tue, 28 Apr 2015 15:55:00 +0000 (17:55 +0200)] 
Move sysconf(_SC_OPEN_MAX); out of the for() loop to avoid unneeded syscalls

9 years agoreleasing package apt version 1.0.9.9 1.0.9.9
Michael Vogt [Tue, 28 Apr 2015 14:15:25 +0000 (16:15 +0200)] 
releasing package apt version 1.0.9.9

9 years agoremove "first package seen is native package" assumption
David Kalnischkies [Wed, 22 Apr 2015 10:06:40 +0000 (12:06 +0200)] 
remove "first package seen is native package" assumption

The fix for #777760 causes packages of foreign (and the native)
architectures, to be created correctly, but invalidates (like the
previously existing, but policy-forbidden architecture-less packages
we had to support for some upgrade scenarios) the assumption that the
first (and only) package in the cache for a single architecture system
must be the package for the native architecture (as, where should the
other architectures come from, right? Wrong.).

Depending on the order of parsing sources more or less packages can be
effected by this. The effects are strange (for apt it mostly effects
simulation/debug output, but also apt-mark on these specific packages),
which complicates debugging, but relatively harmless if understood as
most actions do not need direct named access to packages.

The problem is fixed by removing the single-arch special casing in the
paths who had them (Cache.FindPkg), so they use the same code as
multi-arch systems, which use them as a wrapper for Grp.FindPkg.

Note that single-arch system code was using Grp.FindPkg before as well
if a Grp structure was handily available, so we don't introduce new
untested code here: We remove more brittle special cases which are less
tested instead (this was planed to be done for Stretch anyhow).

Note further that the method with the assumption itself isn't fixed. As
it is a private method I opted for declaring it deprecated instead and
remove all its call positions. As it is private no-one can call this
method legally (thanks to how c++ works by default its still an exported
symbol through) and fixing it basically means reimplementing code we
already have in Grp.FindPkg.

Removing rather than fixing seems hence like a good solution.

Closes: 782777
Thanks: Axel Beckert for testing

9 years agoRevert "HttpsMethod::Fetch(): Zero the FetchResult object when leaving due to 404"
Michael Vogt [Mon, 13 Apr 2015 16:57:22 +0000 (12:57 -0400)] 
Revert "HttpsMethod::Fetch(): Zero the FetchResult object when leaving due to 404"

This reverts commit 1296bc7c466181a7978c313c40a041b34ce3eaeb.

9 years agorelease 1.0.9.8
David Kalnischkies [Mon, 13 Apr 2015 05:25:06 +0000 (07:25 +0200)] 
release 1.0.9.8

9 years agoparse specific-arch dependencies correctly on single-arch systems
David Kalnischkies [Sun, 12 Apr 2015 17:16:01 +0000 (19:16 +0200)] 
parse specific-arch dependencies correctly on single-arch systems

On single-arch the parsing was creating groupnames like 'apt:amd64' even
through it should be 'apt' and a package in it belonging to architecture
amd64. The result for foreign architectures was as expected: The
dependency isn't satisfiable, but for native architecture it means the
wrong package (ala apt:amd64:amd64) is linked so this is also not
satisfiable, which is very much not expected.

No longer excluding single-arch from this codepath allows the generation
of the correct links, which still link to non-exisiting packages for
foreign dependencies, but natives link to the expected native package
just as if no architecture was given.

For negative arch-specific dependencies ala Conflicts this matter was
worse as apt will believe there isn't a Conflict to resolve, tricking it
into calculating a solution dpkg will refuse.

Architecture specific positive dependencies are rare in jessie – the
only one in amd64 main is foreign –, negative dependencies do not even
exist. Neither class has a native specimen, so no package in jessie is
effected by this bug, but it might be interesting for stretch upgrades.
This also means the regression potential is very low.

Closes: 777760
9 years agokeyids in "apt-key del" should be case-insensitive
David Kalnischkies [Tue, 7 Apr 2015 20:34:34 +0000 (22:34 +0200)] 
keyids in "apt-key del" should be case-insensitive

gnupg is case-insensitive about keyids, so back then apt-key called it
directly any keyid was accepted, but now that we work more with the
keyid ourself we regressed to require uppercase keyids by accident.

This is also inconsistent with other apt-key commands which still use
gnupg directly. A single case-insensitive grep and we are fine again.

Closes: 781696
9 years agodemote VectorizeString gcc attribute from const to pure
David Kalnischkies [Tue, 7 Apr 2015 16:31:12 +0000 (18:31 +0200)] 
demote VectorizeString gcc attribute from const to pure

g++-5 generates a slightly broken libapt which doesn't split
architecture configurations correctly resulting in e.g. Packages files
requested for the bogus architecture 'amd64,i386' instead of for amd64
and i386.

The reason is an incorrectly applied attribute marking the function as
const, while functions with pointer arguments are not allowed to be
declared as such (note that char& is a char* in disguise). Demoting the
attribute to pure fixes this issue – better would be dropping the & from
char but that is an API change…

Neither earlier g++ versions nor clang use this attribute to generate
broken code, so we don't need a rebuild of dependencies or anything and
g++-5 isn't even included in jessie, but the effect is so strange and
apt popular enough to consider avoiding this problem anyhow.

9 years agofix crash in order writing in pkgDPkgPM::WriteApportReport()
Michael Vogt [Tue, 7 Apr 2015 10:20:56 +0000 (12:20 +0200)] 
fix crash in order writing in pkgDPkgPM::WriteApportReport()

libapt can be configured to write various bits of information to a file
creating a report via apport. This is disabled by default in Debian and
apport residing only in /experimental so far, but Ubuntu and other
derivatives have this (in some versions) enabled by default and there is
no regression potentially here.

The crash is caused by a mismatch of operations vs. strings for
operations, so adding the missing strings for these operations solves
the problem.

[commit message by David Kalnischkies]

LP: #1436626

9 years agoavoid depends on std::string implementation for pkgAcquire::Item::Mode
David Kalnischkies [Tue, 7 Apr 2015 14:58:44 +0000 (16:58 +0200)] 
avoid depends on std::string implementation for pkgAcquire::Item::Mode

In /experimental this is resolved by deprecating Mode and moving to a
new std::string, but that breaks ABI of course, so that was out of
question. We can't change to a malloc/free style c-string either as
Mode is public and hence a library user could be setting this as well.
std::string implementors actually helped us out here with copy-on-write
which means that while the variable "obviously" runs out of scope here,
in reality you get the correct result as the string we work with here
comes from the configuration in which it is still valid. Such a
dependency on magic is bad of course, but its still interesting that
only python3 seems to have an issue with it…

With some silly explicit if-else assigning we can sidestep this issue
while retaining the same output for 99.99% of all users (= noone
actually configures additional compression algorithms which are also
provided by repositories…), but even for these 0.01% its just a small
change in the display as Mode can not be used for anything else.
Example: apt/aptitude uses it in its 'update' implementations in the
one-line progress at the bottom for specific items.

Closes: 781858
9 years agoproperly handle expected filesize in https
David Kalnischkies [Tue, 7 Apr 2015 12:34:04 +0000 (14:34 +0200)] 
properly handle expected filesize in https

The worker expects that the methods tell him when they start or finish
downloading a file. Various information pieces are passed along in this report
including the (expected) filesize. https is using a "global" struct for
reporting which made it 'reuse' incorrect values in some cases like a
non-existent InRelease fallbacking to Release{,.gpg} resulting in an incorrect
size-mismatch warning scaring and desensitizing users as well as being subject
to a race between the write_data and progress callbacks generating incorrect
progress reporting and potentially the same error message.

Other branches as well as the bugreports contain 'better' fixes making the
struct local and other sensible changes, but are larger as a result, so in
this version we opted for short diff with minimal effect above else instead.

Closes: 777565, 781509
Thanks: Robert Edmonds and Anders Kaseorg for initial patchs

9 years agofix another d(e)select-upgrade typo
David Kalnischkies [Sat, 7 Mar 2015 12:11:49 +0000 (13:11 +0100)] 
fix another d(e)select-upgrade typo

You would think one instance of this is enough, but
80e8d923ebc8d5f3f84eb3f922b28ca309c25026 wasn't as
globally applied as the commit message suggested…

LP: #1399037

9 years agoHttpsMethod::Fetch(): Zero the FetchResult object when leaving due to 404
Robert Edmonds [Sun, 22 Mar 2015 04:12:45 +0000 (00:12 -0400)] 
HttpsMethod::Fetch(): Zero the FetchResult object when leaving due to 404

9 years agoFix crash in pkgDPkgPM::WriteApportReport(() (LP: #1436626)
Michael Vogt [Tue, 7 Apr 2015 10:20:56 +0000 (12:20 +0200)] 
Fix crash in pkgDPkgPM::WriteApportReport(() (LP: #1436626)

9 years agotest/integration/test-apt-download-progress: fix test failure on fast hardware
Michael Vogt [Fri, 20 Mar 2015 16:38:51 +0000 (17:38 +0100)] 
test/integration/test-apt-download-progress: fix test failure on fast hardware

9 years agoreleasing package apt version 1.0.9.7 1.0.9.7
Michael Vogt [Mon, 23 Feb 2015 11:56:42 +0000 (12:56 +0100)] 
releasing package apt version 1.0.9.7

9 years agoFix crash in the apt-transport-https when Owner is NULL
Tomasz Buchert [Sun, 15 Feb 2015 23:57:29 +0000 (00:57 +0100)] 
Fix crash in the apt-transport-https when Owner is NULL

Do not crash in ServerState::HeaderLine if there is no Owner.

Closes: #778375
9 years agoreleasing package apt version 1.0.9.6
Michael Vogt [Fri, 16 Jan 2015 11:57:54 +0000 (12:57 +0100)] 
releasing package apt version 1.0.9.6

9 years agoprepare 1.0.9.6 1.0.9.6
Michael Vogt [Fri, 16 Jan 2015 09:38:46 +0000 (04:38 -0500)] 
prepare 1.0.9.6

9 years agoaward points for positive dependencies again
David Kalnischkies [Sat, 10 Jan 2015 11:31:18 +0000 (12:31 +0100)] 
award points for positive dependencies again

Commit 9ec748ff103840c4c65471ca00d3b72984131ce4 from Feb 23 last year
adds a version check after 8daf68e366fa9fa2794ae667f51562663856237c
added 8 days earlier negative points for breaks/conflicts with the
intended that only dependencies which are satisfied propagate points
(aka: old conflicts do not).

The implementation was needlessly complex and flawed through preventing
positive dependencies from gaining points like they did before these
commits making library transitions harder instead of simpler. It worked
out anyhow most of the time out of pure 'luck' (and other ways of
gaining points) or got miss attributed to being a temporary hick-up.

Closes: 774924
9 years ago128 KiB DSC files ought to be enough for everyone
David Kalnischkies [Fri, 9 Jan 2015 00:03:31 +0000 (01:03 +0100)] 
128 KiB DSC files ought to be enough for everyone

Your mileage may vary, but don't worry: There is more than one way to
do it, but our one size fits all is not a bigger hammer, but an entire
roundhouse kick! So brace yourself for the tl;dr: The limit is gone.*

Beware: This fixes also the problem that a double newline is
unconditionally added 'later' which is an overcommitment in case
the dsc filesize is limit-2 <= x <= limit.

* limited to numbers fitting into an unsigned long long.

Closes: 774893
9 years agoAdd regression test for the previous commit
Michael Vogt [Tue, 6 Jan 2015 09:54:24 +0000 (10:54 +0100)] 
Add regression test for the previous commit

The issue was that https.cc never called URIStart(), one way to
detect this is that no download progress is generated without
this call. The test now checks for this and as a side-effect will
also ensure that we do not break download progress reporting and
Acquire::{http,https}::Dl-Limit accidently.

9 years agoFix missing URIStart() for https downloads
Michael Vogt [Mon, 5 Jan 2015 09:27:53 +0000 (10:27 +0100)] 
Fix missing URIStart() for https downloads

Add a explicit ReceivedData to HttpsMethod that indicates when
we got data from the connection so that we can send URISTart()
to the parent.

This is needed because URIStart got moved in f9b4f12d from
the progress_callback to write_data() and it only checks for
Res.Size. In the old code if progress_callback is called by
libcurl (and sets Res.Size) before write_data is called then
URIStart() is never send. Making this a explicit ReceivedData
variable fixes this issue.

10 years agorelease 1.0.9.5 1.0.9.5
David Kalnischkies [Tue, 23 Dec 2014 13:11:13 +0000 (14:11 +0100)] 
release 1.0.9.5

10 years agotighten filtering of kernel images in apt.auto-removal
James McCoy [Wed, 10 Dec 2014 15:16:02 +0000 (10:16 -0500)] 
tighten filtering of kernel images in apt.auto-removal

The current filtering matches the names of the image metapackages on the
i386 architecture:

$ dpkg-query -l | awk '/^ii[ ]+(linux|kfreebsd|gnumach)-image-[0-9]/ && $2 !~ /-dbg$/ { print $2 }'
linux-image-3.16.0-4-586
linux-image-586

This results in an extra image package being removed from
APT::NeverAutoRemove, losing the intended effect of keeping the {current,
previous, latest} set of images installed.

Requiring a “.” in the package name tightens the matched package names
to those that are installing a specific version of the image, thus
eliding the meta-packages.

Closes: 772732
10 years agopass-through stdin fd instead of content if not a terminal
David Kalnischkies [Mon, 22 Dec 2014 22:14:08 +0000 (23:14 +0100)] 
pass-through stdin fd instead of content if not a terminal

Commit 299aea924ccef428219ed6f1a026c122678429e6 fixes the problem of
not logging terminal in case stdin & stdout are not a terminal. The
problem is that we are then trying to pass-through stdin content by
reading from the apt-process stdin and writing it to the stdin of the
child (dpkg), which works great for users who can control themselves,
but pipes and co are a bit less forgiving causing us to pass everything
to the first child process, which if the sending part of the pipe is
e.g. 'yes' we will never see the end of it (as the pipe is full at some
point and further writing blocks).

There is a simple solution for that of course: If stdin isn't a terminal,
we us the apt-process stdin as stdin for the child directly (We don't do
this if it is a terminal to be able to save the typed input in the log).

Closes: 773061
10 years agoalways run 'dpkg --configure -a' at the end of our dpkg callings
David Kalnischkies [Tue, 18 Nov 2014 18:53:56 +0000 (19:53 +0100)] 
always run 'dpkg --configure -a' at the end of our dpkg callings

dpkg checks now for dependencies before running triggers, so that
packages can now end up in trigger states (especially those we are not
touching at all with our calls) after apt is done running.

The solution to this is trivial: Just tell dpkg to configure everything
after we have (supposely) configured everything already. In the worst
case this means dpkg will have to run a bunch of triggers, usually it
will just do nothing though.

The code to make this happen was already available, so we just flip a
config option here to cause it to be run. This way we can keep
pretending that triggers are an implementation detail of dpkg.
--triggers-only would supposely work as well, but --configure is more
robust in regards to future changes to dpkg and something we will
hopefully make use of in future versions anyway (as it was planed at the
time this and related options were implemented).

Note that dpkg currently has a workaround implemented to allow upgrades
to jessie to be clean, so that the test works before and after. Also
note that test (compared to the one in the bug) drops the await test as
its is considered a loop by dpkg now.

Closes: 769609
10 years agodo not make PTY slave the controlling terminal
David Kalnischkies [Wed, 10 Dec 2014 21:26:59 +0000 (22:26 +0100)] 
do not make PTY slave the controlling terminal

If we have no controlling terminal opening a terminal will make this
terminal our controller, which is a serious problem if this happens to
be the pseudo terminal we created to run dpkg in as we will close this
terminal at the end hanging ourself up in the process…

The offending open is the one we do to have at least one slave fd open
all the time, but for good measure, we apply the flag also to the slave
fd opening in the child process as we set the controlling terminal
explicitely here.

This is a regression from 150bdc9ca5d656f9fba94d37c5f4f183b02bd746 with
the slight twist that this usecase was silently broken before in that it
wasn't logging the output in term.log (as a pseudo terminal wasn't
created).

Closes: 772641
10 years agodispose http(s) 416 error page as non-content
David Kalnischkies [Sat, 29 Nov 2014 16:59:52 +0000 (17:59 +0100)] 
dispose http(s) 416 error page as non-content

Real webservers (like apache) actually send an error page with a 416
response, but our client didn't expect it leaving the page on the socket
to be parsed as response for the next request (http) or as file content
(https), which isn't what we want at all… Symptom is a "Bad header line"
as html usually doesn't parse that well to an http-header.

This manifests itself e.g. if we have a complete file (or larger) in
partial/ which isn't discarded by If-Range as the server doesn't support
it (or it is just newer, think: mirror rotation).
It is a sort-of regression of 78c72d0ce22e00b194251445aae306df357d5c1a,
which removed the filesize - 1 trick, but this had its own problems…

To properly test this our webserver gains the ability to reply with
transfer-encoding: chunked as most real webservers will use it to send
the dynamically generated error pages.

(The tests and their binary helpers had to be slightly modified to
apply, but the patch to fix the issue itself is unchanged.)

Closes: 768797
10 years agoThai program translation update
Theppitak Karoonboonyanan [Mon, 22 Dec 2014 11:42:17 +0000 (12:42 +0100)] 
Thai program translation update

Closes: 772913
10 years agoJapanese program translation update
Kenshi Muto [Mon, 22 Dec 2014 11:39:24 +0000 (12:39 +0100)] 
Japanese program translation update

Closes: 772678
10 years agoChinese (simplified) program translation update
Zhou Mo [Mon, 22 Dec 2014 11:36:25 +0000 (12:36 +0100)] 
Chinese (simplified) program translation update

Closes: 771982
10 years agoFrench manpages translation update
Jean-Pierre Giraud [Mon, 22 Dec 2014 11:30:32 +0000 (12:30 +0100)] 
French manpages translation update

Closes: 771967
10 years agorelease 1.0.9.4 1.0.9.4
David Kalnischkies [Wed, 3 Dec 2014 13:51:07 +0000 (14:51 +0100)] 
release 1.0.9.4

10 years agoSpanish program translation update
Manuel "Venturi" Porras Peralta [Wed, 3 Dec 2014 11:09:21 +0000 (12:09 +0100)] 
Spanish program translation update

Closes: 771815
10 years agosupport long keyids in "apt-key del" instead of ignoring them
James McCoy [Fri, 28 Nov 2014 13:21:06 +0000 (14:21 +0100)] 
support long keyids in "apt-key del" instead of ignoring them

apt-key given a long keyid reports just "OK" all the time, but doesn't
delete the mentioned key as it doesn't find the key.

Note: In debian/experimental this was closed with
29f1b977100aeb6d6ebd38923eeb7a623e264ffe which just added the testcase
as the rewrite of apt-key had fixed this as well.

Closes: 754436
10 years agofix PTY interaction on linux and kfreebsd
David Kalnischkies [Mon, 17 Nov 2014 23:59:39 +0000 (00:59 +0100)] 
fix PTY interaction on linux and kfreebsd

We run dpkg on its own pty, so we can log its output and have our own
output around it (like the progress bar), while also allowing debconf
and configfile prompts to happen.

In commit 223ae57d468fdcac451209a095047a07a5698212 we changed to
constantly reopening the slave for kfreebsd. This has the sideeffect
though that in some cases slave and master will lose their connection on
linux, so that no output is passed along anymore. We fix this by having
always an fd referencing the slave open (linux), but we don't use it
(kfreebsd).

Failing to get our PTY up and running has many (bad) consequences
including (not limited to, nor all at ones or in any case) garbled ouput,
no output, no logging, a (partial) mixture of the previous items, …
This commit is therefore also reshuffling quiet a bit of the creation
code to get especially the output part up and running on linux and the
logging for kfreebsd.

Note that the testcase tries to cover some cases, but this is an
interactivity issue so only interactive usage can really be a good test.

Closes: 765687
10 years agoclose leaking slave fd after setting up pty magic
David Kalnischkies [Mon, 17 Nov 2014 14:06:35 +0000 (15:06 +0100)] 
close leaking slave fd after setting up pty magic

The fd moves out of scope here anyway, so we should close it properly
instead of leaking it which will tickle down to dpkg maintainer scripts.

Closes: 767774
10 years agoJapanese program translation update
Kenshi Muto [Fri, 28 Nov 2014 12:46:07 +0000 (13:46 +0100)] 
Japanese program translation update

Closes: 763033
10 years agoTurkish program translation update
Mert Dirik [Fri, 28 Nov 2014 12:43:43 +0000 (13:43 +0100)] 
Turkish program translation update

Closes: 763379
10 years agoCzech program translation update
Miroslav Kure [Fri, 28 Nov 2014 12:39:57 +0000 (13:39 +0100)] 
Czech program translation update

Closes: 764055
10 years agoChinese (simplified) program translation update
Zhou Mo [Fri, 28 Nov 2014 12:30:39 +0000 (13:30 +0100)] 
Chinese (simplified) program translation update

Closes: 766170
10 years agoFrench program translation update
Julien Patriarca [Fri, 28 Nov 2014 12:24:32 +0000 (13:24 +0100)] 
French program translation update

Closes: 766755
10 years agoDutch program translation update
Frans Spiesschaert [Fri, 28 Nov 2014 12:20:40 +0000 (13:20 +0100)] 
Dutch program translation update

Closes: 771039
10 years agochange codenames to jessie as stable POV in docs
David Kalnischkies [Mon, 10 Nov 2014 16:21:57 +0000 (17:21 +0100)] 
change codenames to jessie as stable POV in docs

10 years agoreenable support for -s (and co) in apt-get source
David Kalnischkies [Sat, 18 Oct 2014 12:44:41 +0000 (14:44 +0200)] 
reenable support for -s (and co) in apt-get source

The conversion to accept only relevant options for commands has
forgotten another one, so adding it again even through the usecase might
very well be equally good served by --print-uris.

Closes: 742578
10 years agoallow options between command and -- on commandline
David Kalnischkies [Sat, 27 Sep 2014 23:25:21 +0000 (01:25 +0200)] 
allow options between command and -- on commandline

This used to work before we implemented a stricter commandline parser
and e.g. the dd-schroot-cmd command constructs commandlines like this.

Reported-By: Helmut Grohne
10 years agodeprecate the Section member from package struct
David Kalnischkies [Fri, 13 Jun 2014 06:35:32 +0000 (08:35 +0200)] 
deprecate the Section member from package struct

A version belongs to a section and has hence a section member of its
own. A package on the other hand can have multiple versions from
different sections. This was "solved" by using the section which was
parsed first as order of sources.list defines, but that is obviously a
horribly unpredictable thing.

Users are way better of with the Section() as returned by the version
they are dealing with. It is likely the same for all versions of a
package, but in the few cases it isn't, it is important (like packages
moving from main/* to contrib/* or into oldlibs …).

Backport of 7a66977 which actually instantly removes the member.

10 years agouse 'best' hash for source authentication
David Kalnischkies [Sun, 18 Aug 2013 21:27:24 +0000 (23:27 +0200)] 
use 'best' hash for source authentication

Collect all hashes we can get from the source record and put them into a
HashStringList so that 'apt-get source' can use it instead of using
always the MD5sum.

We therefore also deprecate the MD5 struct member in favor of the list.

While at it, the parsing of the Files is enhanced so that records which
miss "Files" (aka MD5 checksums) are still searched for other checksums
as they include just as much data, just not with a nice and catchy name.

This is a cherry-pick of 1262d35 with some dirty tricks to preserve ABI.

LP: 1098738

10 years agoadd a simple container for HashStrings
David Kalnischkies [Sun, 18 Aug 2013 21:17:05 +0000 (23:17 +0200)] 
add a simple container for HashStrings

APT supports more than just one HashString and even allows to enforce
the usage of a specific hash. This class is intended to help with
storage and passing around of the HashStrings.

The cherry-pick here the un-const-ification of HashType() compared to
f4c3850ea335545e297504941dc8c7a8f1c83358. The point of this commit is
adding infrastructure for the next one. All by itself, it just adds new
symbols.

Git-Dch: Ignore

10 years agoMerge remote-tracking branch 'upstream/debian/sid' into debian/sid
Michael Vogt [Mon, 27 Oct 2014 14:57:12 +0000 (15:57 +0100)] 
Merge remote-tracking branch 'upstream/debian/sid' into debian/sid

10 years agoFix incorrect comparison between signed/unsigned
Michael Vogt [Thu, 23 Oct 2014 18:32:01 +0000 (14:32 -0400)] 
Fix incorrect comparison between signed/unsigned

Git-Dch: ignore

10 years agoUse sysconf(_SC_ARG_MAX) to find the size of Dpkg::MaxArgBytes
Michael Vogt [Thu, 23 Oct 2014 18:19:32 +0000 (14:19 -0400)] 
Use sysconf(_SC_ARG_MAX) to find the size of Dpkg::MaxArgBytes

Instead of hardcoding Dpkg::MaxArgBytes find out about it using
the sysconf(_SC_ARG_MAX) call.

10 years agodoc/examples/configure-index: make "Dpkg::Max{Arg,ArgBytes} match reality
Michael Vogt [Wed, 22 Oct 2014 21:54:08 +0000 (17:54 -0400)] 
doc/examples/configure-index: make "Dpkg::Max{Arg,ArgBytes} match reality

Git-Dch: ignore

10 years agoreleasing package apt version 1.0.9.3 1.0.9.3
Michael Vogt [Wed, 15 Oct 2014 17:55:49 +0000 (19:55 +0200)] 
releasing package apt version 1.0.9.3

10 years agodon't cleanup cdrom files in apt-get update
David Kalnischkies [Wed, 15 Oct 2014 13:56:53 +0000 (15:56 +0200)] 
don't cleanup cdrom files in apt-get update

Regression from merging 801745284905e7962aa77a9f37a6b4e7fcdc19d0 and
b0f4b486e6850c5f98520ccf19da71d0ed748ae4. While fine by itself, merged
the part fixing the filename is skipped if a cdrom source is
encountered, so that our list-cleanup removes what seems to be orphaned
files.

Closes: 765458
10 years agoUpdate Status field values handling
Guillem Jover [Mon, 1 Sep 2014 14:09:48 +0000 (16:09 +0200)] 
Update Status field values handling

Remove long obsolete (hold, hold-reinstreq, removal-failed) or just
wrong (post-inst-failed vs postinst-failed) values, that have been
autoconverted by dpkg at run-time to their new equivalents, so there
should not be any such instance in any recent system (removal-failed
since dpkg 1.1.4 in Apr 1996, hold and hold-reinstreq since dpkg
1.2.0 in May 1996). dpkg even stopped doing the mapping in 1.15.4
and 1.15.8 respectively.

At the same time sort the list in the same order as they appear in
the dpkg code.

10 years agomethods/rsh.cc: replace strcat with std::string
Michael Vogt [Wed, 8 Oct 2014 09:35:48 +0000 (11:35 +0200)] 
methods/rsh.cc: replace strcat with std::string

Instead of using strcat use a C++ std::string to avoid overflowing
this buffer. Thanks to David Garfield

Closes: #76442
10 years agoadd CVE-2014-7206 to 1.0.9.2
Michael Vogt [Wed, 8 Oct 2014 09:12:45 +0000 (11:12 +0200)] 
add CVE-2014-7206 to 1.0.9.2

10 years agoimplement the updated build profile spec
josch [Tue, 19 Aug 2014 08:29:29 +0000 (10:29 +0200)] 
implement the updated build profile spec

10 years agoreleasing package apt version 1.0.9.2 1.0.9.2
Michael Vogt [Thu, 2 Oct 2014 20:07:25 +0000 (22:07 +0200)] 
releasing package apt version 1.0.9.2

10 years agoapt-get: Create the temporary downloaded changelog inside tmpdir
Guillem Jover [Thu, 2 Oct 2014 15:48:13 +0000 (17:48 +0200)] 
apt-get: Create the temporary downloaded changelog inside tmpdir

The code is creating a secure temporary directory, but then creates
the changelog alongside the tmpdir in the same base directory. This
defeats the secure tmpdir creation, making the filename predictable.

Inject a '/' between the tmpdir and the changelog filename.

10 years agodebian/rules: add hardening=+all
Michael Vogt [Wed, 1 Oct 2014 06:22:26 +0000 (08:22 +0200)] 
debian/rules: add hardening=+all

Because of dpkg-buildflags we already get most of the hardening
features, +all adds -fPIE and ld -z now

Thanks: Simon Ruderich, Markus Waldeck

10 years agoSet STRIP_FROM_PATH for doxygen
Trần Ngọc Quân [Sun, 28 Sep 2014 08:33:19 +0000 (15:33 +0700)] 
Set STRIP_FROM_PATH for doxygen

Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
10 years agoMerge remote-tracking branch 'donkult/feature/generalize-gzipindex' into debian/sid
Michael Vogt [Fri, 26 Sep 2014 16:09:32 +0000 (18:09 +0200)] 
Merge remote-tracking branch 'donkult/feature/generalize-gzipindex' into debian/sid

10 years agorewrite compressed indexes test to check with all compressors
David Kalnischkies [Thu, 25 Sep 2014 09:52:41 +0000 (11:52 +0200)] 
rewrite compressed indexes test to check with all compressors

Git-Dch: Ignore

10 years agoEnsure that iTFRewritePackageOrder is "MD5sum" to match apt-ftparchive
Michael Vogt [Sun, 21 Sep 2014 19:40:10 +0000 (21:40 +0200)] 
Ensure that iTFRewritePackageOrder is "MD5sum" to match apt-ftparchive

The iTFRewritePackageOrder is used in indexcopy to copy and normalize
cdrom Packages files. This change will ensure that there is no
"normalization" that changes MD5sum -> MD5Sum which alters the hash
of the Packages file on disk (oh the irony).

10 years agoFix regression for cdrom: sources from latest security update
Michael Vogt [Sun, 21 Sep 2014 19:23:04 +0000 (21:23 +0200)] 
Fix regression for cdrom: sources from latest security update

Skip a reverify for cdrom: sources. The reverify step is actually
harmful here because the apt-cdrom add code uses the indexcopy.cc
which will "normalize" the Packages file from the cdrom when it
writes it to the local disk. This leads to changing the "MD5sum"
field (notice the lower case "s") on the cdrom Packages file to
a "MD5Sum" field on the local file in /var/lib/apt/lists. Which
of course alters the hash and makes apt fail to reverify the file.

10 years agogeneralize Acquire::GzipIndex
Michael Vogt [Sun, 21 Sep 2014 08:18:03 +0000 (10:18 +0200)] 
generalize Acquire::GzipIndex

10 years agorelax grep to support newer curl output format
David Kalnischkies [Fri, 19 Sep 2014 22:12:13 +0000 (00:12 +0200)] 
relax grep to support newer curl output format

Git-Dch: Ignore

10 years agodisable timestamps in the footer of docs by doxygen
Jérémy Bobbio [Fri, 19 Sep 2014 21:03:55 +0000 (23:03 +0200)] 
disable timestamps in the footer of docs by doxygen

The default being 'yes', but this spoils the effort of reproducible
builds for no real gain. (https://wiki.debian.org/ReproducibleBuilds)

10 years agoGerman program translation update
Holger Wansing [Fri, 19 Sep 2014 20:32:14 +0000 (22:32 +0200)] 
German program translation update

Closes: 762223
10 years agoFix regression when copy: is used for a relative path
Michael Vogt [Fri, 19 Sep 2014 14:41:55 +0000 (16:41 +0200)] 
Fix regression when copy: is used for a relative path

When we do a ReverifyAfterIMS() we use the copy: method to
verify the hashes again. If the user uses -o Dir=./something/relative
this fails because we use the URI class in copy.cc that strips
away the leading relative part. By not using URI this is fixed.

Closes: #762160
10 years agotest/integration/test-apt-update-file: improve test
Michael Vogt [Fri, 19 Sep 2014 14:41:50 +0000 (16:41 +0200)] 
test/integration/test-apt-update-file: improve test

10 years ago./pre-release pre-export
Michael Vogt [Thu, 18 Sep 2014 05:59:01 +0000 (07:59 +0200)] 
./pre-release pre-export

10 years agoreleasing package apt version 1.0.9.1 1.0.9.1
Michael Vogt [Wed, 17 Sep 2014 20:05:51 +0000 (22:05 +0200)] 
releasing package apt version 1.0.9.1

10 years agoMerge remote-tracking branch 'vnwildman/debian/sid' into debian/sid
Michael Vogt [Wed, 17 Sep 2014 20:04:30 +0000 (22:04 +0200)] 
Merge remote-tracking branch 'vnwildman/debian/sid' into debian/sid

10 years agoimprove test for commit daff4a
Michael Vogt [Wed, 17 Sep 2014 15:48:27 +0000 (17:48 +0200)] 
improve test for commit daff4a

10 years agoFix regression for file:/// uris from CVE-2014-0487
Michael Vogt [Wed, 17 Sep 2014 12:57:05 +0000 (14:57 +0200)] 
Fix regression for file:/// uris from CVE-2014-0487

Do not run ReverifyAfterIMS() for local file URIs as this will
causes apt to mess around in the file:/// uri space. This is
wrong in itself, but it will also cause a incorrect verification
failure when the archive and the lists directory are on different
partitions as rename().

10 years agoprepare 1.0.9.1
Michael Vogt [Tue, 16 Sep 2014 18:53:35 +0000 (20:53 +0200)] 
prepare 1.0.9.1

10 years agomerge previous upload
Michael Vogt [Tue, 16 Sep 2014 18:51:19 +0000 (20:51 +0200)] 
merge previous upload

10 years agoSECURITY UPDATE for CVE-2014-{0488,0487,0489}
Michael Vogt [Tue, 16 Sep 2014 18:23:43 +0000 (20:23 +0200)] 
SECURITY UPDATE for CVE-2014-{0488,0487,0489}

incorrect invalidating of unauthenticated data (CVE-2014-0488)
incorect verification of 304 reply (CVE-2014-0487)
incorrect verification of Acquire::Gzip indexes (CVE-2014-0489)

10 years agoadd a 'coverage' command to generate reports
David Kalnischkies [Sun, 14 Sep 2014 20:48:01 +0000 (22:48 +0200)] 
add a 'coverage' command to generate reports

Builds, runs and generates everything needed to have a coverage report
at the end for apt. The report isn't perfect as most childs apt forks do
not have a regular exit and so data is never written for them, which
results in e.g. most methods to have zero coverage reported.

Git-Dch: Ignore

10 years agoTurkish program translation update
Mert Dirik [Sun, 14 Sep 2014 21:04:03 +0000 (23:04 +0200)] 
Turkish program translation update

Closes: 761394
10 years agoUpdated German documentation translation
Chris Leick [Sun, 14 Sep 2014 12:48:10 +0000 (14:48 +0200)] 
Updated German documentation translation

10 years agol10n: vi.po (636t): Update program translation
Trần Ngọc Quân [Fri, 12 Sep 2014 07:13:36 +0000 (14:13 +0700)] 
l10n: vi.po (636t): Update program translation

Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
10 years agoAllow override of Proxy-Auto-Detect by the users configuration
Michael Vogt [Fri, 12 Sep 2014 09:44:11 +0000 (11:44 +0200)] 
Allow override of Proxy-Auto-Detect by the users configuration

Only run the Proxy-Auto-Detect code if there is not already
a host specific configuration.

Closes: 759264
10 years agoprepare 1.0.8 1.0.8
Michael Vogt [Tue, 9 Sep 2014 18:10:41 +0000 (20:10 +0200)] 
prepare 1.0.8

10 years agodebian/gbp.conf: use export-dir
Michael Vogt [Tue, 9 Sep 2014 18:50:34 +0000 (20:50 +0200)] 
debian/gbp.conf: use export-dir

10 years agodon't call pager in non-terminals for changelog
David Kalnischkies [Tue, 9 Sep 2014 11:52:32 +0000 (13:52 +0200)] 
don't call pager in non-terminals for changelog

Most pagers are nice and default to running non-interactively if they
aren't connected to a terminal and we relied on that. On ci.debian.net
the configured pager is printing a header out of nowhere though, so if
we are printing to a non-terminal we call "cat" instead.

In the rework we also "remove" the dependency on sensible-utils in sofar
as we call some alternatives if calling the utils fail.

This seems to be the last problem preventing a "PASS" status on
ci.debian.net, so we close the associated bugreport.

Closes: 755040
10 years agorework PTY magic to fix stair-stepping on kfreebsd
David Kalnischkies [Mon, 8 Sep 2014 19:05:11 +0000 (21:05 +0200)] 
rework PTY magic to fix stair-stepping on kfreebsd

A pty slave we have got from openpty can only be used for one dpkg
child, if we give it to a second child on kfreebsd setting TIOCSCTTY
fails causing the output to be stair-stepped from now on.

By switching the code to creating a master and opening a new slave in
the child for each child we can fix this glitch, so that at least the
master remains stable.

Closes: 759684
10 years agofix progress report for upgrade and reinstall
David Kalnischkies [Mon, 8 Sep 2014 15:14:17 +0000 (17:14 +0200)] 
fix progress report for upgrade and reinstall

APT treats upgrades like installs and dpkg is very similar in this, but
prints still a slightly different processing message indicating that it
is really an upgrade which we hadn't parsed so far, but this wasn't
really visible as we quickly moved on to a 'known' state.

More problematic was the reinstall case as apt hadn't recognized this
for the package name detection, so that reinstalls had no progress since
we introduced MultiArch.

10 years agofix and non-silent fail dpkg-overwrite error test
David Kalnischkies [Sun, 7 Sep 2014 20:08:01 +0000 (22:08 +0200)] 
fix and non-silent fail dpkg-overwrite error test

Commit cbcdd3ee9d86379d1b3a44e41ae8b17dc23111d0 removes the space at the
end of the debfile name dpkg send to us and we previously had included
in the pmerror message we printed on the statusfd.

Git-Dch: Ignore

10 years agostrip everything spacey in APT::String::Strip
David Kalnischkies [Sun, 7 Sep 2014 19:27:57 +0000 (21:27 +0200)] 
strip everything spacey in APT::String::Strip

Git-Dch: Ignore