summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
* lib/util: call _alpm_log before setting handle->pm_errnoDave Reisner2011-06-20
| | | | | | | | | This is an unfortunate chain of events. RET_ERR and RET_ERR_VOID will eventually call CHECK_HANDLE, which resets the handle's pm_errno member. Dan probably had a reason for doing this, so we merely switch the order of operations in the RET_ERR macros to avoid stomping on our pm_errno. Signed-off-by: Dave Reisner <d@falconindy.com>
* Improve cachedir removal and error handlingDan McGee2011-06-20
| | | | | | | | * Check the return value of canonicalize_path() for non-NULL * Use ASSERT and RET_ERR as appropriate * Make remove_cachedir() use same path munge logic as add_cachedir() Signed-off-by: Dan McGee <dan@archlinux.org>
* Documented _alpm_download()Kerrick Staley2011-06-20
| | | | | | | Documented the _alpm_download() function in dload.c Signed-off-by: Kerrick Staley <mail@kerrickstaley.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Documented purpose of be_*.cKerrick Staley2011-06-20
| | | | | | | | Added a line to the top of each of be_local.c, be_package.c, and be_sync.c indicating their purposes. Signed-off-by: Kerrick Staley <mail@kerrickstaley.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Correctly duplicate delta objectsDan McGee2011-06-20
| | | | | | | | We were using copy_data before; this works for the struct itself but not the strings contained within. Fix it up by duplicating all the data as we do with our other structures. Signed-off-by: Dan McGee <dan@archlinux.org>
* Clean up util md5sum methodDan McGee2011-06-20
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Merge branch 'public-structs'Dan McGee2011-06-20
|\
| * Make pmgrp_t publicDan McGee2011-06-16
| | | | | | | | Signed-off-by: Dan McGee <dan@archlinux.org>
| * Make pmdelta_t publicDan McGee2011-06-16
| | | | | | | | Signed-off-by: Dan McGee <dan@archlinux.org>
| * Make pmdepend_t and pmdepmissing_t publicDan McGee2011-06-16
| | | | | | | | Signed-off-by: Dan McGee <dan@archlinux.org>
| * Make struct pmconflict_t publicDan McGee2011-06-16
| | | | | | | | Signed-off-by: Dan McGee <dan@archlinux.org>
| * Make pmfileconflict_t type publicDan McGee2011-06-16
| | | | | | | | | | | | | | | | | | | | | | | | This removes the need to write accessor methods for every type we have, and simplifies the API. Any type that doesn't need magic* can be converted in this fashion to make it easier for frontend applications to use, as well as make it less of a pain to introduce new such structs in the future. * "magic" meaning something like pmpkg_t where values can be lazy loaded. Signed-off-by: Dan McGee <dan@archlinux.org>
* | lib/handle: use CALLOC macro instead of bare callocDave Reisner2011-06-20
| | | | | | | | | | Signed-off-by: Dave Reisner <d@falconindy.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Don't call public API in _alpm_log()Dan McGee2011-06-20
|/ | | | | | | | | Calling get_logcb() here would reset any previous setting of handle->pm_errno due to the CHECK_HANDLE() macro contained within. This would make error setting a bit funny if one set pm_errno before calling _alpm_log(), such as in the RET_ERR() macro. Signed-off-by: Dan McGee <dan@archlinux.org>
* API: change 'signaturedir' to 'gpgdir'Dan McGee2011-06-15
| | | | | | | | This is more in line with reality and what we have our makepkg, etc. options named anyway. Original-patch-by: Kerrick Staley <mail@kerrickstaley.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Rename and rework signing helper methodsDan McGee2011-06-14
| | | | | | | | | | | | | * Don't name static methods with a gpgme_ prefix to avoid confusion with methods provided by the library. These are static and local to our file so just give them sane non-prefixed names. * Rework sigsum_test_bit() to not require assignment. * Don't balk if there is more than one signature available (for now, only check the first). * Fix error codes in publicly visible methods to return -1, not 0, if pkg or db are not provided. Signed-off-by: Dan McGee <dan@archlinux.org>
* Alpm pkg accessors: ensure pkg argument is non-NULLDan McGee2011-06-14
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Ensure handle is valid and pm_errno is reset when calling into APIDan McGee2011-06-14
| | | | | | | | | | | | | | | | | We didn't do due diligence before and ensure prior pm_errno values weren't influencing what happened in further ALPM calls. I observed one case of early setup code setting pm_errno to PM_ERR_WRONG_ARGS and that flag persisting the entire time we were calling library code. Add a new CHECK_HANDLE() macro that does two things: 1) ensures the handle variable passed to it is non-NULL and 2) clears any existing pm_errno flag set on the handle. This macro can replace many places we used the ASSERT(handle != NULL, ...) pattern before. Several other other places only need a simple 'set to zero' of the pm_errno field. Signed-off-by: Dan McGee <dan@archlinux.org>
* Conflict check and skip_remove code cleanupsDan McGee2011-06-14
| | | | | | | | | | * Move several variables into better scope * const-ify a few variables * Avoid duplicating filelists if it is unnecessary * Better handling out out of memory condition when adding file conflicts to our list Signed-off-by: Dan McGee <dan@archlinux.org>
* Small handle related cleanupsDan McGee2011-06-14
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Add handle argument to _alpm_pkg_should_ignore()Dan McGee2011-06-14
| | | | | | | This allows callers to retrieve it from wherever is convenient, which may or may not be on the package object itself. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove alpm_db_get_url()Dan McGee2011-06-14
| | | | | | | | | This method is old, it doesn't adequately check for a NULL server list, and can easily be done using better API method we provide these days. All former users of this method can get similar results by calling alpm_db_get_servers() and using the data from the returned server list. Signed-off-by: Dan McGee <dan@archlinux.org>
* Add a helper method for retrieving the DB signature pathDan McGee2011-06-13
| | | | | | | Note that is a bit different than the normal _alpm_db_path() method; the caller is expected to free the result. Signed-off-by: Dan McGee <dan@archlinux.org>
* alpm_db_update(): refactor out sync dir create/checkDan McGee2011-06-13
| | | | | | This was a lot of stuff that can stand by itself for the most part. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove global handle variableDan McGee2011-06-13
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Switch all logging to use handle directlyDan McGee2011-06-13
| | | | | | | This is the last user of our global handle object. Once again the diff is large but the functional changes are not. Signed-off-by: Dan McGee <dan@archlinux.org>
* Move pm_errno onto the handleDan McGee2011-06-13
| | | | | | This involves some serious changes and a very messy diff, unfortunately. Signed-off-by: Dan McGee <dan@archlinux.org>
* Add handle argument to two more alpm methodsDan McGee2011-06-13
| | | | | | This takes care of alpm_checkdeps() and alpm_find_dbs_satisfier(). Signed-off-by: Dan McGee <dan@archlinux.org>
* Require handle for alpm_checkconflicts()Dan McGee2011-06-13
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Require handle for alpm_pkg_load()Dan McGee2011-06-13
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Add handle argument to alpm_(add|remove)_pkg()Dan McGee2011-06-13
| | | | | | | | This makes these functions consistent with the rest of the transaction related API calls. We do an additional assert to ensure the handle attached to the package is the same as the handle passed in. Signed-off-by: Dan McGee <dan@archlinux.org>
* Added initialization code for database siglevelKerrick Staley2011-06-13
| | | | | | | | The siglevel field of a newly created pmdb_t struct is now initialized when it is created in _alpm_db_new(). Signed-off-by: Kerrick Staley <mail@kerrickstaley.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix memory leak if package sig was invalidDan McGee2011-06-13
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix all current return(x) usagesDan McGee2011-06-13
| | | | | | | | | A few of these snuck in as of late, some from the table display patches that were using the previous format before we changed it after the 3.5.X major release. Noticed-by: Kerrick Staley <mail@kerrickstaley.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* commit_single_pkg(): Use handle object directlyDan McGee2011-06-09
| | | | | | | | Commit e68f5d9a3067141 did something a bit silly and changed the scriptlet calls to use 'newpkg->handle' rather than the 'handle' argument passed in. Use the handle directly. Signed-off-by: Dan McGee <dan@archlinux.org>
* Require handle for alpm_sync_sysupgrade()Dan McGee2011-06-09
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Require handle for alpm_db_register_sync()Dan McGee2011-06-09
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Require handle argument to all alpm_trans_*() methodsDan McGee2011-06-09
| | | | | | | Begin enforcing the need to pass a handle. This allows us to remove one more extern handle declaration from the backend. Signed-off-by: Dan McGee <dan@archlinux.org>
* Require handle argument to all alpm_option_(get|set)_*() methodsDan McGee2011-06-09
| | | | | | | | This requires a lot of line changes, but not many functional changes as more often than not our handle variable is already available in some fashion. Signed-off-by: Dan McGee <dan@archlinux.org>
* Require handle argument to alpm_logaction()Dan McGee2011-06-09
| | | | | | | This is the first in a series of patches to update the API to remove the implicit global handle variable. Signed-off-by: Dan McGee <dan@archlinux.org>
* Kill all remaining 'PATH_MAX + 1' usagesDan McGee2011-06-09
| | | | | | | | | The few remaining instances were utilized for buffers in calls to snprintf() and realpath(). Both of these functions will always ensure the returned value is padded with '\0', so there is no need for the extra byte. Signed-off-by: Dan McGee <dan@archlinux.org>
* _alpm_lstat: only duplicate string if necessaryDan McGee2011-06-09
| | | | | | | | | The vast majority of the time we will just be passing the same string value on to the lstat() call. The only time we need to duplicate it is if the path ends in '/'. In one run using a profiler, only 400 of the 200,000 calls (0.2%) required the string to be copied first. Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix graph free valgrind warningsDan McGee2011-06-08
| | | | | | | | | Due to the way we set up the graph structure, we don't always have good parent information. The changes made in dd8cf0c12dd5e assumed this, so back them out and just live with the dead pointers being there in the memory while we are cleaning up after ourselves. Signed-off-by: Dan McGee <dan@archlinux.org>
* Plug a memory leakDan McGee2011-06-08
| | | | | | Introduced by me in commit cc25576f8b54b3. Signed-off-by: Dan McGee <dan@archlinux.org>
* Merge branch 'maint'Dan McGee2011-06-07
|\ | | | | | | | | Conflicts: lib/libalpm/add.c
| * Remove incorrect output when downloading onlyAllan McRae2011-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | When only downloading a package, pacman can produce some incorrect output. > pacman -Sddw nvidia-utils warning: nvidia-utils-270.41.19-1 is up to date -- reinstalling This line is now now silenced when using -Sw. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | New signatures for alpm initialize and releaseDan McGee2011-06-07
| | | | | | | | | | | | | | | | | | | | | | These new method signatures return and take handle objects to operate on so we can move away from the idea of one global handle in the API. There is also another important change and that deals with the setting of root and dbpaths. These are now done at initialization time instead of using setter methods. This allows the library to operate more safely knowing that paths won't change underneath it. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Add cachedirs one-by-one in set_cachedirs()Dan McGee2011-06-07
| | | | | | | | | | | | | | This addresses the issue where calling set_cachedirs() didn't canonicalize the passed-in paths. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Be consistent with memory treatment for plural option settersDan McGee2011-06-07
| | | | | | | | | | | | | | In all cases we should duplicate the passed-in list so the caller is free to do with it as it pleases. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Add helper methods for setting directory optionsDan McGee2011-06-07
| | | | | | | | | | | | | | This keeps duplicate code to a minimum. This will come in more handy as we refactor some of these option setters away. Signed-off-by: Dan McGee <dan@archlinux.org>