summaryrefslogtreecommitdiff
path: root/lib/libalpm
AgeCommit message (Collapse)Author
2007-07-15Clean up libalpm/add.c and revise file extraction codeDan McGee
This is a full refactoring of _alpm_add_commit into multiple functions and a better layout for later. Some highlights: * No regressions in pactest performance. * Much cleaner layout. add_commit is split into four functions: upgrade_remove, extract_single_file, commit_single_pkg, _alpm_add_commit * No more super-functions, the heaviest (extract_single_file) is finally under 400 lines, with much improved commenting as well. * Incorporation of Andrew Fyfe's ideas for fixing FS #7484. Try to handle all possible cases of extraction combinations with files, symlinks, dirs, and non-existant entries on the filesystem. This should make our dealings with libarchive fall more into our control. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-15Add --asdeps option to pacmanDan McGee
This replaces the former -D operation that was undocumented and rather hacky. It can be used with add, upgrade, or sync transactions and will affect all packages installed. Should close FS #7193. Also tell makepkg to use this new flag. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-15libalpm/deps.c : cleanup + little fix for resolvedeps.Nagy Gabor
The resolvedeps function was a bit negligent, as showed by the sync011 pactest. Reference : http://www.archlinux.org/pipermail/pacman-dev/2007-July/008782.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-07-14Ensure requiredby entries are removed during an upgradeDan McGee
This fixes the failure of the requiredby004 pactest in a not so pretty way, but it gets the job done. I purposely used the extremely long name of PM_TRANS_TYPE_REMOVEUPGRADE to be both clear and in the hope that someone else will figure out a better solution. Original idea from Nagy Gabor, patch updated and cleaned for current code. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-14libalpm/sync.c : ldconfig is run twice.Nagy Gabor
remove _alpm_ldconfig call from _alpm_sync_commit, since sync operation causes an upgrade transaction, where ldconfig is already run. Reference: http://www.archlinux.org/pipermail/pacman-dev/2007-April/008132.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-13libalpm/remove.c : revert part of commit to fix remove044 pactestChantry Xavier
In 1c9f30b9fab998e2d89dd307a90122618d746cb6 This change should be done AFTER the TODO in recursedeps is implemented. Then we'll be able to first sort the list, then call recursedeps which keeps it sorted. For now, the sorting should still be done as the last step. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-13Update hungarian translationNagy Gabor
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-13libalpm/deps.c : fix for remove044 pactest.Chantry Xavier
Patch from Nagy that makes removedeps use alpm_depcmp. I also renamed removedeps to recursedeps, as it can have a more general usage, and added an include_explicit argument, so we can control if packages explictly installed are added or not. Note: Small changes made by me (Dan) as well- mostly some English grammar correction and a few other cleanups. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-13Remove conflict message for non-existent files (reworked)Chantry Xavier
Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-13libalpm/remove.c : Rsd combination.Chantry Xavier
Currently the d (nodeps) option skips the s (recursive) part, rendering the Rsd combination totally useless. This patch makes a recursive removal still possible using the nodeps option, as Romashka asked there : http://bugs.archlinux.org/task/6057#comment17784 Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-07-12Some doxygen comments.Andrew Fyfe
Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
2007-07-12Remove some more conditional include stuffDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-12Remove versioncmp.{c,h}, clean up selective #ifdefsDan McGee
Remove versioncmp.c by moving all functions to locations that make sense. Move replacement functions (for building without glibc) into util.c where they belong, and do proper checks for them instead of using __sun__, etc. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-11Remove 'buildtype' from libalpm and pacmanDan McGee
Remove unused buildtype field from pmpkg_t struct and anything associated with it, as it is unused at the moment. If we need to readd it, it is an easy revert of this commit. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-11conflict.c: start cleaning conflict check functionsChantry Xavier
The three chk_ functions overlap for packages both in targets and in the database. This caused the same conflict to be found in both direction (A conflicts with B, and B conflicts with A). This patch avoids this duplication. which shouldn't be needed, but other changes might be required for that to work correctly. This also has the unexpected side effect to hide the failure of sync022 pactest, for FS #7415. That's maybe not a good thing though.. Note from Dan: sync022 does succeed, but a sync023 pactest added to check regressions also seems to pass. This may be a valid fix to this 'problem' sync022 was meant to find. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-11Update translation files on libalpm side after gettext changeDan McGee
Because of this commit: ea1fef69add040b9e5b1de6e9238eda4576ccd3f we lost a lot of gettext-ized messages on the libalpm side. Remove them in order to clean out these files a bit. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-10Fix issue with <dbpath>/db.lck being truncatedDan McGee
snprintf takes a length including the '\0' character, this wasn't accounted for originally. Fix it. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-10Remove gettext calls from all PM_LOG_DEBUG messagesDan McGee
There is no real reason to burden our translators with these messages, as anyone helping to debug these will probably want them in English. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-10Remove conflict message for no-existent files.Andrew Fyfe
Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
2007-07-10Cleanup of pacman_deptest()Andrew Fyfe
Clean up some left over code from http://projects.archlinux.org/git/gitweb.cgi?p=pacman.git;a=commitdiff;h=7653bb93997f52848b54ab80868cd6da52808a75 Signed-off-by: Andrew Fyfe <andrew@neptune-one.net> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-09libalpm/trans.c : exit the forked process correctly in case of errors.Chantry Xavier
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-07-09Clean up the alpm handleDan McGee
Add some comments in handle.h, and remove the pmaccess_t part that we don't even use. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-09Remove gettext from any alpm_logaction callsDan McGee
We shouldn't translate log messages to pacman.log so it is consistant and can be parsed by other tools. Remove all gettext _() around these strings. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-08Add top level hidden file code to package.cDan McGee
This was already taken care of in add.c by commit 2ae043866045bbeef129a4b503ee1f5486545821, but was missed in package.c. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-06First step of moving translations from src/pacman/po to po/Dan McGee
Move the translations from src/pacman/po to just po/ so we can include the scripts gettext translations in the same message catalog as that of the pacman frontend. The libalpm message catalog, for now, will remain a separate existence. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-06Various small fixes as suggested by some static code checkersDan McGee
I ran flawfinder and sparse over the pacman source code and found a few things that were worth fixing (and were quick fixes). Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-01libalpm/add.c : fix for FS #7484Chantry Xavier
Adds the ARCHIVE_EXTRACT_NO_OVERWRITE libarchive flags for extracting files and directories. This will prevent symlinks for being overwritten by directories. All other files that need to be extracted should already have been deleted previously by pacman. This flag is not used for extracting files in backup array to /tmp/alpm_XXXX, because this file is created by mkstemp first, and so needs to be overwritten by the file from the archive. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-07-01libalpm/add.c,util.c : log ARCHIVE_WARN warning to debug output.Chantry Xavier
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-07-01Remove unnecessary and extra includesDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-07-01Move Doxygen manpage generation to doc/ directoryDan McGee
Instead of doing the doxygen work in the libalpm/ dir, do it with the rest of the docs in the doc/ dir. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-28libalpm/add.c : ignore libarchive warning.Chantry Xavier
With libarchive 2.2.3 (previously 1.3.1), archive_read_extract now returns ARCHIVE_WARN when a package is extracted as user, because for example, UID=0 or SUID bit can't be set. This patch makes pacman not treating these warnings as errors anymore, but simply ignoring them. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-06-28libalpm/util.c : stat returns 0 on successChantry Xavier
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-06-27Remove lockfile configuration from frontend, make it job of libalpmDan McGee
I previously introduced some patches to make just about every path in pacman/libalpm configurable; doing this with the lockfile seemed a bit too far and we really should just place the lockfile where it belongs- with the DB that needs locking. More details in this thread: http://archlinux.org/pipermail/pacman-dev/2007-June/008499.html Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-27Remove scriptlet START and DONE commands that we don't useDan McGee
The scriptlet calling had some unneeded complexity for the time being which we aren't using here. Let's get rid of it until we find a good way to implement it correctly. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-27Fix wrong permissions on pacnew extractionDan McGee
First reported here: http://bbs.archlinux.org/viewtopic.php?pid=261861 Newly created files were done with the standard umask, so those that are extracted seperately and copied to a .pacnew extension will have the wrong permissions. This should hopefully fix this. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-28libalpm/remove.c : file variable used before being initialized.Chantry Xavier
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-06-26Make alpm_splitdep immutableNagy Gabor
The alpm_splitdep function formerly overwrote the input string, causing a few issues. Fix this. Signed-off-by: Nagy Gabor <ngaba@petra.hos.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-26Remove unnecessary trans parameter from _alpm_checkdepsNagy Gabor
The trans parameter was never used, so remove it. Signed-off-by: Nagy Gabor <ngaba@petra.hos.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-26Don't extract any top-level files in a package that start with '.'Dan McGee
For future possibilities, don't extract any files that start with '.'. This will allow us to add features such as the ChangeLog viewing without having to wait to include these files in packages, because older versions of pacman will be forward compatable with 'hidden' files at the root level of the package. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-20libalpm/util.c: remove unnecessary includeDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-20Revert "Fix libarchive permission extraction"Dan McGee
This was a bad way to fix a problem upstream. Doing this resulted in symlink permissions being applied to files installed on the system, leaving some binaries with 77 permission, etc. This reverts commit 4e6b7c1cde4c0ac1d035b51f9af19510a7c9135e.
2007-06-17Update Doxyfile and add a few missing parts of documentationDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-13Remove some more diskspace checking holdover stuffDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-10Attempt to clean up _alpm_sync_prepareDan McGee
This function is an absolute disaster, so we'll take it one step at a time here. This was a quick once-over of the whole thing, trying to straighten out some of the spaghetti code and fix some mistakes that others found. We are now down to two failing pactests again: sync300 and upgrade051. Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-10Implement simple topological sort algorithm for sortbydepsNagy Gabor
Based on the "depth first search" algorithm, for more infos visit: http://en.wikipedia.org/wiki/Topological_sorting The previous algorithm used by sortbydeps was too slow, and to work around it the number of steps needed to get correct result was reduced greatly. So it produced wrong results in several cases : 1) smoke001.py 2) http://bugs.archlinux.org/task/7229 More here: http://archlinux.org/pipermail/pacman-dev/2007-April/008057.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-10Ensure correct and consistent usage of depmissChantry Xavier
See comment from Nagy here : http://www.archlinux.org/pipermail/pacman-dev/2007-April/008134.html This also makes easier correct usage of checkdeps in sync.c, which fixes sync901 pactest (and so bug 6057). Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-10Fix for removing a package that is no longer neededChantry Xavier
Fix for remove041 pactest. You could not remove a package before that was provided by something else already installed on the system. This fixes this problem. Reference: http://archlinux.org/pipermail/pacman-dev/2007-April/008131.html http://archlinux.org/pipermail/pacman-dev/2007-April/008134.html Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-10Small speed-tuning to upgrade-checkdepNagy Gabor
Posted on the ML here: http://archlinux.org/pipermail/pacman-dev/2007-April/008131.html Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-10Fix issue when upgrading two packages that would break depsNagy Gabor
Fixes for pactest upgrade060. Posted on the ML here: http://archlinux.org/pipermail/pacman-dev/2007-April/008130.html Signed-off-by: Dan McGee <dan@archlinux.org>
2007-06-10Fix breakage in checkdeps when upgrading a multiple-dependNagy Gabor
Fixes pactest upgrade059. Posted on the ML in the following messages: http://archlinux.org/pipermail/pacman-dev/2007-April/008127.html http://archlinux.org/pipermail/pacman-dev/2007-April/008129.html Signed-off-by: Dan McGee <dan@archlinux.org>