aboutsummaryrefslogtreecommitdiffstats
path: root/src/database.c
Commit message (Collapse)AuthorAgeFilesLines
...
* various: more informative error messagesTimo Teras2009-07-221-2/+3
|
* various: misc fixesTimo Teras2009-07-221-11/+14
| | | | | | | - error codes for verification failure types - fix some fdb corruption on file migration - combine some dependency parsing code - fix versioned dependencies
* db: fix protected directory handlingTimo Teras2009-07-221-32/+13
| | | | do not overwrite untracked files.
* various: installation fixesTimo Teras2009-07-221-74/+146
| | | | | | | | - 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-2/+1
|
* index: read also new style index filesTimo Teras2009-07-211-21/+38
|
* db: increase hash sizes a bitTimo Teras2009-07-211-5/+5
|
* db: don't run pre-install until control data is verifiedTimo Teras2009-07-211-8/+29
| | | | to make sure the scripts have not been altered.
* db: fixes to package checksumming while installing itTimo Teras2009-07-211-16/+16
|
* db: write errors about repository update (fixes #70)Timo Teras2009-07-201-2/+7
|
* db: signed index loading (ref #46)Timo Teras2009-07-201-15/+101
| | | | prefer index in the new format as signed .tar.gz.
* digest: use oneshot context flag where approriateTimo Teras2009-07-171-18/+4
| | | | speeds up digest calculation on some cases.
* various: new style index generationTimo Teras2009-07-161-25/+5
| | | | | | 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-12/+7
|
* pkg: remove support for the deprecated .INSTALL scriptTimo Teras2009-07-161-7/+2
|
* index: reuse existing index (fixes #25)Timo Teras2009-07-151-1/+1
| | | | | | | | | | replace the old 'delete' option, with 'index'. the idea is that one can provide existing index files to take cached meta-data of the package from (assumes package has not been modified if index is newer, and package size has not changed). this way one always gives the list of .apk files to include in the new index, and the old index is used only as "cache".
* db: live with sha1 and md5Timo Teras2009-07-141-58/+140
| | | | this also convers scripts file to a tar archive.
* db: remove debug printTimo Teras2009-07-141-1/+0
| | | | was left there unintentionally while debugging stuff.
* blob: some helpers to replace snprintfTimo Teras2009-07-141-33/+36
| | | | | snprintf is dog slow. make the blob stuff have some helper functions so we can use them in code paths that are executed often.
* db: speed up fdb creationTimo Teras2009-07-141-39/+42
| | | | | avoid recalculating hashes, and store the lengths of names, so we can optimize some operations.
* hash: allow caching of hash valueTimo Teras2009-07-141-8/+14
|
* bstream: make tokenizable and load index using bstreamTimo Teras2009-07-141-100/+94
| | | | some fixes on index reading code too.
* io: move csumming away from bstream to gunzipTimo Teras2009-07-131-13/+29
| | | | | in future we want to checksum on gzip boundary basis, not the full file.
* db: removed apk_repository_update_all() as its no longer neededNatanael Copa2009-07-091-11/+0
| | | | We use APK_UPDATE_CACHE apk_flag instead.
* implement --update-cache optionNatanael Copa2009-07-091-2/+6
| | | | This will update the repository cache upon db_open.
* db: check cache directory earlyTimo Teras2009-07-081-3/+3
| | | | | we need to know if caching is enabled, before the repositories are added. otherwise the cache is not used properly at db opening time.
* csum: use openssl insteadTimo Teras2009-07-081-1/+1
| | | | | instead of having static md5 implemenation, use the openssl library for digest functions.
* apk: add --wait option to wait for exclusive lock (fixes #26)Timo Teras2009-07-071-2/+23
|
* db: open flags revisitedTimo Teras2009-07-071-29/+33
| | | | | more fine grained control what to load, and rename some of the flags to be shorter.
* cache: new applet (ref #49)Timo Teras2009-06-291-15/+39
| | | | Administrative tool to download or delete files to/from the cache.
* db: cache packages (ref #49)Timo Teras2009-06-291-56/+86
| | | | | | | | | | | If /etc/apk/cache is a symlink to directory, a copy of all installed packages is stored there, and the index of remote repositories will be there instead of /var/lib/apk. This enables to reconstruct running system during boot. Left as todo: remove cached copy when the package is removed, and additional apk applet to download missing packages to cache and/or remove extra items.
* blob: function to checksum a blobTimo Teras2009-06-281-12/+8
| | | | And use it in couple of places. Some whitespace fixes too.
* db: add function apk_repository_update_allNatanael Copa2009-06-191-0/+11
| | | | | | | | We might want to add an --update-index option to misc applets. For example: apk add --update-index -u package apk version --update-index
* db: warn rather than fail with error if a repo index fails to loadNatanael Copa2009-05-191-10/+5
|
* db: fix bug that made inverted new installs and upgradesNatanael Copa2009-05-181-1/+1
| | | | We upgrade when we have an oldpkg.
* add: support for virtual meta packagesNatanael Copa2009-05-141-32/+49
| | | | | | | | implements 'apk add --virutal metaname dep1 dep2...' where metaname will be an empy meta package with dep1 and dep2 as dependencies. This is useful to prevent abuild to add each makedepend to world which causes some headache when it comes to unintalling them after sucessful build.
* index: support for -d to delete packages from given indexNatanael Copa2009-05-121-1/+1
| | | | | | | | | The syntax is: apk index -d /path/to/APK_INDEX.gz pkg... It does not seem like its possible to remove packages in the db so we trick apk_db_index_write() by setting the repo to on-zero. It's still not perfect since it does not recalculate the dependencies.
* info: do not read the repositories as this tool only query the statedbNatanael Copa2009-04-211-14/+16
| | | | | | | | This allows you to query the state db even if you do not have write permissions in cache dir (which is needed if you have remote repositories) This should speed up things and save some memory if you have big and slow remote repositories.
* db: do not assume root ends with '/'Natanael Copa2009-04-211-4/+4
|
* db: improve error reportingNatanael Copa2009-04-211-6/+5
| | | | | | | apk_db_add_repository does its own error reporting and does not set errno reliable. This patch also tell which repository it failed to load the index for rather than just say it failed to open "APK_INDEX.gz" which does not tell much.
* db: fix bug in apk_repository_update()Natanael Copa2009-04-211-1/+1
|
* db: cache index files, 'update' appletTimo Teras2009-04-161-9/+99
| | | | | | Cache non-local index files always locally. Introduce 'update' applet to force refresh of cached index files. Fixes #19.
* pkg: clean up writing of dependenciesTimo Teras2009-04-161-11/+9
|
* db: fix addition of .apks not in any repositoryTimo Teras2009-04-161-1/+5
|
* fetch: new applet to download .apk filesTimo Teras2009-04-151-9/+11
| | | | Fixes #24.
* state: rework changeset calculation algorithmTimo Teras2009-04-141-40/+11
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* db: track reverse dependenciesTimo Teras2009-04-141-0/+20
| | | | | | 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.
* pkg: write dependencies directly file instead of bufferTimo Teras2009-03-171-6/+2
| | | | | So we don't get artificial limits on the amount of dependencies (fixes #8).
* db: unlink apk-new if it is identical to existing configNatanael Copa2009-03-041-0/+3
|
* db: apk-new should be created if the existing file is modifiedTimo Teras2009-03-041-1/+1
|