Commit Graph

89 Commits (cute-signatures)

Author SHA1 Message Date
Timo Teräs e4dc2373d6 solver: do not auto select virtual-only package with one provider
This reverts most of 0dcbd933 which allowed automatic selection
of package with a "virtual provides" having only one provider.
While convenient, it creates problems if multiple versions of the
same package exist, or if in future other providers would be added
to one of the repositories. This restore the original behaviour,
and improve the error message to tell the user to mention one of
the providers explicitly.

fixes #10810
2022-02-24 14:18:41 +02:00
Timo Teräs 50ab589e9a version: increase number of digits supported in version component
Report also version numbers as invalid if there's more than 18
digits.

fixes #10774
2021-10-25 13:30:40 +03:00
Alex Xu (Hello71) a278d11287 test: improve posix sh compatibility 2021-09-03 15:02:12 +03:00
Alex Xu (Hello71) bd15683670 add: warn when creating empty virtual packages
see https://gitlab.alpinelinux.org/alpine/aports/-/issues/11736

[TT: minor stylistic change]
2021-09-03 13:24:39 +03:00
Timo Teräs 7167bc9e7b solver: don't consider requirer count for preference
The original intent was to choose packages to which there is most
dependencies. However, since the code has evolved this is has been
mostly obsolete. And in fact now interferes with the provides and
provides priority mechanism. Remove this as obsolete.

Fixes #10742
2021-05-19 16:29:55 +03:00
Olliver Schinagl f6656f9d8e io: Handle really long lines
While commit 18b0b45 (io: Handle long lines, Thu Jan 7 17:25:23 2021
+0100) did attempt to address this issue, the buffer really is still to
small when dealing with big-big dependency lists.

Lets make it sufficiently large for now, until the new APKINDEX format
can support multi-line dependencies, making this not needed any more.

[TT: Originally the buffer size was conservative to run on resource
constrained embedded platforms. But since the available memory on those
has also increased much, the adjustment to 128kB makes sense also to
increase performance a little bit. Removing also the iolimit test.]

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2021-02-04 21:45:58 +02:00
thibault.ferrante 7a3e8f4214 database.c: Fixed package DESCRIPTION parsing
Regression introduced by 0fb0d30 which makes parsing a description
a critical failure.

[TT: Minor stylistic change. Fix also missing final line change
from the earlier commit]
2021-01-14 16:19:26 +02:00
thibault.ferrante 0fb0d30477 database: Propagate errors when loading an APKINDEX
In case of failure when loading an APKINDEX, no errors are
propagated to the user which may uncorrectly interpret the
current problem.
2021-01-11 11:26:49 +02:00
Timo Teräs 354713d2f7 rename apk_db_options to apk_ctx, rework logging
makes apk_verbosity non-global

fixes #10682
2020-10-09 16:09:19 +03:00
Timo Teräs 8a794021c4 commit: rephrase the error messages more understandable
fixes #10703
2020-10-03 13:58:30 +03:00
Timo Teräs c538509a2a Implement upgrade --prune to remove stale world dependencies 2020-09-28 17:38:07 +03:00
Ariadne Conill 82de29cf7b test: add test for granular upgrade 2020-07-30 11:42:17 +03:00
Jakub Jirutka 63dceba116 fix test6.sh - linux-vanilla was renamed to linux-lts in v3.11 2020-02-23 18:01:43 +01:00
Timo Teräs 4cd4d28710 remove tests connected to help output validation
The help has been moved to man pages now.
2020-01-26 11:55:51 +02:00
nrybowski 695a2f8231 upgrade: implement --ignore to exclude some packages from upgrade 2019-12-12 13:47:11 +02:00
Max Rees 800488a1ef add: always use UTC for virtual package versions 2019-11-18 16:46:57 +01:00
Timo Teräs 4494d5450f reset TZ when running solver tests as some output has local time
Fixes commits 37fbafcd and 1c47f374.
2019-06-05 10:10:17 +03:00
Timo Teräs 366d0ee371 print usage and exit with error on invalid arguments
Add also some testing to make sure help, long help and handling
of invalid arguments works as expected.

