Commit Graph

14 Commits

Author SHA1 Message Date
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
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
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
3bb3858cfb xbps_find_pkg_repo_deps: don't propagate rv to next calls using it,
add some more debugging for future problems.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091122234348-g8x4r7kqgnex30w6
2009-11-23 00:43:48 +01:00
Juan RP
3fcba399af xbps_find_pkg_repo_deps: if finding a dep failed for whatever reason,
stop immediately and return the appropiate error.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091122205257-m1wta4fk85k1hv1w
2009-11-22 21:52:57 +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
71ea9d2d1f xbps_find_pkg_deps: simplify, fix multi-repo bug, add debugging.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091121061242-22ow43an9ksa8y0b
2009-11-21 07:12:42 +01:00
Juan RP
795c2a58f5 Fix some issues while matching for required pkgdeps.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091107154159-riikhswt1h3mm9xn
2009-11-07 16:41:59 +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
0024221279 lib/depends.c: minor performance change.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091028021652-ns74gpr86ohfok9a
2009-10-28 03:16:52 +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
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
1afb358221 Fix bug #443436: endless loop if indirect dep missing in repo.
Make xbps_find_deps_in_pkg() return ENOENT when missing deps are found.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091005195748-nhhsgldgg3hwfcz7
2009-10-05 21:57:48 +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