636 |
mateusz.vi |
1 |
|
|
|
2 |
|
|
|
3 |
DOCUMENTATION FOR SVARDOS PACKAGERS
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
=== HOW TO CREATE A PACKAGE? ==================================================
|
|
|
8 |
|
679 |
mateusz.vi |
9 |
Packaging software for SvarDOS implies creating an SVP package that can be
|
636 |
mateusz.vi |
10 |
installed with "pkg". This file will not discuss this aspect, you should find
|
|
|
11 |
all necessary information about this topic in the SvarDOS help:
|
|
|
12 |
|
|
|
13 |
* help pkgfmt
|
|
|
14 |
* help pkgrules
|
|
|
15 |
|
|
|
16 |
|
|
|
17 |
=== WHO CAN UPLOAD PACKAGES TO TO THE SVARDOS REPO? ===========================
|
|
|
18 |
|
|
|
19 |
Only the team of SvarDOS packagers is allowed to upload new or updated packages
|
|
|
20 |
to the SvarDOS online repository. If you are not one of them, please get in
|
|
|
21 |
touch with us through the SvarDOS mailing list. If you are a packager, then
|
|
|
22 |
keep reading.
|
|
|
23 |
|
|
|
24 |
|
|
|
25 |
=== INITIAL SVN SETUP (REPOSITORY CHECKOUT) ===================================
|
|
|
26 |
|
|
|
27 |
Note that all instructions are implying the usage of the command-line
|
|
|
28 |
subversion client, as available on all Linux distributions.
|
|
|
29 |
|
|
|
30 |
SvarDOS packages are stored in the project's svn tree, hence the first thing to
|
|
|
31 |
do is for you to pull the SvarDOS subversion tree. You must have obtained
|
|
|
32 |
credentials to svn access already. To fetch the SvarDOS package repository
|
|
|
33 |
to your local disk, use such svn checkout:
|
|
|
34 |
|
1260 |
mateusz.vi |
35 |
$ svn co svn://YOURLOGIN@svn.svardos.org/svardos-pkgs
|
636 |
mateusz.vi |
36 |
|
1260 |
mateusz.vi |
37 |
It is a one time only action that should create a "svardos-pkgs" directory
|
636 |
mateusz.vi |
38 |
on your disk. Inside you will find all SvarDOS packages.
|
|
|
39 |
|
|
|
40 |
|
|
|
41 |
=== UPLOADING A NEW PACKAGE ===================================================
|
|
|
42 |
|
679 |
mateusz.vi |
43 |
So you have created this new SvarDOS SVP package with some very cool software
|
891 |
bttr |
44 |
in it. Great! To upload it to the SvarDOS online repo, copy your new package
|
636 |
mateusz.vi |
45 |
to your local svardos-packages directory. Then, instruct svn to add the new
|
|
|
46 |
file(s) to the repo:
|
|
|
47 |
|
1260 |
mateusz.vi |
48 |
$ cd svardos-pkgs
|
720 |
mateusz.vi |
49 |
$ svn add package-ver.svp
|
|
|
50 |
$ svn add package-ver.zip <-- optional, only if package has available sources
|
636 |
mateusz.vi |
51 |
|
|
|
52 |
Review the changes to make sure you added the right files:
|
|
|
53 |
$ svn st
|
|
|
54 |
|
|
|
55 |
...and if everything's all right, push (commit) the changes to the svn server:
|
|
|
56 |
|
|
|
57 |
$ svn commit -m 'new package added: PACKAGE_NAME'
|
|
|
58 |
|
|
|
59 |
Done! Your package should appear in the online repository within a minute or
|
|
|
60 |
two.
|
|
|
61 |
|
|
|
62 |
|
|
|
63 |
=== UPDATING A PACKAGE (ADD A NEW VERSION) ====================================
|
|
|
64 |
|
|
|
65 |
Let's imagine that we have a package named NASM in version 2.12. A new version
|
720 |
mateusz.vi |
66 |
2.15 of this software has been released, you tested it, found it stable so you
|
636 |
mateusz.vi |
67 |
packaged it. How to add it to the SvarDOS packages repository?
|
|
|
68 |
|
720 |
mateusz.vi |
69 |
Add the new version of your package:
|
636 |
mateusz.vi |
70 |
|
720 |
mateusz.vi |
71 |
$ svn add nasm-2.15.svp
|
|
|
72 |
$ svn add nasm-2.15.zip <-- optional (only if package has sources)
|
636 |
mateusz.vi |
73 |
|
|
|
74 |
Finally, review and commit your changes:
|
|
|
75 |
|
|
|
76 |
$ svn st
|
891 |
bttr |
77 |
$ svn commit -m 'updated package NASM to version 2.15'
|
636 |
mateusz.vi |
78 |
|
720 |
mateusz.vi |
79 |
The repository server will automatically serve the latest available version as
|
|
|
80 |
the "preferred" version to users. The version strings are processed (and
|
|
|
81 |
compared with each other) through the PHP version_compare() function documented
|
|
|
82 |
here: <https://www.php.net/manual/en/function.version-compare>
|
636 |
mateusz.vi |
83 |
|
720 |
mateusz.vi |
84 |
This function works relatively well, but it might fail on some exotic version
|
|
|
85 |
strings. For the time being, there is no way to flag a specific package version
|
|
|
86 |
as being "preferred".
|
|
|
87 |
|
|
|
88 |
|
636 |
mateusz.vi |
89 |
=== REMOVING A PACKAGE ========================================================
|
|
|
90 |
|
|
|
91 |
On rare occasions it may be necessary to delete some packages. For example if
|
|
|
92 |
they proved to be harmful in some way, or if their licensing is not compatible
|
|
|
93 |
with SvarDOS distribution, etc. Removing a package means deleting it from the
|
|
|
94 |
svn repository and commiting the change. Example:
|
|
|
95 |
|
1260 |
mateusz.vi |
96 |
$ cd svardos-pkgs
|
679 |
mateusz.vi |
97 |
$ svn del package.svp
|
|
|
98 |
$ svn del package.zip <-- only if zip with sources exists
|
636 |
mateusz.vi |
99 |
$ svn commit -m 'removed package PACKAGE_NAME because (reason here)'
|
|
|
100 |
|
|
|
101 |
|
|
|
102 |
======================================================================= EOF ===
|