diff options
Diffstat (limited to 'python-colin.spec')
-rw-r--r-- | python-colin.spec | 530 |
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 + + + + + +[](https://www.codacy.com/app/user-cont/colin?utm_source=github.com&utm_medium=referral&utm_content=user-cont/colin&utm_campaign=Badge_Grade) +[](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/). + + + +# 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 + + + + + +[](https://www.codacy.com/app/user-cont/colin?utm_source=github.com&utm_medium=referral&utm_content=user-cont/colin&utm_campaign=Badge_Grade) +[](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/). + + + +# 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 + + + + + +[](https://www.codacy.com/app/user-cont/colin?utm_source=github.com&utm_medium=referral&utm_content=user-cont/colin&utm_campaign=Badge_Grade) +[](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/). + + + +# 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 |