[WIP] specification
parent
b214dc01c4
commit
5d41fb6253
|
@ -1,3 +1,7 @@
|
|||
# lbpkg
|
||||
lbpkg is a command line interface to create lb packages from a `LBPKG`
|
||||
file.
|
||||
|
||||
Command line interface to create lb packages
|
||||
## Project structure
|
||||
`spec` contains the specification for lb packages
|
||||
`src` contains the source code for lbpkg command line tool
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
# Speciifcation for lbpkg's
|
||||
This file contains the full specification for lbpkgs
|
||||
|
||||
## File extension
|
||||
lbpkgs use the file extension `.tar.xz.lbpkg`, all files in the package
|
||||
are contained within a`tar`, compressed using `xz`.
|
||||
|
||||
## Package layout
|
||||
Unlike other package formats, lbpkg's do not use directories to define
|
||||
the path to install packages to, instead there is a `LBMANIFEST` in
|
||||
the root of the package, which contains the filename and then the path
|
||||
for the file to be installed to.
|
||||
|
||||
There should also be a `PKGINFO` file within the package, which outlines
|
||||
the info about the package, such as the name of the license, and what it
|
||||
is licensed as.
|
||||
|
||||
All other files within the package should be installed to a path
|
||||
declared by the `LBMANFEST` file.
|
||||
|
||||
## Package files
|
||||
This section defines the required package files in order for the package
|
||||
to be valid
|
||||
|
||||
### Manifest
|
||||
The manifest file should be named `LBMANIFEST` (case specific), each
|
||||
line of the file declares the name the file or directory to install, the
|
||||
name and install path should be separated with space (`U+0020`), see
|
||||
example below:
|
||||
|
||||
`bash /bin/bash`
|
||||
|
||||
This follows the format:
|
||||
|
||||
`<file/directory name> <full install path>`
|
||||
|
||||
#### Setting file permissions
|
||||
You can set the file permissions of a file within the manifest file by
|
||||
appending the permission after the install path, example below:
|
||||
|
||||
`bash /bin/bash 775`
|
||||
|
||||
This follows the format:
|
||||
|
||||
`<file/directory name> <full install path> <permission>`
|
||||
|
||||
If a permission is not defined, the permission of the file within the
|
||||
package is used.
|
||||
|
||||
#### Setting ownership
|
||||
You can set the ownership of a file or directory within the manifest
|
||||
file by appending the ownership string (`<user>:<group>`) after the
|
||||
permission, example below:
|
||||
|
||||
`bash /bin/bash 775 root:root`
|
||||
|
||||
This follows the format:
|
||||
|
||||
`<file/directory name> <full install path> <permission> <ownership
|
||||
string>`
|
||||
|
||||
If the ownership is not defined, the ownership of the file within the
|
||||
package is used.
|
||||
|
||||
### Info
|
Loading…
Reference in New Issue