]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
CI: No more APKG in Debian packaging
authorMaria Matejka <mq@ucw.cz>
Sat, 6 Dec 2025 21:43:54 +0000 (22:43 +0100)
committerMaria Matejka <mq@ucw.cz>
Tue, 9 Dec 2025 21:15:47 +0000 (22:15 +0100)
All of that can be handled by a little Bash script.

21 files changed:
.gitlab-ci.yml
distro/pkg/deb/changelog
distro/pkg/deb/control
distro/pkg/deb/watch
misc/docker/debian-10-amd64/Dockerfile
misc/docker/debian-10-i386/Dockerfile
misc/docker/debian-11-amd64/Dockerfile
misc/docker/debian-11-i386/Dockerfile
misc/docker/debian-12-amd64/Dockerfile
misc/docker/debian-12-i386/Dockerfile
misc/docker/debian-13-amd64/Dockerfile
misc/docker/debian-13-i386/Dockerfile
misc/docker/debian-testing-amd64/Dockerfile
misc/docker/debian-testing-i386/Dockerfile
misc/docker/docbuilder/Dockerfile
misc/docker/ubuntu-18.04-amd64/Dockerfile
misc/docker/ubuntu-20.04-amd64/Dockerfile
misc/docker/ubuntu-22.04-amd64/Dockerfile
misc/docker/ubuntu-24.04-amd64/Dockerfile
misc/gitlab/template.yml.j2
tools/make-debian [new file with mode: 0755]

index 654a869f72a12e2bfcaa7d17381830c9d50322ec..3355bee6029277ca8f9645b24b227678090dba69 100644 (file)
@@ -699,10 +699,8 @@ build-release:
   <<: *test-job
   stage: pkg
   script:
