summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2024-04-09 13:34:15 +0200
committerChristian Grothoff <christian@grothoff.org>2024-04-09 13:34:15 +0200
commitdf5e262dd52b7ddc3989747e58067fb1f0f18814 (patch)
tree4619912a9ce1eecf136c57546b545cfcd248111a
parentebc46966b2b770aecc96b0ad5b11faded8d4fe7b (diff)
downloaddeployment-df5e262dd52b7ddc3989747e58067fb1f0f18814.tar.gz
deployment-df5e262dd52b7ddc3989747e58067fb1f0f18814.tar.bz2
deployment-df5e262dd52b7ddc3989747e58067fb1f0f18814.zip
prep for noble numbat
-rw-r--r--packaging/ubuntu-numbat-docker/Dockerfile53
-rw-r--r--packaging/ubuntu-numbat-docker/README16
-rw-r--r--packaging/ubuntu-numbat-docker/anastasis-build.sh27
-rw-r--r--packaging/ubuntu-numbat-docker/exchange-build.sh25
-rw-r--r--packaging/ubuntu-numbat-docker/gnunet-build.sh29
-rw-r--r--packaging/ubuntu-numbat-docker/gnunet-gtk-build.sh27
-rw-r--r--packaging/ubuntu-numbat-docker/libeufin-build.sh22
-rw-r--r--packaging/ubuntu-numbat-docker/mdb-build.sh22
-rw-r--r--packaging/ubuntu-numbat-docker/merchant-build.sh24
-rwxr-xr-xpackaging/ubuntu-numbat-docker/run.sh21
-rw-r--r--packaging/ubuntu-numbat-docker/sync-build.sh27
-rw-r--r--packaging/ubuntu-numbat-docker/wallet-build.sh28
12 files changed, 321 insertions, 0 deletions
diff --git a/packaging/ubuntu-numbat-docker/Dockerfile b/packaging/ubuntu-numbat-docker/Dockerfile
new file mode 100644
index 0000000..d59d238
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/Dockerfile
@@ -0,0 +1,53 @@
+FROM ubuntu:numbat
+# This file is in the public domain.
+#
+# Docker image to build Ubuntu packages of
+# GNUnet, GNU Taler and GNU Anastasis.
+#
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Install dependencies
+RUN apt-get update
+RUN apt-get -y upgrade
+RUN apt-get update
+RUN apt-get -y dist-upgrade
+RUN apt-get update
+RUN apt-get -y install build-essential zip jq python3 python3-pip nodejs npm autoconf automake gcc-12 make libtool libltdl-dev libmicrohttpd-dev libpq-dev libsqlite3-dev libunistring-dev libqrencode-dev libgcrypt-dev libsodium-dev libargon2-dev libjansson-dev recutils libgmp-dev texinfo pkgconf zlib1g-dev libopus-dev libextractor-dev libnss3-dev libcurl4-gnutls-dev autopoint libzbar-dev libmysqlclient-dev mandoc libpulse-dev libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libbluetooth-dev iptables miniupnpc libpng-dev python3-jinja2 doxygen libjose-dev iproute2 sudo wget zile libogg-dev gettext net-tools po-debconf debhelper-compat dbconfig-pgsql nginx libgtk-3-dev libgladeui-dev libmagic-dev policykit-1 libnfc-dev python3-click python3-requests python3-sphinx-rtd-theme openjdk-17-jdk pandoc groff
+RUN npm install -g node pnpm
+
+RUN pip install --break-system-packages sphinx_multiversion
+
+# ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache
+COPY gnunet-build.sh /root/
+RUN chmod +x /root/gnunet-build.sh
+RUN /root/gnunet-build.sh master
+
+COPY gnunet-gtk-build.sh /root/
+RUN chmod +x /root/gnunet-gtk-build.sh
+RUN /root/gnunet-gtk-build.sh master
+
+COPY exchange-build.sh /root/
+RUN chmod +x /root/exchange-build.sh
+RUN /root/exchange-build.sh master
+
+COPY merchant-build.sh /root/
+RUN chmod +x /root/merchant-build.sh
+RUN /root/merchant-build.sh master
+
+COPY sync-build.sh /root/
+RUN chmod +x /root/sync-build.sh
+RUN /root/sync-build.sh master
+
+COPY anastasis-build.sh /root/
+RUN chmod +x /root/anastasis-build.sh
+RUN /root/anastasis-build.sh master
+
+# No wallet on Jammy
+COPY wallet-build.sh /root/
+RUN chmod +x /root/wallet-build.sh
+RUN /root/wallet-build.sh master
+
+COPY libeufin-build.sh /root/
+RUN chmod +x /root/libeufin-build.sh
+RUN /root/libeufin-build.sh master
diff --git a/packaging/ubuntu-numbat-docker/README b/packaging/ubuntu-numbat-docker/README
new file mode 100644
index 0000000..0f8c821
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/README
@@ -0,0 +1,16 @@
+Scripts to build Ubuntu packages from source.
+
+
+TODO:
+- check build for warnings/missing dependencies
+ (espcially GNUnet!)
+- break up into separate build for GNUnet/Taler/Anastasis
+ => might be good to not run the entire pipeline only
+ because something changes in anastasis/wallet, as
+ that's not a good reason to re-build GNUnet ;-).
+- integrate with buildbot (integrationtests?)
+ to build-on-tag / build nightly and upload resulting
+ Deb packages to reprepro (fully automated for nightly,
+ but with explicit password-protected signature for tagged builds)
+- support other CPU architectures (by running in VM that emulates
+ other CPU architectures)
diff --git a/packaging/ubuntu-numbat-docker/anastasis-build.sh b/packaging/ubuntu-numbat-docker/anastasis-build.sh
new file mode 100644
index 0000000..24643e1
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/anastasis-build.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+
+mkdir -p /build/anastasis
+cd /build/anastasis
+
+# Fetch source
+rm -rf *
+
+for n in anastasis anastasis-gtk
+do
+ git clone git://git.taler.net/$n
+ cd $n
+ git checkout $1
+ ./bootstrap
+ dpkg-buildpackage -rfakeroot -b -uc -us
+ cd ..
+ dpkg -i *.deb
+done
+
+tar uvf ../packages.tgz *.deb
+
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/exchange-build.sh b/packaging/ubuntu-numbat-docker/exchange-build.sh
new file mode 100644
index 0000000..a94a003
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/exchange-build.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+mkdir -p /build/taler
+cd /build/taler
+
+export CC=gcc-12
+# Fetch source
+rm -rf *
+
+pip3 install --break-system-packages htmlark
+
+git clone git://git.taler.net/exchange
+cd exchange
+git checkout $1
+./bootstrap
+dpkg-buildpackage -rfakeroot -b -uc -us
+cd ..
+dpkg -i *.deb
+
+tar uvf ../packages.tgz *.deb
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/gnunet-build.sh b/packaging/ubuntu-numbat-docker/gnunet-build.sh
new file mode 100644
index 0000000..614c5e6
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/gnunet-build.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+
+mkdir -p /build/gnunet
+cd /build/gnunet
+
+# Fetch source
+rm -rf *
+
+pip3 install --break-system-packages sphinx-book-theme sphinx-multiversion
+
+for n in gnunet
+do
+ git clone git://git.gnunet.org/$n
+ cd $n
+ git checkout $1
+ ./bootstrap
+ dpkg-buildpackage -rfakeroot -b -uc -us
+ cd ..
+ dpkg -i *.deb
+done
+
+tar cvf ../packages.tgz *.deb
+
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/gnunet-gtk-build.sh b/packaging/ubuntu-numbat-docker/gnunet-gtk-build.sh
new file mode 100644
index 0000000..4414c3f
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/gnunet-gtk-build.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+
+mkdir -p /build/gnunet
+cd /build/gnunet
+
+# Fetch source
+rm -rf *
+
+for n in gnunet-gtk
+do
+ git clone git://git.gnunet.org/$n
+ cd $n
+ git checkout $1
+ ./bootstrap
+ dpkg-buildpackage -rfakeroot -b -uc -us
+ cd ..
+ dpkg -i *.deb
+done
+
+tar uvf ../packages.tgz *.deb
+
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/libeufin-build.sh b/packaging/ubuntu-numbat-docker/libeufin-build.sh
new file mode 100644
index 0000000..7229221
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/libeufin-build.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+mkdir -p /build/libeufin
+cd /build/libeufin
+
+# Fetch source
+rm -rf *
+git clone git://git.taler.net/libeufin
+cd libeufin
+git checkout $1
+./bootstrap
+./configure --prefix=/usr/local
+make deb
+cd ..
+dpkg -i *.deb
+
+tar uvf ../packages.tgz *.deb
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/mdb-build.sh b/packaging/ubuntu-numbat-docker/mdb-build.sh
new file mode 100644
index 0000000..d097240
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/mdb-build.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+mkdir -p /build/taler
+cd /build/taler
+
+# Fetch source
+rm -rf *
+
+git clone git://git.taler.net/taler-mdb
+cd taler-mdb
+git checkout $1
+./bootstrap
+dpkg-buildpackage -rfakeroot -b -uc -us
+cd ..
+dpkg -i *.deb
+
+tar uvf ../packages.tgz *.deb
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/merchant-build.sh b/packaging/ubuntu-numbat-docker/merchant-build.sh
new file mode 100644
index 0000000..24f5f9d
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/merchant-build.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+mkdir -p /build/taler
+cd /build/taler
+
+# Fetch source
+rm -rf *
+
+# pip3 install --break-system-packages htmlark
+
+git clone git://git.taler.net/merchant
+cd merchant
+git checkout $1
+./bootstrap
+dpkg-buildpackage -rfakeroot -b -uc -us
+cd ..
+dpkg -i *.deb
+
+tar uvf ../packages.tgz *.deb
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/run.sh b/packaging/ubuntu-numbat-docker/run.sh
new file mode 100755
index 0000000..a6df3f0
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/run.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+set -eu
+CONTAINER=$USER/debbuilder:latest
+docker build -t $CONTAINER .
+rm -rf dist
+mkdir dist
+docker run --read-only $CONTAINER sleep 100 &
+sleep 1
+docker container ls
+ID=`docker container ls | grep $CONTAINER | head -n1 | awk '{print $1}'`
+echo "Extracting files from $ID"
+docker cp "$ID:/build/packages.tgz" .
+echo "Stopping $CONTAINER ($ID)"
+docker container stop $ID
+echo "Removing $CONTAINER"
+docker container rm $ID
+docker image rm $USER/debbuilder
+cd dist
+tar xvf ../packages.tgz
+cd ..
+rm packages.tgz
diff --git a/packaging/ubuntu-numbat-docker/sync-build.sh b/packaging/ubuntu-numbat-docker/sync-build.sh
new file mode 100644
index 0000000..e38a0ee
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/sync-build.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+
+mkdir -p /build/sync
+cd /build/sync
+
+# Fetch source
+rm -rf *
+
+for n in sync
+do
+ git clone git://git.taler.net/$n
+ cd $n
+ git checkout $1
+ ./bootstrap
+ dpkg-buildpackage -rfakeroot -b -uc -us
+ cd ..
+ dpkg -i *.deb
+done
+
+tar uvf ../packages.tgz *.deb
+
+cd ..
diff --git a/packaging/ubuntu-numbat-docker/wallet-build.sh b/packaging/ubuntu-numbat-docker/wallet-build.sh
new file mode 100644
index 0000000..6d807be
--- /dev/null
+++ b/packaging/ubuntu-numbat-docker/wallet-build.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+# This file is in the public domain.
+# Helper script to build the latest DEB packages in the container.
+
+set -eu
+unset LD_LIBRARY_PATH
+
+mkdir -p /build/wallet
+cd /build/wallet
+
+# Fetch source
+rm -rf *
+git clone git://git.taler.net/wallet-core
+
+cd wallet-core
+git checkout $1
+./bootstrap
+
+cd packages/taler-wallet-cli
+
+dpkg-buildpackage -rfakeroot -b -uc -us
+
+cd ../taler-harness
+dpkg-buildpackage -rfakeroot -b -uc -us
+
+cd ../
+
+tar uvf ../../../packages.tgz *.deb