TODO:apk

From Alpine Linux
Revision as of 01:44, 4 June 2017 by TemptorSent (talk | contribs) (→‎pax Archive Tool: Add possible usage and TODO items.)

TODO: apk

Documentation

  • Document current apk internals.
  • Define 'virtual', 'alternative', and their proper use.


Alternatives

Plugable Layouts

Manifests

apk manifest [-v] (<pkg>|<.apk>)...

Generate a manifest of files contained within the specified package(s)/apk(s).

Current default format is: sumfunc:checksum path

With verbose flag: pkgname: sumfunc:checksum path

Proposed canonical format: pkg:arch/pkgname-pkgver\tmode\tuser:group\tsize\ttimestamp\tsumfunc:checksum\tpath

TODO Items

  • Define a canonical default manifest format which contains all available metadata in a reliably parsable format.
  • Add ability to specify manifest format and fields in a manner similar to 'stat'.
  • Add ability to select a subset of files to display in a manner similar to tar. (i.e. 'etc/' or 'lib/*.so')
  • Add ability to generate manifest from a filesystem directory structure or path list.
  • (DONE - kaniini) Add ability to generate manifest for .apk file in addition to installed packages.

.apk Generator

apk gen --key-file=... --control-dir=... --data-dir=...

Generates a well-formed .apk from a key file and two filesystem directories -- one for the control portion and one for the data portion.

TODO Items:

  • Document current WIP (kaniini).
  • Add ability to use an archive as the source for control or data directories.
  • Add ability to use a pre-generated manifest as the source file list and provider of package's file meta-data.

pax Archive Tool

apk archive list -f file.apk [pattern list...]

apk archive extract -f file.apk [pattern list...]

apk archive create -f file.apk [file list...]

apk archive append -f file.apk [file list...]

Low-level tools to manipulate .apk archives directly.

TODO Items:

  • Define proper applet and command names.
  • Determine appropriate flags.
  • Provide ability to supply include/exclude file/pattern list on STDIN, on the command line, or listed in external files.