Feature #574

implement provides

Added by Timo Teräs about 1 year ago. Updated 26 days ago.

Status:Closed Start date:04/08/2011
Priority:Normal Due date:
Assignee:Timo Teräs % Done:

0%

Category:-
Target version:Alpine Linux - Alpine 2.4.0

Description

Packages should be able to export tags which can be used in dependencies.

E.g. vlc could export tag plugin-api=2. And clients could depend on vlc(plugin-api)>=2 instead of exact version number.

This is basically same as "provides". Provides support is just more generic, especially if we allow versioned provides, e.g. "provides=vlc-plugin-api=2". If we don't want to pollute the regular package namespace we can allow some special character in provides, e.g. "provides=vlc:plugin-api=2".


Related issues

related to Alpine Package Keeper - Feature #511: apk-tools: allow wildcards on apk add/del/fix/fetch/versi... New 01/08/2011

Associated revisions

Revision e128c95f
Added by Timo Teräs 3 months ago

pkg: add field for provides as 'p'

ref #574

Revision 99145e2c
Added by Timo Teräs 3 months ago

all: introduce apk_provides and use it in apk_name

in preparation for provides support. implements also some
dependency satisfaction helper routines.

ref #574.

Revision 12bdec38
Added by Timo Teräs 3 months ago

solver, dot: elementary provides fixes

implementation is still not near finished, but now at least it
can handle it to a minimum degree. many cases are not done right
yet, though. ref #574.

Revision 1074c4d3
Added by Timo Teräs 3 months ago

solver: have most inherited things per-package and clean ups

Required for provides support as package might be pulled in via
non-primary package name. This allows relatively easily to pass
through inherited flags via the provided names. ref #574.

Revision b7a22e55
Added by Timo Teräs 3 months ago

solver, test: implements more provides things, add tests

ref #574

Revision 536c2197
Added by Timo Teräs 3 months ago

solver: allow multiple packages with same virtual provides

ref #574

Revision 179b453a
Added by Timo Teräs 3 months ago

solver: fix conflicting provides detection

ref #574

Revision 2655d27e
Added by Timo Teräs 3 months ago

solver: consider provided names also for preference

ref #574

History

Updated by Natanael Copa about 1 year ago

  • Target version set to Alpine 2.3.0

Updated by Timo Teräs 10 months ago

  • Subject changed from package tags and dependencies syntax for them to implement provides
  • Description updated (diff)

This feature is subset of 'provides' - it's better to just implement provides properly. Updating subject and description accordingly.

Updated by Natanael Copa 7 months ago

  • Target version changed from Alpine 2.3.0 to Alpine 2.4.0

Updated by Timo Teräs 3 months ago

  • Status changed from New to Resolved

Basic provides support should be now done.

provides="foo" (no version specified) will provide a virtual name "foo". Multiple packages can be installed providing same name as long as none of them specify a version. In case a package depends on a virtual package, none of the providers will get automatically installed; the user must explicitly choose which package to choose (even if there's only one provider for the virtual name).

Use when providing abstracted functionality: e.g. "mailer", "database-server", "/usr/bin/php" and similar.

provides="bar=1.2" (version specified) will provide a "concrete" package. That is any package providing bar (either by being named so, or by providing the same name) is not allowed to be installed simultaneously. If someone depends on the provided name, the dependency will be automatically installed, and preference is mostly done according to provided version.

Use when providing specific features that should get automatically pulled in. e.g "so:libfoo.so.1=1.2.0", "vlc-plugin-abi=2.0".

Updated by Natanael Copa 26 days ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF