summaryrefslogtreecommitdiff
path: root/src/database.c
AgeCommit message (Collapse)AuthorFilesLines
2009-07-07db: open flags revisitedTimo Teras1-29/+33
more fine grained control what to load, and rename some of the flags to be shorter.
2009-06-29cache: new applet (ref #49)Timo Teras1-15/+39
Administrative tool to download or delete files to/from the cache.
2009-06-29db: cache packages (ref #49)Timo Teras1-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.
2009-06-28blob: function to checksum a blobTimo Teras1-12/+8
And use it in couple of places. Some whitespace fixes too.
2009-06-19db: add function apk_repository_update_allNatanael Copa1-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
2009-05-19db: warn rather than fail with error if a repo index fails to loadNatanael Copa1-10/+5
2009-05-18db: fix bug that made inverted new installs and upgradesNatanael Copa1-1/+1
We upgrade when we have an oldpkg.
2009-05-14add: support for virtual meta packagesNatanael Copa1-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.
2009-05-12index: support for -d to delete packages from given indexNatanael Copa1-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.
2009-04-21info: do not read the repositories as this tool only query the statedbNatanael Copa1-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.
2009-04-21db: do not assume root ends with '/'Natanael Copa1-4/+4
2009-04-21db: improve error reportingNatanael Copa1-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.
2009-04-21db: fix bug in apk_repository_update()Natanael Copa1-1/+1
2009-04-16db: cache index files, 'update' appletTimo Teras1-9/+99
Cache non-local index files always locally. Introduce 'update' applet to force refresh of cached index files. Fixes #19.
2009-04-16pkg: clean up writing of dependenciesTimo Teras1-11/+9
2009-04-16db: fix addition of .apks not in any repositoryTimo Teras1-1/+5
2009-04-15fetch: new applet to download .apk filesTimo Teras1-9/+11
Fixes #24.
2009-04-14state: rework changeset calculation algorithmTimo Teras1-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.
2009-04-14db: track reverse dependenciesTimo Teras1-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.
2009-03-17pkg: write dependencies directly file instead of bufferTimo Teras1-6/+2
So we don't get artificial limits on the amount of dependencies (fixes #8).
2009-03-04db: unlink apk-new if it is identical to existing configNatanael Copa1-0/+3
2009-03-04db: apk-new should be created if the existing file is modifiedTimo Teras1-1/+1
2009-03-04db: fix overwrite warningTimo Teras1-2/+1
2009-03-04apk: --force to overwrite filesTimo Teras1-3/+11
2009-03-04apk: --clean-protected optionTimo Teras1-12/+10
So you will not get .apk-new files of the new configuration files.
2009-02-27db: new apk to have separate install scripts for each actionTimo Teras1-2/+6
2009-02-17db: allow more than one --repository argNatanael Copa1-3/+4
2009-02-08db: do not allow overwrite busybox linksNatanael Copa1-2/+1
we let bb use /bin and /sbin, all packages overriding busybox must install the bins in /usr/bin and /usr/sbin
2009-01-22db: fix purging of packages from databaseTimo Teras1-4/+3
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-22db: print files when (un)installing if --verboseNatanael Copa1-0/+8
2009-01-22db: always create directories during installNatanael Copa1-3/+1
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-21db: let apk_db_open() leave working dir as it wasNatanael Copa1-0/+2
2009-01-19db: try creating db if locking failsTimo Teras1-0/+10
Otherwise creating rootfs from scratch with --initdb cannot be locked due to the lock file path missing.
2009-01-18db: create .apk-new even if file not in dbNatanael Copa1-5/+8
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-17db: database locking and creation to part of opening itTimo Teras1-49/+95
Add flags field to db open call. Also make error reporting quite a bit more detailed.
2009-01-17del: proper ordering of file db entry deletionTimo Teras1-3/+1
2009-01-16db: apk_db_read_state() needs to be before apk_db_add_repository()Timo Teras1-9/+13
Otherwise installed db load fails due to internal reasons. This would cause a lot of other funny stuff happen.
2009-01-16db: make fetching from other than first repository workTimo Teras1-2/+13
2009-01-16index: write out only packages specified in command lineTimo Teras1-13/+28
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-16db: fix relative --root to work after apk_db_create callTimo Teras1-0/+1
This was broke on --initdb addition to add applet since apk_db_create changes the working directory.
2009-01-16db: set the perms to /var/lib/apk/* to 644Natanael Copa1-4/+4
this allows non-root users to query the database.
2009-01-16db, hash: fix package purging/upgrading to update filedb properlyTimo Teras1-45/+53
2009-01-16db: try create root in case it does not existNatanael Copa1-0/+1
But we dont bother try create all subdirs (i.e mkdir -p ...)
2009-01-15db: index file location is a URLTimo Teras1-1/+1
2009-01-14audit: new command to check changed filesTimo Teras1-14/+26
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-14db: keep only filename in file entries, hash by both directory and fileTimo Teras1-19/+54
2009-01-13add: --initdb to replace create appletTimo Teras1-13/+10
2009-01-13db: hash files by name, instead of keep two directory listsTimo Teras1-80/+60
2009-01-13info: implement who owns packages query (apk_info -W)Timo Teras1-3/+37
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-13apk: per applet optionsTimo Teras1-1/+6