Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Since 37fbafcd928c466c82c892a7868d686d710e5d07 the tests hasn't worked
since a string on the stack was added as version for a virtual package.
Instead create the version string on the heap and then simply leak it.
A short running program as apk shouldn't need to worry about memory
leaks.
|
|
Fixes 37fbafcd by adding more input to the hash than just second
grained time stamp - collisions would happen when running apk
scripted.
For virtual package the hash works only as unique identifier, so
try to add elements that should make it unique in most cases.
Fixes #10648
|
|
fixes test suite regression from previous commit
|
|
Originally the virtual packages could have dependencies added to it.
However, commit b06e3b99 broke this behaviour to fix error reporting.
The root cause however was that the virtual depedency package was not
properly versioned.
This fixes to use current date/time as the package version, and
constructs the "faked" package hash from it. This effectively makes
"add -t virtpkg deps.." replace the dependencies which should be the
desired behaviour for "abuild deps".
'world' dependency to the generated virtual package is also now
versioned to make sure it get's upgraded.
|
|
Move addition of virtual package after the dependencies have been parsed
as then the reverse dependency structers can be populated correctly.
|
|
|
|
|
|
|
|
This unloads --force as several of the things are really not wanted
together. E.g. --force-refresh is a lot different from --force-broken-world
and doing --force to get the other might introduce unwanted behaviour.
--force is still kept for backwards compatibility and it enables
most things --force was used for.
|
|
This is useful for requirements such as: python3=~3.6, which would match python3-3.6.[0-9].
This implementation should in theory be backwards compatible with the implementation in Adelie.
|
|
the allows update-kernel script to work on tmpfs install before
cache is configured.
|
|
Add also a new 'commit' group that is the common options
for all applets that can commit package changes.
|
|
Acked-by: Natanael Copa <ncopa@alpinelinux.org>
|
|
Acked-by: Natanael Copa <ncopa@alpinelinux.org>
|
|
|
|
|
|
make cache a special kind of repository, and automatically cache
special packages (virtual packages, or ones installed from command
line). add test cases for handling virtual packages. fixes #1617.
|
|
Solver will now never report partial solution where a conflict
constraint is not satisfied. The is because with --force we might
install the partial solution; and if conflicted packages were to
be installed we might have extra trouble.
|
|
|
|
* solver internally calculates now using tags; not repository masks
* installeddb now contains the tag name where the package came from
-> we can now handle upgrades properly
* the pinning is still a preference, and not strictly enforced;
versioned dependencies may overrule preference
|
|
* upgrade needs explicit check so we don't try self-upgrade
(which would print additional messages on screen)
* add can fix problems, so check against the new world
* merge the code in few places
|
|
Previously we would not upgrade just by doing "apk add foo@tag" if
foo was already installed. It required explicit '-u'. This allows
'apk add' to explicitly prefer the newly specified pinning.
|
|
* default writing the world with spaces if a space is found
(for backwards compatibility) for now
|
|
|
|
|
|
"replaces" is now turned to a full dependency type list, so you can
make package overwrite files only certain versions of the package
(though, we should probably take this into account already at solution
calculation phase).
Also make 'info --replaces' print the "replaces" of the package.
This is in preparation for the policy package support, which still
requires "replacement priority" field to decide which packages' files
get the preference.
|
|
allow per-name solver flags to be inheritable, and use them in
self-upgrade, add -u and the fix applet. this gives more familiar
behaviour for the upgrades.
|
|
|
|
|
|
still todo:
- 'fix' is missing
- 'del -R' does not work
- 'upgrade' does not do self-upgrade first
... and a lot of testing.
|
|
The db parameter to apk_state_commit is not needed so we remove it.
|
|
Packages without architecture should get the platforms default
architecture (so we are backwards compatible). Only the virtual
packages should get 'noarch' by default. Also print full path
to the index file which failed.
|
|
- implement a hash table for commonly shared fields such as
license, version and architecture
- use macroes to print blobs or pkgname-pkgver strings
- fix some old cruft
|
|
|
|
Print more information why installation changeset calculation failed.
Fixes #187.
|
|
We want see all packages that fails to install and not only the first
|
|
- make virtual packages work again
- make apk del (for non-empty packages) work again
|
|
allow also overriding old (possibly bad) world dependency.
hopefully it's more bullet proof now.
|
|
|
|
otherwise old world deps are used and unintended results will
happen.
|
|
|
|
so user can override trusted keys directory and repositories file.
|
|
previously they might have been skipped on certain situations.
this also fixes some other reverse dependency enforcements and
implements new "pending" state for locked name.
|
|
this way we never change cwd, and relative filenames are always
parsed consistently. this also helps filename construction in many
places. this patch also changes '--root' to override location of
all configuration to be in the new root. previously it depended
on the file which one was used.
|
|
|
|
use the package 'installed_size' == 0 as a test instead for
dependency only packages.
|
|
this enables virtual packages and files specified from command
line to work on non-harddisk installs.
|
|
fixes verification of non-repository packages while installing
them. this is final thing needed for full signing support
(fixes #46).
|
|
make sure cache is enabled on non-permanent rootfs setups.
some optimizations and fixes too.
|