summaryrefslogtreecommitdiffstats
path: root/src/package.c
Commit message (Collapse)AuthorAgeFilesLines
* all: rework how arrays workTimo Teräs2010-06-051-7/+15
| | | | | | | | | | 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.
* db, pkg: fix triggers related crashTimo Teräs2010-06-011-0/+1
| | | | clean up the triggers properly, in proper order.
* state: improve error messages from dependency failuresTimo Teräs2010-06-011-30/+29
| | | | | Print more information why installation changeset calculation failed. Fixes #187.
* package: don't leak signing key file fdTimo Teräs2010-05-261-1/+1
| | | | | openssl BIO does not close the fd unless we explicitly tell it to do so.
* apk: --overlay-from-stdinTimo Teras2009-12-211-2/+7
| | | | get list of overlay files from stdin, so those do not get overwritten.
* pkg: fix parsing of empty dependenciesTimo Teras2009-09-161-1/+1
| | | | | if the dependencies are empty with only trailing new line, the parsing was incorrect. fix the new line check.
* fix: parse pkgfile properly (fixes #132)Timo Teras2009-08-131-8/+8
| | | | | accept also pkgfile in addition to pkgname. make also the signature verification stuff work properly again with non-repository files.
* db: implement triggers (fixes #45)Timo Teras2009-08-131-4/+4
|
* db, pkg: separate structure for fields of installed packagesTimo Teras2009-08-121-88/+101
| | | | | | | 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.
* pkg, db: execute scripts from /var/cache/misc (fixes #129)Timo Teras2009-08-111-5/+10
|
* db, pkg: fix package verification during installationTimo Teras2009-08-101-4/+8
| | | | | | 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.
* db: support "replaces" directive (fixes #113)Timo Teras2009-08-041-11/+5
| | | | | it will allow to overwrite files owned by some other packages to get upgrades right (e.g. when splitting or renaming packages)
* apk: use *at instead of chdir+normal file syscallTimo Teras2009-07-311-19/+48
| | | | | | | | this way we never change cwd, and relative filenames are always parsed consistently. this also helps filename construction in many places. this patch also changes '--root' to override location of all configuration to be in the new root. previously it depended on the file which one was used.
* tar: make checksumming of inner files conditionalTimo Teras2009-07-291-1/+1
| | | | | and force checksumming only when unpacking archive. otherwise it's extra computation for nothing.
* pkg: remove implicit bb dependency when install script is presentTimo Teras2009-07-241-14/+0
| | | | this dependency is now inserted automatically by abuild.
* index: more informative error messageTimo Teras2009-07-231-1/+1
| | | | when failed to load an existing index.
* signing: verify and generate identityTimo Teras2009-07-221-0/+6
| | | | | | fixes verification of non-repository packages while installing them. this is final thing needed for full signing support (fixes #46).
* add: fixes to installing non-repository packageTimo Teras2009-07-221-2/+2
| | | | | make sure cache is enabled on non-permanent rootfs setups. some optimizations and fixes too.
* pkg: cleanup the signing codeTimo Teras2009-07-221-95/+78
| | | | | smaller callback and less cases to check. also reintroduce the oneshot digest flag, hopefully correct this time.
* apk: allow-untrusted optionTimo Teras2009-07-221-10/+15
| | | | to not make hard error of untrusted or missing signatures
* various: more informative error messagesTimo Teras2009-07-221-13/+16
|
* various: misc fixesTimo Teras2009-07-221-59/+54
| | | | | | | - error codes for verification failure types - fix some fdb corruption on file migration - combine some dependency parsing code - fix versioned dependencies
* various: installation fixesTimo Teras2009-07-221-5/+0
| | | | | | | | - extract everything as .apk-new and overwrite only after data has been checksummed - url construction fixes (to work with simple http servers) - end of gunzip stream fixed - remove oneshot digesting flag for now as it's usage was broken
* various: fix installation of new style apksTimo Teras2009-07-211-1/+2
|
* pkg: fix indexing of multi-part apksTimo Teras2009-07-211-2/+2
|
* db: fixes to package checksumming while installing itTimo Teras2009-07-211-14/+23
|
* db: signed index loading (ref #46)Timo Teras2009-07-201-22/+88
| | | | prefer index in the new format as signed .tar.gz.
* pkg: filenames with '/' cannot be control dataTimo Teras2009-07-201-1/+1
|
* digest: use oneshot context flag where approriateTimo Teras2009-07-171-17/+26
| | | | speeds up digest calculation on some cases.
* index: fix output file permissions, verify signed index (ref #46)Timo Teras2009-07-171-7/+18
|
* pkg: remove debug printsTimo Teras2009-07-171-1/+0
|
* pkg: fix index generationTimo Teras2009-07-171-4/+12
| | | | that got broke during verify implementation.
* verify: new applet (ref #46)Timo Teras2009-07-171-73/+172
| | | | an utility to check package signature and integrity.
* pkg: .PKGINFO field for data checksum is 'datahash'Timo Teras2009-07-161-1/+1
| | | | in future we might add datahashalg to specify the algorithm used.
* various: new style index generationTimo Teras2009-07-161-22/+71
| | | | | | change the index generation to do old index, or the new style index where package identity is sha1 of control block and it's contained within an .tar.gz to allow signing in future.
* gzip: always autoclose the inner streamTimo Teras2009-07-161-2/+6
|
* pkg: remove support for the deprecated .INSTALL scriptTimo Teras2009-07-161-14/+1
|
* cache: make cache cleaning work again properlyTimo Teras2009-07-151-0/+3
|
* pkg: fix package scanner to read whole archiveTimo Teras2009-07-151-2/+2
| | | | | otherwise we don't get chechksum anymore after the changes to support partial gzip checksumming.
* db: live with sha1 and md5Timo Teras2009-07-141-9/+10
| | | | this also convers scripts file to a tar archive.
* blob: some helpers to replace snprintfTimo Teras2009-07-141-28/+28
| | | | | snprintf is dog slow. make the blob stuff have some helper functions so we can use them in code paths that are executed often.
* bstream: make tokenizable and load index using bstreamTimo Teras2009-07-141-3/+3
| | | | some fixes on index reading code too.
* io: move csumming away from bstream to gunzipTimo Teras2009-07-131-5/+23
| | | | | in future we want to checksum on gzip boundary basis, not the full file.
* package: removed debug codeNatanael Copa2009-06-221-1/+0
|
* ver: only compare the given packages, show versionNatanael Copa2009-06-201-0/+5
| | | | | make apk_version_compare() take strings rather than blobs add apk_pkgversion_compare(), a wrapper that takes packages
* add: support for forced versionsNatanael Copa2009-06-161-0/+33
| | | | | | | Support version numbers specified with packages. For example: apk add 'busybox<1.14' apk add 'squid=>3.0'
* pkg: clean up writing of dependenciesTimo Teras2009-04-161-82/+60
|
* pkg: apk_deps_del helper introducedTimo Teras2009-04-161-0/+19
|
* pkg: fix apk v1.0 URL field importTimo Teras2009-04-161-1/+1
|
* state: rework changeset calculation algorithmTimo Teras2009-04-141-7/+79
| | | | | | | | | | | | | | | | | | | | | | | | 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.