Name

praxis - reference implementation of the package manager for Mutiny

Named as such to conform with the rest of the Mutiny naming scheme. "Praxis," the word, means in the original Greek, "action." Packages are referred to as theories, thus praxis carries out a theory(7). praxis is the reference implementation of the package manager used by mutiny(7).

Synopsis

This page consists of documentation on the design of the praxis package manager.

Wishlist

  • Multiple repositories

    • Intra-repository dependencies

    • Important levels

      • ::canon is the most important repository

      • Other repositories can always depend on libraries in repositories that are more important

  • Repository synchronization

    • we might not want to have git in the basic system requirements

      • Sounds like a great way to justify having rsync be a sysreq though…​ which is also kinda bad. that said, there is stuff like openrsync now…​

      • Having full history of the source repositories on your system is very appealing though and would be very much in line with system principles

    • We could offer synchronization via tar archives or git repositories; gitlab and github both can do autogenerated archives for each commit, the master branch, etc.

    • Multiple ways to sync repositories

    • Paludis has sync prefixes: cave sync -s local repository, which is really useful for development of repositories

  • Something akin to apt-get source would be pretty nice - we have all the metadata to do just this anyway, since all packages are built from source

Configuration

/etc/praxis/masks.conf

ignore      linux-headers[>$(uname -r | cut -d- -f1)]

/etc/praxis/build.conf

Options enabled on packages; this may also include things such as environment variables.

MAKEFLAGS="-j12"

*           -* ruby ssl
toybox      MAKEFLAGS="-j1" static
lighttpd    webdav pcre -lua MAKEFLAGS="-j -l3"

/etc/praxis/world-${CHOST}

Packages specifically requested to be installed by the user. They were not installed as dependencies of other packages.

beets
lighttpd
mpd
pass