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 el9 for 4.4 #120

Merged
merged 12 commits into from
Oct 8, 2024
1 change: 1 addition & 0 deletions .github/workflows/base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
- [debian11 , "linux/amd64,linux/arm64"]
- [debian10 , "linux/amd64,linux/arm64"]
- [debian9 , "linux/amd64,linux/arm64"]
- [el9 , "linux/amd64,linux/arm64"]
- [el8 , "linux/amd64,linux/arm64"]
- [el7 , "linux/amd64,linux/arm64"]
- [amzn2 , "linux/amd64,linux/arm64"]
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ jobs:
- [debian11 , "linux/amd64,linux/arm64"]
- [debian10 , "linux/amd64,linux/arm64"]
- [debian9 , "linux/amd64,linux/arm64"]
- [el9 , "linux/amd64,linux/arm64"]
- [el8 , "linux/amd64,linux/arm64"]
- [el7 , "linux/amd64,linux/arm64"]
- [amzn2 , "linux/amd64,linux/arm64"]
Expand Down Expand Up @@ -101,6 +102,7 @@ jobs:
- [debian11 , "linux/amd64,linux/arm64"]
- [debian10 , "linux/amd64,linux/arm64"]
- [debian9 , "linux/amd64,linux/arm64"]
- [el9 , "linux/amd64,linux/arm64"]
- [el8 , "linux/amd64,linux/arm64"]
- [el7 , "linux/amd64,linux/arm64"]
- [amzn2 , "linux/amd64,linux/arm64"]
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ jobs:
- [debian11 , "linux/amd64,linux/arm64"]
- [debian10 , "linux/amd64,linux/arm64"]
- [debian9 , "linux/amd64,linux/arm64"]
- [el9 , "linux/amd64,linux/arm64"]
- [el8 , "linux/amd64,linux/arm64"]
- [el7 , "linux/amd64,linux/arm64"]
- [amzn2 , "linux/amd64,linux/arm64"]
Expand Down
83 changes: 38 additions & 45 deletions el7/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
ARG BUILD_FROM=centos:7
FROM ${BUILD_FROM}
ARG TARGETPLATFORM

