%global _empty_manifest_terminate_build 0 Name: python-virtualenv-clone Version: 0.5.7 Release: 1 Summary: script to clone virtualenvs. License: MIT URL: https://github.com/edwardgeorge/virtualenv-clone Source0: https://mirrors.nju.edu.cn/pypi/web/packages/85/76/49120db3bb8de4073ac199a08dc7f11255af8968e1e14038aee95043fafa/virtualenv-clone-0.5.7.tar.gz BuildArch: noarch %description virtualenv cloning script. [![Build Status](https://travis-ci.org/edwardgeorge/virtualenv-clone.svg?branch=master)](https://travis-ci.org/edwardgeorge/virtualenv-clone) A script for cloning a non-relocatable virtualenv. Virtualenv provides a way to make virtualenv's relocatable which could then be copied as we wanted. However making a virtualenv relocatable this way breaks the no-site-packages isolation of the virtualenv as well as other aspects that come with relative paths and `/usr/bin/env` shebangs that may be undesirable. Also, the .pth and .egg-link rewriting doesn't seem to work as intended. This attempts to overcome these issues and provide a way to easily clone an existing virtualenv. It performs the following: - copies `sys.argv[1]` dir to `sys.argv[2]` - updates the hardcoded `VIRTUAL_ENV` variable in the activate script to the new repo location. (`--relocatable` doesn't touch this) - updates the shebangs of the various scripts in bin to the new Python if they pointed to the old Python. (version numbering is retained.) it can also change `/usr/bin/env python` shebangs to be absolute too, though this functionality is not exposed at present. - checks `sys.path` of the cloned virtualenv and if any of the paths are from the old environment it finds any `.pth` or `.egg` link files within sys.path located in the new environment and makes sure any absolute paths to the old environment are updated to the new environment. - finally it double checks `sys.path` again and will fail if there are still paths from the old environment present. NOTE: This script requires Python 2.7 or 3.4+ %package -n python3-virtualenv-clone Summary: script to clone virtualenvs. Provides: python-virtualenv-clone BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-virtualenv-clone virtualenv cloning script. [![Build Status](https://travis-ci.org/edwardgeorge/virtualenv-clone.svg?branch=master)](https://travis-ci.org/edwardgeorge/virtualenv-clone) A script for cloning a non-relocatable virtualenv. Virtualenv provides a way to make virtualenv's relocatable which could then be copied as we wanted. However making a virtualenv relocatable this way breaks the no-site-packages isolation of the virtualenv as well as other aspects that come with relative paths and `/usr/bin/env` shebangs that may be undesirable. Also, the .pth and .egg-link rewriting doesn't seem to work as intended. This attempts to overcome these issues and provide a way to easily clone an existing virtualenv. It performs the following: - copies `sys.argv[1]` dir to `sys.argv[2]` - updates the hardcoded `VIRTUAL_ENV` variable in the activate script to the new repo location. (`--relocatable` doesn't touch this) - updates the shebangs of the various scripts in bin to the new Python if they pointed to the old Python. (version numbering is retained.) it can also change `/usr/bin/env python` shebangs to be absolute too, though this functionality is not exposed at present. - checks `sys.path` of the cloned virtualenv and if any of the paths are from the old environment it finds any `.pth` or `.egg` link files within sys.path located in the new environment and makes sure any absolute paths to the old environment are updated to the new environment. - finally it double checks `sys.path` again and will fail if there are still paths from the old environment present. NOTE: This script requires Python 2.7 or 3.4+ %package help Summary: Development documents and examples for virtualenv-clone Provides: python3-virtualenv-clone-doc %description help virtualenv cloning script. [![Build Status](https://travis-ci.org/edwardgeorge/virtualenv-clone.svg?branch=master)](https://travis-ci.org/edwardgeorge/virtualenv-clone) A script for cloning a non-relocatable virtualenv. Virtualenv provides a way to make virtualenv's relocatable which could then be copied as we wanted. However making a virtualenv relocatable this way breaks the no-site-packages isolation of the virtualenv as well as other aspects that come with relative paths and `/usr/bin/env` shebangs that may be undesirable. Also, the .pth and .egg-link rewriting doesn't seem to work as intended. This attempts to overcome these issues and provide a way to easily clone an existing virtualenv. It performs the following: - copies `sys.argv[1]` dir to `sys.argv[2]` - updates the hardcoded `VIRTUAL_ENV` variable in the activate script to the new repo location. (`--relocatable` doesn't touch this) - updates the shebangs of the various scripts in bin to the new Python if they pointed to the old Python. (version numbering is retained.) it can also change `/usr/bin/env python` shebangs to be absolute too, though this functionality is not exposed at present. - checks `sys.path` of the cloned virtualenv and if any of the paths are from the old environment it finds any `.pth` or `.egg` link files within sys.path located in the new environment and makes sure any absolute paths to the old environment are updated to the new environment. - finally it double checks `sys.path` again and will fail if there are still paths from the old environment present. NOTE: This script requires Python 2.7 or 3.4+ %prep %autosetup -n virtualenv-clone-0.5.7 %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-virtualenv-clone -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 21 2023 Python_Bot - 0.5.7-1 - Package Spec generated