Commit Graph

347 Commits

Author SHA1 Message Date
Piotr Wójcik
cd0f81d68c bin/xbps-checkvers: list removed templates 2020-01-25 13:21:18 +01:00
Juan RP
26b7864973 tests/hold: update hold_shlibs test case with exp behaviour. 2020-01-25 10:23:06 +01:00
Juan RP
76f8ca595b tests: rename downgrade_hold_test.sh to hold_test.sh.
Added new test case for https://github.com/void-linux/xbps/issues/215

This fails as expected right now because the fix is still
not there.
2020-01-25 10:23:06 +01:00
Duncan Overbruck
6794077efd
Add noextract configuration option
Closes #208
Fixes #165
2020-01-18 15:51:13 +01:00
Juan RP
ef9260a16e
libxbps: fix for vpkg providers in multiple repos.
Added new test case by @st3r4g via #206

Closes #206
2020-01-18 12:50:59 +01:00
Juan RP
5ff3ab5c60
transaction_revdeps: do not skip pkgs that are being updated.
Modified the test case with changes by @duncaen.

Closes #205
2020-01-18 08:58:54 +01:00
Juan RP
7ff9041f2a
tests: improved tests case for #205.
Again, can't reproduce the issue.
2020-01-12 05:03:54 +01:00
Juan RP
cb5b80711c
tests/install_test.sh: new test case by @duncaen via #205.
New test case written by @duncaen, with some tweaks from
myself to verify expected behaviour.

Close #205
2020-01-11 15:25:16 +01:00
Juan RP
4ddb335c8e
Revert "Tests for signing metadata"
This reverts commit d785e7e483.
2020-01-06 14:52:39 +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
2e08cbef7a
tests: fixed tests to not use host's xbps.d confdir. 2019-12-28 13:42:30 +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
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
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
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
Piotr Wójcik
26d853751e lib/util.c: relax revision check to match existing data 2019-12-14 12:07:12 +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
q66
85b8b3bbb7 lib/package_alternatives.c: prune obsolete alternatives groups
In the edge case when an updated package has different (or no)
alternatives groups, make sure to prune those that are in pkgdb
but not in the newly installed package.

A potentially common case of this is when a package that formerly
had alternatives gets removed and a transitional metapackage
takes its place (which has no alternatives).

When the new package has no dependencies, oldest next possible
alternatives group will be used. This is because that indicates
a removed package. When there are dependencies, the newest one
will be used; as this indicates a transitional package.
2019-11-17 13:22:15 +01:00
Piotr Wójcik
d785e7e483 Tests for signing metadata 2019-11-02 11:53:14 +01:00
Piotr Wójcik
699b2bdd3b lib/util.c: verify revision in xbps_pkg_{version,revision,name} 2019-10-25 23:37:23 +02:00
Duncan Overbruck
7b66a2885b tests: add two more tests for preserving and force removal of conf files 2019-08-06 13:49:51 +02:00
Duncan Overbruck
c88f15c8fa tests: add two new test cases for keep and removal of modified files 2019-08-05 14:45:19 +02:00
Duncan Overbruck
f215411362 tests: add another testcase for transitional package replaces/provides 2019-08-05 14:44:39 +02:00
Duncan Overbruck
b20e1f5192 Revert "tests: add another case to install_and_update_revdeps test"
This reverts commit f6bc7f621c.
2019-08-05 11:49:40 +02:00
Duncan Overbruck
4f6a5a51de tests: obsolete files test to prove that alternatives don't need to be considered 2019-08-02 11:44:26 +02:00
Duncaen
f6bc7f621c tests: add another case to install_and_update_revdeps test
The new case checks if xbps is smart enough to only update packages that
require an update due to revdep updates.
2019-07-03 00:48:57 +02:00
Duncaen
7c3029589c lib/package_fulldeptree.c: don't add the package itself to the fulldeptree result
This was noticed a few days ago by @leah2.
2019-07-02 09:48:05 +02:00
Duncaen
f9233a862c tests: cover more cases find_pkg_orphans_test:find_all_orphans_test 2019-07-02 09:48:05 +02:00
Juan RP
db00ccc3b0
tests/xbps-remove/orphans: use -r root. 2019-06-27 07:57:13 +02:00
Duncaen
cc1c984e9a tests: add xbps-remove tests 2019-06-26 22:22:44 +02:00
Duncaen
3c07036c24 tests: new obsolete files test with modified files which should catch bug from previous commit 2019-06-26 13:23:18 +02:00
Juan RP
f9477e08a7
tests/update_itself: improve test case on_any_op even more. 2019-06-25 23:13:17 +02:00
Duncaen
5fc340a838 tests: add test for removal of ignored package 2019-06-23 12:23:17 +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
Duncaen
2cccb31508 tests: add two test cases for obsolete preserved files 2019-06-20 14:53:08 +02:00
Juan RP
a3209f4b57
tests: rename some tests to make .gitignore effective. 2019-06-20 12:50:10 +02:00
Juan RP
b37dd066c9
tests: fix manpage refs. 2019-06-20 11:02:40 +02:00
Juan RP
818e399a8c
tests/xbps-checkvers: update tests for new output fmt. 2019-06-19 13:48:22 +02:00
Juan RP
829c5835f1
alternatives: respect (and love) current provider.
Added a new test case to verify.

