toltecmk


Nametoltecmk JSON
Version 0.3.0 PyPI version JSON
download
home_page
SummaryBuild system used for the Toltec community repository
upload_time2024-01-03 02:53:37
maintainer
docs_urlNone
author
requires_python>=3.11
license
keywords build-tooling packaging distribution
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## toltecmk

[![toltecmk on PyPI](https://img.shields.io/pypi/v/toltecmk)](https://pypi.org/project/toltecmk)
![Status of the main branch](https://github.com/toltec-dev/build/actions/workflows/checks.yml/badge.svg)

`toltecmk` is a Python tool used to build software packages for the [Toltec repository](https://github.com/toltec-dev/toltec) from _[PKGBUILD](https://wiki.archlinux.org/index.php/PKGBUILD)-like build recipes_.
It automates common tasks such as fetching sources, building artifacts in a reproducible environment, and creating [Opkg-compatible archives](docs/ipk.md).

**Disclaimer: This is beta-quality software. The recipe format may change at any time in future releases. If you use `toltecmk` in other projects, it is advised to pin to a specific version.**

<p align="center">
    <img src="https://github.com/toltec-dev/build/raw/main/media/overview.svg" alt="toltecmk input: recipe; output: packages. Fetches sources based on instructions in the recipe." title="Overview of toltecmk">
</p>

### Setup

`toltecmk` is available as a Python package on PyPI.

```sh
pip install toltecmk
```

There are a few system requirements to use this tool:

* Linux-based operating system
* Python ⩾ 3.11
* Docker

### Basic Usage

To build a recipe located in the current directory, simply run:

```sh
toltecmk
```

This will process the recipe in a subfolder called `build` (which can be adjusted using the `--work-dir` flag) and generate packages in a subfolder called `dist` (`--dist-dir` flag).

### Documentation

* Tutorials and resources
    - [Guide to writing recipes](docs/writing-recipes.md)
    - [About ipk packages](docs/ipk.md)
* Reference
    - [Recipe format reference](docs/recipe-format.md)
    - [Details on the build process](docs/build-process.md)

### Related Projects

Many other build tools exist today for creating software packages, each major distribution having invented its own recipe and package formats.
Some important ones are listed below.
`toltecmk` itself uses an Arch Linux-style recipe format to build Debian-style packages.

<table>
    <tr>
        <th>Name</th>
        <th>Used by</th>
        <th>Recipe format</th>
        <th>Package format</th>
    </tr>
    <tr>
        <td colspan="4" align="center"><em>Debian-style</em></th>
    </tr>
    <tr>
        <td><a href="https://salsa.debian.org/debian/debhelper">debhelper</a></td>
        <td><a href="https://www.debian.org/">Debian</a>, <a href="https://ubuntu.com">Ubuntu</a>, and <a href="https://en.wikipedia.org/wiki/List_of_Linux_distributions#DEB-based">others</a></td>
        <td><a href="https://www.debian.org/doc/manuals/debmake-doc/ch05.en.html">Source packages</a> (Makefiles)</td>
        <td><a href="https://man7.org/linux/man-pages/man5/deb.5.html">deb</a></td>
    </tr>
    <tr>
        <td><a href="https://openwrt.org/docs/guide-developer/using_the_sdk">OpenWrt SDK</a></td>
        <td><a href="https://openwrt.org/">OpenWrt</a>, <a href="https://entware.net/">Entware</a></td>
        <td><a href="https://openwrt.org/docs/guide-developer/package-policies">Source packages</a> (Makefiles)</td>
        <td><a href="docs/ipk.md">ipk</a></td>
    </tr>
    <tr>
        <td colspan="4" align="center"><em>Fedora-style</em></td>
    </tr>
    <tr>
        <td><a href="https://github.com/rpm-software-management/rpm">rpmbuild</a></td>
        <td><a href="https://getfedora.org/">Fedora</a>, <a href="https://www.opensuse.org/">openSUSE</a>, and <a href="https://en.wikipedia.org/wiki/List_of_Linux_distributions#RPM-based">others</a></td>
        <td><a href="https://rpm-packaging-guide.github.io/#what-is-a-spec-file">spec</a> (DSL)</td>
        <td><a href="https://rpm.org/devel_doc/file_format.html">rpm</a></td>
    </tr>
    <tr>
        <td colspan="4" align="center"><em>Arch Linux-style</em></td>
    </tr>
    <tr>
        <td><a href="https://wiki.archlinux.org/title/Makepkg">makepkg</a></td>
        <td><a href="https://archlinux.org/">Arch Linux</a> and <a href="https://en.wikipedia.org/wiki/List_of_Linux_distributions#Pacman-based">others</a></td>
        <td><a href="https://wiki.archlinux.org/index.php/PKGBUILD">PKGBUILD</a> (Bash scripts)</td>
        <td>pkg.tar.zst</td>
    </tr>
    <tr>
        <td><a href="https://gitlab.alpinelinux.org/alpine/abuild">abuild</a></td>
        <td><a href="https://alpinelinux.org/">Alpine Linux</a></td>
        <td><a href="https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package#Getting_some_help">APKBUILD</a> (Bash scripts)</td>
        <td><a href="https://wiki.alpinelinux.org/wiki/Alpine_package_format">apk</a></td>
    </tr>
    <tr>
        <td colspan="4" align="center"><em>Others</em></td>
    </tr>
    <tr>
        <td><a href="https://nixos.org/manual/nix/unstable/command-ref/nix-build.html">nix-build</a></td>
        <td><a href="https://nixos.org/">NixOS</a></td>
        <td><a href="https://nixos.org/manual/nix/stable/#chap-writing-nix-expressions">Expressions</a> (DSL)</td>
        <td><a href="https://gist.github.com/jbeda/5c79d2b1434f0018d693">nar</a></td>
    </tr>
    <tr>
        <td><a href="https://dev.gentoo.org/~zmedico/portage/doc/man/ebuild.1.html">ebuild</a></td>
        <td><a href="https://www.gentoo.org/">Gentoo</a></td>
        <td><a href="https://wiki.gentoo.org/wiki/Ebuild">ebuild</a> (Bash scripts)</td>
        <td><a href="https://wiki.gentoo.org/wiki/Binary_package_guide#Understanding_the_binary_package_format">tbz2</a></td>
    </tr>
</table>

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "toltecmk",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "",
    "keywords": "build-tooling,packaging,distribution",
    "author": "",
    "author_email": "Matt\u00e9o Delabre <git.matteo@delab.re>, Eeems <eeems@eeems.email>",
    "download_url": "https://files.pythonhosted.org/packages/3f/35/e417f0d97ee12afb2b0a6de5c360cb6c31f0d271a61f89d51665bf4b6240/toltecmk-0.3.0.tar.gz",
    "platform": null,
    "description": "## toltecmk\n\n[![toltecmk on PyPI](https://img.shields.io/pypi/v/toltecmk)](https://pypi.org/project/toltecmk)\n![Status of the main branch](https://github.com/toltec-dev/build/actions/workflows/checks.yml/badge.svg)\n\n`toltecmk` is a Python tool used to build software packages for the [Toltec repository](https://github.com/toltec-dev/toltec) from _[PKGBUILD](https://wiki.archlinux.org/index.php/PKGBUILD)-like build recipes_.\nIt automates common tasks such as fetching sources, building artifacts in a reproducible environment, and creating [Opkg-compatible archives](docs/ipk.md).\n\n**Disclaimer: This is beta-quality software. The recipe format may change at any time in future releases. If you use `toltecmk` in other projects, it is advised to pin to a specific version.**\n\n<p align=\"center\">\n    <img src=\"https://github.com/toltec-dev/build/raw/main/media/overview.svg\" alt=\"toltecmk input: recipe; output: packages. Fetches sources based on instructions in the recipe.\" title=\"Overview of toltecmk\">\n</p>\n\n### Setup\n\n`toltecmk` is available as a Python package on PyPI.\n\n```sh\npip install toltecmk\n```\n\nThere are a few system requirements to use this tool:\n\n* Linux-based operating system\n* Python \u2a7e\u00a03.11\n* Docker\n\n### Basic Usage\n\nTo build a recipe located in the current directory, simply run:\n\n```sh\ntoltecmk\n```\n\nThis will process the recipe in a subfolder called `build` (which can be adjusted using the `--work-dir` flag) and generate packages in a subfolder called `dist` (`--dist-dir` flag).\n\n### Documentation\n\n* Tutorials and resources\n    - [Guide to writing recipes](docs/writing-recipes.md)\n    - [About ipk packages](docs/ipk.md)\n* Reference\n    - [Recipe format reference](docs/recipe-format.md)\n    - [Details on the build process](docs/build-process.md)\n\n### Related Projects\n\nMany other build tools exist today for creating software packages, each major distribution having invented its own recipe and package formats.\nSome important ones are listed below.\n`toltecmk` itself uses an Arch Linux-style recipe format to build Debian-style packages.\n\n<table>\n    <tr>\n        <th>Name</th>\n        <th>Used by</th>\n        <th>Recipe format</th>\n        <th>Package format</th>\n    </tr>\n    <tr>\n        <td colspan=\"4\" align=\"center\"><em>Debian-style</em></th>\n    </tr>\n    <tr>\n        <td><a href=\"https://salsa.debian.org/debian/debhelper\">debhelper</a></td>\n        <td><a href=\"https://www.debian.org/\">Debian</a>, <a href=\"https://ubuntu.com\">Ubuntu</a>, and <a href=\"https://en.wikipedia.org/wiki/List_of_Linux_distributions#DEB-based\">others</a></td>\n        <td><a href=\"https://www.debian.org/doc/manuals/debmake-doc/ch05.en.html\">Source packages</a> (Makefiles)</td>\n        <td><a href=\"https://man7.org/linux/man-pages/man5/deb.5.html\">deb</a></td>\n    </tr>\n    <tr>\n        <td><a href=\"https://openwrt.org/docs/guide-developer/using_the_sdk\">OpenWrt SDK</a></td>\n        <td><a href=\"https://openwrt.org/\">OpenWrt</a>, <a href=\"https://entware.net/\">Entware</a></td>\n        <td><a href=\"https://openwrt.org/docs/guide-developer/package-policies\">Source packages</a> (Makefiles)</td>\n        <td><a href=\"docs/ipk.md\">ipk</a></td>\n    </tr>\n    <tr>\n        <td colspan=\"4\" align=\"center\"><em>Fedora-style</em></td>\n    </tr>\n    <tr>\n        <td><a href=\"https://github.com/rpm-software-management/rpm\">rpmbuild</a></td>\n        <td><a href=\"https://getfedora.org/\">Fedora</a>, <a href=\"https://www.opensuse.org/\">openSUSE</a>, and <a href=\"https://en.wikipedia.org/wiki/List_of_Linux_distributions#RPM-based\">others</a></td>\n        <td><a href=\"https://rpm-packaging-guide.github.io/#what-is-a-spec-file\">spec</a> (DSL)</td>\n        <td><a href=\"https://rpm.org/devel_doc/file_format.html\">rpm</a></td>\n    </tr>\n    <tr>\n        <td colspan=\"4\" align=\"center\"><em>Arch Linux-style</em></td>\n    </tr>\n    <tr>\n        <td><a href=\"https://wiki.archlinux.org/title/Makepkg\">makepkg</a></td>\n        <td><a href=\"https://archlinux.org/\">Arch Linux</a> and <a href=\"https://en.wikipedia.org/wiki/List_of_Linux_distributions#Pacman-based\">others</a></td>\n        <td><a href=\"https://wiki.archlinux.org/index.php/PKGBUILD\">PKGBUILD</a> (Bash scripts)</td>\n        <td>pkg.tar.zst</td>\n    </tr>\n    <tr>\n        <td><a href=\"https://gitlab.alpinelinux.org/alpine/abuild\">abuild</a></td>\n        <td><a href=\"https://alpinelinux.org/\">Alpine Linux</a></td>\n        <td><a href=\"https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package#Getting_some_help\">APKBUILD</a> (Bash scripts)</td>\n        <td><a href=\"https://wiki.alpinelinux.org/wiki/Alpine_package_format\">apk</a></td>\n    </tr>\n    <tr>\n        <td colspan=\"4\" align=\"center\"><em>Others</em></td>\n    </tr>\n    <tr>\n        <td><a href=\"https://nixos.org/manual/nix/unstable/command-ref/nix-build.html\">nix-build</a></td>\n        <td><a href=\"https://nixos.org/\">NixOS</a></td>\n        <td><a href=\"https://nixos.org/manual/nix/stable/#chap-writing-nix-expressions\">Expressions</a> (DSL)</td>\n        <td><a href=\"https://gist.github.com/jbeda/5c79d2b1434f0018d693\">nar</a></td>\n    </tr>\n    <tr>\n        <td><a href=\"https://dev.gentoo.org/~zmedico/portage/doc/man/ebuild.1.html\">ebuild</a></td>\n        <td><a href=\"https://www.gentoo.org/\">Gentoo</a></td>\n        <td><a href=\"https://wiki.gentoo.org/wiki/Ebuild\">ebuild</a> (Bash scripts)</td>\n        <td><a href=\"https://wiki.gentoo.org/wiki/Binary_package_guide#Understanding_the_binary_package_format\">tbz2</a></td>\n    </tr>\n</table>\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Build system used for the Toltec community repository",
    "version": "0.3.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/toltec-dev/build/issues",
        "Homepage": "https://github.com/toltec-dev/build"
    },
    "split_keywords": [
        "build-tooling",
        "packaging",
        "distribution"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "09b7d0f7e1f9bde41dcf6985ba1c53da0daa22d0c524cedfa051e7b5bad1f466",
                "md5": "c625b7ce7846bcdad067969c18cdd80a",
                "sha256": "caebc2df8dc77bd3f9cf079a0fcca85211af8681ea6147fd431db013fccf39c0"
            },
            "downloads": -1,
            "filename": "toltecmk-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c625b7ce7846bcdad067969c18cdd80a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 37111,
            "upload_time": "2024-01-03T02:53:35",
            "upload_time_iso_8601": "2024-01-03T02:53:35.524283Z",
            "url": "https://files.pythonhosted.org/packages/09/b7/d0f7e1f9bde41dcf6985ba1c53da0daa22d0c524cedfa051e7b5bad1f466/toltecmk-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f35e417f0d97ee12afb2b0a6de5c360cb6c31f0d271a61f89d51665bf4b6240",
                "md5": "d3f0b9ed24d2af0d6b5dfeaaca144f37",
                "sha256": "c8a7ae97a4827a3c13f17e6d5e753694a2f33f2804f6a5193166f58f46c965d9"
            },
            "downloads": -1,
            "filename": "toltecmk-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d3f0b9ed24d2af0d6b5dfeaaca144f37",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 37363,
            "upload_time": "2024-01-03T02:53:37",
            "upload_time_iso_8601": "2024-01-03T02:53:37.136343Z",
            "url": "https://files.pythonhosted.org/packages/3f/35/e417f0d97ee12afb2b0a6de5c360cb6c31f0d271a61f89d51665bf4b6240/toltecmk-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-03 02:53:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "toltec-dev",
    "github_project": "build",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "toltecmk"
}
        
Elapsed time: 0.15733s