Difference between revisions of "Apk spec"

From Alpine Linux
Jump to: navigation, search
m (Created Base Table to move syntax field character and such into)
(Add Provider priority (k))
 
(21 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
 
|-
 
|-
| row 1, cell 1
+
| A
| row 1, cell 2
+
| Architecture
| row 1, cell 3
+
| ?
| row 1, cell 4
+
| <nowiki>^A:\S+$</nowiki>
| row 1, cell 5
+
| ?
 +
| 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
 +
| ?
 +
| <nowiki>^S:(\d+)$</nowiki>
 +
| ?
 +
| 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
 
|-
 
|-
| row 2, cell 1
+
| t
| row 2, cell 2
+
| Build Timestamp (epoch)
| row 2, cell 3
+
| ?
| row 2, cell 4
+
| <nowiki>^t:(\d+)$</nowiki>
| row 2, cell 5
+
| ?
 +
| yes
 
|}
 
|}
  
 +
= File Formats =
  
; A
+
== Index ==
: Architecture
 
 
 
; C
 
: Blob 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
 
: Blob 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
 
: Blob Pull Dependencies
 
 
 
; s
 
: Get Tag Id
 
  
; t
+
== Install DB ==
: Build Timestamp (epoch)
 
  
= Blob =
+
== 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