Close #126
2019-06-18 20:47:55 +02:00
Duncaen
27b9da6c9a tests: don't rely one files mtime 2019-06-18 19:54:22 +02:00
Duncaen
f4bf826c7f tests: add two more test cases for obsolete files 2019-06-18 19:54:22 +02:00
Duncaen
f6bf9b44ce tests: add tests for package preserve keyword 2019-06-18 19:54:22 +02:00
Duncaen
3915d523d0 tests: add test for conflicting files in transaction 2019-06-18 19:54:22 +02:00
Duncaen
247463e359 tests: add two new tests for transaction_files 2019-06-18 19:54:22 +02:00
Duncaen
6877d28139 lib/package_find_obsoletes.c: remove in favor of transaction file checks 2019-06-18 19:54:22 +02:00
Duncaen
888289786b tests: move file type change tests to obsolete files 2019-06-18 19:54:22 +02:00
Duncaen
bf4740040f tests: Update package to meta moving files to dependency and replaces
https://github.com/void-linux/xbps/issues/12
2019-06-18 19:54:22 +02:00
Duncaen
c8ef119f4b tests: enable debug flag in directory to symlink test 2019-06-18 19:54:22 +02:00
Duncaen
f5e6d33c6e tests: update test issue31 2019-06-18 19:54:22 +02:00
Duncaen
69e64e6c21 tests: enable test 'replace directory with symlink' 2019-06-18 19:54:22 +02:00
Johannes Brechtmann
514dca27ef tests: update replaces file with directory 2019-06-18 19:54:22 +02:00
Duncaen
66e5b721ae tests: obsoletefiles_test:reinstall_obsoletes add debug flag and different rv 2019-06-18 19:54:22 +02:00
Duncaen
2a9029b736 tests: fix tests; transaction detect if multiple packages install the same file 2019-06-18 19:54:22 +02:00
Duncaen
c533f1bd52 tests: change the obsoletefiles tests to have the same mtime
This is required because the of reproducibility changes.
2019-06-18 19:54:22 +02:00
Juan RP
b672e1a7f2
Improved "xbps auto-updating itself" behaviour.
Always check if there's a new xbps package version available
while *installing* or *updating* in any form.

This fixes the following scenario:

- xbps-0.53_10 is currently installed
- xbps-0.54_1 is available in repo
- xbps-install --update netbsd-wtf || xbps-install new-pkg || xbps-install --update

As expected any of the following scenarios in last cmd will use *this*
transaction to autoupdate xbps and its reverse dependencies.

Another transaction will be necessary to install or update the other unrelated
packages.

