summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/add.c
AgeCommit message (Collapse)AuthorFilesLines
2007-03-03Big commit this time:Aaron Griffin1-25/+35
* Moved entirely to alpm_pkg_get_* accessors, to read data on demand * Mostly removed the INFRQ_ parameters from outside the be_files backend (making the backend more extensible in the long run) * packages created from _alpm_db_scan now have the db and origin set (making accessors actually work for these packages) * removed _alpm_db_ensure_pkgcache * totally revamped the _alpm_checkconflicts function, making it cleaner and easier to read (and thus fix in the long run) - maintainable code ftw NOTE: feel free to rename the functions... I couldn't think of anything better * removed an extra loop in sync.c:find_replacements - no sense in looping over an entire DB while strcmp'ing the name, when we have get_pkgfromcache Other: * package struct "license" -> "licenses" * Created _alpm_sync_find (duplicate code in some places, find_pkginsync * Minor const correctness changes along the way * fixed a couple extra '/' pathing issues (non-issues really) * removed a duplicate pkg_cmp function
2007-03-01* Switched some functions to alpm_pkg_get_* usage as I came across themAaron Griffin1-0/+30
* Added some provision switching hackery. This could probably use some refactoring,.. it solves the following case: pkg1 and pkg2 provide 'foo' and are both installed pkg3 depends on 'foo' and so lists 'pkg1' in the REQUIREDBY db section pkg1 is upgraded and no longer provides 'foo' ** This code ensures that the REQUIREDBY of pkg3 is updated to require pkg2 now instead of pkg1
2007-02-26* Enforce const char* params when using stringsAaron Griffin1-54/+0
* Unified some functions names "package" -> "pkg" for consistency * Removed the goofy 'faketarget' stuff used for dep testing * Renamed alpm_pkg_isin -> alpm_pkg_find * Renamed alpm_db_readpkg -> alpm_db_get_pkg
2007-02-22* Cleaned up some debug outputAaron Griffin1-4/+12
* Fixed a segfault in the conflict checking code * Added an automatic failure in the case of -A/-U for a replacement of an existing package. This requires a large amount of work and is postponed for now. Example: If ncmpc is installed, pacman -U /path/to/ncmpc-svn.pkg.tar.gz will fail with and appropriate error message
2007-02-20* Some cascade removal changes. Mainly code cleanup, but this is an attempt toAaron Griffin1-0/+3
track down the great "Codemac Segfault" * Fixed sortdeps - use the alpm_pkg_get functions to ensure data
2007-02-20* Updated conflict checking one last time. You can finally have a file moveDan McGee1-10/+12
from one package to another seemlessly (knock on wood). This is implemented through the use of two skip lists in the trans struct- skip_add and skip_remove, which replace the former trans->skiplist. * Removed an unnecessary function parameter, added a necessary one. * If a package has no backup files, print '(none)' under the heading so it is more obvious. * Updated my TODO list.
2007-02-18Moved the update_depends function to trans.c, as it depends on a transactionAaron Griffin1-2/+1
object
2007-02-17* A whole mess of backup changesAaron Griffin1-354/+316
- the code should be clearer, more organized, commented, and have worthwhile variable names now - proactive backup=()s now work. That is, adding a file to a backup array does what it should on the upgrade to that package, no longer forcing you to wait a full upgrade cycle for it to take effect * ldconfig was being run twice on an upgrade operation - fixed * fixed another pm_fprintf/printf output corruption with the progress bars * refactored some duplicate code for adjusting 'requiredby' lists * Added config.rpath to .cvsignore
2007-02-14* Removed needless checking of package infolevel- leave it to theDan McGee1-9/+2
alpm_pkg_get functions to do this.
2007-02-11* Package file parsing - fixed size and isize - isize is the "size" variableAaron Griffin1-18/+23
from the PKGINFO, and size is the stat() size of the archive * Removed the useless 'output' param from package.c:parse_descfile * Installation progress - Call progress callback once at 0% for initialization - 'needdisp' was useless - alpm_list_count is called an excessive amount in these nested loops. Now we only call it once per iteration - Use the compressed sizes for PROGRESS calcs as uncompressed (isize) is not exact (it is missing metadata sizes), and thus produces > 100% numbers
2007-02-10* 'add' percentages now cap at 100% (see the comment)Aaron Griffin1-4/+14
* downloaded packages now pass ONLY the package name to the callback
2007-02-09* I made "alpm_versioncmp" public a while back, without noticing this was ↵Aaron Griffin1-2/+2
already done (alpm_pkg_vercmp). I dropped this change, making versioncmp "private" again. (alpm_versioncmp -> _alpm_versioncmp, hidden symbol) * Make alpm_get_upgrades use the same version check that -Su and -S use.
2007-02-01Cleaned up some of the metadata controlAaron Griffin1-17/+9
2007-01-31Debug logging changes:Aaron Griffin1-19/+19
* The --debug params were goofy. New setup allows --debug without params, --debug=<level> where level 1=debug output, 2=debug and download output, 3=debug, download, and function tracing output. This seems more sane to me. * Removed PM_LOG_FLOW1 and PM_LOG_FLOW2. They were just confusing. When adding new functions, it is near impossible to determin if your output should be "flow1" or "flow2" without tracking all the way up the call chain. Rarely would one ever say "ok, lets just show "flow2" output. These have both been replaced with PM_LOG_DEBUG * Removed the need for the root parameter on alpm_initialize. it is now defaulted to PM_ROOT just like dbpath and cachedir. This allows alpm to be initialized BEFORE option parsing in the front end, saving us some duplicate variables in the frontend. * Cleaned up front end variables due to early alpm_initialize call.
2007-01-31slight line spacing/indent updatesDan McGee1-2/+2
2007-01-30K. Piche <kevin.piche@cgi.com>Aaron Griffin1-0/+8
* ALPM_LOG_FUNCTION macro and all the great work to add this macro everywhere
2007-01-30K. Piche <kpiche@rogers.com>Aaron Griffin1-3/+3
* gcc visiblity changes Also modified _alpm_versioncmp -> alpm_versioncmp (public function) as per K. Piche's suggestions
2007-01-30* Remove -fno-strict-aliasing as it is now unnecessary to compile.Dan McGee1-7/+25
* Fix up add.c a bit better than it was in regards to FS #3492. * Optimized the sqrt call in dependency cycle checking to a single call. * Removal of an outdated comment.
2007-01-30Discussed on IRC for a bit, this makes the following changes for clarity:Dan McGee1-3/+3
* alpm_list_is_in --> alpm_list_find * alpm_list_is_strin --> alpm_list_find_str * Flip parameters of both functions to be inline with rest of alpm_list. First commit, woohoo.
2007-01-24This mainly deals with code clarity- removing currently unneededAaron Griffin1-1/+1
optimizations in order to make the code much more readable and type-checkable. Every enum in the library now has it's own type that should be used instead of the generic 'unsigned char'. In addition, several #define statements dealing with constants were converted to enums. Signed-off-by: Dan McGee <dpmcgee@gmail.com>
2007-01-19Preliminary checkin for alpm_list conversionAaron Griffin1-22/+22
* renamed pmlist_t -> alpm_list_t * made alpm_list_t a public type (alpm_list.h header) * removed additional storage for registered DBs in pacman source * some code cleanup * removed duplicate (pm)list_display functions from pacman source * misc code cleanup
2007-01-18Dan McGee <dpmcgee@gmail.com>Aaron Griffin1-3/+3
* fix "warning: dereferencing type-punned pointer will break strict-aliasing rules"
2007-01-03* bug fix FS#6100 - fix --print-uris outputAaron Griffin1-0/+4
2007-01-03* Bug fix FS#6058Aaron Griffin1-0/+5
properly remove entries from "Required By" instead of wiping it out entirely
2006-12-22* Properly fix the NoUpgrade issues.Aaron Griffin1-13/+12
2006-12-22* Unused variable 'path'Aaron Griffin1-2/+1
2006-12-21*untested* potential fix for the NoUpgrade issues.Aaron Griffin1-3/+3
2006-12-21* modeline fixes / reformattingAaron Griffin1-28/+28
* formatting / indentation fixes * makepkg: Dan McGee <dpmcgee@gmail.com> - integrity check fix Jürgen Hötzel <juergen@hoetzel.info> - EUID usage and "x$foo" check revamp
2006-12-14* Dan McGee's makepkg updates ↵Aaron Griffin1-1/+1
http://www.archlinux.org/pipermail/pacman-dev/2006-December/000792.html * configure fixes (CFLAGS) * no-strict-aliasing hacks until full C99 compliance * --with-config-file configure option
2006-12-01* Cosmetic changes and typo fixesAaron Griffin1-1/+19
* IgnorePkg and --ignore work again * Partial changes to support removal of conflicts for -U and -A (INCOMPLETE)
2006-11-24* Fixed some error output for "-Sd" and "-Rsc" dealing with missing/ignoredAaron Griffin1-2/+2
depends * Added valgrind suppression file
2006-11-14* Numerous mini valgrind fixes.Aaron Griffin1-1/+1
* Addition of hacky architecture check in the _splitname function * Removal of libfetch from the archlinux proper - it has been renamed to libdownload and can be found at http://phraktured.net/libdownload * Merge of _some_ of the Frugalware makepkg change - this may still be incomplete * Removal of libftp from cvs proper * PKGBUILD manpage now says 'PKGBUILD' instead of FrugalBuild (he he)
2006-10-31Numerous changes:Aaron Griffin1-3/+2
* Furthered the "lazy caching" to force the pkgcache to read nothing (INFRQ_NONE) by default. Anything requiring package data should now check the infolevel of each package and attempt to update it. This could be ironed out a bit more later (by using the front-end get_info function * Switched to libfetch. Drastic changes to the download code and the callback progress bar functions. Also fixed the return value of _alpm_downloadfiles_forreal. Downloading now supports http, ftp, https, and files urls, along with 'mtime's and numerous other fancy features from libfetch.
2006-10-21Minor changes:Aaron Griffin1-2/+0
* Moved the pmhandle_t extern decl around * Fixed a doxygen complaint
2006-10-20A handful of minor changes:Aaron Griffin1-8/+8
* Removed the PMList typedef, in favor of the same naming scheme other structs use 'pmlist_t' * Added a time stamp on debug output, to make it more informational * Moved alpm_db_register to _alpm_db_register, making the public function not take a callback parameter
2006-10-19Yet another "added three times" issue.Aaron Griffin1-26/+0
2006-10-17Removed extra includesAaron Griffin1-14/+0
2006-10-16Applied Frugalware patch from Christian Hamar alias krix <krics@linuxforum.hu>Aaron Griffin1-1/+1
for file-conflict progress bar Also did some CVS cleanup, removing some of the autogenerated files that shouldn't have been there
2006-10-15Merged frugalware changes (too many to list). Also added some config fileAaron Griffin1-63/+231
handling changes (support [sections] to carry over to included files - this helps with backwards compatibility with existing pacman config files)
2006-09-28removed libtar support in favour of libarchiveJudd Vinet1-19/+24
2006-07-15Patch from FW: Better control over CTRL-C interruptions -- do not leave the ↵Judd Vinet1-2/+8
DB in an inconsistent state
2006-05-15first stage of i18n stuff from VMiklosJudd Vinet1-59/+60
2006-03-07fixed reason loading if the pkg cache is loaded with DEPENDS onlyAurelien Foret1-2/+7
2006-03-07added a NOSCRIPLET flag to transactions (patch from VMiklos ↵Aurelien Foret1-3/+3
<vmiklos@frugalware.org>)
2006-03-02reworked the db object to prepare future integration with different backendsAurelien Foret1-7/+3
2006-02-20dropped the MALLOC macroAurelien Foret1-3/+10
2006-02-17prepend library function names with _alpm (helped with the patch from ↵Aurelien Foret1-38/+38
VMiklos <vmiklos@frugalware.org>) added log and event callbacks to sync_commit internal transactions
2006-02-16code cleanupAurelien Foret1-1/+1
2006-02-12added a add_faketarget functionAurelien Foret1-47/+55
reworked logs
2006-02-11reworked debug messagesAurelien Foret1-7/+7