Commit Graph
100 Commits
Author SHA1 Message Date
Juan RP b4fdc39e67 Revert "Sign repodata"
This reverts commit 04194f44c8.
2020-01-06 14:31:40 +01:00
Juan RP 9c61e341b1 configure: added --enable-lto (default disabled). 2020-01-06 12:47:50 +01:00
Juan RP d5e91cb7d8 xbps_transaction_store: fix memleak. 2020-01-06 12:47:13 +01:00
Juan RP 802a6eae09 xbps_dbg_printf{,_append}: add assertion 2020-01-06 12:10:47 +01:00
Juan RP 9be9679b5d configure: re-add --enable-debug (enabled by default).
And fix debugging in the shared library with tcc.
2020-01-06 12:09:28 +01:00
Juan RP fabe148261 LICENSE: hi 2020 2020-01-05 10:56:19 +01:00
Juan RP e2050269b0 .travis.yml: switch to pkgconf 2020-01-05 09:58:25 +01:00
Juan RP 1f1f7e31e7 tests: improve update_xbps_with_indirect_revdeps test case. 2020-01-05 09:26:38 +01:00
Juan RP 10075c28e5 libxbps: ignore indirect broken revdeps while updating xbps.
This fixes the long standing issue that has been a plague for
a long time.

See the test case for more information.
2020-01-04 13:01:28 +01:00
Juan RP d68ff7ebf0 xbps-install: fix --reproducable.
The 'repository' obj also needs to be skipped to be fully
reproducable between different repositories.

Updated the test case accordingly.
2019-12-29 16:31:23 +01:00
Juan RP 2c7c4e1bf0 tests/xbps-create: fix the rejectfifo test.
It was using -a (alternatives) rather than -A (architecture)
so the test wasn't checking the exact error branch.
2019-12-29 16:24:33 +01:00
Juan RP b05f4b4db5 xbps-install: added --reproducible long option.
If set, enables reproducible mode in pkgdb.

Added a new test case.
2019-12-29 11:02:51 +01:00
Juan RP 95a3ba651f libxbps: added XBPS_FLAG_INSTALL_REPRO for xbps_handle::flags.
If set, enable reproducible mode; skips adding the
"install-date" obj into pkgdb.
2019-12-29 11:02:51 +01:00
Juan RP d1c93bed52 xbps-rindex: stop adding the "build-date" pkg obj.
This was just setting the current date when the pkg
is being added to the repository index.

It does not make any sense, so get rid of it completely.

This "build-date" string obj needs to be added via
xbps-create(1) not xbps-rindex(1)!

