summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
* Add functions to manipulate pmdepend_t objectsDan McGee2008-01-11
| | | | | | | | | | | We didn't have a free function before, causing some memory leaks. We also need a dup function now that strings are not in the structure but are dynamically allocated. Also adapt pmdepmissing_t to use a pointer to a depend struct instead of an inclusive one so we can use the functions we created here. Signed-off-by: Dan McGee <dan@archlinux.org>
* Use dynamic string allocation in package structuresDan McGee2008-01-11
| | | | | | | | | | | | | | This also affects all structures with static strings, such as depmiss, conflict, etc. This should help a lot with memory usage, and hopefully make things a bit more "idiot proof". Currently our pactest pass/fail rate is identical before and after this patch. This is not to say it is a perfect patch- I have yet to pull valgrind out. However, this should be quite safe to use in all situations from here on out, and we can start plugging the memleaks. Original-work-by: Aaron Griffin <aaronmgriffin@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Move the fallback on providers from backend to frontend.Chantry Xavier2008-01-09
| | | | | | | | | | | This reverts commit e28973169d2e5eda8b64ebdda11ece0dc761d978. This code might fit better in the frontend than in the backend finally. Ref: http://www.archlinux.org/pipermail/pacman-dev/2007-November/010150.html I also changed it for fixing FS#8763 : if there is exactly one provider, pacman will pull it and print a warning. if there are several providers, pacman will list them and fail. It's up to the user to pick one. Add sync501 pactest to reflect that.
* Remove upgradedelay and all code associated with itDan McGee2008-01-08
| | | | | | | | It wasn't even implemented correctly, and it really doesn't have a use if packagers just do their job correctly anyway for a distro. Let's not try to solve a problem with the wrong solution now. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove unused date element from pmpkg_t structDan McGee2008-01-08
| | | | | | | We had an unused date element in the pmpkg_t struct (not builddate or installdate). Kill it off and fix the one function that was using it. Signed-off-by: Dan McGee <dan@archlinux.org>
* conflict.c : fix for FS#8156, detect conflict between symlink and dir.Chantry Xavier2008-01-06
| | | | | | | | | | | | | | | The previous fileconflict check (package vs filesystem) skipped the conflict when the file on the filesystem was a directory or a symlink to a directory, no matter what the file in the package was. Now, the conflict will only be skipped if the file in the package is a directory (so compatible with a dir or a dir symlink on the filesystem). So in the case of 8156 (new fileconflict003 pactest for this case), instead of silently ignoring the extraction of the test symlink, pacman will now fail because of a file conflict between the test symlink in the pkg2 package and the test directory on the filesystem. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Don't stat cachedir immediatelyDan McGee2008-01-05
| | | | | | | | | | | | By attempting to stat the cachedir when we load the pacman config, pacman bails out if it is a non-existant directory, even if it will never be needed. This is unfortunate as it is only used for sync transactions anyway. Instead, wait until we need it in _alpm_filecache_setup to actually do anything. Reported as FS#9096. Signed-off-by: Dan McGee <dan@archlinux.org>
* sync.c: add sanity check so we don't dereference a null pointerDan McGee2008-01-05
| | | | | | | | | | Originally noticed in FS#9024, but was fixed in previous changes anyway. However, it doesn't hurt to still check it. Also add a pactest from Chantry Xavier for the original problem to ensure we can't reproduce it. Signed-off-by: Dan McGee <dan@archlinux.org>
* conflict.c : fix for upgrade042.Chantry Xavier2008-01-05
| | | | | | | | | | | Thanks to the proactive backup handling, we don't need to add the moving file to the skip_add list. The backup handling will make sure nothing gets overwritten. Ref: http://www.archlinux.org/pipermail/pacman-dev/2007-December/010610.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* add.c : fix upgrade026 pactest.Chantry Xavier2008-01-05
| | | | | | | | | | | | | | | This was the case of the bash packaging error where a file was removed from the package but not the backup array. I just added a sanity check so that only the files from the backup array that are also in the filelist are used. I had to edit upgrade026 pactest slightly : it required the file to be copied to .pacsave instead of moved. But just moving it should be enough, as we agreed on the ML : http://www.archlinux.org/pipermail/pacman-dev/2007-December/010440.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Update of German translationMatthias Gorissen2008-01-05
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Small code cleanups with indents/spacesDan McGee2008-01-01
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove gettext calls from debug-level messagesDan McGee2008-01-01
| | | | | | | | | | These used FUNCTION output level and not DEBUG, so I didn't catch them way back when I removed those gettext calls. Remove them now (which exposed a nice little memory access error elsewhere in the code). This should have a slight speedup effect on the code too as we no longer have to make the gettext call even when these messages aren't printed. Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix another usage of pkg_new in _alpm_sync_addtargetDan McGee2008-01-01
| | | | | | Use _alpm_pkg_dup instead. Signed-off-by: Dan McGee <dan@archlinux.org>
* Switch pkg_new -> pkg_dup in find_replacementsDan McGee2008-01-01
| | | | | | | | | | Ugh, it was a pain to figure out why the Total Removed Size was showing up wrong in the output of removed packages, but this was why- we used a stupid _alpm_pkg_new call instead of just duping the package. Fix this. In the long run, we really need to figure out better ways to not duplicate all this package information. Signed-off-by: Dan McGee <dan@archlinux.org>
* new upgade042 pactest + bugfix in chk_filedifference.Chantry Xavier2008-01-01
| | | | | | | | | | | | This adds a pactest for the relocation of a config file between two packages (case of etc/profile moving from bash to filesystem). While running this pactest, I found out that chk_filedifference didn't work correctly with an empty list as second argument. So that's fixed now. Ref: http://www.archlinux.org/pipermail/pacman-dev/2007-December/010610.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove .FILELIST generation from makepkg (and elsewhere)Dan McGee2007-12-29
| | | | | | | | | | | | | | This is something pacman can do on its own straight from the archive, and we will reduce the chance of problems occurring becuase of inproper FILELIST generation as we have had in the past with special characters in filenames. Once we remove it from makepkg. we can remove any usage of it from all of our other tools, including pacman, pactest, and contrib/ utilities. Note that removing it from pacman uncovered a few other bugs anyway, so this was probably a good move. Signed-off-by: Dan McGee <dan@archlinux.org>
* add a new upgrade026 pactest for backup handling.Chantry Xavier2007-12-29
| | | | | | | | | | | | This is the bash case when the /etc/profile file was removed by error from the package, but stayed in the backup array. Ref: http://www.archlinux.org/pipermail/arch-dev-public/2007-December/003556.html Also fixed a little typo in add.c, but it's disabled code. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* libalpm/add.c: disable buggy backup handling code that didn't do anything.Chantry Xavier2007-12-28
| | | | | | | | | | | | | As I mentioned earlier on the ML : http://www.archlinux.org/pipermail/pacman-dev/2007-December/010416.html the first part of commit 843d368ef6 had no effect because of a bug. So I fixed the bug, but since this would change backup handling behavior, and possibly require other bigger changes to work right, I decided to just disable that part temporarily, and left a TODO in the code. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* french translation : one broken message caused a segfault.Chantry Xavier2007-12-28
| | | | | | pacman segfaulted on sync012 pactest because of one broken translation. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* libalpm/remove.c : switch back to lstat usage.Chantry Xavier2007-12-28
| | | | | | | | | | commit b55abdce7a changed every instance of lstat to alpm_stat to remove an eventual trailing /, but in remove.c, this is not wanted. Ref: http://www.archlinux.org/pipermail/pacman-dev/2007-December/010451.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Allow NULL parameter in alpm_trans_commitAllan McRae2007-12-28
| | | | | | | | | | Fixes FS#7380: alpm crashes on passing NULL to alpm_trans_commit in a sync operation. Adds check that data parameter is not NULL in several functions. Signed-off-by: Allan McRae <mcrae_allan@hotmail.com> [Dan: fix whitespace] Signed-off-by: Dan McGee <dan@archlinux.org>
* Add remove counterparts to alpm_option_add_* functionsAllan McRae2007-12-28
| | | | | | | | | Fixes FS#7428. Added functions to remove cachedir, noupgrade, noextract, ignorepkg, holdpkg and ignoregrp. Signed-off-by: Allan McRae <mcrae_allan@hotmail.com> [Dan: fix whitespace] Signed-off-by: Dan McGee <dan@archlinux.org>
* Check ignored packages in _alpm_sync_addtarget().Nathan Jones2007-12-21
| | | | | | | | This will allow someone to install a group but ignore individual packages inside the group. Signed-off-by: Nathan Jones <nathanj@insightbb.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix memory leak in shortest_delta_path.Nathan Jones2007-12-21
| | | | | | | | | It is possible for the if statement to never succeed, causing path to never be freed. It is also possible for the if statement to succeed more than once per loop, which could have caused a segfault. Signed-off-by: Nathan Jones <nathanj@insightbb.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Add new Czech translationVojtěch Gondžala2007-12-21
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Finish french translation.Chantry Xavier2007-12-21
| | | | | | | | | | | It's probably far from perfect, but at least I tried to translate everything. I noticed a missing newline at libalpm/trans.c , line 573 : _alpm_log(PM_LOG_ERROR, _("call to popen failed (%s)"), I don't think it's possible to fix it now (string freeze?), so I didn't. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Updated Hungarian translationNagy Gabor2007-12-20
| | | | | | | 1 untranslated message translated and 1 message fixed Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
* PM_DEP_MOD_LT and PM_DEP_MOD_GT depmods addedNagy Gabor2007-12-19
| | | | | | | | You can use foo<2.0 and foo>2.0 as depend add046.py and add047.py pactests were added to check this Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
* Updated Hungarian translationNagy Gabor2007-12-19
| | | | | | | | * Updated libalpm translation * Regenerated hu.po files, because the 'call-for-translators version' was outdated Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
* Updated Italian TranslationGiovanni Scafora2007-12-18
| | | | | | | | Signed-off-by: Giovanni Scafora <linuxmania@gmail.com> modified: lib/libalpm/po/it.po modified: po/it.po Signed-off-by: Dan McGee <dan@archlinux.org>
* Updated Italian Translation for pacman 3.1Giovanni Scafora2007-12-17
| | | | | Signed-off-by: Giovanni Scafora <linuxmania@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Check for errors on descfile extractionDan McGee2007-12-16
| | | | | | | | | | | | | If /tmp was full during the early stages of package extraction, we were unable to extract the package description file with the call to archive_read_data_into_fd(archive, fd) becuase we never checked the return code. Add a check to ensure the extraction was successful and print and return an error if it was not instead of falling through to a possibly untrue error message. This should fix FS #8885. Signed-off-by: Dan McGee <dan@archlinux.org>
* popen does NOT require /bin/sh in a subchrootAaron Griffin2007-12-10
| | | | | | | | | | | | I appears that when chrooted, the /bin/sh used by popen is that of the parent process. This is true until the process forks once chrooted, which we do not want to do. As such, this actually makes things nicer. We don't need a /bin/sh in a chroot to run install scriptlets, and don't need to check for it in the root directory Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Correct scriptlet usage patternAaron Griffin2007-12-10
| | | | | | | | | | | | The new pattern is as follows: . /path/to/scriptlet post_upgrade X Y This requires less frameworking in the install scripts (the three lines that shift and eval a function are nasty) Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Update GNU GPL boilerplate and copyright datesDan McGee2007-12-10
| | | | | | | Update the GPL boilerplate to direct people to the GNU website for a copy of the license, as well as bump all of Judd's copyrights to 2007. Signed-off-by: Dan McGee <dan@archlinux.org>
* Improve changelog handling through addition of open/read/close functionsDan McGee2007-12-09
| | | | | | | | | | | | | | | | | | | | | | | Thanks to Allan for inspiring all this work on what was one little TODO item in the codebase. :) Change changelog handling so we can now dump a changelog from both installed packages and package files (fixes FS#7371). We do this by moving all of the machinery to the backend where it should have been in the first place. The changelog reading is now done through a open/read/close interface similar to the fopen/fread/fclose functions (can you guess how it is done?). It is buffered by the frontend, so programs using the library can read as much or as little as they want at a time. Unfortunately, I could not implement a changelog_feof function due to some shortcomings of libarchive. However, I left the stub code in there, commented out, in case it becomes possible later or anyone wants to take a stab at it. Original-work-by: Allan McRae <mcrae_allan@hotmail.com> Improved-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* _alpm_unpack: return 1 when the file is not found.Chantry Xavier2007-12-08
| | | | | | | | If _alpm_unpack has a specific file to extract (not NULL), but doesn't find it, it'll now return 1, for indicating the failure. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* libalpm/server.c : fix segfault when downloading failed.Chantry Xavier2007-12-07
| | | | | | | | The alpm_list_free(complete) needs to be done OUTSIDE the loop walking through the server list. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove duplicated PM_TRANS_CONV_INSTALL_IGNOREPKG messageNagy Gabor2007-12-05
| | | | | | | | Now alpm_checkdeps first search for literals, then search for no-literal satisfiers Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> [Dan: fix spelling of INTALL, fix line wrapping] Signed-off-by: Dan McGee <dan@archlinux.org>
* libalpm/backup.c : simple refactoring.Chantry Xavier2007-12-04
| | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Update it translation for 3.1Giovanni Scafora2007-12-03
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Update en_GB translation for 3.1Jeff Bailes2007-12-02
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Update all translation files in anticipation of 3.1 releaseDan McGee2007-12-02
| | | | | | | | | | | Update all of the pot and po files with the latest messages available. Translators- you are encouraged to do this as well every time you update the translation, and the directions in 'translation-help' should help. Also feel free to delete all the old translations that end up at the bottom of these files and only clutter things up. Signed-off-by: Dan McGee <dan@archlinux.org>
* alpm_list : change the alpm_list_find* to return the matching item.Chantry Xavier2007-12-02
| | | | | | | | alpm_list_find and alpm_list_find_ptr will now return a void *, and alpm_list_find_str will return a char *, instead of an int. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove _alpm_depmiss_isinDan McGee2007-12-02
| | | | | | | This is unneeded now that commit 2ed6b482d2fce916466e44e37930f0b0c0d928bb has eliminated the last user of this function. Signed-off-by: Dan McGee <dan@archlinux.org>
* Add 4 new pactests to get better code coverage by pactestDan McGee2007-12-02
| | | | | | | | I started playing around with gcov today and it showed a few places in the code that we don't test at all. This is the start of ensuring that we execute most of the code in our codebase. Signed-off-by: Dan McGee <dan@archlinux.org>
* Add new --needed option for -S.Chantry Xavier2007-12-02
| | | | | | | | | | | | | | | | | During a pacman operation such as a group install, pacman can ask several questions such as "local version is up to date. Upgrade anyway?". They are usually all answered either by yes or by no: * yes when you want to reinstall all the targets. * no when you only want to install the missing ones (either because you are installing a group, or because you are copying a pacman -S line from wiki or whatever). So instead of asking this question for each target, it is now now configured with a flag. Yes will be the default -S behavior, No will be achieved with the --needed flag. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Minor fixes in sync.c and deps.c.Chantry Xavier2007-12-01
| | | | | | | | | | * memleak found by Nagy in checkdeps * an useless line found by Nagy in resolvedeps * data wasn't set to the missing dependencies in sync_prepare * use the MALLOC macro in resolvedeps Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Ensure 0644 permissions for install and changelog filesAaron Griffin2007-12-01
| | | | | Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>