Age | Commit message (Collapse) | Author |
|
The dpkg frontend lock is a lock dpkg tries to acquire
except if the frontend already acquires it.
This fixes a race condition in the install command where the
dpkg lock is not held for a short period of time between
different dpkg invocations.
For this reason we also define an environment variable
DPKG_FRONTEND_LOCKED for dpkg invocations so dpkg knows
not to try to acquire the frontend lock because it's held
by a parent process.
We can set DPKG_FRONTEND_LOCKED only if the frontend lock
really is held; that is, if our lock count is greater than 0
- otherwise an apt client not using the LockInner family of
functions would run dpkg without the frontend lock set, but
with DPKG_FRONTEND_LOCKED set. Such a process has a weaker
guarantee: Because dpkg would not lock the frontend lock
either, the process is prone to the existing races, and,
more importantly, so is a new style process.
Closes: #869546
[fixups: fix error messages, add public IsLocked() method, and
make {Un,}LockInner return an error on !debSystem]
(cherry picked from commit c2c8b4787b0882234ba2772ec7513afbf97b563a)
LP: #1781169
(cherry picked from commit 6c0c94ed32b8e679b14b0f89b51c1c336dc0ab9c)
|
|
debSystem uses a reference counted lock, so you can acquire it
multiple times in your applications, possibly nested. Nesting
locks causes a fd leak, though, as we only increment the lock
count when we already have locked twice, rather than once, and
hence when we call lock the second time, instead of increasing
the lock count, we open another lock fd.
This fixes the code to check if we have locked at all (> 0).
There is no practical problem here aside from the fd leak, as
closing the new fd releases the lock on the old one due to the
weird semantics of fcntl locks.
(cherry picked from commit 79f012bd09ae99d4c9d63dc0ac960376b5338b32)
(cherry picked from commit 1edcb718293f24ad190703a345f8f868b6e3bcc4)
LP: #1778547
|
|
This converts all callers that read machine-generated data,
callers that might work with user input are not converted.
|
|
We had this code lying around in apt-mark for a while now, but other
frontends need this (and similar) functionality as well, so its high
time that we provide a public interface in libapt for this stuff.
|
|
We have a few places and there will be a few more still where we have to
call dpkg to detect/set certain features or settings. Centralizing the
calling infrastructure now seems like a good idea before we add another.
|
|
|
|
Some codepaths need to check if the system (in our case usually dpkg)
supports MultiArch or not. We had copy-pasted the check so far into
these paths, but having it as a system check is better for reusability.
|
|
Doing this disables the implicit copy assignment operator (among others)
which would cause hovac if used on the classes as it would just copy the
pointer, not the data the d-pointer points to. For most of the classes
we don't need a copy assignment operator anyway and in many classes it
was broken before as many contain a pointer of some sort.
Only for our Cacheset Container interfaces we define an explicit copy
assignment operator which could later be implemented to copy the data
from one d-pointer to the other if we need it.
Git-Dch: Ignore
|
|
We have a bunch of classes which are of no use for the outside world,
but were still exported and so needed to preserve ABI/API. Marking them
as hidden to not export them any longer is a big API break in theory,
but in practice nobody is using them – as if they would its a bug.
|
|
Git-Dch: Ignore
Reported-By: gcc -Wsuggest-attribute={pure,const,noreturn}
|
|
Beside being a bit cleaner it hopefully also resolves oddball problems
I have with high levels of parallel jobs.
Git-Dch: Ignore
Reported-By: iwyu (include-what-you-use)
|
|
|
|
|
|
|
|
|
|
the rootdir later anyway)
|
|
* apt-pkg/deb/debsystem.cc:
- set dir::state::status based at least on dir
This causes problems with alternative rootdirs
|
|
- set dir::state::status based at least on dir
|
|
|
|
- on gpg verification failure warn and restore the last known
good state
- on failure display the IP of the server (useful for servers
that use round robin DNS)
- support Original-Maintainer in RewritePackageOrder
- enable cdrom autodetection via libudev by default
- show messsage about Vcs in use when apt-get source is run for
packages maintained in a Vcs
- better support transitional packages with mark auto-installed.
when the transitional package is in "oldlibs" the new package
is not marked auto installed (same is true for section
metapackages)
- provide new "deb mirror://archive.foo/mirrors.list sid main"
method expects a list of mirrors (generated on the server e.g.
via geoip) and will use that, including cycle on failure
- write apport crash file on package failure (disabled by default
on debian until apport is available)
- support mirror failure reporting (disabled by default on debian)
|
|
- add better config item for extended_states file
|
|
- make the max pipeline depth of the acquire queue configurable
via Acquire::Max-Pipeline-Depth
* apt-pkg/deb/dpkgpm.cc:
- add Dpkg::UseIoNice boolean option to run dpkg with ionice -c3
(off by default)
- send "dpkg-exec" message on the status fd when dpkg is run
- provide DPkg::Chroot-Directory config option (useful for testing)
- fix potential hang when in a backgroud process group
* apt-pkg/algorithms.cc:
- consider recommends when making the scores for the problem
resolver
* apt-pkg/acquire-worker.cc:
- show error details of failed methods
* apt-pkg/contrib/fileutl.cc:
- if a process aborts with signal, show signal number
* methods/http.cc:
- ignore SIGPIPE, we deal with EPIPE from write in
HttpMethod::ServerDie() (LP: #385144)
* apt-pkg/indexcopy.cc:
- support having CDs with no Packages file (just a Packages.gz)
by not forcing a verification on non-existing files
(LP: #255545)
- remove the gettext from a string that consists entirely
of variables (LP: #56792)
* apt-pkg/cacheiterators.h:
- add missing checks for Owner == 0 in end()
* apt-pkg/indexrecords.cc:
- fix some i18n issues
* apt-pkg/contrib/strutl.h:
- add new strprintf() function to make i18n strings easier
- fix compiler warning
* apt-pkg/deb/debsystem.cc:
- make strings i18n able
* fix problematic use of tolower() when calculating the version
hash by using locale independant tolower_ascii() function.
Thanks to M. Vefa Bicakci (LP: #80248)
* build fixes for g++-4.4
* cmdline/apt-mark:
- add "showauto" option to show automatically installed packages
* document --install-recommends and --no-install-recommends
(thanks to Dereck Wonnacott, LP: #126180)
* Updated cron script to support backups by hardlinks and
verbose levels. All features turned off by default.
* Added more error handlings. Closes: #438803, #462734, #454989,
* Refactored condition structure to make download and upgrade performed
if only previous steps succeeded. Closes: #341970
* Documented all cron script related configuration items in
configure-index.
* apt-ftparchive might write corrupt Release files (LP: #46439)
* Apply --important option to apt-cache depends (LP: #16947)
|
|
|
|
|
|
- fix TimeToStr i18n (LP: #289807)
* [ABI break] merge support for http redirects, thanks to
Jeff Licquia and Anthony Towns
* [ABI break] use int for the package IDs (thanks to Steve Cotton)
* apt-pkg/pkgcache.cc:
- do not run "dpkg --configure pkg" if pkg is in trigger-awaited
state (LP: #322955)
* methods/https.cc:
- add Acquire::https::AllowRedirect support
* Clarify the --help for 'purge' (LP: #243948)
* cmdline/apt-get.cc
- fix "apt-get source pkg" if there is a binary package and
a source package of the same name but from different
packages (LP: #330103)
* cmdline/acqprogress.cc:
- Call pkgAcquireStatus::Pulse even if quiet, so that we still get
dlstatus messages on the status-fd (LP: #290234).
|
|
|
|
|
|
|
|
- fix compiler warning
* cmdline/apt-get.cc:
- fix "apt-get source pkg=ver" if binary name != source name
and show a message (LP: #202219)
* apt-pkg/deb/debsystem.cc:
- make strings i18n able
|
|
|
|
|
|
- add 'sudo' to the error message to "run 'dpkg --configure -a'"
(LP: #52697)
|
|
|
|
Patches applied:
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-7
* fixed incorrect man-page example
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-8
* changelog udpate
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-9
* we only need to check once for xmlto
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-10
* fix a bug in a man-page, fix a problem with overly long lines in apt-cdrom
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-11
* merged with apt--main--0
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-12
* fix a incorrect error message (it always added .gz regardless what was downloaded)
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-13
* merged with main
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-14
* added Hashsum support for file and cdrom
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-15
* added README.arch
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-16
* merged with main
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-17
* move the changelog to the right place
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-18
* Change pkgPolicy::Pin from private to protected
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-19
* added a default constructor for PrvIterator
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-20
* applied otavios patch to reread the statusFile on debSystem::Initialize
* otavio@debian.org--2005/apt--fixes--0--patch-28
Reread status configuration, needed for clients using independent apt ...
|
|
Author: mdz
Date: 2004-01-26 17:01:53 GMT
* Initialize StatusFile in debSystem (Closes: #229791)
|
|
Author: jgg
Date: 2001-04-29 05:13:51 GMT
'apt-cache policy' preferences debug tool.
|
|
Author: jgg
Date: 2001-02-20 07:03:16 GMT
Join with aliencode
|