diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 05:05:53 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 05:05:53 +0000 |
commit | 60b1e6002345e6e48d18877a3159a4cfd42669ae (patch) | |
tree | 8167f99be116100e3fa1ff2bb436fcedae2532bb /python-xbstrap.spec | |
parent | 2f1ac449a15d2905e457a519b837d086df12c8de (diff) |
automatic import of python-xbstrapopeneuler20.03
Diffstat (limited to 'python-xbstrap.spec')
-rw-r--r-- | python-xbstrap.spec | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/python-xbstrap.spec b/python-xbstrap.spec new file mode 100644 index 0000000..ebd1406 --- /dev/null +++ b/python-xbstrap.spec @@ -0,0 +1,258 @@ +%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 <Python_Bot@openeuler.org> - 0.27.0-1 +- Package Spec generated |