Projeto-Pindorama / pacote

A SVR4-like package manager for the 21st century.
http://pacote.pindorama.dob.jp
University of Illinois/NCSA Open Source License
4 stars 4 forks source link
golang package-manager unix

The Pacote Package Manager

"Pacote" (Portuguese for "package", pronounced /pɐˈkɔ.tɨ/) is a set of SVR4-compatible package managenment tools, but made in a modernist and cleaner way.
This originally was created as a project with the intent of learning the Go programming language and (re)documenting the SVR4 package manager specification, but it is really meant to be a solid, modern and safe implementation of the SVR4 package manager for the 21st century, working as a base for any extensions that can be made in any language that supports calling commands from the PATH.

Everything here is a big "TO DO", since it's part of a really big project and we do not have enough workforce to fight in all the fronts simultaniously, so there are things that could've been made in some days and that took literal months to get done --- not even talking about fixes that would need to be made.

You can read more about it in READMEs below:

There is also the official documentation, which is served at https://tabula.pindorama.dob.jp/pacote and has its source at the Silicon Tabula repository.

Quick information: file formats

Implementation status

This project currently implements the following tools:

Command Description Status
pkgproto(1) Generate a prototype(4) file for input to the pkgmk(1) command. W.I.P.; Almost finished, lacks the ability to alias directories properly
pkginfo(1) Display software package information. W.I.P.; parser done

The following tools shall be implemented in coming days, weeks, months or, in the worst case scenario, years.

Command Description Status
pkgmk(1) Create an software package. Planning
pkgadd(8) Install a software package. Planning
pkgrm(8) Remove a software package. Planning
pkgask(8) Store answers to a request script. Planning
pkgtrans(1) "Translate" packages between datastream formats.
According to the specification, it is used for
copying packages into a distribution medium.
Planning
pkgchk(8) Check if a package is impartial. Planning
pkginfo(1) Displays information about a software package.
This shall be simple, since it is only based on
parsing the pkginfo(5) file from a package.
W.I.P.
pkgparam(1) Displays package parameters, declared at pkginfo(5).
In fact, it's basically like pkginfo(1), but it displays
the file instead of parsing it for displaying separate values.
This shall also be simple.
Planning
installf(8) Installs files into an already installed software package.
In theory, this basically just edits the database and copies
the file to the file system.
Planning
removef(8) Removes files from an already installed software package.
In theory, this also just edits the database and deletes
the file in the file system.
Planning