Juan RP
bebad82316
repository_finddeps.c: remove useless code.
2011-01-27 21:12:42 +01:00
Juan RP
c58107bd27
xbps_repository_find_pkg_deps: fix stupid error by reusing a var.
2011-01-27 21:02:56 +01:00
Juan RP
176f5e3e40
xbps_sort_pkg_deps: use xbps_check_is_installed_pkg_by_name().
2011-01-27 20:54:23 +01:00
Juan RP
1cc45ee20f
Fix two asserts.
2011-01-27 20:47:34 +01:00
Juan RP
8a7bfe6cda
xbps_repository_find_pkg_deps: simplify and handle an error case.
2011-01-27 18:23:32 +01:00
Juan RP
faad0a6597
Make xbps_remove_pkg_from_* use shared code, and add another variant.
...
The functions have been renamed to really match what they do.
2011-01-27 18:22:57 +01:00
Juan RP
93e1a0a22c
Performance improvements for xbps_find_pkg_in_dict_by_{name,pattern} with virtual pkgs.
2011-01-27 15:50:50 +01:00
Juan RP
1c21a98545
Rename some symbols in repository_plist.c.
...
xbps_repository_get_pkg_plist_dict_from_url -> xbps_repository_plist_find_pkg_dict_from_url
xbps_repository_get_pkg_plist_dict -> xbps_repository_plist_find_pkg_dict
2011-01-27 13:53:33 +01:00
Juan RP
6e8e5b830e
repository_register.c: fix doxygen @file mark.
2011-01-27 12:44:32 +01:00
Juan RP
69512d4da7
Rename xbps_find_pkg_from_plist to xbps_find_pkg_dict_from_plist_by_name.
2011-01-27 12:41:49 +01:00
Juan RP
26701d3bf3
Rename a few symbols for clarity.
...
xbps_check_is_installed_pkg -> xbps_check_is_installed_pkg_by_pattern
xbps_check_is_installed_pkgname -> xbps_check_is_installed_pkg_by_name
xbps_check_is_repo_string_remote -> xbps_check_is_remote_uri_remote
2011-01-27 12:34:13 +01:00
Juan RP
628a6cebf7
Rename xbps_find_orphan_packages() to xbps_find_pkg_orphans().
2011-01-27 12:19:05 +01:00
Juan RP
41341af135
Shared code for xbps_find_{string,pkgname,pkgpattern}_in_array().
2011-01-27 03:05:22 +01:00
Juan RP
22d67bcfb9
Improve comments for dependency sorting.
2011-01-26 18:57:29 +01:00
Juan RP
9797030306
xbps_register_pkg: also copy the provides object for virtual packages.
2011-01-26 18:42:28 +01:00
Juan RP
4b3b50c6ef
xbps_check_is_installed_pkg: simplify.
2011-01-26 18:41:57 +01:00
Juan RP
f06a605854
Implemented support for virtual packages.
...
The patch adds 150 lines approximately. It is implemented by modifying
xbps_find_pkg_in_dict_by_name() and xbps_find_pkg_in_dict_by_pattern().
When no dictionary is returned if tries to find a virtual package by
looking at the "provides" array object, if found.
2011-01-26 18:05:43 +01:00
Juan RP
ac6fe51340
xbps_repository_find_pkg_deps: some performance optimizations.
2011-01-25 18:09:27 +01:00
Juan RP
563b6446f4
xbps_repository_pool_find_pkg: remove a debug printf that bothers me.
2011-01-25 17:52:59 +01:00
Juan RP
35aa4b9951
xbps_fetch_file: memset the stat(2) struct before using it.
2011-01-25 17:49:24 +01:00
Juan RP
a685c9ee41
xbps_sort_pkg_deps: exit from the loop immediately if all pkgs were sorted.
2011-01-25 16:04:37 +01:00
Juan RP
a47d030851
xbps_sort_pkg_deps: optimize one more time, it is 5% faster approx.
2011-01-25 14:56:37 +01:00
Juan RP
be5ff1d934
Don't build code with _GNU_SOURCE, use _XOPEN_SOURCE=500 instead.
...
_GNU_SOURCE is only now for xbps_xasprintf() if vasprintf is found,
and only for <stdio.h>, it's unset immediately once the header is included.
2011-01-25 13:00:23 +01:00
Juan RP
81fa8da4ce
Check for vasprintf() and add a replacement if it wasn't found.
2011-01-25 12:39:05 +01:00
Juan RP
4bba48a6a0
Rename repository.c to repository_register.c.
...
--HG--
rename : lib/repository.c => lib/repository_register.c
2011-01-25 11:25:38 +01:00
Juan RP
008573e1eb
Sprinkle a couple of assert(3)ions.
2011-01-25 04:14:33 +01:00
Juan RP
082efc3535
Added xbps_callback_array_iter() and use it in xbps-bin to list missing pkgdeps.
2011-01-25 02:55:34 +01:00
Juan RP
72d82a3a26
Simplify and share common code in xbps_repository_{update,install}_pkg().
2011-01-24 18:49:24 +01:00
Juan RP
0bb0838982
Start moving code from repository_find* to transaction_*.
...
--HG--
rename : lib/sortdeps.c => lib/transaction_sortdeps.c
2011-01-24 16:55:58 +01:00
Juan RP
f6ab3a28c3
libxbps: simplify package states code.
...
--HG--
branch : progress_callback
2011-01-22 18:00:31 +01:00
Juan RP
27c2ca3732
xbps_pkgpattern_match: remove a wrong memset(3) call.
...
--HG--
branch : progress_callback
2011-01-22 17:25:37 +01:00
Juan RP
ef25792f90
Simplify xbps_find_orphan_packages() by not using a temporary SIMPLEQUEU.
...
--HG--
branch : progress_callback
2011-01-22 17:08:49 +01:00
Juan RP
08d30043a3
lib/mkpath.c: don't document this file, it's included in the util group.
...
--HG--
branch : progress_callback
2011-01-22 16:38:52 +01:00
Juan RP
0cc4ba224e
Update API documentation for recent changes.
...
--HG--
branch : progress_callback
2011-01-22 14:24:51 +01:00
Juan RP
9611f3e412
xbps_unpack_binary_pkg: rename fn callback arg to be shorter.
...
--HG--
branch : progress_callback
2011-01-22 12:56:33 +01:00
Juan RP
984eae1578
Make xbps_fetch_file accept a callback to update its progress.
...
This also makes xbps_unpack_binary_pkg follow this convention by avoiding
static variables.
--HG--
branch : progress_callback
rename : bin/xbps-repo/util.c => bin/xbps-bin/util.c
2011-01-22 12:40:19 +01:00
Juan RP
8c2ccea435
WIP checkpoint for progress callbacks in the API.
...
At this moment I've only implemented the part for unpacking, other parts
will also use progress callbacks.
--HG--
branch : progress_callback
2011-01-21 17:16:58 +01:00
Juan RP
ab857595d7
Check that return value of snprintf(3) is not negative, rather than only -1.
2011-01-21 00:32:46 +01:00
Juan RP
84b578b0e4
libxbps: modify xbps_get_binpkg_repo_uri() to accept repository URL as 2nd arg.
2011-01-20 16:41:49 +01:00
Juan RP
6f8b2ca33a
libxbps: simplify how configuration files are handled, use cached values if possible.
2011-01-20 02:55:40 +01:00
Juan RP
274c8c432b
lib/Makefile: build libxbps with --export-dynamic.
2011-01-19 14:31:30 +01:00
Juan RP
efea94bec6
Fixed API documentation comments for doxygen.
2011-01-19 00:31:22 +01:00
Juan RP
2adaf610e7
libxbps: xbps_yesno/noyes() are only used in xbps-bin(8), remove from API.
2011-01-18 23:45:12 +01:00
Juan RP
992e8c6a14
libxbps::xbps_humanize_number(): use common values and hide implementation details from API.
...
So now its prototype is the following:
int xbps_humanize_number(char *buf, int64_t bytes)
It is a wrapper around NetBSD's humanize_number(3) which uses 6 digits for max
length, HN_AUTOSCALE and HN_NOSPACE|HN_DECIMAL. All users have been updated.
2011-01-18 23:10:07 +01:00
Juan RP
e2b55c90be
regpkgdb_dictionary.c: bump copyright year for previous changes.
2011-01-18 20:21:35 +01:00
Juan RP
9180bfce23
libxbps: regpkgdb: use a mutex for {inc,dec}rementing the refcnt.
2011-01-18 20:18:27 +01:00
Juan RP
fe15380e1b
libxbps: modify the API, new func xbps_get_binpkg_repo_uri().
...
This function replaces xbps_repository_get_path_from_pkg_dict() and
xbps_get_binpkg_local_path(). It takes a pkg dictionary as returned
by a repository pkg index or a transaction dictionary and returns
a string with the full path to the binary pkg, either in local
repos, cachedir or remote repos.
Update all code to use this function... sorry I broke ABI compatiblity.
2011-01-18 18:21:55 +01:00
Juan RP
6d7121c5bd
xbps_repository_get_pkg_plist_dict: use xbps_repository_pool_find_pkg().
2011-01-18 15:19:27 +01:00
Juan RP
503afdd48d
libxbps: extend the API, new func: xbps_repository_pool_find_pkg.
...
prop_dictionary_t xbps_repository_pool_find_pkg(const char *pkg, bool bypattern, bool best)
This function iterates over the repository pool and returns a pkg
dictionary matching its pkgname if "bypattern" is false, otherwise
if "pkg" matches the pkgdep pattern. If "best" is true, it will look
in all repos and will return the newer version, otherwise the first one
that matches the arguments specified.
With this addition supporting many small registered repos is cheap, because
it checks by-package rather than by-package-list. This also helped to removed
some duplicated code and fix some rare bugs.
Bump XBPS_RELVER to 20110118.
2011-01-18 14:44:39 +01:00
Juan RP
1125963da8
libxbps: simplify the algorithm for sorting deps in the transaction.
...
Rather than using a SIMPLEQ to copy the package dictionary and later on
adding all items into the sorted array, just add the pkg dictionary
into the sorted array directly and removing it from the unsorted array.
This reduces memory usage and greatly sorts all packages that aren't
installed automatically in the correct order in the transaction.
Also added a large comment explaining how the algorithm works and
what it is supposed to do and when.
2011-01-17 17:17:02 +01:00