21 Commits
Author SHA1 Message Date
CDrummond f438239983 Update. 2025-09-25 21:17:50 +01:00
CDrummond c1ba064f48 Fix messages. 2025-09-25 21:14:06 +01:00
CDrummond 0c4335d02d Re-enable all builds but don't use docker for Linux x86/ffmpeg - as
can't get tnis to build!
2025-09-25 20:31:42 +01:00
CDrummond fe10956341 Use musl-cross toolchain?? 2025-09-25 19:28:49 +01:00
CDrummond e860048ff0 Set clang path 2025-09-25 19:21:52 +01:00
CDrummond 1428751b9e ...and others 2025-09-25 19:17:20 +01:00
CDrummond e546793864 clang 2025-09-25 19:12:46 +01:00
CDrummond e0ffdedced /bin/ash? 2025-09-25 19:08:24 +01:00
CDrummond 81f29db352 Use alpine? 2025-09-25 18:02:44 +01:00
CDrummond 35ec7695e5 Renable... 2025-09-25 17:41:55 +01:00
CDrummond 6f1abef1ad Can't get musl to work... 2025-09-25 17:35:25 +01:00
CDrummond 5168723d55 clang required? 2025-09-25 17:24:08 +01:00
CDrummond ee3b27d959 Hmmm... 2025-09-25 17:18:06 +01:00
CDrummond 0e5f4fc1d1 Hacky way to find info 2025-09-25 17:14:36 +01:00
CDrummond beb7155ae6 Symlink musl-ar??? 2025-09-25 16:58:46 +01:00
CDrummond 84766d3e4f Create dest dir! 2025-09-25 16:52:51 +01:00
CDrummond 5ec6a30104 Next try? 2025-09-25 16:44:23 +01:00
CDrummond fa61d5a6c3 Install musl! 2025-09-25 16:26:23 +01:00
CDrummond d06263efb0 Fix builds? 2025-09-25 16:16:49 +01:00
CDrummond d7da5dcd95 Use docker for Linxu builds and link to musl 2025-09-24 22:18:46 +01:00
CDrummond 849fbe92fa Use serde_json to encode message strings to be JSON safe. 2025-09-24 21:06:04 +01:00
18 changed files with 153 additions and 201 deletions

No files matched your search

