A tool for maintaining an RPM based distribution. https://openmamba.org
Go to file
2024-08-15 16:45:08 +02:00
.vscode DistroqueryAPI: added package_files API call and files list in package details response 2024-08-11 17:56:14 +02:00
config Added config/config.rpath needed and probably generated by gettextize 2013-10-14 01:52:49 +02:00
html Almost completed cmake support with po and html directories 2020-06-18 15:14:52 +02:00
po Almost completed cmake support with po and html directories 2020-06-18 15:14:52 +02:00
src reports.c: remove repodata based repositories from legacy static html based repositories list 2024-08-15 16:45:08 +02:00
.gitignore Remove most obsoleted autotools files 2020-06-18 14:08:35 +02:00
ABOUT-NLS Autotools gettext support with initial italian translation for distroquery 2013-10-14 01:47:12 +02:00
AUTHORS Initial commit 2011-04-27 21:50:52 +02:00
ChangeLog Autotools gettext support with initial italian translation for distroquery 2013-10-14 01:47:12 +02:00
CMakeLists.txt CMakeLists.txt, .vscode: enable cmake compile_commands.json and add VSCode configuration 2024-07-06 15:07:24 +02:00
COPYING Initial commit 2011-04-27 21:50:52 +02:00
distromatic.conf Update sample configuration 2021-03-13 10:45:23 +01:00
README.md README.md: distroquery API documentation improved 2024-08-14 19:15:50 +02:00
VERSION Release 2.3.1 2024-05-16 10:39:39 +02:00

distromatic project for the openmamba Linux distribution

This project provides tools that have been developed by the maintainers of the openmamba Linux distribution in order to maintain, monitor and provide user interfaces for RPM based package repositories.

distromatic tool

distromatic is a command line tool which scans repositories with rpm and srpm packages or repodata folders containing metadata files and provides output files as sqlite databases, plaintext and html with detailed information on repositories and packages.

The created files are used for distribution maintainance purposes and to provide informative interfaces to end users.

distroquery tool

distroquery is a command line tool intended to be used as a CGI backend for the web. It provides API interfaces intended to be used by web frontends and development instruments in order to provide dynamic information on distribution repositories and packages.

distroquery API services

The newest distroquery API interface is currently available from this prefix: https://push.openmamba.org/openmamba/distroquery/api/v1.

Repositories list /api/v1/repositories

Returns a list of all available repositories.

Example

https://push.openmamba.org/openmamba/distroquery/api/v1/repositories

Request with cURL:

curl "https://push.openmamba.org/openmamba/distroquery/api/v1/repositories"

Response:

[
  {
    "tag": "base",
    "archs": [
      "x86_64",
      "aarch64",
      "i586"
    ],
    "description": "openmamba base repository [rolling]",
    "parents": []
  },
  {
    "tag": "devel-makedist",
    "archs": [
      "x86_64",
      "aarch64",
      "i586"
    ],
    "description": "openmamba staging packages repository [unstable]",
    "parents": [
      "base"
    ]
  },
%----------OUTPUT CUT----------%
]

Repository packages /api/v1/repository

Returns a list of packages available in a repository.

Query string parameters

  • q=term: filters the results with name and description matching the given term;
  • per_page=n: returns n results (default is 100);
  • page=n: shows the nth page of results

Example

https://push.openmamba.org/openmamba/distroquery/api/v1/repository/base?page=1&per_page=10

Request with cURL:

curl "https://push.openmamba.org/openmamba/distroquery/api/v1/repository/base?page=1&per_page=10" 

Response:

{
  "query": {
    "repository": "base",
    "per_page": 10,
    "page": 1,
    "q": "",
    "total": 42413,
    "pages": 4242,
    "from": 1,
    "to": 10
  },
  "packages": [
    {
      "name": "54321",
      "arch": "src",
      "version": "1.0.2001.11.16",
      "release": "4mamba",
      "summary": "54321 is five games in four-, three-, or two-dimensions for one player.",
      "buildtime": "2021-02-27T19:17:12Z"
    },
%----------OUTPUT CUT----------%
    {
      "name": "a2ps-debug",
      "arch": "i586",
      "version": "4.15.6",
      "release": "1mamba",
      "summary": "Debug information for package a2ps",
      "buildtime": "2024-03-15T19:37:03Z"
    }
  ]
}

Source package details /api/v1/package

Returns the details for a source or binary package.

URI arguments

For source packages the URI is in the form:

/api/v1/repository/package

For binary packages:

/api/v1/repository/package/arch

Where:

  • repository: is the name of the repository containing the package;
  • package: is the name of the source or binary package to query for;
  • arch: is the architecture of the binary package to query for.

Source package example

https://push.openmamba.org/openmamba/distroquery/api/v1/package/base/bash

Request with cURL:

curl https://push.openmamba.org/openmamba/distroquery/api/v1/package/base/bash

Response:

{
  "id": 204,
  "name": "bash",
  "summary": "The GNU Bourne Again shell (bash)",
  "epoch": "0",
  "version": "5.2.p32",
  "release": "1mamba",
  "description": "Bash (Bourne Again shell) is the shell, or command language interpreter, that will appear in the GNU operating system.\nBash is an sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh).\nIt is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard.\nIt offers functional improvements over sh for both programming and interactive use.\nIn addition, most sh scripts can be run by Bash without modification.\n\nThe improvements offered by BASH include:\n* Command line editing\n* Unlimited size command history\n* Job Control\n* Shell Functions and Aliases\n* Indexed arrays of unlimited size\n* Integer arithmetic in any base from two to sixty-four",
  "group": "Applications/Shells",
  "license": "GPL",
  "url": "http://www.gnu.org/software/bash/bash.html",
  "size": 11028405,
  "maintainer": "silvan",
  "buildtime": "2024-08-01T05:11:43Z",
  "download_url": "/download.html?file=/pub/openmamba/base/SRPMS.base/bash-5.2.p32-1mamba.src.rpm",
  "source_url": "https://src.openmamba.org/rpms/bash",
  "buildrequires": [
    {
      "name": "bison",
      "flags": "",
      "version": "",
      "providers": {
        "archs": {
          "aarch64": [
            {
              "repository": "base",
              "name": "bison",
              "flags": "=",
              "version": "0:3.8.2-1mamba"
            }
          ],
          "i586": [
            {
              "repository": "base",
              "name": "bison",
              "flags": "=",
              "version": "0:3.8.2-1mamba"
            }
          ],
          "x86_64": [
            {
              "repository": "base",
              "name": "bison",
              "flags": "=",
              "version": "0:3.8.2-1mamba"
            }
          ]
        }
      }
    },
%----------OUTPUT CUT----------%
  ],
  "children": {
    "archs": {
      "x86_64": [
        {
          "name": "bash"
        },
        {
          "name": "bash-debug"
        },
        {
          "name": "bash-devel"
        },
        {
          "name": "bash-doc"
        }
      ],
      "aarch64": [
        {
          "name": "bash"
        },
        {
          "name": "bash-debug"
        },
        {
          "name": "bash-devel"
        },
        {
          "name": "bash-doc"
        }
      ],
      "i586": [
        {
          "name": "bash"
        },
        {
          "name": "bash-debug"
        },
        {
          "name": "bash-devel"
        },
        {
          "name": "bash-doc"
        }
      ]
    }
  },
  "changelog": [
    {
      "date": "2024-08-01T12:00:00Z",
      "packager": "Automatic Build System <autodist@openmamba.org>",
      "release": "5.2.p32-1mamba",
      "text": "- automatic version update by autodist"
    },
%----------OUTPUT CUT----------%
  ]
}

Binary package example

https://push.openmamba.org/openmamba/distroquery/api/v1/package/base/bash/x86_64

Request with cURL:

curl https://push.openmamba.org/openmamba/distroquery/api/v1/package/base/bash/x86_64

Response:

