aboutsummaryrefslogtreecommitdiffstats
path: root/src/add.c
Commit message (Collapse)AuthorAgeFilesLines
* remove apk_time() as it is causing problems with shared objectsTimo Teräs2020-02-181-1/+1
| | | | | | | | | Instead, to make sure test mode produces same output, redefine time() for the test mode binary. Reverts parts of 0b82bcc53e60. (cherry picked from commit 45d313c51cbae20bce0789db86ba82ff79c9b202)
* add: always use UTC for virtual package versionsMax Rees2019-11-181-1/+1
|
* Make tests pass and introduce a memory leakFredrik Gustafsson2019-11-181-1/+1
| | | | | | | | Since 37fbafcd928c466c82c892a7868d686d710e5d07 the tests hasn't worked since a string on the stack was added as version for a virtual package. Instead create the version string on the heap and then simply leak it. A short running program as apk shouldn't need to worry about memory leaks.
* add: fix virtual package id generationTimo Teräs2019-07-021-16/+35
| | | | | | | | | | | Fixes 37fbafcd by adding more input to the hash than just second grained time stamp - collisions would happen when running apk scripted. For virtual package the hash works only as unique identifier, so try to add elements that should make it unique in most cases. Fixes #10648
* use fixed system time in test mode to have fixed test outputTimo Teräs2019-06-031-1/+1
| | | | fixes test suite regression from previous commit
* add: make virtual packages upgradeable (ref #9957)Timo Teräs2019-06-031-3/+12
| | | | | | | | | | | | | | | Originally the virtual packages could have dependencies added to it. However, commit b06e3b99 broke this behaviour to fix error reporting. The root cause however was that the virtual depedency package was not properly versioned. This fixes to use current date/time as the package version, and constructs the "faked" package hash from it. This effectively makes "add -t virtpkg deps.." replace the dependencies which should be the desired behaviour for "abuild deps". 'world' dependency to the generated virtual package is also now versioned to make sure it get's upgraded.
* fix error reporting for virtual package additionTimo Teräs2018-11-021-1/+1
| | | | | Move addition of virtual package after the dependencies have been parsed as then the reverse dependency structers can be populated correctly.
* add: add --latest flag to help analyze why upgrade failsTimo Teräs2018-09-111-0/+6
|
* add: child dependencies can never take a pinning, give a useful errorWilliam Pitcock2018-02-201-3/+4
|
* apk: usage: cleanup help text when no applet is selectedWilliam Pitcock2018-01-091-0/+1
|
* split --force to several --force-[type] optionsTimo Teräs2018-01-031-3/+3
| | | | | | | | | This unloads --force as several of the things are really not wanted together. E.g. --force-refresh is a lot different from --force-broken-world and doing --force to get the other might introduce unwanted behaviour. --force is still kept for backwards compatibility and it enables most things --force was used for.
* version: add support for fuzzy version matchingWilliam Pitcock2017-05-271-1/+1
| | | | | This is useful for requirements such as: python3=~3.6, which would match python3-3.6.[0-9]. This implementation should in theory be backwards compatible with the implementation in Adelie.
* allow virtual packages beginning with dot by default on tmpfs installsTimo Teräs2015-04-241-3/+3
| | | | | the allows update-kernel script to work on tmpfs install before cache is configured.
* rework option parsing to have a group structureTimo Teräs2014-10-081-16/+20
| | | | | Add also a new 'commit' group that is the common options for all applets that can commit package changes.
* add, del: main dependencies -> 'world'Dubiousjim2013-06-281-1/+1
| | | | Acked-by: Natanael Copa <ncopa@alpinelinux.org>
* various: applet help text and comment fixesDubiousjim2013-06-281-2/+3
| | | | Acked-by: Natanael Copa <ncopa@alpinelinux.org>
* applets: unify help message by removing final dotsTimo Teräs2013-06-191-3/+2
|
* apk: use string array in applet mains, separate apk_name_foreach_matchingTimo Teräs2013-06-181-8/+9
|
* db: unify handling of special packagesTimo Teräs2013-05-301-1/+0
| | | | | | make cache a special kind of repository, and automatically cache special packages (virtual packages, or ones installed from command line). add test cases for handling virtual packages. fixes #1617.
* solver, test: make conflicts unconditionalTimo Teräs2012-02-291-2/+2
| | | | | | | Solver will now never report partial solution where a conflict constraint is not satisfied. The is because with --force we might install the partial solution; and if conflicted packages were to be installed we might have extra trouble.
* add: allow specifying repository tag with added virtual packagesTimo Teräs2012-02-281-2/+12
|
* solver, db: repository pinning improvementsTimo Teräs2012-02-151-1/+1
| | | | | | | | * solver internally calculates now using tags; not repository masks * installeddb now contains the tag name where the package came from -> we can now handle upgrades properly * the pinning is still a preference, and not strictly enforced; versioned dependencies may overrule preference
* solver, upgrade: properly detect missing repository tagsTimo Teräs2012-01-171-7/+0
| | | | | | | * upgrade needs explicit check so we don't try self-upgrade (which would print additional messages on screen) * add can fix problems, so check against the new world * merge the code in few places
* add: make repository tag pinning strongerTimo Teräs2012-01-131-1/+1
| | | | | | Previously we would not upgrade just by doing "apk add foo@tag" if foo was already installed. It required explicit '-u'. This allows 'apk add' to explicitly prefer the newly specified pinning.
* db: support line feed as 'world' dependency separatorTimo Teräs2012-01-121-1/+1
| | | | | * default writing the world with spaces if a space is found (for backwards compatibility) for now
* add: fail if repository tag does not existTimo Teräs2012-01-121-1/+9
|
* add: print an error about malformed argumentsTimo Teräs2012-01-061-1/+4
|
* pkg, info: remember installed packages "replaces"Timo Teräs2011-10-181-2/+3
| | | | | | | | | | | | | "replaces" is now turned to a full dependency type list, so you can make package overwrite files only certain versions of the package (though, we should probably take this into account already at solution calculation phase). Also make 'info --replaces' print the "replaces" of the package. This is in preparation for the policy package support, which still requires "replacement priority" field to decide which packages' files get the preference.
* solver: inheritable solver flagsTimo Teräs2011-09-161-2/+6
| | | | | | allow per-name solver flags to be inheritable, and use them in self-upgrade, add -u and the fix applet. this gives more familiar behaviour for the upgrades.
* all: update copyright year statementTimo Teräs2011-09-131-1/+1
|
* solver: add per-name specific flags, and fix the fix appletTimo Teräs2011-09-131-5/+9
|
* applets: start using solver codeTimo Teräs2011-09-091-36/+13
| | | | | | | | | still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
* state: use db in own struc when committingNatanael Copa2011-03-301-1/+1
| | | | The db parameter to apk_state_commit is not needed so we remove it.
* add: use default arch instead of noarch, improve errorsTimo Teräs2011-01-051-0/+1
| | | | | | | Packages without architecture should get the platforms default architecture (so we are backwards compatible). Only the virtual packages should get 'noarch' by default. Also print full path to the index file which failed.
* various: use 'atoms' for certain package field and misc fixesTimo Teräs2010-12-141-1/+1
| | | | | | | - 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
* First steps for libapkNatanael Copa2010-06-111-0/+1
|
* state: improve error messages from dependency failuresTimo Teräs2010-06-011-14/+12
| | | | | Print more information why installation changeset calculation failed. Fixes #187.
* add: print all failing packages instead of only firstNatanael Copa2010-02-261-3/+5
| | | | We want see all packages that fails to install and not only the first
* add, del, db: fix various bugs introduced by earlier commitsTimo Teras2009-08-131-2/+3
| | | | | - 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-20/+20
| | | | | allow also overriding old (possibly bad) world dependency. hopefully it's more bullet proof now.
* db, audit: audit symlinks (by hash of the link target)Timo Teras2009-08-111-1/+1
|
* add: world needs to be updated before state instantiationTimo Teras2009-08-061-2/+1
| | | | | otherwise old world deps are used and unintended results will happen.
* state: bug fixTimo Teras2009-08-061-1/+2
|
* all: implement database open optionsTimo Teras2009-08-061-24/+19
| | | | so user can override trusted keys directory and repositories file.
* state: fix world dependencies to be honored alwaysTimo Teras2009-08-041-0/+3
| | | | | | 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.
* 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.
* add, fetch: make handling of special options more logicalTimo Teras2009-07-241-41/+0
|
* db: remove APK_NAME_VIRTUAL flagTimo Teras2009-07-241-1/+1
| | | | | use the package 'installed_size' == 0 as a test instead for dependency only packages.
* db: create cache index with non-repository packagesTimo Teras2009-07-241-7/+20
| | | | | this enables virtual packages and files specified from command line to work on non-harddisk installs.
* signing: verify and generate identityTimo Teras2009-07-221-2/+2
| | | | | | fixes verification of non-repository packages while installing them. this is final thing needed for full signing support (fixes #46).