Commit Graph

703 Commits

Author SHA1 Message Date
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
420225d414 xbps-dgraph: new utility to generate dot(1) graphs for package metadata properties. 2010-11-08 23:27:15 +01:00
Juan RP
c3afb4f4fb New function: xbps_get_pkg_dict_from_metadata_plist.
This function returns and internalized dictionary from a package's metadata
plist file as specified by its arguments.

Update all code to use it where appropiate.
2010-11-08 03:14:41 +01:00
Juan RP
679833156a Always release the object dictionary returned by xbps_find_pkg_dict_installed().
Document this in the public API header and update all code accordingly.
2010-11-08 02:02:35 +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
8ef8d86c12 Some changes for the XBPS libfetch's frontend code.
1) Raise the cache connection settings to more sane defaults (8->6, 16->2).
2) Introduce xbps_fetch_unset_cache_connection() to drop the caches.
2010-11-03 12:23:57 +01:00
Juan RP
8d998948ef xbps-bin.8: fixed two formatting errors. 2010-10-31 01:59:48 +02:00
Juan RP
210f2799fc xbps-bin(8): modify the 'list' target to accept an optional argument to
list packages in the specified state, so that you can list packages that
 need to be purged, configured and broken (will be used in the future).
2010-10-27 13:10:03 +02:00
Juan RP
ef7da88db1 xbps-bin(8): added a new target "find-files".
This new target 'find-files' can be used to find which installed
package(s) own a file. Exact matches like "/bin/mount" or patterns
like "/usr/lib/libb[ao]b\*" can be specified.
2010-10-27 00:25:02 +02:00
Juan RP
8534b79ffc Prepare for going-to-be-released 0.6.1.
Includes the following change:

* When replacing a package that is going to be updated in the transaction
   do not remove it, just overwrite its files and continue. The updated
   package will find that old files didn't match the SHA256 hash and will
   skip them. This solves the issue of new package updates requiring new
   dependencies with files that were previously stored in the old version.
   For example gtk+-2.20 containing gdk-pixbuf, and gtk+-2.22 requiring
   gdk-pixbuf externally.
2010-10-23 18:09:35 +02: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
Juan RP
1fbc19959f xbps-bin: when replacing a pkg do not purge the old one, just remove it. 2010-05-12 07:47:40 +02:00
Juan RP
401d197c06 xbps-repo(8): improved the 'search' target to also match substrings
in package/version tuples.
2010-05-12 05:04:35 +02:00
Juan RP
b8c9577df6 xbps-bin(8): added a new target 'show-orphans' that list all package
orphans currently installed.
2010-05-04 17:04:36 +02:00
Juan RP
1b44e18b35 Remove asciidoc build dependency, use troff manpages directly. 2010-05-03 21:50:34 +02:00
Juan RP
59693bf505 Update manpages for new XBPS project locations. 2010-05-02 11:36:17 +02:00
Juan RP
2d68c5fb20 xbps-repo(8): fixed the 'search' target to also match patterns against
its description, and not only from the package/version touple.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428214659-lz1au5hjg80h4j37
2010-04-28 23:46:59 +02:00
Juan RP
7976ac3707 xbps-repo/index.c: fix warnings found by clang.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428211333-wi7id42b9ol7g2ae
2010-04-28 23:13:33 +02:00
Juan RP
b04a0230cd xbps-bin/check.c: remove dead code, fix warnings found by clang.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428211107-nvoflpkfkz37y3us
2010-04-28 23:11:07 +02:00
Juan RP
db685f280d xbps-bin/install.c: remove unused vars, found by clang.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428193336-61glbrl5rnjpby4p
2010-04-28 21:33:36 +02:00
Juan RP
8ec438e168 xbps-bin/main.c: remove unused var found by clang analyzer.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428163341-3b947nuva6l5pv85
2010-04-28 18:33:41 +02:00
Juan RP
11de88d122 xbps-bin/install.c: fix a NULL pointer dereference in error path, found by
the clang analyzer.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428163137-hs9ac0rm47sz9k14
2010-04-28 18:31:37 +02:00
Juan RP
e274585c3c xbps-bin(8): added -p flag to also purge packages for the 'remove'
and 'autoremove' targets, after successful removal.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100428012613-e2wpzknmrxkjntsd
2010-04-28 03:26:13 +02:00
Juan RP
a5d8d486ea xbps-repo: show a warning when a repository has been already added.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100427160215-pi2urhu9xzeblv71
2010-04-27 18:02:15 +02:00
Juan RP
ad12302a69 xbps-uhelper: remove unused debug code.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100420123503-std182rf5dt59ccq
2010-04-20 14:35:03 +02:00
Juan RP
6256b34ccc Some changes that will appear in 0.5.0:
* Add proplib-0.4.1 source and use it in XBPS. This is to avoid
   an external dependency, so that we depend on the features of the
   internal library. This also means that proplib is not required anymore.

 * Added support to read/write gzip compressed plists by default, thanks
   to proplib-0.4 that gained new functionality.