RUN yum install epel-release -y && yum update -y
RUN yum install -y autoconf \
COPY el7/RPM-GPG-KEY-CentOS-SIG-SCLo /etc/pki/rpm-gpg/
COPY el7/yum.repos.d/${TARGETPLATFORM}/* /etc/yum.repos.d/

RUN yum clean all && \
yum makecache && \
yum install epel-release -y && yum update -y

RUN yum groupinstall -y "Development Tools" && \
yum install -y autoconf \
bison-devel \
centos-release-scl \
curl \
cyrus-sasl \
cyrus-sasl-devel \
cyrus-sasl-gssapi \
devtoolset-8-gcc \
devtoolset-8-gcc-c++ \
expect \
flex-devel \
jq \
krb5-server \
krb5-workstation \
libatomic \
libtool \
ncurses-devel \
Expand All @@ -21,59 +38,34 @@ RUN yum install -y autoconf \
zip \
zlib-devel

RUN yum install -y \
krb5-workstation \
cyrus-sasl-devel \
cyrus-sasl \
cyrus-sasl-gssapi


# The following is not necessary for Kerberos authentication but makes testing
# https://github.com/kafka4beam/sasl_auth easier
RUN yum install -y \
krb5-server \
expect

RUN yum groupinstall -y "Development Tools"

RUN yum install -y centos-release-scl
RUN yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++

ADD install-openssl11.sh /install-openssl11.sh
RUN /install-openssl11.sh
ADD install-openssl11.sh get-git.sh get-automake.sh get-cmake.sh /

WORKDIR /

ENV GIT_VERSION=2.38.1 DEVELOPER_CFLAGS='-std=gnu99'
# We need git >= 2.18 otherwise actions/checkout@v3 in github
# workflows will use REST API to download source code archive without
# .git directory instead of normal git clone. And if release is
# configured to take it's version from git tag, rebar3 will not be
# able to resolve the version correctly and will fallback to 0.0.0,
# like it happened with emqtt-bench.
# The error from actions/checkout@v3 is as follows:
# > The repository will be downloaded using the GitHub REST API
# > To create a local Git repository instead, add Git 2.18 or higher to the PATH

# - have to uninstall stock git to cleanup all git backend files,
# otherwise git from the newer version may encounter
# an error like "bogus format in GIT_CONFIG_PARAMETERS"
# - gnu99 flag is to address https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/5948
# - libcurl-devel is needed to support clone from https remotes
RUN yum remove -y git \
RUN yum remove -y git* \
&& yum install -y libcurl-devel \
&& curl -L -o /tmp/git.tar.gz "https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz" \
&& tar zxf /tmp/git.tar.gz -C /tmp \
&& cd "/tmp/git-${GIT_VERSION}/" \
&& make configure \
&& ./configure --prefix=/usr \
&& make all \
&& make install \
&& cd / \
&& rm -rf /tmp/git.tar.gz "/tmp/git-${GIT_VERSION}/" \
&& env DEVELOPER_CFLAGS='-std=gnu99' /get-git.sh \
&& git --version

RUN curl -L -o /tmp/automake-1.14.tar.gz http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz \
&& tar -zxvf /tmp/automake-1.14.tar.gz -C /tmp \
&& cd /tmp/automake-1.14 \
&& ./bootstrap.sh \
&& ./configure \
&& make \
&& make install \
&& automake --version

COPY get-cmake.sh /get-cmake.sh
RUN env OPENSSL_ROOT_DIR=/usr/local/openssl /get-cmake.sh build
RUN /get-automake.sh
RUN /install-openssl11.sh
ENV OPENSSL_ROOT_DIR=/usr/local/openssl
RUN /get-cmake.sh build

# We have to reinstall `glibc-common` after removing the override just
# for the `arm64` platform build of CentOS 7. While just setting the
Expand All @@ -93,7 +85,8 @@ RUN alternatives --install /usr/bin/python python /usr/bin/python2 1 && \
# cleanup
RUN yum clean packages && \
rm -rf /tmp/* && \
rm -rf /var/tmp/*
rm -rf /var/tmp/* && \
rm /install-openssl11.sh /get-git.sh /get-automake.sh /get-cmake.sh

ENV BASH_ENV=/opt/rh/devtoolset-8/enable \
ENV=/opt/rh/devtoolset-8/enable \
Expand Down
20 changes: 20 additions & 0 deletions el7/RPM-GPG-KEY-CentOS-SIG-SCLo
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)

mQENBFYM/AoBCADR9Q5cb+H5ndx+QkzNBQ88wcD+g112yvnHNlSiBMOnNEGHuKPJ
tujZ+eWXP3K6ucJckT91WxfQ2fxPr9jQ0xpZytcHcZdTfn3vKL9+OwR0npp+qmcz
rK8/EzVz/SWSgBQ5xT/HUvaeoVAbzBHSng0r2njnBAqABKAoTxgyRGKSCWduKD32
7PF2ZpqeDFFhd99Ykt6ar8SlV8ToqH6F7An0ILeejINVbHUxd6+wsbpcOwQ4mGAa
/CPXeqqLGj62ASBv36xQr34hlN/9zQMViaKkacl8zkuvwhuHf4b4VlGVCe6VILpQ
8ytKMV/lcg7YpMfRq4KVWBjCwkvk6zg6KxaHABEBAAG0aENlbnRPUyBTb2Z0d2Fy
ZUNvbGxlY3Rpb25zIFNJRyAoaHR0cHM6Ly93aWtpLmNlbnRvcy5vcmcvU3BlY2lh
bEludGVyZXN0R3JvdXAvU0NMbykgPHNlY3VyaXR5QGNlbnRvcy5vcmc+iQE5BBMB
CgAjAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AFAmIgbg0ACgkQTrhOcfLu
nVUzkAgAgJSl++PWo69OGI8eUn53whhfJ6ZyKCOyI9+Flghtfwq1mdcP4dIoAubw
nlQcvEsE4Erob2I1S+n/dXYh9y2+Si3HdXRreKzC1rCSG5ebYRrEqeMoJhBoDFSd
xydtxi03l+Dh2iWtLtXpAM85qHvgIrPfdUnLRVbDBT52Ph5igZl8ux2ooJ94CPm4
yTG/0aPIebNQsLP8LEpa2wad2WJfIeFgjEHranWIzhzapGgwyf2Iu9Sz3L8ljiz2
2HixHpI2es3IqgLyRsTBo2/EdbvMJWlFwiESe1UQIW6ObKNnVabIHUAxZgOlj59o
JhPOzTBG+Ma2fLs+ZFBV88cpKdctFQ==
=+Gr2
-----END PGP PUBLIC KEY BLOCK-----
54 changes: 54 additions & 0 deletions el7/yum.repos.d/linux/amd64/CentOS-Base.repo
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centos-sclo-rh]
name=CentOS-$releasever - SCLo rh
baseurl=https://vault.centos.org/centos/$releasever/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-sclo]
name=CentOS-$releasever - SCLo sclo
baseurl=https://vault.centos.org/centos/$releasever/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
28 changes: 28 additions & 0 deletions el7/yum.repos.d/linux/amd64/CentOS-CR.repo
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# CentOS-CR.repo
#
# The Continuous Release ( CR ) repository contains rpms that are due in the next
# release for a specific CentOS Version ( eg. next release in CentOS-7 ); these rpms
# are far less tested, with no integration checking or update path testing having
# taken place. They are still built from the upstream sources, but might not map
# to an exact upstream distro release.
#
# These packages are made available soon after they are built, for people willing
# to test their environments, provide feedback on content for the next release, and
# for people looking for early-access to next release content.
#
# The CR repo is shipped in a disabled state by default; its important that users
# understand the implications of turning this on.
#
# NOTE: We do not use a mirrorlist for the CR repos, to ensure content is available
# to everyone as soon as possible, and not need to wait for the external
# mirror network to seed first. However, many local mirrors will carry CR repos
# and if desired you can use one of these local mirrors by editing the baseurl
# line in the repo config below.
#

[cr]
name=CentOS-$releasever - cr
baseurl=https://vault.centos.org/centos/$releasever/cr/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
21 changes: 21 additions & 0 deletions el7/yum.repos.d/linux/amd64/CentOS-Media.repo
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-7. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c7-media [command]

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
42 changes: 42 additions & 0 deletions el7/yum.repos.d/linux/amd64/CentOS-Sources.repo
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# CentOS-Sources.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base-source]
name=CentOS-$releasever - Base Sources
baseurl=https://vault.centos.org/centos/$releasever/os/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates-source]
name=CentOS-$releasever - Updates Sources
baseurl=https://vault.centos.org/centos/$releasever/updates/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras-source]
name=CentOS-$releasever - Extras Sources
baseurl=https://vault.centos.org/centos/$releasever/extras/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus-source]
name=CentOS-$releasever - Plus Sources
baseurl=https://vault.centos.org/centos/$releasever/centosplus/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Loading
Loading