From f022e02c38560f6a63a905b63d045454378aaa06 Mon Sep 17 00:00:00 2001 From: steffen Date: Thu, 9 Mar 2023 03:44:45 +0000 Subject: [PATCH] enable build for s390x architecture --- debs/Debian/s390x/Dockerfile | 25 +++++++++++++++++++++++++ debs/build.sh | 2 +- debs/generate_debian_package.sh | 9 +++++++-- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 debs/Debian/s390x/Dockerfile diff --git a/debs/Debian/s390x/Dockerfile b/debs/Debian/s390x/Dockerfile new file mode 100644 index 0000000000..3b63382755 --- /dev/null +++ b/debs/Debian/s390x/Dockerfile @@ -0,0 +1,25 @@ +FROM s390x/debian:10 + +ENV DEBIAN_FRONTEND noninteractive + +# Installing necessary packages +RUN apt-get update && apt-get install -y apt-utils + +RUN apt-get install -y --force-yes \ + curl gcc make sudo wget expect gnupg perl-base perl \ + build-essential procps gawk libsigsegv2 python3 cmake devscripts + +RUN apt-get install checkpolicy fontconfig-config fonts-dejavu-core gdal-data libaec0 libarmadillo9 libarpack2 libaudit-dev libauparse0 libblas3 libcap-ng-dev libcharls2 libdap25 libdapclient6v5 libdapserver7v5 libepsilon1 \ + libfontconfig1 libfreetype6 libfreexl1 libfyba0 libgdal20 libgeos-3.7.1 libgeos-c1v5 libgeotiff2 libgfortran5 libgif7 libhdf4-0-alt libhdf5-103 libimagequant0 libjbig0 libjpeg62-turbo libjson-c3 libkmlbase1 \ + libkmlconvenience1 libkmldom1 libkmlengine1 libkmlregionator1 libkmlxsd1 liblapack3 liblcms2-2 libminizip1 libnetcdf13 libnspr4 libnss3 libodbc1 libogdi3.2 libopenjp2-7 libpng16-16 libpoppler82 libpopt0 \ + libpq5 libproj13 libqhull7 libspatialite7 libsuperlu5 libsz2 libtiff5 liburiparser1 libwebp6 libwebpdemux2 libwebpmux3 libxerces-c3.2 odbcinst odbcinst1debian2 policycoreutils policycoreutils-dev \ + policycoreutils-python-utils poppler-data proj-bin proj-data python3-audit python3-decorator python3-gdal python3-ipy python3-networkx python3-numpy python3-olefile python3-pil python3-scipy python3-selinux \ + python3-semanage python3-sepolgen python3-sepolicy python3-setools python3-yaml selinux-basics selinux-policy-default selinux-policy-dev selinux-utils semodule-utils setools -y + +# Add the script to build the Debian package +ADD build.sh /usr/local/bin/build_package +RUN chmod +x /usr/local/bin/build_package + +# Set the entrypoint +ENTRYPOINT ["/usr/local/bin/build_package"] + diff --git a/debs/build.sh b/debs/build.sh index 4291313e50..b20450eeb6 100755 --- a/debs/build.sh +++ b/debs/build.sh @@ -105,7 +105,7 @@ mk-build-deps -ir -t "apt-get -o Debug::pkgProblemResolver=yes -y" # Build package if [[ "${architecture_target}" == "amd64" ]] || [[ "${architecture_target}" == "ppc64le" ]] || \ - [[ "${architecture_target}" == "arm64" ]]; then + [[ "${architecture_target}" == "arm64" ]] || [[ "${architecture_target}" == "s390x" ]]; then debuild --rootcmd=sudo -b -uc -us elif [[ "${architecture_target}" == "armhf" ]]; then linux32 debuild --rootcmd=sudo -b -uc -us diff --git a/debs/generate_debian_package.sh b/debs/generate_debian_package.sh index 6195db8ebb..b7128427cd 100755 --- a/debs/generate_debian_package.sh +++ b/debs/generate_debian_package.sh @@ -22,11 +22,13 @@ DEB_I386_BUILDER="deb_builder_i386" DEB_PPC64LE_BUILDER="deb_builder_ppc64le" DEB_ARM64_BUILDER="deb_builder_arm64" DEB_ARMHF_BUILDER="deb_builder_armhf" +DEB_S390X_BUILDER="deb_builder_s390x" DEB_AMD64_BUILDER_DOCKERFILE="${CURRENT_PATH}/Debian/amd64" DEB_I386_BUILDER_DOCKERFILE="${CURRENT_PATH}/Debian/i386" DEB_PPC64LE_BUILDER_DOCKERFILE="${CURRENT_PATH}/Debian/ppc64le" DEB_ARM64_BUILDER_DOCKERFILE="${CURRENT_PATH}/Debian/arm64" DEB_ARMHF_BUILDER_DOCKERFILE="${CURRENT_PATH}/Debian/armhf" +DEB_S390X_BUILDER_DOCKERFILE="${CURRENT_PATH}/Debian/s390x" CHECKSUMDIR="" CHECKSUM="no" PACKAGES_BRANCH="master" @@ -125,8 +127,11 @@ build() { elif [[ "${ARCHITECTURE}" = "armhf" ]]; then BUILD_NAME="${DEB_ARMHF_BUILDER}" FILE_PATH="${DEB_ARMHF_BUILDER_DOCKERFILE}" + elif [[ "${ARCHITECTURE}" = "s390x" ]]; then + BUILD_NAME="${DEB_S390X_BUILDER}" + FILE_PATH="${DEB_S390X_BUILDER_DOCKERFILE}" else - echo "Invalid architecture. Choose one of amd64/i386/ppc64le/arm64/arm32." + echo "Invalid architecture. Choose one of amd64/i386/ppc64le/arm64/arm32/s390x." return 1 fi build_deb ${BUILD_NAME} ${FILE_PATH} || return 1 @@ -144,7 +149,7 @@ help() { echo echo " -b, --branch [Required] Select Git branch [${BRANCH}]. By default: master." echo " -t, --target [Required] Target package to build: manager or agent." - echo " -a, --architecture [Optional] Target architecture of the package [amd64/i386/ppc64le/arm64/armhf]." + echo " -a, --architecture [Optional] Target architecture of the package [amd64/i386/ppc64le/arm64/armhf/s390x]." echo " -j, --jobs [Optional] Change number of parallel jobs when compiling the manager or agent. By default: 2." echo " -r, --revision [Optional] Package revision. By default: 1." echo " -s, --store [Optional] Set the destination path of package. By default, an output folder will be created."