Age | Commit message (Collapse) | Author |
|
Testing for global PendingErrors in users of CopyFile is incorrect
in so far as unrelated errors will prevent us from copying perfectly
fine files and checking for the validity of the files is just better
in CopyFiles as it already checks if files are at least opened.
Add also a higher-level error message to the error stack if it fails.
|
|
OpenInternDescriptor failures would cause additional errors to be
generated by double-closing an fd. Other errors (although these
are generated if the method is used incorrectly, so unlikely)
didn't close the fd aswell.
Closes: 704608
|
|
Previously some errors would set the Fail flag while some didn't
without a clear reason as all errors leave a bad FileFd behind,
so we use a helper now to ensure that all errors set the flag.
|
|
|
|
|
|
- remove _POSIX_SYNCHRONIZED_IO guard in FileFd::Sync() around fsync
as this guard is only needed for fdatasync and not defined on hurd
|
|
- dup() given compressed fd in OpenDescriptor if AutoClose
is disabled as otherwise gzclose() and co will close it
|
|
- ensure that we close compressed fds, wait for forks and such even if
the FileFd itself is set to not autoclose the given Fd
|
|
|
|
|
|
|
|
content as this causes some "interesting" hickups resulting in segfaults
as it seems (Closes: #554387, #670979)
|
|
- check that the fd which are closed are valid
|
|
- redirect stderr from compressors to /dev/null
|
|
|
|
- remove the libz-dev alternative from zlib1g-dev build-dependency
- do the same for bz2 builtin if available
* apt-pkg/contrib/fileutl.cc:
- use libz2 library for (de)compression instead of the bzip2 binary as
the first is a dependency of dpkg and the later just priority:optional
so we gain 'easier' access to bz2-compressed Translation files this way
|
|
|
|
compatible with users accessing it directly, but this prepares for a drop
of this strict requirement in the future
|
|
- do not warn about the ignoring of directories (Closes: #662762)
|
|
- clean up lost atomic cachefiles with 'clean' (Closes: #650513)
|
|
|
|
- store the offset in the internal fd before calculate size of
the zlib-handled file to jump back to this place again
It jumped back to the position of the content - which is wrong as
the internal fd is compressed and even reseting to the beginning of
the file doesn't work as zlib uses an internal buffer, so while we
might haven't read anything yet zlib might have done so already…
|
|
|
|
Also, read only one char in each step of ReadLine instead of back-"seeking"
|
|
information if we are working on a pipe which can't seek
|
|
|
|
anymore and therefore are also able to drop quiet a bit of duplicated code
|
|
|
|
|
|
renamed it everywhere as otherwise stuff "magically" starts to fail…
Fixes commit 2209 as the mixture of #define names generates a lovely
compilable but non-functional mixture of gzip usage…
|
|
internally so that it is exported and can be used like a "normal"
uncompressed file with FileFd
This allows us to hide th zlib usage in the implementation and use gzip
instead if we don't have zlib builtin (the same for other compressors).
The code includes quiet a few FIXME's so while all tests are working
it shouldn't be used just yet outside of libapt as it might break.
|
|
- drop the explicit export of gz-compression handling
|
|
- implement a ModificationTime method for FileFd
|
|
to search for compressed silbings of the given filename and use this guessing
instead of hardcoding Gzip compression
|
|
provide ReadOnly, WriteOnly and ReadWrite as flags alongside
the additional flags as decompression will be one-way later,
but certain parts really depend on Write* openmodes being
ReadWrite opens, so we will have to fail for those.
|
|
|
|
size are pretty unlikely for now, but we need it for deb
packages which could become bigger than 4GB now (LP: #815895)
|
|
|
|
- add GetModificationTime() helper
* apt-pkg/pkgcachegen.cc:
- regenerate the cache if the sources.list changes to ensure
that changes in the ordering there will be honored by apt
* apt-pkg/sourcelist.{cc,h}:
- add pkgSourceList::GetLastModifiedTime() helper
|
|
|
|
- honor Dpkg::Chroot-Directory in the RunScripts*() methods
|
|
- really detect bigendian machines by including config.h,
so we can really (Closes: #612986)
* apt-pkg/contrib/mmap.cc:
- Base has as 'valid' failure states 0 and -1 so add a simple
validData method to check for failure states
|
|
|
|
- reorder the loaded filesize bytes for big endian (Closes: #612986)
Thanks to Jörg Sommer for the detailed analyse!
|
|
|
|
- add a RealFileExists method and check that your configuration files
are real files to avoid endless loops if not (Closes: #604401)
|
|
- Add a FileFd::FileSize() method to get the size of the underlying
file and not the size of the content in the file as FileFd::Size()
does - the sizes can differ since the direct gzip integration
* methods/{gzip,bzip2}.cc:
- use FileSize() to determine if the file is invalid (Closes: #600852)
|
|
for non-gzip files
|
|
- Fix FileFd::Size() for gzipped files to give the size of the
uncompressed data. This fixes cache progress building progress going way
over 100%.
|
|
to give a better indication what this method will do if called.
|