%global _empty_manifest_terminate_build 0 Name: python-xbstrap Version: 0.27.0 Release: 1 Summary: please add a summary manually as the author left a blank one License: MIT URL: https://github.com/managarm/xbstrap Source0: https://mirrors.aliyun.com/pypi/web/packages/c7/2d/012ed844f9b181c5d29deeab31f1b83e06bfa02e4e2558a24c864013cd5a/xbstrap-0.27.0.tar.gz BuildArch: noarch %description # xbstrap: Build system for OS distributions xbstrap is a build system designed to build "distributions" consisting of multiple (usually many) packages. It does not replace neither `make` and `ninja` nor `autoconf`, `automake`, `meson` or `cmake` and similar utilities. Instead, xbstrap is intended to invoke those build systems in the correct order, while respecting inter-package dependencies. **Official Discord server:** https://discord.gg/7WB6Ur3 ## Installation xbstrap is available from PyPI. To install it using pip, use: ``` pip3 install xbstrap ``` ## Basic usage See the [boostrap-managarm repository](https://github.com/managarm/bootstrap-managarm) for an example `bootstrap.yml` file. Installing all tools (that run on the build system) is done using: ``` xbstrap install-tool --all ``` Installing all packages to a sysroot (of the host system): ``` xbstrap install --all ``` It is often useful to rebuild specific packages. Rebuilding package `foobar` can be done by: ``` xbstrap install --rebuild foobar ``` If the `configure` script shall be run again, use instead: ``` xbstrap install --reconfigure foobar ``` ## Local development When developing `xbstrap`, you must install your local copy instead of the one provided by the `pip` repositories. To do this, run: ``` pip install --user -e . ``` ### Development with Docker For containerized builds, most `xbstrap` commands will run in two stages: once on the host, then again on the container to actually execute the build steps. Therefore, installing `xbstrap` locally (as shown above) is not sufficient in this case. In addition, you must change your `Dockerfile` so that instead of grabbing `xbstrap` from the `pip` repositories, it installs from the host: 1. Add the following lines (replace `/local-xbstrap` at your convenience): ```docker ADD xbstrap /local-xbstrap RUN pip3 install -e /local-xbstrap ``` 1. Copy or symlink your local `xbstrap` into the same folder that contains the `Dockerfile`, so that it can be accessed by the previous step. 1. Rebuild the docker container as usual. ### Enabling the pre-commit hook for linting (optional) To avoid running into the CI complaining about formatting, linting can be done in a pre-commit hook. To enable this, run: ``` git config core.hooksPath .githooks ``` %package -n python3-xbstrap Summary: please add a summary manually as the author left a blank one Provides: python-xbstrap BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-xbstrap # xbstrap: Build system for OS distributions xbstrap is a build system designed to build "distributions" consisting of multiple (usually many) packages. It does not replace neither `make` and `ninja` nor `autoconf`, `automake`, `meson` or `cmake` and similar utilities. Instead, xbstrap is intended to invoke those build systems in the correct order, while respecting inter-package dependencies. **Official Discord server:** https://discord.gg/7WB6Ur3 ## Installation xbstrap is available from PyPI. To install it using pip, use: ``` pip3 install xbstrap ``` ## Basic usage See the [boostrap-managarm repository](https://github.com/managarm/bootstrap-managarm) for an example `bootstrap.yml` file. Installing all tools (that run on the build system) is done using: ``` xbstrap install-tool --all ``` Installing all packages to a sysroot (of the host system): ``` xbstrap install --all ``` It is often useful to rebuild specific packages. Rebuilding package `foobar` can be done by: ``` xbstrap install --rebuild foobar ``` If the `configure` script shall be run again, use instead: ``` xbstrap install --reconfigure foobar ``` ## Local development When developing `xbstrap`, you must install your local copy instead of the one provided by the `pip` repositories. To do this, run: ``` pip install --user -e . ``` ### Development with Docker For containerized builds, most `xbstrap` commands will run in two stages: once on the host, then again on the container to actually execute the build steps. Therefore, installing `xbstrap` locally (as shown above) is not sufficient in this case. In addition, you must change your `Dockerfile` so that instead of grabbing `xbstrap` from the `pip` repositories, it installs from the host: 1. Add the following lines (replace `/local-xbstrap` at your convenience): ```docker ADD xbstrap /local-xbstrap RUN pip3 install -e /local-xbstrap ``` 1. Copy or symlink your local `xbstrap` into the same folder that contains the `Dockerfile`, so that it can be accessed by the previous step. 1. Rebuild the docker container as usual. ### Enabling the pre-commit hook for linting (optional) To avoid running into the CI complaining about formatting, linting can be done in a pre-commit hook. To enable this, run: ``` git config core.hooksPath .githooks ``` %package help Summary: Development documents and examples for xbstrap Provides: python3-xbstrap-doc %description help # xbstrap: Build system for OS distributions xbstrap is a build system designed to build "distributions" consisting of multiple (usually many) packages. It does not replace neither `make` and `ninja` nor `autoconf`, `automake`, `meson` or `cmake` and similar utilities. Instead, xbstrap is intended to invoke those build systems in the correct order, while respecting inter-package dependencies. **Official Discord server:** https://discord.gg/7WB6Ur3 ## Installation xbstrap is available from PyPI. To install it using pip, use: ``` pip3 install xbstrap ``` ## Basic usage See the [boostrap-managarm repository](https://github.com/managarm/bootstrap-managarm) for an example `bootstrap.yml` file. Installing all tools (that run on the build system) is done using: ``` xbstrap install-tool --all ``` Installing all packages to a sysroot (of the host system): ``` xbstrap install --all ``` It is often useful to rebuild specific packages. Rebuilding package `foobar` can be done by: ``` xbstrap install --rebuild foobar ``` If the `configure` script shall be run again, use instead: ``` xbstrap install --reconfigure foobar ``` ## Local development When developing `xbstrap`, you must install your local copy instead of the one provided by the `pip` repositories. To do this, run: ``` pip install --user -e . ``` ### Development with Docker For containerized builds, most `xbstrap` commands will run in two stages: once on the host, then again on the container to actually execute the build steps. Therefore, installing `xbstrap` locally (as shown above) is not sufficient in this case. In addition, you must change your `Dockerfile` so that instead of grabbing `xbstrap` from the `pip` repositories, it installs from the host: 1. Add the following lines (replace `/local-xbstrap` at your convenience): ```docker ADD xbstrap /local-xbstrap RUN pip3 install -e /local-xbstrap ``` 1. Copy or symlink your local `xbstrap` into the same folder that contains the `Dockerfile`, so that it can be accessed by the previous step. 1. Rebuild the docker container as usual. ### Enabling the pre-commit hook for linting (optional) To avoid running into the CI complaining about formatting, linting can be done in a pre-commit hook. To enable this, run: ``` git config core.hooksPath .githooks ``` %prep %autosetup -n xbstrap-0.27.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-xbstrap -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 0.27.0-1 - Package Spec generated