Subversion Repositories SvarDOS

Rev

Rev 711 | Rev 895 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 711 Rev 893
1
 
1
 
-
 
2
                        %h*** SVARDOS PACKAGE FORMAT ***
-
 
3
 
2
Package files provide an easy way to manage software on SvarDOS. These
4
Package files provide an easy way to manage software on SvarDOS. These
3
packages must adhere to a strict convention so they can be handled properly
5
packages must adhere to a strict convention so they can be handled properly
4
by the SvarDOS package manager.
6
by the SvarDOS package manager.
5
 
7
 
6
 
8
 
7
%hPackage filenames
9
%hPackage filenames
8
 
10
 
9
Packages names must follow some basic rules. They shall be max. 8 letters long
11
Packages names must follow some basic rules. They shall be max. 8 letters long
10
(but should not be too short either, since a 1 or 2-letters package name might
12
(but should not be too short either, since a 1 or 2-letters package name might
11
be confusing), and must not be composed of characters other than a-b, 0-9 and
13
be confusing), and must not be composed of characters other than a-b, 0-9 and
12
'_'. This for backward compatibility with short file names (8+3) and ISO 9660
14
'_'. This for backward compatibility with short file names (8+3) and ISO 9660
13
file systems (used on CDROMs). The package filename is always followed by the
15
file systems (used on CDROMs). The package filename is always followed by the
14
.SVP ("SvarDOS Package") extension.
16
.svp ("SvarDOS Package") extension.
15
 
17
 
16
 
18
 
17
%hPackage files
19
%hPackage files
18
 
20
 
19
SvarDOS uses ZIP files as its package file format. This format has been chosen
21
SvarDOS uses ZIP files as its package file format. This format has been chosen
20
because ZIP files under DOS have become the de facto way to distribute
22
because ZIP files under DOS have become the de facto way to distribute
21
collections of files. Also, the ZIP file format is well documented, well
23
collections of files. Also, the ZIP file format is well documented, well
22
supported, and in the public domain.
24
supported, and in the public domain.
23
 
25
 
24
Here below is the recommended command line that can be used to create a
26
Here below is the recommended command line that can be used to create a
25
package for a program named EXAMPLE using info-zip:
27
package for a program named EXAMPLE labelled as version "1.2.34" using
-
 
28
info-zip's zip:
26
 
29
 
27
  zip -9rkDX EXAMPLE.SVP subdir1 subdir2 ... subdirN
30
  zip -9rkDX example-1.2.34.svp subdir1 subdir2 ... subdirN
28
 
31
 
29
If you are using 7za to create your packages, then use this:
32
If you are using 7za to create your packages, then use this:
30
 
33
 
31
  7za a -mm=deflate -mx=9 -tzip EXAMPLE.SVP subdir1 subdir2 ... subdirN
34
  7za a -mm=deflate -mx=9 -tzip example-1.2.34.svp subdir1 subdir2 ... subdirN
-
 
35
 
-
 
36
Note: The version in the filename is just an information for packagers so they
-
 
37
don't need to look into each package to know what version to expect there. In
-
 
38
LSM versions you might have non-filesystem-compatible stuff like "10/11/11" so
-
 
39
we don't want to enforce any kind of correlation.
32
 
40
 
33
 
41
 
34
%hPackage directory structure
42
%hPackage directory structure
35
 
43
 
36
The directory structure of a package depends on the type of packages.
44
The directory structure of a package depends on the type of packages.
37
For "core" packages, we have this:
45
For "core" packages, we have this:
38
 
46
 
39
  APPINFO            Put the program's LSM file here
47
  APPINFO            Put the program's LSM file here
40
  BIN                Binaries, such as exe and com files
48
  BIN                Binaries, such as exe and com files
41
  DOC\PKGNAME        Package documentation
49
  DOC\PKGNAME        Package documentation
42
  HELP               Used ONLY by the "help" package
50
  HELP               Used ONLY by the "help" package
43
  NLS\PKGNAME        Localizations (NLS language files) of the package
51
  NLS\PKGNAME        Localizations (NLS language files) of the package
44
 
52
 
45
Non-core packages use a slightly different directory organization. For
53
Non-core packages use a slightly different directory organization. For
46
example, if we were to consider a package FOO, we might end up with the
54
example, if we were to consider a package FOO, we might end up with the
47
following structure:
55
following structure:
48
 
56
 
49
  APPINFO\FOO.LSM    Package meta file for the FOO program
57
  APPINFO\FOO.LSM    Package meta file for the FOO program
50
  PROGS\FOO\FOO.EXE  The program's executable
58
  PROGS\FOO\FOO.EXE  The program's executable
51
  PROGS\FOO\FOO.TXT  Some documentation
59
  PROGS\FOO\FOO.TXT  Some documentation
52
  PROGS\FOO\FILE.DAT Data file used by the FOO program
60
  PROGS\FOO\FILE.DAT Data file used by the FOO program
53
 
61
 
54
Note the PROGS directory above. This is the category to which the package
62
Note the PROGS directory above. This is the category to which the package
55
belongs. The package installer might change this directory at install time,
63
belongs. The package installer might change this directory at install time,
56
depending on the user's preferences. Possible categories are listed below:
64
depending on the user's preferences. Possible categories are listed below:
57
 
65
 
58
Category | Description
66
Category | Description
59
DEVEL    | Development tools (mostly compilers)
67
DEVEL    | Development tools (mostly compilers)
60
DRIVERS  | Drivers
68
DRIVERS  | Drivers
61
GAMES    | Games
69
GAMES    | Games
62
PROGS    | User programs, tools...
70
PROGS    | User programs, tools...
63
 
