forked from kororaproject/kp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
116 lines (68 loc) · 3.22 KB
/
README
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
Korora Package (KP)
A Korora package can be considered a high level package that often (but not always) manages all Korora specific modifications to upstream packages. Some packages are entirely new projects which Korora has baked itself but they are treated much the same.
The Korora packages are stored completely within git and are best managed with the Korora packaging utility is called “kp”. The kp utility allows you to reproduce the entire Korora ecosystem, as well as contribute easier to the project through submission of patches and pull requests.
Configuration Files
Each package is described by a configuration file which lives in the kp tree.
The configuration file options are described as follows:
---8<--- jockey.conf --->8---
KP_NAME=jockey
KP_VERSION=0.9.1
# indicate what the upstream source is wrapped in and where to get it
KP_UPSTREAM_SRC_TYPE=git,svn,rpm,tarball
KP_UPSTREAM_SRC_URL=
# GIT specific - what branch/commit should all package builds be built relative to
KP_UPSTREAM_SRC_GIT_COMMIT=
KP_UPSTREAM_SRC_GIT_BRANCH=
# SVN specific - what revision number should all package builds be built relative to
KP_UPSTREAM_SRC_SVN_REVISION
# RPM specific - what’s the reference upstream spec
KP_UPSTREAM_SPEC=%upstream%/spec
# if undefined uses upstream spec (if defined) otherwise errors if missing
KP_BUILD_SPEC=
# the build spec will be dynamically built via the build spec template. Patch, source and build numbers will be dynamically updated based on the template.
KP_BUILD_SPEC_TEMPLATE=
KP_BUILD_ARCH=i686,x86_64
# defines the commit of the latest stable release from the korora package tree
KP_RELEASE_GIT_COMMIT=
---8<--- end jockey.conf --->8---
File Tree
./upstream
Contains the primary source relating to the package, could be a GIT, SVN url or the extracted source from an RPM (ie akin to extracted files from rpmbuild/SOURCES)
./build
Contains the necessary files to build the release RPM. If the upstream is GIT it will contain the necessary patches (based on appropriate git diff). SVN would be similar. The package spec file would be dynamically updated based on the
./release
contains built RPMs
Usage: kp --list
Lists all available packages in the Korora Project.
Example:
# kp --list
* jockey
* anaconda
* korora-plymouth-theme
* korofox
Usage: kp --init
Performs any necessary tree initialisation (think mock --init)
Example:
# kp --init
Korora package environment initialised at /home/me/kororapackages
xxx MiB free
Usage: kp --checkout package
Performs a checkout of a single package (identifiable by --list)
Omission of a package name will default to checking out all packages.
Example:
# kp -v --checkout jockey
Creating package directory structure:
./jockey
./jockey/upstream
./jockey/build
./jockey/release
Syncing upstream
**git output**
Usage: kp --build package
Performs a full build of the specified package through providing a release tarball.
Omission of any package name will default to building all packages.
Usage: kp --sync package
Syncs the specified package with kororaproject
Omission of any package name will default to building all packages.
Usage: kp --release
Performs a --checkout, --sync and --build for all packages. Essentially building a kororaproject repository.