Commit Graph

480 Commits

Author SHA1 Message Date
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 64cd7cf0a4 configure: use a var with the function name to test. 2011-01-25 12:42:34 +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 fd30feadcb xbps-bin/check.c: save some lines by using prop_object_type() directly. 2011-01-25 03:33:51 +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 61fbf17bb9 xbps_api.h: fix some comments. 2011-01-25 02:11:45 +01:00
Juan RP 6b4c6970a3 xbps-bin/question.c: use sizeof(). 2011-01-24 19:26:52 +01:00
Juan RP 0feae4fa20 xbps-uhelper: added 'getpkgdepversion' target. 2011-01-24 19:13:11 +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 887c3e4974 Merged `progress_callback' branch. 2011-01-24 14:48:20 +01:00
Juan RP 7e93c57fa3 NEWS: update for this branch.
--HG--
branch : progress_callback
2011-01-24 14:44:30 +01:00
Juan RP c7f7903862 prog.mk: look for libxbps in $(TOPDIR)/lib first rather than $(PREFIX)/lib.
--HG--
branch : progress_callback
2011-01-23 14:41:07 +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 7d3e17b86b Document xbps_humanize_number() in the API.
--HG--
branch : progress_callback
2011-01-22 14:37:07 +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 81b6b62aef xbps-bin/fetch.c: use else if conditionals.
--HG--
branch : progress_callback
2011-01-22 13:08:36 +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 724c4a6f0a Added fetch.c for xbps-bin, with the fetch function callback.
--HG--
branch : progress_callback
2011-01-22 12:40:58 +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 0a66dbea5f NEWS: update with past days changes. 2011-01-19 17:17:39 +01:00
Juan RP fcbe7f113b Don't build static bins with PIE, only for dynamic. 2011-01-19 16:52:55 +01:00
Juan RP 8dc6926664 configure: fixes for building with an installed static libxbps. 2011-01-19 14:45:58 +01:00
Juan RP 274c8c432b lib/Makefile: build libxbps with --export-dynamic. 2011-01-19 14:31:30 +01:00
Juan RP 3a303755c7 xbps_api.h: fix API comments for refcnts. 2011-01-19 11:32:20 +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 0a8fabbfac xbps-bin: remove spurios chars in two printf()s. 2011-01-18 23:42:51 +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 8e0a94d5cc xbps-repo: use xbps_repository_pool_find_pkg(). 2011-01-18 14:57:25 +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
Juan RP 2845f49bf2 Added tag 0.7.3 for changeset b373dfd04ef2 2011-01-16 17:08:24 +01:00
Juan RP d9fa6da693 NEWS, Changelog: update for 0.7.3. 2011-01-16 17:07:43 +01:00