diff options
Diffstat (limited to 'packaging')
-rw-r--r-- | packaging/ubuntu-jammy-docker/Dockerfile | 56 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/README | 19 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/anastasis-build.sh | 27 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/exchange-build.sh | 24 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/gnunet-build.sh | 29 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/gnunet-gtk-build.sh | 27 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/libeufin-build.sh | 22 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/mdb-build.sh | 22 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/merchant-build.sh | 24 | ||||
-rwxr-xr-x | packaging/ubuntu-jammy-docker/run.sh | 21 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/sync-build.sh | 27 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/taler.list | 1 | ||||
-rw-r--r-- | packaging/ubuntu-jammy-docker/wallet-build.sh | 32 |
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 ../../.. |