From ea0ddeb236f0cd4edf8d731a5bbaaf1e4552fb3b Mon Sep 17 00:00:00 2001
From: Louis Maillard <louis.maillard@savoirfairelinux.com>
Date: Wed, 23 Oct 2024 09:53:37 -0400
Subject: [PATCH] packaging: add ubuntu 24.10 build

Building dhtnet for ubuntu 24.10 require the addition of libzstd for
compilation to work (linker require it).

Change-Id: I2168a84ee9fde3dc21925f000d5f136ef76fb207
---
 extras/packaging/Jenkinsfile                  |  2 +-
 extras/packaging/build_packages.sh            | 15 +++++++-
 .../gnu-linux/ubuntu_24.10.Dockerfile         | 35 +++++++++++++++++++
 3 files changed, 50 insertions(+), 2 deletions(-)
 create mode 100644 extras/packaging/gnu-linux/ubuntu_24.10.Dockerfile

diff --git a/extras/packaging/Jenkinsfile b/extras/packaging/Jenkinsfile
index 2252cc6..a5fe296 100644
--- a/extras/packaging/Jenkinsfile
+++ b/extras/packaging/Jenkinsfile
@@ -98,7 +98,7 @@ pipeline {
                 axes {
                     axis {
                         name 'TARGET'
-                        values 'ubuntu_22.04', 'ubuntu_24.04', 'debian_12', 'fedora_39', 'fedora_40'/*, 'almalinux_9'*/
+                        values 'ubuntu_22.04', 'ubuntu_24.04', 'ubuntu_24.10', 'debian_12', 'fedora_39', 'fedora_40'/*, 'almalinux_9'*/
                     }
                 }
                 stages {
diff --git a/extras/packaging/build_packages.sh b/extras/packaging/build_packages.sh
index b23ab98..86622aa 100755
--- a/extras/packaging/build_packages.sh
+++ b/extras/packaging/build_packages.sh
@@ -24,6 +24,7 @@ build_ubuntu=false
 build_ubuntu20_04=false
 build_ubuntu22_04=false
 build_ubuntu24_04=false
+build_ubuntu24_10=false
 build_debian=false
 build_debian10=false
 build_debian11=false
@@ -46,7 +47,14 @@ parse_args() {
             -u22 | -u22.04 | --ubuntu22.04 )    build_ubuntu22_04=true
                                                 build_ubuntu=true
                                                 ;;
-            -u24 | -u24.04 | --ubuntu24.04 )    build_ubuntu24_04=true
+            -u24.04 | --ubuntu24.04 )           build_ubuntu24_04=true
+                                                build_ubuntu=true
+                                                ;;
+            -u24.10 | --ubuntu24.10 )           build_ubuntu24_10=true
+                                                build_ubuntu=true
+                                                ;;
+            -u24 )                              build_ubuntu24_04=true
+                                                build_ubuntu24_10=true
                                                 build_ubuntu=true
                                                 ;;
             -d | --debian )                     build_debian=true
@@ -77,6 +85,7 @@ parse_args() {
                                                 # not working: build_ubuntu20=true
                                                 build_ubuntu22_04=true
                                                 build_ubuntu24_04=true
+                                                build_ubuntu24_10=true
                                                 build_debian=true
                                                 # not working: build_debian10=true
                                                 # not working: build_debian11=true
@@ -148,6 +157,10 @@ build_target() {
 }
 
 # build Ubuntu package (deb-*)
+if [ "$build_ubuntu24_10" == true ]; then
+    build_target "ubuntu_24.10"
+fi
+
 if [ "$build_ubuntu24_04" == true ]; then
     build_target "ubuntu_24.04"
 fi
diff --git a/extras/packaging/gnu-linux/ubuntu_24.10.Dockerfile b/extras/packaging/gnu-linux/ubuntu_24.10.Dockerfile
new file mode 100644
index 0000000..c27dace
--- /dev/null
+++ b/extras/packaging/gnu-linux/ubuntu_24.10.Dockerfile
@@ -0,0 +1,35 @@
+FROM ubuntu:24.10
+
+WORKDIR /build
+
+ENV EMAIL="contact@savoirfairelinux.com"
+ENV DEBFULLNAME="Savoir-faire Linux"
+
+RUN apt-get update && \
+    echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+    apt-get install -y \
+        dialog apt-utils make devscripts build-essential debmake lintian \
+    && apt-get clean && \
+    mkdir -p /build/artifacts
+
+RUN apt-get update && apt-get install -y \
+        build-essential pkg-config cmake dpkg-dev gcc g++ git wget \
+        libtool autotools-dev autoconf automake sbuild autopkgtest debhelper debhelper-compat \
+        cython3 python3-dev python3-setuptools python3-build python3-virtualenv \
+        libncurses5-dev libreadline-dev nettle-dev libcppunit-dev \
+        libgnutls28-dev libuv1-dev libjsoncpp-dev libargon2-dev libunistring-dev \
+        libssl-dev libfmt-dev libasio-dev libmsgpack-dev libyaml-cpp-dev \
+        libupnp-dev libnatpmp-dev \
+        systemd libzstd-dev\
+    && apt-get clean && rm -rf /var/lib/apt/lists/* /var/cache/apt/*
+
+ARG PKG_NAME
+COPY deb-${PKG_NAME}.tar.gz /build/${PKG_NAME}.tar.gz
+
+CMD tar -xzf ${PKG_NAME}.tar.gz && \
+    cd ${PKG_NAME} && \
+    debmake -b "dhtnet:bin" -y && \
+    debuild && \
+    cd .. && \
+    rm -Rf ${PKG_NAME} ${PKG_NAME}.tar.gz && \
+    cp /build/*.deb /build/artifacts/
-- 
GitLab