71
 
64
Note: "DOC", "NLS", "BIN" and "HELP" directories are strictly reserved to
72
Note: "DOC", "NLS", "BIN" and "HELP" directories are strictly reserved to
65
      CORE packages.
73
      CORE packages.
66
 
74
 
67
 
75
 
68
%hLSM meta-data files
76
%hLSM meta-data files
69
 
77
 
70
Every package MUST contain an LSM file in its "APPINFO" directory. This LSM
78
Every package MUST contain an LSM file in its "APPINFO" directory. This LSM
71
file is a text file that contains basic information about the package. Its
79
file is a text file that contains basic information about the package. Its
72
format is very simple, it must contain at least two lines:
80
format is very simple, it must contain at least two lines:
73
 
81
 
74
  version: x.y.z
82
  version: x.y.z
75
  description: package description
83
  description: package description
76
 
84
 
77
Any other lines are ignored by the SvarDOS package manager.
85
Any other lines are ignored by the SvarDOS package manager.
78
 
86
 
79
 
87
 
80
%hPackage versions
88
%hPackage versions
81
 
89
 
82
The version present in the LSM file is meant to reflect the version of the
90
The version present in the LSM file is meant to reflect the version of the
83
packaged software, but it may happen that a package needs to be changed to
91
packaged software, but it may happen that a package needs to be changed to
84
fix a strictly packaging-related issue (for example a forgotten documentation
92
fix a strictly packaging-related issue (for example a forgotten documentation
85
file or a recompilation of the binary using a better set of flags...). In such
93
file or a recompilation of the binary using a better set of flags...). In such
86
case, the version of the software does not change, but the version of the
94
case, the version of the software does not change, but the version of the
87
package itself needs to change so users know something changed. That's where
95
package itself needs to change so users know something changed. That's where
88
"SvarDOS revisions" come in. A version string is basically following such
96
"SvarDOS revisions" come in. A version string is basically following such
89
format:
97
format:
90
 
98
 
91
  UPSTREAM_VER[+SVARREV]
99
  UPSTREAM_VER[+SVARREV]
92
 
100
 
93
UPSTREAM_VER is the exact version string advertised by the software. It may
101
UPSTREAM_VER is the exact version string advertised by the software. It may
94
be pretty much anything. This upstream version may be optionally followed by a
102
be pretty much anything. This upstream version may be optionally followed by a
95
plus sign and the SvarDOS revision. In the event that the upstream version
103
plus sign and the SvarDOS revision. In the event that the upstream version
96
already contains a plus sign, then SvarDOS revision is delimited with a tilde.
104
already contains a plus sign, then SvarDOS revision is delimited with a tilde.
97
 
105
 
98
The SvarDOS revision starts at 0 and increments by 1 each time that the given
106
The SvarDOS revision starts at 0 and increments by 1 each time that the given
99
upstream revision is repackaged. The SvarDOS revision restarts whenever the
107
upstream revision is repackaged. The SvarDOS revision restarts whenever the
100
upstream version changes. The SvarDOS revision of 0 is always hidden.
108
upstream version changes. The SvarDOS revision of 0 is always hidden.
101
 
109
 
102
Examples:
110
Examples:
103
 
111
 
104
FDISK 1.54      <- originally packaged version
112
FDISK 1.54      <- originally packaged version
105
FDISK 1.54+1    <- package has been changed, but not the upstream version
113
FDISK 1.54+1    <- package has been changed, but not the upstream version
106
FDISK 1.55      <- upstream version increased, so SvarDOS rev restarts
114
FDISK 1.55      <- upstream version increased, so SvarDOS rev restarts
107
FDISK 1.55+1    <- new version of the package, but still contains FDISK 1.55
115
FDISK 1.55+1    <- new version of the package, but still contains FDISK 1.55
108
FDISK 1.55+2    <- another new version of the package, etc
116
FDISK 1.55+2    <- another new version of the package, etc
109
 
117
 
110
The entire version string of a package must never exceed 16 characters.
118
The entire version string of a package must never exceed 16 characters.
111
 
119
 
112
 
120
 
113
%hSources
121
%hSources
114
 
122
 
115
When a packaged software has its sources available, then it is recommended to
123
When a packaged software has its sources available, then it is recommended to
116
archive also them. To that effect, put the sources into a ZIP archive that has
124
archive also them. To that effect, put the sources into a ZIP archive that has
117
the same filename as the package, but a *.ZIP extension (as opposed to the
125
the same filename as the package, but a *.zip extension (as opposed to the
118
*.SVP extension of the proper package). The result would be that the packaged
126
*.svp extension of the proper package). The result would be that the packaged
119
software would be distributed within two files. Example for FDISK:
127
software would be distributed within two files. Example for FDISK:
120
 
128
 
121
FDISK.SVP       <- binaries (ZIP archive following the SVP structure)
129
fdisk-1.55+2.svp       <- binaries (ZIP archive following the SVP structure)
122
FDISK.ZIP       <- sources (flat, unstructured ZIP archive)
130
fdisk-1.55+2.zip       <- sources (flat, unstructured ZIP archive)
123
 
131
 
124
The ZIP file must obviously contain the source code that belongs to the exact
132
The ZIP file must obviously contain the source code that belongs to the exact
125
same version present in the SVP package.
133
same version present in the SVP package.
126
 
134