Commit Graph

212 Commits

Author SHA1 Message Date
Juan RP
d4f623e7e7 Commit Kyua/ATF test suite for libxbps. 2012-03-12 15:23:04 +01:00
Juan RP
8c6b335ca8 xbps-{bin,repo}: redirect error messages to stderr. 2012-02-25 10:30:15 +01:00
Juan RP
fd5d8b9f51 xbps-repo.8: sync with reality. 2012-02-20 16:02:42 +01:00
Juan RP
7a9d47c133 xbps-repo: show, show-deps and show-files targets accepts pkgpatterns. 2012-02-16 08:55:41 +01:00
Juan RP
7628561518 xbps-repo: added -h to print usage(), print detailed info for usage(). 2012-02-14 10:49:41 +01:00
Juan RP
cbfc8868a6 xbps-repo.8: sync with reality. 2012-02-06 13:32:31 +01:00
Juan RP
1acf933f5a xbps-repo: make show* targets do not follow virtualpkgs from xbps.conf.
The reason for that is that you should be able to show information from
any package, and by enabling virtual packages you cannot do that.
2012-01-27 15:24:24 +01:00
Juan RP
fe1e8d14c8 xbps-repo: [genindex] print to stdout when obsolete entry is removed. 2012-01-24 09:47:40 +01:00
Juan RP
791f1d40b2 xbps_handle: remove debug, install_*, syslog_enabled members.
Replaced by definitions that can be set to xbps_handle::flags.
2012-01-22 10:52:35 +01:00
Juan RP
a166d6a2a3 Simplify xbps_transaction_prepare()/commit() and related API changes.
- xbps_handle::transd -> new member with transaction dictionary.
- xbps_transaction_prepare: returns an int.
- xbps_transaction_commit: doesn't need any arg now.
- xbps_repository_pool_sync: doesn't need any arg now.
- xbps_pkgdb_update: removed xbps_handle * arg.
- xbps_transaction_missingdeps_get: removed, missing_deps array is in
  xbps_handle::transd("missing_deps") array object.
2012-01-22 10:00:46 +01:00
Juan RP
6940505de9 regpkgdb rototill: renamed to pkgdb, improve the public API. 2012-01-20 11:10:52 +01:00
Juan RP
9a088937b5 Repository index 1.4 -- see NEWS file for info. 2012-01-19 12:26:40 +01:00
Juan RP
dfc7ff4232 API break: simplify xbps_repository_pool_find_virtualpkg(). 2012-01-18 08:25:28 +01:00
Juan RP
d0e1477eeb Simplify xbps_end() and don't continue if xbps_init() did not succeed. 2012-01-17 16:56:17 +01:00
Juan RP
f2b05d6438 Improved pkg best matching in rpool, and support for exact pkgver matches.
- xbps_repository_pool_find_pkg in best match case, now returns the
  newest package version available in rpool.
- Added xbps_repository_pool_find_pkg_exact that returns a package
  by exact matching a pkgver.
- Removed xbps_handle_alloc(), the user is free to use memory
  allocated from heap or stack.
- Improved API documentation in preparation for 0.12.

