Skip to content

Arch Linux Package Management [ALPM]

Go to: Contributing

ALPM

This project comprises specifications, as well as Rust libraries and tools for A rch L inux P ackage M anagement.

The ALPM project arose from the need for more clearly specifying the interfaces, as well as providing bindings and tools in a memory-safe programming language.

The specifications and implementations are based on ad-hoc implementations in the pacman project. Currently, this project aims to maintain compatibility with pacman 5.1.0 and onwards.

The scope of this project is to provide robust integration for all relevant package creation and consumption, as well as repository management tasks. As such, the ALPM project also aims at providing drop-in replacements or alternatives for some facilities provided by pacman.

This project has been financed by the Sovereign Tech Agency.
Read the official announcement for more information.

Documentationβš“οΈŽ

Documentation

The latest project documentation can be found at the alpm archlinux page

Documentation for all current ALPM lints is available at the alpm archlinux page/lints

Overviewβš“οΈŽ

Overview

The following mindmap attempts to provide a high-level overview of the project and put file types as well as (existing and upcoming) libraries into context.

mindmap
  root((ALPM))
    πŸ“‚ Source
      πŸ“„ PKGBUILD
      πŸ“„ .SRCINFO
      πŸ“šοΈ alpm-pkgbuild
      ⌨️/πŸ“šοΈ alpm-srcinfo
    πŸ“¦ Package
      πŸ“„ .BUILDINFO
      πŸ“„ .INSTALL
      πŸ“„ .MTREE
      πŸ“„ .PKGINFO
      ⌨️/πŸ“šοΈ alpm-buildinfo
      ⌨️/πŸ“šοΈ alpm-mtree
      πŸ“šοΈ alpm-package
      ⌨️/πŸ“šοΈ alpm-pkginfo
      ⌨️/πŸ“šοΈ alpm-soname
    πŸ—„οΈ Repository
      πŸ“„ desc
      πŸ“„ files
      ⌨️/πŸ“šοΈ alpm-repo-db
    πŸ—„οΈ Package Management
      πŸ“„ desc
      πŸ“„ files
      ⌨️/πŸ“šοΈ alpm-db
    βœ…οΈ Linting
      ⌨️/πŸ“šοΈ alpm-lint
    πŸ’¬ Language bindings
      🐍 python-alpm
    πŸ› οΈ Utils
      πŸ“šοΈ alpm-common
      πŸ“šοΈ alpm-compress
      πŸ“šοΈ alpm-parsers

For an overview of planned specifications and components, refer to the milestones of the project.

Componentsβš“οΈŽ

Currently the following software components are available:

  • alpm-buildinfo
    Go to

    A library and command line interface to work with BUILDINFO(5) files.

  • alpm-common
    Go to

    A library for common traits and functionality.

  • alpm-compress
    Go to

    A library for compression operations in ALPM.

  • alpm-db
    Go to

    A library and CLI to work with alpm-db(7), alpm-db-desc(5), and alpm-db-files(5).

  • alpm-lint
    Go to

    A linting tool for everything around Arch Linux packaging.

  • alpm-mtree
    Go to

    A library and command line interface to work with ALPM-MTREE(5) files.

  • alpm-package
    Go to

    A library for the creation of alpm-package(7) files.

  • alpm-parsers
    Go to

    A library for providing various custom parsers/deserializers for ALPM.

  • alpm-pkginfo
    Go to

    A library and command line interface to work with PKGINFO(5) files.

  • alpm-repo-db
    Go to

    A library and CLI for alpm-repo-db(7), desc, and files formats.

  • alpm-soname
    Go to

    A library and command line interface for looking up soname data.

  • alpm-srcinfo
    Go to

    A library and command line interface to work with SRCINFO(5) files.

  • alpm-types
    Go to

    A central library for types used by other ALPM libraries and tools.

  • python-alpm
    Go to

    Python bindings for ALPM crates and the python-alpm Python library.

  • archlinux-keyring
    Go to

    Arch Linux PGP keyring management and trust database.

Contributingβš“οΈŽ

Contributing

Please refer to the contribution guidelines to learn how to contribute to this project.

Releasesβš“οΈŽ

Releases

Releases of components are created by the developers of this project.

OpenPGP certificates with the following OpenPGP fingerprints can be used to verify signed tags:


Some of the above are part of archlinux-keyring and certified by at least three main signing keys of the distribution.

Licenseβš“οΈŽ

License

This project can be used under the terms of the Apache-2.0 or MIT.

Contributions to this project, unless noted otherwise, are automatically licensed under the terms of both of those licenses.

MindMap

Go to: Contributing