{
  "id": 368,
  "name": "bash",
  "summary": "The GNU Bourne Again shell (bash)",
  "epoch": "0",
  "version": "5.2.p32",
  "release": "1mamba",
  "description": "Bash (Bourne Again shell) is the shell, or command language interpreter, that will appear in the GNU operating system.\nBash is an sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh).\nIt is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard.\nIt offers functional improvements over sh for both programming and interactive use.\nIn addition, most sh scripts can be run by Bash without modification.\n\nThe improvements offered by BASH include:\n* Command line editing\n* Unlimited size command history\n* Job Control\n* Shell Functions and Aliases\n* Indexed arrays of unlimited size\n* Integer arithmetic in any base from two to sixty-four",
  "group": "Applications/Shells",
  "arch": "x86_64",
  "size": 2530934,
  "source": {
    "id": 204,
    "name": "bash",
    "summary": "The GNU Bourne Again shell (bash)",
    "epoch": "0",
    "version": "5.2.p32",
    "release": "1mamba",
    "description": "Bash (Bourne Again shell) is the shell, or command language interpreter, that will appear in the GNU operating system.\nBash is an sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh).\nIt is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard.\nIt offers functional improvements over sh for both programming and interactive use.\nIn addition, most sh scripts can be run by Bash without modification.\n\nThe improvements offered by BASH include:\n* Command line editing\n* Unlimited size command history\n* Job Control\n* Shell Functions and Aliases\n* Indexed arrays of unlimited size\n* Integer arithmetic in any base from two to sixty-four",
    "group": "Applications/Shells",
    "license": "GPL",
    "url": "http://www.gnu.org/software/bash/bash.html",
    "size": 11028405,
    "maintainer": "silvan",
    "buildtime": "2024-08-01T05:11:43Z",
    "download_url": "/download.html?file=/pub/openmamba/base/SRPMS.base/bash-5.2.p32-1mamba.src.rpm",
    "source_url": "https://src.openmamba.org/rpms/bash"
  },
  "download_url": "/download.html?file=/pub/openmamba/base/RPMS.x86_64/bash-5.2.p32-1mamba.x86_64.rpm",
  "brothers": [
    "bash-debug",
    "bash-devel",
    "bash-doc"
  ],
  "obsoletes": [],
  "provides": [
    {
      "name": "/bin/sh",
      "flags": "",
      "version": ""
    },
    {
      "name": "/usr/bin/bash",
      "flags": "",
      "version": ""
    },
    {
      "name": "/usr/bin/sh",
      "flags": "",
      "version": ""
    },
    {
      "name": "bash",
      "flags": "=",
      "version": "0:5.2.p32-1mamba"
    },
    {
      "name": "bash(x86-64)",
      "flags": "=",
      "version": "0:5.2.p32-1mamba"
    }
  ],
  "requires": [
    {
      "name": "/sbin/install-info",
      "flags": "",
      "version": "",
      "providers": [
        {
          "repository": "base",
          "name": "texinfo",
          "flags": "",
          "version": ""
        }
      ]
    },
%----------OUTPUT CUT----------%
  ],
  "files": [
    {
      "path": "/bin/bash"
    },
%----------OUTPUT CUT----------%
    {
      "path": "/usr/share/man/man1/builtins.1.gz"
    }
  ]
}

Binary package files list /api/v1/package_files

Returns the list of files provided with a binary package.

Example: https://push.openmamba.org/openmamba/distroquery/api/v1/package_files/base/bash/x86_64

Providers for requirement /api/v1/providers

Returns a list of packages with match with a requirement.

Example: https://push.openmamba.org/openmamba/distroquery/api/v1/providers/base/glibc/>=/2.40

Providers for file /api/v1/file_providers

Returns a list of packages which provide a file.

Example: https://push.openmamba.org/openmamba/distroquery/api/v1/file_providers/base/%2Fbin%2Fbash/x86_64

Repository problems /api/v1/problems

Returns a list of problems which affects the packages of a repository.

Example: https://push.openmamba.org/openmamba/distroquery/api/v1/problems/base