That means that from now, XBPS will be able to write compressed gzip
plist files for all metadata related work. This will vastly reduce
bandwidth required for fetching remote repo's pkg index file and
binary packages.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100420122238-zcb85rudt9p34e10
2010-04-20 14:22:38 +02:00
Juan RP
9bceb2adb7 xbps-bin: fixed the install target to work with pkgnames containing
multiple '-' characters, which resulted in incomplete pkgname.

The fix is to always append '>=0' if a pkgname is specified, and passing
a pkgpattern to xbps_repository_install_pkg().

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100226051333-od2siux4rmsa88m7
2010-02-26 06:13:33 +01:00
Juan RP
9f4b36292d xbps-bin: unset some bool vars while processing the transaction to avoid
wrong messages for preserve pkgs.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100217041941-wrvm86m0tc7ynlvu
2010-02-17 05:19:41 +01:00
Juan RP
83ab3fe977 xbps-bin/remove.c: set some pointers to NULL before checking them.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100128164423-i00yg3xp3nlsoh6j
2010-01-28 17:44:23 +01:00
Juan RP
61dde1ac02 Always overwrite files while unpacking, this makes the "essential" obj obsolete.
This helps to catch upgrade problems and simplifies some parts of the code.
Bumped XBPS_RELVER because xbps_remove_pkg() has been changed.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100128150850-gcs93su38t6moydn
2010-01-28 16:08:50 +01:00
Juan RP
375330a956 xbps-bin: print different msgs for pkgs marked as preserve and essential.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125151648-s3d0zxaro5v5bh95
2010-01-25 16:16:48 +01:00
Juan RP
dae134cd48 xbps-bin/remove.c: simplify error paths.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125151604-jwhoavlbdhr645df
2010-01-25 16:16:04 +01:00
Juan RP
bf6b96c651 xbps-bin/check.c: simplify exit paths.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125151533-z7ub7xlqbhg97ij2
2010-01-25 16:15:33 +01:00
Juan RP
1c4d43306a xbps-bin(8): if -f is set, remove files and configuration files even
if its hash doesn't match for the remove and purge targets respectively.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125070948-841kw2r4knz2793e
2010-01-25 08:09:48 +01:00
Juan RP
17d87b3559 Repair upgrades of preserve packages, i.e kernel.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125052754-6xri8lfmykhof5dz
2010-01-25 06:27:54 +01:00
Juan RP
7f343b8dbe xbps-bin: fixed some stdout vs stderr printf issues.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100125021454-n1bh7qjy27azr9du
2010-01-25 03:14:54 +01:00
Juan RP
232660167b xbps-uhelper: make 'fetch' target accept an arbitrary number of arguments.
Also set default libfetch's cache connection limits.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124162517-iorbhh21je4c65xo
2010-01-24 17:25:17 +01:00
Juan RP
088baa7699 Add defs for default fetch cache connection limits and use them in
xbps_fetch_cache_connection() if 0 is passed as argument.

xbps-bin: enable fetch cached connection when downloading binpkgs.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124153156-4updprik11nwi7c1
2010-01-24 16:31:56 +01:00
Juan RP
489f6baaa6 xbps-bin: remove an extra newline in transaction ops.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124130757-mf0p5d6kajwd6t2k
2010-01-24 14:07:57 +01:00
Juan RP
c0b280c118 Mega-commit to document the API with doxygen.
Some changes were made to the API when making the documentation:

- A few exported functions are now hidden, because they were only used
  internally in the library.
- A few exported symbols were renamed to document them better than
  previously.
- Cosmetic changes all along the way, as well as some fixes here and there.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100121021019-onbsivlrhdb7t3ou
2010-01-21 03:10:19 +01:00
Juan RP
a165d20193 Error and warning messages should go to stderr, make it so.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100115141916-tpg2rga1i4pm42kj
2010-01-15 15:19:16 +01:00
Juan RP
6c27794c5b xbps-bin: simplify pkgname_from_pkgmatch() and fix a bug.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100114123917-3tvrb3tp097nnq8r
2010-01-14 13:39:17 +01:00
Juan RP
7230203be4 xbps-bin: really fix previous, by using a hack for now.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100114052501-e8xak6rhwf8tonf6
2010-01-14 06:25:01 +01:00
Juan RP
37008d3c75 xbps-bin: don't make false positives detecting pkgmatches vs pkgnames
while installing packages.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100114030001-0m1cb3m1cf7oc7un
2010-01-14 04:00:01 +01:00
Juan RP
023841b060 Implemented blueprint 'install-pkg-by-pkgmatch' as specified in
https://blueprints.launchpad.net/xbps/+spec/install-pkg-by-pkgmatch

