debian_package_manager

module
v0.0.0-...-9fd9248 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2024 License: Apache-2.0

README

debian-package-manager

A debian package index parser with bazel config generation

Usage

# if new versions are available, update snapshots and bazel config
$ make update
$ ./update

# generate new config for current snapshot
$ make generate
$ ./generate

Args

The updater and generator expect these files in the working directory by default but they can be specified with flags

--snapshots <location>    (default: ./debian_snapshots.yaml)
--packages <location>     (default: ./debian_packages.yaml)
--versions-out <location> (default: ./debian_versions.bzl)
--archives-out <location> (default: ./debian_archives.bzl)
debian_snapshots.yaml (input/output)

Usually autogenerated if none can be found, the debian snapshot version, usually a timestamp that can be placed in an url like: https://snapshot.debian.org/archive/debian/20220101T024315Z/

debian: 20220112T093851Z
security: 20220112T153306Z
debian_packages.yaml (input)

A list of packages with architecture and debian distro parameters

- distros: ["debian10"]
  archs: ["amd64", "arm64", "arm", "s390x", "ppc64le"]
  packages:
    - "libc6"
    - "libc-bin"
- distros: ["debian11"]
  archs: ["amd64"]
  packages:
    - "base-files"
debian_archives.bzl (output)

A bazel config of all the parsed packages, packages are http_file with name <arch>_<distro>_<package_name>, package names that contain special characters like + will be converted into bazel valid names.

This file can be imported into bazel config by adding the following to WORKSPACE

load(":debian_archives.bzl", debian_repositories = "repositories")
debian_repositories()

a debian file can be referenced by the name of the http_file

"@amd64_debian10_base-files//file"
debian_versions.bzl (output)

A bazel config file containing a map of packages to their versions. Useful when trying apply a string value of a version to a rule attribute.

DEBIAN_PACKAGE_VERSIONS = {
    "amd64": {
        "debian10": {
            "base-files": "10.3+deb10u11",
            "ca-certificates": "20200601~deb10u2",
            ...

This config can be imported in .bzl or BUILD files with

load("//:debian_versions.bzl", VERSIONS = "DEBIAN_PACKAGE_VERSIONS")

VERSIONS["amd64"]["debian10"]["base-files"]

Directories

Path Synopsis
cmd
internal
deb

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL