Natanael Copa
b4adf7645f
Fix building on eglibc
...
Seems like recent eglibc requires that you include sys/stat.h
2010-08-30 13:04:25 +00:00
Timo Teräs
dd6008995a
static build: do not use openssl engines
...
We want minimal static build. And this now also breaks with our openssl
since it tries to automatically dlopen some of the engine modules.
2010-06-30 16:55:50 +03:00
Natanael Copa
fc4c60f233
Makefile: do not require lua pkgconfig unless you intend build lua module
2010-06-16 07:37:17 +00:00
Timo Teräs
2dd7ad9a9b
upgrade: warn (do not fail) on missing top-level package names
...
We we can upgrade rest of system just fine then.
2010-06-15 18:34:03 +03:00
Timo Teräs
e706f63eda
state: handle properly packages which are installed
...
Installed package does not need to be checked for availability.
Account for packages missing if they get pruned out due to
installability check.
2010-06-15 18:31:45 +03:00
Timo Teräs
ec6359732d
db: reinitialize trigger_pkg_list node after deletion
...
The trigger list can be reused after it's cleared, make sure
the list node is initialized all the time.
2010-06-15 14:40:46 +03:00
Natanael Copa
efdd2f10f5
Makefile: Don't build or install the libapk and lua module by default
...
Make the libapk and lua module optional at buildtime and off by default.
This is because enabling libapk requires that mkinitfs also copies the
libapk.so or the initramfs will not work.
To build libapk:
make LIBAPK=yes
To build lua module (will enable LIBAPK=yes):
make LUAAPK
To link apk to libapk (will enable LIBAPK=yes):
make SHARED_LIBAPK=yes
All the above applies to make install target as well.
2010-06-14 09:41:06 +00:00
Timo Teräs
8b317678e3
db: --simulate never needs write access to db
...
So open the db in read-only mode instead. This allows --simulate to
be run as non-root user.
2010-06-12 13:48:42 +03:00
Timo Teräs
3062d681f9
archive: honor username/groupname instead of uid/gid
...
Take the uid/gid from passwd and group.
2010-06-12 13:43:29 +03:00
Timo Teräs
43cb554c3f
various: use O_CLOEXEC and add some error checking
2010-06-11 13:42:21 +03:00
Timo Teräs
bcbe575c3b
build: fix CFLAGS, and use pkg-config for lua
2010-06-11 13:41:52 +03:00
Natanael Copa
11925542d8
print: clean up after copy-paste
2010-06-11 07:09:25 +00:00
Natanael Copa
36d1bfb4ed
db: make apk_wait a part of dbopts
2010-06-11 07:02:18 +00:00
Natanael Copa
7aed449427
lua: initial lua module
2010-06-11 07:02:18 +00:00
Natanael Copa
3ec82a5a42
First steps for libapk
2010-06-11 07:02:18 +00:00
Natanael Copa
60b537e356
db: do not free trigger list after package is unpacked
...
The triggers are read during apk_db_unpack_pkg(). If we delete the
triggers list after then unpack we delete the triggers which is not
what we want.
This fixes bug introduced in ce3cf8bff9
2010-06-10 17:50:11 +00:00
Timo Teräs
8ac170c49d
info: fix usage of arrays
2010-06-08 14:26:35 +03:00
Timo Teräs
efe90d43c8
state: fix error printing
2010-06-08 10:24:21 +03:00
Timo Teräs
f85d87e5f9
db: fix usage of apk_name_array in install_ctx
...
got broken to the previous array cleanup and grepping struct
definition only from headers.
2010-06-07 17:45:04 +03:00
Timo Teräs
7be853e637
all: rework how arrays work
...
Instead of having a null pointer, use a dummy array which just
says the array is empty. This helps in multiple places of the code
which would otherwise need explicitly need to check first if the
array exists. This has been cause of multiple seg.faults in the
past as the array check is easily omitted.
This also removes (or fixes) all existing checks accordingly.
2010-06-05 12:33:54 +03:00
Timo Teräs
069c898984
state: fix a crash in error printing
2010-06-03 22:03:02 +03:00
Timo Teräs
ce3cf8bff9
db, pkg: fix triggers related crash
...
clean up the triggers properly, in proper order.
2010-06-01 16:46:53 +03:00
Timo Teräs
440cffef58
state: print missing package names on error
...
especially important if the package requested from command line
does not exist. otherwise we would not print an error at all.
2010-06-01 15:06:48 +03:00
Timo Teräs
038b672061
state: improve error messages from dependency failures
...
Print more information why installation changeset calculation failed.
Fixes #187 .
2010-06-01 11:49:32 +03:00
Timo Teräs
2165547bad
state: modify reinstallation prints
...
To print upgrading if package is actually being changed instead of
pure reinstall.
2010-05-27 16:19:14 +03:00
Timo Teräs
4fde5f101a
state: show changed packages as upgrades
...
If version is equal, but package contents are different we should
show the package being upgraded.
2010-05-27 16:01:29 +03:00
Timo Teräs
4a21764ee1
state: fix deletion of obsoleted dependencies
...
In addition to autocleaning dependencies on deletion, we need to
autoclean the old package on upgrade too. This is to make sure that
obsoleted dependencies (existed previously, but not in new package)
are removed where appropriate.
2010-05-27 11:34:17 +03:00
Timo Teräs
fe55da7074
package: don't leak signing key file fd
...
openssl BIO does not close the fd unless we explicitly tell it to
do so.
2010-05-26 14:30:08 +03:00
Timo Teräs
d9bf4aabff
search: add search for reverse dependencies in index
...
So it'll be easier to rebuild affected packages. Fixes #349 .
2010-05-19 16:49:32 +03:00
Natanael Copa
47bac8c29c
upgrade: reset versioned deps in world when doing upgrade -a
...
Doing "apk add file.apk" adds a versioned dependency to allow
downgrading, and sticky version. Most often this is to install
single packages from newer repository. So it would make sense
to reset them to non-versioned if doing:
apk upgrade -a
fixes #346
2010-05-12 06:08:18 +00:00
Timo Teras
87420aaf29
info: fix querying of removed, but referenced packages
...
Check that package name has packages associated with it before
dereferencing the pointer. Fixes #345 .
2010-05-05 08:56:06 +03:00
Timo Teras
e3f919a4f5
state: virtual packages are always installable
...
they do not have any package associated. this is indicated by
package with zero installed_size.
2010-03-15 09:16:14 +02:00
Timo Teras
b40b2f0429
state: check package availability always
...
even if we have only one package as candidate, we need to check
it's availability. otherwise we can endup with bad changeset
referring to unavailable package.
2010-03-10 14:55:31 +02:00
Timo Teras
ef7d467083
fetch: do not include installed non-repository files in search
...
we do not create mirror repositories from other valid repositories,
not from what was installed locally.
2010-03-04 14:01:37 +02:00
Timo Teras
4b29ea2a08
cache: do not download files existing in local repository
...
wget:ing local files results in error and is useless.
2010-03-01 11:27:27 +02:00
Timo Teras
49f5d8cb01
db: fix previous commit
...
add the missing variable.
2010-03-01 11:26:45 +02:00
Timo Teras
fcdb316ab7
db: read also non-repository package index if reading repository indexes
...
otherwise regeneration of non-repository index might go wrong or we
might delete too many files from cache when doing 'cache clean'.
2010-03-01 11:20:17 +02:00
Natanael Copa
2d7171b2e7
Merge branch 'master' into prog
2010-02-26 13:35:45 +00:00
Natanael Copa
028990d576
state: write status for each package change
...
prints like:
(1/12) Installing...
(2/12) Installing...
etc...
2010-02-26 13:27:09 +00:00
Natanael Copa
69b5357390
state: show percent in progress bar
...
This makes things a little bit nicer when installing from network with
slow lines.
2010-02-26 13:26:16 +00:00
Natanael Copa
9f3fbedcc9
add: print all failing packages instead of only first
...
We want see all packages that fails to install and not only the first
2010-02-26 12:57:06 +00:00
Timo Teras
3f9fe4c28b
db: keep packages with no files with installed status
...
got broke few commits ago when apk_pkg_installed() call was
moved to happen after the package name has been read.
2009-12-25 14:15:10 +02:00
Natanael Copa
d67ee300b6
state: Default interactive action is Yes
...
When pressing only <enter> on the question "..continue [Y/n]?" then
lets take that as a "yes"
2009-12-25 07:17:06 +00:00
Timo Teras
b58ec46f7c
db: make fdb load package description before calling pkg_install
...
this is now mandatory after the overlay fixes. otherwise the
package will not get listed as installed.
2009-12-22 17:33:44 +02:00
Natanael Copa
d4f0b2ab70
db: check the overlay files package name rather than the ovl file itself
2009-12-21 16:39:53 +00:00
Timo Teras
884fabbf30
db: honor overlay file even for protected paths
2009-12-21 18:12:45 +02:00
Timo Teras
6417de4d10
apk: remove the unneeded --never-overwrite
...
turns out the logic does not work with overlays as expected due
to busybox symlinks being unmanaged. remove the useless option.
2009-12-21 16:53:47 +02:00
Timo Teras
f44f34811d
db: accept files in overlay without directory
...
appears this is possible, so support it.
2009-12-21 16:31:58 +02:00
Timo Teras
f2a7800b22
db: use proper instance for overlay file entries
...
lookup proper directory instance as the tar output might not be
linear.
2009-12-21 14:30:33 +02:00
Timo Teras
d0909569c6
apk: --overlay-from-stdin
...
get list of overlay files from stdin, so those do not get overwritten.
2009-12-21 14:14:02 +02:00
Timo Teras
366e7d07ae
db: read time only once when writing scriptsdb
...
less syscalls.
2009-12-21 11:42:39 +02:00
Natanael Copa
407ef801d9
db: check if target exist before renaming tempfile
...
do not overwrite target if we have --never-overwrite and target exists.
ref #197
2009-11-24 08:25:24 +00:00
Timo Teras
98de535355
archive: overwrite protection needs to use real filename
...
otherwise we always extract the file as .apk-new and the database
side just overwrites.
2009-11-06 16:16:49 +02:00
Timo Teras
4dd183f3c1
version: add support for version control suffixes
...
add cvs, svn, git and mercurial tags for creating snapshot
packages.
2009-11-06 13:29:58 +02:00
Timo Teras
ff45ff3152
version: fix remaining version comparisons
...
even more corner cases found which were broke. now all tests
should pass.
2009-11-06 13:21:00 +02:00
Timo Teras
a93a35eeca
apk: add --never-overwrite flag (ref #197 )
...
to never ever overwrite a while in the filesystem the user knows
about. it gives the impression of extraction succeeding even though
nothing was done. this is inteded to be used only for bootstrapping
with overlay.
2009-11-06 11:31:03 +02:00
Timo Teras
44ac0b06af
version: fix comparison of version again
...
-t 1.3-r0 1.3.1-r0 was broke
2009-11-05 17:49:12 +02:00
Timo Teras
a7360395ea
db: fix migration and pruning of symlinks to dirs
...
the old code treated a symlink to directory as file; it tried
to calculate regular has of it. fix this by: 1) using no follow
on migration and pruning stats, and 2) the helper function to
check if it's point to directory and not calculate hash in that
case. fixes #188 .
2009-10-26 09:46:09 +02:00
Timo Teras
cc4644a54e
version: fix comparision of pre-suffixes
...
got broke in 0b9bfa8d52
which
fixed another corner case. hopefully it's good now. fixes #191 .
2009-10-26 09:33:12 +02:00
Timo Teras
aebe73549f
pkg: fix parsing of empty dependencies
...
if the dependencies are empty with only trailing new line, the
parsing was incorrect. fix the new line check.
2009-09-16 20:23:34 +03:00
Timo Teras
d3861d70a8
version: --index output to stdout instead of stderr
2009-09-04 11:38:19 +03:00
Natanael Copa
330dc5511a
index: do not segfault if there are no description
2009-09-03 13:15:10 +00:00
Timo Teras
58e771303c
index, version: support for repository descriptions ( fixes #141 )
...
ability embed description information to repository indexes
(e.g. repository name and version) and show it via "apk version -I".
2009-09-03 14:56:24 +04:00
Timo Teras
f936d78d5f
state: require an available package for re-installs
...
otherwise we would not be able to pick a package that exists
as a candidate for re-installation. fixes #138 .
2009-08-19 15:37:21 +03:00
Timo Teras
f9b2035897
fix: upgrade also mentioned package ( fixes #136 )
2009-08-17 15:37:19 +03:00
Timo Teras
0b9bfa8d52
version: fix comparison against empty version
2009-08-17 14:24:13 +03:00
Timo Teras
9e71df3cf3
db: cache needs to be on non-tmpfs
...
check device major if it's tmpfs and refuse to use cache if
we've been fooled.
2009-08-13 20:27:33 +03:00
Timo Teras
e20ce5a9c0
db: fix script arguments
...
the first item is place holder for argv[0] = script name. it's
overwritten by the apk_pkgi_run_script.
2009-08-13 19:21:31 +03:00
Timo Teras
6c96730cdf
add, del, db: fix various bugs introduced by earlier commits
...
- make virtual packages work again
- make apk del (for non-empty packages) work again
2009-08-13 18:41:03 +03:00
Timo Teras
892395d594
add: refuse to add bad dependencies to world
...
allow also overriding old (possibly bad) world dependency.
hopefully it's more bullet proof now.
2009-08-13 16:02:02 +03:00
Timo Teras
6b94ed8a7a
fix: parse pkgfile properly ( fixes #132 )
...
accept also pkgfile in addition to pkgname. make also the signature
verification stuff work properly again with non-repository files.
2009-08-13 14:33:43 +03:00
Timo Teras
279513bfbe
db: implement triggers ( fixes #45 )
2009-08-13 14:10:30 +03:00
Timo Teras
b71606dbf4
info: clean ups, print triggers (ref #45 )
2009-08-13 10:45:48 +03:00
Timo Teras
05f016481a
db: fix some (unimportant) memory leaks
2009-08-12 19:29:14 +03:00
Timo Teras
36b5cee98b
db, pkg: separate structure for fields of installed packages
...
this makes the database package entry smaller, and we propbably
get more fields to installed_package later too. this cleans up
the way scripts are stored and is a preparation for supporting
triggers. some parsing for trigger meta-data. ref #45 .
2009-08-12 19:17:46 +03:00
Timo Teras
dee6ffa492
io: better error handling when writing stuff out
...
also have the output stream support writing to temporary file
and do renameat/unlinkat on close depending on if all writes
succeeded or not.
2009-08-12 11:05:09 +03:00
Timo Teras
bd9835a20e
archive: update for new place of checksum in tar header
...
and take checksums for symlinks too.
2009-08-11 19:57:30 +03:00
Timo Teras
addae04c26
db, audit: audit symlinks (by hash of the link target)
2009-08-11 19:02:22 +03:00
Timo Teras
949d375aa9
db: fix checking of non-repository files from cache
...
otherwise, non repository files present in cache are not
considered for installation (e.g. when booting from cdrom).
2009-08-11 18:28:22 +03:00
Timo Teras
5d19789a3b
pkg, db: execute scripts from /var/cache/misc ( fixes #129 )
2009-08-11 17:56:24 +03:00
Timo Teras
1011c4e346
db: fix previous commit
2009-08-11 16:01:29 +03:00
Natanael Copa
6dd59d7817
db: ignore empty lines in /etc/apk/repositories
...
fixes #127
2009-08-11 09:22:12 +00:00
Timo Teras
bc93eaffb0
db, pkg: fix package verification during installation
...
some hooks to package verification code were missing causing the
verification to not be done (causing pre-script to be not run).
fixes #124 , #126 .
2009-08-10 08:47:05 +03:00
Timo Teras
a120a96db4
state: installed package does not need downloading
...
so do not skip it even if it's no longer available.
2009-08-06 17:19:01 +03:00
Timo Teras
8ae244db7d
add: world needs to be updated before state instantiation
...
otherwise old world deps are used and unintended results will
happen.
2009-08-06 17:04:40 +03:00
Timo Teras
ba005f2e97
state: bug fix
2009-08-06 16:54:59 +03:00
Timo Teras
bf7b80662d
state: do not look into world in state_new
...
instead enforce world dependencies when the package name
is first referenced upon.
2009-08-06 16:39:09 +03:00
Timo Teras
f02f326238
db: prefer local repositories, and implement --no-network
...
this helps boots sequence when network is not available.
2009-08-06 16:00:20 +03:00
Timo Teras
ced1fa83d6
state: indent package lists
2009-08-06 15:34:33 +03:00
Timo Teras
974a00bc5f
state, update: fixes
2009-08-06 14:50:51 +03:00
Timo Teras
ecdacd1503
all: implement database open options
...
so user can override trusted keys directory and repositories file.
2009-08-06 14:25:03 +03:00
Timo Teras
fac43e2d60
db: make missing index non-fatal
...
it's a warning not an error to have non-existant repository.
bad signature means tampering; but we might want to just ignore
those. this is especially important if we have http repositories
and we are bootstrapping (without network).
2009-08-06 13:12:26 +03:00
Timo Teras
20b3c7c8b3
audit: do not load repositories
...
they are not needed, and cause errors if signing keys are not
present.
2009-08-06 13:09:38 +03:00
Timo Teras
0b2052ed06
state: ignore missing world dependencies with --force and --quiet
2009-08-06 11:47:44 +03:00
Timo Teras
6f1de8cd53
db: command line repositories take preference
...
over the ones in config file. also remove the apk_root == NULL
check as this cannot happen anymore. a valid root is always
required.
2009-08-06 10:17:28 +03:00
Timo Teras
7419771b02
audit: fix --backup
2009-08-06 08:57:50 +03:00
Timo Teras
2cfca5b6ed
info: fix a --exists to work if the name is non-existant
2009-08-05 19:11:32 +03:00
Timo Teras
f14cbbf4e5
info: support dependency style tests in package existance checking
2009-08-05 15:36:46 +03:00
Timo Teras
46e9329568
io: flag for following symlinks on fstat
...
usually we are interested on the actual file's length. but
audit is interested about the link. so add a flag for this and
use it in audit.
2009-08-05 13:13:52 +03:00
Timo Teras
856181a032
fetch: --link is -L for short, not -l
2009-08-05 12:45:02 +03:00