diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-10 05:47:17 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 05:47:17 +0000 |
commit | 436c8a5360c1f87df63c028e8f0d51cab37f7f1d (patch) | |
tree | f737533133e42917cbad6d3985e51d326c49378d | |
parent | fb062747abff67c024b8dad766bd535111eb7e0d (diff) |
automatic import of python-selinux-please-lie-to-me
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-selinux-please-lie-to-me.spec | 279 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 281 insertions, 0 deletions
@@ -0,0 +1 @@ +/selinux_please_lie_to_me-1.0.1.tar.gz diff --git a/python-selinux-please-lie-to-me.spec b/python-selinux-please-lie-to-me.spec new file mode 100644 index 0000000..2334b8a --- /dev/null +++ b/python-selinux-please-lie-to-me.spec @@ -0,0 +1,279 @@ +%global _empty_manifest_terminate_build 0 +Name: python-selinux-please-lie-to-me +Version: 1.0.1 +Release: 1 +Summary: Fake selinux module that always says SELinux is off +License: MIT +URL: https://github.com/goneri/selinux_please_lie_to_me +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/66/db/210919df4457f5822b8e6a9e0238b9cf64fb6076014d274351fe41991398/selinux_please_lie_to_me-1.0.1.tar.gz +BuildArch: noarch + + +%description +# SELinux: please lie to me! 😠+ +This package provides a fake `selinux` module. This package mocked `selinux` module and +will always pretend SELinux is not enabled on the system. + +## But why? 😕 + +If your system runs SELinux and run Ansible in a virtualenv you will probably +face this error: + + Aborting, target uses selinux but python bindings (libselinux-python) aren't installed! + +## But what about the regular [selinux package from Pypi](https://pypi.org/project/selinux/)? + +You system comes with a `python3-libselinux` package that was built using on specific Python version. +For instance, on Fedora 34 it's Python 3.9. The same binary package may work fine with another Python +version, but it's not always the case. + +### Example with the selinux shim from pypi + +In this example on Fedora 34, we cannot use the `selinux` shim package because Python 3.6 cannot load the system `selinux` binary for Python 3.9: + +``` +$ virtualenv -p python3.6 ~/tmp/my-venv-py36 +(...) +$ ~/tmp/my-venv-py36/bin/pip install selinux +Collecting selinux + Using cached selinux-0.2.1-py2.py3-none-any.whl (4.3 kB) +Requirement already satisfied: setuptools>=39.0 in ./tmp/my-venv-py36/lib/python3.6/site-packages (from selinux) (53.0.0) +Collecting distro>=1.3.0 + Using cached distro-1.5.0-py2.py3-none-any.whl (18 kB) +Installing collected packages: distro, selinux +Successfully installed distro-1.5.0 selinux-0.2.1 +WARNING: You are using pip version 21.0.1; however, version 21.1.3 is available. +You should consider upgrading via the '/home/goneri/tmp/my-venv-py36/bin/python -m pip install --upgrade pip' command. +$ ~/tmp/my-venv-py36/bin/python -m selinux +Traceback (most recent call last): + File "/usr/lib64/python3.6/runpy.py", line 183, in _run_module_as_main + mod_name, mod_spec, code = _get_module_details(mod_name, _Error) + File "/usr/lib64/python3.6/runpy.py", line 142, in _get_module_details + return _get_module_details(pkg_main_name, error) + File "/usr/lib64/python3.6/runpy.py", line 109, in _get_module_details + __import__(pkg_name) + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 104, in <module> + check_system_sitepackages() + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 95, in check_system_sitepackages + success = add_location(candidate) + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 65, in add_location + reload(sys.modules["selinux"]) + File "/usr/lib64/python3.6/importlib/__init__.py", line 166, in reload + _bootstrap._exec(spec, module) + File "/usr/lib64/python3.9/site-packages/selinux/__init__.py", line 13, in <module> + from . import _selinux +ImportError: cannot import name '_selinux' +``` + +## Example with selinux_please_lie_to_me + + $ virtualenv -p python3.6 venv + $ source venv/bin/active + $ pip install selinux_please_lie_to_me + $ python3 -c 'import selinux; print(f"SELinux is enabled: {selinux.is_selinux_enabled()}, (which is probably a lie 🤫)")' + SELinux is enabled: False, (which is probably a lie 🤫) + +## What does this break? + +Since, we pretend selinux is disabled, we won't do any SELinux specific operation. + + + + +%package -n python3-selinux-please-lie-to-me +Summary: Fake selinux module that always says SELinux is off +Provides: python-selinux-please-lie-to-me +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-selinux-please-lie-to-me +# SELinux: please lie to me! 😠+ +This package provides a fake `selinux` module. This package mocked `selinux` module and +will always pretend SELinux is not enabled on the system. + +## But why? 😕 + +If your system runs SELinux and run Ansible in a virtualenv you will probably +face this error: + + Aborting, target uses selinux but python bindings (libselinux-python) aren't installed! + +## But what about the regular [selinux package from Pypi](https://pypi.org/project/selinux/)? + +You system comes with a `python3-libselinux` package that was built using on specific Python version. +For instance, on Fedora 34 it's Python 3.9. The same binary package may work fine with another Python +version, but it's not always the case. + +### Example with the selinux shim from pypi + +In this example on Fedora 34, we cannot use the `selinux` shim package because Python 3.6 cannot load the system `selinux` binary for Python 3.9: + +``` +$ virtualenv -p python3.6 ~/tmp/my-venv-py36 +(...) +$ ~/tmp/my-venv-py36/bin/pip install selinux +Collecting selinux + Using cached selinux-0.2.1-py2.py3-none-any.whl (4.3 kB) +Requirement already satisfied: setuptools>=39.0 in ./tmp/my-venv-py36/lib/python3.6/site-packages (from selinux) (53.0.0) +Collecting distro>=1.3.0 + Using cached distro-1.5.0-py2.py3-none-any.whl (18 kB) +Installing collected packages: distro, selinux +Successfully installed distro-1.5.0 selinux-0.2.1 +WARNING: You are using pip version 21.0.1; however, version 21.1.3 is available. +You should consider upgrading via the '/home/goneri/tmp/my-venv-py36/bin/python -m pip install --upgrade pip' command. +$ ~/tmp/my-venv-py36/bin/python -m selinux +Traceback (most recent call last): + File "/usr/lib64/python3.6/runpy.py", line 183, in _run_module_as_main + mod_name, mod_spec, code = _get_module_details(mod_name, _Error) + File "/usr/lib64/python3.6/runpy.py", line 142, in _get_module_details + return _get_module_details(pkg_main_name, error) + File "/usr/lib64/python3.6/runpy.py", line 109, in _get_module_details + __import__(pkg_name) + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 104, in <module> + check_system_sitepackages() + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 95, in check_system_sitepackages + success = add_location(candidate) + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 65, in add_location + reload(sys.modules["selinux"]) + File "/usr/lib64/python3.6/importlib/__init__.py", line 166, in reload + _bootstrap._exec(spec, module) + File "/usr/lib64/python3.9/site-packages/selinux/__init__.py", line 13, in <module> + from . import _selinux +ImportError: cannot import name '_selinux' +``` + +## Example with selinux_please_lie_to_me + + $ virtualenv -p python3.6 venv + $ source venv/bin/active + $ pip install selinux_please_lie_to_me + $ python3 -c 'import selinux; print(f"SELinux is enabled: {selinux.is_selinux_enabled()}, (which is probably a lie 🤫)")' + SELinux is enabled: False, (which is probably a lie 🤫) + +## What does this break? + +Since, we pretend selinux is disabled, we won't do any SELinux specific operation. + + + + +%package help +Summary: Development documents and examples for selinux-please-lie-to-me +Provides: python3-selinux-please-lie-to-me-doc +%description help +# SELinux: please lie to me! 😠+ +This package provides a fake `selinux` module. This package mocked `selinux` module and +will always pretend SELinux is not enabled on the system. + +## But why? 😕 + +If your system runs SELinux and run Ansible in a virtualenv you will probably +face this error: + + Aborting, target uses selinux but python bindings (libselinux-python) aren't installed! + +## But what about the regular [selinux package from Pypi](https://pypi.org/project/selinux/)? + +You system comes with a `python3-libselinux` package that was built using on specific Python version. +For instance, on Fedora 34 it's Python 3.9. The same binary package may work fine with another Python +version, but it's not always the case. + +### Example with the selinux shim from pypi + +In this example on Fedora 34, we cannot use the `selinux` shim package because Python 3.6 cannot load the system `selinux` binary for Python 3.9: + +``` +$ virtualenv -p python3.6 ~/tmp/my-venv-py36 +(...) +$ ~/tmp/my-venv-py36/bin/pip install selinux +Collecting selinux + Using cached selinux-0.2.1-py2.py3-none-any.whl (4.3 kB) +Requirement already satisfied: setuptools>=39.0 in ./tmp/my-venv-py36/lib/python3.6/site-packages (from selinux) (53.0.0) +Collecting distro>=1.3.0 + Using cached distro-1.5.0-py2.py3-none-any.whl (18 kB) +Installing collected packages: distro, selinux +Successfully installed distro-1.5.0 selinux-0.2.1 +WARNING: You are using pip version 21.0.1; however, version 21.1.3 is available. +You should consider upgrading via the '/home/goneri/tmp/my-venv-py36/bin/python -m pip install --upgrade pip' command. +$ ~/tmp/my-venv-py36/bin/python -m selinux +Traceback (most recent call last): + File "/usr/lib64/python3.6/runpy.py", line 183, in _run_module_as_main + mod_name, mod_spec, code = _get_module_details(mod_name, _Error) + File "/usr/lib64/python3.6/runpy.py", line 142, in _get_module_details + return _get_module_details(pkg_main_name, error) + File "/usr/lib64/python3.6/runpy.py", line 109, in _get_module_details + __import__(pkg_name) + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 104, in <module> + check_system_sitepackages() + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 95, in check_system_sitepackages + success = add_location(candidate) + File "/home/goneri/tmp/my-venv-py36/lib/python3.6/site-packages/selinux/__init__.py", line 65, in add_location + reload(sys.modules["selinux"]) + File "/usr/lib64/python3.6/importlib/__init__.py", line 166, in reload + _bootstrap._exec(spec, module) + File "/usr/lib64/python3.9/site-packages/selinux/__init__.py", line 13, in <module> + from . import _selinux +ImportError: cannot import name '_selinux' +``` + +## Example with selinux_please_lie_to_me + + $ virtualenv -p python3.6 venv + $ source venv/bin/active + $ pip install selinux_please_lie_to_me + $ python3 -c 'import selinux; print(f"SELinux is enabled: {selinux.is_selinux_enabled()}, (which is probably a lie 🤫)")' + SELinux is enabled: False, (which is probably a lie 🤫) + +## What does this break? + +Since, we pretend selinux is disabled, we won't do any SELinux specific operation. + + + + +%prep +%autosetup -n selinux-please-lie-to-me-1.0.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-selinux-please-lie-to-me -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.1-1 +- Package Spec generated @@ -0,0 +1 @@ +ddb67cd4d9352f7cc96711124f17fc4f selinux_please_lie_to_me-1.0.1.tar.gz |