summaryrefslogtreecommitdiff
path: root/lib/libalpm
Commit message (Collapse)AuthorAge
* New alpm_version functionNagy Gabor2008-03-01
| | | | | | | | | Now pacman frontend uses this function instead of the compile-time libalpm version number. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> [Dan: fix one more spot where LIB_VERSION was used] Signed-off-by: Dan McGee <dan@archlinux.org>
* Merge branch 'maint'Dan McGee2008-03-01
|\
| * Set a missing pm_errno in _alpm_pkg_load()Nagy Gabor2008-03-01
| | | | | | | | | | Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
* | libalpm: clean up of md5sum functions.Chantry Xavier2008-02-27
| | | | | | | | | | | | | | | | | | test_delta_md5sum and test_pkg_md5sum were simple wrappers to test_md5sum, and only used once, so not very useful. I removed them. Also, test_md5sum and alpm_pkg_checkmd5sum functions were a bit duplicated, so I refactored them with a new _alpm_test_md5sum function in libalpm/util.c Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | Start removing some junk from the function templateDan McGee2008-02-27
| | | | | | | | | | | | | | | | | | | | | | I screwed up originally when I accepted the TotalDownload patch, 8ec27835f40e3df1ce409bc3d913587c474a30c3. I didn't realize how deeply it modified libalpm and I probably shouldn't have let it do what it did. This commit reverts much of what that patch added in order to clean up our internal function calls. We can find another way to do it right down the road here but for now it has to go. Signed-off-by: Dan McGee <dan@archlinux.org>
* | libalpm/dload.c : memleak fixes.Chantry Xavier2008-02-27
| | | | | | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | clean up dltotal leftover from 81a2a06818d367f852.Chantry Xavier2008-02-27
| | | | | | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | Merge branch 'maint'Dan McGee2008-02-25
|\| | | | | | | Also bump the devel version on the master branch to 3.2.0devel.
| * Update simplified chinese (zh_CN) translation.甘露(Lu.Gan)2008-02-25
| | | | | | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
| * fix two broken translated strings.Chantry Xavier2008-02-25
| | | | | | | | | | | | | | Using c-format on every strings allowed me two found two broken ones. One was harmless, but the other caused a segfault, as reported in FS#9658. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
| * xgettext : change pass-c-format flag to c-format.Chantry Xavier2008-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently xgettext apparently attempts to autodetect c format strings (eg a string with a %s) to decide whether to use c-format flag or not. If we use --flag=_:1:c-format instead of --flag=_:1:pass-c-format, the c-format will be applied everywhere. I couldn't find this documented anywhere though. But the pass prefix is mentioned here : http://www.gnu.org/software/gettext/manual/html_node/xgettext-Invocation.html#xgettext-Invocation "Specifies additional flags for strings occurring as part of the argth argument of the function word. The possible flags are the possible format string indicators, such as ‘c-format’, and their negations, such as ‘no-c-format’, possibly prefixed with ‘pass-’." And c-format is documented there : http://www.gnu.org/software/gettext/manual/html_node/c_002dformat-Flag.html#c_002dformat-Flag "This situation happens quite often. The printf function is often called with strings which do not contain a format specifier. Of course one would normally use fputs but it does happen. In this case xgettext does not recognize this as a format string but what happens if the translation introduces a valid format specifier? The printf function will try to access one of the parameters but none exists because the original code does not pass any parameters." And that's exactly what happened with FS#9658. So using c-format for every string will prevent this issue from happening again. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
| * libalpm/sync.c : fix poorly worded debug message.Chantry Xavier2008-02-25
| | | | | | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | Remove pmserver_t abstractionDan McGee2008-02-24
| | | | | | | | | | | | | | | | | | | | | | Remove what was a pretty weird abstraction in the libalpm backend. Instead of parsing server URLs as we get them (of which we don't usually use more than a handful anyway), wait until they are actually used, which allows us to store them as a simple string list instead. This allows us to remove a lot of code, and will greatly simplify the continuing refactoring of the download code. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Add new stub download functions for use throughout the codeDan McGee2008-02-24
| | | | | | | | | | | | | | | | Add new stub functions that work by calling the existing (terrible) download forreal function, which needs a serious overhaul. Hide the existing functions and switch all former users to the new functions. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Move download code out of server.cDan McGee2008-02-24
| | | | | | | | | | | | | | | | This is the first in what will be a series of patches to clean up the current download code in libalpm. Start by moving download code out of server.c and into download.c. Signed-off-by: Dan McGee <dan@archlinux.org>
* | More cleanup to alpm_listDan McGee2008-02-24
| | | | | | | | | | | | | | * Remove some #include statements that are not strictly necessary * Remove node_new function that is really just a one-liner Signed-off-by: Dan McGee <dan@archlinux.org>
* | alpm_list.c clean-upNagy Gabor2008-02-25
| | | | | | | | | | | | | | | | | | | | * Introduces 'list == NULL' convention for empty list. That means alpm_list_new isn't needed anymore, so kill it * Small straightforward fixes in alpm_list.c Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | Merge branch 'maint'Dan McGee2008-02-24
|\| | | | | | | | | | | Conflicts: src/pacman/callback.c
| * Update Russian translationSergey Tereschenko2008-02-24
| | | | | | | | | | | | Some corrections from the previous translation. Signed-off-by: Dan McGee <dan@archlinux.org>
| * Add new Simplified Chinese translation甘露(Lu.Gan)2008-02-22
| | | | | | | | | | | | Thanks a lot! Now we get to fix the breakage this causes in output messages. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Merge branch 'maint'Dan McGee2008-02-20
|\| | | | | | | | | Remove gettext() function addition from gensync and updatesync in master as gettext is no longer used in them anyway.
| * Final updates to Polish translationMateusz Herych2008-02-19
| | | | | | | | | | | | Good job on the group effort guys, thanks for getting this one complete. Signed-off-by: Dan McGee <dan@archlinux.org>
| * Update libalpm russian translation.Sergey Tereschenko2008-02-18
| | | | | | | | | | | | Cleaned up by Oleg Finkelshteyn. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
| * Do not warn about up to date package when downloading onlyAllan McRae2008-02-18
| | | | | | | | | | | | | | | | | | Stops the "<pkg> is up to date -- reinstalling" message when using the download only flag. Ref: http://archlinux.org/pipermail/pacman-dev/2008-January/010952.html Signed-off-by: Allan McRae <mcrae_allan@hotmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Move pmgraph_t struct and functions to their own header fileDan McGee2008-02-16
| | | | | | | | | | | | | | | | This will allow us to utilize this helpful type and functions in places besides dependency calculations. In addition, remove the public declaration of pmgraph_t in alpm.h- there is zero need to expose this internal type. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Merge branch 'maint'Dan McGee2008-02-15
|\| | | | | | | | | | | | | Conflicts: lib/libalpm/be_files.c lib/libalpm/package.c
| * More small updates to German translationMatthias Gorissen2008-02-15
| | | | | | | | Signed-off-by: Dan McGee <dan@archlinux.org>
| * Merge branch 'translations' into maintDan McGee2008-02-14
| |\
| | * Updated Czech translation for 3.1.2 releaseVojtěch Gondžala2008-02-12
| | | | | | | | | | | | Signed-off-by: Giovanni Scafora <linuxmania@gmail.com>
| | * Update french translation.Chantry Xavier2008-02-12
| | | | | | | | | | | | | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Giovanni Scafora <linuxmania@gmail.com>
| * | Ensure DESC infolevel is loaded before checking pkg->filenameDan McGee2008-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first step of fixing FS#9547. This should not break any existing code that may rely on this function behaving the way it did, and should be good for inclusion in a maint release. In addition, update pactest so it fills the FILENAME field in the DB entries it creates so we can move forward with a real fix to this issue. Signed-off-by: Dan McGee <dan@archlinux.org>
| * | Move some translations to their generic language codeDan McGee2008-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For our Czech, Polish, and Russian translations, they do not need to be at the more specific 'lang_COUNTRY' code, but can live at just plain 'lang'. This follows the pattern of most other translated programs out there as Roman pointed out on IRC. ru_RU: 2 (pacman and libalpm) ru: 128 for him, 131 for me (everything else) Signed-off-by: Dan McGee <dan@archlinux.org>
| * | ensure chk_fileconflicts reads entire file listDan McGee2008-02-11
| |/ | | | | | | | | | | | | | | | | | | | | | | If the end of the pB list was reached before the end of pA, we failed to read any remaining files from the pA list. Add an additional loop to ensure all entries of pA are added to the return list regardless of whether we have reached the end of pB. This new loop also eliminates the now-unnecessary check for a null pB, as we need to ensure we are excluding directories in the resulting output anyway. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Merge branch 'maint'Dan McGee2008-02-07
|\|
| * libalpm/add.c : safety check for fixing FS#9235.Chantry Xavier2008-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes FS#9235. We already had the following case in extract_single_file : /* cases 1,2,3: couldn't stat an existing file, skip all backup checks */ But we actually only did a lstat here. And if lstat worked, we did a stat without checking. When lstat works and stat fails, it means we have a broken symlink, like in FS#9235. We can actually treat this case like a non-existing file. The broken symlink will then be simply overwritten. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | Remove alpm_sync_get_newversion functionNagy Gabor2008-02-07
| | | | | | | | | | | | | | | | sync->newversion shouldn't be public at all, and internally we access it directly. (Before pmsyncpkg_t clean-up the analogue of this field [type] was needed in replaces computation.) Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | alpm_sync_sysupgrade splitNagy Gabor2008-02-07
| | | | | | | | | | | | | | | | | | | | | | This patch indroduces a new public alpm_sync_newversion, which scans for new version of a package in sync repos. Hopefully this will reduce code duplication in the future: * check-for-pacman-new-version from front-end can be easier * -Qu refactoring Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | libalpm/package.c : add _alpm_pkgname_pkg_cmp function.Nagy Gabor2008-02-06
| | | | | | | | | | | | | | | | | | | | | | _alpm_pkgname_pkg_cmp(pkgname, pkg) returns true iff pkg's name is pkgname. This is useful if you want to remove a package from pmpkg_t* list, and you want to search for package name. This allows cleaning the -Ru code a bit, by removing the need of a dummy pkg. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | New remove option : -u / --unneeded (FS#6505).Nagy Gabor2008-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With --unneeded option 'pacman -R' doesn't stop in case of dependency error; it removes the needed-dependency targets from the target-list instead. See also: http://archlinux.org/pipermail/pacman-dev/2007-October/009653.html . The patch also adds a new causingpkg field to pmdepmissing_t which indicates the to-be-removed package which would cause a dependency break. This is needed, because miss->depend.name may be a provision. miss->causingpkg will be useful in -R dependency error messages too. [Xavier: renamed inducer to causingpkg, removed the _alpm_pkgname_pkg_cmp helper function as requested by Aaron. This might be added by a further commit. Other small cleanups, updated manpage and bash completion.] Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | pmsyncpkg_t cleanupNagy Gabor2008-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for sync044.py and reason001.py. Rename sync->data to sync->removes (alpm_list_t *) Replace pmsynctype_t sync->type by pmpkgreason_t sync->newreason The type field was set to UPGRADE or DEPEND or REPLACE. Instead of using type = UPGRADE or DEPEND, we now rather use a "pmpkgreason_t newreason" field directly (= explicit or depend) which allows a better handling of the install reason. And the REPLACE type is now deduced implicitly when the sync->removes list is not empty. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Fix PM_ERR_CONFLICTING_DEPS handling in sync.cNagy Gabor2008-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | * eliminate asymmetry (innerconflict vs. outerconflict) * fix a memleak (in case of PM_ERR_MEMORY deps wasn't freed) * fix wrong pmconflict_t duplication (*retconflict = *conflict) Note: the new code introduces some code duplication which shall disappear by fixing FS#7524. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | New _alpm_conflict_dup functionNagy Gabor2008-01-27
| | | | | | | | | | | | | | Added function to cleanly duplicate a conflict. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | small sync.c code clean-upNagy Gabor2008-01-27
| | | | | | | | | | | | | | | | | | | | Remove unnecessary synclist_free function, and use our standard way (alpm_list_free_inner + alpm_list_free) instead. This slightly reduces code duplication. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | libalpm/sync.c : conflicts resolving cleanup.Chantry Xavier2008-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original patch from Nagy tried to resolve target vs target conflicts, and so broke the following pactests : sync040, sync041 and sync990 Nagy's proposal to solve this situation was to choose the interactive way, ask the user how to deal with it: either remove pkg1 or remove pkg2 or stop here. So he left this as a TODO. But instead of trying to resolve these conflicts or asking the user, I tried to find a more conservative way, looking at what the current pactests expected: If between the two conflicting packages, one provides the other, pacman will keep that one and remove the other from the target list. That breaks sync893 and sync897. But Dan agreed these two looked weird and should be changed. This commit should close FS#8897, FS#8899 and FS#9024. Reference: http://www.archlinux.org/pipermail/pacman-dev/2007-October/009745.html http://www.archlinux.org/pipermail/pacman-dev/2007-December/010393.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Fix flip-flopped parameters to CALLOC macroDan McGee2008-01-23
| | | | | | | | | | | | | | The mixup causes a fail in the build using --enable-debug on x86_64 but not i686, so none of us caught this right away. Fix it. FS#9297. Signed-off-by: Dan McGee <dan@archlinux.org>
* | libalpm/cache.c : don't duplicate packages in pkgcache.Chantry Xavier2008-01-23
| | | | | | | | | | | | | | | | | | Edit _alpm_db_add_pkgincache to not duplicate packages, because this is not needed, is slower, and uses more memory. This made the max memory usage during base reinstall go from 10.4MB to 9.7MB. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Add new public alpm_checkdbconflicts function.Chantry Xavier2008-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | This function has a limited purpose, but might be interesting to do a sanity check from a frontend (eg testdb). Also removed the private _alpm_checkconflicts function to avoid confusion. This function was used only once in libalpm, in sync.c, and was just a single line anyway. Having to do it manually makes it explicit that we are looking for two kind of conflicts (targ vs targ and db vs targ). Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | small memleak fix in sync.c.Chantry Xavier2008-01-23
| | | | | | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* | conflict.c: move debug message out of inner loopDan McGee2008-01-21
| | | | | | | | | | | | | | | | | | We have a debug message in the target vs. target file conflict check, and this is a bit rediculous when it comes to watching output from something like smoke001.py. Instead, put the output outside this inner loop so we only see it at most once per target, which is much more reasonable. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Fix memleak found by add004.pyDan McGee2008-01-21
| | | | | | | | Signed-off-by: Dan McGee <dan@archlinux.org>