summaryrefslogtreecommitdiff
path: root/python-xbstrap.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-xbstrap.spec')
-rw-r--r--python-xbstrap.spec258
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