summaryrefslogtreecommitdiff
path: root/src/state.c
AgeCommit message (Collapse)AuthorFilesLines
2011-09-09applets: start using solver codeTimo Teräs1-1059/+0
still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
2011-07-22apk: improve indented printingTimo Teräs1-1/+1
* fixup the help messages to align up properly * refresh screen width on SIGWINCH
2011-05-23state: fix commit order of packagesTimo Teräs1-6/+17
commit 4e72075fbab introduced a bug where package installation might happen in wrong order (reminder for self to separate the package version deduction to separate step from installation ordering). this restricts the earlier commit to not mingle with the install order.
2011-04-26state: make some of the interactive messages line up with apt which weren't ↵William Pitcock1-3/+3
already
2011-04-09state: make the progress bar look niceWilliam Pitcock1-3/+3
2011-03-31state: late locking for install_if package selectionTimo Teräs1-0/+6
improves behaviour under certain corner case conditions.
2011-03-30state: use db in own struc when committingNatanael Copa1-2/+2
The db parameter to apk_state_commit is not needed so we remove it.
2011-03-29state, info: implement install_if (fixes #443)Timo Teräs1-56/+109
Implement the logic for install_if lines. Update info applet to also display the install_if related fields.
2011-03-27state: fix late locking of packagesTimo Teräs1-1/+1
commit 4e72075fbab introduced late locking for top level packages, but used the wrong package's top level flag for the check. this fixes a problem that dependencies might not get pulled in.
2011-03-19apk: improve progress barTimo Teräs1-9/+11
* make it as wide as the screen * make sure it's drawn after package change * and draw it using ansi escapes in line buffered stderr
2011-03-19upgrade: reset world dependencies during traversalTimo Teräs1-6/+12
This allows us to get apk-tools dependencies get reset at proper time in world. As a bonus, it reduces code amount.
2011-03-19state: lock package late for names specified on command lineTimo Teräs1-4/+11
This will fix certain scenarios where multiple packages are installed with full package files specified on command line and they depend on each other.
2011-03-16apk: show progress bar by default for tty controlled runsTimo Teräs1-7/+4
and make the progress bar disappear on regular runs too.
2011-01-03pkg, db: allow index with unsupported features to be loadedTimo Teräs1-1/+10
Just disable installation of packages using the new stuff. Also flag lower case package info fields as non-critical and allow installation even if that features is not supported.
2011-01-01pkg: dependencies to specific package checksumTimo Teräs1-14/+9
When package is installed from commandline, we should always install that specific instance of package (never favor repository version if it has difference identity). Otherwise we might not always end-up installing the .apk given on command line. The dependency is now against specific checksum identity (marked with >< dependency comparison). Fixes #492.
2011-01-01upgrade: perform upgrade of apk-tools first if availableTimo Teräs1-5/+5
Also re-exec's apk-tools to perform rest of the upgrade using the new apk-tools. This allows handling of new apk-tools features properly. Fixes #140.
2011-01-01various: fix breakage from converting dependency versions to atomsTimo Teräs1-0/+1
The version now needs to be initialized atom always, since it's dereferenced in various places.
2010-12-14various: use 'atoms' for certain package field and misc fixesTimo Teräs1-14/+17
- implement a hash table for commonly shared fields such as license, version and architecture - use macroes to print blobs or pkgname-pkgver strings - fix some old cruft
2010-06-15state: handle properly packages which are installedTimo Teräs1-0/+3
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-11First steps for libapkNatanael Copa1-0/+1
2010-06-08state: fix error printingTimo Teräs1-2/+4
2010-06-05all: rework how arrays workTimo Teräs1-23/+17
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-03state: fix a crash in error printingTimo Teräs1-1/+1
2010-06-01state: print missing package names on errorTimo Teräs1-8/+22
especially important if the package requested from command line does not exist. otherwise we would not print an error at all.
2010-06-01state: improve error messages from dependency failuresTimo Teräs1-23/+126
Print more information why installation changeset calculation failed. Fixes #187.
2010-05-27state: modify reinstallation printsTimo Teräs1-8/+11
To print upgrading if package is actually being changed instead of pure reinstall.
2010-05-27state: show changed packages as upgradesTimo Teräs1-2/+10
If version is equal, but package contents are different we should show the package being upgraded.
2010-05-27state: fix deletion of obsoleted dependenciesTimo Teräs1-1/+2
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-03-15state: virtual packages are always installableTimo Teras1-0/+2
they do not have any package associated. this is indicated by package with zero installed_size.
2010-03-10state: check package availability alwaysTimo Teras1-7/+16
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-02-26state: write status for each package changeNatanael Copa1-8/+17
prints like: (1/12) Installing... (2/12) Installing... etc...
2010-02-26state: show percent in progress barNatanael Copa1-10/+13
This makes things a little bit nicer when installing from network with slow lines.
2009-12-25state: Default interactive action is YesNatanael Copa1-1/+1
When pressing only <enter> on the question "..continue [Y/n]?" then lets take that as a "yes"
2009-08-19state: require an available package for re-installsTimo Teras1-1/+2
otherwise we would not be able to pick a package that exists as a candidate for re-installation. fixes #138.
2009-08-13add, del, db: fix various bugs introduced by earlier commitsTimo Teras1-9/+8
- make virtual packages work again - make apk del (for non-empty packages) work again
2009-08-13add: refuse to add bad dependencies to worldTimo Teras1-0/+3
allow also overriding old (possibly bad) world dependency. hopefully it's more bullet proof now.
2009-08-13db: implement triggers (fixes #45)Timo Teras1-2/+2
2009-08-12db, pkg: separate structure for fields of installed packagesTimo Teras1-6/+4
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-06state: installed package does not need downloadingTimo Teras1-3/+2
so do not skip it even if it's no longer available.
2009-08-06state: bug fixTimo Teras1-2/+1
2009-08-06state: do not look into world in state_newTimo Teras1-18/+25
instead enforce world dependencies when the package name is first referenced upon.
2009-08-06db: prefer local repositories, and implement --no-networkTimo Teras1-0/+5
this helps boots sequence when network is not available.
2009-08-06state: indent package listsTimo Teras1-7/+10
2009-08-06state, update: fixesTimo Teras1-1/+3
2009-08-06state: ignore missing world dependencies with --force and --quietTimo Teras1-1/+1
2009-08-05state: world might be emptyTimo Teras1-1/+1
so do not choke on it.
2009-08-04fix: new applet to reinstall and fix packageTimo Teras1-2/+4
also makes it possibly to upgrade package without adding it to top-level deps. fixes #69.
2009-08-04state: fix world dependencies to be honored alwaysTimo Teras1-36/+97
previously they might have been skipped on certain situations. this also fixes some other reverse dependency enforcements and implements new "pending" state for locked name.
2009-08-04del: add '-r' to remove top-level dependencies recursivelyTimo Teras1-11/+25
and by default just update the world, and dump a lost of packages that are not removed. fixes #47.
2009-07-31apk: use *at instead of chdir+normal file syscallTimo Teras1-1/+1
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.