-    # create venv only if it's installed
-    - if python3 -m venv venv; then . venv/bin/activate; fi
-    - pip3 install apkg
-    - apkg build -a bird-$(cat VERSION)*.tar.gz
+    - if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then export BRANCH=mergerequest-$CI_MERGE_REQUEST_IID; else export BRANCH=$CI_COMMIT_BRANCH; fi
+    - tools/make-debian -BS
   artifacts:
     paths:
       - pkg/pkgs/*
@@ -712,15 +710,8 @@ build-release:
   <<: *test-job
   stage: pkg
   script:
-    # create venv only if it's installed
-    - if python3 -m venv venv; then . venv/bin/activate; fi
-    # install older version of bs4 that does not use python version >= 3.6
-    # apkg depends on bs4, and unless we want to backport python 3.6
-    # to ancient distros, we need to do this workaround
-    - pip3 install beautifulsoup4==4.11.2
-    - pip3 install markupsafe==2.0.1
-    - pip3 install apkg
-    - apkg build -a bird-$(cat VERSION)*.tar.gz
+    - if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then export BRANCH=mergerequest-$CI_MERGE_REQUEST_IID; else export BRANCH=$CI_COMMIT_BRANCH; fi
+    - tools/make-debian -BS
   artifacts:
     paths:
       - pkg/pkgs/*
index 360d97813e67e698ab062f2e0c101e9d64ef99be..2570ee9620b4d4d75921614bfcf72cc31c3641e1 100644 (file)
@@ -2,4 +2,4 @@ bird3 ({{ version }}-cznic.{{ release }}) unstable; urgency=medium
 
   * upstream package
 
- -- Jakub Ružička <jakub.ruzicka@nic.cz>  {{ now }}
+ -- Maria Matějka <maria.matejka@nic.cz>  {{ now }}
index 5e8378834c01dacd1eea9a666e0b254059c30bff..8ef017191d81e9ff8bffc20747a7494a91efe223 100644 (file)
@@ -17,7 +17,7 @@ Build-Depends-Indep:
  linuxdoc-tools-latex,
  opensp,
  texlive-latex-extra,
-Maintainer: Jakub Ružička <jakub.ruzicka@nic.cz>
+Maintainer: Maria Matejka <maria.matejka@nic.cz>
 Standards-Version: 4.7.0
 Vcs-Browser: https://salsa.debian.org/debian/bird3
 Vcs-Git: https://salsa.debian.org/debian/bird3.git
index cec2d6646e49e30b399a5d2368a082733db061de..9dd6ae0824deb4e59047b16c84a9eee2f762af3c 100644 (file)
@@ -1,2 +1,2 @@
 version=4
-https://bird.network.cz/download/bird-(2\.[\d.]+).tar.gz
+https://bird.nic.cz/get-bird/ /download/bird-(2.17.\d+).tar.gz
index 1e281a0d1c2c6755ac7283e78158e39ff4948f52..9e11c53af72bebc197a551148e852bf18c00b511 100644 (file)
@@ -20,6 +20,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        quilt \
        python3 \
        python3-pip \
index e3c164e8c522da7213196f71b51fdc9b070cbe55..638df920d44711ce1f86f0bcae43f68d3439ce57 100644 (file)
@@ -20,6 +20,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 94f2a54de7842111624302b03440db9159bebd06..2a5fa3a800c52e770d6536e9ff496bcb8bc7cc3f 100644 (file)
@@ -20,6 +20,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 1fcbc37d7f26cffcefaf5bd73f21227c6c3d1545..0878eb7d8d510e41ffb2e9fc0e10344fc8ecb4af 100644 (file)
@@ -20,6 +20,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index cdee03f999b08e6a106149d72aa4ba10e3e1372e..34f2c40d8e604c770208c5f0bb02e73d21f245a8 100644 (file)
@@ -20,6 +20,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 906f9fa5c9d406f3dd16e58547db52049c596a87..5f6b56d601d4d4d56fd41c43347cfbb24a8db69d 100644 (file)
@@ -20,6 +20,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index d90883fcb25a0c58c616b5e2ce148eda3adbc79b..9b6db59aef419beca15d3559e509eb9d54761286 100644 (file)
@@ -21,6 +21,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 52ee361d454706b9f3fbdc714b035d6c1552708a..d1c54b08f53ee1d07b4029fe4f6bb929dfb238f1 100644 (file)
@@ -21,6 +21,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 61ebd0d7cf4a341628666c352f2eb7f13691cbce..625f4774a7fea53992bb6c4b494d135e4599327c 100644 (file)
@@ -21,6 +21,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 4c66aa340d706f25a2c12209d15553814aa9c1d7..fa8c0deaedf9de829fcc865b8737a3f8555c2a90 100644 (file)
@@ -21,6 +21,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 464ec3030fa7a343eb79eaf85e2b987af3b6bbf1..ff758808ea6bc83ca50fa9c06fa6e51de4a301dc 100644 (file)
@@ -1,5 +1,5 @@
 # bump this to recreate the image: 2
-FROM debian:bookworm-slim
+FROM debian:trixie-slim
 ENV DEBIAN_FRONTEND=noninteractive
 RUN apt-get -y update
 RUN apt-get -y upgrade
@@ -12,7 +12,7 @@ RUN apt-get -y --no-install-recommends install \
        pandoc \
        ncurses-dev \
        libreadline-dev \
-       libssh-gcrypt-dev \
+       libssh-dev \
        linuxdoc-tools-latex \
        texlive-latex-extra \
        groff \
@@ -22,6 +22,7 @@ RUN apt-get -y --no-install-recommends install \
 RUN apt-get -y --no-install-recommends install \
        dpkg-dev \
        debhelper \
+       distro-info-data \
        apt-utils \
        quilt \
        python3 \
index 92a804378c5f4b930f497d666b21487860eec08f..9a60f527936530acdcb9d4d5b8234dcacd3718e4 100644 (file)
@@ -21,6 +21,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 13e411c225822303b2a19ca0c9dfb5da59d3cfe1..2870603b761bf81cb9dc718f3ad66009e962f2f6 100644 (file)
@@ -21,6 +21,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 03db8c9499790937fa68d7c14d892ae55f597b3d..fcee7e7b1ec198c1dfc477817519a94a6fed3cb5 100644 (file)
@@ -21,6 +21,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index ee317196bd419f1da17a3c30398b2deaad184e44..ed17073931c61ddf533d1804a9068afec79ce541 100644 (file)
@@ -22,6 +22,7 @@ RUN apt-get -y --no-install-recommends install \
        git \
        dpkg-dev \
        debhelper \
+       lsb-release \
        apt-utils \
        quilt \
        python3 \
index 2b696f89e33abacff28fa25b98d0ad735ab9c968..d2a12b56b1a15f8d08ae5f32b23af0b8b07d6c82 100644 (file)
@@ -239,10 +239,8 @@ build-release:
   <<: *test-job
   stage: pkg
   script:
-    # create venv only if it's installed
-    - if python3 -m venv venv; then . venv/bin/activate; fi
-    - pip3 install apkg
-    - apkg build -a bird-$(cat VERSION)*.tar.gz
+    - if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then export BRANCH=mergerequest-$CI_MERGE_REQUEST_IID; else export BRANCH=$CI_COMMIT_BRANCH; fi
+    - tools/make-debian -BS
   artifacts:
     paths:
       - pkg/pkgs/*
@@ -252,15 +250,8 @@ build-release:
   <<: *test-job
   stage: pkg
   script:
-    # create venv only if it's installed
-    - if python3 -m venv venv; then . venv/bin/activate; fi
-    # install older version of bs4 that does not use python version >= 3.6
-    # apkg depends on bs4, and unless we want to backport python 3.6
-    # to ancient distros, we need to do this workaround
-    - pip3 install beautifulsoup4==4.11.2
-    - pip3 install markupsafe==2.0.1
-    - pip3 install apkg
-    - apkg build -a bird-$(cat VERSION)*.tar.gz
+    - if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then export BRANCH=mergerequest-$CI_MERGE_REQUEST_IID; else export BRANCH=$CI_COMMIT_BRANCH; fi
+    - tools/make-debian -BS
   artifacts:
     paths:
       - pkg/pkgs/*
diff --git a/tools/make-debian b/tools/make-debian
new file mode 100755 (executable)
index 0000000..d91cd70
--- /dev/null
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+# Run this script after tools/make-archive
+
+set -e
+
+BUILD=false
+SOURCE=false
+
+for OPT in $(getopt -o BS -n "$0" -- "$@"); do
+  case "$OPT" in
+    '-B')
+      BUILD=true
+      continue
+      ;;
+    '-S')
+      SOURCE=true
+      continue
+      ;;
+    '--')
+      continue
+      ;;
+    -*)
+      echo "Unknown option $OPT"
+      exit 2
+      ;;
+    *)
+      echo "Invalid argument $OPT"
+      exit 2
+      ;;
+  esac
+done 
+
+PKGVERSION=$(tools/version)
+TMPDIR=$(mktemp -dp .)
+DEBPKGSTEM=bird${PKGVERSION:0:1}_$PKGVERSION
+DEBIAN_RELEASE=$(lsb_release -cs)
+ORIG=$(pwd)
+DIRTARGET=$(lsb_release -is)-$(lsb_release -rs | tr '/' '-')
+DIRTARGET=${DIRTARGET,,}
+SRCTARGET=${ORIG}/pkg/srcpkgs/$DIRTARGET/$DEBPKGSTEM-cznic.1/
+BINTARGET=${ORIG}/pkg/pkgs/$DIRTARGET/$DEBPKGSTEM-cznic.1/
+
+echo "Packaging BIRD $PKGVERSION for $(lsb_release -is) $(lsb_release -rs) $(lsb_release -cs) in $TMPDIR"
+
+lsb_release -a
+
+mkdir -p $SRCTARGET $BINTARGET
+
+pushd $TMPDIR 
+  ln ${ORIG}/bird-$PKGVERSION.tar.gz $DEBPKGSTEM.orig.tar.gz
+  tar xf $DEBPKGSTEM.orig.tar.gz
+  pushd bird-$PKGVERSION
+    # Local-fix version
+    cp -r ${ORIG}/distro/pkg/deb debian
+    sed -i "s#{{ version }}#$PKGVERSION#;s#{{ release }}#1~$DEBIAN_RELEASE#;s#{{ now }}#$(date -R)#;" debian/changelog
+
+    # Prepare files for dput
+    if $SOURCE; then
+      dpkg-buildpackage -S -sa -d -us -uc
+      mv ../bird?_*-cznic* ${SRCTARGET}/
+      ln ../bird?_*.orig.tar.gz ${SRCTARGET}/
+    fi
+
+    # Build locally
+    if $BUILD; then
+      dpkg-buildpackage -B -sa -d -us -uc
+      mv ../bird?{,-dbgsym}_*-cznic* ${BINTARGET}/
+      ln ../bird?_*.orig.tar.gz ${BINTARGET}/
+    fi
+  popd
+popd
+
+rm -rf $TMPDIR