From 6e6ac67b3d178a496a17093dc73480dc143a723a Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 13 Jan 2026 13:57:37 -0500 Subject: [PATCH] Provide some build assets Provide some dockerfiles for creating build containers --- build/arm/el10/Dockerfile | 8 +++++++ build/arm/el10/buildpackages.sh | 6 ++++++ build/arm/el10/rpmmacro | 3 +++ build/arm/el8/Dockerfile | 8 +++++++ build/arm/el8/buildpackages.sh | 6 ++++++ build/arm/el8/rpmmacro | 2 ++ build/arm/el9/Dockerfile | 10 +++++++++ build/arm/el9/buildpackages.sh | 6 ++++++ build/arm/el9/rpmmacro | 2 ++ build/arm/noble/Dockerfile | 12 +++++++++++ build/arm/noble/buildapt.sh | 21 ++++++++++++++++++ build/arm/noble/distributions.tmpl | 7 ++++++ build/arm/noble/stdeb.patch | 34 ++++++++++++++++++++++++++++++ build/buildarm | 9 ++++++++ 14 files changed, 134 insertions(+) create mode 100644 build/arm/el10/Dockerfile create mode 100644 build/arm/el10/buildpackages.sh create mode 100644 build/arm/el10/rpmmacro create mode 100644 build/arm/el8/Dockerfile create mode 100644 build/arm/el8/buildpackages.sh create mode 100644 build/arm/el8/rpmmacro create mode 100644 build/arm/el9/Dockerfile create mode 100644 build/arm/el9/buildpackages.sh create mode 100644 build/arm/el9/rpmmacro create mode 100644 build/arm/noble/Dockerfile create mode 100644 build/arm/noble/buildapt.sh create mode 100644 build/arm/noble/distributions.tmpl create mode 100644 build/arm/noble/stdeb.patch create mode 100644 build/buildarm diff --git a/build/arm/el10/Dockerfile b/build/arm/el10/Dockerfile new file mode 100644 index 00000000..41e1732a --- /dev/null +++ b/build/arm/el10/Dockerfile @@ -0,0 +1,8 @@ +FROM almalinux:10 +RUN ["yum", "-y","update"] +RUN ["yum", "-y","install","gcc","make","rpm-build","python3-devel","python3-setuptools","createrepo","python3", "perl", "perl-DBI", "perl-JSON", "perl-XML-LibXML", "pinentry-tty", "rpm-sign", "git", "golang"] +ADD rpmmacro /root/.rpmmacros +ADD buildpackages.sh /bin/ +#VOLUME ["/rpms", "/srpms"] +CMD ["/bin/bash","/bin/buildpackages.sh"] + diff --git a/build/arm/el10/buildpackages.sh b/build/arm/el10/buildpackages.sh new file mode 100644 index 00000000..94a90f41 --- /dev/null +++ b/build/arm/el10/buildpackages.sh @@ -0,0 +1,6 @@ +for package in /srpms/*; do + rpmbuild --rebuild $package +done +find ~/rpmbuild/RPMS -type f -exec cp {} /rpms/ \; + + diff --git a/build/arm/el10/rpmmacro b/build/arm/el10/rpmmacro new file mode 100644 index 00000000..ebef7c8c --- /dev/null +++ b/build/arm/el10/rpmmacro @@ -0,0 +1,3 @@ +%_gpg_digest_algo sha256 +%_gpg_name Lenovo Scalable Infrastructure + diff --git a/build/arm/el8/Dockerfile b/build/arm/el8/Dockerfile new file mode 100644 index 00000000..e12c1715 --- /dev/null +++ b/build/arm/el8/Dockerfile @@ -0,0 +1,8 @@ +FROM almalinux:8 +RUN ["yum", "-y","update"] +RUN ["yum", "-y","install","gcc","make","rpm-build","python3-devel","python3-setuptools","createrepo","python3", "perl", "perl-DBI", "perl-JSON", "perl-Net-DNS", "perl-DB_File", "perl-XML-LibXML", "rpm-sign", "git", "fuse-devel","libcurl-devel"] +ADD rpmmacro /root/.rpmmacros +ADD buildpackages.sh /bin/ +#VOLUME ["/rpms", "/srpms"] +CMD ["/bin/bash","/bin/buildpackages.sh"] + diff --git a/build/arm/el8/buildpackages.sh b/build/arm/el8/buildpackages.sh new file mode 100644 index 00000000..c5d65c9a --- /dev/null +++ b/build/arm/el8/buildpackages.sh @@ -0,0 +1,6 @@ +#!/bin/bash +for package in /srpms/*; do + rpmbuild --rebuild $package +done +find ~/rpmbuild/RPMS -type f -exec cp {} /rpms/ \; + diff --git a/build/arm/el8/rpmmacro b/build/arm/el8/rpmmacro new file mode 100644 index 00000000..e7b23afb --- /dev/null +++ b/build/arm/el8/rpmmacro @@ -0,0 +1,2 @@ +%_gpg_digest_algo sha256 +%_gpg_name Lenovo Scalable Infrastructure diff --git a/build/arm/el9/Dockerfile b/build/arm/el9/Dockerfile new file mode 100644 index 00000000..9637dd46 --- /dev/null +++ b/build/arm/el9/Dockerfile @@ -0,0 +1,10 @@ +FROM almalinux:9 +RUN ["yum", "-y","update"] +RUN ["yum", "-y","install","gcc","make","rpm-build","python3-devel","python3-setuptools","createrepo","python3", "perl", "perl-DBI", "perl-JSON", "perl-Net-DNS", "perl-DB_File", "perl-XML-LibXML", "pinentry-tty", "rpm-sign", "epel-release", "git"] +RUN ["crb", "enable"] +RUN ["yum", "-y","install","fuse-devel","libcurl-devel"] +ADD rpmmacro /root/.rpmmacros +ADD buildpackages.sh /bin/ +#VOLUME ["/rpms", "/srpms"] +CMD ["/bin/bash","/bin/buildpackages.sh"] + diff --git a/build/arm/el9/buildpackages.sh b/build/arm/el9/buildpackages.sh new file mode 100644 index 00000000..c5d65c9a --- /dev/null +++ b/build/arm/el9/buildpackages.sh @@ -0,0 +1,6 @@ +#!/bin/bash +for package in /srpms/*; do + rpmbuild --rebuild $package +done +find ~/rpmbuild/RPMS -type f -exec cp {} /rpms/ \; + diff --git a/build/arm/el9/rpmmacro b/build/arm/el9/rpmmacro new file mode 100644 index 00000000..e7b23afb --- /dev/null +++ b/build/arm/el9/rpmmacro @@ -0,0 +1,2 @@ +%_gpg_digest_algo sha256 +%_gpg_name Lenovo Scalable Infrastructure diff --git a/build/arm/noble/Dockerfile b/build/arm/noble/Dockerfile new file mode 100644 index 00000000..e145de1f --- /dev/null +++ b/build/arm/noble/Dockerfile @@ -0,0 +1,12 @@ +FROM ubuntu:noble +ADD stdeb.patch /tmp/ +ADD buildapt.sh /bin/ +ADD distributions.tmpl /bin/ +RUN ["apt-get", "update"] +RUN ["apt-get", "install", "-y", "reprepro", "python3-stdeb", "gnupg-agent", "devscripts", "debhelper", "libsoap-lite-perl", "libdbi-perl", "quilt", "git", "python3-pyparsing", "python3-dnspython", "python3-eventlet", "python3-netifaces", "python3-paramiko", "dh-python", "libjson-perl", "ronn", "alien", "gcc", "make"] +RUN ["mkdir", "-p", "/sources/git/"] +RUN ["mkdir", "-p", "/debs/"] +RUN ["mkdir", "-p", "/apt/"] +RUN ["bash", "-c", "patch -p1 < /tmp/stdeb.patch"] +CMD ["/bin/bash", "/bin/buildapt.sh"] + diff --git a/build/arm/noble/buildapt.sh b/build/arm/noble/buildapt.sh new file mode 100644 index 00000000..600e832c --- /dev/null +++ b/build/arm/noble/buildapt.sh @@ -0,0 +1,21 @@ +#cp -a /sources/git /tmp +for builder in $(find /sources/git -name builddeb); do + cd $(dirname $builder) + ./builddeb /debs/ +done +cp /prebuilt/* /debs/ +cp /osd/*.deb /debs/ +mkdir -p /apt/conf/ +CODENAME=$(grep VERSION_CODENAME= /etc/os-release | sed -e 's/.*=//') +if [ -z "$CODENAME" ]; then + CODENAME=$(grep VERSION= /etc/os-release | sed -e 's/.*(//' -e 's/).*//') +fi +if ! grep $CODENAME /apt/conf/distributions; then + sed -e s/#CODENAME#/$CODENAME/ /bin/distributions.tmpl >> /apt/conf/distributions +fi +cd /apt/ +reprepro includedeb $CODENAME /debs/*.deb +for dsc in /debs/*.dsc; do + reprepro includedsc $CODENAME $dsc +done + diff --git a/build/arm/noble/distributions.tmpl b/build/arm/noble/distributions.tmpl new file mode 100644 index 00000000..b2000a43 --- /dev/null +++ b/build/arm/noble/distributions.tmpl @@ -0,0 +1,7 @@ +Origin: Lenovo HPC Packages +Label: Lenovo HPC Packages +Codename: #CODENAME# +Architectures: amd64 source +Components: main +Description: Lenovo HPC Packages + diff --git a/build/arm/noble/stdeb.patch b/build/arm/noble/stdeb.patch new file mode 100644 index 00000000..0eab2038 --- /dev/null +++ b/build/arm/noble/stdeb.patch @@ -0,0 +1,34 @@ +diff -urN t/usr/lib/python3/dist-packages/stdeb/cli_runner.py t.patch/usr/lib/python3/dist-packages/stdeb/cli_runner.py +--- t/usr/lib/python3/dist-packages/stdeb/cli_runner.py 2024-06-11 18:30:13.930328999 +0000 ++++ t.patch/usr/lib/python3/dist-packages/stdeb/cli_runner.py 2024-06-11 18:32:05.392731405 +0000 +@@ -8,7 +8,7 @@ + from ConfigParser import SafeConfigParser # noqa: F401 + except ImportError: + # python 3.x +- from configparser import SafeConfigParser # noqa: F401 ++ from configparser import ConfigParser # noqa: F401 + from distutils.util import strtobool + from distutils.fancy_getopt import FancyGetopt, translate_longopt + from stdeb.util import stdeb_cmdline_opts, stdeb_cmd_bool_opts +diff -urN t/usr/lib/python3/dist-packages/stdeb/util.py t.patch/usr/lib/python3/dist-packages/stdeb/util.py +--- t/usr/lib/python3/dist-packages/stdeb/util.py 2024-06-11 18:32:53.864776149 +0000 ++++ t.patch/usr/lib/python3/dist-packages/stdeb/util.py 2024-06-11 18:33:02.063952870 +0000 +@@ -730,7 +730,7 @@ + example. + """ + +- cfg = ConfigParser.SafeConfigParser() ++ cfg = ConfigParser.ConfigParser() + cfg.read(cfg_files) + if cfg.has_section(module_name): + section_items = cfg.items(module_name) +@@ -801,7 +801,7 @@ + if len(cfg_files): + check_cfg_files(cfg_files, module_name) + +- cfg = ConfigParser.SafeConfigParser(cfg_defaults) ++ cfg = ConfigParser.ConfigParser(cfg_defaults) + for cfg_file in cfg_files: + with codecs.open(cfg_file, mode='r', encoding='utf-8') as fd: + cfg.readfp(fd) + diff --git a/build/buildarm b/build/buildarm new file mode 100644 index 00000000..73793eea --- /dev/null +++ b/build/buildarm @@ -0,0 +1,9 @@ +cd ~/confluent +git pull +rm ~/rpmbuild/RPMS/noarch/*osdeploy* +rm ~/rpmbuild/SRPMS/*osdeploy* +sh confluent_osdeploy/buildrpm-aarch64 +mkdir -p $HOME/el9/ +mkdir -p $HOME/el10/ +podman run --rm -it -v $HOME:/build el9build bash /build/confluent/confluent_vtbufferd/buildrpm /build/el9/ +