Bumped XBPS_API_VERSION again.
2012-01-17 16:17:03 +01:00
Juan RP
da5e9f841f xbps-repo: fixed removing multiple entries from index-files.plist. 2012-01-17 12:16:54 +01:00
Juan RP
4fdf675249 xbps-repo: index.c: oldpkgver might be undefined if entry is removed from index. 2012-01-17 11:25:45 +01:00
Juan RP
9906aa7029 xbps-repo: index-files.c: warning due to uninitialized var. 2012-01-17 10:55:28 +01:00
Juan RP
beb7284681 xbps-repo: faster 'genindex' target implementation for index-files.plist. 2012-01-17 10:50:35 +01:00
Juan RP
95804bdb77 xbps-repo: simplify 'index-files.plist', externalized as an array. 2012-01-15 16:33:44 +01:00
Juan RP
2186e16a5e Fixed issue 21 "xbps-repo find-files is awfully slow" reported by ojab. 2012-01-15 14:24:44 +01:00
Juan RP
939e2c2417 xbps-bin(8): fix 'find-files' syntax in manpage. 2011-12-22 11:07:54 +01:00
Juan RP
47237846ae xbps-repo(8): the 'find-files' target now accepts multiple patterns. 2011-12-22 11:01:28 +01:00
Juan RP
13331f801c xbps-repo: the 'search' target now accepts multiple patterns as arguments. 2011-12-22 09:33:54 +01:00
Juan RP
a1f39a0a82 xbps-repo(8): rewriten manpage to mdoc(7) macro format. 2011-12-17 18:30:13 +01:00
Juan RP
b0ceeaa58e New configuration file via confuse: xbps.conf. 2011-12-15 11:19:20 +01:00
Juan RP
afde2a6653 xbps-repo: move list/search code into its own file: list.c. 2011-12-03 10:46:57 +01:00
Juan RP
43d85c76b3 xbps-repo: implement new target 'pkg-list' to list pkgs from target repo. 2011-12-03 10:37:31 +01:00
Juan RP
cb2e941b48 xbps-{bin,repo}: sync manpages. 2011-12-03 09:00:08 +01:00
Juan RP
3ccfec7054 Improved callback/states support to make libxbps std{err,out} printf free.
This is a major API/ABI change, documentation has been updated accordingly.
2011-11-24 11:23:08 +01:00
Juan RP
86f1f18571 libxbps: revamped trans states/cb to be more generic, not just for transactions. 2011-11-11 09:41:48 +01:00
Juan RP
ced906ff3f xbps-repo: renamed repository.c to show.c. 2011-11-10 23:31:46 +01:00
Juan RP
c2eed68471 libxbps: add xbps_repository_pool_sync, to sync repoidx from all remotes. 2011-11-10 23:14:50 +01:00
Juan RP
de4504c248 Update refs to pkg-index, which aren't true anymore. 2011-11-10 09:21:17 +01:00
Juan RP
59dc65b907 Move prog.mk to the bin directory. 2011-11-08 17:45:14 +01:00
Juan RP
662b5acc08 Implemented "New repository scheme and configuration file" from issue 16. 2011-11-07 20:28:35 +01:00
Juan RP
39e8ada644 xbps-repo: simplify code in repository.c. 2011-10-29 11:24:02 +02:00
Juan RP
1c4d486396 xbps-{bin,repo}: new -o flag for the 'show' target, to print specific objs value. 2011-10-29 08:17:54 +02:00
Juan RP
931a03b806 New configuration schemas changes, round 3.
struct xbps_handle::conffile has been renamed to confdir, and it now
expects the path to a directory, where the configuration files are
stored.

Change xbps-bin(8) and xbps-repo(8) along with its manpages to mention
that -C expects a directory.
2011-10-17 15:11:54 +02:00
Juan RP
5642ffa86e New configuration scheme changes, round 1.
- Configuration file 'xbps-conf.plist' has been splitted off into
  two files: conf.plist and repositories.plist. By default they
  are stored in etc/xbps.
- Changed some members in xbps_handle struct, mostly to make it easy
  to change its value in {cache,root}dir and conffile.
- Made xbps_init() release proplib objects as soon as we don't need
  them, that way it uses 35% less of memory or in some cases even more.

There will be another commit that will implement to read new virtualpkg
settings by the user, as specified in:

	http://code.google.com/p/xbps/issues/detail?id=12
2011-10-17 12:37:15 +02:00
Juan RP
d70036dd81 xbps-repo8(8): make the show targets be aware of vpkg settings in conf. 2011-10-16 16:54:08 +02:00
Juan RP
4aa06921ff xbps-*: do not pass a NULL pointer to xbps_end(). 2011-07-29 11:27:43 +02:00
Juan RP
2857214afa libxbps: improve returned errnos for repository API functions.
- xbps_repository_update_packages: return ENOENT if regpkgdb is NULL
  (no packages currently registered).
- xbps_repository_update_packages: return EEXIST if no updates are
  available.
- xbps_repository_pool: return ENOTSUP if no repositories were
  registered.
- make xbps-{bin,repo} handle ENOTSUP errors.
2011-07-29 11:17:34 +02:00
Juan RP
6f783389dd Share transaction callbacks for xbps-{bin,repo}, reposync cb support. 2011-07-28 09:25:30 +02:00
Juan RP
43b841dce1 Use xfcd->cookie to pass user-supplied data to the fetch cb. 2011-07-27 18:04:38 +02:00
Juan RP
508f119bc9 Moved install transaction code to libxbps, see NEWS file. 2011-07-27 17:13:54 +02:00
Juan RP
d1454c21d2 Improvements to xbps-bin(8) and xbps-repo(8) manpages. 2011-07-23 08:33:12 +02:00
Juan RP
33d6d2e166 libxbps: API/ABI break changes to fix issues with virtual packages.
Please see the NEWS file for info about this commit.
2011-07-15 18:22:58 +02:00
Juan RP
5917fc7404 xbps-repo: printf uint64_t with PRIu64. 2011-07-11 12:12:55 +02:00
Juan RP
f7918ec5aa xbps-repo: ignore pkgs providing virtualpkgs in genindex target. 2011-07-11 10:12:42 +02:00
Juan RP
b62f1f0396 xbps-repo: remove unused pkgname var for previous commit. 2011-07-09 13:33:48 +02:00
Juan RP
cdf4640246 xbps-repo(8): 'genindex' now removes entries for unexistent pkgs.
Packages that were previously registered in repository's pkg-index.plist
and are now unaccessible are removed.