Based on pull request #19 originally by Laurent Arnoud (@spk).
2019-06-05 09:56:13 +03:00
Timo Teräs 1c47f37443 use fixed system time in test mode to have fixed test output
fixes test suite regression from previous commit
2019-06-03 16:19:17 +03:00
Timo Teräs 59271f8c13 print: don't print spurious newlines 2018-11-02 15:40:45 +02:00
William Pitcock 0dcbd933c8 solver: allow names with only one provider to be autoselected regardless of priority 2018-02-21 15:35:53 +00:00
William Pitcock fa762cd476 tests: make sure adding a pinning to a child dependency fails 2018-02-20 22:22:52 +00:00
William Pitcock 900548db0e test: fix test6 testcase 2018-01-29 00:10:35 +00:00
Timo Teräs 667cb6bca7 commit: properly analyze packages with provides="$pkgname" 2018-01-02 15:45:21 +02:00
William Pitcock 2a161588fb test: add test to ensure a provider that is already satisfied doesn't get swapped 2018-01-02 04:43:53 +00:00
William Pitcock 467ba0cee0 test: add testcases to ensure provider collisions generate an error 2018-01-02 04:42:43 +00:00
Timo Teräs 8e7fd3e06f solver: fix potential install_if processing failure, fixes #8237
In discovery phase, there was logic to not process packages
multiple times. However, that logic failed to account the package's
depth and install_if state for the name being processed. This
caused install_if processing failure in certain topologies of the
dependency graph. Adds also a test case that should catch this
issue reliably.
2017-12-12 15:16:52 +02:00
William Pitcock 20ae27c1da solver: prefer highest requirer count above installed status
This ensures a swap is emitted when replacing a virtual with
apk add.
2017-11-02 17:15:00 +00:00
William Pitcock 0a17a648db solver: only select a default if there is at least one provider with a declared provider_priority 2017-11-02 16:31:50 +00:00
William Pitcock f18c708183 solver: implement support for choosing default virtuals
By introducing a new package metadata field, `provider_priority`
(index letter `k`), we can specify default packages to satisfy a
virtual.

If a user wishes to select an alternative provider for the virtual,
a changeset swapping the default provider for the selected provider
will be generated by the dependency resolver.
2017-11-02 03:08:24 +00:00
Jakub Jirutka f5872a74e8 test: modernize testing APKBUILDs 2017-06-11 12:49:00 +02:00
Jakub Jirutka fd8d3738fe test: fix test4.sh, script failure is non-fatal
This behaviour has been changed in: 7d5cd2c8a0.
2017-06-11 12:27:00 +02:00
Jakub Jirutka 4d1934f69b test: fix running root-tests with QEMU user-mode emulation
Variable QEMU_EMULATOR is set by enter-chroot script from
alpine-chroot-install.
2017-06-11 12:14:41 +02:00
Jakub Jirutka 73423fc182 test: run test*.sh with set -x 2017-06-11 12:14:41 +02:00
Jakub Jirutka 12c71704d0 test: fix test6.sh, vmlinuz and initramfs are not symlinks 2017-06-11 12:14:41 +02:00
Jakub Jirutka 419e51638c test: fix test6.sh, replace linux-grsec w/ linux-vanilla, add alpine-keys 2017-06-11 12:14:41 +02:00
Jakub Jirutka 69c343afb9 test: exit with non-zero status when some root-test fail 2017-06-11 12:14:41 +02:00
Jakub Jirutka d6ef8fbe23 test: print output log when test fail 2017-06-11 12:14:40 +02:00
Jakub Jirutka dfe395e8fa test: fix invalid SYSREPO with http://nl.a.o 2017-06-11 12:14:40 +02:00
Jakub Jirutka 9b0359f69a test: fix target $(repos), APKINDEX is now generated by abuild 2017-06-11 12:14:40 +02:00
Jakub Jirutka e7c89a1433 test: fix target $(repos), PKGDEST is no longer supported 2017-06-11 12:14:40 +02:00
Jakub Jirutka b9271ca2a9 test: fix missing "arch" in testing APKBUILDs 2017-06-11 12:14:40 +02:00
Timo Teräs 9b827d9d41 test: add test for bug fixed in commit ba7b50c0 2017-04-28 17:44:57 +03:00
Timo Teräs ac0a9659d1 upgrade: improve self upgrade functionality a bit
trigger it only if apk-tools can be upgrade, add test cases
2016-07-22 11:13:33 +03:00
Timo Teräs cab03b6912 sort world dependencies alphabetically
this makes 'lbu diff' and aaudit diffs nice when a world
dependency is added or removed. sorting also makes the ordering
more deterministic as the world targets constraints are always
applied in the same order. test suite updated accordingly.
2015-01-30 15:53:11 +02:00
Timo Teräs e0f9b0897b solver: enforce conflicts during upgrades and new pkg installs
This makes sure any conflicted packages will be removed first.
Useful if we know there are conflicting files, and want to avoid
adding potentially harmful replaces line. Add a test case for
this too.
2014-10-06 16:30:09 +03:00
Timo Teräs 1dc70477b5 solver: fix installation of non-repository packages during tmpfs boot
allow packages in the cache's installed to be selected for installation
by the solver. add test case for the issue.
2014-05-19 11:50:10 +03:00
Timo Teräs 7e64edfad6 test: improve loading of repositories, fix broken install-if test 2014-05-19 11:48:36 +03:00
Timo Teräs 2c4f6bb503 del: allow deletion of world dependency when it is not installed
this happens e.g. after tmpfs boot when not all packages where
available: the dependency is in world, but not installed.
2014-05-19 08:49:55 +03:00
Timo Teräs 462bb3b8d3 solver: if pinning is specified, it overrides preferred repos
add also a test case for this
2013-09-06 14:21:59 +03:00