From 79df9301934566ea3712f8d1f0b514acbd0774de Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Fri, 14 Nov 2025 12:55:16 -0500 Subject: [PATCH 1/2] CI: Add known-broken Fedora 43 configs Fedora 43 was released two weeks ago on 2025-10-30. It brings with it GDK Pixbuf 2.44, which has a new Rust-based image loader named Glycin2 which is **incompatible** with the graphviz `gdk` plugin. (See issue graphviz/graphviz#2732.) The plugin will silently produce empty files for any image exports attempted using it. Since a test was added for this condition in graphviz/graphviz!4555, it is expected that these Fedora 43 builds will _fail_ until the gdk plugin is either fixed or disabled in Fedora 43 builds. --- .gitlab-ci.yml | 68 ++++++++++++++++++++++++++++++++++ ci/fedora43/Dockerfile | 84 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 ci/fedora43/Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c139be82bb..cbbf053d0d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -266,6 +266,18 @@ fedora42-build: variables: IMAGE: fedora42 +fedora43-build: + <<: *rpm_build_definition + needs: + - job: docker_build_fedora43 + artifacts: false + - job: portable-source + artifacts: true + tags: + - saas-linux-small-amd64 + variables: + IMAGE: fedora43 + ubuntu-22.04-build: <<: *deb_build_definition needs: @@ -701,6 +713,26 @@ fedora42-cmake-build: variables: IMAGE: fedora42 +fedora43-cmake-build: + <<: *rpm_build_definition + needs: + - job: docker_build_fedora43 + artifacts: false + before_script: + - export build_system="cmake" + # fail on any compiler warnings + - export CFLAGS="-Werror" + - export CXXFLAGS="-Werror" + - export CMAKE_OPTIONS="-DWITH_SMYRNA=ON" + - export CMAKE_OPTIONS="$CMAKE_OPTIONS -DENABLE_LTDL=ON" + - export CMAKE_OPTIONS="$CMAKE_OPTIONS -DWITH_EXPAT=ON" + - export CMAKE_OPTIONS="$CMAKE_OPTIONS -DWITH_GVEDIT=ON" + - export CMAKE_OPTIONS="$CMAKE_OPTIONS -DWITH_ZLIB=ON" + tags: + - saas-linux-small-amd64 + variables: + IMAGE: fedora43 + macos-cmake-build: <<: *macos_build_definition needs: [] @@ -982,6 +1014,18 @@ fedora42-test: variables: IMAGE: fedora42 +fedora43-test: + <<: *linux_test_definition + before_script: + - export build_system="autotools" + needs: + - job: "fedora43-build" + artifacts: true + tags: + - saas-linux-small-amd64 + variables: + IMAGE: fedora43 + macos-autotools-test: <<: *test_definition before_script: @@ -1098,6 +1142,18 @@ fedora42-cmake-test: variables: IMAGE: fedora42 +fedora43-cmake-test: + <<: *linux_test_definition + before_script: + - export build_system="cmake" + needs: + - job: "fedora43-cmake-build" + artifacts: true + tags: + - saas-linux-small-amd64 + variables: + IMAGE: fedora43 + macos-cmake-test: <<: *test_definition before_script: @@ -1242,6 +1298,11 @@ docker_build_fedora42: variables: IMAGE: fedora42 +docker_build_fedora43: + <<: *docker_build_definition + variables: + IMAGE: fedora43 + docker_build_ubuntu-22.04: <<: *docker_build_definition variables: @@ -1290,6 +1351,13 @@ docker_push_fedora42: needs: - docker_build_fedora42 +docker_push_fedora43: + <<: *docker_push_definition + variables: + IMAGE: fedora43 + needs: + - docker_build_fedora43 + docker_push_ubuntu-22.04: <<: *docker_push_definition variables: diff --git a/ci/fedora43/Dockerfile b/ci/fedora43/Dockerfile new file mode 100644 index 0000000000..8abe86fe9a --- /dev/null +++ b/ci/fedora43/Dockerfile @@ -0,0 +1,84 @@ +# Digest from https://hub.docker.com/_/fedora/tags?name=43 +FROM fedora:43@sha256:2ad3073554aef41c15b2c52e968ec0540c931bc3dab8c599ca6eb6f32f3f2d14 + + +COPY requirements.txt ./requirements.txt + +# Development tools +RUN dnf -y --setopt install_weak_deps=false install rpm-build \ +bison \ +byacc \ +flex \ +doxygen \ +git \ +make \ +cmake \ +ninja \ +# Centos build utilities +libtool-ltdl-devel \ +libedit-devel \ +# Option xpat +expat-devel \ +# Option glut +freeglut-devel \ +# Option ann +ann-devel \ +# Option gts +gts-devel \ +# Option swig +swig \ +# Command smyra +# Command gvedit +qt5-qtbase-devel \ +# Plugin library devil +DevIL-devel \ +# Plugin library gd +gd-devel \ +# Documentation and Plugin library ghostscipt +ghostscript ghostscript-devel \ +# Plugin library gdk +gtk3-devel \ +# Plugin library gtk +gtkglext-devel \ +# Plugin library lasi +lasi-devel \ +# Plugin library poppler +poppler-glib-devel \ +poppler-qt5 \ +# Plugin library rsvg +librsvg2-devel \ +# Language extension gv_go +golang \ +gcc-go \ +# Language extension gv_guile +guile30-devel \ +# Language extension gv_java +java-devel \ +# Language extension gv_lua +lua-devel \ +# Language extension gv_perl +perl \ +# Language extension gv_php +php-devel \ +# Language extension gv_python3 +python3-devel \ +# Language extension gv_R +R \ +R-devel \ +# Language extension gv_ruby +ruby-devel \ +# Language extension gv_tcl +# Required in redhat/graphviz.spec.fedora.in +tcl-devel \ +tk-devel \ +libglade2-devel \ +mono-core \ +# create a Python virtual environment +&& python3 -m venv /opt/virtualenv \ +# install Python dependencies within the virtual environment +&& env PATH="/opt/virtualenv/bin:$PATH" python3 -m pip install --requirement requirements.txt \ +# Remove possible old version of Graphviz so that we can detect if +# individual Graphviz tools are missing in the current release +&& dnf remove -y graphviz \ +# Clean up +&& dnf clean all && rm -rf /var/cache/dnf -- GitLab From 3fc80ee6514dc650c94ed6aec9400273079fc654 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Fri, 14 Nov 2025 13:05:04 -0500 Subject: [PATCH 2/2] CI: Make GDKPixbuf dependency explicit on Fedora Previously the Fedora `Dockerfile`s listed only `gtk3-devel` as the dependency for the `gdk` plugin. While this technically works, because `gtk3-devel` always pulls in GDKPixbuf as one of _its_ dependencies, the `gdk` plugin technically depends on GDKPixbuf even more than GTK3. To make this explicit, list `gdk-pixbuf2-devel` along with `gtk3-devel` as the plugin dependencies. --- ci/fedora41/Dockerfile | 1 + ci/fedora42/Dockerfile | 1 + ci/fedora43/Dockerfile | 1 + 3 files changed, 3 insertions(+) diff --git a/ci/fedora41/Dockerfile b/ci/fedora41/Dockerfile index ed603e1679..e1009aecfe 100644 --- a/ci/fedora41/Dockerfile +++ b/ci/fedora41/Dockerfile @@ -36,6 +36,7 @@ gd-devel \ # Documentation and Plugin library ghostscipt ghostscript ghostscript-devel \ # Plugin library gdk +gdk-pixbuf2-devel \ gtk3-devel \ # Plugin library gtk gtkglext-devel \ diff --git a/ci/fedora42/Dockerfile b/ci/fedora42/Dockerfile index 0ac42b7c23..b299c2d495 100644 --- a/ci/fedora42/Dockerfile +++ b/ci/fedora42/Dockerfile @@ -36,6 +36,7 @@ gd-devel \ # Documentation and Plugin library ghostscipt ghostscript ghostscript-devel \ # Plugin library gdk +gdk-pixbuf2-devel \ gtk3-devel \ # Plugin library gtk gtkglext-devel \ diff --git a/ci/fedora43/Dockerfile b/ci/fedora43/Dockerfile index 8abe86fe9a..b986679aa9 100644 --- a/ci/fedora43/Dockerfile +++ b/ci/fedora43/Dockerfile @@ -37,6 +37,7 @@ gd-devel \ # Documentation and Plugin library ghostscipt ghostscript ghostscript-devel \ # Plugin library gdk +gdk-pixbuf2-devel \ gtk3-devel \ # Plugin library gtk gtkglext-devel \ -- GitLab