Commit Graph

426 Commits (cec1fa2b0f414e980c4dc56a5cc4dc9ff48bddb8)

Author SHA1 Message Date
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