summaryrefslogtreecommitdiff
path: root/python-colin.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-colin.spec')
-rw-r--r--python-colin.spec530
1 files changed, 530 insertions, 0 deletions
diff --git a/python-colin.spec b/python-colin.spec
new file mode 100644
index 0000000..789fbd6
--- /dev/null
+++ b/python-colin.spec
@@ -0,0 +1,530 @@
+%global _empty_manifest_terminate_build 0
+Name: python-colin
+Version: 0.5.3
+Release: 1
+Summary: Tool to check generic rules/best-practices for containers/images/dockerfiles.
+License: GPLv3+
+URL: https://github.com/user-cont/colin
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4e/fd/2608a6a723893fc09f7f3f58b1d4932f43773ef46e69b3b000bf56625d9a/colin-0.5.3.tar.gz
+BuildArch: noarch
+
+Requires: python3-Click
+Requires: python3-six
+Requires: python3-dockerfile-parse
+Requires: python3-fmf
+Requires: python3-PyYAML
+
+%description
+# Colin
+
+![PyPI](https://img.shields.io/pypi/v/colin.svg)
+![PyPI - License](https://img.shields.io/pypi/l/colin.svg)
+![PyPI - Python Version](https://img.shields.io/pypi/pyversions/colin.svg)
+![PyPI - Status](https://img.shields.io/pypi/status/colin.svg)
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/427eb0c5dfc040cea798b23575dba025)](https://www.codacy.com/app/user-cont/colin?utm_source=github.com&utm_medium=referral&utm_content=user-cont/colin&utm_campaign=Badge_Grade)
+[![Build Status](https://ci.centos.org/job/user-cont-colin-master/badge/icon)](https://ci.centos.org/job/user-cont-colin-master/)
+
+Tool to check generic rules and best-practices for container images and dockerfiles.
+
+For more information, please check our [documentation on colin.readthedocs.io](https://colin.readthedocs.io/en/latest/).
+
+![example](./docs/example.gif)
+
+# Features
+
+- Validate a selected artifact against a ruleset.
+- Artifacts can be container images and dockerfiles.
+- We provide a default ruleset we believe every container image should satisfy.
+- There is a ruleset to validate an artifact whether it complies to [Fedora Container Guidelines](https://fedoraproject.org/wiki/Container:Guidelines)
+- Colin can list available rulesets and list checks in a ruleset.
+- There is a python API available
+- Colin can be integrated into your workflow easily - it can provide results in json format.
+
+## Installation
+
+### Via `pip`
+
+If you are on Fedora distribution, please install python3-pyxattr so you don't
+have to compile it yourself when getting it from PyPI.
+
+```bash
+$ pip3 install --user colin
+```
+
+`colin` is supported on python 3.6+ only.
+
+### On Fedora distribution
+
+colin is packaged in official Fedora repositories:
+
+```
+$ dnf install -y colin
+```
+
+### Requirements
+
+- For checking `image` target-type, you have to install [podman](https://github.com/containers/libpod/blob/master/docs/tutorials/podman_tutorial.md). If you need to check local docker images, you need to prefix your images with `docker-daemon` (e.g. `colin check docker-daemon:docker.io/openshift/origin-web-console:v3.11`).
+
+- If you want to use `oci` target, you need to install following tools:
+ - [umoci](https://github.com/opencontainers/umoci#install)
+ - [skopeo](https://github.com/containers/skopeo#skopeo-)
+
+## Usage
+
+```
+$ colin --help
+Usage: colin [OPTIONS] COMMAND [ARGS]...
+
+ COLIN -- Container Linter
+
+Options:
+ -V, --version Show the version and exit.
+ -h, --help Show this message and exit.
+
+Commands:
+ check Check the image/dockerfile (default).
+ info Show info about colin and its dependencies.
+ list-checks Print the checks.
+ list-rulesets List available rulesets.
+```
+
+```
+$ colin check --help
+Usage: colin check [OPTIONS] TARGET
+
+ Check the image/dockerfile (default).
+
+Options:
+ -r, --ruleset TEXT Select a predefined ruleset (e.g. fedora).
+ -f, --ruleset-file FILENAME Path to a file to use for validation (by
+ default they are placed in
+ /usr/share/colin/rulesets).
+ --debug Enable debugging mode (debugging logs, full
+ tracebacks).
+ --json FILENAME File to save the output as json to.
+ --stat Print statistics instead of full results.
+ -s, --skip TEXT Name of the check to skip. (this option is
+ repeatable)
+ -t, --tag TEXT Filter checks with the tag.
+ -v, --verbose Verbose mode.
+ --checks-path DIRECTORY Path to directory containing checks (default
+ ['/home/flachman/.local/lib/python3.7/site-
+ packages/colin/checks']).
+ --pull Pull the image from registry.
+ --target-type TEXT Type of selected target (one of image,
+ dockerfile, oci). For oci, please specify
+ image name and path like this: oci:path:image
+ --timeout INTEGER Timeout for each check in seconds.
+ (default=600)
+ --insecure Pull from an insecure registry (HTTP or invalid
+ TLS).
+ -h, --help Show this message and exit.
+```
+
+Let's give it a shot:
+
+```
+$ colin -f ./rulesets/fedora.json registry.fedoraproject.org/f29/cockpit
+PASS:Label 'architecture' has to be specified.
+PASS:Label 'build-date' has to be specified.
+FAIL:Label 'description' has to be specified.
+PASS:Label 'distribution-scope' has to be specified.
+:
+:
+PASS:10 FAIL:8
+```
+
+### Directly from git
+
+It's possible to use colin directly from git:
+
+```
+$ git clone https://github.com/user-cont/colin.git
+$ cd colin
+```
+
+We can now run the analysis:
+
+```
+$ python3 -m colin.cli.colin -f ./rulesets/fedora.json registry.fedoraproject.org/f29/cockpit
+PASS:Label 'architecture' has to be specified.
+PASS:Label 'build-date' has to be specified.
+FAIL:Label 'description' has to be specified.
+PASS:Label 'distribution-scope' has to be specified.
+:
+:
+PASS:10 FAIL:8
+```
+
+### Exit codes
+
+Colin can exit with several codes:
+
+- `0` --> OK
+- `1` --> error in the execution
+- `2` --> CLI error, wrong parameters
+- `3` --> at least one check failed
+
+
+
+
+%package -n python3-colin
+Summary: Tool to check generic rules/best-practices for containers/images/dockerfiles.
+Provides: python-colin
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-colin
+# Colin
+
+![PyPI](https://img.shields.io/pypi/v/colin.svg)
+![PyPI - License](https://img.shields.io/pypi/l/colin.svg)
+![PyPI - Python Version](https://img.shields.io/pypi/pyversions/colin.svg)
+![PyPI - Status](https://img.shields.io/pypi/status/colin.svg)
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/427eb0c5dfc040cea798b23575dba025)](https://www.codacy.com/app/user-cont/colin?utm_source=github.com&utm_medium=referral&utm_content=user-cont/colin&utm_campaign=Badge_Grade)
+[![Build Status](https://ci.centos.org/job/user-cont-colin-master/badge/icon)](https://ci.centos.org/job/user-cont-colin-master/)
+
+Tool to check generic rules and best-practices for container images and dockerfiles.
+
+For more information, please check our [documentation on colin.readthedocs.io](https://colin.readthedocs.io/en/latest/).
+
+![example](./docs/example.gif)
+
+# Features
+
+- Validate a selected artifact against a ruleset.
+- Artifacts can be container images and dockerfiles.
+- We provide a default ruleset we believe every container image should satisfy.
+- There is a ruleset to validate an artifact whether it complies to [Fedora Container Guidelines](https://fedoraproject.org/wiki/Container:Guidelines)
+- Colin can list available rulesets and list checks in a ruleset.
+- There is a python API available
+- Colin can be integrated into your workflow easily - it can provide results in json format.
+
+## Installation
+
+### Via `pip`
+
+If you are on Fedora distribution, please install python3-pyxattr so you don't
+have to compile it yourself when getting it from PyPI.
+
+```bash
+$ pip3 install --user colin
+```
+
+`colin` is supported on python 3.6+ only.
+
+### On Fedora distribution
+
+colin is packaged in official Fedora repositories:
+
+```
+$ dnf install -y colin
+```
+
+### Requirements
+
+- For checking `image` target-type, you have to install [podman](https://github.com/containers/libpod/blob/master/docs/tutorials/podman_tutorial.md). If you need to check local docker images, you need to prefix your images with `docker-daemon` (e.g. `colin check docker-daemon:docker.io/openshift/origin-web-console:v3.11`).
+
+- If you want to use `oci` target, you need to install following tools:
+ - [umoci](https://github.com/opencontainers/umoci#install)
+ - [skopeo](https://github.com/containers/skopeo#skopeo-)
+
+## Usage
+
+```
+$ colin --help
+Usage: colin [OPTIONS] COMMAND [ARGS]...
+
+ COLIN -- Container Linter
+
+Options:
+ -V, --version Show the version and exit.
+ -h, --help Show this message and exit.
+
+Commands:
+ check Check the image/dockerfile (default).
+ info Show info about colin and its dependencies.
+ list-checks Print the checks.
+ list-rulesets List available rulesets.
+```
+
+```
+$ colin check --help
+Usage: colin check [OPTIONS] TARGET
+
+ Check the image/dockerfile (default).
+
+Options:
+ -r, --ruleset TEXT Select a predefined ruleset (e.g. fedora).
+ -f, --ruleset-file FILENAME Path to a file to use for validation (by
+ default they are placed in
+ /usr/share/colin/rulesets).
+ --debug Enable debugging mode (debugging logs, full
+ tracebacks).
+ --json FILENAME File to save the output as json to.
+ --stat Print statistics instead of full results.
+ -s, --skip TEXT Name of the check to skip. (this option is
+ repeatable)
+ -t, --tag TEXT Filter checks with the tag.
+ -v, --verbose Verbose mode.
+ --checks-path DIRECTORY Path to directory containing checks (default
+ ['/home/flachman/.local/lib/python3.7/site-
+ packages/colin/checks']).
+ --pull Pull the image from registry.
+ --target-type TEXT Type of selected target (one of image,
+ dockerfile, oci). For oci, please specify
+ image name and path like this: oci:path:image
+ --timeout INTEGER Timeout for each check in seconds.
+ (default=600)
+ --insecure Pull from an insecure registry (HTTP or invalid
+ TLS).
+ -h, --help Show this message and exit.
+```
+
+Let's give it a shot:
+
+```
+$ colin -f ./rulesets/fedora.json registry.fedoraproject.org/f29/cockpit
+PASS:Label 'architecture' has to be specified.
+PASS:Label 'build-date' has to be specified.
+FAIL:Label 'description' has to be specified.
+PASS:Label 'distribution-scope' has to be specified.
+:
+:
+PASS:10 FAIL:8
+```
+
+### Directly from git
+
+It's possible to use colin directly from git:
+
+```
+$ git clone https://github.com/user-cont/colin.git
+$ cd colin
+```
+
+We can now run the analysis:
+
+```
+$ python3 -m colin.cli.colin -f ./rulesets/fedora.json registry.fedoraproject.org/f29/cockpit
+PASS:Label 'architecture' has to be specified.
+PASS:Label 'build-date' has to be specified.
+FAIL:Label 'description' has to be specified.
+PASS:Label 'distribution-scope' has to be specified.
+:
+:
+PASS:10 FAIL:8
+```
+
+### Exit codes
+
+Colin can exit with several codes:
+
+- `0` --> OK
+- `1` --> error in the execution
+- `2` --> CLI error, wrong parameters
+- `3` --> at least one check failed
+
+
+
+
+%package help
+Summary: Development documents and examples for colin
+Provides: python3-colin-doc
+%description help
+# Colin
+
+![PyPI](https://img.shields.io/pypi/v/colin.svg)
+![PyPI - License](https://img.shields.io/pypi/l/colin.svg)
+![PyPI - Python Version](https://img.shields.io/pypi/pyversions/colin.svg)
+![PyPI - Status](https://img.shields.io/pypi/status/colin.svg)
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/427eb0c5dfc040cea798b23575dba025)](https://www.codacy.com/app/user-cont/colin?utm_source=github.com&utm_medium=referral&utm_content=user-cont/colin&utm_campaign=Badge_Grade)
+[![Build Status](https://ci.centos.org/job/user-cont-colin-master/badge/icon)](https://ci.centos.org/job/user-cont-colin-master/)
+
+Tool to check generic rules and best-practices for container images and dockerfiles.
+
+For more information, please check our [documentation on colin.readthedocs.io](https://colin.readthedocs.io/en/latest/).
+
+![example](./docs/example.gif)
+
+# Features
+
+- Validate a selected artifact against a ruleset.
+- Artifacts can be container images and dockerfiles.
+- We provide a default ruleset we believe every container image should satisfy.
+- There is a ruleset to validate an artifact whether it complies to [Fedora Container Guidelines](https://fedoraproject.org/wiki/Container:Guidelines)
+- Colin can list available rulesets and list checks in a ruleset.
+- There is a python API available
+- Colin can be integrated into your workflow easily - it can provide results in json format.
+
+## Installation
+
+### Via `pip`
+
+If you are on Fedora distribution, please install python3-pyxattr so you don't
+have to compile it yourself when getting it from PyPI.
+
+```bash
+$ pip3 install --user colin
+```
+
+`colin` is supported on python 3.6+ only.
+
+### On Fedora distribution
+
+colin is packaged in official Fedora repositories:
+
+```
+$ dnf install -y colin
+```
+
+### Requirements
+
+- For checking `image` target-type, you have to install [podman](https://github.com/containers/libpod/blob/master/docs/tutorials/podman_tutorial.md). If you need to check local docker images, you need to prefix your images with `docker-daemon` (e.g. `colin check docker-daemon:docker.io/openshift/origin-web-console:v3.11`).
+
+- If you want to use `oci` target, you need to install following tools:
+ - [umoci](https://github.com/opencontainers/umoci#install)
+ - [skopeo](https://github.com/containers/skopeo#skopeo-)
+
+## Usage
+
+```
+$ colin --help
+Usage: colin [OPTIONS] COMMAND [ARGS]...
+
+ COLIN -- Container Linter
+
+Options:
+ -V, --version Show the version and exit.
+ -h, --help Show this message and exit.
+
+Commands:
+ check Check the image/dockerfile (default).
+ info Show info about colin and its dependencies.
+ list-checks Print the checks.
+ list-rulesets List available rulesets.
+```
+
+```
+$ colin check --help
+Usage: colin check [OPTIONS] TARGET
+
+ Check the image/dockerfile (default).
+
+Options:
+ -r, --ruleset TEXT Select a predefined ruleset (e.g. fedora).
+ -f, --ruleset-file FILENAME Path to a file to use for validation (by
+ default they are placed in
+ /usr/share/colin/rulesets).
+ --debug Enable debugging mode (debugging logs, full
+ tracebacks).
+ --json FILENAME File to save the output as json to.
+ --stat Print statistics instead of full results.
+ -s, --skip TEXT Name of the check to skip. (this option is
+ repeatable)
+ -t, --tag TEXT Filter checks with the tag.
+ -v, --verbose Verbose mode.
+ --checks-path DIRECTORY Path to directory containing checks (default
+ ['/home/flachman/.local/lib/python3.7/site-
+ packages/colin/checks']).
+ --pull Pull the image from registry.
+ --target-type TEXT Type of selected target (one of image,
+ dockerfile, oci). For oci, please specify
+ image name and path like this: oci:path:image
+ --timeout INTEGER Timeout for each check in seconds.
+ (default=600)
+ --insecure Pull from an insecure registry (HTTP or invalid
+ TLS).
+ -h, --help Show this message and exit.
+```
+
+Let's give it a shot:
+
+```
+$ colin -f ./rulesets/fedora.json registry.fedoraproject.org/f29/cockpit
+PASS:Label 'architecture' has to be specified.
+PASS:Label 'build-date' has to be specified.
+FAIL:Label 'description' has to be specified.
+PASS:Label 'distribution-scope' has to be specified.
+:
+:
+PASS:10 FAIL:8
+```
+
+### Directly from git
+
+It's possible to use colin directly from git:
+
+```
+$ git clone https://github.com/user-cont/colin.git
+$ cd colin
+```
+
+We can now run the analysis:
+
+```
+$ python3 -m colin.cli.colin -f ./rulesets/fedora.json registry.fedoraproject.org/f29/cockpit
+PASS:Label 'architecture' has to be specified.
+PASS:Label 'build-date' has to be specified.
+FAIL:Label 'description' has to be specified.
+PASS:Label 'distribution-scope' has to be specified.
+:
+:
+PASS:10 FAIL:8
+```
+
+### Exit codes
+
+Colin can exit with several codes:
+
+- `0` --> OK
+- `1` --> error in the execution
+- `2` --> CLI error, wrong parameters
+- `3` --> at least one check failed
+
+
+
+
+%prep
+%autosetup -n colin-0.5.3
+
+%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-colin -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu Mar 09 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.3-1
+- Package Spec generated