Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
Print the bogus value that triggered the internal error, or simply
reword unclear messages.
|
|
Update to 270t.
|
|
Update to 1027t.
|
|
Update to 1027t.
|
|
|
|
|
|
|
|
|
|
|
|
It does not make sense to allow previous versions in maintainer scripts
for dpkg releases.
|
|
This will allow us to query if the currently installed dpkg has
multi-arch support.
|
|
This allows the code to load several architecture package instances
per package set.
Based-on-patch-by: Raphaël Hertzog <hertzog@debian.org>
Patch-sponsored-by: Linaro Limited
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
This makes sure to pick the correct slot depending on whether we are
parsing an update log, the status, available or a binary control file.
For the status file we just use the slot matching the architecture.
For update log and control file we pick the slot of the to be installed
package, taking into account architecture cross-grading, and refusing
bogus switches like multiple “Multi-Arch: same” instances into a single
non-“Multi-Arch: same” one. For the available file we use the slot that
will be the candidate for the selection.
|
|
When there's no installed instances, try to get a betted candidate,
mostly for selection purposes.
|
|
These do not make sense in a multiarch enabled world, and might cause
those selections to be unreferencable from command-line interfaces when
there's other more specific selections.
|
|
To be able to get a proper candidate for dselect the latest version
from the available file should always be selected, regardless of who
is loading the file.
|
|
This will allow to track more easily what's going on in the code, when
having to distinguish between behaviour depending on the file being
parsed.
|
|
This allows to distinguish when the code is parsing the update log
files, which should behave differently than simple status file parsing.
|
|
Move it also from the pkg module to the pkg-db one. This private
function might need to allocate a new package instance in the
database in the future so it would belong in the pkg-db module,
but more importantly it's used to access pkg-db objects directly.
|
|
“Multi-Arch: same” packages require an actual architecture to be able
to properly handle them, demand it.
|
|
|
|
Packages within a set can rightfully share files and should not
be disappeared in the case where they share all the files.
Closes: #652063
Reported-by: Martin Pitt <mpitt@debian.org>
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
The upgrade is scheduled by explicit calls to pkg_infodb_upgrade() if
the current database format version is less than the latest supported
format or if the previous upgrade was interrupted.
The upgrade goes as follows:
- link all old files to their new names.
- set <admindir>/info/format-new to 1.
- remove all old files.
- rename <admindir>/info/format-new to <admindir>/info/format.
In case of abrupt interruption, the presence of <admindir>/info/format-new
means the upgrade is not yet completed and it needs to be retried. In case
of clean interruption with rollback, that file is removed after the old
layout has been restored.
Based-on-patch-by: Raphaël Hertzog <hertzog@debian.org>
Patch-sponsored-by: Linaro Limited
Designed-by: Guillem Jover <guillem@debian.org>
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
The usage of the new layout is conditional to a prior database
upgrade that should write a version number greater than 0 in
<admindir>/info/format.
The file is parsed when needed from pkg_infodb_get_format().
Based-on-patch-by: Raphaël Hertzog <hertzog@debian.org>
Patch-sponsored-by: Linaro Limited
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
If all the already installed packages are synchronized, and the version
to be installed is the same, then we check that the shared file has the
same contents as what's already installed. Otherwise we blindly allow
the updated package to replace the file.
For conffiles, instead of checking against the on-disk version, we
check instead against either:
- the MD5 hash stored for any of the other configured instances of
the package.
- the MD5 hash of the already present .dpkg-new file for the
unpacked instances of the packages.
During removal, we only remove the file if it's not shared with other
packages of the same set.
During upgrade, we don't remove the file from other packages containing
the same file if the package is part of the same set. We do this even
for packages which are not “Multi-Arch: same” since there's only one
.list controlg file for the package set and we should not modify it
since it has already been written.
Based-on-patch-by: Raphaël Hertzog <hertzog@debian.org>
Patch-sponsored-by: Linaro Limited
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
This will be used later by the extraction code to know whether it should
ensure consistency of shared files or not.
Based-on-patch-by: Raphaël Hertzog <hertzog@debian.org>
Patch-sponsored-by: Linaro Limited
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
|
|
Based-on-patch-by: Raphaël Hertzog <hertzog@debian.org>
Patch-sponsored-by: Linaro Limited
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
This fixes a build failure with Test::Pod installed.
Regression introduced in commit 78ffee002f47daed249e62778587383f2cd2a21a.
|
|
When we upgrade from “Multi-Arch: same” to something else (or vice versa)
the layout used for the control files changes (pkg.foo vs pkg:arch.foo)
and it means we must get rid of the old control files.
Sponsored-by: Linaro Limited
[guillem@debian.org:
- Reword comment and debug message. ]
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
dpkg-divert does nothing if the same diversion is recorded multiple
times. However when a diversion is removed, it does so even if
the shared file is still in place.
We change dpkg-divert's behaviour to ignore a diversion removal request
until the diverted file is no longer owned by another package of the
same package set.
We also update the test-suite to provide a status file now that
dpkg-divert reads it.
Sponsored-by: Linaro Limited
[guillem@debian.org:
- Handle missing DPKG_MAINTSCRIPT_ARCH when upgrading from old dpkg.
- Split ignore removal logic into a new function. ]
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
|
|
This will be used for checksum generation at unpack time, and for shared
file verification.
|
|
|
|
|
|
|
|
|
|
|
|
Update to 2076t.
|
|
|
|
Update to 1016t.
|
|
A “Multi-Arch: same” package can only be configured if all the other
instances of the same package are synchronized (i.e. have the same
unpacked version) and if they are in state where they can be configured.
Sponsored-by: Linaro Limited
[guillem@debian.org:
- Rework error strings.
- Fix coding-style.
- Check against <= stat_configfiles instead of < stat_halfinstalled.
- Split unrelated check into different conditionals. ]
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
When a new version of a “Multi-Arch: same” package is installed,
the other instances that are not synchronized (i.e. which
have a different version) must be deconfigured.
Sponsored-by: Linaro Limited
[guillem@debian.org:
- Ignore the package earlier if the package state is not correct.
- Use enqueue_deconfigure() instead of ad-hoc code. ]
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
Packages whose architecture has been whitelisted with
--add-architecture do not need --force-architecture to be installed.
Even foreign packages which are “Multi-Arch: no” can be installed
provided that all their foreign dependencies are already satisfied.
Sponsored-by: Linaro Limited
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
In places where the architecture qualifier of a dependency has not been
validated before-hand (through usage of deppossi_pkg_iterator), add a
manual verification.
In both cases, the checks are not needed with the current rules where
both Replaces and Breaks can only have “any” as architecture qualifier
but for completeness, we put them nevertheless.
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
To fix the non-working --force-depends-version (bug #57104) in
commit c54fb50e3a08d467955856e81be178b712b7ebdb, a check for
fc_dependsversion was added alongside the existing fc_depends for
dependtry >= 3, as it could not be just replaced because there was
no other code to pickup the fc_depends for that specific case in
dependtry >= 4.
Now that fc_depends always gets applied after all calls to
deppossi_ok_found() have finished, it's safe to remove the misplaced
fc_depends, so that it happens at dependtry >= 4, where it belongs.
|