diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 54fe278..8435e29 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -29,9 +29,14 @@ jobs: - 'centos-9-amd64' - 'fedora-35-amd64' - 'fedora-36-amd64' + - 'fedora-38-amd64' + - 'fedora-39-amd64' - 'debian-11-amd64' + - 'debian-12-amd64' - 'debian-11-i386' - 'debian-10-i386' + - 'opensuse-leap' + - 'opensuse-tumbleweed' steps: - name: Checkout diff --git a/README.adoc b/README.adoc index 7c2a697..6008bbc 100644 --- a/README.adoc +++ b/README.adoc @@ -38,10 +38,12 @@ RNP CI normally uses system shipped versions of dependencies. However, under two circumstances custom requirements need to be supported: * some legacy environments provide only versions that are not supported by rnp -* someties RNP needs to be tested with versions that differ from provided by ststem packages +* sometimes RNP needs to be tested with versions that differ from provided by system packages This repository created images that support two cases listed above +Currently built gpg versions are 2.2.43 for lts, and 2.4.5 for stable. + ### Pre-installed versions of gnugp and json-c and botan libraries [cols="a,a,a,a,a"] @@ -66,16 +68,22 @@ This repository created images that support two cases listed above | 2.2.27 | system shipped +| debian-12-amd64 +| 2.19.3 +| system shipped +| 2.2.40 +| system shipped + .3+| centos-7-amd64 .3+| 2.16.0 .3+| ribose repository | 2.0.22 | system shipped -| stable (2.4.3) +| stable | local build @ /opt/gpg/stable -| lts (2.2.41) +| lts | local build @ /opt/gpg/lts .3+| centos-8-amd64 @@ -84,12 +92,12 @@ This repository created images that support two cases listed above | 2.2.20 | system shipped -| stable (2.4.3) +| stable | local build @ /opt/gpg/stable | 2.18.2 | local build @ /opt/botan/2.18.2 -| lts (2.2.41) +| lts | local build @ /opt/gpg/lts .3+| centos-9-amd64 @@ -98,10 +106,10 @@ This repository created images that support two cases listed above | 2.3.3 | system shipped -| stable (2.4.3) +| stable | local build @ /opt/gpg/stable -| lts (2.2.41) +| lts | local build @ /opt/gpg/lts .3+| fedora-35-amd64 @@ -110,26 +118,71 @@ This repository created images that support two cases listed above | 2.3.4 | system shipped -| stable (2.4.3) +| stable | local build @ /opt/gpg/stable -| lts (2.2.41) +| lts | local build @ /opt/gpg/lts -.3+| fedora-36-amd64 -.2+| 2.19.1 -.2+| system shipped +.4+| fedora-36-amd64 +| 2.19.1 +| system shipped | 2.3.7 | system shipped -| stable (2.4.3) -| local build @ /opt/gpg/stable - | 3.1.1 | local build @ /opt/botan/3.1.1 -| lts (2.2.41) +| stable +| local build @ /opt/gpg/stable + +| 3.2.0 +| local build @ /opt/botan/3.2.0 +.2+| lts +.2+| local build @ /opt/gpg/lts + +| 3.3.0 +| local build @ /opt/botan/3.3.0 + +.3+| fedora-38-amd64 +| 2.19.3 +| system shipped +| 2.4.0 +| system shipped + +.2+| 3.4.0 +.2+| local build @ /opt/botan/3.4.0 +| stable +| local build @ /opt/gpg/stable + +| lts +| local build @ /opt/gpg/lts + +.3+| fedora-39-amd64 +| 2.19.3 +| system shipped +| 2.4.4 +| system shipped + +.2+| 3.4.0 +.2+| local build @ /opt/botan/3.4.0 +| stable +| local build @ /opt/gpg/stable + +| lts | local build @ /opt/gpg/lts +| opensuse-leap +| 2.19.3 +| system shipped +| 2.2.27 +| system shipped + +| opensuse-tumbleweed +| 2.19.3 +| system shipped +| 2.4.5 +| system shipped + |=== ### Helper script @@ -156,23 +209,23 @@ Build is performed using the script from _https://github.com/rnpgp/gpg-build-sc | head (uses git references) | npth-1.6 | master | master | master | master | master | master -| stable | 1.6 | 1.47 | 1.10.2 | 2.5.6 | 1.6.4 | 1.2.1 | 2.4.3 +| stable | 1.7 | 1.48 | 1.10.3 | 2.5.7 | 1.6.6 | 1.3.0 | 2.4.5 -| lts | 1.6 | 1.46 | 1.8.10 | 2.5.5 | 1.6.3 | 1.2.1 | 2.2.41 +| lts | 1.6 | 1.48 | 1.8.10 | 2.5.5 | 1.6.3 | 1.2.1 | 2.2.43 |=== #### select_crypto_backend_for_gha [botan | openssl] -Configures GHA environmetn to use specified crypto backend. This configuration takes effect from the next job step only +Configures GHA environment to use specified crypto backend. This configuration takes effect from the next job step only #### select_gpg_version_for_gha [] -Configures GHA environmetn to use specified version of _botan_. This configuration takes effect from the next job step only +Configures GHA environment to use specified version of _botan_. This configuration takes effect from the next job step only __ is either selector used by _build_and_install_gpg_ or _'system'_ #### select_botan_version_for_gha [] -Configures GHA environmetn to use specified version of _botan_. This configuration takes effect from the next job step only +Configures GHA environment to use specified version of _botan_. This configuration takes effect from the next job step only __ is either selector used by _build_and_install_botan_ or _'system'_ diff --git a/debian-12-amd64.Dockerfile b/debian-12-amd64.Dockerfile new file mode 100644 index 0000000..772a742 --- /dev/null +++ b/debian-12-amd64.Dockerfile @@ -0,0 +1,25 @@ +FROM amd64/debian:12 + +ENV DEBIAN_FRONTEND=noninteractive +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV LC_LANG=.UTF-8 +ENV ARCH=x64 +ENV CPU=x86_64 +ENV OS=linux +# For default botan version (2.18.3) +ENV LD_LIBRARY_PATH=/usr/local/lib + +ARG CC=gcc +ARG CXX=g++ + +COPY tools /opt/tools + +RUN apt-get update && \ + apt-get -y install git sudo wget bash software-properties-common pkg-config \ + build-essential gettext libbz2-dev libssl-dev zlib1g-dev \ + python3 python3-venv autoconf automake libtool asciidoctor clang libbotan-2-dev gpg + +RUN /opt/tools/tools.sh ensure_symlink_to_target '/usr/bin/python3' '/usr/bin/python' && \ + /opt/tools/tools.sh install_cmake && \ + /opt/tools/tools.sh build_and_install_jsonc diff --git a/fedora-38-amd64.Dockerfile b/fedora-38-amd64.Dockerfile new file mode 100644 index 0000000..1d0cf7d --- /dev/null +++ b/fedora-38-amd64.Dockerfile @@ -0,0 +1,25 @@ +FROM fedora:38 + +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV LC_LANG=C.UTF-8 +ENV ARCH=x64 +ENV CPU=x86_64 +ENV OS=linux +# For libiconv +ENV LD_LIBRARY_PATH=/usr/local/lib + +ARG CC=gcc +ARG CXX=g++ + +COPY tools /opt/tools + +RUN dnf -y update && \ + dnf -y install sudo wget git openssl-devel bison byacc cmake python perl-Digest-SHA \ + json-c-devel clang gcc gcc-c++ make autoconf libtool gzip bzip2 bzip2-devel \ + gettext-devel ncurses-devel zlib-devel asciidoctor botan2 botan2-devel llvm + +RUN /opt/tools/tools.sh build_and_install_libiconv && \ + /opt/tools/tools.sh build_and_install_gpg lts && \ + /opt/tools/tools.sh build_and_install_gpg stable && \ + /opt/tools/tools.sh build_and_install_botan 3.4.0 diff --git a/fedora-39-amd64.Dockerfile b/fedora-39-amd64.Dockerfile new file mode 100644 index 0000000..0ba4706 --- /dev/null +++ b/fedora-39-amd64.Dockerfile @@ -0,0 +1,25 @@ +FROM fedora:39 + +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV LC_LANG=C.UTF-8 +ENV ARCH=x64 +ENV CPU=x86_64 +ENV OS=linux +# For libiconv +ENV LD_LIBRARY_PATH=/usr/local/lib + +ARG CC=gcc +ARG CXX=g++ + +COPY tools /opt/tools + +RUN dnf -y update && \ + dnf -y install sudo wget git openssl-devel bison byacc cmake python perl-Digest-SHA \ + json-c-devel clang gcc gcc-c++ make autoconf libtool gzip bzip2 bzip2-devel \ + gettext-devel ncurses-devel zlib-devel asciidoctor botan2 botan2-devel llvm + +RUN /opt/tools/tools.sh build_and_install_libiconv && \ + /opt/tools/tools.sh build_and_install_gpg lts && \ + /opt/tools/tools.sh build_and_install_gpg stable && \ + /opt/tools/tools.sh build_and_install_botan 3.4.0 diff --git a/opensuse-leap.Dockerfile b/opensuse-leap.Dockerfile new file mode 100644 index 0000000..0b4f253 --- /dev/null +++ b/opensuse-leap.Dockerfile @@ -0,0 +1,20 @@ +FROM opensuse/leap:latest + +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV LC_LANG=C.UTF-8 +ENV ARCH=x64 +ENV CPU=x86_64 +ENV OS=linux +# For libiconv +ENV LD_LIBRARY_PATH=/usr/local/lib + +ARG CC=gcc +ARG CXX=g++ + +COPY tools /opt/tools + +RUN zypper refresh +RUN zypper -n install sudo wget git libopenssl-devel bison byacc automake cmake python3 \ + libjson-c-devel clang gcc gcc-c++ make autoconf libtool gzip bzip2 libbz2-devel \ + gettext-tools ncurses-devel zlib-devel asciidoc libbotan-devel llvm gtest diff --git a/opensuse-tumbleweed.Dockerfile b/opensuse-tumbleweed.Dockerfile new file mode 100644 index 0000000..e5752b9 --- /dev/null +++ b/opensuse-tumbleweed.Dockerfile @@ -0,0 +1,20 @@ +FROM opensuse/tumbleweed:latest + +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV LC_LANG=C.UTF-8 +ENV ARCH=x64 +ENV CPU=x86_64 +ENV OS=linux +# For libiconv +ENV LD_LIBRARY_PATH=/usr/local/lib + +ARG CC=gcc +ARG CXX=g++ + +COPY tools /opt/tools + +RUN zypper refresh +RUN zypper -n install sudo wget git libopenssl-devel bison byacc automake cmake python3 \ + libjson-c-devel clang gcc gcc-c++ make autoconf libtool gzip bzip2 libbz2-devel \ + gettext-tools ncurses-devel zlib-devel asciidoc libbotan-devel llvm gtest diff --git a/tools/tools.sh b/tools/tools.sh index ccdced0..a5c3ac7 100755 --- a/tools/tools.sh +++ b/tools/tools.sh @@ -270,11 +270,11 @@ build_and_install_gpg() { ;; stable) # npth libgpg-error libgcrypt libassuan libksba pinentry gnupg - _install_gpg component-version 1.6 1.47 1.10.2 2.5.6 1.6.4 1.2.1 2.4.3 + _install_gpg component-version 1.7 1.48 1.10.3 2.5.7 1.6.6 1.3.0 2.4.5 ;; lts) # npth libgpg-error libgcrypt libassuan libksba pinentry gnupg - _install_gpg component-version 1.6 1.46 1.8.10 2.5.5 1.6.3 1.2.1 2.2.41 + _install_gpg component-version 1.6 1.48 1.8.10 2.5.5 1.6.3 1.2.1 2.2.43 ;; *) >&2 echo "\$GPG_VERSION is set to invalid value: ${GPG_VERSION}"