[ Martin Pitt ]
* debian/rules:
- Make DEB_BUILD_OPTIONS=noopt actually work by passing the right
CXXFLAGS.
* apt-pkg/contrib/fileutl.{h,cc}:
- Add support for reading of gzipped files with the new "ReadOnlyGzip"
OpenMode. (Closes: #188407)
- Link against zlib (in apt-pkg/makefile) and add zlib build dependency.
- [ABI BREAK] This adds a new private member to FileFd, but its
initialization is in the public header file.
* configure.in:
- Check for zlib library and headers.
* apt-pkg/acquire-item.cc, apt-pkg/deb/debindexfile.cc,
apt-pkg/deb/debrecords.cc, apt-pkg/deb/debsrcrecords.h,
cmdline/apt-cache.cc:
- Open Packages, Sources, and Translations indexes in "ReadOnlyGzip" mode.
* apt-pkg/deb/debindexfile.cc:
- If we do not find uncompressed package/source/translation indexes, look
for gzip compressed ones.
* apt-pkg/acquire-item.cc:
- If the Acquire::GzipIndexes option is true and we download a gzipped
index file, keep it as it is (and rename to .gz) instead of
uncompressing it.
* doc/apt.conf.5.xml:
- Document the new Acquire::GzipIndexes option.
* doc/po/apt-doc.pot, doc/po/de.po:
- German translation of new Acquire::GzipIndexes option.
* Add test/test-indexes.sh:
- Test behaviour of index retrieval and usage, in particular with
uncompressed and gzip compressed indexes.
* methods/gzip.cc: With FileFd now being able to read gzipped files, there
is no need for the gzip method any more to spawn an external gzip process.
Rewrite it to use FileFd directly, which makes the code a lot simpler, and
also using less memory and overhead.
check the state of the FileFd before renaming as otherwise the rename
will be tried twice e.g. in an "apt-get update" run and every other piece
of code closing the FileFd manual before the destructor will do it again.
methods/gzip.cc: With FileFd now being able to read gzipped files, there
is no need for the gzip method any more to spawn an external gzip process.
Rewrite it to use FileFd directly, which makes the code a lot simpler, and
also using less memory and overhead.
FileFd(): Drop file name extension check in ReadOnlyGzip mode
Drop the ".gz" extension check in FileFd::Open() in ReadOnlyGzip mode, to not
depend on a particular file extension. This allows rewriting the gzip method
using internal decompression (on ".decomp" files).
This requires a zlib bug workaround in FileFd::Close(): When opening an empty
file with gzdopen(), gzclose() fails with Z_BUF_ERROR. Do not count this as a
failure.
* apt-pkg/policy.h:
- add another round of const& madness as the previous round accidently
NOT override the virtual GetCandidateVer() method (Closes: #587725)
Refactor TryToInstall to look a bit saner by splitting the Remove
and the Virtual packages part out of the loop.
The function still exists unchanged as TryToInstallBuildDep through
for the BuildDep installation method
add a ConstructedBy member to the PackageSet which can be used by the
e.g. FromString to tell the caller if the string was an exact match
or found by regex or task. The two later ones can match packages for
which we want to ignore failures in the VersionSet
* apt-pkg/versionmatch.cc:
- Support matching pins by regular expressions or glob() like patterns,
regular expressions have to be put between to slashes; for example,
/.*/.
apt-pkg/deb/deblistparser.cc: Fix bug in architecture wildcard support.
Previously, linux-any was always matched, because the code simply
appended linux- to the APT::Architecture value. Now, it does this
only if the APT::Architecture value does not contain "-".
* apt-pkg/contrib/fileutl.cc:
- show notice about ignored file instead of being always silent
- add a Dir::Ignore-Files-Silently list option to control the notice
*
- use the new MatchAgainstConfig for the DefaultRootSetFunc
* apt-pkg/contrib/configuration.{cc,h}:
- add a wrapper to match strings against configurable regex patterns
martin@piware.de [Thu, 24 Jun 2010 19:27:27 +0000 (21:27 +0200)]
Switch FileFd to not transparently gunzip, since that breaks code which expects the compressed contents to stay (such as the copy backend, or when using file:// repositories. Instead, introduce a new ReadOnlyGzip mode and use that where needed
Use an abstract helper for error handling and output
instead of doing this directly in the CacheSets.
With this method an application like apt-get can change
the behavior of the CacheSets to his liking.
It can for example easily keep track of how packages
were added to the set: by names or with regex's…
martin@piware.de [Fri, 11 Jun 2010 16:59:06 +0000 (18:59 +0200)]
* apt-pkg/acquire-item.cc:
- Fix return value of pkgAcqFile::Custom600Headers() in the non-index
case, to avoid returning NULL and causing crashers in callers. This also
fixes a compiler warning.
* apt-pkg/orderlist.cc:
- untouched packages are never missing
* apt-pkg/packagemanager.cc:
- packages that are not touched doesn't need to be unpacked
martin@piware.de [Thu, 10 Jun 2010 11:20:27 +0000 (13:20 +0200)]
* apt-pkg/acquire-item.cc:
- If the Acquire::GzipIndexes option is true and we download a gzipped
index file, keep it as it is (and rename to .gz) instead of
uncompressing it.