The implementation works as expected, it was easier that I thought.
Bump XBPS_RELVER because the API was changed slightly.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100114011431-xv5q6bgahm6v9dbq
2010-01-14 02:14:31 +01:00
Juan RP
6c29fe7514 xbps-repo: search target: also report exact matches by pkgname.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100114000654-tnrtvi1ymy2iveyx
2010-01-14 01:06:54 +01:00
Juan RP
27dd304d76 Install the xbps_api.h header.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100113183225-gz8xn8fa5hp2vdan
2010-01-13 19:32:25 +01:00
Juan RP
536fb8a86e xbps-repo/util.c: bump copyright year.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100113160523-8f0blxmmep2hn44e
2010-01-13 17:05:23 +01:00
Juan RP
b225a8d243 xbps-repo/util.c: simplify show_pkg_files().
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100113155750-bwxwc47h2ncqf8pt
2010-01-13 16:57:50 +01:00
Juan RP
343600261c xbps-bin(8):
- Add -y flag to assume "yes" for all questions.
 - Print a proper error string when the transaction dictionary is empty.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091222134338-u9h0iybexedunm0h
2009-12-22 14:43:38 +01:00
Juan RP
7eea0f8e8e xbps-bin(8): implemented Launchpad blueprint "arbitrary-pkgname-args".
See https://blueprints.launchpad.net/xbps/+spec/arbitrary-pkgname-args.

The install, update and remove targets now accept a list of package
names that will be processed.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091222113736-0dawl4whvtdi5dj3
2009-12-22 12:37:36 +01:00
Juan RP
02c0c569a3 xbps-{bin,repo}.8.txt: s/SYNOPSYS/SYNOPSIS/
--HG--
extra : convert_revision : juan%40juan-desktop-20091218121933-hgss4vyhyaoj3pbn
2009-12-18 13:19:33 +01:00
Juan RP
eb885bbcc2 When executing the INSTALL/REMOVE scripts, always pass the UPDATE
value to them.

Bump XBPS_RELVER to 20091209.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091209151435-1yy9f7k2880tswz7
2009-12-09 16:14:35 +01:00
Juan RP
2d68cec780 xbps-bin: make the 'autoremove' target respect -f flag to bypass question.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091207055227-8kiks1f3k2tuoe2z
2009-12-07 06:52:27 +01:00
Juan RP
b0b00cf1ff xbps-repo: when adding local repos always create XBPS_META_PATH.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091206082938-4adrlgkbsz6lsz5y
2009-12-06 09:29:38 +01:00
Juan RP
2faef604bd xbps-bin.8.txt: fix typo.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091205000558-cktvvd1ka6445g62
2009-12-05 01:05:58 +01:00
Juan RP
20ec9c3b6d Fixed typos in xbps-{bin,repo} manpages.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091202061945-kpgqqrc9pgriosb3
2009-12-02 07:19:45 +01:00
Juan RP
b03a18ff84 xbps_unpack_binary_pkg: removed 2nd bool argument, look for a preserve object
to not remove files in removal or upgrades.

Bump XBPS_RELVER to 20091202.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091202053103-uby6hwu313pieafa
2009-12-02 06:31:03 +01:00
Juan RP
94bb169c88 Rename lib/repository_plist.c exported functions.
xbps_get_path_from_pkg_dict_repo -> xbps_repository_get_path_from_pkg_dict
xbps_get_pkg_plist_dict_from_repo -> xbps_repository_get_pkg_plist_dict
xbps_get_pkg_plist_dict_from_url -> xbps_repository_get_pkg_plist_dict_from_url

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091130113538-bji65cydf3bkwxkw
2009-11-30 12:35:38 +01:00
Juan RP
d90a248244 Rename struct repository_data to repository_pool.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091130112404-mlrt6x08thdvmrsn
2009-11-30 12:24:04 +01:00
Juan RP
91aeac4dad Rename some function from lib/repository* with more meaningful names.
xbps_unregister_repository() -> xbps_repository_register()
xbps_register_repository() -> xbps_repository_unregister()
xbps_find_deps_in_pkg() -> xbps_repository_find_pkg_deps()
xbps_prepare_pkg() -> xbps_repository_install_pkg()
xbps_find_new_pkg() -> xbps_repository_update_pkg()
xbps_find_new_packages() -> xbps_repository_update_allpkgs()
xbps_get_pkg_props() -> xbps_repository_get_transaction_dict()

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091130110846-5uaqxdhfo0kl0cqd
2009-11-30 12:08:46 +01:00
Juan RP
e4cda0e9cc Rename lib/sync_remote_pkgidx.c to repository_sync_index.c.
xbps_sync_repository_pkg_index() renamed to xbps_repository_sync_pkg_index().

