Commit Graph

3553 Commits

Author SHA1 Message Date
6ccee8fd5e xbps-uchroot: overlayfs fixes v2.
- Do not use nftw(3), this won't clean up the tree properly.
  Rather use scandir(3) with alphasort, like xbps-create(1).

- Don't drop privs in the parent to make sure that the
  temp overlayfs tree can be removed properly.

This fixes the issues while building go modules and others
with xbps-src.
2020-02-13 09:06:29 +01:00
fbba38b006 lib/util_hash.c: add conditions to avoid misuse without asserts 2020-02-10 15:03:54 +01:00
d99aae586a lib/download.c: fix digestlen assert and add if condition to avoid misuse 2020-02-10 15:03:54 +01:00
2ef79bcc09 lib/util_hash.c: change asserts to allow at least X buffer length 2020-02-10 13:32:17 +01:00
dd4eabe253 include/xbps.h.in: update descriptions for *_sha256* functions and defines 2020-02-10 13:32:17 +01:00
9efa72f5c8 lib/package_config_files.c: use _get_cstring_nocopy for sha256_orig 2020-02-10 13:32:17 +01:00
0d90534236 libxbps: ABI/API break due to hash function changes 2020-02-10 13:32:17 +01:00
aa4d726dca lib/package_register.c: make sure to error out if copy fails 2020-02-10 13:32:17 +01:00
dca2223cb7 lib/transaction_store.c: store a copy in transaction packages array
This fixes multiple use after frees, found with AddressSanitizers.

* xbps_package_register: the pkgdb dictionary is replaced with
  the new one.
* xbps_pkgdb_update: here the pkgdb is externalized, freed and
  internalized.
2020-02-10 13:32:14 +01:00
3eed9bca59 xbps_array_foreach_cb_multi: use PTHREAD_MUTEX_INITIALIZER.
We use defaults, no need to use pthread_mutex_init().
2020-02-10 09:14:50 +01:00
c460df6011 xbps_array_foreach_cb_multi: switch to a mutex.
There's no reason to use a spin lock.
2020-02-10 09:08:33 +01:00
8c930a47dd travis: disable tcc from build matrix.
tcc seems to cause more problems than benefits, so
get rid of it.
2020-02-10 09:07:33 +01:00
835834ff73 xbps_repo_open: fix memleak in error paths. 2020-02-10 09:07:00 +01:00
02c9cb11c4 configuration: add keepconf option
Add configuration option keepconf that stops xbps from overwriting
unchanged configuration files. If keepconf=true, xbps will store the new
configuration as <name>.new-<version> instead of overwriting unchanged
configuration files.
2020-02-08 21:06:04 +01:00
71a594f681 Revert "xbps-uchroot: make sure to cleanup tempdir with overlayfs."
This reverts commit f6a6385b42.

Does not work as expected, and does not fix the real issue
which is still not understood.
2020-02-08 20:43:23 +01:00
c4019aa923 xbps_transaction_files: fixed another memleak.
Thanks valgrind
2020-02-08 20:22:42 +01:00
2d7e3d7b1a xbps_transaction_remove_pkg: fix a memleak.
Thanks valgrind
2020-02-08 20:12:11 +01:00
58217d412d xbps_transaction_files: fix a memleak.
Thanks valgrind!
2020-02-08 20:08:03 +01:00
460515bf41 lib/util.c: add assertions everywhere. 2020-02-08 20:00:56 +01:00
6010a24de6 libxbps: ABI/API break due to xbps_pkg{,pattern}_name changes.
The funcs xbps_pkg_name() and xbps_pkgpattern_name() were
using malloc(3) to return the result, until now.

They now have been changed to not allocate the result
via malloc, the caller is responsible to provide a buffer
at least of XBPS_NAME_SIZE (64).

If for whatever reason the pkgname can't be guessed,
returns false. This should avoid lots of small allocs
around libxbps.

New functions have the following prototype:

bool xbps_pkg_name(char *dst, size_t len, const char *pkg)
bool xbps_pkgpattern_name(char *dst, size_t len, const char *pkg)

as suggested by @duncaen.
2020-02-08 19:49:57 +01:00
1cda3017c3 README.md: sort badges 2020-02-08 13:43:47 +01:00
b23bff86d8 README.md: add repology xbps versions. 2020-02-08 13:42:39 +01:00
bbf113c492 README.md: add LGTM project badges 2020-02-08 13:39:43 +01:00
66bea965dc xbps_register_pkg: switch to localtime_r(3).
lgtm suggested that localtime() is not reentrant,
so that we now use localtime_r() instead.

