soundux: init at 0.2.7
This commit is contained in:
parent
1e2b2255d7
commit
28b3bd0395
2 changed files with 146 additions and 0 deletions
142
pkgs/applications/audio/soundux/default.nix
Normal file
142
pkgs/applications/audio/soundux/default.nix
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, cmake
|
||||||
|
, pkg-config
|
||||||
|
, makeBinaryWrapper
|
||||||
|
, pipewire
|
||||||
|
, libpulseaudio
|
||||||
|
, libappindicator
|
||||||
|
, libstartup_notification
|
||||||
|
, openssl
|
||||||
|
, libwnck
|
||||||
|
, pcre
|
||||||
|
, util-linux
|
||||||
|
, libselinux
|
||||||
|
, libsepol
|
||||||
|
, libthai
|
||||||
|
, libdatrie
|
||||||
|
, xorg
|
||||||
|
, libxkbcommon
|
||||||
|
, libepoxy
|
||||||
|
, dbus
|
||||||
|
, at-spi2-core
|
||||||
|
, nlohmann_json
|
||||||
|
, fancypp
|
||||||
|
, httplib
|
||||||
|
, semver-cpp
|
||||||
|
, webkitgtk
|
||||||
|
, yt-dlp
|
||||||
|
, ffmpeg
|
||||||
|
, lsb-release
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "soundux";
|
||||||
|
version = "0.2.7";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Soundux";
|
||||||
|
repo = "Soundux";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-aSCsg6nJt6F+6O7UeXnvYva0vllTfsxK/cjaeOhObZY=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
makeBinaryWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pipewire
|
||||||
|
libpulseaudio
|
||||||
|
libappindicator
|
||||||
|
openssl
|
||||||
|
libwnck
|
||||||
|
pcre
|
||||||
|
util-linux
|
||||||
|
libselinux
|
||||||
|
libsepol
|
||||||
|
libthai
|
||||||
|
libdatrie
|
||||||
|
xorg.libXdmcp
|
||||||
|
xorg.libXtst
|
||||||
|
xorg.libXres
|
||||||
|
libxkbcommon
|
||||||
|
libepoxy
|
||||||
|
dbus
|
||||||
|
at-spi2-core
|
||||||
|
nlohmann_json
|
||||||
|
fancypp
|
||||||
|
httplib
|
||||||
|
semver-cpp
|
||||||
|
libstartup_notification
|
||||||
|
webkitgtk
|
||||||
|
yt-dlp
|
||||||
|
ffmpeg
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
# cannot be overwritten with variables
|
||||||
|
substituteInPlace CMakeLists.txt \
|
||||||
|
--replace "set(CMAKE_INSTALL_PREFIX \"/opt/soundux\" CACHE PATH \"Install path prefix, prepended onto install directories.\" FORCE)" "" \
|
||||||
|
--replace "/usr/share" "$out/usr/share"
|
||||||
|
substituteInPlace src/ui/impl/webview/webview.cpp \
|
||||||
|
--replace "/usr/share/pixmaps/soundux.png" "$out/share/pixmaps/soundux.png"
|
||||||
|
'';
|
||||||
|
|
||||||
|
# We need to append /opt to our CMAKE_INSTALL_PREFIX
|
||||||
|
dontAddPrefix = true;
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
# This needs to be set in preConfigure to access the $prefix variable
|
||||||
|
export cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix/opt $cmakeFlags"
|
||||||
|
|
||||||
|
# Replace some fetched submodules with symlinks nix packages.
|
||||||
|
rm -rf \
|
||||||
|
lib/json \
|
||||||
|
lib/fancypp \
|
||||||
|
lib/lib-httplib \
|
||||||
|
lib/semver
|
||||||
|
|
||||||
|
ln -s ${nlohmann_json} lib/json
|
||||||
|
ln -s ${fancypp} lib/fancypp
|
||||||
|
ln -s ${httplib} lib/lib-httplib
|
||||||
|
ln -s ${semver-cpp} lib/semver
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Somehow some of the install destination paths in the build system still
|
||||||
|
# gets transformed to point to /var/empty/share, even though they are at least
|
||||||
|
# relative to the nix output directory with our earlier patching.
|
||||||
|
postInstall = ''
|
||||||
|
mv "$out/var/empty/share" "$out"
|
||||||
|
rm -rf "$out/var"
|
||||||
|
mkdir "$out/bin"
|
||||||
|
ln -s "$out/opt/soundux" "$out/bin"
|
||||||
|
substituteInPlace "$out/share/applications/soundux.desktop" \
|
||||||
|
--replace "/opt/soundux/soundux" "soundux"
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = let
|
||||||
|
rpaths = lib.makeLibraryPath [libwnck pipewire libpulseaudio];
|
||||||
|
in ''
|
||||||
|
# Wnck, PipeWire, and PulseAudio are dlopen-ed by Soundux, so they do
|
||||||
|
# not end up on the RPATH during the build process.
|
||||||
|
patchelf --add-rpath "${rpaths}" "$out/opt/soundux-${version}"
|
||||||
|
|
||||||
|
# Work around upstream bug https://github.com/Soundux/Soundux/issues/435
|
||||||
|
wrapProgram "$out/bin/soundux" \
|
||||||
|
--set WEBKIT_DISABLE_COMPOSITING_MODE 1 \
|
||||||
|
--prefix PATH : ${lib.makeBinPath [ yt-dlp ffmpeg lsb-release ]} \
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A cross-platform soundboard.";
|
||||||
|
homepage = "https://soundux.rocks/";
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ aidalgol ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -24093,6 +24093,10 @@ with pkgs;
|
||||||
boost = boost172;
|
boost = boost172;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
soundux = callPackage ../applications/audio/soundux {
|
||||||
|
yt-dlp = yt-dlp.override { withAlias = true; };
|
||||||
|
};
|
||||||
|
|
||||||
tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
|
tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
|
||||||
|
|
||||||
tomcat-native = callPackage ../servers/http/tomcat/tomcat-native.nix { };
|
tomcat-native = callPackage ../servers/http/tomcat/tomcat-native.nix { };
|
||||||
|
|
Loading…
Reference in a new issue