Another step towards reproducability (#55)
2019-12-29 09:57:54 +01:00
Juan RP 2e08cbef7a tests: fixed tests to not use host's xbps.d confdir. 2019-12-28 13:42:30 +01:00
Juan RP 34471902ed README.md: update requirements; prefer pkgconf. 2019-12-28 11:55:11 +01:00
Juan RP 6210955010 xbps-create: fix memleak introduced in 0f3ed2067c 2019-12-27 23:15:21 +01:00
Juan RP 67707657a4 xbps-create: always sanitize gathered symlinks.
Added a new test case.

Close #199
2019-12-27 23:15:21 +01:00
Juan RP 166caab986 Do not silently update xbps on any install/update transaction.
When there's a new xbps update, xbps-install(1) will now return
EBUSY (16) and a message (if dry-run disabled) explaining
how to proceed.

If there's an update and transaction does not contain xbps, it will
error out unless the 'xbps' pkg is the only target pkg, i.e:

	# xbps-install -Su
	# echo $?
	16

To update xbps, the only way to proceed is to explicitly declare
it as an update, i.e:

	# xbps-install -u xbps

The dry-run mode will still show there's an xbps update.

Modified the existing test cases to satisfy the new behaviour.

Closes #166
Closes #142
2019-12-27 21:35:40 +01:00
Juan RP c81a2806ff xbps_transaction_prepare: optimize a bit.
If all packages in transaction are on hold, there's no
need to check for conflicts, shlibs, etc.

This makes `xbps-install -un` work faster on my system:
~0.450ms -> ~0.250ms

There's still room for more improvements :-)
2019-12-27 21:32:54 +01:00
Juan RP 73e0668840 libxbps: fix issue found by the recent glvnd switch.
See the new test case for details, but this simulates
the recent glvnd switch, with mesa, nvidia and libglvnd.

Thanks @st3r4g for the fix! this indeed fixes the new test case.

Close #186
2019-12-27 20:25:05 +01:00
Juan RP 34a1ab51d0 xbps-checkvers: version cache file.
We do not want obsolete files from previous versions, so that
we version the filename of that working version.
2019-12-27 18:23:46 +01:00
Juan RP 64aeabf3f6 xbps-checkvers: restore previous behaviour after 7a220b37db.
The '%n' pkgname fmt option still needs to be the sourcepkg
for xbps-src to work with no additional changes.

This restores previous behaviour, and uses binpkg's pkgname
while checking for pkgdb/repo.
2019-12-27 18:04:53 +01:00
Juan RP 90c040f37f configure: bump version to 0.58.
not yet released but 0.58 will be next version.
2019-12-27 16:35:03 +01:00
Juan RP 2f51b4c0bc xbps_init: fix warning on glibc. 2019-12-27 16:23:56 +01:00
Juan RP 7f75fd840a xbps_init: autodetect musl libc variant at compile time.
This way we don't need to set the 'architecture' xbps.d
setting when the binaries are compiled for musl.

Close #195
2019-12-27 16:23:56 +01:00
Juan RP 66b07bb795 xbps_array_foreach_cb_multi: fix previous. 2019-12-27 16:22:40 +01:00
Juan RP f5d93caf15 xbps_array_foreach_cb_multi: improve previous (v2).
As suggested by @CasperVector reuse the 'i' var to
wait for threads that were created successfully.
2019-12-27 15:47:43 +01:00
Juan RP a3a1c372cb xbps_array_foreach_cb_multi: improve previous.
Do not wait for the other threads to finish, just exit early.
2019-12-27 15:19:22 +01:00
Juan RP 08a1c61a4d xbps_array_foreach_cb_multi: error out if pthread_create(3) fails.
We do not want to continue processing more threads
if pthread_create(3) fails, rather return an error.

This is for #182 but not yet fixed, there might be a
memleak somewhere.
2019-12-27 14:27:51 +01:00
Juan RP 7a220b37db xbps-checkvers: use binpkg's pkgname rather than srcpkgs.
Up until now `xbps-checkvers` would only check for the
real sourcepkg, this broke detection of binary packages
that are subpkgs.

Added a new test case.

Close #192
2019-12-27 12:24:16 +01:00
Juan RP 0e1482917a Fix maybe-uninitialized warnings detected by LTO. 2019-12-27 10:53:10 +01:00
Juan RP 9775a20dbc configure: use pkg-config found via PATH.
We only care if the `pkg-config` bin is there, don't override
it with the result from _which(). In the xbps-src world,
pkg-config is a wrapper, that makes it cross compile easily.
2019-12-26 15:29:03 +01:00
Juan RP be05118aa8 libxbps: verify repodata signatures even if rootdir is unset.
xbps-rindex(1) has a -r option that sets the remove mode,
due to the changes added to sign repodata we need to access
to the correct directory where repository public keys are
stored. This makes the code use `$PWD/keys` before falling
back to `metadir`.

Fixes the test suite to run with unprivileged users (non root).
2019-11-24 12:52:50 +01:00
Juan RP f723edbca1 trans/revdeps: ignore pkgs on hold.
shlib checking is still performed later on...
2019-11-24 11:44:21 +01:00
Juan RP 5c9be1eefd travis: update xbps and system and then install deps.
code is too strict (or stupid) to allow unmatched versions.
2019-11-17 12:18:44 +01:00
Juan RP 6886a73288 Bump to 0.57.1 and libxbps micro. 2019-10-27 09:50:11 +01:00
Juan RP b9b6f43300 package_script.c: fix runtime with tcc
Making `shells` a global declaration does not seem to make tcc happy, so make this a local variable in `xbps_pkg_exec_buffer` instead.
2019-10-27 09:38:50 +01:00
Juan RP 9ebe82fdc3 xbps-checkvers: fix a warning with glibc.
found by @q66

main.c:195:8: error: ignoring return value of 'fread', declared with attribute warn_unused_result [-Werror=unused-result]
2019-10-27 09:13:46 +01:00
Juan RP c3a64f60e9 configure: bump to 0.58 2019-10-27 08:57:40 +01:00
Juan RP 98e09e01e1 lib/package_alternatives.c: check if alternative is a symlink before removing it
Original commit by @duncaen ... but couldn't find this anywhere.
2019-10-27 08:44:37 +01:00
Juan RP d927517327 xbps-fbulk: do not make assert() change program behaviour.
... otherwise if NDEBUG is set chdir() is skipped completely.
2019-07-06 08:37:47 +02:00
Juan RP 702d64c517 xbps-checkvers/Makefile: re-add -Wno-deprecated-declarations.
... it's still necessary due to readdir_r() with glibc.
2019-07-03 02:15:41 +02:00
Juan RP 9addb5e64e Get rid of some old disabled warnings. 2019-07-03 01:26:07 +02:00
Juan RP 5c828d8667 README.md: remove pcc note; it's in the build matrix now. 2019-06-27 18:12:33 +02:00
Juan RP 51bfc2a395 travis: add pcc/musl to the build matrix. 2019-06-27 18:09:26 +02:00
Juan RP 0677678387 Added LTO support and fix warnings (maybe-uninitialized). 2019-06-27 18:09:26 +02:00
Juan RP bb96486b12 xbps-install: make sure to call xbps_end() before exiting. 2019-06-27 08:02:19 +02:00
Juan RP db00ccc3b0 tests/xbps-remove/orphans: use -r root. 2019-06-27 07:57:13 +02:00
Juan RP c250bdce45 travis: disable tcc/glibc for now. 2019-06-26 16:00:56 +02:00
Juan RP 646115efdc run-tests: set LIBRARY_PATH for tcc. 2019-06-26 15:55:47 +02:00
Juan RP 815754a0e9 configure: set -Wno-error later for tcc, to override -Werror. 2019-06-26 15:48:46 +02:00
Juan RP 899b8e7abb Revert "travis: disable tcc again, seems to not obey -Wno-error."
This reverts commit 405f4b8379.
2019-06-26 15:48:35 +02:00
Juan RP 405f4b8379 travis: disable tcc again, seems to not obey -Wno-error. 2019-06-26 15:27:12 +02:00
Juan RP ab2445e722 configure: use -Wno-error for now with tcc. 2019-06-26 15:13:01 +02:00
Juan RP ceab3c66b7 travis: tcc builds need binutils. 2019-06-26 15:03:32 +02:00
Juan RP d6aebd45f0 fetch/http.c: fix tcc build failure.
fetch/http.c:1475: warning: function might return no value: 'parse_index'

The code uses abort() before returning anything; return a proper
return value instead.
2019-06-26 14:57:39 +02:00
Juan RP 3c98d7cc4c README.md: tcc seems to be working ok now to run the testsuite. 2019-06-26 14:53:56 +02:00
Juan RP 2694654317 travis: add tcc glibc/musl to the build matrix. 2019-06-26 14:46:52 +02:00
Juan RP 00cda75a63 Require libarchive>=3.3.3 due to zstd support. 2019-06-26 09:05:37 +02:00
Juan RP f9477e08a7 tests/update_itself: improve test case on_any_op even more. 2019-06-25 23:13:17 +02:00
Juan RP 83aa486f6b xbps-remove: skip trans if all pkgs were not found.
Restores behaviour with xbps<0.54.
2019-06-25 10:32:02 +02:00
Juan RP a1a0407548 Bump to 0.57. 2019-06-24 11:28:11 +02:00
Juan RP 81d31ab764 NEWS: prepare 0.56. 2019-06-24 11:26:59 +02:00
Juan RP e1dafe8f01 NEWS: sync 2019-06-24 10:56:01 +02:00
Juan RP 173c834fc8 lib/pkgdb.c: initialize pkgdb_fd.
otherwise xbps_pkgdb_unlock will always succeed.
2019-06-23 11:05:03 +02:00
Juan RP 41b2cec356 xbps-*: use xbps_pkgdb_update() correctly.
xbps-{alternatives,pkgdb,reconfigure}: xbps_pkgdb_update()
has been fixed to flush when told so, and we don't need
to update the in-memory copy because we are exiting.
2019-06-22 18:50:40 +02:00
Juan RP 97672bd79f pkgdb: fix two issues in _update() and _release().
xbps_pkgdb_update: inverted condition that made it 'flush' when !flush.
xbps_pkgdb_release: xhp->pkgdb might be NULL, but unlock pkgdb anyway.
2019-06-22 18:47:13 +02:00
Juan RP 58509996aa xbps-install: skip trans if all pkgs are installed or uptodate.
Fixes an issue pointed out by @Johnnynator
2019-06-21 19:19:09 +02:00
Juan RP 2f1fd70a4e xbps_transaction_prepare: initialize trans dict!
... otherwise it will always return ENXIO
2019-06-21 17:13:06 +02:00
Juan RP 1ceefe6f53 Bump to 0.56. 2019-06-21 16:32:38 +02:00
Juan RP 13172c22fc xbps-install: only print num of downloaded pkgs with -D. 2019-06-21 16:26:08 +02:00
Juan RP f1181c7415 NEWS: prepare for 0.55. 2019-06-21 16:14:35 +02:00
Juan RP 589a96a50e xbps-install: with -D there are no pkgs to install/update/configure/remove. 2019-06-21 16:06:42 +02:00
Juan RP fe943eb7d2 xbps-install(1): added -D, --download-only.
Added `-D, --download-only` flag to allow downloading
packages to the cache without attempting to install them.

Contributed by Toyam Cox via #9

Adapted to master by yours truly.

Close #9
2019-06-21 15:57:25 +02:00
Juan RP 4f717dc597 xbps-install(1): added -I, --ignore-file-conflicts.
If set it will continue with the transaction and will
just print what are the conflicting files without returning
EEXIST.

This is a temporary solution for void where there are still
some packages with conflicting files (qt5-host-tools vs qt5-tools-devel).

With input by @duncaen
2019-06-21 15:31:04 +02:00
Juan RP 9a72aaf577 xbps_transaction_files: report all conflicting files not just the first. 2019-06-21 13:48:47 +02:00
Juan RP 0f69773273 lib/transaction_ops.c: more debug. 2019-06-21 13:14:24 +02:00
Juan RP 3004085343 NEWS: mention latest bugfix. 2019-06-21 11:31:17 +02:00
Juan RP 288cff37f8 xbps-install: return 0 if pkg is already installed or uptodate.
Before this change xbps-install could return EEXIST
when the package is already installed, or already up-to-date.

Return 0 if such condition happens, and only return EEXIST
if there's a file conflict.

Close #51
2019-06-21 11:06:45 +02:00
Juan RP c44e1f958d lib/transaction_prepare.c: update for rename. 2019-06-21 10:48:17 +02:00
Juan RP fcab44dbd3 lib/transaction_dictionary.c -> transaction_prepare.c. 2019-06-21 10:46:32 +02:00
Juan RP 0c3ed93b0e NEWS: update 2019-06-21 09:31:10 +02:00
Juan RP 5098d03238 mk/prog.mk: set proper target for bins.
Fixes build failure in aarch64-musl and cross compilation...
weird it didn't fail on native.
2019-06-20 19:26:43 +02:00
Juan RP 098fea7704 Bump to 0.55. 2019-06-20 17:14:16 +02:00
Juan RP 2c6e0c28d4 xbps-checkvers.1: tweaks 2019-06-20 15:25:14 +02:00
Juan RP 519b979c0b NEWS: mention how many test cases, issues and contributors. 2019-06-20 15:04:39 +02:00
Juan RP c19f70622e NEWS: prepare 0.54. 2019-06-20 14:54:28 +02:00
Juan RP 88e72f9f00 README.md: tweaks 2019-06-20 13:23:24 +02:00
Juan RP 071db09d3e xbps-alternatives.1: proper credit. 2019-06-20 12:56:17 +02:00
Juan RP a3209f4b57 tests: rename some tests to make .gitignore effective. 2019-06-20 12:50:10 +02:00
Juan RP 016a06754c NEWS: mention API/ABI bump. 2019-06-20 12:26:04 +02:00
Juan RP 550bdfdcda AUTHORS: complete list of contributors. 2019-06-20 12:11:56 +02:00
Juan RP 6390817d7e xbps-rindex.1: proper credit. 2019-06-20 11:44:45 +02:00
Juan RP 2df0778fcd xbps-pkgdb.1: proper credit. 2019-06-20 11:42:30 +02:00
Juan RP b0abcd4997 xbps-checkvers.1: proper credit. 2019-06-20 11:42:09 +02:00
Juan RP b6a88617d0 NEWS: mention all contributors for 0.54. 2019-06-20 11:34:22 +02:00
Juan RP 75326df2a0 NEWS: dup entry 2019-06-20 11:20:30 +02:00
Juan RP 9a4b6cf9af NEWS: more items, almost complete now. 2019-06-20 11:17:36 +02:00
Juan RP 3efa7ea2c8 NEWS: tweak 2019-06-20 11:09:36 +02:00