summaryrefslogtreecommitdiff
path: root/src/pacman/query.c
Commit message (Collapse)AuthorAge
* pacman/query.c : -Qo optimization.Chantry Xavier2007-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I didn't understand why realpath was called on every files of every filelist in query_fileowner : ppath = resolve_path(path); It turns out this is needed for the diverted files. For example, cddb_get installs /usr/lib/perl5/site_perl/5.8.8/CDDB_get.pm which actually ends in /usr/lib/perl5/site_perl/current/CDDB_get.pm . And for making pacman -Qo /usr/lib/perl5/site_perl/current/CDDB_get.pm , realpath has to be called on both the target, and the file in the filelist. However, realpath is costly, and calling it on every single file resulted in a poor -Qo performance. Worst case : pacman -Qo /lib/libz.so.1 0.35s user 1.51s system 99% cpu 1.864 total So I did a little optimization to avoid calling realpath as much as possible: first compare the basename of each file. Result: src/pacman/pacman -Qo /lib/libz.so.1 0.24s user 0.05s system 99% cpu 0.298 total Obviously, the difference will be even bigger at the first run (no fs cache), though it's quite scary on my system : 1.7s vs 40s previously. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Add -q/--quiet option for controlling output.Artyom2007-11-25
| | | | | | | | | | | | Currently this only affects -Ss, -Sl, and -Q to output less information (only package names). In the future, we can reuse this flag for other things as well. [Aaron: rewritten as a front-end flag] Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com> [Dan: squashed commits together] Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix memleak when querying package file(s)Dan McGee2007-11-25
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove duplicated get_upgrades function, use sysupgrade instead.Chantry Xavier2007-11-21
| | | | | | | | | | | | | | | | The alpm_get_upgrades was exactly the same as find_replacements + _alpm_sync_sysupgrade, except that it automatically made the eventual replacements, without asking the user : Replace %s with %s/%s? [Y/n] The replace question, asked in find_replacements. can now be skipped by using a NULL trans argument, so that we get the same behavior as with alpm_get_upgrades. So alpm_db_get_upgrades() can now be replaced by alpm_sync_sysupgrade(db_local, syncdbs). Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove REQUIREDBY usage from libalpmDan McGee2007-11-14
| | | | | | | | | | | | Instead of using the often-busted REQUIREDBY entries in the pacman database, compute them each time they are required. This should help many things: 1. Simplify the codebase 2. Prevent future database corruption 3. Ensure when we do use requiredby, it is always correct 4. Shrink the pmpkg_t memory overhead Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix display of -Qip output when a package file is givenDan McGee2007-11-13
| | | | | | | Too many fields were being shown on -Qip output, and sizes were not always correct (-Qi and -Qip output on the same package did not agree). Signed-off-by: Dan McGee <dan@archlinux.org>
* Clean up usage of extern variablesDan McGee2007-11-04
| | | | | | | | Instead of declaring the extern variable in every *.c file, include it in the header file that makes sense. This means handle.h for the handle, and conf.h for the pacman side config object. Signed-off-by: Dan McGee <dan@archlinux.org>
* pacman/query.c: add missing free()Dan McGee2007-10-29
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Add download size to target list.Nathan Jones2007-10-19
| | | | | | | | | | This displays the download size, taking into account delta files and cached files. This closes FS#4182. Signed-off-by: Nathan Jones <nathanj@insightbb.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Add 'full' parameter to alpm_pkg_loadDan McGee2007-09-28
| | | | | | | | | | | | | | | | | | | In most cases, we want to fully scan a package when we load it, which serves as a integrity verification check. However, there are times when it is only desired to read the metadata and nothing else, so allow the caller of pkg_load to choose the behavior they need. This pays big dividends in speeding up pacman cache cleaning functionality. Old (729 packages): real 1m43.717s user 1m20.785s sys 0m2.993s New (729 packages): real 0m25.607s user 0m19.389s sys 0m0.543s Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove the DB consistency check from pacman and libalpm.Chantry Xavier2007-09-16
| | | | | | | | | | | | This reverts commit dfc85cb5f516ffbcff557522e9703c5c7d88b047 and b6f3fe6957d0206485eac98fb2120578b75d0058. This DB check is already in testdb (among others). Also testdb now uses the db path set at make time by default, so specifying the db path is optional. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Make some small changes recommended by splintDan McGee2007-09-11
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* new query options : explicit (-Qe) and deps (-Qd).Chantry Xavier2007-08-15
| | | | | | | | | | | The t shortcut for --test was removed, the orphan option (previously -Qe) was renamed to -Qt, -Qe lists all packages installed explictly, and -Qd lists all packages installed as dependencies. Besides, t can be combined with either e or d. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* libalpm/query.c : makes orphans and foreign options as filters.Chantry Xavier2007-08-15
| | | | | | | | | | The --foreign and --orphans functions now behave as a filter for the other options. This cleans the code a bit, and will make easier the adding of new filter options, like explicit (show only explictly installed packages) or depends (show only packages installed as dependencies). Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Fix previous makepkg patch, and some pacman output.Andrew Fyfe2007-07-12
| | | | | | | | | | makepkg: We still need the source files in $srcdir because PKGBUILDS need access to noextract() files and other file not handled by by extract_source(). (eg config files) query.c: Fix some output formating. Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
* pacman/query.c : return after a query on all packages.Chantry Xavier2007-07-02
| | | | | | | | | Previously, the following error was displayed even after a valid and successful query operation on all packages, like -Q , -Ql, -Qi, -Qil : no targets specified (use -h for help) Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Clean up pacman/sync.c and organize it a bitDan McGee2007-06-13
| | | | | | | | Re-add some checks for a valid target list. In addition, move variable declarations to the most local scope possible, which should help in finding errors that were previously uncaught. Signed-off-by: Dan McGee <dan@archlinux.org>
* Functionalize query.c and pacman_queryDan McGee2007-06-12
| | | | | | | | | | | | Move a lot of the operations that pacman query performs into their own functions for ease of following the flow and for possible later merges with their sync counterparts. We need to think less in terms of operations and more in term of overall concepts. Also (re)introduced checks for the target list on a -Q operation, ensuring that we only call certain query operations when it is sane to do so. Signed-off-by: Dan McGee <dan@archlinux.org>
* Implement a -Qt operation in frontend to test the databaseDan McGee2007-06-09
| | | | | | | | After adding a alpm_db_check() operation in the back end, we can call it in the front end and present a user-friendly interface to it. Inspired-by: VMiklos <vmiklos@frugalware.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* 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>
* Merge branch 'alpm.c_cleanup' into frontend_configDan McGee2007-06-04
|\ | | | | | | | | | | Conflicts: lib/libalpm/alpm.c
| * Move functions out of alpm.c to where they belongDan McGee2007-06-04
| | | | | | | | | | | | | | | | alpm.h is the only "publically viewable" file, so there is no reason to have functions in alpm.c that belong in package.c, db.c, etc. Move the functions where they belong and leave only the library init functions in alpm.c. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Rip alpm_parse_config out of libalpmDan McGee2007-06-04
|/ | | | | | | | | | Switch over to the new frontend parseconfig. * Fix a few issues in parseconfig * Remove unused callback upon database registration * Remove conf file related errors from error.c/alpm.h Signed-off-by: Dan McGee <dan@archlinux.org>
* Move parts of pacman_query into subfunctions (query_search, query_group, ↵Chantry Xavier2007-06-02
| | | | | | | | | | | query_isfile) Clean up pacman_query so functionality is actually in functions, similar to how sync.c is organized. After doing this, it is easy to see similarity in the code between sync.c and query.c, so we should be able to consolidate some of this. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Change -z|--showsize flag to ShowSize pacman.conf optionNathan Jones2007-06-01
| | | | | | | Also cleaned up some duplicate printf lines related to the ShowSize option. Signed-off-by: Nathan Jones <nathanj@insightbb.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Move DB and cache dirs away from there dependence on ROOTDIRDan McGee2007-05-31
| | | | | | | | | | | | | | | | | | | This change allows us to use all autoconf specified paths, most notably $(localstatedir). It is quite a change and touches a lot of files, as all references to the DB and cache were done with the ROOTDIR as a prefix. * add --lock command-line option to pacman to specify the location of the lockfile (this can now be specified at configure time by setting the $localstatedir path). * Rip quite a few settings out of configure.ac as they are now picked by setting the paths during configure or make. * Fix bug with /tmp fallback for sync downloads not working correctly (related to root location, now the system tmp dir is used). * Simplified the parameters to some libalpm functions, and added get/set for the new lockfile option. * Renamed several of the DEFS to names without the PM_ prefix. Signed-off-by: Dan McGee <dan@archlinux.org>
* Set an error exit status on -Qi or -Si failureDan McGee2007-05-31
| | | | | | | Regression from 2.9.8 where a failed -Qi lookup did not return an error on exit. The exit status is now incremented for each error encountered. Signed-off-by: Dan McGee <dan@archlinux.org>
* Add -Qee option for the original behavior of -QeChantry Xavier2007-05-20
| | | | | | | | | | | -Qee now lists "orphans" the way pacman used to - that is, -Qe lists packages required by nothing that were installed as a dependency, but -Qee lists all packages not required by something else. Also, I snuck in a compile fix for my real_path cleanup earlier, heh Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
* Fix broken resolve_path functionAaron Griffin2007-05-18
| | | | | | | Removed some unneeded path munging so that our relative paths resolve properly. This closes FS#7068 Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
* Display size for packagesNathan Jones2007-05-14
| | | | | | | | | This patch adds a -z|--showsize option to the -Q and -S commands. The option displays the size of individual packages. This is something that I have wanted for a while, and there is a feature request for it. Signed-off-by: Nathan Jones <nathanj@insightbb.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Clean up query_fileownerDan McGee2007-05-07
| | | | | | | * gotcha -> found * line wrap changes Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove output.c and output.hDan McGee2007-04-26
| | | | | | | One function was left in this set of files after the earlier cleansing, so I moved yesno to util.c. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove ERR calls from the codeDan McGee2007-04-26
| | | | | | | | All ERR() calls have been replaced with fprintf(stderr, ...). Still to be done- fix all the newline issues that are sure to pop up. What fun! Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove MSG output macro (#define and in code)Dan McGee2007-04-26
| | | | | | | | This is the first step of converting output to standard functions such as printf, and eventually allowing compiliation with the -pedantic flag as is done on the libalpm side. Signed-off-by: Dan McGee <dan@archlinux.org>
* Move log.c/h -> output.c/h to properly reflect what is containedDan McGee2007-04-26
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* More pacman side cleanupDan McGee2007-04-26
| | | | | | | | | | | * Cleaned up more of the header #includes, and got rid of a lot of stuff that was due to trying to make it compile on BSD/Darwin/CYGWIN. We can add it later but lets keep it simple for now and do it in seperate files if possible later. * Removed a lot of #define MACROS. Some were not even used, and others were only used a few times. Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove more unnecessary stuffDan McGee2007-04-25
| | | | | | | | | * Remove libintl.h from most files, as we only need to include it once in util.h where _() is defined. * Remove other unnecessary header inclusions. * Remove a macro that was only used once and replaced it with actual code. Signed-off-by: Dan McGee <dan@archlinux.org>
* Merge single-function header files on pacman sideDan McGee2007-04-25
| | | | | | | Having a seperate header file for add, remove, query, etc. seemed overkill. Merge them all into a common pacman.h and fix the necessary #includes. Signed-off-by: Dan McGee <dan@archlinux.org>
* * -Qo now properly resolves paths when finding an ownerAaron Griffin2007-03-22
| | | | | NOTE that we do NOT want symlinked *files* resolved, only paths (i.e. /usr/lib/perl5/site_perl/*)
* * Typo fix.Dan McGee2007-03-21
|
* * Fix asking the user to upgrade when using -SpAaron Griffin2007-03-21
| | | | | | * More significant error messages when -Qo fails * Potential fix for reported error that pacman indicates corrupt packages when space is full on the cache dir
* * Fixed -Qil regression, now both flags are honored. (FS #1355)Dan McGee2007-03-12
|
* * -Qs was returning an error if no package found, which is not the same ↵Dan McGee2007-03-06
| | | | behavior as -Ss.
* 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.
* * pacman hidden arguments: removed -Y and -D. -T is the only hidden arg now, toAaron Griffin2007-02-26
| | | | | | | | be used in place of -Y. Also, -D was rather silly, as it does mostly what -S does. * Cleaned up pacman_deptest - removed the goofy faketarget stuff (NEEDS testing still) * libalpm function renames
* * Updated the README fileAaron Griffin2007-02-12
| | | | | * Removed the handle->needles param. It's not needed not that alpm_list_t is public
* * Fix total transfered size on download barAaron Griffin2007-02-07
| | | | | * Fix -Qm segfault * Minor query cleanup
* * Makepkg updates, and small bugfix on man page compression.Dan McGee2007-02-06
| | | | | * Change libtool default to makepkg2 behavior. * Other small changes.
* Implemented a crappy version of -Qu (query upgrades). This simply outputs theAaron Griffin2007-02-04
| | | | | | | | packages to be upgraded in a -Su operation. Much of the code is duplicated from sync.c. TODO: move the implementation to upgrades.c, and reimplement the sync_sysupgrade function in terms of this: trans->packages = alpm_get_upgrades();
* * Make -Qo work on multiple files againAaron Griffin2007-01-31
| | | | * no real sense in query_fileowner returning an int