%global _empty_manifest_terminate_build 0
Name: python-dunamai
Version: 1.16.0
Release: 1
Summary: Dynamic version generation
License: MIT
URL: https://github.com/mtkennerly/dunamai
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a3/85/4b6267f7fecad59f69b7f2e131c6896019912e3977fc4a0396c0cb562623/dunamai-1.16.0.tar.gz
BuildArch: noarch
Requires: python3-packaging
Requires: python3-importlib-metadata
%description
# Dunamai
Dunamai is a Python 3.5+ library and command line tool for producing dynamic,
standards-compliant version strings, derived from tags in your version
control system. This facilitates uniquely identifying nightly or per-commit
builds in continuous integration and releasing new versions of your software
simply by creating a tag.
Dunamai is also available as a [GitHub Action](https://github.com/marketplace/actions/run-dunamai).
## Features
* Version control system support:
* [Git](https://git-scm.com) (2.7.0+ is recommended, but versions as old as 1.8.2.3 will work with some reduced functionality)
* [Mercurial](https://www.mercurial-scm.org)
* [Darcs](http://darcs.net)
* [Subversion](https://subversion.apache.org)
* [Bazaar](https://bazaar.canonical.com/en)
* [Fossil](https://www.fossil-scm.org/home/doc/trunk/www/index.wiki)
* [Pijul](https://pijul.org)
* Version styles:
* [PEP 440](https://www.python.org/dev/peps/pep-0440)
* [Semantic Versioning](https://semver.org)
* [Haskell Package Versioning Policy](https://pvp.haskell.org)
* Custom output formats
* Can be used for projects written in any programming language.
For Python, this means you do not need a setup.py.
## Usage
### Installation
```
pip install dunamai
```
### CLI
```console
# Suppose you are on commit g29045e8, 7 commits after the v0.2.0 tag.
# Auto-detect the version control system and generate a version:
$ dunamai from any
0.2.0.post7.dev0+g29045e8
# Or use an explicit VCS and style:
$ dunamai from git --no-metadata --style semver
0.2.0-post.7
# Custom formats:
$ dunamai from any --format "v{base}+{distance}.{commit}"
v0.2.0+7.g29045e8
# If you'd prefer to frame the version in terms of progress toward the next
# release rather than distance from the latest one, you can bump it:
$ dunamai from any --bump
0.2.1.dev7+g29045e8
# Validation of custom formats:
$ dunamai from any --format "v{base}" --style pep440
Version 'v0.2.0' does not conform to the PEP 440 style
# Validate your own freeform versions:
$ dunamai check 0.01.0 --style semver
Version '0.01.0' does not conform to the Semantic Versioning style
# More info:
$ dunamai --help
$ dunamai from --help
$ dunamai from git --help
```
### Library
```python
from dunamai import Version, Style
# Let's say you're on commit g644252b, which is tagged as v0.1.0.
version = Version.from_git()
assert version.serialize() == "0.1.0"
# Let's say there was a v0.1.0rc5 tag 44 commits ago
# and you have some uncommitted changes.
version = Version.from_any_vcs()
assert version.serialize() == "0.1.0rc5.post44.dev0+g644252b"
assert version.serialize(metadata=False) == "0.1.0rc5.post44.dev0"
assert version.serialize(dirty=True) == "0.1.0rc5.post44.dev0+g644252b.dirty"
assert version.serialize(style=Style.SemVer) == "0.1.0-rc.5.post.44+g644252b"
```
The `serialize()` method gives you an opinionated, PEP 440-compliant default
that ensures that versions for untagged commits are compatible with Pip's
`--pre` flag. The individual parts of the version are also available for you
to use and inspect as you please:
```python
assert version.base == "0.1.0"
assert version.stage == "rc"
assert version.revision == 5
assert version.distance == 44
assert version.commit == "g644252b"
assert version.dirty is True
# Available if the latest tag includes metadata, like v0.1.0+linux:
assert version.tagged_metadata == "linux"
```
### Tips
By default, the "v" prefix on the tag is required, unless you specify
a custom tag pattern. You can either write a regular expression:
```console
$ dunamai from any --pattern "(?P\d+\.\d+\.\d+)"
```
```python
from dunamai import Version
version = Version.from_any_vcs(pattern=r"(?P\d+\.\d+\.\d+)")
```
...or use a named preset:
```console
$ dunamai from any --pattern default-unprefixed
```
```python
from dunamai import Version, Pattern
version = Version.from_any_vcs(pattern=Pattern.DefaultUnprefixed)
```
### VCS archives
Sometimes, you may only have access to an archive of a repository (e.g., a zip file) without the full history.
Dunamai can still detect a version in some of these cases:
* For Git, you can configure `git archive` to produce a file with some metadata for Dunamai.
Add a `.git_archival.json` file to the root of your repository with this content:
```
{
"hash-full": "$Format:%H$",
"hash-short": "$Format:%h$",
"timestamp": "$Format:%cI$",
"refs": "$Format:%D$",
"describe": "$Format:%(describe:tags=true,match=v[0-9]*)$"
}
```
Add this line to your `.gitattributes` file.
If you don't already have this file, add it to the root of your repository:
```
.git_archival.json export-subst
```
* For Mercurial, Dunamai will detect and use an `.hg_archival.txt` file created by `hg archive`.
It will also recognize `.hgtags` if present.
### Custom formats
Here are the available substitutions for custom formats. If you have a tag like
`v9!0.1.2-beta.3+other`, then:
* `{base}` = `0.1.2`
* `{stage}` = `beta`
* `{revision}` = `3`
* `{distance}` is the number of commits since the last
* `{commit}` is the commit hash (defaults to short form, unless you use `--full-commit`)
* `{dirty}` expands to either "dirty" or "clean" if you have uncommitted modified files
* `{tagged_metadata}` = `other`
* `{epoch}` = `9`
* `{branch}` = `feature/foo`
* `{branch_escaped}` = `featurefoo`
* `{timestamp}` is in the format `YYYYmmddHHMMSS` as UTC
If you specify a substitution, its value will always be included in the output.
For conditional formatting, you can do something like this (Bash):
```bash
distance=$(dunamai from any --format "{distance}")
if [ "$distance" = "0" ]; then
dunamai from any --format "v{base}"
else
dunamai from any --format "v{base}+{distance}.{dirty}"
fi
```
## Comparison to Versioneer
[Versioneer](https://github.com/warner/python-versioneer) is another great
library for dynamic versions, but there are some design decisions that
prompted the creation of Dunamai as an alternative:
* Versioneer requires a setup.py file to exist, or else `versioneer install`
will fail, rendering it incompatible with non-setuptools-based projects
such as those using Poetry or Flit. Dunamai can be used regardless of the
project's build system.
* Versioneer has a CLI that generates Python code which needs to be committed
into your repository, whereas Dunamai is just a normal importable library
with an optional CLI to help statically include your version string.
* Versioneer produces the version as an opaque string, whereas Dunamai provides
a Version class with discrete parts that can then be inspected and serialized
separately.
* Versioneer provides customizability through a config file, whereas Dunamai
aims to offer customizability through its library API and CLI for both
scripting support and use in other libraries.
## Integration
* Setting a `__version__` statically:
```console
$ echo "__version__ = '$(dunamai from any)'" > your_library/_version.py
```
```python
# your_library/__init__.py
from your_library._version import __version__
```
Or dynamically (but Dunamai becomes a runtime dependency):
```python
# your_library/__init__.py
import dunamai as _dunamai
__version__ = _dunamai.get_version("your-library", third_choice=_dunamai.Version.from_any_vcs).serialize()
```
* setup.py (no install-time dependency on Dunamai as long as you use wheels):
```python
from setuptools import setup
from dunamai import Version
setup(
name="your-library",
version=Version.from_any_vcs().serialize(),
)
```
Or you could use a static inclusion approach as in the prior example.
* [Poetry](https://poetry.eustace.io):
```console
$ poetry version $(dunamai from any)
```
Or you can use the [poetry-dynamic-versioning](https://github.com/mtkennerly/poetry-dynamic-versioning) plugin.
## Other notes
* When using Git, remember that lightweight tags do not store their creation time.
Therefore, if a commit has multiple lightweight tags,
we cannot reliably determine which one should be considered the newest.
The solution is to use annotated tags instead.
* When using Git, the initial commit must **not** be both tagged and empty
(i.e., created with `--allow-empty`). This is related to a reporting issue
in Git. For more info, [click here](https://github.com/mtkennerly/dunamai/issues/14).
%package -n python3-dunamai
Summary: Dynamic version generation
Provides: python-dunamai
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-dunamai
# Dunamai
Dunamai is a Python 3.5+ library and command line tool for producing dynamic,
standards-compliant version strings, derived from tags in your version
control system. This facilitates uniquely identifying nightly or per-commit
builds in continuous integration and releasing new versions of your software
simply by creating a tag.
Dunamai is also available as a [GitHub Action](https://github.com/marketplace/actions/run-dunamai).
## Features
* Version control system support:
* [Git](https://git-scm.com) (2.7.0+ is recommended, but versions as old as 1.8.2.3 will work with some reduced functionality)
* [Mercurial](https://www.mercurial-scm.org)
* [Darcs](http://darcs.net)
* [Subversion](https://subversion.apache.org)
* [Bazaar](https://bazaar.canonical.com/en)
* [Fossil](https://www.fossil-scm.org/home/doc/trunk/www/index.wiki)
* [Pijul](https://pijul.org)
* Version styles:
* [PEP 440](https://www.python.org/dev/peps/pep-0440)
* [Semantic Versioning](https://semver.org)
* [Haskell Package Versioning Policy](https://pvp.haskell.org)
* Custom output formats
* Can be used for projects written in any programming language.
For Python, this means you do not need a setup.py.
## Usage
### Installation
```
pip install dunamai
```
### CLI
```console
# Suppose you are on commit g29045e8, 7 commits after the v0.2.0 tag.
# Auto-detect the version control system and generate a version:
$ dunamai from any
0.2.0.post7.dev0+g29045e8
# Or use an explicit VCS and style:
$ dunamai from git --no-metadata --style semver
0.2.0-post.7
# Custom formats:
$ dunamai from any --format "v{base}+{distance}.{commit}"
v0.2.0+7.g29045e8
# If you'd prefer to frame the version in terms of progress toward the next
# release rather than distance from the latest one, you can bump it:
$ dunamai from any --bump
0.2.1.dev7+g29045e8
# Validation of custom formats:
$ dunamai from any --format "v{base}" --style pep440
Version 'v0.2.0' does not conform to the PEP 440 style
# Validate your own freeform versions:
$ dunamai check 0.01.0 --style semver
Version '0.01.0' does not conform to the Semantic Versioning style
# More info:
$ dunamai --help
$ dunamai from --help
$ dunamai from git --help
```
### Library
```python
from dunamai import Version, Style
# Let's say you're on commit g644252b, which is tagged as v0.1.0.
version = Version.from_git()
assert version.serialize() == "0.1.0"
# Let's say there was a v0.1.0rc5 tag 44 commits ago
# and you have some uncommitted changes.
version = Version.from_any_vcs()
assert version.serialize() == "0.1.0rc5.post44.dev0+g644252b"
assert version.serialize(metadata=False) == "0.1.0rc5.post44.dev0"
assert version.serialize(dirty=True) == "0.1.0rc5.post44.dev0+g644252b.dirty"
assert version.serialize(style=Style.SemVer) == "0.1.0-rc.5.post.44+g644252b"
```
The `serialize()` method gives you an opinionated, PEP 440-compliant default
that ensures that versions for untagged commits are compatible with Pip's
`--pre` flag. The individual parts of the version are also available for you
to use and inspect as you please:
```python
assert version.base == "0.1.0"
assert version.stage == "rc"
assert version.revision == 5
assert version.distance == 44
assert version.commit == "g644252b"
assert version.dirty is True
# Available if the latest tag includes metadata, like v0.1.0+linux:
assert version.tagged_metadata == "linux"
```
### Tips
By default, the "v" prefix on the tag is required, unless you specify
a custom tag pattern. You can either write a regular expression:
```console
$ dunamai from any --pattern "(?P\d+\.\d+\.\d+)"
```
```python
from dunamai import Version
version = Version.from_any_vcs(pattern=r"(?P\d+\.\d+\.\d+)")
```
...or use a named preset:
```console
$ dunamai from any --pattern default-unprefixed
```
```python
from dunamai import Version, Pattern
version = Version.from_any_vcs(pattern=Pattern.DefaultUnprefixed)
```
### VCS archives
Sometimes, you may only have access to an archive of a repository (e.g., a zip file) without the full history.
Dunamai can still detect a version in some of these cases:
* For Git, you can configure `git archive` to produce a file with some metadata for Dunamai.
Add a `.git_archival.json` file to the root of your repository with this content:
```
{
"hash-full": "$Format:%H$",
"hash-short": "$Format:%h$",
"timestamp": "$Format:%cI$",
"refs": "$Format:%D$",
"describe": "$Format:%(describe:tags=true,match=v[0-9]*)$"
}
```
Add this line to your `.gitattributes` file.
If you don't already have this file, add it to the root of your repository:
```
.git_archival.json export-subst
```
* For Mercurial, Dunamai will detect and use an `.hg_archival.txt` file created by `hg archive`.
It will also recognize `.hgtags` if present.
### Custom formats
Here are the available substitutions for custom formats. If you have a tag like
`v9!0.1.2-beta.3+other`, then:
* `{base}` = `0.1.2`
* `{stage}` = `beta`
* `{revision}` = `3`
* `{distance}` is the number of commits since the last
* `{commit}` is the commit hash (defaults to short form, unless you use `--full-commit`)
* `{dirty}` expands to either "dirty" or "clean" if you have uncommitted modified files
* `{tagged_metadata}` = `other`
* `{epoch}` = `9`
* `{branch}` = `feature/foo`
* `{branch_escaped}` = `featurefoo`
* `{timestamp}` is in the format `YYYYmmddHHMMSS` as UTC
If you specify a substitution, its value will always be included in the output.
For conditional formatting, you can do something like this (Bash):
```bash
distance=$(dunamai from any --format "{distance}")
if [ "$distance" = "0" ]; then
dunamai from any --format "v{base}"
else
dunamai from any --format "v{base}+{distance}.{dirty}"
fi
```
## Comparison to Versioneer
[Versioneer](https://github.com/warner/python-versioneer) is another great
library for dynamic versions, but there are some design decisions that
prompted the creation of Dunamai as an alternative:
* Versioneer requires a setup.py file to exist, or else `versioneer install`
will fail, rendering it incompatible with non-setuptools-based projects
such as those using Poetry or Flit. Dunamai can be used regardless of the
project's build system.
* Versioneer has a CLI that generates Python code which needs to be committed
into your repository, whereas Dunamai is just a normal importable library
with an optional CLI to help statically include your version string.
* Versioneer produces the version as an opaque string, whereas Dunamai provides
a Version class with discrete parts that can then be inspected and serialized
separately.
* Versioneer provides customizability through a config file, whereas Dunamai
aims to offer customizability through its library API and CLI for both
scripting support and use in other libraries.
## Integration
* Setting a `__version__` statically:
```console
$ echo "__version__ = '$(dunamai from any)'" > your_library/_version.py
```
```python
# your_library/__init__.py
from your_library._version import __version__
```
Or dynamically (but Dunamai becomes a runtime dependency):
```python
# your_library/__init__.py
import dunamai as _dunamai
__version__ = _dunamai.get_version("your-library", third_choice=_dunamai.Version.from_any_vcs).serialize()
```
* setup.py (no install-time dependency on Dunamai as long as you use wheels):
```python
from setuptools import setup
from dunamai import Version
setup(
name="your-library",
version=Version.from_any_vcs().serialize(),
)
```
Or you could use a static inclusion approach as in the prior example.
* [Poetry](https://poetry.eustace.io):
```console
$ poetry version $(dunamai from any)
```
Or you can use the [poetry-dynamic-versioning](https://github.com/mtkennerly/poetry-dynamic-versioning) plugin.
## Other notes
* When using Git, remember that lightweight tags do not store their creation time.
Therefore, if a commit has multiple lightweight tags,
we cannot reliably determine which one should be considered the newest.
The solution is to use annotated tags instead.
* When using Git, the initial commit must **not** be both tagged and empty
(i.e., created with `--allow-empty`). This is related to a reporting issue
in Git. For more info, [click here](https://github.com/mtkennerly/dunamai/issues/14).
%package help
Summary: Development documents and examples for dunamai
Provides: python3-dunamai-doc
%description help
# Dunamai
Dunamai is a Python 3.5+ library and command line tool for producing dynamic,
standards-compliant version strings, derived from tags in your version
control system. This facilitates uniquely identifying nightly or per-commit
builds in continuous integration and releasing new versions of your software
simply by creating a tag.
Dunamai is also available as a [GitHub Action](https://github.com/marketplace/actions/run-dunamai).
## Features
* Version control system support:
* [Git](https://git-scm.com) (2.7.0+ is recommended, but versions as old as 1.8.2.3 will work with some reduced functionality)
* [Mercurial](https://www.mercurial-scm.org)
* [Darcs](http://darcs.net)
* [Subversion](https://subversion.apache.org)
* [Bazaar](https://bazaar.canonical.com/en)
* [Fossil](https://www.fossil-scm.org/home/doc/trunk/www/index.wiki)
* [Pijul](https://pijul.org)
* Version styles:
* [PEP 440](https://www.python.org/dev/peps/pep-0440)
* [Semantic Versioning](https://semver.org)
* [Haskell Package Versioning Policy](https://pvp.haskell.org)
* Custom output formats
* Can be used for projects written in any programming language.
For Python, this means you do not need a setup.py.
## Usage
### Installation
```
pip install dunamai
```
### CLI
```console
# Suppose you are on commit g29045e8, 7 commits after the v0.2.0 tag.
# Auto-detect the version control system and generate a version:
$ dunamai from any
0.2.0.post7.dev0+g29045e8
# Or use an explicit VCS and style:
$ dunamai from git --no-metadata --style semver
0.2.0-post.7
# Custom formats:
$ dunamai from any --format "v{base}+{distance}.{commit}"
v0.2.0+7.g29045e8
# If you'd prefer to frame the version in terms of progress toward the next
# release rather than distance from the latest one, you can bump it:
$ dunamai from any --bump
0.2.1.dev7+g29045e8
# Validation of custom formats:
$ dunamai from any --format "v{base}" --style pep440
Version 'v0.2.0' does not conform to the PEP 440 style
# Validate your own freeform versions:
$ dunamai check 0.01.0 --style semver
Version '0.01.0' does not conform to the Semantic Versioning style
# More info:
$ dunamai --help
$ dunamai from --help
$ dunamai from git --help
```
### Library
```python
from dunamai import Version, Style
# Let's say you're on commit g644252b, which is tagged as v0.1.0.
version = Version.from_git()
assert version.serialize() == "0.1.0"
# Let's say there was a v0.1.0rc5 tag 44 commits ago
# and you have some uncommitted changes.
version = Version.from_any_vcs()
assert version.serialize() == "0.1.0rc5.post44.dev0+g644252b"
assert version.serialize(metadata=False) == "0.1.0rc5.post44.dev0"
assert version.serialize(dirty=True) == "0.1.0rc5.post44.dev0+g644252b.dirty"
assert version.serialize(style=Style.SemVer) == "0.1.0-rc.5.post.44+g644252b"
```
The `serialize()` method gives you an opinionated, PEP 440-compliant default
that ensures that versions for untagged commits are compatible with Pip's
`--pre` flag. The individual parts of the version are also available for you
to use and inspect as you please:
```python
assert version.base == "0.1.0"
assert version.stage == "rc"
assert version.revision == 5
assert version.distance == 44
assert version.commit == "g644252b"
assert version.dirty is True
# Available if the latest tag includes metadata, like v0.1.0+linux:
assert version.tagged_metadata == "linux"
```
### Tips
By default, the "v" prefix on the tag is required, unless you specify
a custom tag pattern. You can either write a regular expression:
```console
$ dunamai from any --pattern "(?P\d+\.\d+\.\d+)"
```
```python
from dunamai import Version
version = Version.from_any_vcs(pattern=r"(?P\d+\.\d+\.\d+)")
```
...or use a named preset:
```console
$ dunamai from any --pattern default-unprefixed
```
```python
from dunamai import Version, Pattern
version = Version.from_any_vcs(pattern=Pattern.DefaultUnprefixed)
```
### VCS archives
Sometimes, you may only have access to an archive of a repository (e.g., a zip file) without the full history.
Dunamai can still detect a version in some of these cases:
* For Git, you can configure `git archive` to produce a file with some metadata for Dunamai.
Add a `.git_archival.json` file to the root of your repository with this content:
```
{
"hash-full": "$Format:%H$",
"hash-short": "$Format:%h$",
"timestamp": "$Format:%cI$",
"refs": "$Format:%D$",
"describe": "$Format:%(describe:tags=true,match=v[0-9]*)$"
}
```
Add this line to your `.gitattributes` file.
If you don't already have this file, add it to the root of your repository:
```
.git_archival.json export-subst
```
* For Mercurial, Dunamai will detect and use an `.hg_archival.txt` file created by `hg archive`.
It will also recognize `.hgtags` if present.
### Custom formats
Here are the available substitutions for custom formats. If you have a tag like
`v9!0.1.2-beta.3+other`, then:
* `{base}` = `0.1.2`
* `{stage}` = `beta`
* `{revision}` = `3`
* `{distance}` is the number of commits since the last
* `{commit}` is the commit hash (defaults to short form, unless you use `--full-commit`)
* `{dirty}` expands to either "dirty" or "clean" if you have uncommitted modified files
* `{tagged_metadata}` = `other`
* `{epoch}` = `9`
* `{branch}` = `feature/foo`
* `{branch_escaped}` = `featurefoo`
* `{timestamp}` is in the format `YYYYmmddHHMMSS` as UTC
If you specify a substitution, its value will always be included in the output.
For conditional formatting, you can do something like this (Bash):
```bash
distance=$(dunamai from any --format "{distance}")
if [ "$distance" = "0" ]; then
dunamai from any --format "v{base}"
else
dunamai from any --format "v{base}+{distance}.{dirty}"
fi
```
## Comparison to Versioneer
[Versioneer](https://github.com/warner/python-versioneer) is another great
library for dynamic versions, but there are some design decisions that
prompted the creation of Dunamai as an alternative:
* Versioneer requires a setup.py file to exist, or else `versioneer install`
will fail, rendering it incompatible with non-setuptools-based projects
such as those using Poetry or Flit. Dunamai can be used regardless of the
project's build system.
* Versioneer has a CLI that generates Python code which needs to be committed
into your repository, whereas Dunamai is just a normal importable library
with an optional CLI to help statically include your version string.
* Versioneer produces the version as an opaque string, whereas Dunamai provides
a Version class with discrete parts that can then be inspected and serialized
separately.
* Versioneer provides customizability through a config file, whereas Dunamai
aims to offer customizability through its library API and CLI for both
scripting support and use in other libraries.
## Integration
* Setting a `__version__` statically:
```console
$ echo "__version__ = '$(dunamai from any)'" > your_library/_version.py
```
```python
# your_library/__init__.py
from your_library._version import __version__
```
Or dynamically (but Dunamai becomes a runtime dependency):
```python
# your_library/__init__.py
import dunamai as _dunamai
__version__ = _dunamai.get_version("your-library", third_choice=_dunamai.Version.from_any_vcs).serialize()
```
* setup.py (no install-time dependency on Dunamai as long as you use wheels):
```python
from setuptools import setup
from dunamai import Version
setup(
name="your-library",
version=Version.from_any_vcs().serialize(),
)
```
Or you could use a static inclusion approach as in the prior example.
* [Poetry](https://poetry.eustace.io):
```console
$ poetry version $(dunamai from any)
```
Or you can use the [poetry-dynamic-versioning](https://github.com/mtkennerly/poetry-dynamic-versioning) plugin.
## Other notes
* When using Git, remember that lightweight tags do not store their creation time.
Therefore, if a commit has multiple lightweight tags,
we cannot reliably determine which one should be considered the newest.
The solution is to use annotated tags instead.
* When using Git, the initial commit must **not** be both tagged and empty
(i.e., created with `--allow-empty`). This is related to a reporting issue
in Git. For more info, [click here](https://github.com/mtkennerly/dunamai/issues/14).
%prep
%autosetup -n dunamai-1.16.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-dunamai -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Sun Apr 23 2023 Python_Bot - 1.16.0-1
- Package Spec generated