1722635e08
Introduce xbps_sanitize_path() to fix #78 properly.
...
This removes multiple slashes of a path and returns you a buffer with
the sanitized string.
2015-02-18 15:12:39 +01:00
628a344560
libxbps: fix a memleak introduced in 1403826fa
.
2015-02-17 16:39:04 +01:00
1403826fa6
libxbps: detect and remove properly symlinks with relative targets.
...
Close #78
2015-02-17 11:59:05 +01:00
0fc297a471
lib/transaction_ops.c: minor optimization.
2015-02-16 11:18:58 +01:00
2aa844f3f7
lib/Makefile: remove some disabled warnings for lib{fetch,portableproplib}.
...
There's no need to set _GNU_SOURCE and disable those compiler warning flags.
2015-02-15 05:47:35 +01:00
b8b4694b33
portableproplib: use posix_madvise rather than madvise.
...
The posix variant is the standardized version of madvise.
2015-02-15 05:42:18 +01:00
4e0ce0fbb4
libxbps: make the vpkg_provider_and_revdeps_downgrade test case work.
2015-02-10 10:55:05 +01:00
1ebb245672
xbps_transaction_store: print repo too.
2015-02-05 10:26:53 +01:00
c0d7d930de
libxbps: make sure that revdeps of vpkg providers are always resolved.
...
Added new test cases to verify its correctness in upgrades and removals.
2015-02-05 10:04:42 +01:00
d607655371
libxbps: globally check for unresolved reverse dependencies.
...
Close #46 . See NEWS for more information.
2015-02-03 10:20:13 +01:00
3bc6354550
lib/repo_pkgdeps.c: fix some debug printfs.
2015-02-02 09:37:34 +01:00
076b3f8c44
libxbps: add pkgs on hold mode to the transaction, but ignore them.
...
Those are there mostly to be shown by the clients and notify that
there's an update in repos that is being ignored.
Idea by @chneukirchen.
2015-01-28 12:07:47 +01:00
571d96fa92
libxbps: make sure to remove pkg metadata file on upgrades with skip-obsoletes.
...
This fixes the following case:
- A-1.0_1 is installed and owns bin/foo.
- A-1.1_1 is in the transaction and depends on B-1.0_1 that owns bin/foo.
- B-1.0_1 is in the transaction and replaces A<1.1_1.
- A-1.1_1 in the transaction now has "skip-obsoletes".
- A is updated to 1.1_1, its metadata file (<pkgname>-files.plist) wasn't removed.
Added two new test cases to verify moving files from/to a dependency.
2015-01-27 17:53:37 +01:00
cbf1cfe0f5
libxbps: improve debug messages again.
2015-01-21 11:39:45 +01:00
b7fd0dcac5
xbps_transaction_shlibs: take into account shlibs from pkgs in the transaction.
2015-01-18 12:44:26 +01:00
f9eef6aa0d
Perform global tracking of unresolved shlibs before accepting transaction.
...
Rather than checking per package being installed or updated, check
all installed packages to have all its shlib-requires resolved.
2015-01-18 10:23:52 +01:00
d11230a29d
libxbps: abort pkg unpacking as soon as a file cannot be written.
...
Close #74
2015-01-18 10:22:05 +01:00
bce27b968e
xbps_find_*pkg_in_array: fix logic when transaction obj string matches.
2015-01-17 06:04:22 +01:00
e438aae13c
transaction_revdeps.c: remove dead code.
2015-01-14 21:00:37 +01:00
8263449f94
xbps_end: don't bother releasing everything; pkgdb is enough.
...
xbps-query -L now: 115ms
xbps-query -L before: 148ms
Fuck you valgrind!
2015-01-14 18:43:17 +01:00
a651f33832
xbps_pkgdb_release: don't bother releasing everything.
2015-01-14 17:34:00 +01:00
91b7b2fd5a
Use a sane umask(2) before unpacking package files.
...
See https://github.com/voidlinux/void-packages/issues/835
for more information.
2015-01-11 11:01:09 +01:00
b23855f692
xbps_repo_close: only unlock the file lock if repo was opened as such.
...
If xbps_repo_open() was called with the lock arg set, xbps_repo_close()
will now unlock the repo file lock, without the need to set it.
This avoids the need to always unlock the file lock even if it wasn't
locked previously. This also introduceds an ABI/API break, but this
way it's cleaner.
2015-01-11 09:11:38 +01:00
7dea05f507
xbps_pkgdb_update: added 3rd bool arg "update", not update in memory pkgdb.
...
If true, the in memory pkgdb dict will be updated with data from the on-disk pkgdb.
2015-01-10 19:42:09 +01:00
7c153a2b15
pkgdb: disable pkgdb conversion code; 0.38 was released long ago.
2015-01-10 19:26:37 +01:00
ee175a2a68
Improve xbps_end() and use it before exit(3)ing.
...
- Simplify xbps_repo_open::repo_get_dict().
- Use xbps_end() in the utils where necessary.
- Make xbps_end() call xbps_pkgdb_unlock() if necessary.
- Make xbps_end() release rpool resources.
- Make xbps_end() release resources from xbps_handle.
- Fixed 90% of reported leaks (still reachable at exit) from valgrind.
That was to silence valgrind's memcheck with --leak-check=full.
2015-01-10 19:11:31 +01:00
8196811e2e
lib/repo.c: indent previous.
2015-01-10 12:00:36 +01:00
b09faadebc
xbps-{install,query}: --repository now accepts relative paths in local repos.
2015-01-10 11:59:31 +01:00
7b3a500139
libxbps: the provides obj now expects exact pkgver strings.
...
This reduces extra allocs and simplifies the code, which was just
there to workaround some broken pkgs anyway.
2015-01-10 07:26:23 +01:00
1f6a5c0e47
libxbps: detection of orphaned packages is now 66% faster.
2015-01-10 05:43:35 +01:00
5d7a5a646d
xbps_repo_get_pkg_revdeps: find pkg via repo_get_xxx not rpool_get_xxx.
2015-01-06 07:58:45 +01:00
9d582abe0f
Fixed a regression with virtual packages declared via xbps.d(5).
...
Added a new test case to verify its correctness. Somehow virtual packages
declared via xbps.d(5) were not working correctly for dependencies.
This now works as expected with vpkgs declared with and without a version
component.
2015-01-05 16:04:22 +01:00
eee895c6d8
Fixed a regression in vpkgs and improve xbps.d(5) virtualpkg declarations.
...
See the NEWS file for more information.
2014-12-31 08:51:45 +01:00
b513a5e15e
libfetch: misc cleanups due to nbcompat removal.
2014-12-28 03:34:36 +01:00
4ee6f943dd
libfetch: fix races in the cache connection code.
...
Tested by @Gottox.
2014-12-23 10:52:54 +01:00
6a985190aa
xbps_archive_fetch_xxx: avoid races with multiple threads in the libfetch code.
...
Protect our critical sections with a mutex for now, until libfetch
is really fixed to work correctly with multiple threads.
2014-12-22 18:18:20 +01:00
c8ecf4ac6c
xbps-reconfigure(8): new option -i, --ignore to ignore pkgs with -a, --all.
...
-i, --ignore can be specified multiple times and can be used to
ignore configuration of those packages while configuration of all
packages is being performed.
Close #67
2014-12-09 13:10:48 +01:00
16d2640df8
Files in the configuration directory have preference.
2014-12-09 12:05:18 +01:00
53c6a5d1d7
xbps_transaction_commit: if the pkg RSA signature is invalid print rval too.
2014-12-01 12:52:26 +01:00
c47beef740
xbps_transaction_commit: if pkg sha256 hash is invalid print rval.
2014-12-01 12:47:29 +01:00
4479bff03e
repo: if local repodata archive is incomplete, remove it.
2014-11-29 08:44:21 +01:00
fe9a795995
xbps-{install,query}: added -M --memory-sync option.
...
This explicitly enables the in memory fetch/store of remote repository
data archives mode, ignoring existing on-disk repodata archives.
This changes the previous behaviour of falling back to this mode if no
on-disk repodata archives were found.
Thanks to @Gottox and @dominikh for comments.
2014-11-27 10:42:05 +01:00
7401ea3e64
Added support to fetch remote repodata on the fly.
...
See the NEWS file for more information.
2014-11-26 16:07:16 +01:00
89d11e871f
xbps-{install,query}: added -i to ignore repos defined in xbps.d.
...
See the NEWS file for more information.
2014-11-21 10:56:41 +01:00
1789e527a9
Gratuitous ABI break: xbps_binpkg_get_xxx() -> xbps_archive_fetch_xxx().
2014-11-21 09:51:57 +01:00
1bae26606e
Introduce xbps_{pkgdb,rpool}_get_pkg_fulldeptree().
...
These routines return a xbps_array_t with a full sorted dependency graph
for the target pkg, by querying pkgdb or rpool.
Update xbps-query(8) to use the new libxbps API.
2014-11-20 09:23:51 +01:00
eb90fcc50c
xbps_binpkg_{arch,pkgver}: return a buffer of matched string instead.
...
... otherwise will pass an invalid pointer to free(3) later on.
2014-11-19 11:56:16 +01:00
428a747fad
Fix #69 (No way to set globally a custom architecture)
...
The "architecture" configuration keyword is now available to override
the native machine architecture returned by (uname(2)).
The XBPS_ARCH environment variable still has preference.
2014-11-19 11:36:09 +01:00
b2bc7af66e
Fix #68 (xbps_binpkg_arch() asserts if arch contains a dash)
2014-11-19 11:14:37 +01:00
c549252223
xbps_pkg_version: minor optimization.
2014-11-18 16:11:43 +01:00