Added a new test case to verify this case and improve the other test
cases with more extensive checks.
2019-06-17 12:02:02 +02:00
Duncaen
49cc70de9a xbps-checkvers: rewrite check_reverts without malloc 2019-06-15 23:50:50 +02:00
Duncaen
3805fd5297 xbps-checkvers: use proplib data structures and add cache file 2019-06-15 23:50:50 +02:00
Juan RP
a9a889c54d fulldeptree: return a proper error if deps can't be resolved.
xbps_get_pkg_fulldeptree() now returns NULL and sets errno to ENODEV
when there are missing dependencies, rather than assert()ing.

Added another test case to check returned error codes.

Signed-off-by: Juan RP <xtraeme@gmail.com>
2019-06-15 18:04:20 +02:00
Juan RP
3a70495ba6
tests/cyclic_dep_full: fix xbps-query cmd.
Signed-off-by: Juan RP <xtraeme@gmail.com>
2019-06-15 16:34:08 +02:00
Duncaen
260d21877f tests/xbps-checkvers: add --manual mode test 2019-06-13 20:12:05 +02:00
Juan RP
b69a399b52 tests/xbps-checkvers: update tests for new output format.
Signed-off-by: Juan RP <xtraeme@gmail.com>
2019-06-13 20:12:05 +02:00
Juan RP
c3b2d7ca53 libxbps: fix xbps autoupdate when its revdeps are up-to-date.
The current code was failing because while checking for updates
on its reverse dependencies, up-to-date versions were treated
as an error.

Added a new test case to verify that it works as expected.

Signed-off-by: Juan RP <xtraeme@gmail.com>
2019-06-13 14:18:31 +02:00
Juan RP
5913205dcf tests/xbps-alternatives: indent "more_entries_update" test case.
Signed-off-by: Juan RP <xtraeme@gmail.com>
2019-06-11 19:53:19 +02:00
Juan RP
d021698365 tests/xbps-alternatives: new test case that fails.
Contributed by @duncaen.

Signed-off-by: Juan RP <xtraeme@gmail.com>
2019-06-11 19:53:19 +02:00
Juan RP
72c66530c7 tests/xbps-alternatives: new test case, fixes for others.
New test case from @duncaen, fails currently.

Fixes for other test cases.

Signed-off-by: Juan RP <xtraeme@gmail.com>
2019-06-11 19:53:19 +02:00
Juan RP
6204bc25f6 tests/xbps-alternatives: rename test to "remove_current_provider".
Also use -r in xbps-alternatives, by @duncaen.
2019-06-11 19:53:19 +02:00
Juan RP
5af8067973 tests/xbps-alternatives: add a new test.
This new test case checks that provider fallbacks to the first one
when the current provider is removed.

The test fails currently.
2019-06-11 19:53:19 +02:00
Johannes Brechtmann
77b90951ea test: fix typo in remove_directoy and move to right place 2019-06-07 20:13:39 +02:00
Juan RP
dc65f62ad7 tests/remove_symlinks_dangling: fix test, noticed by @jnbr.
Somehow I confused the test case name.
2019-06-07 20:13:24 +02:00
Juan RP
9e2c00ee8b libxbps: remove dangling symlinks properly.
This fixes removal of packages that contain multiple levels
of dangling symlinks, i.e faenza-icon-theme and probably others.

Close #23
2019-06-07 20:13:24 +02:00
Duncaen
121d0fbb64 tests: add test for removing package with ignored dependency 2019-06-02 18:24:03 +02:00
Duncaen
3533af846f tests: add tests for absolute configuration include 2019-05-22 15:05:45 +02:00
Duncaen
85bf13f138 lib: move conf parsing to lib/conf.c and refactor to not rely on getcwd/chdir
This fixes https://github.com/voidlinux/xbps/issues/158
2019-05-22 13:22:10 +02:00
Johannes Brechtmann
fa5911bb00 tests: test for removal of nested directories 2019-05-16 11:04:48 +02:00
Juan RP
208573d368 tests: install_and_update_revdeps: improve to catch more cases. 2019-05-14 23:34:53 +02:00
Juan RP
108a165534 libxbps: try to update revdeps when installing or updating pkgs.
This fixes the cases where a pkg installation or update
could break its revdeps due to not satisfying dependencies.

