Commit Graph

487 Commits (99010588913344cf037aa163a47acd469fff5594)

Author SHA1 Message Date
Timo Teras 9567337fd2 fetch: new applet to download .apk files
Fixes #24.
2009-04-15 09:56:09 +03:00
Timo Teras a23f6f4afb state: rework changeset calculation algorithm
Calculate changesets directly by stabilizating the package graph instead of
recalculating the whole graph and then diffing (similar approach as seen
in 'smart' package manager). The algorithm is not complete: defferred
search space forking is missing. So you don't always get a solution on
complex graphs.

Benefits:
- usually the search state tree is smaller (less memory used)
- speed relational to changeset size, not database size (usually faster)
- touch only packages related to users request (can work on partitially
  broken state; upgrades only necessary packages, fixes #7)

Also implemented:
- command prompt to confirm operation if packages are deleted or downgraded
- requesting deletion of package suggests removal of all packages depending
  on the package being removed (you'll get list of packages that also get
  removed if you want package X removed)
- option --simulate to see what would have been done (mainly for testing)
- an untested implementation of versioned dependencies and conflicts

A lot has changed, so expect new bugs too.
2009-04-14 18:48:02 +03:00
Timo Teras 7cef96c30d blob: add strspn helpers 2009-04-14 18:46:35 +03:00
Timo Teras 024480aca0 info: option '-r' to print "required by" info 2009-04-14 09:35:02 +03:00
Timo Teras c11b70c7f0 db: track reverse dependencies
This will be used later by the commit change calculator (for improved
changeset calculation, ref #7). Will be also used by "apk info" to show
reverse dependencies or "required by" information.
2009-04-14 09:21:30 +03:00
Timo Teras f4210298ad build: use version from git describe if available 2009-04-14 08:56:06 +03:00
Natanael Copa 355626171d version: avoid end up in endless loop if we compare 2 equal invalid versions
fixes issue with apk version -t asdf asdf
2009-04-13 09:18:48 +00:00
Natanael Copa 916c396c02 version: allow more digits come after letter
This is so we can handle arpwatch-2.1a15
This makes us not 100% compatible with Gentoo
2009-04-13 09:13:09 +00:00
Natanael Copa 01a028cc2f version: allow token letter after digit_or_zero
Otherwise we only allow letters after first digit, i.e 2a, 2b but not
2.2a, 2.2b etc.
2009-04-13 08:37:25 +00:00
Natanael Copa d9879b72d5 version: allow only TOKEN_LETTER after a digit 2009-04-03 21:42:15 +02:00
Natanael Copa 8fb4f6d17c ver: added --check/-c option to vaildate given version string 2009-04-03 21:40:53 +02:00
Natanael Copa 5381425012 ver: test given version strings with -t or --test 2009-04-03 19:53:44 +02:00
Natanael Copa 6e10456967 search: use fnmatch so we have support for wildcards 2009-04-03 12:16:12 +00:00
Timo Teras 8d44e8ed5c 2.0_pre10 2009-03-20 12:56:48 +02:00
Timo Teras 207bff6e6c io: implement write cache
speeds up writing of package / file database.
2009-03-17 14:17:35 +02:00
Timo Teras 7735cc644d pkg: write dependencies directly file instead of buffer
So we don't get artificial limits on the amount of dependencies
(fixes #8).
2009-03-17 13:19:06 +02:00
Cameron Banta 57391d1e4c Created search applet 2009-03-07 11:34:37 +02:00
Cameron Banta e93cb1ffe5 Added -o option to apk info to list repository packages 2009-03-06 08:06:08 +02:00
Timo Teras 9b48288831 2.0_pre9 2009-03-04 11:32:47 +02:00
Natanael Copa 2b10123399 db: unlink apk-new if it is identical to existing config 2009-03-04 09:27:59 +00:00
Timo Teras 3752b47e7b db: apk-new should be created if the existing file is modified 2009-03-04 11:08:49 +02:00
Timo Teras 652a7bb179 db: fix overwrite warning 2009-03-04 11:00:17 +02:00
Timo Teras a62dcf37c1 apk: --force to overwrite files 2009-03-04 08:36:56 +02:00
Timo Teras 457943f83e apk: --clean-protected option
So you will not get .apk-new files of the new configuration files.
2009-03-04 08:27:06 +02:00
Timo Teras b75ae58b78 pkg: show warning if deprecated .INSTALL is present in package 2009-02-27 11:32:37 +02:00
Timo Teras 7027a7d844 db: new apk to have separate install scripts for each action 2009-02-27 11:18:15 +02:00
Natanael Copa ca51ec3238 db: allow more than one --repository arg 2009-02-17 12:23:01 +00:00
Natanael Copa 6e55a18269 release 2.0_pre8 2009-02-12 09:50:20 +00:00
Natanael Copa 502e5612cc db: do not allow overwrite busybox links
we let bb use /bin and /sbin, all packages overriding busybox must
install the bins in /usr/bin and /usr/sbin
2009-02-08 19:31:25 +00:00
Natanael Copa 9a1ab8e6fc info: list contents follw same style as list depends
- empty lines comes after not before
- separate pkgname with : when using -v option
2009-02-08 19:22:04 +00:00
Natanael Copa f16b671edc info: implement -R/--depends to show dependencies 2009-02-08 19:08:48 +00:00
Natanael Copa c0166798bf release 2.0_pre7 2009-01-23 07:12:58 +00:00
Timo Teras b8eb27d75b db: fix purging of packages from database
apk_hash_delete() actually deletes the file entry, so unlinking
from other lists need to happen before that. Also free the diri
instead of leaking it.
2009-01-22 21:45:18 +02:00
Natanael Copa 3bcc676a2b db: print files when (un)installing if --verbose 2009-01-22 15:55:27 +00:00
Natanael Copa 75b339cae2 db: always create directories during install
We dont care if a directory have references or not, we care if directory
is relly there.

Only the creator of the direcotry will set the permissions.

This fixes the situation where you install a package owning a dir then
you remove this dir manually and try install a second package also owning
the dir.

For example:

  apk add e2fsprogs-dev
  rm -rf /usr/lib/pkgconfig
  apk add zlib-dev
2009-01-22 10:34:03 +00:00
Natanael Copa dfc8d4ce4c Revert "Revert "pkg: use absolute filenames for packages""
This reverts commit 600f9e7e03.

My bad. This was correct.
2009-01-21 09:59:12 +00:00
Natanael Copa 600f9e7e03 Revert "pkg: use absolute filenames for packages"
This reverts commit 46430ceb56.
The problem this was suppoed to fix was fixed by letting apk_db_open()
return with same working dir.
2009-01-21 09:04:31 +00:00
Natanael Copa 02073e84d6 db: let apk_db_open() leave working dir as it was 2009-01-21 09:03:10 +00:00
Natanael Copa 8a07b7fc72 release 2.0_pre6 2009-01-20 14:10:29 +00:00
Natanael Copa 6078d305f4 info: don't print package name unless its installed 2009-01-20 13:26:06 +00:00
Natanael Copa 20d242a4bd info: list contents with -L 2009-01-20 13:04:17 +00:00
Timo Teras 46430ceb56 pkg: use absolute filenames for packages 2009-01-20 14:30:07 +02:00
Timo Teras aee61d0a0b db: try creating db if locking fails
Otherwise creating rootfs from scratch with --initdb cannot be locked
due to the lock file path missing.
2009-01-19 21:19:36 +02:00
Natanael Copa 93cdb993a1 release 2.0_pre5 2009-01-18 14:51:08 +00:00
Natanael Copa 57407ed4e9 db: create .apk-new even if file not in db
Protect files in protected dirs even if the file is not previously
registered in the database. We do so by always extracting to a
.apk-new file name, compare the checksums afterwards and rename if
file was identical.
2009-01-18 14:49:18 +01:00
Timo Teras 4d5efe6a05 archive: utimes modifies file, not link so don't use it for symlinks 2009-01-17 13:34:18 +02:00
Timo Teras 0365f7462b archive: preserve mtime on extraction 2009-01-17 11:42:15 +02:00
Timo Teras a98b57b1ae db: database locking and creation to part of opening it
Add flags field to db open call. Also make error reporting quite a bit
more detailed.
2009-01-17 11:08:48 +02:00
Natanael Copa 24b424a458 apk: added option --version/-V
Both variants should work:
 apk --version
 apk <applet> --version
2009-01-17 08:51:52 +00:00
Natanael Copa f88f8205a7 archive: set suid bit after chown if needed
chown will reset the suid bit so we need to set it again.
2009-01-17 08:06:23 +00:00