Difference between revisions of "Apk spec"

From Alpine Linux
Jump to: navigation, search
(Remove References to Blob since that is just an internal implementation structure and not apart of the spec)
(Add Provider priority (k))
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Draft}}
 +
 
This page is to describe and formalize the specication of 'apk' package manager.
 
This page is to describe and formalize the specication of 'apk' package manager.
  
Line 11: Line 13:
 
! Description
 
! Description
 
! Field Data Format
 
! Field Data Format
 +
! regex
 
! install-db
 
! install-db
 
! package-index
 
! package-index
Line 17: Line 20:
 
| Architecture
 
| Architecture
 
| ?
 
| ?
 +
| <nowiki>^A:\S+$</nowiki>
 
| ?
 
| ?
| ?
+
| yes
 
|-
 
|-
 
| C
 
| C
Line 25: Line 29:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| D
 
| D
Line 31: Line 36:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| F
 
| F
Line 37: Line 43:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| I
 
| I
Line 43: Line 50:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| L
 
| L
Line 49: Line 57:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| M
 
| M
Line 55: Line 64:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| P
 
| P
 +
| Package Name  (no version, just the plain name)
 
| ?
 
| ?
 
| ?
 
| ?
 
| ?
 
| ?
| ?
+
| yes
 
|-
 
|-
 
| R
 
| R
Line 67: Line 78:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| S
 
| S
 
| Package Size
 
| Package Size
 
| ?
 
| ?
 +
| <nowiki>^S:(\d+)$</nowiki>
 
| ?
 
| ?
| ?
+
| yes
 
|-
 
|-
 
| T
 
| T
Line 79: Line 92:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| U
 
| U
Line 85: Line 99:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| V
 
| V
Line 91: Line 106:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| Z
 
| Z
Line 97: Line 113:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| a
 
| a
Line 103: Line 120:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| c
 
| c
 +
| Git commit of aport
 +
| ?
 +
| ?
 
| ?
 
| ?
 +
| yes
 +
|-
 +
| k
 +
| Provider priority
 
| ?
 
| ?
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| i
 
| i
 +
| Automatic Install Condition (aka Install IF)
 
| ?
 
| ?
 
| ?
 
| ?
 
| ?
 
| ?
| ?
+
| yes
 
|-
 
|-
 
| m
 
| m
Line 121: Line 148:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| o
 
| o
Line 127: Line 155:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| q
 
| q
Line 133: Line 162:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| p
 
| p
Line 139: Line 169:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| yes
 
|-
 
|-
 
| r
 
| r
Line 145: Line 176:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| s
 
| s
Line 151: Line 183:
 
| ?
 
| ?
 
| ?
 
| ?
 +
| no
 
|-
 
|-
 
| t
 
| t
 
| Build Timestamp (epoch)
 
| Build Timestamp (epoch)
 
| ?
 
| ?
 +
| <nowiki>^t:(\d+)$</nowiki>
 
| ?
 
| ?
| ?
+
| yes
 
|}
 
|}
  
 +
= File Formats =
  
; A
+
== Index ==
: Architecture
 
 
 
; C
 
: Pull Checksum
 
 
 
; D
 
: Pull Dependencies
 
 
 
; F
 
: file path
 
 
 
; I
 
: Package Installed Size
 
: see package.c
 
 
 
; L
 
: License
 
 
 
; M
 
: File Permissions
 
 
 
; P
 
:
 
 
 
; R
 
: Get File
 
 
 
; S
 
: Package Size
 
 
 
; T
 
: Package Description
 
 
 
; U
 
: Package URL
 
 
 
; V
 
: Package Version
 
 
 
; Z
 
: Pull Checksum
 
 
 
; a
 
: Check File Existense - if file from line above, using F: keyword, doesn't exist <nowiki>goto bad_entry()</nowiki>. If file does exist then slide to next case which is M and check for files proper uid, gid, and permissions.
 
 
 
; c
 
:
 
 
 
; i
 
:
 
 
 
; m
 
: maintainer
 
 
 
; o
 
: Package Origin
 
 
 
; q
 
: Replaces Priority
 
 
 
; p
 
: Provides
 
: in database.c Does nothing and slides to next case s in source
 
 
 
; r
 
: Pull Dependencies
 
 
 
; s
 
: Get Tag Id
 
  
; t
+
== Install DB ==
: Build Timestamp (epoch)
 
  
 +
== Package File ==
  
= APINDEX =
+
= APKINDEX =
  
 
= Archive =
 
= Archive =
  
= APKBUILD =
+
[[Category:Package Manager]]

Latest revision as of 16:00, 3 January 2018

Underconstruction clock icon gray.svg
This material is work-in-progress ...

Do not follow instructions here until this notice is removed.
(Last edited by Jirutka on 3 Jan 2018.)

This page is to describe and formalize the specication of 'apk' package manager.

Database

Syntax

Starts on line number 800 in database.c, also check package.c

Field Character Description Field Data Format regex install-db package-index
A Architecture ? ^A:\S+$ ? yes
C Pull Checksum ? ? ? yes
D Pull Dependencies ? ? ? yes
F File Path ? ? ? no
I Package Installed Size ? ? ? yes
L License ? ? ? yes
M File Permissions ? ? ? no
P Package Name (no version, just the plain name) ? ? ? yes
R Get File ? ? ? no
S Package Size ? ^S:(\d+)$ ? yes
T Package Description ? ? ? yes
U Package URL ? ? ? yes
V Package Version ? ? ? yes
Z Pull Checksum ? ? ? no
a Check for file existence ? ? ? no
c Git commit of aport ? ? ? yes
k Provider priority ? ? ? yes
i Automatic Install Condition (aka Install IF) ? ? ? yes
m Maintainer ? ? ? yes
o Package Origin ? ? ? yes
q Replaces Priority ? ? ? no
p Package Provides ? ? ? yes
r Pull Dependencies ? ? ? no
s Get Tag Id ? ? ? no
t Build Timestamp (epoch) ? ^t:(\d+)$ ? yes

File Formats

Index

Install DB

Package File

APKINDEX

Archive