+30 -24
View File
@@ -12,20 +12,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v1
- name: Packages
run: sudo apt-get update && sudo apt-get install build-essential yasm -y
- name: Build
- name: Build x86
run: |
cargo build --release --features=symphonia
strip target/release/bliss-analyser
mkdir releases
cp target/release/bliss-analyser releases/bliss-analyser
cp UserGuide.md releases/README.md
cp LICENSE releases/
cp configs/linux.ini releases/config.ini
docker build -t bliss-analyser-x86-symphonia - < docker/Dockerfile_x86_symphonia
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-x86-symphonia
- name: Upload artifacts
uses: actions/upload-artifact@v4
@@ -33,6 +25,23 @@ jobs:
name: bliss-analyser-linux-x86-symphonia
path: releases/
# Linux_x86_ffmpeg:
# runs-on: ubuntu-latest
#
# steps:
# - name: Checkout
# uses: actions/checkout@v1
#
# - name: Build x86
# run: |
# docker build -t bliss-analyser-x86-ffmpeg - < docker/Dockerfile_x86_ffmpeg
# docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-x86-ffmpeg
#
# - name: Upload artifacts
# uses: actions/upload-artifact@v4
# with:
# name: bliss-analyser-linux-x86-ffmpeg
# path: releases/
Linux_x86_ffmpeg:
runs-on: ubuntu-22.04
@@ -60,18 +69,17 @@ jobs:
name: bliss-analyser-linux-x86-ffmpeg
path: releases/
Linux_arm_symphonia:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v1
- name: Build
- name: Build ARM
run: |
docker build --pull --no-cache -t bliss-analyser-cross - < docker/Dockerfile_Bullseye_symphonia
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross
docker build -t bliss-analyser-arm-symphonia - < docker/Dockerfile_arm_symphonia
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-arm-symphonia
- name: Upload artifacts
uses: actions/upload-artifact@v4
@@ -79,18 +87,17 @@ jobs:
name: bliss-analyser-linux-arm-symphonia
path: releases/
Linux_arm_ffmpeg:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v1
- name: Build ARM static-ffmpeg on Debian
- name: Build ARM
run: |
docker build -t bliss-analyser-cross - < docker/Dockerfile_Bullseye_static
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross
docker build -t bliss-analyser-arm-ffmpeg - < docker/Dockerfile_arm_ffmpeg
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-arm-ffmpeg
- name: Upload artifacts
uses: actions/upload-artifact@v4
@@ -98,7 +105,6 @@ jobs:
name: bliss-analyser-linux-arm-ffmpeg
path: releases/
macOS_symphonia:
runs-on: macos-13
Generated
+6 -3
View File
@@ -201,7 +201,7 @@ dependencies = [
[[package]]
name = "bliss-analyser"
version = "0.5.0"
version = "0.5.1"
dependencies = [
"anyhow",
"argparse",
@@ -221,6 +221,7 @@ dependencies = [
"rcue",
"regex",
"rusqlite",
"serde_json",
"substring",
"ureq",
"which 7.0.2",
@@ -1479,13 +1480,15 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.109"
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9"
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
"serde_core",
]
[[package]]
+2 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "bliss-analyser"
version = "0.5.0"
version = "0.5.1"
authors = ["Craig Drummond <craig.p.drummond@gmail.com>"]
edition = "2021"
license = "GPL-3.0-only"
@@ -33,6 +33,7 @@ which = { version = "7.0.2", optional = true }
rcue = { version = "0.1.3", optional = true }
hhmmss = { version = "0.1.0", optional = true }
ctrlc = "3.4"
serde_json = "1.0.145"
[features]
libav = ["bliss-audio/ffmpeg"]
+4
View File
@@ -1,3 +1,7 @@
0.5.1
-----
1. Use serde_json to build JSONRPC notification strings.
0.5.0
-----
1. Update to bliss-rs 0.11.1
-38
View File
@@ -1,38 +0,0 @@
# Cross compilation environment for bliss-analyser
FROM debian:bookworm
RUN dpkg --add-architecture arm64 && \
dpkg --add-architecture armhf
RUN apt-get update
RUN apt-get install -y curl git yasm
RUN apt-get install -y build-essential clang
RUN apt-get install -y crossbuild-essential-armhf crossbuild-essential-arm64
RUN apt-get install -y pkg-config:arm64 \
libavutil-dev:arm64 libavcodec-dev:arm64 libavformat-dev:arm64 \
libavfilter-dev:arm64 libavdevice-dev:arm64 libswresample-dev:arm64 libfftw3-dev:arm64
RUN apt-get install -y pkg-config:armhf \
libavutil-dev:armhf libavcodec-dev:armhf libavformat-dev:armhf \
libavfilter-dev:armhf libavdevice-dev:armhf libswresample-dev:armhf libfftw3-dev:armhf
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH="/root/.cargo/bin/:${PATH}"
RUN rustup target add aarch64-unknown-linux-gnu && \
rustup target add arm-unknown-linux-gnueabihf
RUN mkdir /.cargo && \
echo '[target.aarch64-unknown-linux-gnu]\nlinker = "aarch64-linux-gnu-gcc"' > /.cargo/config && \
echo '[target.arm-unknown-linux-gnueabihf]\nlinker = "arm-linux-gnueabihf-gcc"' >> /.cargo/config
RUN mkdir /build
ENV CARGO_TARGET_DIR /build
ENV CARGO_HOME /build/cache
RUN mkdir /src
WORKDIR /src
CMD ["/src/docker/docker-build-arm-libav.sh"]
-36
View File
@@ -1,36 +0,0 @@
# Cross compilation environment for bliss-anlyser
FROM debian:bullseye
RUN dpkg --add-architecture arm64 && \
dpkg --add-architecture armhf
RUN apt-get update
RUN apt-get install -y curl git pkg-config yasm
RUN apt-get install -y build-essential clang
RUN apt-get install -y crossbuild-essential-armhf crossbuild-essential-arm64
RUN apt-get install -y libavutil-dev:arm64 libavcodec-dev:arm64 libavformat-dev:arm64 \
libavfilter-dev:arm64 libavdevice-dev:arm64 libswresample-dev:arm64 libfftw3-dev:arm64
RUN apt-get install -y libavutil-dev:armhf libavcodec-dev:armhf libavformat-dev:armhf \
libavfilter-dev:armhf libavdevice-dev:armhf libswresample-dev:armhf libfftw3-dev:armhf
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH="/root/.cargo/bin/:${PATH}"
RUN rustup target add aarch64-unknown-linux-gnu && \
rustup target add arm-unknown-linux-gnueabihf
RUN mkdir /.cargo && \
echo '[target.aarch64-unknown-linux-gnu]\nlinker = "aarch64-linux-gnu-gcc"' > /.cargo/config && \
echo '[target.arm-unknown-linux-gnueabihf]\nlinker = "arm-linux-gnueabihf-gcc"' >> /.cargo/config
RUN mkdir /build
ENV CARGO_TARGET_DIR /build
ENV CARGO_HOME /build/cache
RUN mkdir /src
WORKDIR /src
CMD ["/src/docker/docker-build-arm-staticlibav.sh"]
-25
View File
@@ -1,25 +0,0 @@
# Cross compilation environment for bliss-anlyser
FROM ubuntu:24.04
RUN apt-get update
RUN apt-get install -y curl git pkg-config
RUN apt-get install -y build-essential yasm clang
RUN apt-get install -y libavutil-dev libavcodec-dev libavformat-dev \
libavfilter-dev libavdevice-dev libswresample-dev libfftw3-dev \
ffmpeg
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH="/root/.cargo/bin/:${PATH}"
RUN mkdir /build
ENV CARGO_TARGET_DIR /build
ENV CARGO_HOME /build/cache
RUN mkdir /src
WORKDIR /src
CMD ["/src/docker/docker-build-x86-libav.sh"]
@@ -1,6 +1,4 @@
# Cross compilation environment for bliss-anlyser
FROM debian:bullseye
FROM debian:bookworm
RUN dpkg --add-architecture arm64 && \
dpkg --add-architecture armhf
@@ -10,12 +8,6 @@ RUN apt-get install -y curl git pkg-config yasm
RUN apt-get install -y build-essential clang
RUN apt-get install -y crossbuild-essential-armhf crossbuild-essential-arm64
RUN apt-get install -y libavutil-dev:arm64 libavcodec-dev:arm64 libavformat-dev:arm64 \
libavfilter-dev:arm64 libavdevice-dev:arm64 libswresample-dev:arm64 libfftw3-dev:arm64
RUN apt-get install -y libavutil-dev:armhf libavcodec-dev:armhf libavformat-dev:armhf \
libavfilter-dev:armhf libavdevice-dev:armhf libswresample-dev:armhf libfftw3-dev:armhf
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH="/root/.cargo/bin/:${PATH}"
RUN rustup target add aarch64-unknown-linux-gnu && \
@@ -32,5 +24,5 @@ ENV CARGO_HOME /build/cache
RUN mkdir /src
WORKDIR /src
CMD ["/src/docker/docker-build-arm-libav.sh"]
CMD ["/src/docker/docker-build-arm-ffmpeg.sh"]
@@ -1,6 +1,4 @@
# Cross compilation environment for bliss-anlyser
FROM debian:bullseye
FROM debian:bookworm
RUN dpkg --add-architecture arm64 && \
dpkg --add-architecture armhf
+30
View File
@@ -0,0 +1,30 @@
FROM debian:bookworm
RUN dpkg --add-architecture amd64
RUN apt-get update
RUN apt-get install -y curl git pkg-config yasm
RUN apt-get install -y build-essential clang
# Download and extract musl-cross toolchain for x86_64
RUN curl -LO https://musl.cc/x86_64-linux-musl-cross.tgz \
&& tar -xzf x86_64-linux-musl-cross.tgz \
&& mv x86_64-linux-musl-cross /opt/musl-toolchain \
&& rm x86_64-linux-musl-cross.tgz
ENV PATH="/opt/musl-toolchain/bin:/root/.cargo/bin:${PATH}"
# Optionally, still install musl-tools (for musl-gcc wrapper, not strictly needed now)
RUN apt-get install -y musl-tools musl-dev musl
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
RUN rustup target add x86_64-unknown-linux-musl
RUN mkdir /build
ENV CARGO_TARGET_DIR /build
ENV CARGO_HOME /build/cache
RUN mkdir /src
WORKDIR /src
CMD ["/src/docker/docker-build-x86-ffmpeg.sh"]
+22
View File
@@ -0,0 +1,22 @@
FROM debian:bookworm
RUN dpkg --add-architecture amd64
RUN apt-get update
RUN apt-get install -y curl git pkg-config yasm
RUN apt-get install -y build-essential clang
RUN apt-get install -y musl-tools musl-dev musl
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH="/root/.cargo/bin/:${PATH}"
RUN rustup target add x86_64-unknown-linux-musl
RUN mkdir /build
ENV CARGO_TARGET_DIR /build
ENV CARGO_HOME /build/cache
RUN mkdir /src
WORKDIR /src
CMD ["/src/docker/docker-build-x86-symphonia.sh"]
@@ -11,13 +11,11 @@ rm -rf $DESTDIR/bin/*
function build {
echo Building for $1 to $3...
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
export RUST_BACKTRACE=full
export PKG_CONFIG=${1//unknown-/}-pkg-config
BINDGEN_EXTRA_CLANG_ARGS="--sysroot /usr/${1//unknown-/}" cargo build --release --features=libav --target $1
fi
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
cargo build --release --features=libav,staticlibav --target $1
fi
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
}
build arm-unknown-linux-gnueabihf arm-linux-gnueabihf-strip bin/bliss-analyser-armhf
-29
View File
@@ -1,29 +0,0 @@
#!/bin/bash
## #!/usr/bin/env bash
set -eux
uname -a
DESTDIR=/src/releases
mkdir -p $DESTDIR/bin
rm -rf $DESTDIR/bin/*
function build {
echo Building for $1 to $3...
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
export RUST_BACKTRACE=full
export PKG_CONFIG=${1//unknown-/}-pkg-config
BINDGEN_EXTRA_CLANG_ARGS="--sysroot /usr/${1//unknown-/}" cargo build --release --features=libav,staticlibav --target $1
fi
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
}
build arm-unknown-linux-gnueabihf arm-linux-gnueabihf-strip bin/bliss-analyser-armhf
build aarch64-unknown-linux-gnu aarch64-linux-gnu-strip bin/bliss-analyser-aarch64
cp UserGuide.md $DESTDIR/README.md
cp LICENSE $DESTDIR/
cp configs/linux.ini $DESTDIR/config.ini
cp scripts/bliss-analyser-arm $DESTDIR/bliss-analyser
+4 -6
View File
@@ -11,13 +11,11 @@ rm -rf $DESTDIR/bin/*
function build {
echo Building for $1 to $3...
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
export RUST_BACKTRACE=full
export PKG_CONFIG=${1//unknown-/}-pkg-config
BINDGEN_EXTRA_CLANG_ARGS="--sysroot /usr/${1//unknown-/}" cargo build --release --features=symphonia --target $1
fi
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
cargo build --release --features=symphonia --target $1
fi
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
}
build arm-unknown-linux-gnueabihf arm-linux-gnueabihf-strip bin/bliss-analyser-armhf
+22
View File
@@ -0,0 +1,22 @@
#!/bin/ash
set -eux
uname -a
DESTDIR=/src/releases
mkdir -p $DESTDIR
function build {
echo Building for $1 to $3...
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
cargo build --release --features=update-aubio-bindings,libav,staticlibav --target $1
fi
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
}
build x86_64-unknown-linux-musl strip bliss-analyser
cp UserGuide.md $DESTDIR/README.md
cp LICENSE $DESTDIR/
cp configs/linux.ini $DESTDIR/config.ini
-18
View File
@@ -1,18 +0,0 @@
#!/bin/bash
## #!/usr/bin/env bash
set -eux
uname -a
DESTDIR=/src/releases
mkdir -p $DESTDIR/bin
rm -rf $DESTDIR/bin/*
export RUST_BACKTRACE=full
cargo build --release --features=libav
strip /build/release/bliss-analyser && cp /build/release/bliss-analyser $DESTDIR/bliss-analyser
cp UserGuide.md $DESTDIR/README.md
cp LICENSE $DESTDIR/
cp configs/linux.ini $DESTDIR/config.ini
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
## #!/usr/bin/env bash
set -eux
uname -a
DESTDIR=/src/releases
mkdir -p $DESTDIR
function build {
echo Building for $1 to $3...
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
cargo build --release --features update-aubio-bindings,symphonia --target $1
fi
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
}
build x86_64-unknown-linux-musl strip bliss-analyser
cp UserGuide.md $DESTDIR/README.md
cp LICENSE $DESTDIR/
cp configs/linux.ini $DESTDIR/config.ini
+3 -2
View File
@@ -28,6 +28,7 @@ use std::time::{SystemTime, UNIX_EPOCH};
use std::thread;
use std::sync::mpsc;
use std::sync::mpsc::{Receiver, Sender};
use serde_json::json;
const DONT_ANALYSE: &str = ".notmusic";
const MAX_ERRORS_TO_SHOW: usize = 100;
@@ -57,9 +58,9 @@ fn handle_ctrl_c() {
}
fn send_notif_msg(notifs: &mut NotifInfo, text: &str) {
let json = &format!("{{\"id\":1, \"method\":\"slim.request\",\"params\":[\"\",[\"blissmixer\",\"analyser\",\"act:update\",\"msg:{}\"]]}}", text);
let js = json!({"id":"1", "method":"slim.request", "params":["", ["blissmixer", "analyser", "act:update", format!("msg:{}", text)]]});
log::info!("Sending notif to LMS: {}", text);
let _ = ureq::post(&notifs.address).send_string(&json);
let _ = ureq::post(&notifs.address).send_string(&js.to_string());
}
fn send_notif(notifs: &mut NotifInfo, text: &str) {