Timo Teräs
3e8dc3da09
db: properly detect when pkg install trigger needs executing
...
call apk_pkg_install() and hlist_tail_ptr() only once. the latter
is O(n) and can get very slow.
2012-01-06 10:35:04 +02:00
Timo Teräs
bbc31806b9
common: fix apk_array copying, and additional size_t fixes
2012-01-06 10:25:28 +02:00
Timo Teräs
a80cdfe95b
apk-tools-2.2.2
2011-12-27 14:09:23 +02:00
Timo Teräs
34756e6b87
solver: report number of (mega)bytes used
2011-12-27 14:06:03 +02:00
Timo Teräs
83b098d357
update: report number of distinct packages available
2011-12-27 14:05:49 +02:00
Timo Teräs
415e41a072
info: -e and -W operate on database only (repos not needed)
...
.. so do not load them.
2011-12-24 15:52:35 +02:00
Timo Teräs
d80536b750
solver: fix error detection for certain unsatisfiability cases
...
did not properly detect as error if name could not be satisfied
due to being available in tagged repository which is not enabled.
2011-11-23 14:35:54 +02:00
Timo Teräs
49c06a6f10
apk-tools-2.2.1
2011-11-01 14:49:57 +02:00
Timo Teräs
716ee9e223
solver: fix zero score comparison
2011-11-01 14:44:39 +02:00
Timo Teräs
1aa962dbae
apk-tools-2.2.0
2011-11-01 14:20:35 +02:00
Timo Teräs
078e8b00d8
solver: return changeset even for partial solutions
...
otherwise --force does might not work during boot.
2011-11-01 08:40:50 +02:00
Timo Teräs
f13ec9cf5e
solver: consider world dependencies to determining exit score
2011-11-01 08:29:24 +02:00
Timo Teräs
e36e99f31d
cache: fix download
2011-10-31 20:47:52 +02:00
Timo Teräs
f41cb48fed
apk-tools-2.2.0_rc1
2011-10-31 16:55:41 +02:00
Timo Teräs
918807c45b
solver: misc fixes
...
caused upgrading package X with "apk add path/to/x...apk" where
the package file was not in any repository to not work properly.
2011-10-31 16:51:53 +02:00
Timo Teräs
cb5054e686
solver: fix indentation of package lists (in interactive mode)
...
broken in commit bfd53b59d2
(print: minor cleanup to indented writer).
2011-10-29 23:43:50 +03:00
Timo Teräs
500f8d4a7d
solver, db: implement repository pinning
...
Improves /etc/apk/repositories format so you can say:
http://nl.alpinelinux.org/alpine/v2.3/main
@edge http://nl.alpinelinux.org/alpine/edge/main
@testing http://nl.alpinelinux.org/alpine/edge/testing
After which you can pin dependencies to these tags using:
apk add stableapp newapp@edge bleedingapp@testing
Apk will now by default only use the untagged repositories,
but adding a tag to specific dependency:
1. will prefer that tag for the name
2. allowing pulling in dependencies from that tag (though,
it prefers untagged packages to satisfy deps if possible)
fixes #575
2011-10-29 05:18:21 +03:00
Timo Teräs
e682e6596c
solver, pkg: implement versioned conflicts
...
One can now say in dependency "!foo<2" which means, that if foo is
installed, it needs to be >=2, but it's not a required dependency.
2011-10-24 10:16:40 -04:00
Natanael Copa
bd0242e1de
lua: adapt to new API
...
Use new apk_blob_pull_dep instead of the old apk_dep_from_blob
2011-10-20 12:46:13 +00:00
Timo Teräs
7622ccf49f
apk-tools-2.2.0_pre1
2011-10-19 22:42:25 -04:00
Timo Teräs
8d4d68d818
pkg: convert struct apk_install_package flags to bitfield
2011-10-19 15:26:55 -04:00
Timo Teräs
89d003f8c2
pkg: introduce "replaces_priority"
...
If two packages replace each other, the one with highes priority
will keep the file. Additionally, if we have a package overriding
another's file it's remembered and handled properly. This is
essentially to allow "policy packages" which just overwrite certain
(configuration) files from other package(s).
2011-10-19 11:38:23 -04:00
Timo Teräs
a787038dbe
pkg, info: remember installed packages "replaces"
...
"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.
2011-10-18 18:11:26 -04:00
Timo Teräs
afd854a3e2
solver: preference scoring
...
Should now choose packages better if the best available version
is uninstallable for some reason.
2011-10-14 21:01:43 +03:00
Timo Teräs
3f098e7d8c
solver: return error code if things fail during package install
2011-09-28 14:04:02 +03:00
Timo Teräs
f76535cb5e
solver: evaluate penalty of unsatisfiable name early
...
this prunes the search tree considerably and fixes a speed
regression introduced in an earlier commit.
2011-09-28 08:39:52 +03:00
Timo Teräs
f4ac687a8a
pkg: fix dependency checking against non-installed packages
...
the solver requires this.
2011-09-27 11:38:16 +03:00
Timo Teräs
012bcbe41c
solver: fix backtracking
...
We need to refresh all name states after backtracking as options
that were excluding due to topology ordering might have become
available.
2011-09-22 13:09:23 +03:00
Natanael Copa
78a372464b
all: fix array size data type on 64 bit
...
The array struct aligned size to 64 bit on x86_64 which caused bad things
to happen.
We use size_t to make sure the size element is correct regardless arch.
Solution found by Timo.
2011-09-20 16:13:20 +02:00
Timo Teräs
51999c97da
solver: inheritable solver flags
...
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.
2011-09-16 17:10:50 +03:00
Timo Teräs
bcd0d45a49
fetch: reimplement -R after solver changes
2011-09-16 14:09:41 +03:00
Natanael Copa
17918f6765
build: fix make install of shared lib and lua module
2011-09-16 07:12:45 +00:00
Natanael Copa
391cd01b41
lua: implement iterator with installed packages
2011-09-15 17:13:08 +00:00
Natanael Copa
9e60a72b92
lua: implement exists/is_installed
...
Tests whether given package string is installed
2011-09-15 17:13:08 +00:00
Natanael Copa
c79302d973
lua: init fixes
...
- call apk_atom_init()
- if no open flag is specified, then default to read-only.
2011-09-15 17:13:08 +00:00
Natanael Copa
08533d74fa
lua: implement who_owns
2011-09-15 17:13:07 +00:00
Natanael Copa
17b1e1aeca
lua: open and close db
2011-09-15 17:13:07 +00:00
Natanael Copa
d7374642c2
lua: initial db_open
...
so far we just parse the db options
2011-09-15 17:13:07 +00:00
Timo Teräs
cca6a7e332
solver: fix sorting when solver is used multiple times within run
...
namely this fixes apk upgrade without --no-self-upgrade when
the solver is called twice.
2011-09-15 09:49:25 +03:00
Natanael Copa
21a213c212
lua: remove unneeded global vars
2011-09-14 14:28:36 +00:00
Natanael Copa
a4f98dd62a
build: tell git to ignore config.mk
2011-09-14 14:20:29 +00:00
Natanael Copa
8e887db746
build: support building lua module without shared libapk
...
Use the build option SHARED_LIBAPK for building shared.
2011-09-14 14:18:23 +00:00
Natanael Copa
3cdee6a406
lua: typecast apk blob len
...
So we can build with -Werror
2011-09-14 14:14:22 +00:00
Timo Teräs
803f55ece5
solver: make state pointers completely internal
...
the only bit of information needed in solver commit is the "hard"
topology sorting information for trigger ordering. fixes a bug in
"apk del" which uses the state pointers to do intermediate
calculations between solution solving and commit.
2011-09-14 16:48:28 +03:00
Timo Teräs
6b1a55825a
apk: remove unneeded global apk_screen_width
2011-09-14 15:39:53 +03:00
Timo Teräs
4803444731
search: implement --exact and --all
...
also optimize search to happen for enumeration of package names.
fixes #39 , fixes #560
2011-09-14 15:26:43 +03:00
Timo Teräs
3197d0f64a
search: implement --origin to print origin package name
...
fixes #714
2011-09-14 11:56:44 +03:00
Timo Teräs
e34d2ed5fd
solver, db: run triggers in dependency order
...
fixes #738
2011-09-14 11:30:35 +03:00
Timo Teräs
f95e7e5850
upgrade: --no-self-upgrade option
...
Use it to avoid self-upgrade loops in case something fails during
the initial upgrade attempt.
2011-09-14 11:07:45 +03:00
Timo Teräs
f51aa6d42d
upgrade: reimplement self-upgrade (after solver merge)
2011-09-14 10:57:51 +03:00