Commit Graph

286 Commits

Author SHA1 Message Date
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
Duncaen
d7c2e87d55 tests: make tests POSIX shell compatible 2019-03-22 19:14:08 +01:00
Enno Boland
219f6c2310 xbps-rindex: add test to trigger stage deadlock 2018-06-28 13:30:14 +02:00
Duncaen
dd7a0d073b lib/package_alternatives.c: remove previous symlinks 2016-09-05 02:03:30 +02:00
Enno Boland
3a067f2e20 tests: check if empty stage correctly gets removed 2016-03-22 09:47:25 +01:00
Enno Boland
b9ce711848 tests: add tests to ensure that packages in stage are not removed 2016-03-21 11:23:48 +01:00
Enno Boland
abde080ac1 tests: add test for staged packages 2016-03-21 08:31:18 +01:00
Enno Boland
5b66679929 tests: xbps-rindex add missing atf_test_case 2016-03-20 21:36:30 +01:00
Juan RP
067687ce28 libxbps: ignore updates for pkgs with held deps. Close #143 2016-02-06 09:03:54 +01:00
Juan RP
b759ca4b07 xbps-install(1): do not exit if pkg is up-to-date in dry-run mode.
Close #145
2016-02-05 11:27:40 +01:00
Juan RP
0fa676f50c tests/libxbps/update_hold: fix previous. 2016-02-05 11:27:07 +01:00
Juan RP
d211825a18 tests: move and rename on hold test to the correct file. 2016-02-05 11:14:18 +01:00
Juan RP
bd00a0b096 tests: comment out the cyclic_dep_full test for now. 2016-02-04 10:41:10 +01:00
Juan RP
ccc4b3ccf0 tests: cyclic_deps/cyclic_dep_full: set timeout to 5. 2016-02-04 10:38:58 +01:00
Juan RP
377ec33ecf tests/xbps-install: #143 has not yet been resolved; mark as known bug for now. 2016-02-02 11:08:05 +01:00
yupi2
099d11a448 tests: reproducible segfault 2016-01-02 13:47:38 -06:00
Enno Boland
4e7cc1fb39 tests: fixing a wrong return value. 2016-01-02 18:29:09 +01:00
Enno Boland
35e4f31234 tests: fix test as it was failing for the wrong reason. 2016-01-02 18:21:26 +01:00
Enno Boland
87b9c2e099 tests: add test case for issue #143
Segfault when attempting to install a package on hold
2016-01-02 17:43:58 +01:00
Juan RP
93b50bc4dc alternatives: preserve order while updating pkgs (thanks chris2/duncaen). 2015-11-17 16:32:12 +01:00
Juan RP
b3c7d27c6b alternatives: fix creation of symlinks with unexistent dirs.
If an alternative needs to create /usr/bin/foo, and /usr/bin
does not exist, this directory must be created prior to create
the symlink.
2015-11-14 07:26:27 +01:00
Juan RP
2202482e0e conflicts: really fix the issue with on hold pkgs and update test case. 2015-11-12 13:23:00 +01:00
Juan RP
784e43d876 conflicts: do not take into account conflicts for on hold pkgs. 2015-11-12 12:24:33 +01:00
Juan RP
0cf4a2c0c0 conflicts: another bugfix + test case. 2015-11-10 15:36:25 +01:00
Enno Boland
635db51c27 lib/package_alternatives.c: always use relative symlinks in alternatives
This commit adds relative link support to lib/package_alternatives.c.
Instead of creating absolute links, xbps will create relative links
to the target. This allows to follow links on systems even if the
aren't mounted on /.
2015-11-07 08:40:57 +01:00
Juan RP
9b0cde3267 xbps-alternatives: dangling symlinks are now supported. 2015-11-02 21:02:37 +01:00
Joey Gouly
b4ef9954e7 Fix #120 by stripping comments from the end of lines.
The debug printing is also moved after variable substitution.
Now it prints:
  foo/template: _var foo
  foo/template: pkgname foo

It used to print:
  foo/template: _var foo
  foo/template: pkgname ${_var}
2015-10-31 16:49:55 +00:00
Juan RP
512122da4c alternatives: really make relative symlinks this time. 2015-10-31 14:01:20 +01:00
Juan RP
e3a0164355 tests/xbps-alternatives: extend register_one_relative test case. 2015-10-31 13:08:13 +01:00
Joey Gouly
b06ce15136 Allow relative symlinks in xbps-alternatives. 2015-10-31 11:54:01 +00:00
Juan RP
59a8d3d20e alternatives: skip dup alternative groups. 2015-10-31 11:47:58 +01:00
Juan RP
cb857dfc27 Alternatives framework for xbps (2/2).
See xbps-alternatives(1) for more information.