lgtm reports 0 alerts after this change, yay.
2020-02-08 13:34:57 +01:00
7d934c9290 xbps-create: fix two issues detected by lgtm 2020-02-07 17:16:47 +01:00
6ff9422134 configure: bump to 0.59 2020-02-07 10:11:11 +01:00
397f2b86e1 tests: new alternatives test case by @CameronNemo.
The test case has been provided by @CameronNemo via #185.
This is expected to fail currently.
2020-02-07 09:55:36 +01:00
732a0e6bdf alternatives: fixed replace_alternative_with_symlink test case.
Only 1 expected failure now!
2020-02-07 09:43:47 +01:00
94b56d7539 alternatives: do not remove symlinks if provider != target pkg.
This fixes the keep_provider_on_update test case, submitted
by @st3r4g via #219.

While checking for obsoletes make sure current provider
also matches the current target pkg.

Fixes #219
2020-02-07 09:16:57 +01:00
86ce5a2084 tests: new test case for alternatives by @st3r4g.
This currently reproduces the tar/bsdtar alternatives
issue that appeared recently in void.

This is expected to fail currently.

From #219
2020-02-07 07:51:01 +01:00
8d2aaff3e1 mk/prog.mk: fix warning with clang; use PROG_CFLAGS. 2020-02-06 09:48:43 +01:00
4c22511d17 configure: simplify 2020-02-06 09:48:30 +01:00
3a0ca77264 xbps-uchroot: stop remounting / unnecessarily.
The remount is done to use nosuid, but we can get
rid of the remount just because of this specific
option that does not have too much value for our
general usage (xbps-src).
2020-02-06 08:50:12 +01:00
f6a6385b42 xbps-uchroot: make sure to cleanup tempdir with overlayfs.
Go modules seem to have too restrictive permissions on
its builddir, making xbps-uchroot(1) unable to remove
its directory tree due to insufficient permissions.

Run nftw() twice, the first run to set chmod 755, and
second run to remove the file.

Fixes `xbps-src -t` with any pkg that uses `build_style=go`.

This should avoid lots of temp dirs in the buildbot
builders while building go modules and others.
2020-02-04 13:17:26 +01:00
adebbf71e2 tests: add 3 new test cases for obsolete files with alternatives 2020-02-03 15:33:55 +01:00
749bdabc83 tests/alternatives: set atf_expect_fail for unfixed issue. 2020-02-03 09:58:57 +01:00
354d45fca1 add test which replaces an alternative group with a symlink 2020-02-03 09:57:22 +01:00
5b43614e80 libxbps: fixed regression introduced in 0.58.
While looking for dependencies, we need to check
if xbps_rpool_get_pkg() returned a suitable match;
and then validate its result.

This fixes the update_and_install test case that
was reverted via #218.
2020-02-03 09:19:54 +01:00
2612cb9bbe Makefile: add target deps 2020-02-03 08:14:10 +01:00
8637269b38 lib/transaction_revdeps.c: fix provides/replaces #218
This reverts a change that solved another issue and marks the test case
for the other issue as expected failure.

The other issue is not as important as this, as it blocks updating a lot
of systems.
2020-01-31 16:32:44 +01:00
8698735939 tests: add testcase for libglnvd replaces/provides from issue #218 2020-01-31 16:28:41 +01:00
d86e8dde47 NEWS: correct date for 0.58. 2020-01-30 17:51:57 +01:00
9b476bf081 NEWS: 0.58: mention Mohamad Barbar. 2020-01-30 09:52:23 +01:00
96be14937b NEWS: 17 new test cases since 0.57.1; list contributors. 2020-01-30 09:51:02 +01:00
1fce2f7c1d NEWS: prepare for 0.58 (v2). 2020-01-30 09:37:36 +01:00
ecc8e41dd6 NEWS: document 0.57.1; prepare for 0.58. 2020-01-30 09:12:34 +01:00
4a06cb41b1 bin/xbps-checkvers: mistake in manpage 2020-01-30 08:01:12 +01:00
57675c7dfc lib/fetch: fix CVE-2020-7450
https://www.freebsd.org/security/advisories/FreeBSD-SA-20:01.libfetch.asc
2020-01-28 20:29:39 +01:00
40dd4deb4d unpack: really skip current data on archive with noextract. 2020-01-26 10:35:40 +01:00
8a0c3032b7 xbps_find_pkg_orphans: improvements.
While checking for orphans in automatic mode (xbps-query -O,
xbps-remove -o) there's no need to generate a fulldeptree...
instead we need to iterate against pkgdb until no more orphans
are found.

See https://github.com/void-linux/xbps/issues/156#issuecomment-578473222

Also add some debugging that helped me to catch the issue
easily.

Closes #156
2020-01-26 07:40:25 +01:00