diff options
author | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-02-24 06:38:59 +0000 |
---|---|---|
committer | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-02-24 06:38:59 +0000 |
commit | f2e653ddb6c35a73fd25e7bcdfc9c39398a69ec4 (patch) | |
tree | 63fffd251696a29d3f1e804a9938599e9805fe74 | |
parent | b9d93f10129e9dbfd05096708a1f6c37f201f39e (diff) |
automatic import of python3-click-manopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-click-man.spec | 438 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 440 insertions, 0 deletions
@@ -0,0 +1 @@ +/click-man-0.4.1.tar.gz diff --git a/python-click-man.spec b/python-click-man.spec new file mode 100644 index 0000000..bffabe5 --- /dev/null +++ b/python-click-man.spec @@ -0,0 +1,438 @@ +%global _empty_manifest_terminate_build 0 +Name: python-click-man +Version: 0.4.1 +Release: 1 +Summary: Generate man pages for click based CLI applications +License: MIT +URL: https://github.com/click-contrib/click-man +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/13/7d/6e8d9a0bfd9a388c9a8e1e5457c8729dbe1d461e770c4a4d27e56e3b2e43/click-man-0.4.1.tar.gz +BuildArch: noarch + +Requires: python3-click + +%description +# click-man + +[](https://travis-ci.org/click-contrib/click-man) [](https://pypi.python.org/pypi/click-man) + +Create **man pages** for [click](https://github.com/pallets/click) application as easy as this: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages +``` + +→ Checkout the [debian packaging example](https://github.com/timofurrer/click-man#debian-packages) + +## What it does + +*click-man* will generate one man page per command of your click CLI application specified in `console_scripts` in your `setup.py`. + +## Installation + +```bash +pip3 install click-man +``` + +**click-man** is also available for Python 2: + +```bash +pip install click-man +``` + +## Usage Recipes + +The following sections describe different usage example for *click-man*. + +### Use with a previously installed package + +**click-man** provides its own command line tool which can be passed the name of +an installed script: + +```bash +click-man commandname +``` + +where `commandname` is the name of an installed `console_script` entry point. + +To specify a target directory for the man pages, use the `--target` option: + +```bash +click-man --target path/to/man/pages commandname +``` + +### Use with setuptools + +**click-man** provides a sane setuptools command extension which can be used like the following: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages +``` + +or specify the man pages target directory: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages --target path/to/man/pages +``` + +### Automatic man page installation with setuptools and pip + +This approach of installing man pages is problematic for various reasons: + +#### (1) Man pages are a UNIX thing + +Python in general and with that pip and setuptools are aimed to be platform independent. +Man pages are **not**: they are a UNIX thing which means setuptools does not provide a sane +solution to generate and install man pages. +We should consider using automatic man page installation only with vendor specific packaging, e.g. for `*.deb` or `*.rpm` packages. + +#### (2) Man pages are not compatable with Python virtualenvs + +Even on systems that support man pages, Python packages can be installed in +virtualenvs via pip and setuptools, which do not make commands available +globally. In fact, one of the "features" of a virtualenv is the ability to +install a package without affecting the main system. As it is imposable to +ensure a man page is only generated when not installing into a virtualenv, +auto-generated man pages would pollute the main system and not stay contained in +the virtualenv. Additionally, as a user could install multiple different +versions of the same package into multiple different virtualenvs on the same +system, there is no guarantee that a globally installed man page will document +the version and behavior available in any given virtualenv. + +#### (3) We want to generate man pages on the fly + +First, we do not want to commit man pages to our source control. +We want to generate them on the fly. Either +during build or installation time. + +With setuptools and pip we face two problems: + +1. If we generate and install them during installation of the package pip does not know about the man pages and thus cannot uninstall it. +2. If we generate them in our build process and add them to your distribution we do not have a way to prevent installation to */usr/share/man* for non-UNIX-like Operating Systems or from within virtualenvs. + +### Debian packages + +The `debhelper` packages provides a very convenient script called `dh_installman`. +It checks for the `debian/(pkg_name.)manpages` file and it's content which is basically a line by line list of man pages or globs: + +``` +debian/tmp/manpages/* +``` + +We override the rule provided by `dh_installman` to generate our man pages in advance, like this: + +```Makefile +override_dh_installman: + python3 setup.py --command-packages=click_man.commands man_pages --target debian/tmp/manpages + dh_installman -O--buildsystem=pybuild +``` + +Now we are able to build are debian package with the tool of your choice, e.g.: + +```debuild -us -uc``` + +Checkout a working example here: [repo debian package](https://github.com/timofurrer/click-man/tree/master/examples/debian_pkg) + + + + +%package -n python3-click-man +Summary: Generate man pages for click based CLI applications +Provides: python-click-man +BuildRequires: python3-devel +BuildRequires: python3-setuptools +%description -n python3-click-man +# click-man + +[](https://travis-ci.org/click-contrib/click-man) [](https://pypi.python.org/pypi/click-man) + +Create **man pages** for [click](https://github.com/pallets/click) application as easy as this: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages +``` + +→ Checkout the [debian packaging example](https://github.com/timofurrer/click-man#debian-packages) + +## What it does + +*click-man* will generate one man page per command of your click CLI application specified in `console_scripts` in your `setup.py`. + +## Installation + +```bash +pip3 install click-man +``` + +**click-man** is also available for Python 2: + +```bash +pip install click-man +``` + +## Usage Recipes + +The following sections describe different usage example for *click-man*. + +### Use with a previously installed package + +**click-man** provides its own command line tool which can be passed the name of +an installed script: + +```bash +click-man commandname +``` + +where `commandname` is the name of an installed `console_script` entry point. + +To specify a target directory for the man pages, use the `--target` option: + +```bash +click-man --target path/to/man/pages commandname +``` + +### Use with setuptools + +**click-man** provides a sane setuptools command extension which can be used like the following: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages +``` + +or specify the man pages target directory: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages --target path/to/man/pages +``` + +### Automatic man page installation with setuptools and pip + +This approach of installing man pages is problematic for various reasons: + +#### (1) Man pages are a UNIX thing + +Python in general and with that pip and setuptools are aimed to be platform independent. +Man pages are **not**: they are a UNIX thing which means setuptools does not provide a sane +solution to generate and install man pages. +We should consider using automatic man page installation only with vendor specific packaging, e.g. for `*.deb` or `*.rpm` packages. + +#### (2) Man pages are not compatable with Python virtualenvs + +Even on systems that support man pages, Python packages can be installed in +virtualenvs via pip and setuptools, which do not make commands available +globally. In fact, one of the "features" of a virtualenv is the ability to +install a package without affecting the main system. As it is imposable to +ensure a man page is only generated when not installing into a virtualenv, +auto-generated man pages would pollute the main system and not stay contained in +the virtualenv. Additionally, as a user could install multiple different +versions of the same package into multiple different virtualenvs on the same +system, there is no guarantee that a globally installed man page will document +the version and behavior available in any given virtualenv. + +#### (3) We want to generate man pages on the fly + +First, we do not want to commit man pages to our source control. +We want to generate them on the fly. Either +during build or installation time. + +With setuptools and pip we face two problems: + +1. If we generate and install them during installation of the package pip does not know about the man pages and thus cannot uninstall it. +2. If we generate them in our build process and add them to your distribution we do not have a way to prevent installation to */usr/share/man* for non-UNIX-like Operating Systems or from within virtualenvs. + +### Debian packages + +The `debhelper` packages provides a very convenient script called `dh_installman`. +It checks for the `debian/(pkg_name.)manpages` file and it's content which is basically a line by line list of man pages or globs: + +``` +debian/tmp/manpages/* +``` + +We override the rule provided by `dh_installman` to generate our man pages in advance, like this: + +```Makefile +override_dh_installman: + python3 setup.py --command-packages=click_man.commands man_pages --target debian/tmp/manpages + dh_installman -O--buildsystem=pybuild +``` + +Now we are able to build are debian package with the tool of your choice, e.g.: + +```debuild -us -uc``` + +Checkout a working example here: [repo debian package](https://github.com/timofurrer/click-man/tree/master/examples/debian_pkg) + + + + +%package help +Summary: Development documents and examples for click-man +Provides: python3-click-man-doc +%description help +# click-man + +[](https://travis-ci.org/click-contrib/click-man) [](https://pypi.python.org/pypi/click-man) + +Create **man pages** for [click](https://github.com/pallets/click) application as easy as this: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages +``` + +→ Checkout the [debian packaging example](https://github.com/timofurrer/click-man#debian-packages) + +## What it does + +*click-man* will generate one man page per command of your click CLI application specified in `console_scripts` in your `setup.py`. + +## Installation + +```bash +pip3 install click-man +``` + +**click-man** is also available for Python 2: + +```bash +pip install click-man +``` + +## Usage Recipes + +The following sections describe different usage example for *click-man*. + +### Use with a previously installed package + +**click-man** provides its own command line tool which can be passed the name of +an installed script: + +```bash +click-man commandname +``` + +where `commandname` is the name of an installed `console_script` entry point. + +To specify a target directory for the man pages, use the `--target` option: + +```bash +click-man --target path/to/man/pages commandname +``` + +### Use with setuptools + +**click-man** provides a sane setuptools command extension which can be used like the following: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages +``` + +or specify the man pages target directory: + +```bash +python3 setup.py --command-packages=click_man.commands man_pages --target path/to/man/pages +``` + +### Automatic man page installation with setuptools and pip + +This approach of installing man pages is problematic for various reasons: + +#### (1) Man pages are a UNIX thing + +Python in general and with that pip and setuptools are aimed to be platform independent. +Man pages are **not**: they are a UNIX thing which means setuptools does not provide a sane +solution to generate and install man pages. +We should consider using automatic man page installation only with vendor specific packaging, e.g. for `*.deb` or `*.rpm` packages. + +#### (2) Man pages are not compatable with Python virtualenvs + +Even on systems that support man pages, Python packages can be installed in +virtualenvs via pip and setuptools, which do not make commands available +globally. In fact, one of the "features" of a virtualenv is the ability to +install a package without affecting the main system. As it is imposable to +ensure a man page is only generated when not installing into a virtualenv, +auto-generated man pages would pollute the main system and not stay contained in +the virtualenv. Additionally, as a user could install multiple different +versions of the same package into multiple different virtualenvs on the same +system, there is no guarantee that a globally installed man page will document +the version and behavior available in any given virtualenv. + +#### (3) We want to generate man pages on the fly + +First, we do not want to commit man pages to our source control. +We want to generate them on the fly. Either +during build or installation time. + +With setuptools and pip we face two problems: + +1. If we generate and install them during installation of the package pip does not know about the man pages and thus cannot uninstall it. +2. If we generate them in our build process and add them to your distribution we do not have a way to prevent installation to */usr/share/man* for non-UNIX-like Operating Systems or from within virtualenvs. + +### Debian packages + +The `debhelper` packages provides a very convenient script called `dh_installman`. +It checks for the `debian/(pkg_name.)manpages` file and it's content which is basically a line by line list of man pages or globs: + +``` +debian/tmp/manpages/* +``` + +We override the rule provided by `dh_installman` to generate our man pages in advance, like this: + +```Makefile +override_dh_installman: + python3 setup.py --command-packages=click_man.commands man_pages --target debian/tmp/manpages + dh_installman -O--buildsystem=pybuild +``` + +Now we are able to build are debian package with the tool of your choice, e.g.: + +```debuild -us -uc``` + +Checkout a working example here: [repo debian package](https://github.com/timofurrer/click-man/tree/master/examples/debian_pkg) + + + + +%prep +%autosetup -n click-man-0.4.1 + +%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-click-man -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri Feb 24 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.1-1 +- Package Spec generated @@ -0,0 +1 @@ +6c5039b6a7c52a18634fe257ec110031 click-man-0.4.1.tar.gz |