Thanks to all who helped to design this and for fixing grammar in
the manual page.
2015-10-30 12:24:46 +01:00
Juan RP
03f8cad872 tests/libxbps/conflicts: add 4 new tests cases. 2015-10-29 08:43:59 +01:00
Juan RP
a13a7fa896 Implemented reverse conflicts for pkgs in pkgdb and transaction. 2015-10-28 05:23:42 +01:00
Juan RP
4de397c5a2 tests: add two test cases for xbps-checkvers(1); #120 remains unfixed. 2015-10-21 09:29:45 +02:00
Juan RP
e16ca06d5b tests/xbps/libxbps/shell/cyclic_deps.sh: use atf_expect_death instead. 2015-10-21 09:29:21 +02:00
Juan RP
24af8cde9b xbps-install(1): implement #109.
-n/--dry-run mode now prints "installed_size" obj as 5th argument,
and "filename-size" as 6th argument (if available).

Close #109
2015-10-19 19:02:26 +02:00
Juan RP
103caf0694 libxbps: extend the fix for #116 even more for the expected case.
This now catches both test cases correctly.
2015-10-19 18:19:24 +02:00
Juan RP
b069eb14ae libxbps: fixed issue #116 (vpkg does not replace pkg with update in trans).
Thanks to @dominikh for the test case.
2015-10-19 18:01:43 +02:00
Juan RP
782ec10111 xbps-create(1): timestamps of metadata files are now set to epoch.
Thanks to @Gottox for finding the real issue.
2015-09-03 11:12:49 +02:00
Juan RP
0d5385ad2b xbps-checkvers: fixed an endless loop with "reverts" containing extra alphanumeric chars. 2015-07-27 09:44:25 +02:00
Juan RP
22ffc14026 Override and use a sane umask when performing pkg configuration.
Close #106
2015-06-28 05:14:02 +02:00
Juan RP
c5d6556c50 xbps-remove: fix #95 (xbps-remove -R pkg lists/removes orphans) 2015-05-06 17:21:13 +02:00
Juan RP
68a8b8543d tests: new tests to verify xbps autoupdating itself. 2015-03-29 09:57:37 +02:00
Juan RP
bb4ebf8152 tests: add test case when installing a pkg with unresolved circular deps. 2015-03-21 11:48:26 +01:00
Juan RP
dc47dfd593 xbps_get_pkg_fulldeptree: detect pkgs depending on itself via virtual pkgs.
Reported by Duncan Overbrook.

Update NEWS with recent changes.
2015-03-20 08:03:06 +01:00
Juan RP
441f147f05 Fix reinstallation of pkgs in repolock mode.
At the time we've been searching for the pkg in a repo, no repos
were registered resulting in EINVAL. While here, if there's no
declared repos return ENOENT instead.
2015-03-05 21:23:58 +01:00
Juan RP
7bff8aa350 tests/update_repolock: fix repo order and use readlink -f to fix travis-ci. 2015-03-03 12:57:49 +01:00
Juan RP
4922c808f4 Implemented feature #77 (Add package repository locked mode)
Close #77
2015-03-03 12:11:28 +01:00
Juan RP
976718417b libxbps: remove "skip-obsoletes" handling; unnecessary with the mtime checks. 2015-02-26 19:51:03 +01:00
Juan RP
b6b446d32e libxbps: properly detect obsolete files with files being between pkgs.
120 test cases now successfully pass, and all known issues about
pkg updates that move files between them should be gone (hopefully).
2015-02-26 19:37:46 +01:00
Juan RP
8de52caa2f tests: two more test cases to verify moving files between pkgs.
There are now 2 broken test cases thanks to the fixed xbps-pkgdb(8).
2015-02-26 12:02:06 +01:00
Juan RP
7c52471ff6 tests: add test case to verify pkg file timestamps are updated correctly. 2015-02-26 10:40:15 +01:00
Juan RP
ae8ce64542 Restore pkg file timestamps while unpacking as regular user.
Requested by @dominikh.
2015-02-21 16:52:27 +01:00
Juan RP
a05e039cce Revert "Stop converting relative symlinks to absolute."
This reverts commit 9ae3638429.

This change is ok, but cannot be used right now because all existing
binpkgs were created with an old xbps-create(8).
2015-02-19 11:11:58 +01:00
Juan RP
9ae3638429 Stop converting relative symlinks to absolute.
There's no reason to make them absolute, simply store in the metadata
the target file as is. This vastly simplifies the code and makes all
test pass correctly.
2015-02-19 11:04:34 +01:00
Juan RP
69e3a50e75 xbps-create: handle correctly another case of relative symlinks. 2015-02-19 09:44:09 +01:00
Juan RP
45f624eae2 tests: another test case to verify removal of dangling symlinks. 2015-02-18 16:46:45 +01:00
Juan RP
c4acbbe698 tests: more test cases to verify removal of symlinks. 2015-02-18 16:10:08 +01:00
Juan RP
3c34c300d1 xbps-create(8): record target file or relative symlinks correctly. 2015-02-18 14:55:54 +01:00
Juan RP
1403826fa6 libxbps: detect and remove properly symlinks with relative targets.
Close #78
2015-02-17 11:59:05 +01:00
Juan RP
38e71e8e1c xbps-checkvers: more fixes and new test cases.
- This now checks for vars that have refs to other vars:

	pkgname=${_myvar}

- This now checks for unwanted garbage before assignment:

	. ./source/file
	pkgname=${_myvar}

- Misc tweaks to use my coding style.
2015-02-17 10:20:59 +01:00