-
Notifications
You must be signed in to change notification settings - Fork 2
/
scroll-specifications
225 lines (175 loc) · 8.59 KB
/
scroll-specifications
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
pkgname:str
The name of the packages, must only contain lower case
letter, digits, plus signs, underscores, dots and hyphens.
The name may not start with a hyphen or a dot. The length
of the name must not exceed 64 characters.
Default prefixes:
lib32- i?86 library for 64-bits
bin32- i?86 binary for 64-bits
python- Python 3 modules
python2- Python 2 modules
haskell- Haskell modules
java- Java modules
issue9- Google Go modules (go is reserved for Go! as it predates Go)
appleswift- Apple Swift modules (swift is reserved for the original Swift language)
Default suffixes:
-git git repository download
-cvs CVS repository download
-svn SVN repository download
-hg Mercurial repository download
-darcs Darcs repository download
-bzr Bazaar repository download
-old Old version of a library
-compat Old version of a binary with conflict avoidance
-lts Long term support
pkgver:str
The version of the software as released from the author.
It may only same characters as the package name, with the
exception for hyphens.
pkgrel:int=1
The release number of the scroll, reset to 1 when `pkgver`
is updated. May only contain digits.
epoch:int=0
Increase by 1 if the package version is lower than the
previous. That is, if the new package versioning system
breaks version comparison logic.
pkgdesc:str
Brief description of the package, keep it on one line and
try not to use the package's name.
upstream:str
The URL that is associated with the software being packaged.
Typically the project's website.
arch:list<str>
List of known architecture compatibilities. The architecture's
name for compatible, but prepended with a exclamation mark for
not compatible. The architecture names are in lowercase.
If architecture independent, the only architecture should
be `any`.
freedom:or-flag:SOFTWARE_SHAREABLE,SOFTWARE_COMMERCIAL,SOFTWARE_DERIVATIVE,
MEDIA_SHAREABLE,MEDIA_COMMERCIAL,MEDIA_DERIVATIVE,TRADEMARKED,PATENTED
SOFTWARE (a macro for SOFTWARE_SHAREABLE | SOFTWARE_COMMERCIAL |
SOFTWARE_DERIVATIVE) should be on if the software and all required
resource files are free, or if the packages does not contain any software.
MEDIA (a macro for MEDIA_SHAREABLE | MEDIA_COMMERCIAL | MEDIA_DERIVATIVE)
should be on if the package contain only free media files that are not a
requirement for the software, or if no such media exists in the package.
SOFTWARE_SHAREABLE and MEDIA_SHAREABLE should be used if the software or
media files, respectively is freely be shared unmodified and uncommerically.
SOFTWARE_COMMERCIAL and MEDIA_COMMERCIAL should be used if it can also
be shared commercially. SOFTWARE_DERIVATIVE and MEDIA_DERIVATIVE should be
used if derivatives can also be shared.
TRADEMARKED should be used if there is trademark protections in the package,
keep in mind that outside the U.S. it may not be necessary to use ™ or ® on
what is trademarked.
PATENTED should be used if the package contains patented information.
If the package does not contain software, SOFTWARE should be used so it does
not hide from ponies that put restrictions on software they install.
If the package does not contain media files, MEDIA should be used so it does
not hide from ponies that put restrictions on software they install.
license:list<str>
Licences that applies to the package, the part of the package that
the license applies to may be specified. If so, the license and the
that text should be separated by a colon and a space.
metalicense:list<(value:or-flag:¿F?, mask:or-flag:¿F?)?>?=None
F=NO_TRADEMARKS,NO_PATENTS,CONTRACT_BASED,COMMERCIAL,
DERIVATIVE,FSF_APPROVED,OSI_APPROVED,GPL_COMPATIBLE,COPYLEFT
Information about used licenses. `mark` is used for which fields that are
known, and `value` is used to indicate the value of the known fields.
NO_TRADEMARKS is used if the license prohibits trademark protection.
NO_PATENTS is used if the license prohibits patent protection.
CONTRACT_BASED is used if the license is contract based.
SHAREABLE is used if redistribution is allowed.
COMMERCIAL is used if commercial redistributions are allowed.
DERIVATIVE is used if derivative redistributions are allowed.
FSF_APPROVED is used if the license is approved by the Free Software Foundation.
OSI_APPROVED is used if the license is approved by the Open Source Initiative.
GPL_COMPATIBLE is used if the license if GNU General Publice License compatible.
COPYLEFT is used if the license is a copyleft license.
private:excl-flag:UNSUPPORTED,SUPPORTED,MANDITORY=UNSUPPORTED
Specify --private support status.
interactive:bool=False
Specify whether installation is interactive, this should be avoided.
conflicts:list<str>=[]
Packages that cannot be installed at the same time.
replaces:list<str>=[]
Packages that the package replaces.
provides:list<str>=[]
Virtual packages that the package provides, can be used to allow
selection of a package to provide a feature that multiple packages
provides.
extension:str?=None
Package that the package extends, meaning that the package is
meaningless without that package and should be uninstalled when
that package is uninstalled. Runtime dependency is implied.
variant:str?=None
Package that the package is an variant of, may or may not be
installed at the same time. It is implied that the package
provides the package of which it is an variant.
patches:str?=None
Package that the package patches when that package is built.
reason:str?=None
Reason why the scroll has been placed in its current repository;
every scroll in limbo should have this feild.
patchbefore:list<str>=[]
Other patches the patch must be applied before.
patchafter:list<str>=[]
Other patches that must be applied before the patch.
groups:list<str>=[]
Package groups that the package contains to, symbol names that
allow installation of multiple packages my specifying one name.
depends:list<str>=[]
Packages required by the package at runtime.
makedepends:list<str>=[]
Packages required by the package at maketime.
checkdepends:list<str>=[]
Packages required by the package at checktime.
All dependencies in makedepends are automatically included.
optdepends:list<str>=[]
Optional packages that add functionality to the package at runtime.
noextract:list<str>=[]
Sources that should not be extracted.
source:list<str|list<str>>
Source file URL:s to download, each element may be a list of wget parameters,
however with the source and destination file name as the two first elements.
sha3sums:list<str?>
Source file checksums in Keccak[]
backup:list<str>=[]
Filenames of files that should be backed up, this is commonly
used for files in /etc.
options:list<str>=[]
Override user configurations, options prepended by an
exclamation mark are turned off, others are turned on.
strip Strip symbols from binaries and libraries
licenses Keep files installed to /usr{,/local}/share/licenses
changelogs Keep files installed to /usr{,/local}/share/changelogs
libtool Leave .la files in packages
upx Compress binary executable files using UPX
ride(private:bool):void
Execute installed package.
build(startdir:str, srcdir:str, pkgdir:str, private:bool):void
Build package.
check(startdir:str, srcdir:str, pkgdir:str, private:bool):void
Check files after building.
package(startdir:str, srcdir:str, pkgdir:str, private:bool):void
Install files into `pkgdir` before installing to the system.
patch_build(startdir:str, srcdir:str, pkgdir:str, private:bool):void
Apply patch to target during the target's build().
patch_check(startdir:str, srcdir:str, pkgdir:str, private:bool):void
Apply patch to target during the target's check().
patch_package(startdir:str, srcdir:str, pkgdir:str, private:bool):void
Apply patch to target during the target's package().
pre_install(tmpdir:str, rootdir:str, private:bool):void
Run before files are installed in a fresh installation
post_install(tmpdir:str, rootdir:str, installedfiles:list<str>, private:bool):void
Run after files are installed in a fresh installation
pre_upgrade(tmpdir:str, rootdir:str, installedfiles:list<str>, private:bool):void
Run before upgraded files are installed
post_upgrade(tmpdir:str, rootdir:str, installedfiles:list<str>, private:bool):void
Run after upgraded files are installed
pre_uninstall(tmpdir:str, rootdir:str, installedfiles:list<str>, private:bool):void
Run before uninstallation of files
post_uninstall(tmpdir:str, rootdir:str, installedfiles:list<str>, private:bool):void
Run after uninstallation of files
Package name, except for in `pkgname` have a range of targeted
versions using in the format `(<|<=|>|>=|=|<>)[epoch:]pkgver` or
`>[=][epoch:]pkgver<[=][epoch:]pkgver`.