Updated README, renamed and improved spec

- Updated README to explain the different specifications found within
  the spec directory.
- Renamed spec.md to pkgspec.md to be more clear about its
- Updated pkgspec.md and began work on PKGINFO specification.
- Added buildspec.md file, TO BE IMPLEMENTED
Polarian 2022-12-27 17:47:02 +00:00
parent f030710609
commit 2d107207b6
Signed by: Polarian
GPG Key ID: 0770E5312238C760
3 changed files with 32 additions and 0 deletions

View File

@ -8,4 +8,11 @@ unless otherwise stated!
## Project structure
- `spec` contains the specification for lb packages
- `pkgspec.md` contains the specification of lbpkgs, this is only
useful for those who plan to contribute to the `lbpkg` command
line too for creation of lbpkgs
- `buildspec.md` contains the specification for the `lbpkg` build
file, which outlines the process of building the package, the
`lbpkg` tool will convert this into a `pkgspec.md` compliant
package for lblinux.
- `src` contains the source code for lbpkg command line tool

spec/buildspec.md Normal file
View File

View File

@ -71,3 +71,28 @@ If the ownership is not defined, the ownership of the file within the
package is used.
### Info
Everyone lbpkg should MUST contain a `PKGINFO` file. This file outlines
the metadata of the package. It uses a key-value format `<key>: <value>`
(whitespace is ignored!). With multiple values use a comma `,` to denote
more elements, `<key>: <value1>,<value2>,<value3>`. Below you can find a
list of all the keys and a description of their values.
pkgtype: Denotes the type of package, there is only two values
permitted, `group` which denotes a group of packages, this will not have
a LBMANIFEST but instead provides a list of packages contained within
the group (see groupcontents option). The other option is `pkg`, which
denotes a typical package which contains a LBMANIFEST file.
pkgversion: Denotes the version of the package, this should be identical
to the version of the software the package is distributing.
pkgrelease: The release of the package, similar to how pacman (Arch
Linux package manager) has pkgrel, pkgrelease denotes a change to the
package structure itself, instead of the software it is distributing.
depends: A list of packages which this package depends on at runtime.
makedepends: A list of packages which this package requires to be built.
groupcontents: specifies the packages contained within a group, this can
not be set if pkgtype is set to `pkg`.