aboutsummaryrefslogtreecommitdiffstats
path: root/src/state.c
Commit message (Collapse)AuthorAgeFilesLines
* applets: start using solver codeTimo Teräs2011-09-091-1059/+0
| | | | | | | | | still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
* apk: improve indented printingTimo Teräs2011-07-221-1/+1
| | | | | * fixup the help messages to align up properly * refresh screen width on SIGWINCH
* state: fix commit order of packagesTimo Teräs2011-05-231-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.
* state: make some of the interactive messages line up with apt which weren't ↵William Pitcock2011-04-261-3/+3
| | | | already
* state: make the progress bar look niceWilliam Pitcock2011-04-091-3/+3
|
* state: late locking for install_if package selectionTimo Teräs2011-03-311-0/+6
| | | | improves behaviour under certain corner case conditions.
* state: use db in own struc when committingNatanael Copa2011-03-301-2/+2
| | | | The db parameter to apk_state_commit is not needed so we remove it.
* state, info: implement install_if (fixes #443)Timo Teräs2011-03-291-56/+109
| | | | | Implement the logic for install_if lines. Update info applet to also display the install_if related fields.
* state: fix late locking of packagesTimo Teräs2011-03-271-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.
* apk: improve progress barTimo Teräs2011-03-191-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
* upgrade: reset world dependencies during traversalTimo Teräs2011-03-191-6/+12
| | | | | This allows us to get apk-tools dependencies get reset at proper time in world. As a bonus, it reduces code amount.
* state: lock package late for names specified on command lineTimo Teräs2011-03-191-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.
* apk: show progress bar by default for tty controlled runsTimo Teräs2011-03-161-7/+4
| | | | and make the progress bar disappear on regular runs too.
* pkg, db: allow index with unsupported features to be loadedTimo Teräs2011-01-031-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.
* pkg: dependencies to specific package checksumTimo Teräs2011-01-011-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.
* upgrade: perform upgrade of apk-tools first if availableTimo Teräs2011-01-011-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.
* various: fix breakage from converting dependency versions to atomsTimo Teräs2011-01-011-0/+1
| | | | | The version now needs to be initialized atom always, since it's dereferenced in various places.
* various: use 'atoms' for certain package field and misc fixesTimo Teräs2010-12-141-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
* state: handle properly packages which are installedTimo Teräs2010-06-151-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.
* First steps for libapkNatanael Copa2010-06-111-0/+1
|
* state: fix error printingTimo Teräs2010-06-081-2/+4
|
* all: rework how arrays workTimo Teräs2010-06-051-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.
* state: fix a crash in error printingTimo Teräs2010-06-031-1/+1
|
* state: print missing package names on errorTimo Teräs2010-06-011-8/+22
| | | | | especially important if the package requested from command line does not exist. otherwise we would not print an error at all.
* state: improve error messages from dependency failuresTimo Teräs2010-06-011-23/+126
| | | | | Print more information why installation changeset calculation failed. Fixes #187.
* state: modify reinstallation printsTimo Teräs2010-05-271-8/+11
| | | | | To print upgrading if package is actually being changed instead of pure reinstall.
* state: show changed packages as upgradesTimo Teräs2010-05-271-2/+10
| | | | | If version is equal, but package contents are different we should show the package being upgraded.
* state: fix deletion of obsoleted dependenciesTimo Teräs2010-05-271-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.
* state: virtual packages are always installableTimo Teras2010-03-151-0/+2
| | | | | they do not have any package associated. this is indicated by package with zero installed_size.
* state: check package availability alwaysTimo Teras2010-03-101-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.
* state: write status for each package changeNatanael Copa2010-02-261-8/+17
| | | | | | | prints like: (1/12) Installing... (2/12) Installing... etc...
* state: show percent in progress barNatanael Copa2010-02-261-10/+13
| | | | | This makes things a little bit nicer when installing from network with slow lines.
* state: Default interactive action is YesNatanael Copa2009-12-251-1/+1
| | | | | When pressing only <enter> on the question "..continue [Y/n]?" then lets take that as a "yes"
* state: require an available package for re-installsTimo Teras2009-08-191-1/+2
| | | | | otherwise we would not be able to pick a package that exists as a candidate for re-installation. fixes #138.
* add, del, db: fix various bugs introduced by earlier commitsTimo Teras2009-08-131-9/+8
| | | | | - make virtual packages work again - make apk del (for non-empty packages) work again
* add: refuse to add bad dependencies to worldTimo Teras2009-08-131-0/+3
| | | | | allow also overriding old (possibly bad) world dependency. hopefully it's more bullet proof now.
* db: implement triggers (fixes #45)Timo Teras2009-08-131-2/+2
|
* db, pkg: separate structure for fields of installed packagesTimo Teras2009-08-121-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.
* state: installed package does not need downloadingTimo Teras2009-08-061-3/+2
| | | | so do not skip it even if it's no longer available.
* state: bug fixTimo Teras2009-08-061-2/+1
|
* state: do not look into world in state_newTimo Teras2009-08-061-18/+25
| | | | | instead enforce world dependencies when the package name is first referenced upon.
* db: prefer local repositories, and implement --no-networkTimo Teras2009-08-061-0/+5
| | | | this helps boots sequence when network is not available.
* state: indent package listsTimo Teras2009-08-061-7/+10
|
* state, update: fixesTimo Teras2009-08-061-1/+3
|
* state: ignore missing world dependencies with --force and --quietTimo Teras2009-08-061-1/+1
|
* state: world might be emptyTimo Teras2009-08-051-1/+1
| | | | so do not choke on it.
* fix: new applet to reinstall and fix packageTimo Teras2009-08-041-2/+4
| | | | | also makes it possibly to upgrade package without adding it to top-level deps. fixes #69.
* state: fix world dependencies to be honored alwaysTimo Teras2009-08-041-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.
* del: add '-r' to remove top-level dependencies recursivelyTimo Teras2009-08-041-11/+25
| | | | | and by default just update the world, and dump a lost of packages that are not removed. fixes #47.
* apk: use *at instead of chdir+normal file syscallTimo Teras2009-07-311-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.