summaryrefslogtreecommitdiff
path: root/lib/libalpm/add.c
Commit message (Collapse)AuthorAge
* libalpm/add.c : fix for FS #7484Chantry Xavier2007-07-01
| | | | | | | | | | | | | 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>
* libalpm/add.c,util.c : log ARCHIVE_WARN warning to debug output.Chantry Xavier2007-07-01
| | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* libalpm/add.c : ignore libarchive warning.Chantry Xavier2007-06-28
| | | | | | | | | 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>
* Remove unnecessary trans parameter from _alpm_checkdepsNagy Gabor2007-06-26
| | | | | | | 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>
* Don't extract any top-level files in a package that start with '.'Dan McGee2007-06-26
| | | | | | | | | | 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>
* Revert "Fix libarchive permission extraction"Dan McGee2007-06-20
| | | | | | | | 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.
* Const correctness!Dan McGee2007-06-05
| | | | | | | | | Add some 'const' keywords all over the code to make it a bit more strict on what you can and can't do with data. This is especially important when we return pointers to the pacman frontend- ideally this would always be untouchable data. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove freespace checking codeDan McGee2007-06-02
| | | | | | | | This code depends on /etc/mtab existance, which is not very reliable in all cases, especially in a chroot or non-Linux environment. Dump it for now until we can find a better way. Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix libarchive permission extractionAaron Griffin2007-05-18
| | | | | | | | Hackish fix to ensure libarchive extracts files and dirs with the right permissions. For some reason extracting /tmp on install wasn't handled properly by librachive, so an explicit chmod will fix this. Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
* libalpm util.c and util.h cleanupDan McGee2007-04-29
| | | | | | | | | | * Remove some unnecessary conditional compiling in util.h- move the functions tha required it to trans.c (along with a bunch of new header includes). * Clean up util.h a bit- remove some header includes, remove universal libarchive include and only put it in the files that need it. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove 'removes' array from libalpmDan McGee2007-04-28
| | | | | | | We don't use this functionality for now, so get rid of it and the functions associated with it. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove FREELISTPTR macroDan McGee2007-04-28
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove FREEPKG macro and correctly type _alpm_pkg_freeDan McGee2007-04-28
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove FREETRANS macro and correctly type _alpm_trans_freeDan McGee2007-04-27
| | | | | | Remove an unnecessary macro, and get rid of the void pointer. Signed-off-by: Dan McGee <dan@archlinux.org>
* Clean up gettext on the libalpm sideDan McGee2007-04-26
| | | | | | | Remove inclusion of libintl.h from all files, because we can do it once in util.c where the _() macro is defined. Signed-off-by: Dan McGee <dan@archlinux.org>
* ldconfig changes from CVSAaron Griffin2007-04-16
| | | | | | | forward-porting some 3.0.2 changes * Nagy's ldconfig fix * 3 new pactests to check if ldconfig runs Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
* Fixed alpm_log call- too many parameters passed. (bardo on #archlinux-pacman)Dan McGee2007-03-22
|
* I was mistaken, newpkg->data IS useful here, as the scriptlet isn't in the FS atAaron Griffin2007-03-22
| | | | this point
* * Correct install scriptlet usage (reuse of handle->root when not needed)Aaron Griffin2007-03-22
| | | | | * Skip running scriptlet when chroot fails - to prevent issues in the host filesystem
* * Fix group comparison issue and associated compilation warnings by usingDan McGee2007-03-11
| | | | | | | the alpm strcmp operation which takes void* references. * We had this great visibility patch, but never actually took advantage of it. Added the right compile flag to make it work and added some more SYMEXPORTs where necessary to have a successful compile.
* * Sorry tranlators, another string update. .pacorig was displayed twice inDan McGee2007-03-06
| | | | | the output of this message (simple fix- remove .pacorig from your translated message).
* This commit looks much more monumental than it is. Almost all just #includeDan McGee2007-03-05
| | | | | | | | reordering and adding ones that were forgotten (noticed when trying to compile after reordering). * Updated the HACKING file to include information on #include usage. * print -> vprint in "making dir" function in pactest.
* * Fixed a whole mess of extra '/' pathing issues when a different root isAaron Griffin2007-03-04
| | | | | | | | | | | | | | specified * Use db->path when appropriate * Commented out the FAKEROOT checks in libalpm. This should never ever be done. TODO test this quite a bit, as this will never cause the transactions to fail if RW operations are requested... right now it is totally up to the front end to decide when to fail * Use realpath() to canonicalize the root path when specified, so _alpm_makepath() doesn't freak out * Fixed some output/indent of MDFile and SHAFile algorithms * More efficient sprintf() usage in MDFile/SHAFile * Added real error output to _alpm_makepath
* * Remove unnecessary call to _alpm_trans_update_depends that was erroringDan McGee2007-03-03
| | | | | anyway. * Spelling/commenting etc.
* Big commit this time:Aaron Griffin2007-03-03
| | | | | | | | | | | | | | | | | | | | | | | * 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
* * Switched some functions to alpm_pkg_get_* usage as I came across themAaron Griffin2007-03-01
| | | | | | | | | | | * 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
* * Enforce const char* params when using stringsAaron Griffin2007-02-26
| | | | | | | * 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
* * Cleaned up some debug outputAaron Griffin2007-02-22
| | | | | | | | | * 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
* * Some cascade removal changes. Mainly code cleanup, but this is an attempt toAaron Griffin2007-02-20
| | | | | track down the great "Codemac Segfault" * Fixed sortdeps - use the alpm_pkg_get functions to ensure data
* * Updated conflict checking one last time. You can finally have a file moveDan McGee2007-02-20
| | | | | | | | | | 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.
* Moved the update_depends function to trans.c, as it depends on a transactionAaron Griffin2007-02-18
| | | | object
* * A whole mess of backup changesAaron Griffin2007-02-17
| | | | | | | | | | | | - 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
* * Removed needless checking of package infolevel- leave it to theDan McGee2007-02-14
| | | | alpm_pkg_get functions to do this.
* * Package file parsing - fixed size and isize - isize is the "size" variableAaron Griffin2007-02-10
| | | | | | | | | | | | 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
* * 'add' percentages now cap at 100% (see the comment)Aaron Griffin2007-02-10
| | | | * downloaded packages now pass ONLY the package name to the callback
* * I made "alpm_versioncmp" public a while back, without noticing this was ↵Aaron Griffin2007-02-09
| | | | | | 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.
* Cleaned up some of the metadata controlAaron Griffin2007-02-01
|
* Debug logging changes:Aaron Griffin2007-01-31
| | | | | | | | | | | | | | | | * 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.
* slight line spacing/indent updatesDan McGee2007-01-31
|
* K. Piche <kevin.piche@cgi.com>Aaron Griffin2007-01-30
| | | | * ALPM_LOG_FUNCTION macro and all the great work to add this macro everywhere
* K. Piche <kpiche@rogers.com>Aaron Griffin2007-01-30
| | | | | | | * gcc visiblity changes Also modified _alpm_versioncmp -> alpm_versioncmp (public function) as per K. Piche's suggestions
* * Remove -fno-strict-aliasing as it is now unnecessary to compile.Dan McGee2007-01-30
| | | | | | * 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.
* Discussed on IRC for a bit, this makes the following changes for clarity:Dan McGee2007-01-30
| | | | | | | | * 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.
* This mainly deals with code clarity- removing currently unneededAaron Griffin2007-01-24
| | | | | | | | | | 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>
* Preliminary checkin for alpm_list conversionAaron Griffin2007-01-19
| | | | | | | | | * 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
* Dan McGee <dpmcgee@gmail.com>Aaron Griffin2007-01-18
| | | | * fix "warning: dereferencing type-punned pointer will break strict-aliasing rules"
* * bug fix FS#6100 - fix --print-uris outputAaron Griffin2007-01-03
|
* * Bug fix FS#6058Aaron Griffin2007-01-03
| | | | properly remove entries from "Required By" instead of wiping it out entirely
* * Properly fix the NoUpgrade issues.Aaron Griffin2006-12-22
|
* * Unused variable 'path'Aaron Griffin2006-12-22
|