When performing an install or update, xbps now always checks if
there are updates for its revdeps and get added to the transaction.

See the two new test cases for more information.
2019-05-14 23:34:53 +02:00
Duncaen
4162ec2bd6 tests: add test for useless alternative switch on package removal 2019-04-22 14:51:32 +02:00
Juan RP
ffed6ff707 tests/shell/incorrect_deps: get rif of an unnecessary line.
Closes: #81 [via git-merge-pr]
2019-04-22 14:51:13 +02:00
Juan RP
6fe9a05d93 tests: improve previous (dupdeps). 2019-04-22 14:51:13 +02:00
Juan RP
c658e41747 fulldeptree: make sure there are no dups.
Added a test case to verify that dup deps are discarded
completely.
2019-04-22 14:51:13 +02:00
Duncaen
a65630df03 tests: fix ingorepkg tests 2019-04-20 11:53:06 +02:00
human
66524481b2 tests: update test for setting one altenatives group
Closes: #47 [via git-merge-pr]
2019-04-20 11:10:34 +02:00
Duncaen
ea2cb1d369 unpack: keep conf_files replaced with symlinks, unpack as .new-pkgver 2019-04-20 10:56:08 +02:00
Duncaen
2ad2659d4c tests: disable failing test 2019-04-20 10:54:51 +02:00
Duncaen
4999f3f2fc tests: add xbps-install update test (replace directory with symlink) 2019-04-20 10:46:59 +02:00
Duncaen
d1667fd931 Add the ability to ignore packages
The previous idea was to use virtual packages in the users configuration
to satisfy dependencies by mapping them to existing installed packages.
Using virtual packages for it doesn't work as expected and trying to make
it work would break other functionalities of virtual packages, like the
version satisfaction checks for `provides` and the ability to replace
virtual packages with real packages. The virtual package functionality
should be used exclusively for virtual packages.

This allows users to specify packages packages that should be ignored.
Ignored packages in dependencies are always satisfied without installing
the package, while updating or installing a package that depends on an
ignored package.

This does NOT ignore the shlib checks, ignoring a package that provides
required shared libraries will abort the transaction as if there was no
package that provides the required shared library.
2019-04-19 23:07:59 +02:00
Juan RP
291faddf8c xbps now also updates revdeps of itself if there's an update.
Close https://github.com/void-linux/xbps/issues/77

Closes: #78 [via git-merge-pr]
2019-04-19 22:57:42 +02:00
Juan RP
580a5ba29b xbps_get_pkg_fulldeptree(): fix all known bugs and make it 50x faster.
faster: use a hash table with pkg names on the transaction dict,
 the process of collecting and sorting is now 50x faster or
 even more (kde5).

bugs: this now detects cyclic deps and returns with an appropropiate
 return value: ELOOP and ENOENT in xbps-query(1) --fulldeptree.
 Ping me if you need more details :-)

Close https://github.com/void-linux/xbps/issues/16
Close https://github.com/void-linux/xbps/issues/5
2019-04-19 22:57:42 +02:00
Duncaen
25427fca7d tests: xbps-create with fifo in destdir 2019-04-14 12:37:24 +02:00
Duncaen
4e267de72d tests: fix downgrade hold test 2019-04-14 12:08:49 +02:00
Duncaen
53e6f5c75f tests: add downgrade hold test 2019-04-14 11:53:07 +02:00
Cameron Nemo
31737ff946 tests/xbps/libxbps/config: safer string handling
Closes: #61 [via git-merge-pr]
2019-03-22 19:14:08 +01:00
Duncaen
d41cafbe52 tests: add test for shlib-provides with replaces 2019-03-22 19:14:08 +01:00