Apk spec: Difference between revisions

From Alpine Linux
(More updates to database keywords and syntax)
(Add Provider priority (k))
(22 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 6: Line 8:
Starts on line number 800 in database.c, also check package.c
Starts on line number 800 in database.c, also check package.c


; A
{| class="wikitable"
: Architecture
|-
 
! Field Character
; C
! Description
: Blob Pull Checksum
! Field Data Format
 
! regex
; D
! install-db
: Pull Dependencies
! package-index
 
|-
; F
| A
: file path
| Architecture
 
| ?
; I
| <nowiki>^A:\S+$</nowiki>
: Package Installed Size
| ?
: see package.c
| yes
 
|-
; L
| C
: License  
| Pull Checksum
 
| ?
; M
| ?
: File Permissions
| ?
 
| yes
; P
|-
:
| D
 
| Pull Dependencies
; R
| ?
: Get File
| ?
 
| ?
; S
| yes
: Package Size
|-
 
| F
; T
| File Path
: Package Description
| ?
 
| ?
; U
| ?
: Package URL
| no
 
|-
; V
| I
: Package Version
| Package Installed Size
 
| ?
; Z
| ?
: Blob Pull Checksum
| ?
 
| yes
; 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.
| L
 
| License
; c
| ?
:
| ?
 
| ?
; i
| yes
:
|-
 
| M
; m
| File Permissions
: maintainer
| ?
 
| ?
; o
| ?
: Package Origin
| no
 
|-
; q
| P
: Replaces Priority
| Package Name  (no version, just the plain name)
 
| ?
; p
| ?
: Provides  
| ?
: in database.c Does nothing and slides to next case s in source
| 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
|-
| t
| Build Timestamp (epoch)
| ?
| <nowiki>^t:(\d+)$</nowiki>
| ?
| yes
|}


; r
= File Formats =
: Blob Pull Dependencies


; s
== Index ==
: Get Tag Id


; t
== Install DB ==
: Build Timestamp (epoch)


= Blob =
== Package File ==


= APINDEX =
= APKINDEX =


= Archive =
= Archive =


= APKBUILD =
[[Category:Package Manager]]

Revision as of 16:00, 3 January 2018

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