Mercurial > vanilla
changeset 714:6b4ba668a43c
vanilla: update documentation
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 02 Aug 2019 21:20:00 +0200 |
parents | 393525a3ecc3 |
children | 150598ec37e7 |
files | CHANGES.md Docs/licenses.md Docs/manual.md Docs/options.md Docs/uids.md HOWTO.md README.md UIDS.md |
diffstat | 8 files changed, 436 insertions(+), 394 deletions(-) [+] |
line wrap: on
line diff
--- a/CHANGES.md Fri Aug 02 21:15:00 2019 +0200 +++ b/CHANGES.md Fri Aug 02 21:20:00 2019 +0200 @@ -4,6 +4,10 @@ Vanilla Linux current ------------------------------ +### 2019-07-19 + +OpenSSL has been replaced by LibreSSL. + ### 2019-04-10 Vanilla does not follow FHS anymore, /usr directory has been removed, /bin and
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Docs/licenses.md Fri Aug 02 21:20:00 2019 +0200 @@ -0,0 +1,31 @@ +Available licenses +================== + +Use the following licenses in *PKGLICENSE* variable or CUSTOM. + +- AGPLv3 +- AGPLv3+ +- APACHE10 +- APACHE11 +- APACHE20 +- BOOST +- BSD +- BSD2CLAUSE +- BSD3CLAUSE +- BSD4CLAUSE +- GFDL +- GPLv1 +- GPLv1+ +- GPLv2 +- GPLv2+ +- GPLv3 +- GPLv3+ +- ISC +- LGPLv20 +- LGPLv20+ +- LGPLv21 +- LGPLv21+ +- LGPLv3 +- LGPLv3+ +- MIT +- UNLICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Docs/manual.md Fri Aug 02 21:20:00 2019 +0200 @@ -0,0 +1,294 @@ +Getting started +=============== + +This documentation explains how to write a package file from scratch. + +Synopsis +======== + +Each package lives under a dedicated directory broken down into several +categories. A package consists of the following files: + +- NAME.sh: a pure POSIX shell that process the build and contains some + metadata required for installation. +- NAME.sha1: contains the checksums for individual source files (Optional). +- NAME-post.sh: a script to be executed before/after the installation + (Optional). + +In the listing above, replace NAME with the actual package name. For example the +package *zlib* contains the following files: + +- compression/zlib/zlib.sh +- compression/zlib/zlib.sha1 + +The build script +================ + +The build script (NAME.sh) is a pure POSIX shell that defines various +information about the package and how to build it. To be included within the +official Vanilla Linux repository it must be licensed under the terms of the ISC +license. + +Several templates are already available for most build systems in the Templates +directory. + +Metadata +-------- + +A package requires several information to be installed, the following variables +must be present: + +- PKGNAME: the package name (same as the directory). +- PKGVERSION: the package upstream version. +- PKGREVISION: the initial revision (starts at 1). +- PKGLICENSE: a space separated list of licenses (see licenses.md file). +- PKGSUMMARY: a short summary. + +The following variables are optional + +- PKGDEPENDS: a space separated list of packages required to build (see below). +- PKGDOWNLOAD: a space separated list of files to download from the web, if the + package does not need to download anything don't set it. +- PKGUIDS: a space separated list of uid to create (see below) +- PKGGIDS: a space separated list of gid to create (see below) +- PKGPROTECT: a space separated list of relative path to files to preserve on + installation (e.g. etc/nginx/nginx.conf) +- PKGOPTIONS: a space separated list of CAPITALIZED options. + +Build +----- + +To build the package, you need to define a build function that install the +package into the $DESTDIR variable. + +Usually, the build function does: + +1. Clean the build directory in case the previous build failed. +2. Extract distribution files. +3. Process build and installs into $DESTDIR. +4. Clean up again the build directory. + +Package naming +============== + +The following prefixes must be used for those packages: + +- py-: for python modules. +- py2-: for python modules (only for exceptional cases). +- ruby-: for native ruby modules. +- rubygem-: for rubygems modules. +- p5-: for perl 5 modules. +- hs-: for haskell modules. +- font-: for fonts (of any kind). + +When a package is available with different versions (e.g. Gtk, Qt) we add the +major number as suffix to the PKGNAME to *old* versions. Example, if Qt 5 is the +current major version and Qt 4 is also shipped then, the package *qt* refers to +version 5 while *qt4* to version 4. + +Handling dependencies +===================== + +The variable *PKGDEPENDS* is filled up with package origins, thus you need to +write *lib/zlib* NOT *zlib*. + +Also, the following selectors may be appended to the dependency to alter the +meaning: + +- `:build` the dependency is only required for building, +- `:optional` the dependency is optional and not strictly required. +- `:recommended` same as optional but installed by default. + +Example: + + PKGDEPENDS="dev/cmake:build graphics/qt5:recommended lib/zlib" + +Protected files +=============== + +Configuration files (usually everything under /etc) must be marked as well in +*PKGPROTECT* variables. This prevents `vpk` for overriding user configurations. + +Note: if the package ships a init script file, it must be marked as well. + +Example: + + PKGPROTECT="etc/nginx.conf etc/rc.d/nginx" + +In this case, `vpk` will rename the file to *etc/nginx.conf.vpk* and +*/etc/rc.d/nginx.vpk* in the archive and only be renamed if they are not present +on the disk or not manually modified. + +Uids / Gids +=========== + +If the package requires UNIX users and groups, adapt the *PKGUIDS* and *PKGGIDS* +variables as a space separated list. You can assign a default numeric id using +the syntax `:number`. + +Example: + + PKGUIDS="messagebus" # vpk will assign an id + PKGUIDS="gdm:55" # vpk will use 55 + +Warning: if you need to change file permissions, do it *ONLY* in a post install +script as users may have set different numeric id than the package defaults. + +Once you need a new UID/GID, edit the file UIDS.md in this directory as well. + +Options +======= + +... + +Example with network/wget: + + # cd network/wget + # SSL=openssl NLS=no vpk build + +Add the desired options in *PKGOPTIONS* variable and don't forget to set default +values. + +Example with NLS + + PKGOPTIONS="NLS" + + : ${NLS:=yes} + + if [ "$NLS" = "yes" ]; then + PKGDEPENDS="core/gettext $PKGDEPENDS" + with_nls="--enable-nls" + else + with_nls="--disable-nls" + fi + +Then at configure step: + + ./configure $with_nls + +Proper handling of options is done by explicitly disabling/enabling options. +Most programs will try to enable/disable features depending on what is available +on the system thus, if the package finds a dependency and enable it you need to +adapt *PKGDEPENDS*. Always check what options are available in the package and +use their default as explicit knobs to avoid invisible dependencies. + +See the file options.md for predefined options and proper naming. + +Paths +===== + +The package must ensure appropriate directories for installing files. This +includes: + +- /etc/rc.d for service files +- /lib/pkgconfig: for .pc files +- /lib/cmake: for CMake config files +- /lib: for libraries (no lib64 suffix) +- /share/locale: for NLS files +- /share/man/man{1,2,3,4,5,6,7,8}: for man pages (in uncompressed form) +- /share/doc/PKGNAME (exact directory, no version) + +Keep neutral +============ + +Do not make any modifications to the package. Keep it as close to upstream as +possible. Only minor tweaks are allowed including: + +- adjusting pid/uid/gid in a default configuration file for easier deployment + (but not on the original file example) +- disabling static libraries +- making sure paths are consolidated +- making sure system libraries are used rather than in-source bundles + +Services +======== + +Services files must be installed in /etc/rc.d. You must use the following +conventions regarding messages the service will print. + +The script must at least support start, stop and restart. + +#### start (required) + +Always add arguments with the invocation. + + Starting foo: /bin/foo -d + +#### stop (required) + +If the service is not running, don't write any message. Otherwise write: + + Stopping foo. + +#### restart (required) + +Basically, this command just calls stop and start. + + Stopping foo. + Starting foo: /bin/foo -d + +#### status + +Depending on the status, write the following messages. + + foo is running with pid: 1234 + foo is not running + +#### usage + +If the script is invoked with invalid arguments or none, write the usage like +this through stderr and exit 1. Also keep all subcommands sorted. + + usage: foo restart|start|status|stop + +If your script may support additional operations, messages and usage are up to +the maintainer discretion. + +See also the template file in Templates/rc. + +Libraries +========= + +Do not ship static libraries and libtool files. Make sure your build script +suppress static builds if possible or delete the .a file. + +Note: the C and C++ library are shipped for technical reasons though. + +Post install scripts +==================== + +If you need to perform some custom steps after the installation of the binary +package in the target systems, you may create the NAME-post.sh script. This +script must be written also in pure POSIX shell language. + +As unique argument, `vpk` will provide one of these to the post script: + +- pre-install: before the extraction of the package. +- post-install: after the extraction of the package. +- pre-uninstall: before removing the package. +- post-uninstall: after the removal of the package. + +Note: if the package wants to call a binary from an other package, it is usually +a good idea to check it's presence first. + +Example: + + #!/bin/sh + + if [ -x /bin/gtk-update-icon-cache ]; then + gtk-update-icon-cache -vf /share/icons/hicolor + fi + +Desktop files +============= + +We usually never add .desktop files for any package that doesn't provide one by +itself. This also includes terminal based applications. + +If a .desktop is provided by the package, make sure though that it is valid and +specifies the appropriate category (i.e. it does not appear in multiple menus at +once). + +See [desktop entry specification][] for more information. + +[desktop entry specification]: https://specifications.freedesktop.org/desktop-entry-spec/latest
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Docs/options.md Fri Aug 02 21:20:00 2019 +0200 @@ -0,0 +1,86 @@ +Available options +================= + +Use the following predefined options before creating your own. + +- ACL: enable access control list support +- BLUETOOTH: enable bluetooth support +- BZIP2: enable bzip2 compression support +- DBUS: enable D-Bus support +- DOXYGEN: enable doxygen documentation support +- DRM: enable direct rendering manager support +- DTD: enable XML validation support +- EGL: enable EGL support +- FLAC: enable flac support +- FONTCONFIG: enable fontconfig support +- FREETYPE: enable freetype support +- GALLIUM: enable LLVM gallium support +- GDBM: enable GNU database support +- GLAMOR: enable 2D graphics support +- GLES1: enable GLES1 support +- GLES2: enable GLES2 support +- GLES3: enable GLES3 support +- GMP: enable GNU multiple precision library +- GTK2: enable Gtk 2 toolkit support +- GTK3: enable Gtk 3 toolkit support +- GTK4: enable Gtk 4 toolkit support +- GUILE: enable GNU guile support +- IDN2: enable libidn2 support +- KMS: enable kernel mode settings support +- LEGACY: enable obsolete or deprecated features +- LLVM: enable LLVM support +- LZ4: enable lz4 compression support +- LZMA: enable lzma compression support +- MIDI: enable midi support +- MNL: enable netlink minimalistic library support +- NLS: enable native language support +- OGG: enable libogg support +- PAM: enable PAM support +- PCRE: enable perl-like regular expression support +- PULSEAUDIO: enable PulseAudio support +- PYTHON: enable Python 3 bindings or support +- QT5: enable Qt 5 toolkit support +- SPHINX: enable sphinx documentation support +- SSH: enable SSH support +- SSL: enable SSL/TLS, some packages offer several choices (e.g. openssl, gnutls) +- UDEV: enable eudev support +- UUID: enable UUID support +- VORBIS: enable libvorbis support +- WACOM: enable wacom support +- WAYLAND: enable wayland support +- X: enable X.Org support +- XML: enable XML support +- XZ: enable XZ support +- ZLIB: enable zlib compression support +- ZSTD: enable zstd compression support + +Always try to make an option easy to understand and not package specific. For +example BLUETOOTH is preferred over BLUEZ because a user knows what bluetooth is +but may not know that bluez is the current reference implementation. Also, it is +preferred to make an option generic to allow multiple values in case the +package offers it. + +Example, if a package offers different implementations for SSL, consider the +option with a value (e.g. SSL=openssl, SSL=gnutls, and such). + +Also, if a package offers different implementations that can be enabled all +together, use a list separated by space (e.g. XML="libxml2 expat"). + +Those options should only change the package behaviour, for example: manual +pages or any other resource files that are not strictly required; they must be +installed and the user may exclude them via `vpk` instead. + +Also, options should usually be named in a canonical manner rather than a +package name. For example, OGG is better than LIBOGG because what the options +means is enabling the OGG codec support, not specifically the library. + +The following options should be available for any package that builds C or C++ +code: + +- CBUILD: build system (usually ARCH-linux-musl) +- CHOST: host system (usually ARCH-linux-musl) +- CTARGET: target system (usually ARCH-linux-musl) +- CC: C compiler (defaults to gcc) +- CFLAGS: C flags (defaults to -O2) +- CXX: C++ compiler (defaults to g++) +- CXXFLAGS: C++ flags (defaults to -O2)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Docs/uids.md Fri Aug 02 21:20:00 2019 +0200 @@ -0,0 +1,17 @@ +Vanilla Linux reserved UIDs and GIDs +==================================== + +Users and groups are created once needed at package installation. It's perfectly +safe to reuse the same UID/GID for different packages (example www, mail). + +You may think of UID/GID just like a simple package dependency. + +The following UID/GID are defined: + +| uid | gid | package(s) | +|---------------|--------------------|------------------| +| sshd (100) | sshd (100) | network/openssh | +| polkitd (101) | polkitd (101) | security/polkit | +| pulse (102) | pulse (102) | audio/pulseaudio | +| | pulse-rt (103) | audio/pulseaudio | +| | pulse-access (104) | audio/pulseaudio |
--- a/HOWTO.md Fri Aug 02 21:15:00 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,370 +0,0 @@ -Vanilla Linux HOWTO -=================== - -This documentation explains how to write a package file. - -Each package lives under a dedicated directory broken down into several -categories. Change the directory to the desired package and use `vpk build` to -construct a package. The repository does not contain the distribution files from -upstream but `vpk build` will download them for you if not present (see also -`vpk download` command). - -Note: vpk build does not handle dependencies. - -Example with lib/zlib - - # cd lib/zlib - # vpk build - -If build succeeded, you can install the package as -/tmp/vpk/zlib#version-revision-arch.txz - -Tip: you can use `vpk build -q` to silent the process. - -# How to create a new package - -To create a new package, create a directory in the appropriate category -directory. Then create the sscript file. See Templates directory. - -Example, if you want to create a package abc in category lib you must have the -following files. - -lib/abc -lib/abc/abc.sh - -The following variables must be present: - -- PKGNAME: the package name -- PKGVERSION: the package upstream version -- PKGREVISION: the initial revision (starts at 1) -- PKGLICENSE: a space separated list of licenses (see README.licenses.md) -- PKGSUMMARY: a short summary - -The following variables are optional - -- PKGDEPENDS: a space separated list of packages required to build. Use the - syntax category/package for runtime requirement (includes building too) and - category/package:build for build requirement only. -- PKGDOWNLOAD: a space separated list of files to download from the web, if the - package does not need to download anything don't set it. -- PKGUIDS: a space separated list of uid to create -- PKGGIDS: a space separated list of gid to create -- PKGPROTECT: a space separated list of relative path to files to preserve on - installation (e.g. etc/nginx/nginx.conf) -- PKGOPTIONS: a space separated list of CAPITALIZED options. - -The script file is the build procedure for the package. It must be as simple as -possible as its sole purpose is to build and install files through the DESTDIR -variable. - -There are already various of templates in the templates/ directory. - -# Topics - -## Licenses - -Use the following licenses in *PKGLICENSE* or CUSTOM. - -- AGPLv3 -- AGPLv3+ -- APACHE10 -- APACHE11 -- APACHE20 -- BOOST -- BSD -- BSD2CLAUSE -- BSD3CLAUSE -- BSD4CLAUSE -- GFDL -- GPLv1 -- GPLv1+ -- GPLv2 -- GPLv2+ -- GPLv3 -- GPLv3+ -- ISC -- LGPLv20 -- LGPLv20+ -- LGPLv21 -- LGPLv21+ -- LGPLv3 -- LGPLv3+ -- MIT -- UNLICENSE - -## Dependencies - -The variable *PKGDEPENDS* is filled up with package origins, thus you need to -write *lib/zlib* NOT *zlib*. - -Also, the following qualifiers may be appended to the dependency to alter the -meaning: - -- `:build` the dependency is only required for building, -- `:optional` the dependency is optional and not strictly required. -- `:recommended` same as optional but installed by default. - -Example: - - PKGDEPENDS="dev/cmake:build graphics/qt5:recommended lib/zlib" - -## Configuration files - -Configuration files (usually everything under /etc) must be marked as well in -*PKGPROTECT* variables. This prevents `vpk` for overriding user configurations. - -Note: if the package ships a init script file, it must be marked as well. - -Example: - - PKGPROTECT="/etc/nginx.conf /etc/rc.d/nginx" - -## Uids / Gids - -If the package requires UNIX users and groups, adapt the *PKGUIDS* and *PKGGIDS* -variables as a space separated list. You can assign a default numeric id using -the syntax `:number`. - -Example: - - PKGUIDS="messagebus" # vpk will assign an id - PKGUIDS="gdm:55" # vpk will use 55 - -Warning: if you need to change file permissions, do it *ONLY* in a post install -script as users may have set different numeric id than the package defaults. - -Once you need a new UID/GID, edit the file UIDS_GIDS.md in the repository -accordingly. - -## Options - -Some packages are configurable via compile time options. Check the variable -PKGOPTIONS in the script file and read the associated documentation for more -explanation. Options are usually passed as environment variables - -Example with network/wget: - - # cd network/wget - # SSL=openssl NLS=no vpk build - -Add the desired options in *PKGOPTIONS* variable and don't forget to set default -values. - -Example with NLS - - PKGOPTIONS="NLS" - - : ${NLS:=yes} - - if [ "$NLS" = "yes" ]; then - PKGDEPENDS="core/gettext $PKGDEPENDS" - with_nls="--enable-nls" - else - with_nls="--disable-nls" - fi - -Then at configure step: - - ./configure $with_nls - -Proper handling of options is done by explicitly disabling/enabling options. -Most programs will try to enable/disable features depending on what is available -on the system thus, if the package finds a dependency and enable it you need to -adapt *PKGDEPENDS*. Always check what options are available in the package and -use their default as explicit knobs to avoid invisible dependencies. - -Use the following predefined options before creating your own. - -- ACL: enable access control list support -- BLUETOOTH: enable bluetooth support -- BZIP2: enable bzip2 compression support -- DBUS: enable D-Bus support -- DOXYGEN: enable doxygen documentation support -- DRM: enable direct rendering manager support -- DTD: enable XML validation support -- EGL: enable EGL support -- FONTCONFIG: enable fontconfig support -- FREETYPE: enable freetype support -- GALLIUM: enable LLVM gallium support -- GDBM: enable GNU database support -- GLAMOR: enable 2D graphics support -- GLES2: enable GLES2 support -- GLES3: enable GLES3 support -- GMP: enable GNU multiple precision library -- GTK2: enable Gtk 2 toolkit support -- GTK3: enable Gtk 3 toolkit support -- GTK4: enable Gtk 4 toolkit support -- GUILE: enable GNU guile support -- IDN2: enable libidn2 support -- KMS: enable kernel mode settings support -- LEGACY: enable obsolete or deprecated features -- LLVM: enable LLVM support -- LZ4: enable lz4 compression support -- LZMA: enable lzma compression support -- MIDI: enable midi support -- MNL: enable netlink minimalistic library support -- NLS: enable native language support -- PAM: enable PAM support -- PCRE: enable perl-like regular expression support -- PULSEAUDIO: enable PulseAudio support -- PYTHON: enable Python 3 bindings or support -- QT5: enable Qt 5 toolkit support -- SPHINX: enable sphinx documentation support -- SSH: enable SSH support -- SSL: enable SSL/TLS, some packages offer several choices (e.g. openssl, gnutls) -- UDEV: enable eudev support -- UUID: enable UUID support -- WACOM: enable wacom support -- WAYLAND: enable wayland support -- X: enable X.Org support -- XML: enable XML support -- XZ: enable XZ support -- ZLIB: enable zlib compression support -- ZSTD: enable zstd compression support - -Always try to make an option easy to understand and not package specific. For -example BLUETOOTH is preferred over BLUEZ because a user knows what bluetooth is -but may not know that bluez is the current reference implementation. Also, it is -preferred to make an option generic to allow multiple values in case the -package offers it. - -Example, if a package offers different implementations for SSL, consider the -option with a value (e.g. SSL=openssl, SSL=gnutls, and such). - -Also, if a package offers different implementations that can be enabled all -together, use a list separated by space (e.g. XML="libxml2 expat"). - -Those options should only change the package behaviour, for example: manual -pages or any other resource files that are not strictly required; they must be -installed and the user may exclude them via `vpk` instead. - -The following options should be available for any package that builds C or C++ -code: - -- CBUILD: build system (usually ARCH-linux-musl) -- CHOST: host system (usually ARCH-linux-musl) -- CTARGET: target system (usually ARCH-linux-musl) -- CC: C compiler (defaults to gcc) -- CFLAGS: C flags (defaults to -O2) -- CXX: C++ compiler (defaults to g++) -- CXXFLAGS: C++ flags (defaults to -O2) - -## Keep neutral - -Do not make any modifications to the package. Keep it as close to upstream as -possible. Only minor tweaks are allowed including: - -- adjusting pid/uid/gid in a default configuration file for easier deployment - (but not on the original file example) -- disabling static libraries -- making sure paths are consolidated -- making sure system libraries are used rather than in-source bundles - -## Package naming - -The following prefixes must be used for those packages: - -- py-: for python modules -- ruby-: for native ruby modules -- rubygem-: for rubygems modules -- p5-: for perl 5 modules -- hs-: for haskell modules -- font-: for fonts (of any kind) - -When a package is available with different versions (e.g. Gtk, Qt) we add the -major number as suffix to the PKGNAME to *old* versions. Example, if Qt 5 is the -current major version and Qt 4 is also shipped then, the package *qt* refers to -version 5 while *qt4* to version 4. - -## Paths - -The package must ensure appropriate directories for installing files. This -includes: - -- /etc/rc.d for service files -- /lib/pkgconfig: for .pc files -- /lib/cmake: for CMake config files -- /lib: for libraries (no lib64 suffix) -- /share/locale: for NLS files -- /share/man/man{1,2,3,4,5,6,7,8}: for man pages (in uncompressed form) -- /share/doc/PKGNAME (exact directory, no version) - -## Services - -Services files must be installed in /etc/rc.d. You must use the following -conventions regarding messages the service will print. - -The script must at least support start, stop and restart. - -#### start (required) - -Always add arguments with the invocation. - - Starting foo: /bin/foo -d - -#### stop (required) - -If the service is not running, don't write any message. Otherwise write: - - Stopping foo. - -#### restart (required) - -Basically, this command just calls stop and start. - - Stopping foo. - Starting foo: /bin/foo -d - -#### status - -Depending on the status, write the following messages. - - foo is running with pid: 1234 - foo is not running - -#### usage - -If the script is invoked with invalid arguments or none, write the usage like -this through stderr and exit 1. Also keep all subcommands sorted. - - usage: foo restart|start|status|stop - -If your script may support additional operations, messages and usage are up to -the maintainer discretion. - -See also the template file as Templates/rc. - -## Static libraries and libtool files - -Do not ship static libraries and libtool files. Make sure your build script -suppress static builds if possible or delete the .a file. - -Note: the C and C++ library are shipped for technical reasons though. - -## Don't delete blindly - -Do never delete global files through the prefix installation as some people may -use scripts directly for the system. - -Example (BAD): - - rm -f $DESTDIR/lib/*.la - -Example (BETTER): - - rm -f $DESTDIR/lib/libfoo.la - -Assuming the package is "foo". - -# Desktop files - -We usually never add .desktop files for any package that doesn't provide one by -itself. This also includes terminal based applications. - -If a .desktop is provided by the package, make sure though that it is valid and -specifies the appropriate category (i.e. it does not appear in multiple menus at -once). - -See [desktop entry specification][] for more information. - -[desktop entry specification]: https://specifications.freedesktop.org/desktop-entry-spec/latest
--- a/README.md Fri Aug 02 21:15:00 2019 +0200 +++ b/README.md Fri Aug 02 21:20:00 2019 +0200 @@ -7,15 +7,11 @@ Usage ===== -To build a script, go to the desired directory and use `vpk download` and `vpk -build`. - -The `vpk` tool does not handle dependencies so you will need to install them -manually first. +To build a script, go to the desired directory and use `vpk build`. Example with zlib: - $ cd lib/zlib + $ cd compression/zlib $ vpk download $ vpk build @@ -26,7 +22,7 @@ Options ======= -Check the variable `PKGOPTIONS` in the build script file, if there is one it +Check the variable *PKGOPTIONS* in the build script file, if there is one it means the package is configurable with options. Specify environment variables before calling `vpk build`. @@ -63,5 +59,6 @@ - *tcl*: tcl packages and interpreters - *video*: video manipulation - *wm*: window managers +- *www*: web libraries and tools - *xfce*: the XFCE desktop - *x11*: the X distribution
--- a/UIDS.md Fri Aug 02 21:15:00 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -Vanilla Linux reserved UIDs and GIDs -==================================== - -Users and groups are created once needed at package installation. It's perfectly -safe to reuse the same UID/GID for different packages (example www, mail). - -You may think of UID/GID just like a simple package dependency. - -The following UID/GID are defined: - -| uid | gid | package(s) | -|---------------|--------------------|------------------| -| sshd (100) | sshd (100) | network/openssh | -| polkitd (101) | polkitd (101) | security/polkit | -| pulse (102) | pulse (102) | audio/pulseaudio | -| | pulse-rt (103) | audio/pulseaudio | -| | pulse-access (104) | audio/pulseaudio |