This fixes issue #1 in github.com/vanilla/xbps.
2011-07-09 13:18:11 +02:00
Juan RP
81d5bdd79a xbps-repo: fix the 'genindex' target with missing directories.
This fixes issue #3 in github.com/vanilla/xbps.
2011-07-09 11:21:17 +02:00
Juan RP
0a2abb3f3d xbps-repo(8): 'search' target is now case insensitive.
Along with this change, compat code has been added (from NetBSD)
for systems that don't have it. The compat code has been reorganized
to be in a common place and its prototypes in compat.h.

The configure scripts checks if strcasestr() is available, and
uses compat code if not found.

This fixes issue #2 on github.com/vanilla/xbps.
2011-07-09 10:50:44 +02:00
Juan RP
8b43800e94 xbps-repo: improve error msg if 'sync' target fails. 2011-06-30 10:58:10 +02:00
Juan RP
2719f63642 xbps-repo: improve error string when xbps_fetch_file() errors out. 2011-06-20 23:16:58 +02:00
Juan RP
ed82315813 xbps-{bin,repo}(8): don't mention xbps-src, this info is outdated. 2011-06-20 12:56:43 +02:00
Juan RP
bb4cefcd2c xbps-{bin,repo}: init conffile to NULL. 2011-06-04 13:53:55 +02:00
Juan RP
9673c4bd09 XBPS major changes in June 2011.
- A configuration file "xbps-conf.plist" replaces the (un)register target
  in xbps-repo(8) and (un)set-prop in xbps-bin(8). For now, you can set
  the repositories and prefered virtual packages.

- New package pattern matching code from NetBSD. Supports more ways of
  matching patterns in packages.

- Multiple bugs fixed in virtual packages related matching code.

--HG--
rename : LICENSE => COPYING
2011-06-04 13:37:53 +02:00
Juan RP
841c9e2d51 API/ABI break for June 2011.
Rename some functions to reflect its description a bit better.

--HG--
rename : lib/repository_plist.c => lib/plist_fetch.c
2011-06-01 09:37:32 +02:00
Juan RP
cfa637db48 Repository package index format 1.2.
The pkg index now stores all package objects from props.plist, so that
xbps-repo(8) doesn't have to access the target binpkg anymore.
2011-05-27 17:32:42 +02:00
Juan RP
73200498a5 xbps-repo: do not add build_date, homepage and license objs into the index. 2011-05-27 07:10:33 +02:00
Juan RP
408c10c57d xbps-repo: add missing \n. 2011-05-25 15:31:16 +02:00
Juan RP
a13c7d695e xbps-repo: more meaningful messages for the show{,-deps,-files} targets. 2011-05-25 15:29:26 +02:00
Juan RP
870ad18d58 xbps_init() now sets rootdir, cachedir and flags.
That means that the following functions were removed:
	- xbps_set_{cachedir,flags,rootdir}.
	- xbps_get_{cachedir,flags,rootdir}.

With this change fixed an obvious typo that made -c argument to not work,
and now the cache directory is an absolute path not relative to rootdir.
2011-02-21 17:42:47 +01:00
Juan RP
22ae7aa2e8 Introduce struct xbps_handle and use it for xbps_init().
This structure sets up function callbacks for fetching files and
unpacking binary packages, as well as setting the debug boolean.

This way the affected functions (xbps_fetch_file() and
xbps_unpack_binary_pkg()) do not need to accept the fn cb pointers
and data as arguments.

