# HG changeset patch # User Chris Cannam # Date 1530623607 -3600 # Node ID 6ec18c2566e76c70f65760961fcf9434ddaa0f02 # Parent 4ec4c1b9d367275520eafa100f498c6450d401f7 Attempt to thread the appimage build/test together diff -r 4ec4c1b9d367 -r 6ec18c2566e7 .hgignore --- a/.hgignore Tue Jul 03 14:12:26 2018 +0100 +++ b/.hgignore Tue Jul 03 14:13:27 2018 +0100 @@ -53,3 +53,5 @@ glob:.repoint* build_win32 build_win64 +*.AppImage +*.AppDir diff -r 4ec4c1b9d367 -r 6ec18c2566e7 deploy/linux/build-and-test-appimage.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/linux/build-and-test-appimage.sh Tue Jul 03 14:13:27 2018 +0100 @@ -0,0 +1,29 @@ +#!/bin/bash +# +# Docker required + +set -eu + +current=$(hg id | awk '{ print $1; }') + +case "$current" in + *+) echo "ERROR: Current working copy has been modified - unmodified copy required so we know we can check it out separately and obtain the same contents"; exit 2;; + *);; +esac + +echo +echo -n "Building appimage from revision $current..." + +dockerdir=deploy/linux/docker + +cat "$dockerdir"/Dockerfile_appimage.in | \ + perl -p -e "s/\[\[REVISION\]\]/$current/g" > \ + "$dockerdir"/Dockerfile_appimage.gen + +cat "$dockerdir"/Dockerfile_test_appimage.in | \ + perl -p -e "s/\[\[REVISION\]\]/$current/g" > \ + "$dockerdir"/Dockerfile_test_appimage.gen + +"$dockerdir"/build.sh appimage + +sudo docker build -f "$dockerdir"/Dockerfile_test_appimage.gen "$dockerdir" diff -r 4ec4c1b9d367 -r 6ec18c2566e7 deploy/linux/docker/Dockerfile_appimage.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/linux/docker/Dockerfile_appimage.in Tue Jul 03 14:13:27 2018 +0100 @@ -0,0 +1,59 @@ +# This pulls the latest versions of capnp & SV from repos - so you +# will need to defeat the Docker cache by destroying the container +# each time you want to update it +# +FROM ubuntu:14.04 +MAINTAINER Chris Cannam +RUN apt-get update && \ + apt-get install -y \ + software-properties-common \ + build-essential \ + libbz2-dev \ + libfftw3-dev \ + libfishsound1-dev \ + libid3tag0-dev \ + liblo-dev \ + liblrdf0-dev \ + libmad0-dev \ + liboggz2-dev \ + libpulse-dev \ + libasound2-dev \ + libsamplerate-dev \ + libsndfile-dev \ + libsord-dev \ + libxml2-utils \ + libgl1-mesa-dev \ + raptor-utils \ + librubberband-dev \ + git \ + mercurial \ + curl wget \ + mlton \ + autoconf automake libtool lintian + +# NB we do not install portaudio because it comes with a dependency on +# the JACK library which we don't want to bundle and can't assume +# people will have. Instead we rely on Pulse and (dynamically-loaded) +# JACK support + +RUN apt-add-repository -y ppa:beineri/opt-qt-5.10.1-trusty +RUN apt-get update && \ + apt-get install -y \ + qt510base \ + qt510svg +RUN apt-get clean && rm -rf /var/lib/apt/lists/* +RUN locale-gen en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 +RUN hg clone -r[[REVISION]] https://code.soundsoftware.ac.uk/hg/sonic-visualiser +RUN git clone https://github.com/sandstorm-io/capnproto +WORKDIR capnproto/c++ +RUN ./setup-autotools.sh && autoreconf -i && ./configure && make && make install +WORKDIR ../../sonic-visualiser +ENV QTDIR /opt/qt510 +ENV PATH /opt/qt510/bin:$PATH +RUN ./configure +RUN make -j3 +RUN deploy/linux/deploy-appimage.sh +RUN tar cvf output.tar *.AppImage && cp output.tar .. diff -r 4ec4c1b9d367 -r 6ec18c2566e7 deploy/linux/docker/Dockerfile_appimage_tip --- a/deploy/linux/docker/Dockerfile_appimage_tip Tue Jul 03 14:12:26 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -# This pulls the latest versions of capnp & SV from repos - so you -# will need to defeat the Docker cache by destroying the container -# each time you want to update it -# -FROM ubuntu:14.04 -MAINTAINER Chris Cannam -RUN apt-get update && \ - apt-get install -y \ - software-properties-common \ - build-essential \ - libbz2-dev \ - libfftw3-dev \ - libfishsound1-dev \ - libid3tag0-dev \ - liblo-dev \ - liblrdf0-dev \ - libmad0-dev \ - liboggz2-dev \ - libpulse-dev \ - libasound2-dev \ - libsamplerate-dev \ - libsndfile-dev \ - libsord-dev \ - libxml2-utils \ - libgl1-mesa-dev \ - raptor-utils \ - librubberband-dev \ - git \ - mercurial \ - curl wget \ - mlton \ - autoconf automake libtool lintian - -# NB we do not install portaudio because it comes with a dependency on -# the JACK library which we don't want to bundle and can't assume -# people will have. Instead we rely on Pulse and (dynamically-loaded) -# JACK support - -RUN apt-add-repository -y ppa:beineri/opt-qt-5.10.1-trusty -RUN apt-get update && \ - apt-get install -y \ - qt510base \ - qt510svg -RUN apt-get clean && rm -rf /var/lib/apt/lists/* -RUN locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 -RUN git clone https://github.com/sandstorm-io/capnproto -WORKDIR capnproto/c++ -RUN ./setup-autotools.sh && autoreconf -i && ./configure && make && make install -WORKDIR ../.. -RUN hg clone https://code.soundsoftware.ac.uk/hg/sonic-visualiser -WORKDIR sonic-visualiser -ENV QTDIR /opt/qt510 -ENV PATH /opt/qt510/bin:$PATH -RUN ./configure -RUN make -j3 -RUN deploy/linux/deploy-appimage.sh -RUN tar cvf output.tar *.AppImage && cp output.tar .. diff -r 4ec4c1b9d367 -r 6ec18c2566e7 deploy/linux/docker/Dockerfile_test_appimage.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/linux/docker/Dockerfile_test_appimage.in Tue Jul 03 14:13:27 2018 +0100 @@ -0,0 +1,8 @@ +FROM centos:7 +RUN yum update +RUN yum -y groupinstall "X Window System" +RUN yum -y install wget +ADD output/SonicVisualiser-[[REVISION]]-x86_64.AppImage SV.AppImage +RUN chmod +x SV.AppImage +RUN ./SV.AppImage --appimage-extract +RUN ./squashfs-root/AppRun