summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2025-12-23 14:49:23 +0000
committerGitHub <noreply@github.com>2025-12-23 14:49:23 +0000
commit29d6efe3c6127feb60f7d3ce4cc082599ef5db70 (patch)
treea0ff589b060ce06714b388123b9585c9c2ce9c29
parent1c2682dddb93127e6a786879c8d847e34945bc66 (diff)
parentced455d432c716cd4f619bddf7cc7db2b5357d47 (diff)
downloadvyos-build-29d6efe3c6127feb60f7d3ce4cc082599ef5db70.tar.gz
vyos-build-29d6efe3c6127feb60f7d3ce4cc082599ef5db70.zip
Merge pull request #1080 from sarthurdev/kea_build
kea: T8092: Build kea from source
-rw-r--r--.github/workflows/trigger_rebuild_packages.yml6
-rw-r--r--data/architectures/amd64.toml5
-rw-r--r--data/architectures/arm64.toml5
-rw-r--r--docker/Dockerfile6
-rw-r--r--scripts/package-build/isc-kea/.gitignore2
l---------scripts/package-build/isc-kea/build.py1
-rwxr-xr-xscripts/package-build/isc-kea/build.sh30
-rw-r--r--scripts/package-build/isc-kea/package.toml5
8 files changed, 50 insertions, 10 deletions
diff --git a/.github/workflows/trigger_rebuild_packages.yml b/.github/workflows/trigger_rebuild_packages.yml
index ddd404ba..0c390b32 100644
--- a/.github/workflows/trigger_rebuild_packages.yml
+++ b/.github/workflows/trigger_rebuild_packages.yml
@@ -49,6 +49,8 @@ jobs:
- 'scripts/package-build/hsflowd/**'
isc-dhcp:
- 'scripts/package-build/isc-dhcp/**'
+ isc-kea:
+ - 'scripts/package-build/isc-kea/**'
keepalived:
- 'scripts/package-build/keepalived/**'
libnss-mapuser:
@@ -167,6 +169,10 @@ jobs:
trigger_build "isc-dhcp"
fi
+ if [ "${{ steps.changes.outputs.isc-kea }}" == "true" ]; then
+ trigger_build "isc-kea"
+ fi
+
if [ "${{ steps.changes.outputs.keepalived }}" == "true" ]; then
trigger_build "keepalived"
fi
diff --git a/data/architectures/amd64.toml b/data/architectures/amd64.toml
index 2e83358f..8676ad2f 100644
--- a/data/architectures/amd64.toml
+++ b/data/architectures/amd64.toml
@@ -19,8 +19,3 @@ packages = [
[additional_repositories.zabbix]
url = "https://repo.zabbix.com/zabbix/6.0/debian"
-
-[additional_repositories.kea]
- architecture = "amd64"
- url = "https://dl.cloudsmith.io/public/isc/kea-3-0/deb/debian"
- distribution = "bookworm"
diff --git a/data/architectures/arm64.toml b/data/architectures/arm64.toml
index 9ed68bbb..0447d846 100644
--- a/data/architectures/arm64.toml
+++ b/data/architectures/arm64.toml
@@ -12,8 +12,3 @@ squashfs_compression_type = "xz -b 256k -always-use-fragments -no-recovery"
[additional_repositories.zabbix]
url = "https://repo.zabbix.com/zabbix/6.0/debian-arm64"
-
-[additional_repositories.kea]
- architecture = "arm64"
- url = "https://dl.cloudsmith.io/public/isc/kea-3-0/deb/debian"
- distribution = "bookworm"
diff --git a/docker/Dockerfile b/docker/Dockerfile
index b8493f05..6d913222 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -331,6 +331,12 @@ RUN git clone -b 4.4.6 https://github.com/perfsonar/i2util.git /tmp/i2util && \
dpkg-buildpackage -uc -us -tc -b && \
dpkg -i /tmp/*i2util*_$(dpkg-architecture -qDEB_HOST_ARCH).deb
+# Package needed for building Kea
+RUN echo "deb http://deb.debian.org/debian bookworm-backports main" \
+ > /etc/apt/sources.list.d/bookworm-backports.list \
+ && apt-get update \
+ && apt install -y -t bookworm-backports meson
+
# Creating image for embedded systems needs this utilities to prepare a image file
RUN apt-get update && apt-get install -y \
parted \
diff --git a/scripts/package-build/isc-kea/.gitignore b/scripts/package-build/isc-kea/.gitignore
new file mode 100644
index 00000000..14a6344c
--- /dev/null
+++ b/scripts/package-build/isc-kea/.gitignore
@@ -0,0 +1,2 @@
+isc-kea/
+kea-packaging/
diff --git a/scripts/package-build/isc-kea/build.py b/scripts/package-build/isc-kea/build.py
new file mode 120000
index 00000000..3c76af73
--- /dev/null
+++ b/scripts/package-build/isc-kea/build.py
@@ -0,0 +1 @@
+../build.py \ No newline at end of file
diff --git a/scripts/package-build/isc-kea/build.sh b/scripts/package-build/isc-kea/build.sh
new file mode 100755
index 00000000..b30804f5
--- /dev/null
+++ b/scripts/package-build/isc-kea/build.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+SRC="isc-kea"
+
+# Fetch debian packaging repo
+git clone https://gitlab.isc.org/isc-projects/kea-packaging.git
+rm -rf isc-kea/debian
+cp -r kea-packaging/debian isc-kea/
+rm -rf kea-packaging
+
+cd $SRC
+
+# Determine version from git tag
+TAG=$(git describe --tags --exact-match)
+VERSION="${TAG#Kea-}"
+
+# Modify debian files, add version, remove docs/manpages and unnecessary packages
+sed -i "s/{VERSION}/$VERSION/g" debian/changelog
+sed -i 's/{ISC_VERSION}/vyos/g' debian/changelog
+sed -i 's/{ISC_VERSION}/vyos/g' debian/rules
+sed -i '/meson compile -C build doc/d' debian/rules
+sed -Ei '/^Package: isc-kea-(premium|subscriber)/,/^$/d' debian/control
+sed -i '/usr\/share\/man/d' debian/*.install
+sed -i '/usr\/share\/doc\/kea/d' debian/*.install
+echo "usr/share/doc/kea/*" >> debian/not-installed
+echo "usr/share/kea/meson-info/*" >> debian/not-installed
+rm -rf debian/isc-kea-doc.install debian/isc-kea-subscriber* debian/isc-kea-premium*
+
+sudo mk-build-deps --install --tool 'apt-get --yes --no-install-recommends'
+dpkg-buildpackage -uc -us -tc -b
diff --git a/scripts/package-build/isc-kea/package.toml b/scripts/package-build/isc-kea/package.toml
new file mode 100644
index 00000000..19924493
--- /dev/null
+++ b/scripts/package-build/isc-kea/package.toml
@@ -0,0 +1,5 @@
+[[packages]]
+name = "isc-kea"
+commit_id = "Kea-3.0.2"
+scm_url = "https://gitlab.isc.org/isc-projects/kea.git"
+build_cmd = "cd ..; ./build.sh"