mkpk manual


MKPK(8)                     System Manager's Manual                    MKPK(8)


NAME

     mkpk -- packaging system using Plan9 mk


SYNOPSIS

     mkpk [operation] [package]


DESCRIPTION

     mkpk is a helper tool passing specific mkfiles to mk(1) to manage pack-
     ages.  operation can be one of the following:

           mkpk build package
                    Builds the most recent version of a package tarball and
                    puts it into PKGDIR.

           mkpk fetch package
                    Downloads the necessary sources to build package to the
                    directory SRCBASEDIR.

           mkpk info package
                    Shows information about the installed tarball of a
                    package.

           mkpk install package
                    Installs the files from a built tarball of a package hav-
                    ing the most recent version.

           mkpk list package
                    Lists files from the installed tarball of a package.

           mkpk uninstall package
                    Uninstalls the installed package by unlinking files from
                    the filelist of its tarball.

           mkpk update
                    Updates the mkfiles repository.

           mkpk upgrade package
                    Upgrades the existing package, as if the following was ex-
                    ecuted, in order:

                    $ mkpk fetch package
                    $ mkpk build package
                    $ mkpk uninstall package
                    $ mkpk install package


ENVIRONMENT

     You can see the full list of relevant environment variables used by mkpk
     in the file /lib/mkpk/defaults.mk (default location).

     mkpklib     Directory holding the library mkfiles.  By default,
                 /lib/mkpk.

     BINDDIRS    Passed to PRoot as an argument.  Defaults to -b /etc, which
                 bind-mounts /etc when creating a package.

     MKFILESREPO
                 URL of the repository with the mkfiles with information on
                 how to build individual packages.  Defaults to galeb-mkfiles
                 repository.

     NOBINDDIRS  If set to 1, no directories will be bind-mounted by PRoot
                 when creating a package.

     PKG         Full name of a package, including the full version.  For ex-
                 ample, "gcc-12.1.0-2" or "vim-9.0.135".

     PKGBASE     Base name of a package.  For example, "gcc" or "vim".

     PKGDB       Package database; TSV file holding the names, versions and
                 installation timestamps of all installed packages.  By de-
                 fault, /pkg/pkgdb.tsv.

     SKIPCLEAN   If set to 1, pkgroot won't be deleted after creating a pack-
                 age.

     SRCBASEDIR  Base directory for source code.  Defaults to /src.

     SRCDIRS     Space-separated list of directories which are created by ex-
                 tracting archives.

     SRCCRDIRS   Space-separated list of directories to be created, to which
                 the archives are to be extracted.  Useful when a source ar-
                 chive doesn't have a root directory like it should.

     SRCEXDIRS   Space-separated list of directories to which the archive will
                 be extracted.  An alternative to SRCCRDIRS, when the directo-
                 ries already exist.

     SRCTODIRS   Space-separated list of directories to which the directories
                 from SRCDIRS will be renamed after extracting source ar-
                 chives.

     SRCTOTARBALLS
                 Space-separated list of tarball names to which the tarballs
                 will be saved.  Useful eg. for Github tarballs which have
                 only version in their name.

     SRCMKFILES  Directory containing mkfiles.  By default, /src/mkfiles.


FILES

     /pkg/*.tar.xz   Tarballs containing built binaries, ready to be extracted
                     to /.

     /pkg/pkgdb.tsv  Package database; TSV file holding the names, versions
                     and installation timestamps of all installed packages.

     /lib/mkpk/*.mk  Mkfiles to be included into individual package's mkfiles
                     or called by the mkpk helper.

     /src/[package]-[version]
                     Main source directory for a package.

     /src/mkfiles/[package]
                     Mkfiles with instructions on how to build each individual
                     package.  Copied to /src/[package]-[version].


SEE ALSO

     mk(1)


AUTHORS

     Strahinya Radich <contact@strahinja.org>, 2022-2023.

Galeb 2.2                       April 22, 2023                       Galeb 2.2