Remove usvg auto-install from setup.py

This commit is contained in:
jaseg 2021-02-06 00:20:40 +01:00
parent 1d58b4d584
commit 06c2d5295d
2 changed files with 10 additions and 45 deletions

View file

@ -52,8 +52,7 @@ Gerbolyze works in three steps.
Quick Start Installation
------------------------
This will install gerbolyze and svg-flatten into a Python virtualenv and install usvg into your ``~/.cargo`` if not yet
installed somewhere else.
This will install gerbolyze and svg-flatten into a Python virtualenv and install usvg into your ``~/.cargo``.
Debian
~~~~~~
@ -68,13 +67,16 @@ Note:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup install stable
rustup default stable
cargo install usvg
git clone --recurse-submodules https://git.jaseg.de/gerbolyze.git
cd gerbolyze
python3 -m venv
source venv/bin/activate
# may take a while during usvg install
python3 setup.py install
Fedora
@ -83,13 +85,13 @@ Fedora
.. code-block:: shell
sudo dnf install python3 make clang opencv-devel pugixml-devel pango-devel cairo-devel rust cargo
cargo install usvg
git clone --recurse-submodules https://git.jaseg.de/gerbolyze.git
cd gerbolyze
python3 -m venv
source venv/bin/activate
# may take a while during usvg install
python3 setup.py install
Arch
@ -99,12 +101,15 @@ Arch
sudo pacman -S pugixml opencv pango cairo git python make clang rustup cargo
rustup install stable
rustup default stable
cargo install usvg
git clone --recurse-submodules https://git.jaseg.de/gerbolyze.git
cd gerbolyze
python3 -m venv
source venv/bin/activate
# may take a while during usvg install
python3 setup.py install
Features

View file

@ -53,50 +53,10 @@ def has_usvg():
else:
return False
def install_usvg():
try:
subprocess.run(['cargo'], check=True, capture_output=True)
except subprocess.CalledProcessError as e:
if b'no default toolchain set' in e.stderr:
print('No rust installation found. Calling rustup.')
try:
subprocess.run(['rustup', 'install', 'stable'], check=True)
subprocess.run(['rustup', 'default', 'stable'], check=True)
except subprocess.FileNotFoundError as e:
print('Cannot find rustup executable. svg-flatten needs usvg, which we install via rustup. Please install rustup or install usvg manually.', file=sys.stderr)
sys.exit(1)
except subprocess.CalledProcessError as e:
print('Error installing usvg:', e.returncode, file=sys.stderr)
sys.exit(1)
else:
print('Error installing usvg:', e.returncode, file=sys.stderr)
print(e.stdout.decode())
print(e.stderr.decode())
sys.exit(1)
except subprocess.FileNotFoundError as e:
print('Cannot find cargo executable. svg-flatten needs usvg, which we install via cargo. Please install cargo or install usvg manually.', file=sys.stderr)
sys.exit(1)
try:
subprocess.run(['cargo', 'install', 'usvg'], check=True)
except subprocess.CalledProcessError as e:
print('Error installing usvg:', e.returncode, file=sys.stderr)
sys.exit(1)
class CustomInstall(install):
"""Custom handler for the 'install' command."""
def run(self):
compile_and_install_svgflatten()
if not has_usvg():
print('usvg not found. Installing.')
install_usvg()
super().run()
setup(