summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-03-27Mark enum and struct member comments as doxygen descriptionsGuillem Jover11-58/+71
2012-03-27doc: Use Unicode box drawing characters instead of ASCII artGuillem Jover1-31/+30
2012-03-27Do not use `' quote pairs for non-translatable stringsGuillem Jover14-188/+190
2012-03-27Clarify internerr() messagesGuillem Jover12-26/+39
Print the bogus value that triggered the internal error, or simply reword unclear messages.
2012-03-21German dselect translation updateSven Joachim2-5/+8
Update to 270t.
2012-03-21German dpkg translation updateSven Joachim2-36/+32
Update to 1027t.
2012-03-20Update French translation of program messagesChristian PERRIER2-95/+116
Update to 1027t.
2012-03-19Bump version to 1.16.3Guillem Jover1-0/+6
2012-03-19Release 1.16.2Guillem Jover1-2/+2
2012-03-19Update changelog entriesGuillem Jover1-0/+8
2012-03-19Regenerate .pot files and merge .po files with themGuillem Jover89-52137/+62370
2012-03-19Bump Standards-Version to 3.9.3 (no changes needed)Guillem Jover2-1/+2
2012-03-19Remove ~ from version checks in maintainer scriptsGuillem Jover2-3/+3
It does not make sense to allow previous versions in maintainer scripts for dpkg releases.
2012-03-19dpkg: Add --assert-multi-arch optionGuillem Jover4-1/+15
This will allow us to query if the currently installed dpkg has multi-arch support.
2012-03-19libdpkg: Change pkg_db_get_pkg() to create new arch instancesGuillem Jover1-1/+35
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>
2012-03-19libdpkg: Find the correct package slot in the db for the parsed packageGuillem Jover1-1/+137
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.
2012-03-19libdpkg: Change pkg_db_get_singleton() to return a better candidateGuillem Jover1-9/+21
When there's no installed instances, try to get a betted candidate, mostly for selection purposes.
2012-03-19libdpkg: Mark not-installed non-arch-qualified selections for removalGuillem Jover2-0/+12
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.
2012-03-19libdpkg: Always ignore older versions when parsing the available fileGuillem Jover2-1/+3
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.
2012-03-19libdpkg: Add new enum parsedbtypeGuillem Jover2-0/+31
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.
2012-03-19libdpkg: Add new pdb_parse_update flagGuillem Jover2-1/+2
This allows to distinguish when the code is parsing the update log files, which should behave differently than simple status file parsing.
2012-03-19libdpkg: Rename pkgset_get_singleton() to pkg_db_get_singleton()Guillem Jover4-29/+28
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.
2012-03-19libdpkg: Consider M-A:same package without architecture fatal errorsGuillem Jover1-0/+3
“Multi-Arch: same” packages require an actual architecture to be able to properly handle them, demand it.
2012-03-19dpkg: Only allow setting selections for known packagesGuillem Jover2-0/+8
2012-03-19dpkg: Do not try to disappear other packages from the same setRaphaël Hertzog2-0/+13
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>
2012-03-19dpkg: Upgrade the database automatically to the new multi-arch layoutGuillem Jover7-0/+259
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>
2012-03-19dpkg: Update on-disk database to use a multiarch compliant layoutGuillem Jover6-2/+139
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>
2012-03-19dpkg: Allow shared files between Multi-Arch: same packagesGuillem Jover3-20/+246
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>
2012-03-18dpkg: Store in tarcontext whether the pkgset is getting in syncGuillem Jover2-0/+27
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>
2012-03-18dpkg: Change debug output to always arch-qualify package namesGuillem Jover7-40/+40
2012-03-18dselect: Change debug output to always arch-qualify package namesGuillem Jover4-20/+23
Based-on-patch-by: Raphaël Hertzog <hertzog@debian.org> Patch-sponsored-by: Linaro Limited Signed-off-by: Guillem Jover <guillem@debian.org>
2012-03-16dpkg-divert: Improve ignored removal request messageSven Joachim1-1/+1
Signed-off-by: Guillem Jover <guillem@debian.org>
2012-03-16Dpkg::BuildFlags: Use =head2 instead of =headGuillem Jover1-1/+1
This fixes a build failure with Test::Pod installed. Regression introduced in commit 78ffee002f47daed249e62778587383f2cd2a21a.
2012-03-16dpkg: Remove old control files on upgrade when needed for Multi-Arch changeRaphaël Hertzog1-0/+10
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>
2012-03-16dpkg-divert: Properly handle diversions of shared filesRaphaël Hertzog2-1/+48
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>
2012-03-16dpkg: Pass filenamenode instead of fileinlist to cu_installnew()Guillem Jover2-4/+2
2012-03-16dpkg: Compute and track hashes for newly unpacked fileGuillem Jover3-4/+14
This will be used for checksum generation at unpack time, and for shared file verification.
2012-03-16dpkg: Use fd_skip() instead of fd_read() on tarobject_skip_padding()Guillem Jover1-3/+2
2012-03-16dpkg: Refactor skipping tarobject padding into new tarobject_skip_padding()Guillem Jover1-11/+12
2012-03-16dpkg: Rename tarfile_skip_one_forward() to tarobject_skip_entry()Guillem Jover1-3/+3
2012-03-16dpkg: Refactor tar object extraction into new tarobject_extract()Guillem Jover1-90/+102
2012-03-16Dpkg::BuildFlags: update embedded API changelogRaphaël Hertzog1-0/+4
2012-03-15Update German translation of manual pagesHelge Kreutzmann1-68/+96
Update to 2076t.
2012-03-15dpkg-query(1): fix small typoRaphaël Hertzog1-1/+1
2012-03-14German dpkg translation updateSven Joachim1-806/+806
Update to 1016t.
2012-03-14dpkg: Add restrictions for configuration of a Multi-Arch: same packageRaphaël Hertzog1-0/+28
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>
2012-03-14dpkg: Deconfigure other instances of the unpacked packageRaphaël Hertzog1-0/+11
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>
2012-03-14dpkg: Update architecture check to allow foreign architecturesRaphaël Hertzog1-1/+4
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>
2012-03-14dpkg: Complete arch checking of package relationships in the resolverSteve Langasek2-0/+8
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>
2012-03-14dpkg: Do not force dependencies on dependtry >= 3, wait until >= 4Guillem Jover1-1/+1
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.