Commit Graph

556 Commits

Author SHA1 Message Date
Juan RP
068cab8d20 libxbps: performance improvements by caching the most accessed paths.
1- We can cache the result of the first xbps_pkgdb_init() when it fails
   and avoid the malloc/free/access from it.
2- We cache the uname(2) result into a private var in xbps_handle and
   use it in xbps_pkg_arch_match().

This improves performance by ~5% approx and it's close as it was before
introducing the repository index format 1.5.
2012-06-15 15:33:11 +02:00
Juan RP
506625a716 libxbps: also match vpkgs in previous commit. 2012-06-14 12:12:05 +02:00
Juan RP
302b216d8d libxbps: do not add dups to transaction dictionary due to virtual pkgs. 2012-06-14 11:53:27 +02:00
Juan RP
3e9e87fc2a libxbps: require a pointer to xbps_handle in functions that need it.
This removes 2 global vars from lib/initend.c and easier to know
what functions require access to xbps_handle.
2012-06-14 08:22:11 +02:00
Juan RP
a3adbcda95 libxbps: use prop_array_get_cstring_nocopy(). 2012-06-13 09:23:48 +02:00
Juan RP
412d4b7280 libxbps: switch to archive_read_{close,free}. 2012-06-12 22:22:46 +02:00
Juan RP
c61ba8dfcc Added support for package conflicts. 2012-06-11 16:14:03 +02:00
Juan RP
81610697df xbps_transaction_install_pkg: proper pkg find order in rpool.
Previously it was preferring virtual packages from
configuration file before real packages.
2012-06-09 10:09:46 +02:00
Juan RP
20bb1af589 xbps_remove_pkg: return proper error if metadata files cannot be removed. 2012-06-09 10:05:29 +02:00
Juan RP
e75a524ee3 xbps_transaction_install_pkg: on exact match properly detect if it's installed. 2012-06-05 22:54:46 +02:00
Juan RP
efefa000b2 xbps_dictionary_metadata_plist_by_url: only accept exact matches. 2012-06-05 20:53:15 +02:00
Juan RP
a0f91f3342 xbps_file_hash_check_dictionary: fixed for rootdir != /. 2012-06-05 20:51:00 +02:00
Juan RP
a00a450fe0 unpack: make sure to use exact file when checking for hash matches. 2012-06-05 20:23:12 +02:00
Juan RP
84c6850c28 xbps_file_hash_dictionary: only process exact matches. 2012-06-05 20:22:47 +02:00
Juan RP
cc30039c60 xbps_unpack_binary_pkg: handle ARCHIVE_{EOF,FATAL,RETRY} and use archive_read_{close,free}. 2012-06-05 16:46:50 +02:00
Juan RP
c37026d4c6 libxbps: require an underscore in strings to detect correctly pkgname/version. 2012-06-05 10:58:39 +02:00
Juan RP
9441f9f14b libxbps: multiple random changes for overall performance increase. 2012-06-04 23:22:33 +02:00
Juan RP
fa73de309f libxbps: remove xbps_find_pkg_dict_from_plist_by_xxx (unused). 2012-06-04 21:34:21 +02:00
Juan RP
e9945dc345 Before unpacking pkg files always remove INSTALL/REMOVE scripts (if they exist). 2012-06-04 14:14:46 +02:00
Juan RP
7265ea0e4e trans: do not increase download_size if binpkgs are in local repos. 2012-06-04 10:09:46 +02:00
Juan RP
34c1269504 Fixed installing exact pkg versions on pkgs with hyphens, we use equal sign as delimiter now. 2012-06-03 07:26:48 +02:00
Juan RP
f9c72e1d06 xbps_transaction_install_pkg: properly fix previous commit. 2012-06-02 17:39:36 +02:00
Juan RP
bd3a8982cc xbps-bin: added support to install exact pkg version, i.e 'foo-1.0'. 2012-06-02 17:35:21 +02:00
Juan RP
40864bcdce Improve xbps_transaction_update_pkg/packages and misc cosmetic changes. 2012-06-02 16:52:01 +02:00
Juan RP
c7e4630056 xbps_rpool_sync: ignore fetch errors, they will be reported by state_cb. 2012-06-01 16:04:47 +02:00
Juan RP
642e6fca3a xbps_rpool_sync: also fetch repository files index, removed accidently in previous. 2012-06-01 15:45:49 +02:00
Juan RP
981b13bd5a xbps-repo: 'sync' and 'pkg-list' target now accept a repository URI argument.
If set, only the matching repository will be used for the task.
2012-06-01 15:02:06 +02:00
Juan RP
652e9afcef libxbps: fixed xbps_remove_pkg_from_array_by_{name,pattern,pkgver}.
The correct index wasn't being passed to prop_array_remove.
2012-06-01 10:53:28 +02:00
Juan RP
7289547432 Welcome "repository index format 1.5". See NEWS for information. 2012-05-31 16:29:56 +02:00
Juan RP
1bfb1ae028 libxbps: move xbps_pkgpattern_match to util.c and simplify. 2012-05-30 22:38:35 +02:00
Juan RP
27aacf97f4 xbps_file_exec: simplify and don't chroot when rootdir == /.
Before that change we were chroot(2)ing even when rootdir was set to /.
2012-05-30 17:44:39 +02:00
Juan RP
a94dd5dbfa Revert "libxbps: implement xbps_file_exec() with posix_spawn()."
This reverts commit 5aa05f4c72.
2012-05-30 17:26:25 +02:00
Juan RP
5aa05f4c72 libxbps: implement xbps_file_exec() with posix_spawn(). 2012-05-30 14:45:47 +02:00
Juan RP
c93d1637ae lib/package_unpack.c: remove dead assignments found by clang-analyzer. 2012-05-30 14:22:16 +02:00
Juan RP
f40759aabe libxbps: use same order strategy when checking for deps queued in transaction. 2012-05-30 12:54:28 +02:00
Juan RP
922ee1f1b6 libxbps: rename xbps_repository_pool_xxx to xbps_rpool_xxx. 2012-05-30 10:56:32 +02:00
Juan RP
da4b8b7427 rpool: improve the order while resolving dependencies.
See the NEWS file for more information. After that change you don't have
to set a virtual pkg in conf file, if required virtual pkg is in rpool.
2012-05-30 10:22:53 +02:00
Juan RP
f7f4e0bec0 Extend 'soft replace' and also remove obsolete files. 2012-05-25 22:44:58 +02:00
Juan RP
da9b6774c3 Fix previous: propagate "softreplace" obj to pkg being replaced. 2012-05-25 17:58:36 +02:00
Juan RP
6a4de0127d libxbps: introduce the concept of "soft replace"; see the NEWS file. 2012-05-25 17:24:36 +02:00
Juan RP
d075f7182a When removing pkg files, remove only dangling symlinks after regular files.
This is required for the upcoming eglibc package.
2012-05-25 14:31:42 +02:00
Juan RP
9acec7883b xbps_remove_pkg: do not error out if files.plist not found, just continue. 2012-05-21 23:03:29 +02:00
Juan RP
28767f2ea8 Added support to put packages "on hold". 2012-05-08 09:19:43 +02:00
Juan RP
5e0b06dc00 xbps-bin: improve def unpack cb to print more meaningful messages. 2012-05-06 16:48:47 +02:00
Juan RP
bbd0d893d0 xbps_repository_sync_index: print the plist file being downloaded in cb. 2012-05-06 09:10:25 +02:00
Juan RP
8a4b143bf3 Show a proper error message if download of a binpkg fails in a transaction. 2012-05-06 09:09:09 +02:00
Juan RP
934bc4869e rpool: make xbps_handle::repo_pool array immutable after initialization. 2012-04-13 10:06:08 +02:00
Juan RP
8b2c4ed47e xbps_dictionary_from_metadata_plist: if vpkg not found, look for a real pkg. 2012-04-13 09:23:35 +02:00
Juan RP
83bda174ab libxbps: make xbps_find_virtualpkg_* only look for virtual pkgs.
Before this commit they also looked for non virtual packages, which
is not what it was meant when those functions were added.
2012-04-12 11:57:21 +02:00
Juan RP
53d28fcb35 rpool: miscellaneous improvements to _init() and _release().
xbps_repository_pool_init:
 - Avoid unnecessary extra access(2) syscall when internalizing
   repository index plist files.
xbps_repository_pool_release:
 - Make sure to release internalized repository index arrays.
2012-04-12 11:54:11 +02:00