--HG--
rename : lib/sync_remote_pkgidx.c => lib/repository_sync_index.c
extra : convert_revision : xtraeme%40gmail.com-20091130105325-75rr2xm1zpi8bjwh
2009-11-30 11:53:25 +01:00
Juan RP
bfa9858277 xbps-bin, xbps-repo: show the "essential" and "replaces" objs values
in the 'show' target.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091130102023-3ureuzorr96fj7by
2009-11-30 11:20:23 +01:00
Juan RP
4e38be11f4 xbps-bin: fix assertion with pkgs containing the "replaces" obj.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091129045149-l8zvcbo1w1jzglai
2009-11-29 05:51:49 +01:00
Juan RP
1a5d19dca2 Fix and improve how missing pkg dependencies are handled from repos.
- Use an array of strings to store the pkgdeps.
- While adding a missing pkgdep, check if it's already in the queue and
  new required version is greater, in that case replace with new one.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091129021735-5dqfucofny8slks2
2009-11-29 03:17:35 +01:00
Juan RP
eb0567bfab xbps-bin(8): mention /var/db/xbps/metadata/pkgname/*.plist.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091128081809-2wk7hvlwtr6m9y8b
2009-11-28 09:18:09 +01:00
Juan RP
a85073f6e8 xbps-repo: also print binpkg compression type in the show target.
Now it looks like:

$ xbps-repo show xbps-devel
Fetching info from: /storage/xbps/packages
Filename: xbps-devel-20091128.i686.xbps (size: 69K)
SHA256: 2c54a61fbd128097692edc19a7c17bfb10d93b3f055b04171cd1e4d97cde79df
Compression type: xz
Package: xbps-devel
Installed size: 216K
Maintainer: Juan RP [xtraeme@gmail.com]
Architecture: i686
Version: 20091128
Description: The XBPS package system (development branch)
 The XBPS package system. A new, fast, from scratch and simple
 binary package manager. This packages includes code from a development
 branch available from https://launchpad.net/xbps
$

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091128051134-qzqqnwd76tcxgxb0
2009-11-28 06:11:34 +01:00
Juan RP
8b3b5c9d1a xbps-bin, xbps-repo: use xbps_pkgdep_match() for the search target.
This provides csh style shell pattern.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091128045200-4rymuqm90rzmgiaw
2009-11-28 05:52:00 +01:00
Juan RP
6208cc8e30 xbps-bin: update manpage.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091128025636-xb1xywk7cv43ozng
2009-11-28 03:56:36 +01:00
Juan RP
3855ee582a xbps-repo: add -c flag to set cachedir, update manpage.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091128025616-fe43609n1rosmt6u
2009-11-28 03:56:16 +01:00
Juan RP
f3d2481c31 xbps-repo: if fetching info from remote repo for the 'show' and 'show-files'
targets and the binary package exists in cachedir, use it.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091128022129-y6y2tr0vtvy2w745
2009-11-28 03:21:29 +01:00
Juan RP
494504dbec Added support for a cachedir to store downloaded binpkgs.
libxbps:
 * Added xbps_set_cachedir() and xbps_get_cachedir(). By default it's
   set to /var/cache/xbps if not specified and it's always relative
   to the root directory.
 * Move mkpath() code from sync_remote_pkgidc.c into its own file mkpath.c
   to use it in another parts of the code.
 * Added xbps_get_binpkg_local_path(), that returns the local path to
   a binary package file, stored in cachedir or local repo.
 * Remote pkg index files are now stored directly in metadir/repodir,
   skipping the arch directory because binpkgs are now in cachedir.

xbps-bin:
 * Added -c flag to set the cachedir.
 * Check sha256 hashes in the download stage so that it can check
   a downloaded binpkg immediately once is stored.
 * If a binpkg doesn't match the hash it will be refetched.

Bump XBPS_RELVER to 20091128.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091128013841-kkcvk07lsqdr26w8
2009-11-28 02:38:41 +01:00
Juan RP
391f02ce10 Added some missing changes for previous.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091126023256-oyfwnekdeu2h9zi8
2009-11-26 03:32:56 +01:00
Juan RP
5223b6d652 xbps-bin(8), xbps-repo(8): improve descr for some targets.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091126022901-34bq1qnrdzeakmnc
2009-11-26 03:29:01 +01:00
Juan RP
87a216fd11 Major changes in libxbps to implement caching in some cases.
libxbps:
 - Moved repolist code to lib/repository_pool.c.
 - Renamed xbps_{prepare,release}_repolist_data() to
   xbps_repository_pool_{init,release} respectively.
 - Moved regpkgdb dict code to lib/regpkgs_dictionary.c.
 - Renamed xbps_{prepare,release}_regpkgdb_dict() to
   xbps_regpkgs_dictionary_{init,release} respectively.
 - Use a global reference count for repository_pool and regpkgs_dictionary,
   this gives a substantial performance gain while looking for dependencies
   in repository pool, among other things.
 - Make xbps_find_pkg_* functions return errno and use it to detect
   for spurious errors in code using them.
 - Add code to detect when a dependency is already unpacked.

xbps-bin:
 - Do not set pkg state to unpacked in the transaction, it's set already
   while a package is unpacked.
 - While installing or updating packages, it now knows when a dependency
   is already unpacked and shows it as "unconfigured".

Bump XBPS_RELVER to 20091126.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091126022250-uu8x0fa86l4scb5x
2009-11-26 02:22:50 +00:00
Juan RP
fa7e3a3a7e xbps-repo: genindex: also remove the "conf_files" object.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091125074221-iccaravanpovtjgd
2009-11-25 07:42:21 +00:00
Juan RP
4c1ae5d3d6 xbps-repo: improve genindex target, reorganize main.c file.
- genindex: use new recently added function, remove some objects from
  generated pkg dictionaries, they will be fetched remotely.
- moved some code from main.c into repository.c.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091125043204-nbtdtaxkga3dad2h
2009-11-25 04:32:04 +00:00
Juan RP
3117c8b4ee xbps-repo(8): added 'show-files' target.
It will search for 'pkgname' and will print its list of files, by
searching it in repository pool. The first repo wins.

Bump XBPS_RELVER to 20091125.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091125021556-n8p6atfbkuvb4doi
2009-11-25 02:15:56 +00:00
Juan RP
2693e54ef6 xbps-repo: genindex: optimization change.
While looking at the archive for the XBPS_PKGPROPS file, it's unlikely
that it will have it after reading 6 entries, so discard it completely
and show an error message.

The XBPS_PKGPROPS it's always there at index <= 4.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091125001733-i46wnqdxp497km6s
2009-11-25 00:17:33 +00:00
Juan RP
4e7bb3b451 xbps-repo: genindex: print error msg if required dirs to store
binpkgs are not there.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124234531-a80dunrglt6st72i
2009-11-24 23:45:31 +00:00
Juan RP
7ca13ee7df xbps-uhelper: new bin that combines xbps-cmpver, xbps-digest,
xbps-fetch and xbps-pkgdb in one utility.

Bump XBPS_RELVER to 20091124-1.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124115947-hb9cp7vp3tyhq64o
2009-11-24 11:59:47 +00:00
Juan RP
ea882fca0b xbps-repo: make xbps_repo_addpkg_index() static.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124111123-1e8hxb9ry42oq9wr
2009-11-24 11:11:23 +00:00
Juan RP
3a65c45de3 Refactored shared code between xbps-bin(8) and xbps-repo(8).
- xbps-repo: move protos to defs.h and remove index.h and util.h.
- xbps-bin: move code that belongs to it from xbps-repo to show-info-files.c.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124110539-nsdjp0ajr7nn8pa3
2009-11-24 11:05:39 +00:00
Juan RP
164c661bcf xbps-repo: added 'show-deps' target to mimic xbps-bin(8).
As consequence of this, remove xbps_callback_array_iter_in_repolist().
Nowadays to iter over the repository pool we have a SIMPLEQ, this
allowed to simplify the code and remove some now unneeed stuff.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124104704-oyvrmb3tmd59w4e7
2009-11-24 10:47:04 +00:00
Juan RP
c676622869 Some changes to know if a file was downloaded successfully or not.
Improved xbps-repo sync/add and xbps-fetch to print informative
messages when a transfer was not necessary because local/remote size
and/or mtime matched.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124050326-owez7140fdxwepuk
2009-11-24 05:03:26 +00:00
Juan RP
4502155554 xbps-repo: explain in the manpage that outdated package files will
be removed automatically for the 'genindex' target.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124031605-q9yaklspw504ordq
2009-11-24 03:16:05 +00:00
Juan RP
d7987e8e32 xbps-repo genindex: fix use after free, remove outdated binpkg files
by default.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124030606-3y34svrtnad21kgk
2009-11-24 03:06:06 +00:00
Juan RP
fe468b2e90 xbps-bin: fix one more for previous commit.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091124003052-u6rkvnblvb83hrkv
2009-11-24 00:30:52 +00:00
Juan RP
01cbe9a63b xbps-bin: fix download local dir when fetching binpkgs from remote repos.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091123235632-vbpn1br170fv73l3
2009-11-23 23:56:32 +00:00
Juan RP
bf82b6512d Extensively verified that all functions have its return value
checked for any spurious error, this should make the core more safer :-)

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091123094651-5prw0bkqmt3y8h23
2009-11-23 09:46:51 +00:00
Juan RP
13706cf0a5 xbps-repo: changed the 'sync' target to update from all registered
remote repositories, so remove its argument.

xbps_sync_repository_pkg_index:
 - create the local repo dir in XBPS_META_PATH.
 - also add the uri scheme (http://, https://, ftp://) in the created
   local directory and subst ':' also with an underscore.
 - do not create local repo directories unless the download pkg-index
   plist file is verified to be fetched correctly.

xbps_check_is_repo_string_remote:
  New function to check if a repo string is a remote repository, use
  it in all places where it was used before.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091123042316-rmu4w3ehoxwh3iz8
2009-11-23 04:23:16 +00:00
Juan RP
12cec6e707 xbps-pkgdb: don't forget to add the pkgver object in register target.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091123002857-ntwcf91swcol7m9d
2009-11-23 00:28:57 +00:00
Juan RP
4f80bddbb2 xbps-repo: print error if pkg-index file cannot be fetched.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091122060446-sc4na9qa2k2bk5f6
2009-11-22 07:04:46 +01:00
Juan RP
3d24672e58 Improve dependency matching via repos and use the "pkgver" object
in pkg dictionary to improve performance in some cases.

Bumped XBPS_RELVER to 20091121.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091122041547-oywx4db75j8uttl3
2009-11-22 05:15:47 +01:00
Juan RP
db9ae90dd4 Improve make output similar to what recent GNU configure scripts do.
Also always build the static bins so that it's done in one pass,
that means that objects are PIC and built with SSP.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091119050337-hkdksjqxy9n7vy7m
2009-11-19 06:03:37 +01:00
Juan RP
9e062cec4f xbps-repo: do the right thing in some error paths.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091118231106-xxbg5oyvnojv1ykd
2009-11-19 00:11:06 +01:00
Juan RP
bc14a026a5 Improve download code, as well as fixing refetching when syncing to a
remote package index. Bump XBPS_RELVER to 20091118.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091118062814-3pqbs9n1797einhm
2009-11-18 07:28:14 +01:00
Juan RP
d5f9366bfc xbps-repo: fix previous, writing a dangling string and a leak in exit path.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091118061745-xirdogil114siw2c
2009-11-18 07:17:45 +01:00
Juan RP
f859663a4b xbps-repo: made 'genindex' code run ~60% faster than before!
Rather than externalizing the package index plist file to storage every
time a package is registered, only do it one time once all packages
have been processed. Creating an index with 700 pkgs now takes 14s
in a VM, where before it took 39s. As consequence of this, the 'add-pkgidx'
target is no longer relevant or useful, remove it.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091118053439-ct1chn4hdeir1pdo
2009-11-18 06:34:39 +01:00
Juan RP
cc6417b9bf Fix a typo in xbps-bin/repo manpages.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091117164309-vwq47eaniu6udn9p
2009-11-17 17:43:09 +01:00
Juan RP
2b790a4c2f xbps-bin: rename 'show-manual' target to 'list-manual', it's a better
name IMHO :-)

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091109015919-fl3jr6eehyy1ff1v
2009-11-09 02:59:19 +01:00
Juan RP
adbd3d727c Added support for shell (and csh as well) patterns for required
dependencies, as specified in blueprint "improved-version-matching".

It's possible now to require greater, greater or equal than,
less, less or equal than, and equal pkg versions, as well as using
'{}' and '[^!]' csh patterns in dependencies.

Code lifted from FreeBSD, thanks! :-)

Change XBPS_RELVER to 20091107 to match latest additions.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091107035620-3051wcwrirqn2g14
2009-11-07 04:56:20 +01:00
Juan RP
dce1283e88 xbps-bin: improve 'check all' target output.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091101063206-s6kl51gqfugiapkl
2009-11-01 07:32:06 +01:00
Juan RP
4c4f5eebef xbps-repo: add a sync target, to sync the pkg index file from a
remote repository.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091031105740-xdqqsjqymc9rty5j
2009-10-31 11:57:40 +01:00
Juan RP
3905c2106c Properly build shared/static libxbps and utils.
xbps-fetch: added -v flag to see verbose messages in libfetch.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091030111726-axf9paz2k01ntqzz
2009-10-30 12:17:26 +01:00
Juan RP
79f9f34775 libxbps: added xbps_fetch_error_string(), that returns libfetch
fetchLastErrString.

Hook xbps-fetch to the tree and use the new function to print errors.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091030021303-6wu9sri5o8kgvfwl
2009-10-30 03:13:03 +01:00
Juan RP
e479879e9f xbps-bin: use exit(2) rather than _exit(2).
This was causing premature exiting when piping the program!

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091030004257-l94g3e88qroulfym
2009-10-30 01:42:57 +01:00
Juan RP
db58e48822 Added xbps-bin(8) and xbps-repo(8) manpages in asciidoc format.
That means that asciidoc is required to build/install XBPS.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091028153222-ljgdfqqe1ea74xs7
2009-10-28 16:32:22 +01:00
Juan RP
3a2f421109 xbps-bin: added "show-manual" target.
This targets shows the list of packages that were installed manually,
i.e not as dependencies.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091028023913-i4qh7ky1puezyhrt
2009-10-28 03:39:13 +01:00
Juan RP
4b99264063 xbps-repo: sanitize uri provided to the add target also for remote
repositories.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091027142504-ezcqy2z7fuxz9j1z
2009-10-27 15:25:04 +01:00
Juan RP
dc258f4e20 Use xbps_get_root() directly where appropiate.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091027111547-tb38qz51ejakn3jc
2009-10-27 12:15:47 +01:00
Juan RP
7aebea684b Implemented support for working with remote repositories.
libfetch from NetBSD's pkgsrc has been imported into lib/fetch, but
the objects are embedded into libxbps. Only a public function to fetch
files has been implemented: xbps_fetch_file().

The library now is built with -fvisibility=hidden by default, and
exported symbols are the ones that use the SYMEXPORT macro.

The code works well enough, but will need many more cleanups.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091027004600-0lq9aao67lisbzxv
2009-10-27 01:46:00 +01:00
Juan RP
b689725270 xbps-bin: use a single point to cleanup resources.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091023120154-wj4937kmu6ryacpk
2009-10-23 14:01:54 +02:00
Juan RP
ca39d1667e xbps-bin: use a signal handler for SIGINT, SIGTERM and SIGQUIT to
free resources used by libxbps.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091023092025-gav4w23f1oc7mgjy
2009-10-23 11:20:25 +02:00
Juan RP
1e792e62f8 xbps-bin: use HN_B and HN_DECIMAL when using humanize_number for a more
detailed output.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091023064559-b91xhoveq6qcpfpp
2009-10-23 08:45:59 +02:00
Juan RP
b2197be315 Do not use private sha256.h header file in the public exported
API header file (xbps_api.h).

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091022124921-nvy2x07ibxjqtt50
2009-10-22 14:49:21 +02:00
Juan RP
96c501b5cc xbps-bin: while updating a package that needs a new dependent package
the automatic-install object wasn't set correctly, fix this.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091022123221-46rya21xjy1mp8nb
2009-10-22 14:32:21 +02:00
Juan RP
bc3eeeec58 xbps-pkgdb: always set rootdir as an empty string, otherwise if -r
is not specified it will fail to get the regpkgdb plist file.

Bug found by pancake.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091019214947-cv57nebkpo48spce
2009-10-19 23:49:47 +02:00
Juan RP
c72f3a1a3c Remove xbps-src and its associated code. This is required for the
upcoming 0.3 version.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091018091539-4f7ynscyvsqt3st4
2009-10-18 11:15:39 +02:00
Juan RP
fdc561dfb2 xbps-{bin,repo,pkgdb}: added -V flag that prints the current XBPS
release version as defined in xbps_api.h.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091018084204-1xzyptqkjm5dwfjc
2009-10-18 10:42:04 +02:00
Juan RP
ba1c8971a5 Fix "autoupdate" target when no new packages are available.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091017041820-tj61sfbw5nz50ioh
2009-10-17 06:18:20 +02:00
Juan RP
3ddf276437 Fixed bug #453422: "xbps shouldn't depend on LZMA utils"
Do not link to libzmadec, rather to liblzma provided by xz.
Pointed by ojab in the bug, thanks!

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091017030101-1cw1b11l923hy8cw
2009-10-17 05:01:01 +02:00
Juan RP
058b882037 Fix previous, so that only tries to replace packages if they
are installed! heh

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091017025959-4k8ciftjglkbao91
2009-10-17 04:59:59 +02:00
Juan RP
cacb34147a Added support to replace packages with another one. Package metadata
uses an array of strings that lists the packages that should be
removed before new package can be installed.

In the build templates one can use: replaces="foo foo-blah foo-libs".

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091017022643-rdyrp9kvmx3m0p0h
2009-10-17 04:26:43 +02:00
Juan RP
4ef0fbcada Multiple changes to xbps-src and shutils:
* Added XBPS_FETCH_CMD to xbps-src.conf, this will be used to fetch
  distfiles. Please note that it will be copied to the chroot, so
  it should be statically linked or with only libc required.

* Removed libtool_func.sh and associated vars, it's unneeded currently.

* Added keep_empty_dirs, keep_libtool_archives and nostrip. By default
  all empty dirs and libtool archives are removed, and executables and
  libraries stripped, respectively. One can use set the var in a build
  template to change the behaviour.

* Explain in README what are the requirements to build XBPS.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091017005836-uifiof32ndy0wmd8
2009-10-17 02:58:36 +02:00
Juan RP
f7689695d1 xbps-bin/install.c: use only a function for install/update/autoupdate.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091016153732-gbcr30fahvveu2u9
2009-10-16 17:37:32 +02:00
Juan RP
cb1f10d415 xbps-bin: don't initialize repolist data unless we want to update.
xbps_find_new_pkg: always initialize repolist data.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091016150435-wpjfd453hpwr5k89
2009-10-16 17:04:35 +02:00
Juan RP
651a4e6254 xbps-bin/xbps_install_pkg(): only sort pkg deps in update mode.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091016135513-w4yc413l3i1pwdkm
2009-10-16 15:55:13 +02:00
Juan RP
e1f2a8b7bd xbps-bin: multiple fixes to update packages.
* Fix 'autoupdate' target to look for new packages in ALL repos, not
  just the first one that has the package.
* Fix 'update' target to work correctly.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091016133157-asvkv5jb6i9q2ibe
2009-10-16 15:31:57 +02:00
Juan RP
865b06be5d Build xbps-{bin,cmpver,digest,pkgdb,repo} as static, and install them
as foo.static.

Updated README to note the new requirements for it. It will be used
to reduce the number of dependencies when building packages in
the chroot.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091015222234-360i67zychjge3nh
2009-10-16 00:22:34 +02:00
Juan RP
cf04a48a1d Remove support for "keep_dirs", it won't be used.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091015142937-sbf72osvlulzq7d6
2009-10-15 16:29:37 +02:00
Juan RP
1febd85f42 xbps-pkgdb, shutils: use red/bold, red/yellow and bold for
msg_error, msg_warn and msg_normal respectively.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091015141731-9ci2bnvslqe5gq7j
2009-10-15 16:17:31 +02:00
Juan RP
c6d3868b8b shutils: remove tmpl_func.sh, moved to the xbps-templates repo.
xbps-src: added XBPS_COMMONVARSDIR that sources all .sh files in
	  setup_tmpl(), this replaces tmpl_funcs.sh.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091012203056-rtay2drhrwak4ldk
2009-10-12 22:30:56 +02:00
Juan RP
06d451e557 Remove 'automatic' flag while installing via xbps-src, it's not very
useful and won't be implemented.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091010155336-uyjgohik8y1y21bz
2009-10-10 17:53:36 +02:00
Juan RP
3d8fb79e94 xbps-bin: add support to check integrity of all installed packages,
through "xbps-bin check all".

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091005224237-plr75i3wveirhu4p
2009-10-06 00:42:37 +02:00
Juan RP
06f70e182c xbps-bin: rename the 'files' target to 'show-files' for consistency.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091005220659-l3rdop78ju04mi9v
2009-10-06 00:06:59 +02:00
Juan RP
042084b306 xbps-bin: do not mark package as broken if the any task in the check
target failed, just print the info.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091005220111-m2xkbbeupq2v7ccn
2009-10-06 00:01:11 +02:00
Juan RP
f02dd4ccb4 xbps-bin/install.c: improve some printfs.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091005190430-z70qmlhx4ca93jk6
2009-10-05 21:04:30 +02:00
Juan RP
ca2dd0f873 While upgrading a package, print informative line about old package
being removed.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091002152314-hig1qoobs42rvx9z
2009-10-02 17:23:14 +02:00
Juan RP
e668ba5193 Fix #438201 "Upgrading essential pkgs results in duplicated reqby entries"
Always remove reqby entries while upgrading "essential" packages.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091001053542-amaw61ib23hy453n
2009-10-01 07:35:42 +02:00
Juan RP
10531d7d45 Fix xbps_configure_pkg() reporting old version when upgrading packages.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20090825040302-azurxpyalot07j81
2009-08-25 06:03:02 +02:00
Juan RP
59b1942617 Fix memleaks in xbps_show_pkg_deps() and xbps_show_pkg_reverse_deps().
--HG--
extra : convert_revision : xtraeme%40gmail.com-20090822052256-tnf5s1od4oluhygp
2009-08-22 07:22:56 +02:00
Juan RP
6d84cde6f1 xbps-bin: add two new targets 'show-deps' and 'show-revdeps" to print
dependencies and reverse dependencies of a package, respectively.

'xbps-bin show' no longer prints the deps anymore.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20090821231219-n26o21xcxor46nk1
2009-08-22 01:12:19 +02:00
Juan RP
ecfa25833f Improve marginally configuring/purging all packages by looking at its
state in the object dictionary rather than opening and externalizing
the dictionary of every package.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20090821093126-0xw980x0pqtq59q2
2009-08-21 11:31:26 +02:00
Juan RP
9680251382 Add shell utils required by xbps-src.
These files are moved from the GIT repository.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20090818153742-98s9y92f5m19l3c2
2009-08-18 17:37:42 +02:00
Juan RP
deedf07d4e xbps-repo: fix swapped args in xbps_repo_addpkg_index().
--HG--
extra : convert_revision : xtraeme%40gmail.com-20090818140504-ea3rvio2ipbs501i
2009-08-18 16:05:04 +02:00
Juan RP
ca9d72d460 Implement blueprint 'xbps-repo-list-via-cmdline'.
A new target (add-pkgidx) has been added to the xbps-repo command,
that takes two args, local repository dir and path to binpkg.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20090818121244-pfdagkfqeukn1t2r
2009-08-18 14:12:44 +02:00
Juan RP
8621a2437b Rename xbps.conf to xbps-src.conf, because it's only used by xbps-src.
--HG--
rename : etc/xbps.conf => etc/xbps-src.conf
extra : convert_revision : xtraeme%40gmail.com-20090817230604-gcvdp2q44bq2lqra
2009-08-18 01:06:04 +02:00
juan
3f3b6d00dd Initial import of xbps with code as August '09.
--HG--
extra : convert_revision : juan%40xbps-20090817170720-amxxac4a2e8bza1j
2009-08-17 19:07:20 +02:00