diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-15 06:56:09 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 06:56:09 +0000 |
| commit | 2be009532b416100ba4d8d18cb77d00041310a18 (patch) | |
| tree | d0925a01d6ab660c97c350156f5563ef15b2ad0c /python-tuxmake.spec | |
| parent | 29882bba926b75eb6dba61d16fa9bb73547fb480 (diff) | |
automatic import of python-tuxmake
Diffstat (limited to 'python-tuxmake.spec')
| -rw-r--r-- | python-tuxmake.spec | 501 |
1 files changed, 501 insertions, 0 deletions
diff --git a/python-tuxmake.spec b/python-tuxmake.spec new file mode 100644 index 0000000..6ae63f1 --- /dev/null +++ b/python-tuxmake.spec @@ -0,0 +1,501 @@ +%global _empty_manifest_terminate_build 0 +Name: python-tuxmake +Version: 1.13.0 +Release: 1 +Summary: Thin wrapper to build Linux kernels +License: None +URL: https://tuxmake.org/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/29/49/059fea455f606b424b4853f9699a9c60006151192aa3c3af9448f8f42d9b/tuxmake-1.13.0.tar.gz +BuildArch: noarch + + +%description +<div align="center"> + <img src="docs/tuxmake_full.svg" alt="TuxMake Logo" width="50%" /> +</div> + +[](https://gitlab.com/Linaro/tuxmake/pipelines) +[](https://gitlab.com/Linaro/tuxmake/commits/master) +[](https://pypi.org/project/tuxmake/) +[](https://github.com/psf/black) +[](https://gitlab.com/Linaro/tuxmake/blob/master/LICENSE) + +[Documentation](https://tuxmake.org/) - [Repository](https://gitlab.com/Linaro/tuxmake) - [Issues](https://gitlab.com/Linaro/tuxmake/-/issues) + +TuxMake, by [Linaro](https://www.linaro.org/), 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](https://tuxsuite.com), a suite of +tools and services to help with Linux kernel development. + +[[_TOC_]] + + +# About TuxMake + +Building Linux is easy, right? You just run "make defconfig; make"! + +It gets complicated when you want to support the following combinations: + +- Architectures (arc, arm, arm64, i386, mips, parisc, powerpc, riscv, s390, sh, + sparc, x86_64, etc) +- Toolchains (gcc-8, gcc-9, gcc-10, clang-10, clang-11, clang-nightly, etc) +- Configurations (defconfig, distro configs, allmodconfigs, randconfig, etc) +- Targets (kernel image, documentation, selftests, perf, cpupower, etc) +- Build-time validation (coccinelle, sparse checker, etc) + +Each of those items requires specific configuration, and supporting all +combinations is difficult. TuxMake seeks to simplify Linux kernel building by +providing a consistent command line interface to each of those combinations +listed above. You specify what to build at the command line, and TuxMake drives +the build for you, doing the same steps the same way every time. + +The real power comes from using TuxMake's curated, portable build environments +distributed as Docker/Podman [container images](https://hub.docker.com/u/tuxmake). +When using these versioned and hermetic filesystem images, your team can use +the same exact toolchain(s) across different workstation platforms. Reporting +and reproducing build failures is trivial by sharing TuxMake command lines with +others. + +# Installing TuxMake + +There are several options for installing TuxMake: + +- [From PyPI](docs/install-pypi.md) +- [Debian packages](docs/install-deb.md) +- [RPM packages](docs/install-rpm.md) +- [Run uninstalled](docs/run-uninstalled.md) + +# Using TuxMake + +To use TuxMake, navigate to a Linux source tree (where you might usually run +`make`), and run `tuxmake`. By default, it will perform a defconfig build on +your native architecture, using a default compiler (`gcc`). + +The behavior of the build can be modified with command-line arguments. Run +`tuxmake --help` to see all command-line arguments. + +# Examples + +Build from current directory: + + $ tuxmake + +Build using Podman: + + $ tuxmake --runtime podman + +Build from specific directory: + + $ tuxmake --directory /path/to/linux + +Build an arm64 kernel: + + $ tuxmake --target-arch=arm64 + +Build an arm64 kernel with gcc-10: + + $ tuxmake --target-arch=arm64 --toolchain=gcc-10 + +Build an arm64 kernel with clang-10: + + $ tuxmake --target-arch=arm64 --toolchain=clang-10 + +Build tinyconfig on arm64 with gcc-9: + + $ tuxmake -a arm64 -t gcc-9 -k tinyconfig + +Build defconfig with additional config from file: + + $ tuxmake --kconfig-add /path/to/my.config + +Build defconfig with additional config from URL: + + $ tuxmake --kconfig-add https://foo.com/my.config + +Build defconfig with additional in-tree config: + + $ tuxmake --kconfig-add kvm_guest.config + +Build defconfig with additional inline config: + + $ tuxmake --kconfig-add CONFIG_KVM_GUEST=y + +Build tinyconfig on arm64 with gcc-9 using docker: + + $ tuxmake -r docker -a arm64 -t gcc-9 -k tinyconfig + +Build DTBs on arm64 using podman: + + $ tuxmake -r podman -a arm64 -t gcc-9 dtbs + +Incremental builds can be done by reusing a build directory: + + $ tuxmake --build-dir=/path/to/output + # hack on source ... + $ tuxmake --build-dir=/path/to/output + # only rebuilds what is needed + +Using configuration files: + + # reads command line options from ~/.config/tuxmake/myconfig + $ tuxmake @myconfig + # reads command line options from /tmp/myconfig + $ tuxmake @/tmp/myconfig + +Display all options: + + $ tuxmake --help + +# Contributing to TuxMake + +See the [Contribution Guidelines](docs/contributing.md) document for details in +how to contribute to TuxMake. Contributors are expected to follow the [TuxMake +Code of Conduct](docs/code-of-conduct.md) (the same adopted in the Linux kernel +community). + + +%package -n python3-tuxmake +Summary: Thin wrapper to build Linux kernels +Provides: python-tuxmake +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-tuxmake +<div align="center"> + <img src="docs/tuxmake_full.svg" alt="TuxMake Logo" width="50%" /> +</div> + +[](https://gitlab.com/Linaro/tuxmake/pipelines) +[](https://gitlab.com/Linaro/tuxmake/commits/master) +[](https://pypi.org/project/tuxmake/) +[](https://github.com/psf/black) +[](https://gitlab.com/Linaro/tuxmake/blob/master/LICENSE) + +[Documentation](https://tuxmake.org/) - [Repository](https://gitlab.com/Linaro/tuxmake) - [Issues](https://gitlab.com/Linaro/tuxmake/-/issues) + +TuxMake, by [Linaro](https://www.linaro.org/), 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](https://tuxsuite.com), a suite of +tools and services to help with Linux kernel development. + +[[_TOC_]] + + +# About TuxMake + +Building Linux is easy, right? You just run "make defconfig; make"! + +It gets complicated when you want to support the following combinations: + +- Architectures (arc, arm, arm64, i386, mips, parisc, powerpc, riscv, s390, sh, + sparc, x86_64, etc) +- Toolchains (gcc-8, gcc-9, gcc-10, clang-10, clang-11, clang-nightly, etc) +- Configurations (defconfig, distro configs, allmodconfigs, randconfig, etc) +- Targets (kernel image, documentation, selftests, perf, cpupower, etc) +- Build-time validation (coccinelle, sparse checker, etc) + +Each of those items requires specific configuration, and supporting all +combinations is difficult. TuxMake seeks to simplify Linux kernel building by +providing a consistent command line interface to each of those combinations +listed above. You specify what to build at the command line, and TuxMake drives +the build for you, doing the same steps the same way every time. + +The real power comes from using TuxMake's curated, portable build environments +distributed as Docker/Podman [container images](https://hub.docker.com/u/tuxmake). +When using these versioned and hermetic filesystem images, your team can use +the same exact toolchain(s) across different workstation platforms. Reporting +and reproducing build failures is trivial by sharing TuxMake command lines with +others. + +# Installing TuxMake + +There are several options for installing TuxMake: + +- [From PyPI](docs/install-pypi.md) +- [Debian packages](docs/install-deb.md) +- [RPM packages](docs/install-rpm.md) +- [Run uninstalled](docs/run-uninstalled.md) + +# Using TuxMake + +To use TuxMake, navigate to a Linux source tree (where you might usually run +`make`), and run `tuxmake`. By default, it will perform a defconfig build on +your native architecture, using a default compiler (`gcc`). + +The behavior of the build can be modified with command-line arguments. Run +`tuxmake --help` to see all command-line arguments. + +# Examples + +Build from current directory: + + $ tuxmake + +Build using Podman: + + $ tuxmake --runtime podman + +Build from specific directory: + + $ tuxmake --directory /path/to/linux + +Build an arm64 kernel: + + $ tuxmake --target-arch=arm64 + +Build an arm64 kernel with gcc-10: + + $ tuxmake --target-arch=arm64 --toolchain=gcc-10 + +Build an arm64 kernel with clang-10: + + $ tuxmake --target-arch=arm64 --toolchain=clang-10 + +Build tinyconfig on arm64 with gcc-9: + + $ tuxmake -a arm64 -t gcc-9 -k tinyconfig + +Build defconfig with additional config from file: + + $ tuxmake --kconfig-add /path/to/my.config + +Build defconfig with additional config from URL: + + $ tuxmake --kconfig-add https://foo.com/my.config + +Build defconfig with additional in-tree config: + + $ tuxmake --kconfig-add kvm_guest.config + +Build defconfig with additional inline config: + + $ tuxmake --kconfig-add CONFIG_KVM_GUEST=y + +Build tinyconfig on arm64 with gcc-9 using docker: + + $ tuxmake -r docker -a arm64 -t gcc-9 -k tinyconfig + +Build DTBs on arm64 using podman: + + $ tuxmake -r podman -a arm64 -t gcc-9 dtbs + +Incremental builds can be done by reusing a build directory: + + $ tuxmake --build-dir=/path/to/output + # hack on source ... + $ tuxmake --build-dir=/path/to/output + # only rebuilds what is needed + +Using configuration files: + + # reads command line options from ~/.config/tuxmake/myconfig + $ tuxmake @myconfig + # reads command line options from /tmp/myconfig + $ tuxmake @/tmp/myconfig + +Display all options: + + $ tuxmake --help + +# Contributing to TuxMake + +See the [Contribution Guidelines](docs/contributing.md) document for details in +how to contribute to TuxMake. Contributors are expected to follow the [TuxMake +Code of Conduct](docs/code-of-conduct.md) (the same adopted in the Linux kernel +community). + + +%package help +Summary: Development documents and examples for tuxmake +Provides: python3-tuxmake-doc +%description help +<div align="center"> + <img src="docs/tuxmake_full.svg" alt="TuxMake Logo" width="50%" /> +</div> + +[](https://gitlab.com/Linaro/tuxmake/pipelines) +[](https://gitlab.com/Linaro/tuxmake/commits/master) +[](https://pypi.org/project/tuxmake/) +[](https://github.com/psf/black) +[](https://gitlab.com/Linaro/tuxmake/blob/master/LICENSE) + +[Documentation](https://tuxmake.org/) - [Repository](https://gitlab.com/Linaro/tuxmake) - [Issues](https://gitlab.com/Linaro/tuxmake/-/issues) + +TuxMake, by [Linaro](https://www.linaro.org/), 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](https://tuxsuite.com), a suite of +tools and services to help with Linux kernel development. + +[[_TOC_]] + + +# About TuxMake + +Building Linux is easy, right? You just run "make defconfig; make"! + +It gets complicated when you want to support the following combinations: + +- Architectures (arc, arm, arm64, i386, mips, parisc, powerpc, riscv, s390, sh, + sparc, x86_64, etc) +- Toolchains (gcc-8, gcc-9, gcc-10, clang-10, clang-11, clang-nightly, etc) +- Configurations (defconfig, distro configs, allmodconfigs, randconfig, etc) +- Targets (kernel image, documentation, selftests, perf, cpupower, etc) +- Build-time validation (coccinelle, sparse checker, etc) + +Each of those items requires specific configuration, and supporting all +combinations is difficult. TuxMake seeks to simplify Linux kernel building by +providing a consistent command line interface to each of those combinations +listed above. You specify what to build at the command line, and TuxMake drives +the build for you, doing the same steps the same way every time. + +The real power comes from using TuxMake's curated, portable build environments +distributed as Docker/Podman [container images](https://hub.docker.com/u/tuxmake). +When using these versioned and hermetic filesystem images, your team can use +the same exact toolchain(s) across different workstation platforms. Reporting +and reproducing build failures is trivial by sharing TuxMake command lines with +others. + +# Installing TuxMake + +There are several options for installing TuxMake: + +- [From PyPI](docs/install-pypi.md) +- [Debian packages](docs/install-deb.md) +- [RPM packages](docs/install-rpm.md) +- [Run uninstalled](docs/run-uninstalled.md) + +# Using TuxMake + +To use TuxMake, navigate to a Linux source tree (where you might usually run +`make`), and run `tuxmake`. By default, it will perform a defconfig build on +your native architecture, using a default compiler (`gcc`). + +The behavior of the build can be modified with command-line arguments. Run +`tuxmake --help` to see all command-line arguments. + +# Examples + +Build from current directory: + + $ tuxmake + +Build using Podman: + + $ tuxmake --runtime podman + +Build from specific directory: + + $ tuxmake --directory /path/to/linux + +Build an arm64 kernel: + + $ tuxmake --target-arch=arm64 + +Build an arm64 kernel with gcc-10: + + $ tuxmake --target-arch=arm64 --toolchain=gcc-10 + +Build an arm64 kernel with clang-10: + + $ tuxmake --target-arch=arm64 --toolchain=clang-10 + +Build tinyconfig on arm64 with gcc-9: + + $ tuxmake -a arm64 -t gcc-9 -k tinyconfig + +Build defconfig with additional config from file: + + $ tuxmake --kconfig-add /path/to/my.config + +Build defconfig with additional config from URL: + + $ tuxmake --kconfig-add https://foo.com/my.config + +Build defconfig with additional in-tree config: + + $ tuxmake --kconfig-add kvm_guest.config + +Build defconfig with additional inline config: + + $ tuxmake --kconfig-add CONFIG_KVM_GUEST=y + +Build tinyconfig on arm64 with gcc-9 using docker: + + $ tuxmake -r docker -a arm64 -t gcc-9 -k tinyconfig + +Build DTBs on arm64 using podman: + + $ tuxmake -r podman -a arm64 -t gcc-9 dtbs + +Incremental builds can be done by reusing a build directory: + + $ tuxmake --build-dir=/path/to/output + # hack on source ... + $ tuxmake --build-dir=/path/to/output + # only rebuilds what is needed + +Using configuration files: + + # reads command line options from ~/.config/tuxmake/myconfig + $ tuxmake @myconfig + # reads command line options from /tmp/myconfig + $ tuxmake @/tmp/myconfig + +Display all options: + + $ tuxmake --help + +# Contributing to TuxMake + +See the [Contribution Guidelines](docs/contributing.md) document for details in +how to contribute to TuxMake. Contributors are expected to follow the [TuxMake +Code of Conduct](docs/code-of-conduct.md) (the same adopted in the Linux kernel +community). + + +%prep +%autosetup -n tuxmake-1.13.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-tuxmake -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 1.13.0-1 +- Package Spec generated |
