summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <copr-devel@lists.fedorahosted.org>2023-02-24 06:38:59 +0000
committerCoprDistGit <copr-devel@lists.fedorahosted.org>2023-02-24 06:38:59 +0000
commitf2e653ddb6c35a73fd25e7bcdfc9c39398a69ec4 (patch)
tree63fffd251696a29d3f1e804a9938599e9805fe74
parentb9d93f10129e9dbfd05096708a1f6c37f201f39e (diff)
automatic import of python3-click-manopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-click-man.spec438
-rw-r--r--sources1
3 files changed, 440 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..0b54727 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
+
+[![Build Status](https://travis-ci.org/click-contrib/click-man.svg?branch=master)](https://travis-ci.org/click-contrib/click-man) [![PyPI Package version](https://badge.fury.io/py/click-man.svg)](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
+
+[![Build Status](https://travis-ci.org/click-contrib/click-man.svg?branch=master)](https://travis-ci.org/click-contrib/click-man) [![PyPI Package version](https://badge.fury.io/py/click-man.svg)](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
+
+[![Build Status](https://travis-ci.org/click-contrib/click-man.svg?branch=master)](https://travis-ci.org/click-contrib/click-man) [![PyPI Package version](https://badge.fury.io/py/click-man.svg)](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
diff --git a/sources b/sources
new file mode 100644
index 0000000..9b52d37
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+6c5039b6a7c52a18634fe257ec110031 click-man-0.4.1.tar.gz