aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-05-20 05:03:23 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-05-20 05:03:23 +0300
commita83b727a134d1262a1b91aa7fb0154330ca50f5f (patch)
treeb35f706700620f079ba856db08544fd283d5b154
parent90d530fe1067ce9080c58fddc936904db90e361e (diff)
downloadapplause2-a83b727a134d1262a1b91aa7fb0154330ca50f5f.tar.gz
added AppImage via pkg2appimage
* Docker turned out to be impractical since you cannot connect a dockerized Jack client to a Jack server on the host as library versions would have to match exactly. Neither did I get Netjack to run in Docker. Also when running in Docker, it would be tricky to get gnuplot to work (and Tcl/Tk support in the future). Especially the Jupyter notebook packaging would have been a lot easier, though with Docker. * AppImage will automatically avoid bundling libjack and require a compatible libjack on the host instead. * Using pkg2appimage ensures we can pull in dependencies as Debian packages. * This version of AppImage.yml does not contain Jupyter notebooks.
-rw-r--r--AppImage.yml53
-rw-r--r--README.md2
-rw-r--r--TODO7
3 files changed, 56 insertions, 6 deletions
diff --git a/AppImage.yml b/AppImage.yml
new file mode 100644
index 0000000..c6c6ab5
--- /dev/null
+++ b/AppImage.yml
@@ -0,0 +1,53 @@
+app: applause
+
+ingredients:
+ packages:
+ # The binary links against these:
+ - libreadline
+ # libjack must be used from the host system...
+ #- libjack-jackd2
+ #- libluajit-5.1
+ # Required only at runtime.
+ # Development packages are not strictly required, but they provide the plain *.so symlinks
+ # that LuaJIT FFI expects:
+ - libsndfile1-dev
+ - libasound2-dev
+ - feedgnuplot
+ # FIXME: No matter what, we cannot get rid of gnuplot-qt, pulled in by feedgnuplot...
+ #- gnuplot-x11
+ dist: focal
+ sources:
+ - deb http://archive.ubuntu.com/ubuntu/ focal main universe
+ script:
+ - wget -O applause.tar.gz -c "https://github.com/rhaberkorn/applause2/archive/refs/heads/master.tar.gz"
+ # Will leave an "applause2-master" directory.
+ - tar xzf applause.tar.gz
+ # NOTE: The LuaJIT from Ubuntu is too outdated.
+ - wget -O luajit.tar.gz -c "https://github.com/LuaJIT/LuaJIT/archive/refs/heads/v2.1.tar.gz"
+ # Will leave a "LuaJIT-2.1" directory.
+ - tar xzf luajit.tar.gz
+
+script:
+ # Install build-time dependencies
+ - sudo apt-get install -y build-essential lua5.1 libreadline-dev libjack-jackd2-dev
+ - make -C ../LuaJIT-2.1 DESTDIR=`pwd` PREFIX=/usr install
+ - make -C ../applause2-master LUA_CFLAGS="-I`pwd`/usr/include/luajit-2.1" LUA_LDFLAGS="-L`pwd`/usr/lib -lluajit-5.1"
+ - cp -r ../applause2-master ./usr/share/applause
+ # Will be required by the ILua fork
+ - ln -s ../share/applause/ilua-wrapper.sh ./usr/bin/lua
+ - ln -s ../share/applause/ilua-wrapper.sh ./usr/bin/applause
+ # Some thinning - remove unneeded files
+ - find . -name "*.a" -delete
+ - rm -rf ./usr/share/doc
+# - cp ../applause2-master/applause.desktop .
+ - cat >applause.desktop <<EOF
+ - [Desktop Entry]
+ - Type=Application
+ - Categories=Audio
+ - Icon=applause
+ - Name=Applause (CLI)
+ - Exec=applause %u
+ - Terminal=true
+ - EOF
+ # FIXME: Add a real icon.
+ - touch applause.svg
diff --git a/README.md b/README.md
index abd8bde..b3247c1 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ You have to manually build and install LuaJIT v2.1:
Furthermore, install the following dependencies (Ubuntu):
sudo apt-get install build-essential libreadline-dev libjack-jackd2-dev \
- libsndfile1 libasound2 feedgnuplot
+ libsndfile1-dev libasound2-dev feedgnuplot
On FreeBSD, you will need the following packages/ports:
diff --git a/TODO b/TODO
index 0e4e2f9..cfe8451 100644
--- a/TODO
+++ b/TODO
@@ -53,11 +53,6 @@
Can we change what index.html points to?
Alternatively, we could make a simple browser-side forwarding.
* Allow limited operation without a running Jack server.
-* Package everything including Jupyter in Docker container.
- This requires mounting via -v /dev/shm:/dev/shm:rw -u $(id -u):$(id -g).
- Ideally, this will work with X11 windows as well.
- Perhaps bundle https://github.com/Xpra-org/xpra/.
- The HTML client might even allow integrating Tk windows into Jupyter cells?
* Widget toolkit integration.
We could optionally integrate Gtk (lgi) or Tcl and drive their main loops from Stream:iter() or Stream:play()
whenever their modules are loaded.
@@ -73,6 +68,8 @@
runs in its own process (no need to drive the main loop), can potentially work with Broadway (Web)
backend that could be hacked into Jupyter as well.
On the other hand, to get values back into Lua, you will have to poll a TCP socket or FIFO anyway.
+ Perhaps bundle https://github.com/Xpra-org/xpra/.
+ The HTML client might even allow integrating Tk windows into Jupyter cells?
* Spectrogram output via ffmpeg.
This can be made to work in a window, Jupyter notebook and in the console.
Theoretically, we can even support realtime analysis and render into Kitty by piping into mpv.