{"id":36632084,"url":"https://github.com/kernelci/tuxmake","last_synced_at":"2026-01-12T09:39:17.758Z","repository":{"id":329441631,"uuid":"1119523492","full_name":"kernelci/tuxmake","owner":"kernelci","description":"TuxMake, by Linaro, is a command line tool and Python library that provides portable and repeatable Linux kernel builds across a variety of architectures, toolchains, kernel configurations, and make targets. TuxMake is a part of TuxSuite, a suite of tools and services to help with Linux kernel development.","archived":false,"fork":false,"pushed_at":"2025-12-19T16:06:48.000Z","size":1429,"stargazers_count":0,"open_issues_count":33,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-22T06:23:18.795Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kernelci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/docker/.gitignore","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-19T12:05:59.000Z","updated_at":"2025-12-19T15:22:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kernelci/tuxmake","commit_stats":null,"previous_names":["kernelci/tuxmake"],"tags_count":103,"template":false,"template_full_name":null,"purl":"pkg:github/kernelci/tuxmake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Ftuxmake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Ftuxmake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Ftuxmake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Ftuxmake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kernelci","download_url":"https://codeload.github.com/kernelci/tuxmake/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Ftuxmake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-12T09:39:17.695Z","updated_at":"2026-01-12T09:39:17.751Z","avatar_url":"https://github.com/kernelci.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/tuxmake_full.svg\" alt=\"TuxMake Logo\" width=\"50%\" /\u003e\n\u003c/div\u003e\n\n[![Pipeline Status](https://gitlab.com/Linaro/tuxmake/badges/master/pipeline.svg)](https://gitlab.com/Linaro/tuxmake/pipelines)\n[![coverage report](https://gitlab.com/Linaro/tuxmake/badges/master/coverage.svg)](https://gitlab.com/Linaro/tuxmake/commits/master)\n[![PyPI version](https://badge.fury.io/py/tuxmake.svg)](https://pypi.org/project/tuxmake/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![PyPI - License](https://img.shields.io/pypi/l/tuxmake)](https://gitlab.com/Linaro/tuxmake/blob/master/LICENSE)\n\n[Documentation](https://tuxmake.org/) - [Repository](https://gitlab.com/Linaro/tuxmake) - [Issues](https://gitlab.com/Linaro/tuxmake/-/issues)\n\nTuxMake, by [Linaro](https://www.linaro.org/), is a command line tool and\nPython library that provides portable and repeatable Linux kernel builds across\na variety of architectures, toolchains, kernel configurations, and make\ntargets. TuxMake is a part of [TuxSuite](https://tuxsuite.com), a suite of\ntools and services to help with Linux kernel development.\n\n[[_TOC_]]\n\n\n# About TuxMake\n\nBuilding Linux is easy, right? You just run \"make defconfig; make\"!\n\nIt gets complicated when you want to support the following combinations:\n\n- Architectures (arc, arm, arm64, i386, mips, parisc, powerpc, riscv, s390, sh,\n  sparc, x86_64, etc)\n- Toolchains (gcc-8, gcc-9, gcc-10, clang-10, clang-11, clang-nightly, etc)\n- Configurations (defconfig, distro configs, allmodconfigs, randconfig, etc)\n- Targets (kernel image, documentation, selftests, perf, cpupower, etc)\n- Build-time validation (coccinelle, sparse checker, etc)\n\nEach of those items requires specific configuration, and supporting all\ncombinations is difficult. TuxMake seeks to simplify Linux kernel building by\nproviding a consistent command line interface to each of those combinations\nlisted above. You specify what to build at the command line, and TuxMake drives\nthe build for you, doing the same steps the same way every time.\n\nThe real power comes from using TuxMake's curated, portable build environments\ndistributed as Docker/Podman [container images](https://hub.docker.com/u/tuxmake).\nWhen using these versioned and hermetic filesystem images, your team can use\nthe same exact toolchain(s) across different workstation platforms. Reporting\nand reproducing build failures is trivial by sharing TuxMake command lines with\nothers.\n\n# Installing TuxMake\n\nThere are several options for installing TuxMake:\n\n- [From PyPI](docs/install-pypi.md)\n- [Debian packages](docs/install-deb.md)\n- [RPM packages](docs/install-rpm.md)\n- [Run uninstalled](docs/run-uninstalled.md)\n\n# Using TuxMake\n\nTo use TuxMake, navigate to a Linux source tree (where you might usually run\n`make`), and run `tuxmake`. By default, it will perform a defconfig build on\nyour native architecture, using a default compiler (`gcc`).\n\nThe behavior of the build can be modified with command-line arguments. Run\n`tuxmake --help` to see all command-line arguments.\n\n# Examples\n\nBuild from current directory:\n\n    $ tuxmake\n\nBuild using Podman:\n\n    $ tuxmake --runtime podman\n\nBuild from specific directory:\n\n    $ tuxmake --directory /path/to/linux\n\nBuild an arm64 kernel:\n\n    $ tuxmake --target-arch=arm64\n\nBuild an arm64 kernel with gcc-10:\n\n    $ tuxmake --target-arch=arm64 --toolchain=gcc-10\n\nBuild an arm64 kernel with clang-10:\n\n    $ tuxmake --target-arch=arm64 --toolchain=clang-10\n\nBuild tinyconfig on arm64 with gcc-9:\n\n    $ tuxmake -a arm64 -t gcc-9 -k tinyconfig\n\nBuild defconfig with additional config from file:\n\n    $ tuxmake --kconfig-add /path/to/my.config\n\nBuild defconfig with additional config from URL:\n\n    $ tuxmake --kconfig-add https://foo.com/my.config\n\nBuild defconfig with additional in-tree config:\n\n    $ tuxmake --kconfig-add kvm_guest.config\n\nBuild defconfig with additional inline config:\n\n    $ tuxmake --kconfig-add CONFIG_KVM_GUEST=y\n\nBuild tinyconfig on arm64 with gcc-9 using docker:\n\n    $ tuxmake -r docker -a arm64 -t gcc-9 -k tinyconfig\n\nBuild DTBs on arm64 using podman:\n\n    $ tuxmake -r podman -a arm64 -t gcc-9 dtbs\n\nIncremental builds can be done by reusing a build directory:\n\n    $ tuxmake --build-dir=/path/to/output\n    # hack on source ...\n    $ tuxmake --build-dir=/path/to/output\n    # only rebuilds what is needed\n\nUsing configuration files:\n\n    # reads command line options from ~/.config/tuxmake/myconfig\n    $ tuxmake @myconfig\n    # reads command line options from /tmp/myconfig\n    $ tuxmake @/tmp/myconfig\n\nDisplay all options:\n\n    $ tuxmake --help\n\n# Contributing to TuxMake\n\nSee the [Contribution Guidelines](docs/contributing.md) document for details in\nhow to contribute to TuxMake. Contributors are expected to follow the [TuxMake\nCode of Conduct](docs/code-of-conduct.md) (the same adopted in the Linux kernel\ncommunity).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernelci%2Ftuxmake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkernelci%2Ftuxmake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernelci%2Ftuxmake/lists"}