Bump XBPS_RELVER.
2011-02-21 13:38:44 +01:00
Juan RP
b90c815e80 Minor nits to the xbps-{bin,repo}.8 manpages. 2011-02-05 17:32:14 +01:00
Juan RP
40cf7bad32 xbps-repo: call xbps_end() in usage() before exit(3). 2011-02-04 16:24:22 +01:00
Juan RP
fca3d6b9bf Use xbps_{error,warn}_printf() everywhere. 2011-01-30 18:23:33 +01:00
Juan RP
7c8a89c968 xbps-repo(8): fix wrong sentence. 2011-01-29 17:48:13 +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
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
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
bc259ae720 xbps-{bin,repo}: use static const tables to parse objs in XBPS_PKGPROPS files. 2011-01-26 16:34:26 +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
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
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
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
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
8e0a94d5cc xbps-repo: use xbps_repository_pool_find_pkg(). 2011-01-18 14:57:25 +01:00
Juan RP
6051eb29ab Added another bunch of compiler warnings and fix code. 2011-01-15 11:59:44 +01:00
Juan RP
057deb180c xbps-repo: report the errno string when a repository cannot be added and fix a NULL pointer deref. 2010-12-25 02:35:11 +01:00
Juan RP
5b101eae2b xbps-repo: fix a memleak in the 'add' target. 2010-12-24 05:43:00 +01:00
Juan RP
57453d1926 xbps-{bin,repo}: use strlcpy(). 2010-12-24 05:31:37 +01:00
Juan RP
45b4fada3d xbps-repo: fix a memleak in the 'show' target. 2010-12-24 05:29:39 +01:00
Juan RP
f2c33b0b08 xbps-repo: fix a memleak in the 'find-files' target. 2010-12-24 05:21:49 +01:00
Juan RP
b017f6d024 xbps-repo: fix the 'genindex' target due to 0.7.0 API changes. 2010-12-16 11:37:31 +01:00
Juan RP
ece608a080 xbps-repo(8): implemented 'find-files' target. 2010-12-15 15:14:44 +01:00
Juan RP
60c37406c1 xbps-repo: zero out allocated mem to avoid garbage in the 'search' target. 2010-12-04 10:31:17 +01:00
Juan RP
237991fd79 xbps-bin: added -F flag for the remove target.
Unless it's set, packages that are dependencies of other installed packages
won't be removed. This flag overrides this behaviour and forces the package removal.

While being here, misc cleanups.
2010-12-03 17:36:07 +01:00
Juan RP
98a2034fcf Also show the conflicts object if available and simplify the code. 2010-12-03 06:37:01 +01:00
Juan RP
940e077fb4 Improvements for xbps-{bin,repo}.
- Indent properly with the longest "pkgver" object while listing or searching
  for packages.
- Also match strings in the short description object while searching for
  packages in xbps_repo.
2010-11-24 16:37:30 +01:00
Juan RP
fdec663855 API clean up (part 2), plus misc changes and improvements.
- Rename regpkgs_dictionary to regpkgdb_dictionary to better describe what is is.
- Change some funcs in plist.c to return a boolean rather than int.
- Hide more internal funcs off the API.
- Simplify xbps_repository_update_pkg() and remove its second arg.
- Hide implementation details in xbps_repository_pool, now to iterate over the
  pool you have to use xbps_repository_pool_foreach and its struct
  repository_pool_index.
- Introduce xbps_{init,end}, to initialize/destroy some stuff in the library.
- Introduce xbps_dbg_printf to printf stuff for debugging purposes.
- xbps-{bin,repo}:  added -d arg to enable debugging output.
- Before checking if a config file needs to be installed or such, check that
  package contains the "conf_files" array.
- Remove obsolete dirs as well while updating packages.
- If transaction dictionary is ready remove the "missing_deps" array.

Bump XBPS_RELVER to 20101118.

--HG--
rename : lib/regpkgs_dictionary.c => lib/regpkgdb_dictionary.c
2010-11-19 13:40:13 +01:00
Juan RP
ffc255b715 Starting to clean up the public API, move private stuff into xbps_api_impl.h. 2010-11-13 03:18:58 +01:00
Juan RP
ec7cdde1e0 Misc cleanups and performance improvements.
- There's no need to check rval for prop_dictionary_get_*, we are sure the
  objects are there at prop_dictionary_set_* time.
- Avoid two chdir(2) calls per INSTALL/REMOVE run.
- Avoid using access(2) to check for existence of INSTALL/REMOVE scripts,
  just try to run the executable directly and check for ENOENT.
2010-11-06 06:44:00 +01:00
Juan RP
8e764dca60 xbps-repo: put back sanitize_url() and improve the implementation. 2010-05-20 14:45:12 +02:00
Juan RP
f888b582f9 Added a configure script to emulate GNU autoconf and related changes.
Changes included in this set:

 * Added strlcat() and strlcpy() from OpenBSD, always use them if the
   system does not have them built in.
 * Changed an array of PATH_MAX size allocated in the stack, to a dynamically
   allocated buffer from heap. This should reduce memory usage a bit.
 * Simplify code that implemented a homegrown realpath(3) implementation,
   simply use realpath(3).
 * If compiler supports -fstack-protector, build all code with
   -D_FORTIFY_SOURCE=2 and --param ssp-buffer-size=1 so that all
   buffers are protected.
2010-05-19 22:38:27 +02:00
Juan RP
8b222fd093 xbps-repo/index.c: fix a typo. 2010-05-18 23:06:27 +02:00
Juan RP
754ec6ebb1 xbps-repo: fix genindex target to not return error when a package is already
registered in the index.
2010-05-18 02:42:21 +02:00