-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
In contrast to the existing Ubuntu CI jobs, the Docker file introduced in this commit ignores requirements.txt and doc/infosrc/requirements.txt and installs the one Python package it needs, Pytest, from the native operating system repositories. Debian and Ubuntu have adopted a policy change that has come into effect in Ubuntu 23.04 that prevents Pip from installing package requirements that conflict with system packages.¹ To work around this, we use the native package manager instead. The main effect of this is that CI jobs running this image do not have the precise version of Pytest from requirements.txt. At time of writing, Pytest 7.2.1 is installed. As Graphviz’ use of Pytest is fairly basic and standard, hopefully this will not cause problems. An alternative would be to follow the path the policy is intended to push users towards: creating a Python virtual environment. But this seems onerous to do for Graphviz, something that is not a Python project, just to get testing machinery functional. Gitlab: closes #2382 ¹ https://peps.python.org/pep-0668/ This Github thread explains the actual observed effect and what is going on, python/cpython#102134 (comment).
- Loading branch information
Showing
2 changed files
with
157 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
FROM ubuntu:23.04 | ||
|
||
ARG DEBIAN_FRONTEND=noninteractive | ||
|
||
RUN apt-get update -y \ | ||
&& apt-get install --no-install-recommends -y \ | ||
# Development tools | ||
build-essential \ | ||
clang-format \ | ||
cmake \ | ||
git \ | ||
pkg-config \ | ||
autoconf \ | ||
bison \ | ||
libtool \ | ||
dh-python \ | ||
flex \ | ||
ksh \ | ||
# Debian build utilities | ||
quilt \ | ||
d-shlibs \ | ||
debhelper \ | ||
fakeroot \ | ||
# Option glut | ||
freeglut3-dev \ | ||
# Option gts | ||
libgts-dev \ | ||
# Option swig | ||
swig \ | ||
# Command smyra | ||
libgtkglext1-dev \ | ||
libglade2-dev \ | ||
# Command gvedit | ||
libqt5gui5 \ | ||
qt5-qmake \ | ||
qtbase5-dev \ | ||
# for libmingle | ||
libann-dev \ | ||
# Plugin library devil | ||
libdevil-dev \ | ||
# Plugin library gd | ||
libgd-dev \ | ||
# Documentation | ||
ghostscript \ | ||
# Plugin library ghostscipt | ||
libgs-dev \ | ||
# Plugin library lasi | ||
liblasi-dev \ | ||
# Plugin library poppler | ||
libpoppler-dev \ | ||
libpoppler-glib-dev \ | ||
# Plugin library rsvg | ||
librsvg2-dev \ | ||
# Plugin library webp | ||
libwebp-dev \ | ||
# Language extension gv_sharp & gv_ruby | ||
ruby \ | ||
# Language extension gv_go | ||
golang-go \ | ||
# Language extension gv_guile | ||
guile-2.2 \ | ||
guile-2.2-dev \ | ||
# Language extension gv_lua | ||
lua5.3 \ | ||
liblua5.3-dev \ | ||
# Language extension gv_ocaml | ||
ocaml \ | ||
# Language extension gv_perl | ||
libperl-dev \ | ||
# Language extension gv_php | ||
php-dev \ | ||
libsodium-dev \ | ||
libargon2-0-dev \ | ||
# Language extension gv_python3 | ||
libpython3-dev \ | ||
# Language extension gv_ruby | ||
ruby-dev \ | ||
# Language extension gv_tcl | ||
tcl-dev \ | ||
# Test utilities | ||
python3-pytest \ | ||
python3-setuptools \ | ||
gcovr \ | ||
lcov \ | ||
# Libraries used in test | ||
catch2 \ | ||
libboost-dev \ | ||
libfmt-dev \ | ||
libsvgpp-dev \ | ||
# Clean up | ||
&& rm -rf /var/lib/apt/lists/* |