Timo Teras
55b7b89e65
state: auto clean packages
...
Automatically remove packages that are no longer required by a top
level dependency.
2009-04-15 16:05:17 +03:00
Timo Teras
a9b6d18f7f
state: make package deletion safer
...
Refuse to delete explicitly specified top-level packages unless
--force is specified.
2009-04-15 13:20:35 +03:00
Natanael Copa
33da51c596
fetch: close downloaded file. unlink on failure
2009-04-15 10:00:14 +00:00
Timo Teras
ebe43a5e01
state: do not derefence unallocated memory
...
Enforce name_id to be within apk_state allocated area. New apk_name:s
can be created later for e.g. unknown packages requested at command line.
2009-04-15 12:44:24 +03:00
Timo Teras
33c2bc0d1a
state: more uninitialized variables initialized
2009-04-15 12:41:01 +03:00
Natanael Copa
cc1a0187ee
state: style fix, init variable at declaration
2009-04-15 09:38:15 +00:00
Natanael Copa
0c1933a4d6
state: fix bug with uninitialized variable 'latest'
2009-04-15 09:29:00 +00:00
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
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
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
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
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
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
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
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
Timo Teras
1a9cc552a5
del: proper ordering of file db entry deletion
2009-01-17 09:33:02 +02:00
Timo Teras
edfaac3099
db: apk_db_read_state() needs to be before apk_db_add_repository()
...
Otherwise installed db load fails due to internal reasons. This would
cause a lot of other funny stuff happen.
2009-01-16 16:25:19 +02:00
Timo Teras
82b9cb31fd
db: make fetching from other than first repository work
2009-01-16 15:38:04 +02:00
Timo Teras
1b5422fb4a
index: write out only packages specified in command line
...
Ignore /etc/apk/repositories, so additional repositories that depend
on other repositories need to have explicit --repository reference on
command line when generating the index (to avoid warnings).
2009-01-16 15:14:23 +02:00
Timo Teras
6b6c10cdf2
db: fix relative --root to work after apk_db_create call
...
This was broke on --initdb addition to add applet since apk_db_create
changes the working directory.
2009-01-16 14:52:47 +02:00
Timo Teras
3e6fc1389f
add: --upgrade|-u to control if upgrading is preferred or not
2009-01-16 13:59:36 +02:00
Natanael Copa
6354a27888
Makefile: added 'make static' target to build apk.static
2009-01-16 10:10:29 +00:00
Natanael Copa
7a50aa61b2
url: allow wget report error messages
2009-01-16 09:58:27 +00:00
Natanael Copa
d8837aa6f4
apk: fix --root/-p option
2009-01-16 09:57:53 +00:00
Natanael Copa
33cb598bdf
apk: short option for --root is -p
...
Used to be so in the really old days of apk.
2009-01-16 09:44:49 +00:00
Natanael Copa
50daa05773
info: only show package desc when --verbose
...
also introduce apk_verbosity. --quiet reduce verbosity and --verbose
increases it.
Default verbosity is 1.
2009-01-16 09:33:55 +00:00
Natanael Copa
af6f329fc7
db: set the perms to /var/lib/apk/* to 644
...
this allows non-root users to query the database.
2009-01-16 08:17:28 +00:00
Timo Teras
cf3dfb7611
db, hash: fix package purging/upgrading to update filedb properly
2009-01-16 09:33:05 +02:00
Natanael Copa
fed45e4b7f
db: try create root in case it does not exist
...
But we dont bother try create all subdirs (i.e mkdir -p ...)
2009-01-16 07:07:15 +00:00
Timo Teras
cfdef51bee
db: index file location is a URL
2009-01-15 12:55:26 +02:00
Timo Teras
4c7f1e0dec
apk: isalnum() takes only unsigned char values add explicit check for that
2009-01-15 11:10:14 +02:00
Timo Teras
2cfde12c89
audit: new command to check changed files
...
Currently only implement --backup to get list of (config) files in
protected directories to backup.
This also fixes a database corruption bug in database.c.
2009-01-14 19:48:30 +02:00
Timo Teras
15b547c55b
db: keep only filename in file entries, hash by both directory and file
2009-01-14 10:44:47 +02:00
Timo Teras
3309eaa900
add: --initdb to replace create applet
2009-01-13 20:58:08 +02:00
Timo Teras
a59347fdac
db: hash files by name, instead of keep two directory lists
2009-01-13 20:32:18 +02:00
Timo Teras
af8f054560
state: fix again changeset ordering
2009-01-13 20:31:17 +02:00
Timo Teras
b7f9f9bdb2
info: implement who owns packages query (apk_info -W)
...
In quiet mode e.g. "apk info -q -W <file list>" a list of dependencies
suitable for .PKGINFO is output in one line.
2009-01-13 15:22:14 +02:00
Timo Teras
c831ead63c
state: fix generation of change-set to honour dependencies
2009-01-13 15:21:20 +02:00
Timo Teras
3755e1cde3
apk: per applet options
2009-01-13 14:09:45 +02:00
Timo Teras
0a7910c144
state: install packages in dependency order (not reverse)
2009-01-13 11:16:27 +02:00
Timo Teras
ca364e34e2
pkg: use generic blob functions to parse dependencies
2009-01-13 09:32:04 +02:00
Timo Teras
d16b424385
apk: honour --root command line switch
...
Was broken by earlier ROOT environment commit.
2009-01-13 09:31:27 +02:00
Natanael Copa
b8940df6b9
apk: support for ROOT environment variable
2009-01-12 21:03:20 +00:00
Natanael Copa
09385545d9
db, package: new dependency format, second try
...
dependencies are separated with single space rather than ', '.
makes db file slightly easier to parse from a shell script which
might be handy.
2009-01-11 14:03:55 +00:00
Natanael Copa
9423906606
Makefile: build the info applet
2009-01-09 12:04:27 +00:00
Natanael Copa
1f21521684
info: new applet
...
so far it only lists installed packages
2009-01-09 11:02:16 +00:00
Natanael Copa
3867b4c71f
Revert "db: change format for dependencies"
...
This reverts commit b852d670a9
.
2009-01-09 11:00:20 +00:00
Natanael Copa
f54b7bc320
db: report error when create db in non-existing dir
2009-01-09 10:19:23 +00:00
Natanael Copa
b852d670a9
db: change format for dependencies
...
Each dep is separated with a single space. I.E:
D:dep1 dep2 dep3
2009-01-08 13:55:51 +00:00
Natanael Copa
08748b5c3f
db: allow comments and empty lines in repositories file
2009-01-08 09:12:39 +00:00
Natanael Copa
174dd41113
src/database.c: get repository file from environment variable APK_REPOS
...
Defaults to /etc/apk/repositories, absolute path and not relative
the install root.
2009-01-08 07:16:53 +00:00
Natanael Copa
d704e93f8d
src/package.c: fix compiler warning on 64 bit hosts
2009-01-08 07:16:53 +00:00
Timo Teras
052fbe3f86
various: make fancy progress bar and update todo
2009-01-07 21:45:11 +02:00
Timo Teras
c7ffc96a16
db: rmdir() directories only on package purge
2009-01-06 21:23:26 +02:00
Timo Teras
0655699133
db: remove forgotten debug print
2009-01-06 21:23:26 +02:00
Timo Teras
0314104d93
db, pkg: fix rest of memory leaks
2009-01-06 21:23:26 +02:00
Timo Teras
5e2aca2678
io: fix some memory leaks
2009-01-06 21:23:26 +02:00
Timo Teras
6b2b9d303e
db: restructure in-memory organization
2009-01-06 21:23:26 +02:00
Timo Teras
354b6e4631
log: eliminate fortified build warning
2009-01-06 21:23:26 +02:00
Timo Teras
64b630b5fb
archive: minor clean ups
2009-01-06 21:23:26 +02:00
Timo Teras
a3769b2238
io: check inner stream existance before creating gunzip stream
2009-01-06 21:23:26 +02:00
Timo Teras
fb911432cb
apk_array: clear newly allocated memory
2009-01-06 21:23:26 +02:00
Timo Teras
dc2ffc30e8
io: apk_ostream stuff
2008-11-28 16:28:54 +02:00
Timo Teras
4bafa681fe
io: prepartions for url handling
2008-11-28 15:03:27 +02:00
Timo Teras
5ea81ca564
add: add support to install packages not in a repository
2008-11-28 13:34:40 +02:00
Timo Teras
545a915faf
db: rework 'files' to 'installed'
...
Make the db of installed packages more similar to index file and
reuse the code. Also rename the database file.
2008-11-28 13:15:06 +02:00
Timo Teras
a96572fba8
db: compressed index file
2008-11-27 21:06:45 +02:00
Timo Teras
f0609951b9
hash, db: use apk_blob_t and list_*
2008-11-27 20:25:01 +02:00
Timo Teras
1a7f3e3678
various: use apk_istream api
2008-11-27 16:59:04 +02:00
Timo Teras
8e23a2ba4e
db: checksum installed files, protect config files
...
Checksum of installed is computed on the fly when extracting them
and it'll be saved to fdb. When installing config files those are
diverted with suffix .apk-new if earlier version of same file with
local changes exist.
2008-11-14 14:26:59 +02:00
Timo Teras
86676ac8c4
build: remove pthreads references
2008-11-12 11:57:53 +02:00
Timo Teras
ffa03a21d8
db: remember empty .apks
2008-11-11 09:00:10 +02:00
Timo Teras
791cf6f05b
pkg: speed up indexing of version 2 .apks
2008-11-07 19:18:53 +02:00
Timo Teras
0bf7a1a2cc
io: implement mmap(2) for reading pkgs
2008-11-07 19:06:58 +02:00
Timo Teras
aef0f036f0
use zlib internally to decompress
2008-11-07 17:11:08 +02:00
Timo Teras
6967c28b96
db: fix installation of apk v1 packages
2008-11-07 13:22:16 +02:00
Timo Teras
36f73847ee
pkg: support for new scripts
2008-11-07 13:05:55 +02:00
Timo Teras
014d39488b
db: do not install .PKGINFO files
2008-11-07 09:51:53 +02:00
Timo Teras
57154db85d
db: parse new style .PKGINFO
2008-11-06 16:58:58 +02:00
Natanael Copa
cb25f35ed4
give more helpful error messages
2008-10-26 11:35:34 +00:00
Timo Teras
219a1b2ee8
Overwriting of bb files, apk_create (from old apk-tools), chdir changes,
...
other stuff.
2008-04-22 08:16:26 +00:00
Timo Teras
384c2f1d94
Preserve uid and gid. Quiet flag to print dots on progress.
2008-04-22 06:04:20 +00:00
Timo Teras
823283edca
Argument parsing. Some other stuff too.
2008-04-21 16:30:10 +00:00
Timo Teras
951602e551
Fixes for hardened environment (and old gcc)
2008-04-21 09:41:53 +00:00
Timo Teras
d6c7435242
Initial commit of some stuff written so far. Still in state of flux. Expect
...
breakage and major changes.
2008-04-17 14:09:13 +00:00