From c45c15f5afc889ddcd1bd8752a7bd57e98b51aaf Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Thu, 4 Jul 2024 15:15:58 +0200 Subject: [PATCH] ci: Add job for perl-XML-LibXML --- .gitlab-ci.yml | 5 +++++ .gitlab-ci/Dockerfile | 18 +++++++++++++++++- .gitlab-ci/downstream-perl.sh | 18 ++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .gitlab-ci/downstream-perl.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8d96580d..9c0ccd95 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -304,3 +304,8 @@ downstream-nokogiri: image: ghcr.io/sparklemotion/nokogiri-test:upstream-libxml script: - .gitlab-ci/downstream-nokogiri.sh + +downstream-perl: + image: registry.gitlab.gnome.org/gnome/libxml2 + script: + - sh .gitlab-ci/downstream-perl.sh diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile index 0b1fa786..82e08c0e 100644 --- a/.gitlab-ci/Dockerfile +++ b/.gitlab-ci/Dockerfile @@ -1,7 +1,7 @@ # The image is also used for libxslt, that's why we need git and # libgcrypt-dev. -FROM ubuntu:23.10 +FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get upgrade -y && \ @@ -14,3 +14,19 @@ RUN apt-get update && \ cmake meson WORKDIR /tests RUN curl https://www.w3.org/XML/Test/xmlts20080827.tar.gz |tar xz + +# XML::LibXML uses Alien::Libxml2 which has a huge dependency chain. +# We try to install most dependencies with apt. We also require +# libxml2-dev to stop Alien::Libxml2 from downloading and building +# libxml2 on its own. +RUN apt-get install -y --no-install-recommends \ + libperl-dev libxml2-dev cpanminus \ + libalien-build-perl \ + libio-socket-ssl-perl \ + libsort-versions-perl \ + liburi-perl \ + libxml-namespacesupport-perl \ + libxml-sax-perl \ + libyaml-perl +RUN cpanm -n Alien::Libxml2 +RUN apt-get remove -y libxml2-dev diff --git a/.gitlab-ci/downstream-perl.sh b/.gitlab-ci/downstream-perl.sh new file mode 100644 index 00000000..0505ca30 --- /dev/null +++ b/.gitlab-ci/downstream-perl.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +sh autogen.sh --without-python +make -j$(nproc) + +srcdir=$(pwd) +incdir=$srcdir/include +libdir=$srcdir/.libs + +curl -L https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0210.tar.gz |tar xz +cd XML-LibXML-2.0210 + +perl Makefile.PL INC="-I$incdir" LIBS="-L$libdir -lxml2" +make +# Known to fail +LD_LIBRARY_PATH=$libdir make test || true