Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Debian 12, Fedora 38-39, and OpenSUSE dockerfiles. #12

Merged
merged 6 commits into from
Apr 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/build-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
95 changes: 74 additions & 21 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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 [<gpg version selector>]

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
_<gpg version selector>_ is either selector used by _build_and_install_gpg_ or _'system'_

#### select_botan_version_for_gha [<botan version selector>]

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
_<botan version selector>_ is either selector used by _build_and_install_botan_ or _'system'_

25 changes: 25 additions & 0 deletions debian-12-amd64.Dockerfile
Original file line number Diff line number Diff line change
@@ -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
25 changes: 25 additions & 0 deletions fedora-38-amd64.Dockerfile
Original file line number Diff line number Diff line change
@@ -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
25 changes: 25 additions & 0 deletions fedora-39-amd64.Dockerfile
Original file line number Diff line number Diff line change
@@ -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
20 changes: 20 additions & 0 deletions opensuse-leap.Dockerfile
Original file line number Diff line number Diff line change
@@ -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
20 changes: 20 additions & 0 deletions opensuse-tumbleweed.Dockerfile
Original file line number Diff line number Diff line change
@@ -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
4 changes: 2 additions & 2 deletions tools/tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
Expand Down
Loading