summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2023-09-13 12:17:57 +0200
committerChristian Grothoff <christian@grothoff.org>2023-09-13 12:18:02 +0200
commitc4b04b1d1f7af458b63548cf4566fb58bd45b9ce (patch)
tree66930cc044ddca92744d99dec89442773942cee0
parentdf45d99f956eb3e68b87cba72c7e9634f67b95dd (diff)
downloaddeployment-c4b04b1d1f7af458b63548cf4566fb58bd45b9ce.tar.gz
deployment-c4b04b1d1f7af458b63548cf4566fb58bd45b9ce.tar.bz2
deployment-c4b04b1d1f7af458b63548cf4566fb58bd45b9ce.zip
add jammy
-rw-r--r--packaging/ubuntu-jammy-docker/Dockerfile56
-rw-r--r--packaging/ubuntu-jammy-docker/README19
-rw-r--r--packaging/ubuntu-jammy-docker/anastasis-build.sh27
-rw-r--r--packaging/ubuntu-jammy-docker/exchange-build.sh24
-rw-r--r--packaging/ubuntu-jammy-docker/gnunet-build.sh29
-rw-r--r--packaging/ubuntu-jammy-docker/gnunet-gtk-build.sh27
-rw-r--r--packaging/ubuntu-jammy-docker/libeufin-build.sh22
-rw-r--r--packaging/ubuntu-jammy-docker/mdb-build.sh22
-rw-r--r--packaging/ubuntu-jammy-docker/merchant-build.sh24
-rwxr-xr-xpackaging/ubuntu-jammy-docker/run.sh21
-rw-r--r--packaging/ubuntu-jammy-docker/sync-build.sh27
-rw-r--r--packaging/ubuntu-jammy-docker/taler.list1
-rw-r--r--packaging/ubuntu-jammy-docker/wallet-build.sh32
13 files changed, 331 insertions, 0 deletions
diff --git a/packaging/ubuntu-jammy-docker/Dockerfile b/packaging/ubuntu-jammy-docker/Dockerfile
new file mode 100644
index 0000000..a4a309b
--- /dev/null
+++ b/packaging/ubuntu-jammy-docker/Dockerfile
@@ -0,0 +1,56 @@
+FROM ubuntu:jammy
+# This file is in the public domain.
+#
+# Docker image to build Ubuntu packages of
+# GNUnet, GNU Taler and GNU Anastasis.
+#
+# We need 'kinetic' for a reasonably recent NodeJS version.
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Install dependencies
+RUN apt-get update
+RUN apt-get -y upgrade
+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
+
+# For libeufin:
+RUN apt-get -y install openjdk-17-jdk
+# For wallet-core:
+RUN npm install -g node pnpm
+
+RUN apt-get update
+RUN apt-get -y upgrade
+RUN apt-get -y dist-upgrade
+
+# 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 libeufin-build.sh /root/
+RUN chmod +x /root/libeufin-build.sh
+RUN /root/libeufin-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
+
+#COPY wallet-build.sh /root/
+#RUN chmod +x /root/wallet-build.sh
+#RUN /root/wallet-build.sh master
diff --git a/packaging/ubuntu-jammy-docker/README b/packaging/ubuntu-jammy-docker/README
new file mode 100644
index 0000000..f4a4824
--- /dev/null
+++ b/packaging/ubuntu-jammy-docker/README
@@ -0,0 +1,19 @@
+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)
+- eventually: try to improve scripts to support older
+ Debian versions
+
diff --git a/packaging/ubuntu-jammy-docker/anastasis-build.sh b/packaging/ubuntu-jammy-docker/anastasis-build.sh
new file mode 100644
index 0000000..24643e1
--- /dev/null
+++ b/packaging/ubuntu-jammy-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-jammy-docker/exchange-build.sh b/packaging/ubuntu-jammy-docker/exchange-build.sh
new file mode 100644
index 0000000..36b9ede
--- /dev/null
+++ b/packaging/ubuntu-jammy-docker/exchange-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 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-jammy-docker/gnunet-build.sh b/packaging/ubuntu-jammy-docker/gnunet-build.sh
new file mode 100644
index 0000000..896bdcf
--- /dev/null
+++ b/packaging/ubuntu-jammy-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 sphinx-book-theme
+
+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-jammy-docker/gnunet-gtk-build.sh b/packaging/ubuntu-jammy-docker/gnunet-gtk-build.sh
new file mode 100644
index 0000000..4414c3f
--- /dev/null
+++ b/packaging/ubuntu-jammy-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-jammy-docker/libeufin-build.sh b/packaging/ubuntu-jammy-docker/libeufin-build.sh
new file mode 100644
index 0000000..7229221
--- /dev/null
+++ b/packaging/ubuntu-jammy-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-jammy-docker/mdb-build.sh b/packaging/ubuntu-jammy-docker/mdb-build.sh
new file mode 100644
index 0000000..d097240
--- /dev/null
+++ b/packaging/ubuntu-jammy-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-jammy-docker/merchant-build.sh b/packaging/ubuntu-jammy-docker/merchant-build.sh
new file mode 100644
index 0000000..5625198
--- /dev/null
+++ b/packaging/ubuntu-jammy-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 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-jammy-docker/run.sh b/packaging/ubuntu-jammy-docker/run.sh
new file mode 100755
index 0000000..a6df3f0
--- /dev/null
+++ b/packaging/ubuntu-jammy-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-jammy-docker/sync-build.sh b/packaging/ubuntu-jammy-docker/sync-build.sh
new file mode 100644
index 0000000..e38a0ee
--- /dev/null
+++ b/packaging/ubuntu-jammy-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-jammy-docker/taler.list b/packaging/ubuntu-jammy-docker/taler.list
new file mode 100644
index 0000000..29cea42
--- /dev/null
+++ b/packaging/ubuntu-jammy-docker/taler.list
@@ -0,0 +1 @@
+deb https://deb.taler.net/apt/ubuntu jammy main
diff --git a/packaging/ubuntu-jammy-docker/wallet-build.sh b/packaging/ubuntu-jammy-docker/wallet-build.sh
new file mode 100644
index 0000000..bf3fa80
--- /dev/null
+++ b/packaging/ubuntu-jammy-docker/wallet-build.sh
@@ -0,0 +1,32 @@
+#!/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
+./configure --prefix=/usr
+make
+cd packages/taler-wallet-cli
+./configure --prefix=/usr
+make install
+dpkg-buildpackage -rfakeroot -b -uc -us
+cd ../taler-harness
+./configure --prefix=/usr
+make install
+dpkg-buildpackage -rfakeroot -b -uc -us
+cd ..
+
+tar uvf ../../../packages.tgz *.deb
+
+cd ../../..