uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,75 @@
{ stdenv
, lib
, fetchFromGitLab
, cairo
, desktop-file-utils
, gettext
, glib
, gtk4
, libadwaita
, meson
, ninja
, pango
, pkg-config
, python3
, rustPlatform
, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
pname = "contrast";
version = "0.0.5";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
group = "World";
owner = "design";
repo = "contrast";
rev = version;
sha256 = "cypSbqLwSmauOoWOuppWpF3hvrxiqmkLspxAWzvlUC0=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-W4FyqwJpimf0isQRCq9TegpTQPQfsumx40AFQCFG5VQ=";
};
nativeBuildInputs = [
desktop-file-utils
gettext
meson
ninja
pkg-config
python3
rustPlatform.rust.cargo
rustPlatform.cargoSetupHook
rustPlatform.rust.rustc
wrapGAppsHook4
glib # for glib-compile-resources
];
buildInputs = [
cairo
glib
gtk4
libadwaita
pango
];
postPatch = ''
patchShebangs build-aux/meson_post_install.py
# https://gitlab.gnome.org/World/design/contrast/-/merge_requests/23
substituteInPlace build-aux/meson_post_install.py \
--replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
'';
meta = with lib; {
description = "Checks whether the contrast between two colors meet the WCAG requirements";
homepage = "https://gitlab.gnome.org/World/design/contrast";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,70 @@
{ stdenv
, lib
, fetchFromGitLab
, autoreconfHook
, pkg-config
, wrapGAppsHook
, glib
, gtk3
, expat
, itstool
, gnome-doc-utils
, which
, at-spi2-core
, dbus
, libxslt
, libxml2
, speechSupport ? true
, speechd
}:
stdenv.mkDerivation {
pname = "dasher";
version = "unstable-2021-04-25";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "dasher";
rev = "90c753b87564fa3f42cb2d04e1eb6662dc8e0f8f";
sha256 = "sha256-aM05CV68pCRlhfIPyhuHWeRL+tDroB3fVsoX08OU8hY=";
};
prePatch = ''
# tries to invoke git for something, probably fetching the ref
echo "true" > build-aux/mkversion
'';
configureFlags = lib.optional (!speechSupport) "--disable-speech";
nativeBuildInputs = [
autoreconfHook
wrapGAppsHook
pkg-config
# doc generation
gnome-doc-utils
which
libxslt
libxml2
];
buildInputs = [
glib
gtk3
expat
itstool
# at-spi2 needs dbus to be recognized by pkg-config
at-spi2-core
dbus
] ++ lib.optional speechSupport speechd;
enableParallelBuilding = true;
meta = {
homepage = "https://www.inference.org.uk/dasher/";
description = "Information-efficient text-entry interface, driven by natural continuous pointing gestures";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.Profpatsch ];
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,46 @@
{ stdenv
, lib
, meson
, ninja
, espeak-ng
, fetchFromGitHub
, pkg-config
, ronn
, alsa-lib
, systemd
}:
stdenv.mkDerivation rec {
pname = "espeakup";
version = "0.90";
src = fetchFromGitHub {
owner = "linux-speakup";
repo = "espeakup";
rev = "v${version}";
sha256 = "0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2";
};
nativeBuildInputs = [
meson
ninja
pkg-config
ronn
];
buildInputs = [
espeak-ng
alsa-lib
systemd
];
PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
meta = with lib; {
homepage = "https://github.com/linux-speakup/espeakup";
description = "Lightweight connector for espeak-ng and speakup";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ethindp ];
platforms = with platforms; linux;
};
}

View file

@ -0,0 +1,49 @@
{ lib, stdenv, fetchurl, pkg-config
, glib, gtk3, gnome, gsettings-desktop-schemas, wrapGAppsHook
, libX11, libXtst, libXfixes, libXcursor
}:
stdenv.mkDerivation rec {
pname = "mousetweaks";
version = "3.32.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "005fhmvb45sa9mq17dpa23n1xnspiissx5rnpiy7hiqmy3g5rg8f";
};
nativeBuildInputs = [ pkg-config wrapGAppsHook ];
buildInputs = [
glib gtk3 gsettings-desktop-schemas
libX11 libXtst libXfixes libXcursor
];
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
};
};
meta = with lib; {
description = "Provides mouse accessibility enhancements for the GNOME desktop";
longDescription = ''
Mousetweaks provides mouse accessibility enhancements for the GNOME
desktop. These enhancements are:
- It offers a way to perform the various clicks without using any
physical mouse buttons. (Hover Click)
- It allows users to perform a secondary click by keeping the primary
mouse button pressed for a predetermined amount of time. (Simulated
Secondary Click)
The features can be activated and configured through the Universal Access
panel of the GNOME Control Center.
'';
homepage = "https://wiki.gnome.org/Projects/Mousetweaks";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.johnazoidberg ];
};
}

View file

@ -0,0 +1,73 @@
{ lib
, stdenv
, fetchFromGitLab
, meson
, ninja
, pkg-config
, gnome
, gnome-desktop
, glib
, gtk3
, wayland
, wayland-protocols
, libxml2
, libxkbcommon
, rustPlatform
, feedbackd
, wrapGAppsHook
, fetchpatch
}:
stdenv.mkDerivation rec {
pname = "squeekboard";
version = "1.17.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
group = "World";
owner = "Phosh";
repo = pname;
rev = "v${version}";
sha256 = "sha256-U46OQ0bXkXv6za8vUZxtbxJKqiF/X/xxJsqQGpnRIpg=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
cargoUpdateHook = ''
cat Cargo.toml.in Cargo.deps > Cargo.toml
'';
name = "${pname}-${version}";
sha256 = "sha256-4q8MW1n/xu538+R5ZlA+p/hd6pOQPKj7jOFwnuMc7sk=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
glib
wayland
wrapGAppsHook
] ++ (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [
gtk3
gnome-desktop
wayland
wayland-protocols
libxml2
libxkbcommon
feedbackd
];
meta = with lib; {
description = "A virtual keyboard supporting Wayland";
homepage = "https://source.puri.sm/Librem5/squeekboard";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ artturin ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,59 @@
{ lib
, stdenv
, fetchurl
, writeText
, pkg-config
, libX11
, libXft
, libXi
, libXinerama
, libXtst
, layout ? null
, conf ? null
, patches ? [ ]
}:
stdenv.mkDerivation rec {
pname = "svkbd";
version = "0.4.1";
src = fetchurl {
url = "https://dl.suckless.org/tools/svkbd-${version}.tar.gz";
sha256 = "sha256-+8Jh/D4dgULhRXtC1tZQg6AK4POh9czyRyrMi0auD1o=";
};
inherit patches;
postPatch = let
configFile = if lib.isDerivation conf || lib.isPath conf then
conf
else
writeText "config.def.h" conf;
in lib.optionalString (conf != null) ''
cp ${configFile} config.def.h
'';
nativeBuildInputs = [
pkg-config
];
buildInputs = [
libX11
libXft
libXi
libXinerama
libXtst
];
makeFlags = [
"PREFIX=${placeholder "out"}"
] ++ lib.optional (layout != null) "LAYOUT=${layout}";
meta = with lib; {
description = "Simple virtual keyboard";
homepage = "https://tools.suckless.org/x/svkbd/";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -0,0 +1,36 @@
{ stdenv
, lib
, fetchFromGitHub
, wayland-scanner
, wayland
, pango
, glib
, harfbuzz
, cairo
, pkg-config
, libxkbcommon
}:
stdenv.mkDerivation rec {
pname = "wvkbd";
version = "0.7";
src = fetchFromGitHub {
owner = "jjsullivan5196";
repo = pname;
rev = "v${version}";
sha256 = "sha256-5UV2PMrLXtF3AxjfPxxwFRkgVef+Ap8nG1v795o0bWE=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ wayland-scanner wayland pango glib harfbuzz cairo libxkbcommon ];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://github.com/jjsullivan5196/wvkbd";
description = "On-screen keyboard for wlroots";
maintainers = [ maintainers.elohmeier ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchurl, ladspaH
}:
stdenv.mkDerivation rec {
pname = "AMB-plugins";
version = "0.8.1";
src = fetchurl {
url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "0x4blm4visjqj0ndqr0cg776v3b7lvplpc8cgi9n51llhavn0jpl";
};
buildInputs = [ ladspaH ];
patchPhase = ''
sed -i 's@/usr/bin/install@install@g' Makefile
sed -i 's@/bin/rm@rm@g' Makefile
sed -i 's@/usr/lib/ladspa@$(out)/lib/ladspa@g' Makefile
'';
preInstall="mkdir -p $out/lib/ladspa";
meta = {
description = "A set of ambisonics ladspa plugins";
longDescription = ''
Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
'';
version = version;
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,81 @@
{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
, libsepol, libsysprof-capture, libthai, libxkbcommon, lv2, pcre, pkg-config
, python3, sqlite, stdenv }:
stdenv.mkDerivation rec {
pname = "CHOWTapeModel";
version = "2.10.0";
src = fetchFromGitHub {
owner = "jatinchowdhury18";
repo = "AnalogTapeModel";
rev = "v${version}";
sha256 = "sha256-iuT7OBRBtMkjcTHayCcne1mNqkcxzKnEYl62n65V7Z4=";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [
alsa-lib
at-spi2-core
curl
dbus
libepoxy
freeglut
freetype
gtk3
libGL
libXcursor
libXdmcp
libXext
libXinerama
libXrandr
libXtst
libdatrie
libjack2
libpsl
libselinux
libsepol
libsysprof-capture
libthai
libxkbcommon
lv2
pcre
python3
sqlite
gcc-unwrapped
];
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
"-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
];
postPatch = "cd Plugin";
installPhase = ''
mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/CHOWTapeModel/
cd CHOWTapeModel_artefacts/Release
cp libCHOWTapeModel_SharedCode.a $out/lib
cp -r LV2/CHOWTapeModel.lv2 $out/lib/lv2
cp -r VST3/CHOWTapeModel.vst3 $out/lib/vst3
cp Standalone/CHOWTapeModel $out/bin
cp ../../../../Manual/ChowTapeManual.pdf $out/share/doc/CHOWTapeModel/
'';
meta = with lib; {
homepage = "https://github.com/jatinchowdhury18/AnalogTapeModel";
description =
"Physical modelling signal processing for analog tape recording. LV2, VST3 and standalone";
license = with licenses; [ gpl3Only ];
maintainers = with maintainers; [ magnetophon ];
platforms = platforms.linux;
# error: 'vvtanh' was not declared in this scope; did you mean 'tanh'?
# error: no matching function for call to 'juce::dsp::SIMDRegister<double>::SIMDRegister(xsimd::simd_batch_traits<xsimd::batch<double, 2> >::batch_bool_type)'
broken = stdenv.isAarch64; # since 2021-12-27 on hydra (update to 2.10): https://hydra.nixos.org/build/162558991
};
}

View file

@ -0,0 +1,53 @@
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, cairo, libxkbcommon
, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
, alsa-lib, libjack2, lv2, gcc-unwrapped }:
stdenv.mkDerivation rec {
pname = "ChowCentaur";
version = "1.4.0";
src = fetchFromGitHub {
owner = "jatinchowdhury18";
repo = "KlonCentaur";
rev = "v${version}";
sha256 = "0mrzlf4a6f25xd7z9xanpyq7ybb4al01dzpjsgi0jkmlmadyhc4h";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
cairo
libxkbcommon
xcbutilcursor
xcbutilkeysyms
xcbutil
libXrandr
libXinerama
libXcursor
alsa-lib
libjack2
lv2
];
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
"-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
];
installPhase = ''
mkdir -p $out/lib/lv2 $out/lib/vst3
cd ChowCentaur/ChowCentaur_artefacts/Release
cp -r LV2/ChowCentaur.lv2 $out/lib/lv2
cp -r VST3/ChowCentaur.vst3 $out/lib/vst3
'';
meta = with lib; {
description =
"Digital emulation of the Klon Centaur guitar pedal using RNNs, Wave Digital Filters, and more";
homepage = "https://github.com/jatinchowdhury18/KlonCentaur";
license = licenses.bsd3;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ magnetophon ];
};
}

View file

@ -0,0 +1,106 @@
{ alsa-lib
, at-spi2-core
, brotli
, cmake
, curl
, dbus
, libepoxy
, fetchFromGitHub
, freeglut
, freetype
, gtk2-x11
, lib
, libGL
, libXcursor
, libXdmcp
, libXext
, libXinerama
, libXrandr
, libXtst
, libdatrie
, libjack2
, libpsl
, libselinux
, libsepol
, libsysprof-capture
, libthai
, libxkbcommon
, lv2
, pcre
, pkg-config
, python3
, sqlite
, stdenv
, util-linuxMinimal
, webkitgtk
}:
stdenv.mkDerivation rec {
pname = "ChowKick";
version = "1.1.1";
src = fetchFromGitHub {
owner = "Chowdhury-DSP";
repo = pname;
rev = "v${version}";
sha256 = "0amnp0p7ckbbr9dcbdnld1ryv46kvza2dj8m6hzmi7c1s4df8x5q";
fetchSubmodules = true;
};
nativeBuildInputs = [
pkg-config
cmake
];
buildInputs = [
alsa-lib
at-spi2-core
brotli
curl
dbus
libepoxy
freeglut
freetype
gtk2-x11
libGL
libXcursor
libXdmcp
libXext
libXinerama
libXrandr
libXtst
libdatrie
libjack2
libpsl
libselinux
libsepol
libsysprof-capture
libthai
libxkbcommon
lv2
pcre
python3
sqlite
util-linuxMinimal
webkitgtk
];
cmakeFlags = [
"-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
"-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
];
installPhase = ''
mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin
cp -r ChowKick_artefacts/Release/LV2//${pname}.lv2 $out/lib/lv2
cp -r ChowKick_artefacts/Release/VST3/${pname}.vst3 $out/lib/vst3
cp ChowKick_artefacts/Release/Standalone/${pname} $out/bin
'';
meta = with lib; {
homepage = "https://github.com/Chowdhury-DSP/ChowKick";
description = "Kick synthesizer based on old-school drum machine circuits";
license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ magnetophon ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,76 @@
{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
, libsepol, libsysprof-capture, libthai, libxkbcommon, pcre, pkg-config
, python3, sqlite, stdenv }:
stdenv.mkDerivation rec {
pname = "ChowPhaser";
version = "1.1.1";
src = fetchFromGitHub {
owner = "jatinchowdhury18";
repo = "ChowPhaser";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "sha256-9wo7ZFMruG3QNvlpILSvrFh/Sx6J1qnlWc8+aQyS4tQ=";
};
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [
alsa-lib
at-spi2-core
curl
dbus
libepoxy
freeglut
freetype
gtk3
libGL
libXcursor
libXdmcp
libXext
libXinerama
libXrandr
libXtst
libdatrie
libjack2
libpsl
libselinux
libsepol
libsysprof-capture
libthai
libxkbcommon
pcre
python3
sqlite
gcc-unwrapped
];
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
"-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
];
installPhase = ''
mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/ChowPhaser/
cd ChowPhaserMono_artefacts/Release
cp libChowPhaserMono_SharedCode.a $out/lib
cp -r VST3/ChowPhaserMono.vst3 $out/lib/vst3
cp Standalone/ChowPhaserMono $out/bin
cd ../../ChowPhaserStereo_artefacts/Release
cp libChowPhaserStereo_SharedCode.a $out/lib
cp -r VST3/ChowPhaserStereo.vst3 $out/lib/vst3
cp Standalone/ChowPhaserStereo $out/bin
'';
meta = with lib; {
homepage = "https://github.com/jatinchowdhury18/ChowPhaser";
description = "Phaser effect based loosely on the Schulte Compact Phasing 'A'";
license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ magnetophon ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,37 @@
{ lib, stdenv, fetchurl, ladspaH
}:
stdenv.mkDerivation rec {
pname = "FIL-plugins";
version = "0.3.0";
src = fetchurl {
url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "1scfv9j7jrp50r565haa4rvxn1vk2ss86xssl5qgcr8r45qz42qw";
};
buildInputs = [ ladspaH ];
patchPhase = ''
sed -i 's@/usr/bin/install@install@g' Makefile
sed -i 's@/bin/rm@rm@g' Makefile
sed -i 's@/usr/lib/ladspa@$(out)/lib/ladspa@g' Makefile
'';
preInstall="mkdir -p $out/lib/ladspa";
meta = {
description = "a four-band parametric equaliser, which has the nice property of being stable even while parameters are being changed";
longDescription = ''
Each section has an active/bypass switch, frequency, bandwidth and gain controls.
There is also a global bypass switch and gain control.
The 2nd order resonant filters are implemented using a Mitra-Regalia style lattice filter.
All switches and controls are internally smoothed, so they can be used 'live' whithout any clicks or zipper noises.
This should make this plugin a good candidate for use in systems that allow automation of plugin control ports, such as Ardour, or for stage use.
'';
version = version;
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,53 @@
{ stdenv, lib, fetchFromGitLab, cmake, pkg-config, cairo, libxkbcommon
, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
, alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
stdenv.mkDerivation rec {
pname = "LibreArp";
version = "2.2";
src = fetchFromGitLab {
owner = "LibreArp";
repo = "LibreArp";
rev = version;
hash = "sha256-jCUT/sflO9L57xRTqNR90RbwJ0uZ+xJVXnB3n+FhWBo=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
cairo
libxkbcommon
xcbutilcursor
xcbutilkeysyms
xcbutil
libXrandr
libXinerama
libXcursor
alsa-lib
libjack2
lv2
curl
];
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
"-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
];
installPhase = ''
mkdir -p $out/lib/vst3
cd LibreArp_artefacts/Release
cp -r VST3/LibreArp.vst3 $out/lib/vst3
'';
meta = with lib; {
description =
"A pattern-based arpeggio generator plugin.";
homepage = "https://librearp.gitlab.io/";
license = licenses.gpl3Plus;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ magnetophon ];
};
}

View file

@ -0,0 +1,53 @@
{ stdenv, lib, fetchFromGitLab, cmake, pkg-config, cairo, libxkbcommon
, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
, alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
stdenv.mkDerivation rec {
pname = "LibreArp-lv2";
version = "2.2";
src = fetchFromGitLab {
owner = "LibreArp";
repo = "LibreArp";
rev = "${version}-lv2";
hash = "sha256-j5SksuhC4ZXXILfOpwXNqIu5fO07a/6tiZ5qUo+p0Ug=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
cairo
libxkbcommon
xcbutilcursor
xcbutilkeysyms
xcbutil
libXrandr
libXinerama
libXcursor
alsa-lib
libjack2
lv2
curl
];
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
"-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
];
installPhase = ''
mkdir -p $out/lib/lv2
cd LibreArp_artefacts/Release
cp -r LV2/LibreArp.lv2 $out/lib/lv2
'';
meta = with lib; {
description =
"A pattern-based arpeggio generator plugin.";
homepage = "https://librearp.gitlab.io/";
license = licenses.gpl3Plus;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ magnetophon ];
};
}

View file

@ -0,0 +1,70 @@
{ lib, stdenv, fetchurl, makeWrapper, python3, alsa-utils, timidity }:
stdenv.mkDerivation rec {
version = "20.12";
pname = "mma";
src = fetchurl {
url = "https://www.mellowood.ca/mma/mma-bin-${version}.tar.gz";
sha256 = "18k0hwlqky5x4y461fxmw77gvz7z8jyrvxicrqphsgvwwinzy732";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ python3 alsa-utils timidity ];
patchPhase = ''
sed -i 's@/usr/bin/aplaymidi@/${alsa-utils}/bin/aplaymidi@g' mma-splitrec
sed -i 's@/usr/bin/aplaymidi@/${alsa-utils}/bin/aplaymidi@g' util/mma-splitrec.py
sed -i 's@/usr/bin/arecord@/${alsa-utils}/bin/arecord@g' mma-splitrec
sed -i 's@/usr/bin/arecord@/${alsa-utils}/bin/arecord@g' util/mma-splitrec.py
sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' mma-splitrec
sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' util/mma-splitrec.py
find . -type f | xargs sed -i 's@/usr/bin/env python@${python3.interpreter}@g'
find . -type f | xargs sed -i 's@/usr/bin/python3@${python3.interpreter}@g'
'';
installPhase = ''
mkdir -p $out/{bin,share/mma,share/man/man1,share/man/man8}
mkdir -p $out/etc
cp mma.py $out/bin/mma
cp mma-gb $out/bin/mma-gb
cp mma-libdoc $out/bin/mma-libdoc
cp mma-renum $out/bin/mma-renum
cp mma-splitrec $out/bin/mma-splitrec
cp util/mma-mnx.py $out/bin/mma-mnx
cp util/mma-rm2std.py $out/bin/mma-rm2std
cp util/mmatabs.py $out/bin/mmatabs
cp util/mup2mma.py $out/bin/mup2mma
cp util/pg2mma.py $out/bin/pg2mma
cp util/synthsplit.py $out/bin/mma-synthsplit
cp -r {docs,egs,includes,lib,MMA,text} $out/share/mma
rmdir $out/share/mma/includes/aria
cp util/README.* $out/share/mma/docs
mv $out/share/mma/docs/man/mma-libdoc.8 $out/share/man/man8
mv $out/share/mma/docs/man/mma-renum.1 $out/share/man/man1
mv $out/share/mma/docs/man/mma.1 $out/share/man/man1
mv $out/share/mma/docs/man/mma-gb.1 $out/share/man/man1
rm -rf $out/share/mma/docs/man
find $out -type f | xargs sed -i "s@/usr/share/mma@$out/share/mma@g"
'';
preFixup = ''
PYTHONPATH=$out/share/mma/:$PYTHONPATH
for f in $out/bin/*; do
wrapProgram $f \
--prefix PYTHONPATH : $PYTHONPATH
done
cd $out/share/mma/
$out/bin/mma -G
'';
meta = {
description = "Creates MIDI tracks for a soloist to perform over from a user supplied file containing chords";
homepage = "https://www.mellowood.ca/mma/index.html";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, pkg-config, alsa-lib, dbus, libjack2
, python3Packages , meson, ninja }:
stdenv.mkDerivation rec {
pname = "a2jmidid";
version = "9";
src = fetchFromGitHub {
owner = "linuxaudio";
repo = pname;
rev = version;
sha256 = "sha256-WNt74tSWV8bY4TnpLp86PsnrjkqWynJJt3Ra4gZl2fQ=";
};
nativeBuildInputs = [ pkg-config makeWrapper meson ninja ];
buildInputs = [ alsa-lib dbus libjack2 ] ++
(with python3Packages; [ python dbus-python ]);
postInstall = ''
wrapProgram $out/bin/a2j_control --set PYTHONPATH $PYTHONPATH
substituteInPlace $out/bin/a2j --replace "a2j_control" "$out/bin/a2j_control"
'';
meta = with lib; {
description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system";
license = licenses.gpl2;
maintainers = [ maintainers.goibhniu ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
};
}

View file

@ -0,0 +1,68 @@
{ lib, stdenv, fetchFromGitLab, fetchpatch }:
stdenv.mkDerivation rec {
pname = "aacgain";
version = "1.9.0";
src = fetchFromGitLab {
owner = "mulx";
repo = "aacgain";
rev = "7c29dccd878ade1301710959aeebe87a8f0828f5";
sha256 = "07hl432vsscqg01b6wr99qmsj4gbx0i02x4k565432y6zpfmaxm0";
};
hardeningDisable = [ "format" ];
# -Wnarrowing is enabled by default in recent GCC versions,
# causing compilation to fail.
NIX_CFLAGS_COMPILE = "-Wno-narrowing";
postPatch = ''
(
cd mp4v2
patch -p0 < ${fetchpatch {
name = "fix_missing_ptr_deref.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_missing_ptr_deref.patch?h=aacgain-cvs&id=e1a19c920f57063e64bab75cb0d8624731f6e3d7";
sha256 = "1cq7r005nvmwdjb25z80grcam7jv6k57jnl2bh349mg3ajmslbq9";
}}
)
'';
configurePhase = ''
runHook preConfigure
cd mp4v2
./configure
cd ../faad2
./configure
cd ..
./configure
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
cd mp4v2
make libmp4v2.la
cd ../faad2
make LDFLAGS=-static
cd ..
make
runHook postBuild
'';
installPhase = ''
install -D aacgain/aacgain "$out/bin/aacgain"
'';
meta = with lib; {
description = "ReplayGain for AAC files";
homepage = "https://aacgain.altosdesign.com";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.robbinch ];
};
}

View file

@ -0,0 +1,61 @@
{ lib, stdenv, fetchurl, libcdio-paranoia, cddiscid, wget, which, vorbis-tools, id3v2, eyeD3
, lame, flac, glyr
, perlPackages
, makeWrapper }:
let version = "2.9.3";
in
stdenv.mkDerivation {
pname = "abcde";
inherit version;
src = fetchurl {
url = "https://abcde.einval.com/download/abcde-${version}.tar.gz";
sha256 = "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04";
};
# FIXME: This package does not support `distmp3', `eject', etc.
configurePhase = ''
sed -i "s|^[[:blank:]]*prefix *=.*$|prefix = $out|g ;
s|^[[:blank:]]*etcdir *=.*$|etcdir = $out/etc|g ;
s|^[[:blank:]]*INSTALL *=.*$|INSTALL = install -c|g" \
"Makefile";
echo 'CDPARANOIA=${libcdio-paranoia}/bin/cd-paranoia' >>abcde.conf
echo CDROMREADERSYNTAX=cdparanoia >>abcde.conf
substituteInPlace "abcde" \
--replace "/etc/abcde.conf" "$out/etc/abcde.conf"
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = with perlPackages; [ perl MusicBrainz MusicBrainzDiscID ];
installFlags = [ "sysconfdir=$(out)/etc" ];
postFixup = ''
for cmd in abcde cddb-tool abcde-musicbrainz-tool; do
wrapProgram "$out/bin/$cmd" \
--prefix PERL5LIB : "$PERL5LIB" \
--prefix PATH ":" ${lib.makeBinPath [
"$out" which libcdio-paranoia cddiscid wget
vorbis-tools id3v2 eyeD3 lame flac glyr
]}
done
'';
meta = with lib; {
homepage = "http://abcde.einval.com/wiki/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ gebner ];
description = "Command-line audio CD ripper";
longDescription = ''
abcde is a front-end command-line utility (actually, a shell
script) that grabs tracks off a CD, encodes them to
Ogg/Vorbis, MP3, FLAC, Ogg/Speex and/or MPP/MP+ (Musepack)
format, and tags them, all in one go.
'';
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,137 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
, pkg-config
, fmt
, liblo
, alsa-lib
, freetype
, libX11
, libXrandr
, libXinerama
, libXext
, libXcursor
, Foundation
, Cocoa
, Carbon
, CoreServices
, ApplicationServices
, CoreAudio
, CoreMIDI
, AudioToolbox
, Accelerate
, CoreImage
, IOKit
, AudioUnit
, QuartzCore
, WebKit
, DiscRecording
, CoreAudioKit
# Enabling JACK requires a JACK server at runtime, no fallback mechanism
, withJack ? false, jack
, type ? "ADL"
}:
assert lib.assertOneOf "type" type [ "ADL" "OPN" ];
let
chip = {
ADL = "OPL3";
OPN = "OPN2";
}.${type};
mainProgram = "${type}plug";
in
stdenv.mkDerivation rec {
pname = "${lib.strings.toLower type}plug";
version = "unstable-2021-12-17";
src = fetchFromGitHub {
owner = "jpcima";
repo = "ADLplug";
rev = "a488abedf1783c61cb4f0caa689f1b01bf9aa17d";
fetchSubmodules = true;
sha256 = "1a5zw0rglqgc5wq1n0s5bxx7y59dsg6qy02236fakl34bvbk60yz";
};
cmakeFlags = [
"-DADLplug_CHIP=${chip}"
"-DADLplug_USE_SYSTEM_FMT=ON"
"-DADLplug_Jack=${if withJack then "ON" else "OFF"}"
];
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin (toString [
# "fp.h" file not found
"-isystem ${CoreServices}/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers"
]);
NIX_LDFLAGS = toString (lib.optionals stdenv.hostPlatform.isDarwin [
# Framework that JUCE needs which don't get linked properly
"-framework CoreAudioKit"
"-framework QuartzCore"
"-framework AudioToolbox"
] ++ lib.optionals stdenv.hostPlatform.isLinux [
# JUCE dlopen's these at runtime
"-lX11"
"-lXext"
"-lXcursor"
"-lXinerama"
"-lXrandr"
]);
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
fmt
liblo
] ++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
freetype
libX11
libXrandr
libXinerama
libXext
libXcursor
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
Foundation
Cocoa
Carbon
CoreServices
ApplicationServices
CoreAudio
CoreMIDI
AudioToolbox
Accelerate
CoreImage
IOKit
AudioUnit
QuartzCore
WebKit
DiscRecording
CoreAudioKit
] ++ lib.optional withJack jack;
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/{Applications,Library/Audio/Plug-Ins/{VST,Components}}
mv $out/bin/${mainProgram}.app $out/Applications/
ln -s $out/{Applications/${mainProgram}.app/Contents/MacOS,bin}/${mainProgram}
mv vst2/${mainProgram}.vst $out/Library/Audio/Plug-Ins/VST/
mv au/${mainProgram}.component $out/Library/Audio/Plug-Ins/Components/
'';
meta = with lib; {
inherit mainProgram;
description = "${chip} FM Chip Synthesizer";
homepage = src.meta.homepage;
license = licenses.boost;
platforms = platforms.all;
maintainers = with maintainers; [ OPNA2608 ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchurl, libclthreads, zita-alsa-pcmi, alsa-lib, libjack2
, libclxclient, libX11, libXft, readline
}:
stdenv.mkDerivation rec {
pname = "aeolus";
version = "0.9.9";
src = fetchurl {
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "04y1j36y7vc93bv299vfiawbww4ym6q7avfx8vw6rmxr817zrch3";
};
buildInputs = [
libclthreads zita-alsa-pcmi alsa-lib libjack2 libclxclient
libX11 libXft readline
];
patchPhase = ''sed "s@ldconfig.*@@" -i source/Makefile'';
preBuild = "cd source";
makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
meta = {
description = "Synthetized (not sampled) pipe organ emulator";
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html";
license = lib.licenses.lgpl3;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.nico202 ];
};
}

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchFromGitHub, lv2, libX11, libGL, libGLU, mesa, cmake }:
stdenv.mkDerivation rec {
pname = "aether-lv2";
version = "1.2.1";
src = fetchFromGitHub {
owner = "Dougal-s";
repo = "aether";
rev = "v${version}";
sha256 = "0xhih4smjxn87s0f4gaab51d8594qlp0lyypzxl5lm37j1i9zigs";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake ];
buildInputs = [
lv2 libX11 libGL libGLU mesa
];
installPhase = ''
mkdir -p $out/lib/lv2
cp -r aether.lv2 $out/lib/lv2
'';
meta = with lib; {
homepage = "https://dougal-s.github.io/Aether/";
description = "An algorithmic reverb LV2 based on Cloudseed";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.mit;
};
}

View file

@ -0,0 +1,92 @@
{ lib, stdenv, multiStdenv, cmake, fetchFromGitHub, file, libX11, makeWrapper
, qt5, requireFile, unzip, wine
}:
let
version = "1.3.3";
airwave-src = fetchFromGitHub {
owner = "phantom-code";
repo = "airwave";
rev = version;
sha256 = "1ban59skw422mak3cp57lj27hgq5d3a4f6y79ysjnamf8rpz9x4s";
};
vst-sdk = stdenv.mkDerivation rec {
name = "vstsdk368_08_11_2017_build_121";
src = requireFile {
name = "${name}.zip";
url = "http://www.steinberg.net/en/company/developers.html";
sha256 = "e0f235d8826d70f1ae0ae5929cd198acae1ecff74612fde5c60cbfb45c2f4a70";
};
nativeBuildInputs = [ unzip ];
installPhase = "cp -r . $out";
meta.license = lib.licenses.unfree;
};
wine-wow64 = wine.override {
wineRelease = "stable";
wineBuild = "wineWow";
};
wine-xembed = wine-wow64.overrideDerivation (oldAttrs: {
patchFlags = [ "-p2" ];
patches = [ "${airwave-src}/fix-xembed-wine-windows.patch" ];
});
in
multiStdenv.mkDerivation {
pname = "airwave";
inherit version;
src = airwave-src;
nativeBuildInputs = [ cmake makeWrapper ];
buildInputs = [ file libX11 qt5.qtbase wine-xembed ];
postPatch = ''
# Binaries not used directly should land in libexec/.
substituteInPlace src/common/storage.cpp --replace '"/bin"' '"/libexec"'
# For airwave-host-32.exe.so, point wineg++ to 32-bit versions of
# these libraries, as $NIX_LDFLAGS contains only 64-bit ones.
substituteInPlace src/host/CMakeLists.txt --replace '-m32' \
'-m32 -L${wine-xembed}/lib -L${wine-xembed}/lib/wine -L${multiStdenv.cc.libc.out}/lib/32'
'';
# libstdc++.so link gets lost in 64-bit executables during
# shrinking.
dontPatchELF = true;
# Cf. https://github.com/phantom-code/airwave/issues/57
hardeningDisable = [ "format" ];
cmakeFlags = [ "-DVSTSDK_PATH=${vst-sdk}/VST2_SDK" ];
postInstall = ''
mv $out/bin $out/libexec
mkdir $out/bin
mv $out/libexec/airwave-manager $out/bin
wrapProgram $out/libexec/airwave-host-32.exe --set WINELOADER ${wine-xembed}/bin/wine
wrapProgram $out/libexec/airwave-host-64.exe --set WINELOADER ${wine-xembed}/bin/wine64
'';
meta = with lib; {
description = "WINE-based VST bridge for Linux VST hosts";
longDescription = ''
Airwave is a wine based VST bridge, that allows for the use of
Windows 32- and 64-bit VST 2.4 audio plugins with Linux VST
hosts. Due to the use of shared memory, only one extra copying
is made for each data transfer. Airwave also uses the XEMBED
protocol to correctly embed the plugin editor into the host
window.
'';
homepage = "https://github.com/phantom-code/airwave";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ michalrus ];
hydraPlatforms = [];
};
}

View file

@ -0,0 +1,25 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, lv2 }:
stdenv.mkDerivation rec {
pname = "airwindows-lv2";
version = "1.0";
src = fetchFromGitHub {
owner = "hannesbraun";
repo = pname;
rev = "v${version}";
sha256 = "sha256-xokV4Af0evdo73D9JObzAmY1wD0aUyXiI0Z7BUN0m+M=";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ lv2 ];
cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/lib/lv2" ];
meta = with lib; {
description = "Airwindows plugins (ported to LV2)";
homepage = "https://github.com/hannesbraun/airwindows-lv2";
license = licenses.mit;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,31 @@
{ lib, stdenv, fetchurl, alsa-lib, jack2, minixml, pkg-config }:
stdenv.mkDerivation rec {
pname = "aj-snapshot" ;
version = "0.9.9";
src = fetchurl {
url = "mirror://sourceforge/aj-snapshot/aj-snapshot-${version}.tar.bz2";
sha256 = "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil";
};
doCheck = false;
nativeBuildInputs = [ pkg-config ];
buildInputs = [ alsa-lib minixml jack2 ];
meta = with lib; {
description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
longDescription = ''
Aj-snapshot is a small program that can be used to make snapshots of the connections made between JACK and/or ALSA clients.
Because JACK can provide both audio and MIDI support to programs, aj-snapshot can store both types of connections for JACK.
ALSA, on the other hand, only provides routing facilities for MIDI clients.
You can also run aj-snapshot in daemon mode if you want to have your connections continually restored.
'';
homepage = "http://aj-snapshot.sourceforge.net/";
license = licenses.gpl2;
maintainers = [ maintainers.mrVanDalo ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,38 @@
{ mkDerivation, fetchurl, lib
, extra-cmake-modules, kdoctools
, qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
, karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
, fftw, phonon, plasma-framework, threadweaver
, curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
}:
mkDerivation rec {
pname = "amarok";
version = "2.9.71";
src = fetchurl {
url = "mirror://kde/unstable/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "0kz8wixjmy4yxq2gk11ybswryxb6alfymd3bzcar9xinscllhh3a";
};
outputs = [ "out" "doc" ];
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
propagatedBuildInputs = [
qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
karchive kcmutils kconfig kdnssd kguiaddons kinit kirigami2 knewstuff knotifyconfig ktexteditor kwindowsystem
phonon plasma-framework threadweaver
curl fftw ffmpeg gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
pcre snappy taglib taglib_extras
];
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://amarok.kde.org";
description = "A powerful music player with an intuitive interface";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ peterhoeg ];
};
}

View file

@ -0,0 +1,77 @@
{ lib
, stdenv
, fetchFromGitLab
, rustPlatform
, desktop-file-utils
, appstream-glib
, meson
, ninja
, pkg-config
, reuse
, m4
, wrapGAppsHook4
, glib
, gtk4
, gst_all_1
, libadwaita
, dbus
}:
stdenv.mkDerivation rec {
pname = "amberol";
version = "0.7.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = pname;
rev = version;
hash = "sha256-cBHFyPqhgcFOeYqMhF1aX3XCGAtqEZpI7Mj7b78Etmo=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-GaMJsIrTbhI1tmahEMlI1v5hmjw+tFEv9Wdne/kiYIA=";
};
postPatch = ''
patchShebangs build-aux
'';
nativeBuildInputs = [
appstream-glib
desktop-file-utils
meson
ninja
pkg-config
reuse
m4
wrapGAppsHook4
] ++ (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [
glib
gtk4
libadwaita
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gst_all_1.gst-libav
dbus
];
meta = with lib; {
homepage = "https://gitlab.gnome.org/World/amberol";
description = "A small and simple sound and music player";
maintainers = with maintainers; [ linsui ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkg-config
, wafHook, python3 }:
stdenv.mkDerivation rec {
pname = "ams-lv2";
version = "1.2.2";
src = fetchFromGitHub {
owner = "blablack";
repo = "ams-lv2";
rev = version;
sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk";
};
nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ];
meta = with lib; {
description = "An LV2 port of the internal modules found in Alsa Modular Synth";
homepage = "https://github.com/blablack/ams-lv2";
license = licenses.gpl3;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
# Build uses `-msse` and `-mfpmath=sse`
badPlatforms = [ "aarch64-linux" ];
};
}

View file

@ -0,0 +1,48 @@
{ lib, stdenv
, fetchgit
, automake
, alsa-lib
, ladspaH
, libjack2
, fftw
, zita-alsa-pcmi
, qt5
, pkg-config
, autoreconfHook
}:
stdenv.mkDerivation rec {
pname = "ams";
version = "unstable-2019-04-27";
src = fetchgit {
url = "https://git.code.sf.net/p/alsamodular/ams.git";
sha256 = "0qdyz5llpa94f3qx1xi1mz97vl5jyrj1mqff28p5g9i5rxbbk8z9";
rev = "3250bbcfea331c4fcb9845305eebded80054973d";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
qt5.wrapQtAppsHook
];
buildInputs = [
alsa-lib
ladspaH
libjack2
fftw
zita-alsa-pcmi
] ++ (with qt5; [
qtbase
qttools
]);
meta = with lib; {
description = "Realtime modular synthesizer for ALSA";
homepage = "http://alsamodular.sourceforge.net";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ sjfloat ];
};
}

View file

@ -0,0 +1,32 @@
{ appimageTools, lib, fetchurl }:
let
pname = "apple-music-electron";
version = "1.5.5";
name = "Apple.Music-${version}";
src = fetchurl {
url = "https://github.com/cryptofyre/Apple-Music-Electron/releases/download/v${version}/${name}.AppImage";
sha256 = "1gb6j3nvam9fcpsgiv56jccg9a4y14vzsyw11h3hckaigy90knpx";
};
appimageContents = appimageTools.extract { inherit name src; };
in appimageTools.wrapType2 {
inherit name src;
extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname}
install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
meta = with lib; {
description = "Unofficial Apple Music application without having to bother with a Web Browser or iTunes";
homepage = "https://github.com/iiFir3z/Apple-Music-Electron";
license = licenses.mit;
maintainers = [ maintainers.ivar ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,12 @@
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -379,8 +379,7 @@ def build(bld):
# remove '${DEFINES_ST:DEFINES}' from run_str.
# x86_64-w64-mingw32-as (mingw) -D flag is for debug messages
- if bld.env['build_target'] == 'mingw':
- class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
+ class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
# operate on copy to avoid adding sources twice
sources = list(libardour_sources)

View file

@ -0,0 +1,190 @@
{ lib, stdenv
, fetchgit
, alsa-lib
, aubio
, boost
, cairomm
, cppunit
, curl
, dbus
, doxygen
, ffmpeg
, fftw
, fftwSinglePrec
, flac
, glibc
, glibmm
, graphviz
, gtkmm2
, harvid
, itstool
, libarchive
, libjack2
, liblo
, libogg
, libpulseaudio
, librdf_raptor
, librdf_rasqal
, libsamplerate
, libsigcxx
, libsndfile
, libusb1
, libuv
, libwebsockets
, libxml2
, libxslt
, lilv
, lrdf
, lv2
, makeWrapper
, pango
, perl
, pkg-config
, python3
, readline
, rubberband
, serd
, sord
, soundtouch
, sratom
, suil
, taglib
, vamp-plugin-sdk
, wafHook
, xjadeo
, videoSupport ? true
}:
stdenv.mkDerivation rec {
pname = "ardour";
version = "6.9";
# don't fetch releases from the GitHub mirror, they are broken
src = fetchgit {
url = "git://git.ardour.org/ardour/ardour.git";
rev = version;
sha256 = "0vlcbd70y0an881zv87kc3akmaiz4w7whsy3yaiiqqjww35jg1mm";
};
patches = [
# AS=as in the environment causes build failure https://tracker.ardour.org/view.php?id=8096
./as-flags.patch
];
nativeBuildInputs = [
doxygen
graphviz # for dot
itstool
makeWrapper
perl
pkg-config
python3
wafHook
];
buildInputs = [
alsa-lib
aubio
boost
cairomm
cppunit
curl
dbus
ffmpeg
fftw
fftwSinglePrec
flac
glibmm
gtkmm2
itstool
libarchive
libjack2
liblo
libogg
libpulseaudio
librdf_raptor
librdf_rasqal
libsamplerate
libsigcxx
libsndfile
libusb1
libuv
libwebsockets
libxml2
libxslt
lilv
lrdf
lv2
pango
perl
python3
readline
rubberband
serd
sord
soundtouch
sratom
suil
taglib
vamp-plugin-sdk
] ++ lib.optionals videoSupport [ harvid xjadeo ];
wafConfigureFlags = [
"--cxx11"
"--docs"
"--freedesktop"
"--no-phone-home"
"--optimize"
"--ptformat"
"--run-tests"
"--test"
];
# removed because it fixes https://tracker.ardour.org/view.php?id=8161 and https://tracker.ardour.org/view.php?id=8437
# "--use-external-libs"
# Ardour's wscript requires git revision and date to be available.
# Since they are not, let's generate the file manually.
postPatch = ''
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = "${version}"; const char* date = ""; }\n' > libs/ardour/revision.cc
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
patchShebangs ./tools/
substituteInPlace libs/ardour/video_tools_paths.cc \
--replace 'ffmpeg_exe = X_("");' 'ffmpeg_exe = X_("${ffmpeg}/bin/ffmpeg");' \
--replace 'ffprobe_exe = X_("");' 'ffprobe_exe = X_("${ffmpeg}/bin/ffprobe");'
'';
postInstall = ''
# wscript does not install these for some reason
install -vDm 644 "build/gtk2_ardour/ardour.xml" \
-t "$out/share/mime/packages"
install -vDm 644 "build/gtk2_ardour/ardour6.desktop" \
-t "$out/share/applications"
for size in 16 22 32 48 256 512; do
install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
done
install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
'' + lib.optionalString videoSupport ''
# `harvid` and `xjadeo` must be accessible in `PATH` for video to work.
wrapProgram "$out/bin/ardour6" \
--prefix PATH : "${lib.makeBinPath [ harvid xjadeo ]}"
'';
LINKFLAGS = "-lpthread";
meta = with lib; {
description = "Multi-track hard disk recording software";
longDescription = ''
Ardour is a digital audio workstation (DAW), You can use it to
record, edit and mix multi-track audio and midi. Produce your
own CDs. Mix video soundtracks. Experiment with new ideas about
music and sound.
Please consider supporting the ardour project financially:
https://community.ardour.org/donate
'';
homepage = "https://ardour.org/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ goibhniu magnetophon mitchmindtree ];
};
}

View file

@ -0,0 +1,46 @@
{ lib
, stdenv
, fetchurl
, pkg-config
, intltool
, avahi
, curl
, dbus-glib
, gettext
, gtk3
, libmpdclient
, libsoup
, libxml2
, taglib
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "ario";
version = "1.6";
src = fetchurl {
url = "mirror://sourceforge/ario-player/${pname}-${version}.tar.gz";
sha256 = "16nhfb3h5pc7flagfdz7xy0iq6kvgy6h4bfpi523i57rxvlfshhl";
};
nativeBuildInputs = [ pkg-config gettext intltool wrapGAppsHook ];
buildInputs = [
avahi
curl
dbus-glib
gtk3
libmpdclient
libsoup
libxml2
taglib
];
meta = with lib; {
description = "GTK client for MPD (Music player daemon)";
homepage = "http://ario-player.sourceforge.net/";
license = licenses.gpl2Plus;
maintainers = [ maintainers.garrison ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchFromGitHub , cairomm, cmake, libjack2, libpthreadstubs, libXdmcp, libxshmfence, libsndfile, lv2, ntk, pkg-config }:
stdenv.mkDerivation rec {
pname = "artyFX";
# Fix build with lv2 1.18: https://github.com/openAVproductions/openAV-ArtyFX/pull/41/commits/492587461b50d140455aa3c98d915eb8673bebf0
version = "unstable-2020-04-28";
src = fetchFromGitHub {
owner = "openAVproductions";
repo = "openAV-ArtyFX";
rev = "8c542627d936a01b1d97825e7f26a8e95633f7aa";
sha256 = "0wwg8ivnpyy0235bapjy4g0ij85zq355jwi6c1nkrac79p4z9ail";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ cairomm libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk ];
meta = with lib; {
homepage = "http://openavproductions.com/artyfx/";
description = "A LV2 plugin bundle of artistic realtime effects";
license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
# Build uses `-msse` and `-mfpmath=sse`
badPlatforms = [ "aarch64-linux" ];
};
}

View file

@ -0,0 +1,34 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, meson
, ninja
, libmpdclient
}:
stdenv.mkDerivation rec {
pname = "ashuffle";
version = "3.12.5";
src = fetchFromGitHub {
owner = "joshkunz";
repo = "ashuffle";
rev = "v${version}";
sha256 = "sha256-dPgv6EzRxRdHkGvys601Bkg9Srd8oEjoE9jbAin74Vk=";
fetchSubmodules = true;
};
dontUseCmakeConfigure = true;
nativeBuildInputs = [ cmake pkg-config meson ninja ];
buildInputs = [ libmpdclient ];
meta = with lib; {
homepage = "https://github.com/joshkunz/ashuffle";
description = "Automatic library-wide shuffle for mpd";
maintainers = [ maintainers.tcbravo ];
platforms = platforms.unix;
license = licenses.mit;
};
}

View file

@ -0,0 +1,52 @@
{ lib, stdenv, fetchurl, makeWrapper, gtk2, libcddb, intltool, pkg-config, cdparanoia
, mp3Support ? false, lame
, oggSupport ? true, vorbis-tools
, flacSupport ? true, flac
, opusSupport ? false, opusTools
, wavpackSupport ? false, wavpack
#, musepackSupport ? false, TODO: mpcenc
, monkeysAudioSupport ? false, monkeysAudio
#, aacSupport ? false, TODO: neroAacEnc
}:
with lib;
stdenv.mkDerivation rec {
version = "2.9.7";
pname = "asunder";
src = fetchurl {
url = "http://littlesvr.ca/asunder/releases/${pname}-${version}.tar.bz2";
sha256 = "1x3l308ss0iqhz90qyjb94gyd8b4piyrm2nzjmg5kf049k9prjf1";
};
nativeBuildInputs = [ intltool makeWrapper pkg-config ];
buildInputs = [ gtk2 libcddb ];
runtimeDeps =
optional mp3Support lame ++
optional oggSupport vorbis-tools ++
optional flacSupport flac ++
optional opusSupport opusTools ++
optional wavpackSupport wavpack ++
optional monkeysAudioSupport monkeysAudio ++
[ cdparanoia ];
postInstall = ''
wrapProgram "$out/bin/asunder" \
--prefix PATH : "${makeBinPath runtimeDeps}"
'';
meta = {
description = "A graphical Audio CD ripper and encoder for Linux";
homepage = "http://littlesvr.ca/asunder/index.php";
license = licenses.gpl2;
maintainers = with maintainers; [ mudri ];
platforms = platforms.linux;
longDescription = ''
Asunder is a graphical Audio CD ripper and encoder for Linux. You can use
it to save tracks from an Audio CD as any of WAV, MP3, OGG, FLAC, Opus,
WavPack, Musepack, AAC, and Monkey's Audio files.
'';
};
}

View file

@ -0,0 +1,37 @@
{ lib, stdenv, fetchurl, sndio, libbsd }:
stdenv.mkDerivation rec {
pname = "aucatctl";
version = "0.1";
src = fetchurl {
url = "http://www.sndio.org/${pname}-${version}.tar.gz";
sha256 = "524f2fae47db785234f166551520d9605b9a27551ca438bd807e3509ce246cf0";
};
buildInputs = [ sndio ]
++ lib.optional (!stdenv.isDarwin && !stdenv.targetPlatform.isBSD)
libbsd;
outputs = [ "out" "man" ];
preBuild = ''
makeFlagsArray+=("PREFIX=$out")
'' + lib.optionalString
(!stdenv.isDarwin && !stdenv.targetPlatform.isBSD) ''
makeFlagsArray+=(LDADD="-lsndio -lbsd")
# Fix warning about implicit declaration of function 'strlcpy'
substituteInPlace aucatctl.c \
--replace '#include <string.h>' '#include <bsd/string.h>'
'';
meta = with lib; {
description =
"The aucatctl utility sends MIDI messages to control sndiod and/or aucat volumes";
homepage = "http://www.sndio.org";
license = licenses.isc;
maintainers = with maintainers; [ sna ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,70 @@
{
mkDerivation, lib, fetchurl, fetchpatch,
gettext, pkg-config,
qtbase,
alsa-lib, curl, faad2, ffmpeg, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
libcddb, libcdio, libcdio-paranoia, libcue, libjack2, libmad, libmms, libmodplug,
libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
wavpack, libopenmpt
}:
mkDerivation rec {
pname = "audacious";
version = "4.1";
src = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
sha256 = "0p734psjjvjcmla2hg5h6a9v1prvy63jj9xm2g2ngs49jy7qan0z";
};
pluginsSrc = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
sha256 = "0k0xnqmxi5lna034i2cnzvfzrykxmv4fbs1nkrc9sd2ma1igrmns";
};
nativeBuildInputs = [ gettext pkg-config ];
buildInputs = [
# Core dependencies
qtbase
# Plugin dependencies
alsa-lib curl faad2 ffmpeg flac fluidsynth gdk-pixbuf lame libbs2b libcddb
libcdio libcdio-paranoia libcue libjack2 libmad libmms libmodplug libmowgli
libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
libopenmpt
];
configureFlags = [ "--disable-gtk" ];
# Here we build both audacious and audacious-plugins in one
# derivation, since they really expect to be in the same prefix.
# This is slighly tricky.
builder = builtins.toFile "builder.sh" ''
# First build audacious.
(
source $stdenv/setup
genericBuild
)
# Then build the plugins.
(
nativeBuildInputs="$out $nativeBuildInputs" # to find audacious
source $stdenv/setup
rm -rfv audacious-*
src=$pluginsSrc
genericBuild
)
'';
meta = with lib; {
description = "Audio player";
homepage = "https://audacious-media-player.org/";
maintainers = with maintainers; [ eelco ramkromberg ttuegel ];
platforms = with platforms; linux;
license = with licenses; [
bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
gpl2 gpl3 lgpl2Plus #http://redmine.audacious-media-player.org/issues/46
];
};
}

View file

@ -0,0 +1,205 @@
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, cmake
, makeWrapper
, pkg-config
, python3
, gettext
, file
, libvorbis
, libmad
, libjack2
, lv2
, lilv
, serd
, sord
, sqlite
, sratom
, suil
, libsndfile
, soxr
, flac
, lame
, twolame
, expat
, libid3tag
, libopus
, libuuid
, ffmpeg_4
, soundtouch
, pcre
, portaudio # given up fighting their portaudio.patch?
, portmidi
, linuxHeaders
, alsa-lib
, at-spi2-core
, dbus
, libepoxy
, libXdmcp
, libXtst
, libpthreadstubs
, libsbsms_2_3_0
, libselinux
, libsepol
, libxkbcommon
, util-linux
, wxGTK
, libpng
, libjpeg
, AppKit ? null
, AudioToolbox ? null
, AudioUnit ? null
, Carbon ? null
, Cocoa ? null
, CoreAudio ? null
, CoreAudioKit ? null
, CoreServices ? null
, wxmac
}:
# TODO
# 1. as of 3.0.2, GTK2 is still the recommended version ref https://www.audacityteam.org/download/source/ check if that changes in future versions
# 2. detach sbsms
let
inherit (lib) optionals;
pname = "audacity";
version = "3.1.3";
wxWidgets_src = fetchFromGitHub {
owner = pname;
repo = "wxWidgets";
rev = "v${version}-${pname}";
sha256 = "sha256-KrmYYv23DHBYKIuxMYBioCQ2e4KWdgmuREnimtm0XNU=";
fetchSubmodules = true;
};
wxGTK' = wxGTK.overrideAttrs (oldAttrs: rec {
src = wxWidgets_src;
});
wxmac' = wxmac.overrideAttrs (oldAttrs: rec {
src = wxWidgets_src;
});
in stdenv.mkDerivation rec {
inherit pname version;
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "Audacity-${version}";
sha256 = "sha256-sdI4paxIHDZgoWTCekjrkFR4JFpQC6OatcnJdVXCCZk=";
};
postPatch = ''
mkdir src/private
'' + lib.optionalString stdenv.isLinux ''
substituteInPlace libraries/lib-files/FileNames.cpp \
--replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
'';
nativeBuildInputs = [
cmake
gettext
pkg-config
python3
] ++ optionals stdenv.isLinux [
linuxHeaders
makeWrapper
];
buildInputs = [
expat
ffmpeg_4
file
flac
lame
libid3tag
libjack2
libmad
libopus
libsbsms_2_3_0
libsndfile
libvorbis
lilv
lv2
pcre
portmidi
serd
sord
soundtouch
soxr
sqlite
sratom
suil
twolame
portaudio
] ++ optionals stdenv.isLinux [
alsa-lib # for portaudio
at-spi2-core
dbus
libepoxy
libXdmcp
libXtst
libpthreadstubs
libxkbcommon
libselinux
libsepol
libuuid
util-linux
wxGTK'
wxGTK'.gtk
] ++ optionals stdenv.isDarwin [
wxmac'
AppKit
Cocoa
CoreAudioKit
AudioUnit AudioToolbox CoreAudio CoreServices Carbon # for portaudio
libpng
libjpeg
];
cmakeFlags = [
"-DAUDACITY_REV_LONG=nixpkgs"
"-DAUDACITY_REV_TIME=nixpkgs"
"-DDISABLE_DYNAMIC_LOADING_FFMPEG=ON"
"-Daudacity_conan_enabled=Off"
"-Daudacity_use_ffmpeg=loaded"
];
doCheck = false; # Test fails
# Replace audacity's wrapper, to:
# - put it in the right place, it shouldn't be in "$out/audacity"
# - Add the ffmpeg dynamic dependency
postInstall = lib.optionalString stdenv.isLinux ''
rm "$out/audacity"
wrapProgram "$out/bin/audacity" \
--prefix LD_LIBRARY_PATH : "$out/lib/audacity":${lib.makeLibraryPath [ ffmpeg_4 ]} \
--suffix AUDACITY_MODULES_PATH : "$out/lib/audacity/modules" \
--suffix AUDACITY_PATH : "$out/share/audacity"
'';
meta = with lib; {
description = "Sound editor with graphical UI";
homepage = "https://www.audacityteam.org";
changelog = "https://github.com/audacity/audacity/releases";
license = with licenses; [
gpl2Plus
# Must be GPL3 when building with "technologies that require it,
# such as the VST3 audio plugin interface".
# https://github.com/audacity/audacity/discussions/2142.
gpl3
# Documentation.
cc-by-30
];
maintainers = with maintainers; [ lheckemann veprbl ];
platforms = platforms.unix;
# darwin-aarch due to qtbase broken for it.
# darwin-x86_64 due to
# https://logs.nix.ci/?attempt_id=5cbc4581-09b4-4148-82fe-0326411a56b3&key=nixos%2Fnixpkgs.152273.
broken = stdenv.isDarwin;
};
}

View file

@ -0,0 +1,44 @@
{ lib, stdenv, fetchurl
, pkg-config, intltool
, glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
, librsvg, wrapGAppsHook
, pulseaudioSupport ? true, libpulseaudio }:
stdenv.mkDerivation rec {
pname = "audio-recorder";
version = "2.1.3";
src = fetchurl {
name = "${pname}-${version}.tar.gz";
url = "${meta.homepage}/+archive/ubuntu/ppa/+files/audio-recorder_${version}%7Ebionic.tar.gz";
sha256 = "160pnmnmc9zwzyclsci3w1qwlgxkfx1y3x5ck6i587w78570an1r";
};
# https://bugs.launchpad.net/audio-recorder/+bug/1784622
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
buildInputs = [
glib dbus gtk3 librsvg libappindicator-gtk3
] ++ (with gst_all_1; [
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav
]) ++ lib.optional pulseaudioSupport libpulseaudio;
meta = with lib; {
description = "Audio recorder for GNOME and Unity Desktops";
longDescription = ''
This program allows you to record your favourite music or audio to a file.
It can record audio from your system soundcard, microphones, browsers and
webcams. Put simply; if it plays out of your loudspeakers you can record it.
This program has a timer that can start, stop or pause recording on certain
conditions such as audio level, file size and clock time. This recorder can
automatically record your Skype calls. It supports several audio (output)
formats such as OGG audio, Flac, MP3 and WAV.
'';
homepage = "https://launchpad.net/~audio-recorder";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.msteen ];
};
}

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, fetchurl
, fetchpatch
, gettext
, ncurses
, gtkGUI ? false
, pkg-config
, gtk2
}:
stdenv.mkDerivation rec {
pname = "aumix";
version = "2.9.1";
src = fetchurl {
url = "http://www.jpj.net/~trevor/aumix/releases/aumix-${version}.tar.bz2";
sha256 = "0a8fwyxnc5qdxff8sl2sfsbnvgh6pkij4yafiln0fxgg6bal7knj";
};
patches = [
# Pull Gentoo fix for -fno-common toolchains. Upstream does not
# seem to have the contacts
(fetchpatch {
name = "fno-common.patch";
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/aumix/files/aumix-2.9.1-fno-common.patch?id=496c9ec7355f06f6d1d19be780a6981503e6df1f";
sha256 = "0qwylhx1hawsmx1pc7ykrjq9phksc73dq9rss6ggq15n3ggnc95y";
})
];
buildInputs = [ gettext ncurses ]
++ lib.optionals gtkGUI [ pkg-config gtk2 ];
meta = with lib; {
description = "Audio mixer for X and the console";
longDescription = ''
Aumix adjusts an audio mixer from X, the console, a terminal,
the command line or a script.
'';
homepage = "http://www.jpj.net/~trevor/aumix.html";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchzip }:
stdenv.mkDerivation rec {
pname = "autotalent";
version = "0.2";
src = fetchzip {
url = "http://tombaran.info/${pname}-${version}.tar.gz";
sha256 = "19srnkghsdrxxlv2c7qimvyslxz63r97mkxfq78vbg654l3qz1a6";
};
makeFlags = [
"INSTALL_PLUGINS_DIR=$(out)/lib/ladspa"
];
# To avoid name clashes, plugins should be compiled with symbols hidden, except for `ladspa_descriptor`:
preConfigure = ''
sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
sed -r 's/^const LADSPA_Descriptor \*/__attribute__ ((visibility ("default"))) \0/' -i autotalent.c
'';
meta = with lib; {
homepage = "http://tombaran.info/autotalent.html";
description = "A real-time pitch correction LADSPA plugin (no MIDI control)";
license = licenses.gpl2;
maintainers = [ maintainers.michalrus ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,46 @@
{ mkDerivation
, stdenv
, lib
, fetchFromGitHub
, qmake
, pkg-config
, qttools
, qtbase
, rtaudio
, rtmidi
}:
mkDerivation rec {
pname = "bambootracker";
version = "0.5.0";
src = fetchFromGitHub {
owner = "BambooTracker";
repo = "BambooTracker";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "1mpbvhsmrn0wdmxfp3n5dwv4474qlhy47r3vwc2jwdslq6vgl1fa";
};
nativeBuildInputs = [ qmake qttools pkg-config ];
buildInputs = [ qtbase rtaudio rtmidi ];
qmakeFlags = [ "CONFIG+=system_rtaudio" "CONFIG+=system_rtmidi" ];
postConfigure = "make qmake_all";
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv $out/{bin,Applications}/BambooTracker.app
ln -s $out/{Applications/BambooTracker.app/Contents/MacOS,bin}/BambooTracker
'';
meta = with lib; {
description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
homepage = "https://bambootracker.github.io/BambooTracker/";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ OPNA2608 ];
};
}

View file

@ -0,0 +1,70 @@
{ lib, stdenv, fetchurl, libXmu, libXt, libX11, libXext, libXxf86vm, libjack2
, makeWrapper
}:
let
rpath = lib.makeLibraryPath
[ libXmu libXt libX11 libXext libXxf86vm libjack2 ];
in
stdenv.mkDerivation rec {
pname = "baudline";
version = "1.08";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "http://www.baudline.com/baudline_${version}_linux_x86_64.tar.gz";
sha256 = "09fn0046i69in1jpizkzbaq5ggij0mpflcsparyskm3wh71mbzvr";
}
else if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
url = "http://www.baudline.com/baudline_${version}_linux_i686.tar.gz";
sha256 = "1waip5pmcf5ffcfvn8lf1rvsaq2ab66imrbfqs777scz7k8fhhjb";
}
else
throw "baudline isn't supported (yet?) on ${stdenv.hostPlatform.system}";
nativeBuildInputs = [ makeWrapper ];
# Prebuilt binary distribution.
# "patchelf --set-rpath" seems to break the application (cannot start), using
# LD_LIBRARY_PATH wrapper script instead.
dontBuild = true;
installPhase = ''
mkdir -p "$out/bin"
mkdir -p "$out/libexec/baudline"
cp -r . "$out/libexec/baudline/"
interpreter="$(echo ${stdenv.cc.libc}/lib/ld-linux*)"
for prog in "$out"/libexec/baudline/baudline*; do
patchelf --interpreter "$interpreter" "$prog"
ln -sr "$prog" "$out/bin/"
done
for prog in "$out"/bin/*; do
wrapProgram "$prog" --prefix LD_LIBRARY_PATH : ${rpath}
done
'';
meta = with lib; {
description = "Scientific signal analysis application";
longDescription = ''
Baudline is a time-frequency browser designed for scientific
visualization of the spectral domain. Signal analysis is performed by
Fourier, correlation, and raster transforms that create colorful
spectrograms with vibrant detail. Conduct test and measurement
experiments with the built in function generator, or play back audio
files with a multitude of effects and filters. The baudline signal
analyzer combines fast digital signal processing, versatile high speed
displays, and continuous capture tools for hunting down and studying
elusive signal characteristics.
'';
homepage = "http://www.baudline.com/";
# See http://www.baudline.com/faq.html#licensing_terms.
# (Do NOT (re)distribute on hydra.)
license = licenses.unfree;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
stdenv.mkDerivation rec {
pname = "bchoppr";
version = "1.10.10";
src = fetchFromGitHub {
owner = "sjaehn";
repo = pname;
rev = version;
sha256 = "sha256-LNPG/ETRmgPv8LsYVHol4p5oRCvg+dSYVEe61i8Dvz8=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ cairo libX11 lv2 ];
installFlags = [ "PREFIX=$(out)" ];
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://github.com/sjaehn/BChoppr";
description = "An audio stream chopping LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,187 @@
Index: beast-0.7.1/shell/Makefile.in
===================================================================
--- beast-0.7.1.orig/shell/Makefile.in
+++ beast-0.7.1/shell/Makefile.in
@@ -859,10 +859,7 @@ check-before: check-installation
check-installation:
@for p in $(bin_PROGRAMS) ; do \
pp="$(DESTDIR)$(bindir)/$$p" ; \
- echo "TEST: test -x \"$$pp\"" ; \
- test -x "$$pp" || \
- { echo "Failed to verify installation of executable: $$pp"; \
- exit 1 ; } \
+ echo "TEST: test -x \"$$pp\" Test disabled" ; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
Index: beast-0.7.1/shell/Makefile.am
===================================================================
--- beast-0.7.1.orig/shell/Makefile.am
+++ beast-0.7.1/shell/Makefile.am
@@ -859,10 +859,7 @@ check-before: check-installation
check-installation:
@for p in $(bin_PROGRAMS) ; do \
pp="$(DESTDIR)$(bindir)/$$p" ; \
- echo "TEST: test -x \"$$pp\"" ; \
- test -x "$$pp" || \
- { echo "Failed to verify installation of executable: $$pp"; \
- exit 1 ; } \
+ echo "TEST: test -x \"$$pp\" Test disabled" ; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
Index: beast-0.7.1/birnet/birnettests.h
===================================================================
--- beast-0.7.1.orig/birnet/birnettests.h
+++ beast-0.7.1/birnet/birnettests.h
@@ -27,6 +27,7 @@
#include <glib.h>
#include <string.h>
+#include <signal.h>
BIRNET_EXTERN_C_BEGIN();
Index: beast-0.7.1/tools/bseloopfuncs.c
===================================================================
--- beast-0.7.1.orig/tools/bseloopfuncs.c
+++ beast-0.7.1/tools/bseloopfuncs.c
@@ -21,6 +21,7 @@
#include <string.h>
#include <stdio.h>
#include <math.h>
+#include <signal.h>
typedef struct {
gdouble score;
--- beast-0.7.1.orig/bse/Makefile.am 2008-06-01 13:12:28.116708321 +0200
+++ beast-0.7.1/bse/Makefile.am 2008-06-01 13:12:40.000000000 +0200
@@ -10,7 +10,7 @@
# need -I$(top_builddir) for <sfi/sficonfig.h>
# need -I$(srcdir) for "bseserver.h" in .genprc.c
# need -I. (builddir) for "bsecore.genidl.hh" in bsecore.cc
-INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
+INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
DEFS += $(strip \
$(patsubst %, -DG_LOG_DOMAIN=\"BSE\" -DBSE_COMPILATION, \
$(filter $(<F), $(bse_sources) $(bse_sources))) \
--- beast-0.7.1.orig/bse/zintern/Makefile.am 2008-06-01 13:14:25.880028999 +0200
+++ beast-0.7.1/bse/zintern/Makefile.am 2008-06-01 13:14:38.000000000 +0200
@@ -4,7 +4,7 @@
## GNU Lesser General Public License version 2 or any later version.
include $(top_srcdir)/Makefile.decl
-INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
+INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
ZFILE_DEFS = $(strip \
wave-mono $(srcdir)/wave-mono.bse \
--- a/configure.in 2008-06-01 15:19:46.000000000 +0200
+++ b/configure.in 2008-06-01 15:27:45.000000000 +0200
@@ -159,39 +159,33 @@
dnl # Define package requirements.
dnl #
dnl ## include acintltool.m4 to provide IT_PROG_INTLTOOL
-builtin(include, acintltool.m4)dnl
-AC_DEFUN([AC_I18N_REQUIREMENTS],
-[
- ALL_LINGUAS=`cat "$srcdir/po/LINGUAS" | grep -v '^#' | xargs echo -n `
- AC_SUBST(ALL_LINGUAS)
- AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/po/LINGUAS'])
-
- dnl # versioned BEAST gettext domain (po/)
- BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION # version without -rcZ
- AC_SUBST(BST_GETTEXT_DOMAIN)
- AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
- GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
- AC_SUBST(GETTEXT_PACKAGE)
-
- dnl # locale directory for all domains
- dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
- saved_prefix="$prefix"
- saved_exec_prefix="$exec_prefix"
- test "x$prefix" = xNONE && prefix=$ac_default_prefix
- test "x$exec_prefix" = xNONE && exec_prefix=$prefix
- if test "x$CATOBJEXT" = "x.mo" ; then
- beastlocaledir=`eval echo "${libdir}/locale"`
- else
- beastlocaledir=`eval echo "${datadir}/locale"`
- fi
- exec_prefix="$saved_exec_prefix"
- prefix="$saved_prefix"
- AC_SUBST(beastlocaledir)
-
- dnl # do gettext checks and prepare for intltool
- AM_GLIB_GNU_GETTEXT
- IT_PROG_INTLTOOL
-])
+IT_PROG_INTLTOOL([0.35.0])
+
+dnl # versioned BEAST gettext domain (po/)
+BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION # version without -rcZ
+AC_SUBST(BST_GETTEXT_DOMAIN)
+AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
+GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
+AC_SUBST(GETTEXT_PACKAGE)
+
+dnl # locale directory for all domains
+dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
+saved_prefix="$prefix"
+saved_exec_prefix="$exec_prefix"
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+if test "x$CATOBJEXT" = "x.mo" ; then
+ beastlocaledir=`eval echo "${libdir}/locale"`
+else
+ beastlocaledir=`eval echo "${datadir}/locale"`
+fi
+exec_prefix="$saved_exec_prefix"
+prefix="$saved_prefix"
+AC_SUBST(beastlocaledir)
+
+dnl # do gettext checks and prepare for intltool
+AM_GLIB_GNU_GETTEXT
+
AC_DEFUN([AC_SFI_REQUIREMENTS],
[
dnl # check for GLib libs, libbirnet already provides gthread-2.0 and glib-2.0
@@ -570,7 +564,6 @@
AC_BIRNET_REQUIREMENTS
# Check requirement sets
-AC_I18N_REQUIREMENTS
AC_SFI_REQUIREMENTS
AC_BSE_REQUIREMENTS
AC_BSESCM_REQUIREMENTS
--- a/po/POTFILES.in 2008-06-22 15:12:10.000000000 +0200
+++ b/po/POTFILES.in 2008-06-22 15:13:28.000000000 +0200
@@ -131,3 +131,29 @@
plugins/davxtalstrings.c
plugins/freeverb/bsefreeverb.c
tools/bsewavetool.cc
+
+beast-gtk/bstgentypes.c
+birnet/birnetcpu.cc
+birnet/birnetutils.hh
+bse/bsebus.genprc.c
+bse/bsebusmodule.genidl.hh
+bse/bsecontainer.genprc.c
+bse/bsecore.genidl.hh
+bse/bseieee754.h
+bse/bseladspamodule.c
+bse/bseparasite.genprc.c
+bse/bsesong.genprc.c
+bse/bsesource.genprc.c
+bse/bsetrack.genprc.c
+plugins/artscompressor.genidl.hh
+plugins/bseamplifier.genidl.hh
+plugins/bsebalance.genidl.hh
+plugins/bsecontribsampleandhold.genidl.hh
+plugins/bsenoise.genidl.hh
+plugins/bsequantizer.genidl.hh
+plugins/bsesummation.genidl.hh
+plugins/davbassfilter.genidl.hh
+plugins/davchorus.genidl.hh
+plugins/standardguspatchenvelope.genidl.hh
+plugins/standardsaturator.genidl.hh
+tests/latency/bselatencytest.genidl.hh

View file

@ -0,0 +1,148 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchzip
, cmake
, pkg-config
, ninja
, makeWrapper
, libjack2
, alsa-lib
, alsa-tools
, freetype
, libusb1
, libX11
, libXrandr
, libXinerama
, libXext
, libXcursor
, libXScrnSaver
, libGL
, libxcb
, xcbutil
, libxkbcommon
, xcbutilkeysyms
, xcb-util-cursor
, gtk3
, webkitgtk
, python3
, curl
, pcre
, mount
, gnome
, Cocoa
, WebKit
, CoreServices
, CoreAudioKit
# It is not allowed to distribute binaries with the VST2 SDK plugin without a license
# (the author of Bespoke has such a licence but not Nix). VST3 should work out of the box.
# Read more in https://github.com/NixOS/nixpkgs/issues/145607
, enableVST2 ? false
}:
let
# equal to vst-sdk in ../oxefmsynth/default.nix
vst-sdk = stdenv.mkDerivation rec {
name = "vstsdk3610_11_06_2018_build_37";
src = fetchzip {
url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${name}.zip";
sha256 = "0da16iwac590wphz2sm5afrfj42jrsnkr1bxcy93lj7a369ildkj";
};
installPhase = ''
cp -r . $out
'';
};
in
stdenv.mkDerivation rec {
pname = "bespokesynth";
version = "1.1.0";
src = fetchFromGitHub {
owner = "BespokeSynth";
repo = pname;
rev = "v${version}";
sha256 = "sha256-PN0Q6/gI1PeMaF/8EZFGJdLR8JVHQZfWunAhOIQxkHw=";
fetchSubmodules = true;
};
cmakeBuildType = "Release";
cmakeFlags = lib.optionals enableVST2 [ "-DBESPOKE_VST2_SDK_LOCATION=${vst-sdk}/VST2_SDK" ];
nativeBuildInputs = [ python3 makeWrapper cmake pkg-config ninja ];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
# List obtained in https://github.com/BespokeSynth/BespokeSynth/blob/main/azure-pipelines.yml
libX11
libXrandr
libXinerama
libXext
libXcursor
libXScrnSaver
curl
gtk3
webkitgtk
freetype
libGL
libusb1
alsa-lib
libjack2
gnome.zenity
alsa-tools
libxcb
xcbutil
libxkbcommon
xcbutilkeysyms
xcb-util-cursor
pcre
mount
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
Cocoa
WebKit
CoreServices
CoreAudioKit
];
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin (toString [
# Fails to find fp.h on its own
"-isystem ${CoreServices}/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/CarbonCore.framework/Versions/Current/Headers/"
]);
postInstall =
if stdenv.hostPlatform.isDarwin then ''
mkdir -p $out/{Applications,bin}
mv Source/BespokeSynth_artefacts/${cmakeBuildType}/BespokeSynth.app $out/Applications/
# Symlinking confuses the resource finding about the actual location of the binary
# Resources are looked up relative to the executed file's location
makeWrapper $out/{Applications/BespokeSynth.app/Contents/MacOS,bin}/BespokeSynth
'' else ''
# Ensure zenity is available, or it won't be able to open new files.
# Ensure the python used for compilation is the same as the python used at run-time.
# jedi is also required for auto-completion.
# These X11 libs get dlopen'd, they cause visual bugs when unavailable.
wrapProgram $out/bin/BespokeSynth \
--prefix PATH : '${lib.makeBinPath [
gnome.zenity
(python3.withPackages (ps: with ps; [ jedi ]))
]}' \
--prefix LD_LIBRARY_PATH : '${lib.makeLibraryPath [
libXrandr
libXinerama
libXcursor
libXScrnSaver
]}'
'';
meta = with lib; {
description =
"Software modular synth with controllers support, scripting and VST";
homepage = "https://github.com/awwbees/BespokeSynth";
license = with licenses; [
gpl3Plus
] ++ lib.optional enableVST2 unfree;
maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
mainProgram = "BespokeSynth";
platforms = platforms.all;
};
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, autoreconfHook, fetchurl, libjack2, gtk2, pkg-config }:
stdenv.mkDerivation rec {
pname = "bitmeter";
version = "1.2";
src = fetchurl {
url = "https://devel.tlrmx.org/audio/source/${pname}-${version}.tar.gz";
sha256 = "09ck2gxqky701dc1p0ip61rrn16v0pdc7ih2hc2sd63zcw53g2a7";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ libjack2 gtk2 ];
patches = [
(fetchurl {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/bitmeter/files/bitmeter-1.2-fix-build-system.patch";
sha256 = "021mz6933iw7mpk6b9cbjr8naj6smbq1hwqjszlyx72qbwrrid7k";
})
];
meta = with lib; {
homepage = "http://devel.tlrmx.org/audio/bitmeter/";
description = "Also known as jack bitscope. Useful to detect denormals";
license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,98 @@
{ stdenv, fetchurl, alsa-lib, bzip2, cairo, dpkg, freetype, gdk-pixbuf
, wrapGAppsHook, gtk2, gtk3, harfbuzz, jdk, lib, xorg
, libbsd, libjack2, libpng, ffmpeg
, libxkbcommon
, makeWrapper, pixman, autoPatchelfHook
, xdg-utils, zenity, zlib }:
stdenv.mkDerivation rec {
pname = "bitwig-studio";
version = "1.3.16";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
sha256 = "0n0fxh9gnmilwskjcayvjsjfcs3fz9hn00wh7b3gg0cv3qqhich8";
};
nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
dontBuild = true;
dontWrapGApps = true; # we only want $gappsWrapperArgs here
buildInputs = with xorg; [
alsa-lib bzip2.out cairo freetype gdk-pixbuf gtk2 gtk3 harfbuzz libX11 libXau
libXcursor libXdmcp libXext libXfixes libXrender libbsd libjack2 libpng libxcb
libxkbfile pixman xcbutil xcbutilwm zlib
];
binPath = lib.makeBinPath [
xdg-utils zenity ffmpeg
];
installPhase = ''
mkdir -p $out
cp -r opt/bitwig-studio $out/libexec
# Use NixOS versions of these libs instead of the bundled ones.
(
cd $out/libexec/lib/bitwig-studio
rm libbz2.so* libxkbfile.so* libXcursor.so* libXau.so* \
libXdmcp.so* libpng16.so* libxcb*.so* libharfbuzz.so* \
libcairo.so* libfreetype.so*
ln -s ${bzip2.out}/lib/libbz2.so.1.0.6 libbz2.so.1.0
)
# Use our OpenJDK instead of Bitwigs bundled—and commercial!—one.
rm -rf $out/libexec/lib/jre
ln -s ${jdk.home}/jre $out/libexec/lib/jre
mkdir -p $out/bin
ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
cp -r usr/share $out/share
substitute usr/share/applications/bitwig-studio.desktop \
$out/share/applications/bitwig-studio.desktop \
--replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
'';
postFixup = ''
# Bitwigs `libx11-windowing-system.so` has several problems:
#
# • has some old version of libxkbcommon linked statically (ಠ_ಠ),
#
# • hardcodes path to `/usr/share/X11/xkb`,
#
# • even if we redirected it with libredirect (after adding
# `eaccess()` to libredirect!), their version of libxkbcommon
# is unable to parse our xkeyboardconfig. Been there, done that.
#
# However, it suffices to override theirs with our libxkbcommon
# in LD_PRELOAD. :-)
find $out -type f -executable \
-not -name '*.so.*' \
-not -name '*.so' \
-not -path '*/resources/*' | \
while IFS= read -r f ; do
wrapProgram $f \
--prefix PATH : "${binPath}" \
"''${gappsWrapperArgs[@]}" \
--set LD_PRELOAD "${libxkbcommon.out}/lib/libxkbcommon.so" || true
done
'';
meta = with lib; {
description = "A digital audio workstation";
longDescription = ''
Bitwig Studio is a multi-platform music-creation system for
production, performance and DJing, with a focus on flexible
editing tools and a super-fast workflow.
'';
homepage = "https://www.bitwig.com/";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ michalrus mrVanDalo ];
};
}

View file

@ -0,0 +1,16 @@
{ fetchurl, bitwig-studio1,
pulseaudio }:
bitwig-studio1.overrideAttrs (oldAttrs: rec {
pname = "bitwig-studio";
version = "2.5";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
sha256 = "1zkiz36lhck3qvl0cp0dq6pwbv4lx4sh9wh0ga92kx5zhvbjm098";
};
runtimeDependencies = [
pulseaudio
];
})

View file

@ -0,0 +1,81 @@
{ stdenv, fetchurl, alsa-lib, cairo, dpkg, freetype
, gdk-pixbuf, glib, gtk3, lib, xorg
, libglvnd, libjack2, ffmpeg
, libxkbcommon, xdg-utils, zlib, pulseaudio
, wrapGAppsHook, makeWrapper }:
stdenv.mkDerivation rec {
pname = "bitwig-studio";
version = "3.3.7";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
sha256 = "13jr45kzv0xjhhqk30qpq793349qyx8jpas4kl6i6bk3xfrd3fbz";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
unpackCmd = ''
mkdir -p root
dpkg-deb -x $curSrc root
'';
dontBuild = true;
dontWrapGApps = true; # we only want $gappsWrapperArgs here
buildInputs = with xorg; [
alsa-lib cairo freetype gdk-pixbuf glib gtk3 libxcb xcbutil xcbutilwm zlib libXtst libxkbcommon pulseaudio libjack2 libX11 libglvnd libXcursor stdenv.cc.cc.lib
];
binPath = lib.makeBinPath [
xdg-utils ffmpeg
];
ldLibraryPath = lib.strings.makeLibraryPath buildInputs;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r opt/bitwig-studio $out/libexec
ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
cp -r usr/share $out/share
substitute usr/share/applications/bitwig-studio.desktop \
$out/share/applications/bitwig-studio.desktop \
--replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
runHook postInstall
'';
postFixup = ''
# patchelf fails to set rpath on BitwigStudioEngine, so we use
# the LD_LIBRARY_PATH way
find $out -type f -executable \
-not -name '*.so.*' \
-not -name '*.so' \
-not -name '*.jar' \
-not -path '*/resources/*' | \
while IFS= read -r f ; do
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
wrapProgram $f \
"''${gappsWrapperArgs[@]}" \
--prefix PATH : "${binPath}" \
--suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
done
'';
meta = with lib; {
description = "A digital audio workstation";
longDescription = ''
Bitwig Studio is a multi-platform music-creation system for
production, performance and DJing, with a focus on flexible
editing tools and a super-fast workflow.
'';
homepage = "https://www.bitwig.com/";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ bfortz michalrus mrVanDalo ];
};
}

View file

@ -0,0 +1,80 @@
{ stdenv, fetchurl, alsa-lib, cairo, dpkg, freetype
, gdk-pixbuf, glib, gtk3, lib, xorg
, libglvnd, libjack2, ffmpeg
, libxkbcommon, xdg-utils, zlib, pulseaudio
, wrapGAppsHook, makeWrapper }:
stdenv.mkDerivation rec {
pname = "bitwig-studio";
version = "4.2.3";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
sha256 = "sha256-UCafrjrEwwHkhPum7sTOjtXzy7PNeK5/aeKg+b3CGJU=";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
unpackCmd = ''
mkdir -p root
dpkg-deb -x $curSrc root
'';
dontBuild = true;
dontWrapGApps = true; # we only want $gappsWrapperArgs here
buildInputs = with xorg; [
alsa-lib cairo freetype gdk-pixbuf glib gtk3 libxcb xcbutil xcbutilwm zlib libXtst libxkbcommon pulseaudio libjack2 libX11 libglvnd libXcursor stdenv.cc.cc.lib
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r opt/bitwig-studio $out/libexec
ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
cp -r usr/share $out/share
substitute usr/share/applications/com.bitwig.BitwigStudio.desktop \
$out/share/applications/com.bitwig.BitwigStudio.desktop \
--replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
runHook postInstall
'';
postFixup = ''
# patchelf fails to set rpath on BitwigStudioEngine, so we use
# the LD_LIBRARY_PATH way
find $out -type f -executable \
-not -name '*.so.*' \
-not -name '*.so' \
-not -name '*.jar' \
-not -name 'jspawnhelper' \
-not -path '*/resources/*' | \
while IFS= read -r f ; do
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
wrapProgram $f \
"''${gappsWrapperArgs[@]}" \
--prefix PATH : "${lib.makeBinPath [ xdg-utils ffmpeg ]}" \
--suffix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath buildInputs}"
done
find $out -type f -executable -name 'jspawnhelper' | \
while IFS= read -r f ; do
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
done
'';
meta = with lib; {
description = "A digital audio workstation";
longDescription = ''
Bitwig Studio is a multi-platform music-creation system for
production, performance and DJing, with a focus on flexible
editing tools and a super-fast workflow.
'';
homepage = "https://www.bitwig.com/";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ bfortz michalrus mrVanDalo ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, libX11, cairo, lv2, pkg-config, libsndfile }:
stdenv.mkDerivation rec {
pname = "bjumblr";
version = "1.6.8";
src = fetchFromGitHub {
owner = "sjaehn";
repo = "BJumblr";
rev = version;
sha256 = "sha256-qSoGmWUGaMjx/bkiCJ/qb4LBbuFPXXlJ0e9hrFBXzwE=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libX11 cairo lv2 libsndfile
];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://github.com/sjaehn/BJumblr";
description = "Pattern-controlled audio stream / sample re-sequencer LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View file

@ -0,0 +1,69 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, wrapGAppsHook
, desktop-file-utils
, appstream-glib
, python3Packages
, glib
, gtk4
, libadwaita
, gobject-introspection
, gst_all_1
}:
python3Packages.buildPythonApplication rec {
pname = "blanket";
version = "0.6.0";
src = fetchFromGitHub {
owner = "rafaelmardojai";
repo = "blanket";
rev = "refs/tags/${version}";
sha256 = "sha256-4gthT1x76IfXWkLaLMPtFS4TRlRGk5Enbu/k1jAHzwE=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook
desktop-file-utils
appstream-glib
];
buildInputs = [
glib
gtk4
libadwaita
gobject-introspection
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
];
propagatedBuildInputs = with python3Packages; [
pygobject3
];
# Broken with gobject-introspection setup hook
# https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
format = "other";
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
'';
meta = with lib; {
homepage = "https://github.com/rafaelmardojai/blanket";
description = "Listen to different sounds";
maintainers = with maintainers; [ onny ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,28 @@
{ stdenv, lib, fetchFromGitHub, xorg, cairo, lv2, libsndfile, pkg-config }:
stdenv.mkDerivation rec {
pname = "boops";
version = "1.8.2";
src = fetchFromGitHub {
owner = "sjaehn";
repo = "BOops";
rev = version;
sha256 = "0nvpawk58g189z96xnjs4pyri5az3ckdi9mhi0i9s0a7k4gdkarr";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorg.libX11 cairo lv2 libsndfile
];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://github.com/sjaehn/BOops";
description = "Sound glitch effect sequencer LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,40 @@
{ lib, stdenv, fetchurl, alsa-lib, libjack2, pkg-config, libpulseaudio, xorg }:
stdenv.mkDerivation rec {
pname = "bristol";
version = "0.60.11";
src = fetchurl {
url = "mirror://sourceforge/bristol/${pname}-${version}.tar.gz";
sha256 = "1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
alsa-lib libjack2 libpulseaudio xorg.libX11 xorg.libXext
xorg.xorgproto
];
patchPhase = "sed -i '41,43d' libbristolaudio/audioEngineJack.c"; # disable alsa/iatomic
configurePhase = "./configure --prefix=$out --enable-jack-default-audio --enable-jack-default-midi";
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: brightonCLI.o:/build/bristol-0.60.11/brighton/brightonCLI.c:139: multiple definition of
# `event'; brightonMixerMenu.o:/build/bristol-0.60.11/brighton/brightonMixerMenu.c:1182: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
preInstall = ''
sed -e "s@\`which bristol\`@$out/bin/bristol@g" -i bin/startBristol
sed -e "s@\`which brighton\`@$out/bin/brighton@g" -i bin/startBristol
'';
meta = with lib; {
description = "A range of synthesiser, electric piano and organ emulations";
homepage = "http://bristol.sourceforge.net";
license = licenses.gpl3;
platforms = ["x86_64-linux" "i686-linux"];
maintainers = [ maintainers.goibhniu ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
stdenv.mkDerivation rec {
pname = "bschaffl";
version = "1.4.8";
src = fetchFromGitHub {
owner = "sjaehn";
repo = pname;
rev = version;
sha256 = "sha256-zczDqJdUAN2oSyIRt9m3OnwOWXlwL4Yod8UMCXs5zM0=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ cairo libX11 lv2 ];
installFlags = [ "PREFIX=$(out)" ];
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://github.com/sjaehn/BSchaffl";
description = "Pattern-controlled MIDI amp & time stretch LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }:
stdenv.mkDerivation rec {
pname = "bsequencer";
version = "1.8.10";
src = fetchFromGitHub {
owner = "sjaehn";
repo = "BSEQuencer";
rev = version;
sha256 = "sha256-1PSICm5mw37nO3gkHA9MNUH+CFULeOZURjimYEA/dXA=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorg.libX11 cairo lv2
];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://github.com/sjaehn/BSEQuencer";
description = "Multi channel MIDI step sequencer LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }:
stdenv.mkDerivation rec {
pname = "bshapr";
version = "0.13";
src = fetchFromGitHub {
owner = "sjaehn";
repo = "BShapr";
rev = "v${version}";
sha256 = "sha256-9I4DPRl6i/VL8Etw3qLGZkP45BGsbxFxNOvRy3B3I+M=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorg.libX11 cairo lv2
];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://github.com/sjaehn/BShapr";
description = "Beat / envelope shaper LV2 plugin";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }:
stdenv.mkDerivation rec {
pname = "bslizr";
version = "1.2.16";
src = fetchFromGitHub {
owner = "sjaehn";
repo = "BSlizr";
rev = version;
sha256 = "sha256-5DvVkTz79CLvZMZ3XnI0COIfxnhERDSvzbVoJAcqNRI=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorg.libX11 cairo lv2
];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://github.com/sjaehn/BSlizr";
description = "Sequenced audio slicing effect LV2 plugin (step sequencer effect)";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View file

@ -0,0 +1,63 @@
{ lib
, stdenv
, fetchFromGitHub
, legacy ? false
, libinput
, pkg-config
, makeWrapper
, openal
, alure
, libXtst
, libX11
}:
let
inherit (lib) optionals;
in
stdenv.mkDerivation rec {
pname = "bucklespring";
version = "1.5.1";
src = fetchFromGitHub {
owner = "zevv";
repo = pname;
rev = "v${version}";
sha256 = "0prhqibivxzmz90k79zpwx3c97h8wa61rk5ihi9a5651mnc46mna";
};
nativeBuildInputs = [ pkg-config makeWrapper ];
buildInputs = [ openal alure ]
++ optionals (legacy) [ libXtst libX11 ]
++ optionals (!legacy) [ libinput ];
makeFlags = optionals (!legacy) [ "libinput=1" ];
installPhase = ''
runHook preInstall
mkdir -p $out/share/wav
cp -r $src/wav $out/share/.
install -D ./buckle.desktop $out/share/applications/buckle.desktop
install -D ./buckle $out/bin/buckle
wrapProgram $out/bin/buckle --add-flags "-p $out/share/wav"
runHook postInstall
'';
meta = with lib; {
description = "Nostalgia bucklespring keyboard sound";
longDescription = ''
When built with libinput (wayland or bare console),
users need to be in the input group to use this:
<code>users.users.alice.extraGroups = [ "input" ];</code>
'';
homepage = "https://github.com/zevv/bucklespring";
license = licenses.gpl2Only;
platforms = platforms.unix;
maintainers = [ maintainers.evils ];
};
}

View file

@ -0,0 +1,114 @@
{ lib
, a2jmidid
, coreutils
, libjack2
, fetchpatch
, fetchFromGitHub
, jack_capture
, pkg-config
, pulseaudioFull
, qtbase
, makeWrapper
, mkDerivation
, python3
}:
#ladish missing, claudia can't work.
#pulseaudio needs fixes (patchShebangs .pa ...)
#desktop needs icons and exec fixing.
mkDerivation rec {
version = "0.9.1";
pname = "cadence";
src = fetchFromGitHub {
owner = "falkTX";
repo = "Cadence";
rev = "v${version}";
sha256 = "sha256-QFC4wiVF8wphhrammxtc+VMZJpXY5OGHs6DNa21+6B8=";
};
patches = [
# Fix installation without DESTDIR
(fetchpatch {
url = "https://github.com/falkTX/Cadence/commit/1fd3275e7daf4b75f59ef1f85a9e2e93bd5c0731.patch";
sha256 = "0q791jsh8vmjg678dzhbp1ykq8xrrlxl1mbgs3g8if1ccj210vd8";
})
# Fix build with Qt 5.15
(fetchpatch {
url = "https://github.com/falkTX/Cadence/commit/c167f35fbb76c4246c730b29262a59da73010412.patch";
sha256 = "1gm9q6gx03sla5vcnisznc95pjdi2703f8b3mj2kby9rfx2pylyh";
})
];
postPatch = ''
libjackso=$(realpath ${lib.makeLibraryPath [libjack2]}/libjack.so.0);
substituteInPlace ./src/jacklib.py --replace libjack.so.0 $libjackso
substituteInPlace ./src/cadence.py --replace "/usr/bin/pulseaudio" \
"${lib.makeBinPath[pulseaudioFull]}/pulseaudio"
substituteInPlace ./c++/jackbridge/JackBridge.cpp --replace libjack.so.0 $libjackso
'';
nativeBuildInputs = [
pkg-config
];
buildInputs = [
qtbase
jack_capture
pulseaudioFull
(
(python3.withPackages (ps: with ps; [
pyqt5
dbus-python
]))
)
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"SYSCONFDIR=${placeholder "out"}/etc"
];
dontWrapQtApps = true;
# Replace with our own wrappers. They need to be changed manually since it wouldn't work otherwise.
preFixup =
let
outRef = placeholder "out";
prefix = "${outRef}/share/cadence/src";
scriptAndSource = lib.mapAttrs'
(script: source:
lib.nameValuePair ("${outRef}/bin/" + script) ("${prefix}/" + source)
)
{
"cadence" = "cadence.py";
"claudia" = "claudia.py";
"catarina" = "catarina.py";
"catia" = "catia.py";
"cadence-jacksettings" = "jacksettings.py";
"cadence-aloop-daemon" = "cadence_aloop_daemon.py";
"cadence-logs" = "logs.py";
"cadence-render" = "render.py";
"claudia-launcher" = "claudia_launcher.py";
"cadence-session-start" = "cadence_session_start.py";
};
in
lib.mapAttrsToList
(script: source: ''
rm -f ${script}
makeQtWrapper ${source} ${script} \
--prefix PATH : "${lib.makeBinPath [
jack_capture # cadence-render
pulseaudioFull # cadence, cadence-session-start
]}"
'')
scriptAndSource;
meta = {
homepage = "https://github.com/falkTX/Cadence/";
description = "Collection of tools useful for audio production";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchurl, cairo, expat, fftwSinglePrec, fluidsynth, glib
, gtk2, libjack2, ladspaH , libglade, lv2, pkg-config }:
stdenv.mkDerivation rec {
pname = "calf";
version = "0.90.3";
src = fetchurl {
url = "https://calf-studio-gear.org/files/${pname}-${version}.tar.gz";
sha256 = "17x4hylgq4dn9qycsdacfxy64f5cv57n2qgkvsdp524gnqzw4az3";
};
enableParallelBuilding = true;
buildInputs = [
cairo expat fftwSinglePrec fluidsynth glib gtk2 libjack2 ladspaH
libglade lv2 pkg-config
];
meta = with lib; {
homepage = "http://calf-studio-gear.org";
description = "A set of high quality open source audio plugins for musicians";
license = licenses.lgpl2;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, fetchFromGitLab
, meson
, ninja
, pkg-config
, glib
, alsa-lib
, libpulseaudio
}:
stdenv.mkDerivation rec {
pname = "callaudiod";
version = "0.1.4";
src = fetchFromGitLab {
domain = "gitlab.com";
owner = "mobian1";
repo = pname;
rev = version;
sha256 = "sha256-71+9ALz55aqxXRBRwOcs9fwiQK31pJ9E72pGRmt0OkE=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
glib
];
buildInputs = [
alsa-lib
libpulseaudio
glib
];
meta = with lib; {
description = "Daemon for dealing with audio routing during phone calls";
homepage = "https://gitlab.com/mobian1/callaudiod";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ pacman99 tomfitzhenry ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,121 @@
{ mkDerivation
, lib
, fetchFromGitHub
, cmake
, pkg-config
, qtbase
, qtsvg
, qttools
, perl
# Cantata doesn't build with cdparanoia enabled so we disable that
# default for now until I (or someone else) figure it out.
, withCdda ? false
, cdparanoia
, withCddb ? false
, libcddb
, withLame ? false
, lame
, withMusicbrainz ? false
, libmusicbrainz5
, withTaglib ? true
, taglib
, taglib_extras
, withHttpStream ? true
, qtmultimedia
, withReplaygain ? true
, ffmpeg
, speex
, mpg123
, withMtp ? true
, libmtp
, withOnlineServices ? true
, withDevices ? true
, udisks2
, withDynamic ? true
, withHttpServer ? true
, withLibVlc ? false
, libvlc
, withStreams ? true
}:
# Inter-dependencies.
assert withCddb -> withCdda && withTaglib;
assert withCdda -> withCddb && withMusicbrainz;
assert withLame -> withCdda && withTaglib;
assert withMtp -> withTaglib;
assert withMusicbrainz -> withCdda && withTaglib;
assert withOnlineServices -> withTaglib;
assert withReplaygain -> withTaglib;
assert withLibVlc -> withHttpStream;
let
fstat = x: fn:
"-DENABLE_${fn}=${if x then "ON" else "OFF"}";
withUdisks = (withTaglib && withDevices);
options = [
{ names = [ "CDDB" ]; enable = withCddb; pkgs = [ libcddb ]; }
{ names = [ "CDPARANOIA" ]; enable = withCdda; pkgs = [ cdparanoia ]; }
{ names = [ "DEVICES_SUPPORT" ]; enable = withDevices; pkgs = [ ]; }
{ names = [ "DYNAMIC" ]; enable = withDynamic; pkgs = [ ]; }
{ names = [ "FFMPEG" "MPG123" "SPEEXDSP" ]; enable = withReplaygain; pkgs = [ ffmpeg speex mpg123 ]; }
{ names = [ "HTTPS_SUPPORT" ]; enable = true; pkgs = [ ]; }
{ names = [ "HTTP_SERVER" ]; enable = withHttpServer; pkgs = [ ]; }
{ names = [ "HTTP_STREAM_PLAYBACK" ]; enable = withHttpStream; pkgs = [ qtmultimedia ]; }
{ names = [ "LAME" ]; enable = withLame; pkgs = [ lame ]; }
{ names = [ "LIBVLC" ]; enable = withLibVlc; pkgs = [ libvlc ]; }
{ names = [ "MTP" ]; enable = withMtp; pkgs = [ libmtp ]; }
{ names = [ "MUSICBRAINZ" ]; enable = withMusicbrainz; pkgs = [ libmusicbrainz5 ]; }
{ names = [ "ONLINE_SERVICES" ]; enable = withOnlineServices; pkgs = [ ]; }
{ names = [ "STREAMS" ]; enable = withStreams; pkgs = [ ]; }
{ names = [ "TAGLIB" "TAGLIB_EXTRAS" ]; enable = withTaglib; pkgs = [ taglib taglib_extras ]; }
{ names = [ "UDISKS2" ]; enable = withUdisks; pkgs = [ udisks2 ]; }
];
in
mkDerivation rec {
pname = "cantata";
version = "2.5.0";
src = fetchFromGitHub {
owner = "CDrummond";
repo = "cantata";
rev = "v${version}";
sha256 = "sha256-UaZEKZvCA50WsdQSSJQQ11KTK6rM4ouCHDX7pn3NlQw=";
};
patches = [
# Cantata wants to check if perl is in the PATH at runtime, but we
# patchShebangs the playlists scripts, making that unnecessary (perl will
# always be available because it's a dependency)
./dont-check-for-perl-in-PATH.diff
];
postPatch = ''
patchShebangs playlists
'';
buildInputs = [
qtbase
qtsvg
(perl.withPackages (ppkgs: with ppkgs; [ URI ]))
]
++ lib.flatten (builtins.catAttrs "pkgs" (builtins.filter (e: e.enable) options));
nativeBuildInputs = [ cmake pkg-config qttools ];
cmakeFlags = lib.flatten (map (e: map (f: fstat e.enable f) e.names) options);
meta = with lib; {
description = "A graphical client for MPD";
homepage = "https://github.com/cdrummond/cantata";
license = licenses.gpl3Only;
maintainers = with maintainers; [ peterhoeg ];
# Technically, Cantata should run on Darwin/Windows so if someone wants to
# bother figuring that one out, be my guest.
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,17 @@
diff --git a/playlists/dynamicplaylists.cpp b/playlists/dynamicplaylists.cpp
index 07b6dce3..6a3f97c9 100644
--- a/playlists/dynamicplaylists.cpp
+++ b/playlists/dynamicplaylists.cpp
@@ -211,11 +211,6 @@ void DynamicPlaylists::start(const QString &name)
return;
}
- if (Utils::findExe("perl").isEmpty()) {
- emit error(tr("You need to install \"perl\" on your system in order for Cantata's dynamic mode to function."));
- return;
- }
-
QString fName(Utils::dataDir(rulesDir, false)+name+constExtension);
if (!QFile::exists(fName)) {

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "caps";
version = "0.9.26";
src = fetchurl {
url = "http://www.quitte.de/dsp/caps_${version}.tar.bz2";
sha256 = "1jcq9y51vdnk93q27r566y9qmddvadhr4ddnvkiypaq5rrdnqjg7";
};
configurePhase = ''
echo "PREFIX = $out" > defines.make
'';
meta = {
description = "A selection of LADSPA plugins implementing classic effects";
longDescription = ''
The C* Audio Plugin Suite is a selection of classic effects,
unique filters and signal generators. The digital guitarist
finds in CAPS a range of processors recreating key aspects of
the formation of tone in traditional electronic instrument
amplification. Beyond sound quality, central design
considerations are latency-free realtime operation, modesty of
resource demands and meaningful control interfaces.
'';
homepage = "http://www.quitte.de/dsp/caps.html";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.astsmtl ];
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,70 @@
{
stdenv
, fetchFromGitHub
, fetchpatch
, fetchurl
, fetchzip
, freetype
, jansson
, lib
, libGL
, libX11
, libXcursor
, libXext
, libXrandr
, libarchive
, liblo
, libsamplerate
, mesa
, pkg-config
, python3
, speexdsp
}:
stdenv.mkDerivation rec {
pname = "cardinal";
version = "22.04";
src = fetchurl {
url =
"https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal-${version}.tar.xz";
sha256 = "sha256-7As4CckwByrTynOOpwAXa1R9Bpp/ft537f+PvAgz/BE=";
};
prePatch = ''
patchShebangs ./dpf/utils/generate-ttl.sh
'';
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
freetype
jansson
libGL
libX11
libXcursor
libXext
libXrandr
libXrandr
libarchive
liblo
libsamplerate
mesa
python3
speexdsp
];
makeFlags = [ "SYSDEPS=true" "PREFIX=$(out)" ];
meta = {
description = "Plugin wrapper around VCV Rack";
homepage = "https://github.com/DISTRHO/cardinal";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.all;
# ../../utils/CarlaPluginUI.cpp:31:10: fatal error: 'Cocoa/Cocoa.h' file not found
# # import <Cocoa/Cocoa.h>
broken = stdenv.isDarwin;
};
}

View file

@ -0,0 +1,93 @@
{ lib, stdenv, fetchFromGitHub, alsa-lib, file, fluidsynth, jack2,
liblo, libpulseaudio, libsndfile, pkg-config, python3Packages,
which, withFrontend ? true,
withQt ? true, qtbase ? null, wrapQtAppsHook ? null,
withGtk2 ? true, gtk2 ? null,
withGtk3 ? true, gtk3 ? null }:
with lib;
assert withFrontend -> python3Packages ? pyqt5;
assert withQt -> qtbase != null;
assert withQt -> wrapQtAppsHook != null;
assert withGtk2 -> gtk2 != null;
assert withGtk3 -> gtk3 != null;
stdenv.mkDerivation rec {
pname = "carla";
version = "2.4.3";
src = fetchFromGitHub {
owner = "falkTX";
repo = pname;
rev = "v${version}";
sha256 = "sha256-FAQTIM5NpcOhLNMf62qiKaxg6QtK5uIJF/XT6KJVnUc=";
};
nativeBuildInputs = [
python3Packages.wrapPython pkg-config which wrapQtAppsHook
];
pythonPath = with python3Packages; [
rdflib pyliblo
] ++ optional withFrontend pyqt5;
buildInputs = [
file liblo alsa-lib fluidsynth jack2 libpulseaudio libsndfile
] ++ optional withQt qtbase
++ optional withGtk2 gtk2
++ optional withGtk3 gtk3;
propagatedBuildInputs = pythonPath;
enableParallelBuilding = true;
installFlags = [ "PREFIX=$(out)" ];
postPatch = ''
# --with-appname="$0" is evaluated with $0=.carla-wrapped instead of carla. Fix that.
for file in $(grep -rl -- '--with-appname="$0"'); do
filename="$(basename -- "$file")"
substituteInPlace "$file" --replace '--with-appname="$0"' "--with-appname=\"$filename\""
done
'';
dontWrapQtApps = true;
postFixup = ''
# Also sets program_PYTHONPATH and program_PATH variables
wrapPythonPrograms
wrapPythonProgramsIn "$out/share/carla/resources" "$out $pythonPath"
find "$out/share/carla" -maxdepth 1 -type f -not -name "*.py" -print0 | while read -d "" f; do
patchPythonScript "$f"
done
patchPythonScript "$out/share/carla/carla_settings.py"
patchPythonScript "$out/share/carla/carla_database.py"
for program in $out/bin/*; do
wrapQtApp "$program" \
--prefix PATH : "$program_PATH:${which}/bin" \
--set PYTHONNOUSERSITE true
done
find "$out/share/carla/resources" -maxdepth 1 -type f -not -name "*.py" -print0 | while read -d "" f; do
wrapQtApp "$f" \
--prefix PATH : "$program_PATH:${which}/bin" \
--set PYTHONNOUSERSITE true
done
'';
meta = with lib; {
homepage = "https://kx.studio/Applications:Carla";
description = "An audio plugin host";
longDescription = ''
It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3
and AU plugin formats, plus GIG, SF2 and SFZ file support.
It uses JACK as the default and preferred audio driver but also
supports native drivers like ALSA, DirectSound or CoreAudio.
'';
license = licenses.gpl2Plus;
maintainers = [ maintainers.minijackson ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchurl, makeWrapper, bc, findutils, flac, lame, opusTools, procps, sox }:
stdenv.mkDerivation rec {
pname = "caudec";
version = "1.7.5";
src = fetchurl {
url = "http://caudec.cocatre.net/downloads/caudec-${version}.tar.gz";
sha256 = "5d1f5ab3286bb748bd29cbf45df2ad2faf5ed86070f90deccf71c60be832f3d5";
};
preBuild = ''
patchShebangs ./install.sh
'';
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
./install.sh --prefix=$out/bin
'';
postFixup = ''
for executable in $(cd $out/bin && ls); do
wrapProgram $out/bin/$executable \
--prefix PATH : "${lib.makeBinPath [ bc findutils sox procps opusTools lame flac ]}"
done
'';
meta = with lib; {
homepage = "https://caudec.cocatre.net/";
description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
license = licenses.gpl3;
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -0,0 +1,38 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, alsa-lib, fftw,
libpulseaudio, ncurses }:
stdenv.mkDerivation rec {
pname = "cava";
version = "0.7.4";
buildInputs = [
alsa-lib
fftw
libpulseaudio
ncurses
];
src = fetchFromGitHub {
owner = "karlstav";
repo = "cava";
rev = version;
sha256 = "sha256-BlHGst34aUgQcXcuQG43VnKUTclCxfQmWRa6iCud8dc=";
};
nativeBuildInputs = [ autoreconfHook ];
postConfigure = ''
substituteInPlace Makefile.am \
--replace "-L/usr/local/lib -Wl,-rpath /usr/local/lib" ""
substituteInPlace configure.ac \
--replace "/usr/share/consolefonts" "$out/share/consolefonts"
'';
meta = with lib; {
description = "Console-based Audio Visualizer for Alsa";
homepage = "https://github.com/karlstav/cava";
license = licenses.mit;
maintainers = with maintainers; [ offline mirrexagon ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,30 @@
{ fetchurl, lib, stdenv
, IOKit ? null }:
stdenv.mkDerivation rec {
pname = "cd-discid";
version = "1.4";
src = fetchurl {
url = "http://linukz.org/download/${pname}-${version}.tar.gz";
sha256 = "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz";
};
installFlags = [ "PREFIX=$(out)" "INSTALL=install" ];
buildInputs = []
++ lib.optional stdenv.isDarwin IOKit;
meta = with lib; {
homepage = "http://linukz.org/cd-discid.shtml";
license = licenses.gpl2Plus;
platforms = platforms.unix;
description = "Command-line utility to get CDDB discid information from a CD-ROM disc";
longDescription = ''
cd-discid is a backend utility to get CDDB discid information
from a CD-ROM disc. It was originally designed for cdgrab (now
abcde), but can be used for any purpose requiring CDDB data.
'';
};
}

View file

@ -0,0 +1,22 @@
diff --git a/configure.in b/configure.ac
similarity index 90%
rename from configure.in
rename to configure.ac
index 3ad98ca11da..8fad378faf4 100644
--- a/configure.in
+++ b/configure.ac
@@ -1,13 +1,8 @@
AC_INIT(interface/interface.c)
-cp $srcdir/configure.guess $srcdir/config.guess
-cp $srcdir/configure.sub $srcdir/config.sub
-
AC_CANONICAL_HOST
-if test -z "$CC"; then
- AC_PROG_CC
-fi
+AC_PROG_CC
AC_PROG_RANLIB
AC_CHECK_PROG(AR,ar,ar)
AC_CHECK_PROG(INSTALL,install,install)

View file

@ -0,0 +1,62 @@
{ lib, stdenv, fetchurl, fetchpatch
, updateAutotoolsGnuConfigScriptsHook, autoreconfHook
, IOKit, Carbon
}:
stdenv.mkDerivation rec {
pname = "cdparanoia-III";
version = "10.2";
src = fetchurl {
url = "https://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${version}.src.tgz";
sha256 = "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80";
};
patches = lib.optionals stdenv.isDarwin [
(fetchpatch {
url = "https://trac.macports.org/export/70964/trunk/dports/audio/cdparanoia/files/osx_interface.patch";
sha256 = "0hq3lvfr0h1m3p0r33jij0s1aspiqlpy533rwv19zrfllb39qvr8";
# Our configure patch will subsume it, but we want our configure
# patch to be used on all platforms so we cannot just start where
# this leaves off.
excludes = [ "configure.in" ];
})
(fetchurl {
url = "https://trac.macports.org/export/70964/trunk/dports/audio/cdparanoia/files/patch-paranoia_paranoia.c.10.4.diff";
sha256 = "17l2qhn8sh4jy6ryy5si6ll6dndcm0r537rlmk4a6a8vkn852vad";
})
] ++ [
# Has to come after darwin patches
./fix_private_keyword.patch
# Order does not matter
./configure.patch
] ++ lib.optional stdenv.hostPlatform.isMusl ./utils.patch;
nativeBuildInputs = [
updateAutotoolsGnuConfigScriptsHook
autoreconfHook
];
propagatedBuildInputs = lib.optionals stdenv.isDarwin [
Carbon
IOKit
];
hardeningDisable = [ "format" ];
# Build system reuses the same object file names for shared and static
# library. Occasionally fails in the middle:
# gcc -O2 -fsigned-char -g -O2 -c scan_devices.c
# rm -f *.o core *~ *.out
# gcc -O2 -fsigned-char -g -O2 -fpic -c scan_devices.c
# gcc -fpic -shared -o libcdda_interface.so.0.10.2 ... scan_devices.o ...
# scan_devices.o: file not recognized: file format not recognized
enableParallelBuilding = false;
meta = with lib; {
homepage = "https://xiph.org/paranoia";
description = "A tool and library for reading digital audio from CDs";
license = with licenses; [ gpl2Plus lgpl21Plus ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,468 @@
--- cdparanoia-III-10.2/interface/cdda_interface.h (revision 15337)
+++ cdparanoia-III-10.2/interface/cdda_interface.h (revision 15338)
@@ -85,5 +85,5 @@
int is_mmc;
- cdda_private_data_t *private;
+ cdda_private_data_t *private_data;
void *reserved;
unsigned char inqbytes[4];
--- cdparanoia-III-10.2/interface/cooked_interface.c (revision 15337)
+++ cdparanoia-III-10.2/interface/cooked_interface.c (revision 15338)
@@ -14,11 +14,11 @@
struct timespec tv1;
struct timespec tv2;
- int ret1=clock_gettime(d->private->clock,&tv1);
+ int ret1=clock_gettime(d->private_data->clock,&tv1);
int ret2=ioctl(fd, command,arg);
- int ret3=clock_gettime(d->private->clock,&tv2);
+ int ret3=clock_gettime(d->private_data->clock,&tv2);
if(ret1<0 || ret3<0){
- d->private->last_milliseconds=-1;
+ d->private_data->last_milliseconds=-1;
}else{
- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
}
return ret2;
--- cdparanoia-III-10.2/interface/interface.c (revision 15337)
+++ cdparanoia-III-10.2/interface/interface.c (revision 15338)
@@ -40,7 +40,7 @@
if(d->cdda_fd!=-1)close(d->cdda_fd);
if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
- if(d->private){
- if(d->private->sg_hd)free(d->private->sg_hd);
- free(d->private);
+ if(d->private_data){
+ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
+ free(d->private_data);
}
@@ -128,5 +128,5 @@
}
}
- if(ms)*ms=d->private->last_milliseconds;
+ if(ms)*ms=d->private_data->last_milliseconds;
return(sectors);
}
--- cdparanoia-III-10.2/interface/scan_devices.c (revision 15337)
+++ cdparanoia-III-10.2/interface/scan_devices.c (revision 15338)
@@ -265,9 +265,9 @@
d->bigendianp=-1; /* We don't know yet... */
d->nsectors=-1;
- d->private=calloc(1,sizeof(*d->private));
+ d->private_data=calloc(1,sizeof(*d->private_data));
{
/* goddamnit */
struct timespec tv;
- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
}
idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
@@ -675,13 +675,13 @@
d->nsectors=-1;
d->messagedest = messagedest;
- d->private=calloc(1,sizeof(*d->private));
+ d->private_data=calloc(1,sizeof(*d->private_data));
{
/* goddamnit */
struct timespec tv;
- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
}
if(use_sgio){
d->interface=SGIO_SCSI;
- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
+ d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
g_fd=d->cdda_fd=dup(d->ioctl_fd);
}else{
@@ -697,6 +697,6 @@
/* malloc our big buffer for scsi commands */
- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
+ d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
+ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
}
@@ -773,7 +773,7 @@
if(g_fd!=-1)close(g_fd);
if(d){
- if(d->private){
- if(d->private->sg_hd)free(d->private->sg_hd);
- free(d->private);
+ if(d->private_data){
+ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
+ free(d->private_data);
}
free(d);
@@ -822,5 +822,5 @@
d->bigendianp=-1; /* We don't know yet... */
d->nsectors=-1;
- d->private=calloc(1,sizeof(*d->private));
+ d->private_data=calloc(1,sizeof(*d->private_data));
d->drive_model=copystring("File based test interface");
idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
--- cdparanoia-III-10.2/interface/scsi_interface.c (revision 15337)
+++ cdparanoia-III-10.2/interface/scsi_interface.c (revision 15338)
@@ -16,11 +16,11 @@
struct timespec tv1;
struct timespec tv2;
- int ret1=clock_gettime(d->private->clock,&tv1);
+ int ret1=clock_gettime(d->private_data->clock,&tv1);
int ret2=ioctl(fd, command,arg);
- int ret3=clock_gettime(d->private->clock,&tv2);
+ int ret3=clock_gettime(d->private_data->clock,&tv2);
if(ret1<0 || ret3<0){
- d->private->last_milliseconds=-1;
+ d->private_data->last_milliseconds=-1;
}else{
- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
}
return ret2;
@@ -97,5 +97,5 @@
fd_set fdset;
struct timeval tv;
- struct sg_header *sg_hd=d->private->sg_hd;
+ struct sg_header *sg_hd=d->private_data->sg_hd;
int flag=0;
@@ -186,5 +186,5 @@
int tret1,tret2;
int status = 0;
- struct sg_header *sg_hd=d->private->sg_hd;
+ struct sg_header *sg_hd=d->private_data->sg_hd;
long writebytes=SG_OFF+cmd_len+in_size;
@@ -196,5 +196,5 @@
memset(sg_hd,0,sizeof(sg_hd));
memset(sense_buffer,0,SG_MAX_SENSE);
- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
+ memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size);
sg_hd->twelve_byte = cmd_len == 12;
sg_hd->result = 0;
@@ -210,5 +210,5 @@
if(bytecheck && out_size>in_size){
- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
+ memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
/* the size does not remove cmd_len due to the way the kernel
driver copies buffers */
@@ -244,5 +244,5 @@
sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
- tret1=clock_gettime(d->private->clock,&tv1);
+ tret1=clock_gettime(d->private_data->clock,&tv1);
errno=0;
status = write(d->cdda_fd, sg_hd, writebytes );
@@ -290,5 +290,5 @@
}
- tret2=clock_gettime(d->private->clock,&tv2);
+ tret2=clock_gettime(d->private_data->clock,&tv2);
errno=0;
status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
@@ -314,5 +314,5 @@
long i,flag=0;
for(i=in_size;i<out_size;i++)
- if(d->private->sg_buffer[i]!=bytefill){
+ if(d->private_data->sg_buffer[i]!=bytefill){
flag=1;
break;
@@ -327,7 +327,7 @@
errno=0;
if(tret1<0 || tret2<0){
- d->private->last_milliseconds=-1;
+ d->private_data->last_milliseconds=-1;
}else{
- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
+ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
}
return(0);
@@ -348,5 +348,5 @@
memset(&hdr,0,sizeof(hdr));
memset(sense,0,sizeof(sense));
- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
+ memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size);
hdr.cmdp = cmd;
@@ -356,5 +356,5 @@
hdr.timeout = 50000;
hdr.interface_id = 'S';
- hdr.dxferp = d->private->sg_buffer;
+ hdr.dxferp = d->private_data->sg_buffer;
hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
@@ -401,5 +401,5 @@
long i,flag=0;
for(i=in_size;i<out_size;i++)
- if(d->private->sg_buffer[i]!=bytefill){
+ if(d->private_data->sg_buffer[i]!=bytefill){
flag=1;
break;
@@ -413,5 +413,5 @@
/* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
- /* d->private->last_milliseconds = hdr.duration; */
+ /* d->private_data->last_milliseconds = hdr.duration; */
errno = 0;
@@ -446,7 +446,7 @@
handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
- key = d->private->sg_buffer[2] & 0xf;
- ASC = d->private->sg_buffer[12];
- ASCQ = d->private->sg_buffer[13];
+ key = d->private_data->sg_buffer[2] & 0xf;
+ ASC = d->private_data->sg_buffer[12];
+ ASCQ = d->private_data->sg_buffer[13];
if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
@@ -493,5 +493,5 @@
{
- unsigned char *b=d->private->sg_buffer;
+ unsigned char *b=d->private_data->sg_buffer;
if(b[0])return(1); /* Handles only up to 256 bytes */
if(b[6])return(1); /* Handles only up to 256 bytes */
@@ -605,6 +605,6 @@
if(mode_sense(d,12,0x01))return(-1);
- d->orgdens = d->private->sg_buffer[4];
- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
+ d->orgdens = d->private_data->sg_buffer[4];
+ return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]);
}
@@ -665,6 +665,6 @@
}
- first=d->private->sg_buffer[2];
- last=d->private->sg_buffer[3];
+ first=d->private_data->sg_buffer[2];
+ last=d->private_data->sg_buffer[3];
tracks=last-first+1;
@@ -684,5 +684,5 @@
}
{
- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
+ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
d->disc_toc[i-first].bFlags=toc->bFlags;
@@ -705,5 +705,5 @@
}
{
- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
+ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
d->disc_toc[i-first].bFlags=toc->bFlags;
@@ -739,5 +739,5 @@
/* copy to our structure and convert start sector */
- tracks = d->private->sg_buffer[1];
+ tracks = d->private_data->sg_buffer[1];
if (tracks > MAXTRK) {
cderror(d,"003: CDROM reporting illegal number of tracks\n");
@@ -755,31 +755,31 @@
}
- d->disc_toc[i].bFlags = d->private->sg_buffer[10];
+ d->disc_toc[i].bFlags = d->private_data->sg_buffer[10];
d->disc_toc[i].bTrack = i + 1;
d->disc_toc[i].dwStartSector= d->adjust_ssize *
- (((signed char)(d->private->sg_buffer[2])<<24) |
- (d->private->sg_buffer[3]<<16)|
- (d->private->sg_buffer[4]<<8)|
- (d->private->sg_buffer[5]));
+ (((signed char)(d->private_data->sg_buffer[2])<<24) |
+ (d->private_data->sg_buffer[3]<<16)|
+ (d->private_data->sg_buffer[4]<<8)|
+ (d->private_data->sg_buffer[5]));
}
d->disc_toc[i].bFlags = 0;
d->disc_toc[i].bTrack = i + 1;
- memcpy (&foo, d->private->sg_buffer+2, 4);
- memcpy (&bar, d->private->sg_buffer+6, 4);
+ memcpy (&foo, d->private_data->sg_buffer+2, 4);
+ memcpy (&bar, d->private_data->sg_buffer+6, 4);
d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
be32_to_cpu(bar));
d->disc_toc[i].dwStartSector= d->adjust_ssize *
- ((((signed char)(d->private->sg_buffer[2])<<24) |
- (d->private->sg_buffer[3]<<16)|
- (d->private->sg_buffer[4]<<8)|
- (d->private->sg_buffer[5]))+
+ ((((signed char)(d->private_data->sg_buffer[2])<<24) |
+ (d->private_data->sg_buffer[3]<<16)|
+ (d->private_data->sg_buffer[4]<<8)|
+ (d->private_data->sg_buffer[5]))+
- ((((signed char)(d->private->sg_buffer[6])<<24) |
- (d->private->sg_buffer[7]<<16)|
- (d->private->sg_buffer[8]<<8)|
- (d->private->sg_buffer[9]))));
+ ((((signed char)(d->private_data->sg_buffer[6])<<24) |
+ (d->private_data->sg_buffer[7]<<16)|
+ (d->private_data->sg_buffer[8]<<8)|
+ (d->private_data->sg_buffer[9]))));
@@ -818,5 +818,5 @@
if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -837,5 +837,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -855,5 +855,5 @@
if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -873,5 +873,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -891,5 +891,5 @@
if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -909,5 +909,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -923,5 +923,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -937,5 +937,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -951,5 +951,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -965,5 +965,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -979,5 +979,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -993,5 +993,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -1027,5 +1027,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -1040,5 +1040,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -1053,5 +1053,5 @@
if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
return(ret);
- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
return(0);
}
@@ -1276,5 +1276,5 @@
long i;
for(i=2351;i>=0;i--)
- if(d->private->sg_buffer[i]!=(unsigned char)'\177')
+ if(d->private_data->sg_buffer[i]!=(unsigned char)'\177')
return(((i+3)>>2)<<2);
@@ -1285,5 +1285,5 @@
long i,flag=0;
for(i=0;i<2352;i++)
- if(d->private->sg_buffer[i]!=0){
+ if(d->private_data->sg_buffer[i]!=0){
flag=1;
break;
@@ -1622,5 +1622,5 @@
if(mode_sense(d,22,0x2A)==0){
- b=d->private->sg_buffer;
+ b=d->private_data->sg_buffer;
b+=b[3]+4;
@@ -1670,5 +1670,5 @@
return(NULL);
}
- return (d->private->sg_buffer);
+ return (d->private_data->sg_buffer);
}
@@ -1726,6 +1726,6 @@
d->error_retry=1;
- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
+ d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
+ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
d->report_all=1;
return(0);
--- cdparanoia-III-10.2/interface/test_interface.c (revision 15337)
+++ cdparanoia-III-10.2/interface/test_interface.c (revision 15338)
@@ -67,7 +67,7 @@
if(begin<lastread)
- d->private->last_milliseconds=20;
+ d->private_data->last_milliseconds=20;
else
- d->private->last_milliseconds=sectors;
+ d->private_data->last_milliseconds=sectors;
#ifdef CDDA_TEST_UNDERRUN

View file

@ -0,0 +1,68 @@
diff --git cdparanoia-III-10.2/interface/utils.h cdparanoia-III-10.2/interface/utils.h
index c9647da..68c1a3a 100644
--- cdparanoia-III-10.2/interface/utils.h
+++ cdparanoia-III-10.2/interface/utils.h
@@ -1,4 +1,6 @@
-#include <endian.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
@@ -14,15 +16,15 @@ static inline int bigendianp(void){
}
static inline int32_t swap32(int32_t x){
- return((((u_int32_t)x & 0x000000ffU) << 24) |
- (((u_int32_t)x & 0x0000ff00U) << 8) |
- (((u_int32_t)x & 0x00ff0000U) >> 8) |
- (((u_int32_t)x & 0xff000000U) >> 24));
+ return((((uint32_t)x & 0x000000ffU) << 24) |
+ (((uint32_t)x & 0x0000ff00U) << 8) |
+ (((uint32_t)x & 0x00ff0000U) >> 8) |
+ (((uint32_t)x & 0xff000000U) >> 24));
}
static inline int16_t swap16(int16_t x){
- return((((u_int16_t)x & 0x00ffU) << 8) |
- (((u_int16_t)x & 0xff00U) >> 8));
+ return((((uint16_t)x & 0x00ffU) << 8) |
+ (((uint16_t)x & 0xff00U) >> 8));
}
#if BYTE_ORDER == LITTLE_ENDIAN
diff --git cdparanoia-III-10.2/utils.h cdparanoia-III-10.2/utils.h
index 10dce58..6211ce3 100644
--- cdparanoia-III-10.2/utils.h
+++ cdparanoia-III-10.2/utils.h
@@ -1,5 +1,6 @@
+#include <unistd.h>
+#include <stdint.h>
#include <stdlib.h>
-#include <endian.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
@@ -18,15 +19,15 @@ static inline int bigendianp(void){
}
static inline int32_t swap32(int32_t x){
- return((((u_int32_t)x & 0x000000ffU) << 24) |
- (((u_int32_t)x & 0x0000ff00U) << 8) |
- (((u_int32_t)x & 0x00ff0000U) >> 8) |
- (((u_int32_t)x & 0xff000000U) >> 24));
+ return((((uint32_t)x & 0x000000ffU) << 24) |
+ (((uint32_t)x & 0x0000ff00U) << 8) |
+ (((uint32_t)x & 0x00ff0000U) >> 8) |
+ (((uint32_t)x & 0xff000000U) >> 24));
}
static inline int16_t swap16(int16_t x){
- return((((u_int16_t)x & 0x00ffU) << 8) |
- (((u_int16_t)x & 0xff00U) >> 8));
+ return((((uint16_t)x & 0x00ffU) << 8) |
+ (((uint16_t)x & 0xff00U) >> 8));
}
#if BYTE_ORDER == LITTLE_ENDIAN

View file

@ -0,0 +1,39 @@
From eb21fd64a19a0e10c4c3826fc71610fd5850fa2f Mon Sep 17 00:00:00 2001
From: Christoph Neidahl <christoph.neidahl@gmail.com>
Date: Sun, 13 Sep 2020 23:18:51 +0200
Subject: [PATCH 1/2] Drop baked-in build date for r13y
---
src/ct2util.d | 2 +-
src/ui/ui.d | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/ct2util.d b/src/ct2util.d
index 523cadc..e462b09 100644
--- a/src/ct2util.d
+++ b/src/ct2util.d
@@ -105,7 +105,7 @@ int main(string[] args) {
speeds.length = 32;
masks.length = 32;
void printheader() {
- enum hdr = "CheeseCutter 2 utilities" ~ com.util.versionInfo;
+ enum hdr = "CheeseCutter 2 utilities";
writefln(hdr);
writefln("\nUsage: \t%s <command> <options> <infile> <-o outfile>",args[0]);
writefln("\t%s import <infile> <infile2> <-o outfile>",args[0]);
diff --git a/src/ui/ui.d b/src/ui/ui.d
index e418dda..21af408 100644
--- a/src/ui/ui.d
+++ b/src/ui/ui.d
@@ -231,7 +231,7 @@ class Infobar : Window {
screen.clrtoeol(0, headerColor);
- enum hdr = "CheeseCutter 2.9" ~ com.util.versionInfo;
+ enum hdr = "CheeseCutter 2.9";
screen.cprint(4, 0, 1, headerColor, hdr);
screen.cprint(screen.width - 14, 0, 1, headerColor, "F12 = Help");
int c1 = audio.player.isPlaying ? 13 : 12;
--
2.25.4

View file

@ -0,0 +1,25 @@
From abc5e8786d41803300b56ef40c08db0d867eb01a Mon Sep 17 00:00:00 2001
From: Christoph Neidahl <christoph.neidahl@gmail.com>
Date: Sun, 13 Sep 2020 23:22:33 +0200
Subject: [PATCH 2/2] Prepend libSDL.dylib to macOS SDL loader
---
src/derelict/sdl/sdl.d | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/derelict/sdl/sdl.d b/src/derelict/sdl/sdl.d
index e31a52f..f7915b1 100644
--- a/src/derelict/sdl/sdl.d
+++ b/src/derelict/sdl/sdl.d
@@ -54,7 +54,7 @@ public:
super(
"sdl.dll",
"libSDL.so, libSDL.so.0, libSDL-1.2.so, libSDL-1.2.so.0",
- "@executable_path/../Frameworks/SDL.framework/SDL, /Library/Frameworks/SDL.framework/SDL, /System/Library/Frameworks/SDL.framework/SDL"
+ "@rpath/libSDL.dylib, @executable_path/../Frameworks/SDL.framework/SDL, /Library/Frameworks/SDL.framework/SDL, /System/Library/Frameworks/SDL.framework/SDL"
);
}
--
2.25.4

View file

@ -0,0 +1,59 @@
{ stdenv
, lib
, fetchFromGitHub
, acme
, ldc
, patchelf
, SDL
}:
stdenv.mkDerivation rec {
pname = "cheesecutter";
version = "unstable-2021-02-27";
src = fetchFromGitHub {
owner = "theyamo";
repo = "CheeseCutter";
rev = "84450d3614b8fb2cabda87033baab7bedd5a5c98";
sha256 = "sha256:0q4a791nayya6n01l0f4kk497rdq6kiq0n72fqdpwqy138pfwydn";
};
patches = [
./0001-Drop-baked-in-build-date-for-r13y.patch
]
++ lib.optional stdenv.hostPlatform.isDarwin ./0002-Prepend-libSDL.dylib-to-macOS-SDL-loader.patch;
nativeBuildInputs = [ acme ldc ]
++ lib.optional (!stdenv.hostPlatform.isDarwin) patchelf;
buildInputs = [ SDL ];
makefile = "Makefile.ldc";
installPhase = ''
for exe in {ccutter,ct2util}; do
install -D $exe $out/bin/$exe
done
mkdir -p $out/share/cheesecutter/example_tunes
cp -r tunes/* $out/share/cheesecutter/example_tunes
'';
postFixup =
let
rpathSDL = lib.makeLibraryPath [ SDL ];
in
if stdenv.hostPlatform.isDarwin then ''
install_name_tool -add_rpath ${rpathSDL} $out/bin/ccutter
'' else ''
rpath=$(patchelf --print-rpath $out/bin/ccutter)
patchelf --set-rpath "$rpath:${rpathSDL}" $out/bin/ccutter
'';
meta = with lib; {
description = "A tracker program for composing music for the SID chip";
homepage = "https://github.com/theyamo/CheeseCutter/";
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
maintainers = with maintainers; [ OPNA2608 ];
};
}

View file

@ -0,0 +1,13 @@
--- a/src/core/util_string.cpp 2014-10-27 22:52:11.875981552 +0100
+++ b/src/core/util_string.cpp 2014-10-27 22:54:18.613001994 +0100
@@ -40,6 +40,10 @@
#include <linux/limits.h>
#endif // __PLATFORM_LINUX__
+#ifdef __PLATFORM_MACOSX__
+#include <limits.h>
+#endif // __PLATFORM_MACOSX__
+
#include <stdio.h>
using namespace std;

View file

@ -0,0 +1,41 @@
{ stdenv, lib, fetchurl, alsa-lib, bison, flex, libsndfile, which
, AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel
}:
stdenv.mkDerivation rec {
version = "1.4.1.0";
pname = "chuck";
src = fetchurl {
url = "http://chuck.cs.princeton.edu/release/files/chuck-${version}.tgz";
sha256 = "sha256-dL+ZrVFeMRPFW4MxUpNvrQKjzwBqVBBf8Rd3xHMZSSg=";
};
nativeBuildInputs = [ flex bison which ];
buildInputs = [ libsndfile ]
++ lib.optional (!stdenv.isDarwin) alsa-lib
++ lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ];
patches = [ ./darwin-limits.patch ];
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-missing-sysroot";
NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework MultitouchSupport";
postPatch = ''
substituteInPlace src/core/makefile.x/makefile.osx \
--replace "weak_framework" "framework" \
--replace "MACOSX_DEPLOYMENT_TARGET=10.9" "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET"
'';
makeFlags = [ "-C src" "DESTDIR=$(out)/bin" ];
buildFlags = [ (if stdenv.isDarwin then "osx" else "linux-alsa") ];
meta = with lib; {
description = "Programming language for real-time sound synthesis and music creation";
homepage = "http://chuck.cs.princeton.edu";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ ftrvxmtrx ];
};
}

View file

@ -0,0 +1,30 @@
{ appimageTools, lib, fetchurl }:
appimageTools.wrapType2 rec {
pname = "cider";
version = "1.4.1.1680";
src = fetchurl {
url = "https://github.com/ciderapp/cider-releases/releases/download/v${version}/Cider-${builtins.concatStringsSep "." (lib.take 3 (lib.splitVersion version))}-alpha.${builtins.elemAt (lib.splitVersion version) 3}.AppImage";
sha256 = "sha256-hEv+vfMMH+Trwa1UF5R8EtyYeyiRVLP0BrXOK2+1q8M=";
};
extraInstallCommands =
let contents = appimageTools.extract { inherit pname version src; };
in ''
mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${contents}/${pname}.desktop -t $out/share/applications
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
cp -r ${contents}/usr/share/icons $out/share
'';
meta = with lib; {
description = "A new look into listening and enjoying Apple Music in style and performance.";
homepage = "https://github.com/ciderapp/Cider";
license = licenses.agpl3;
maintainers = [ maintainers.cigrainger ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,137 @@
{ lib
, mkDerivation
, fetchFromGitHub
, fetchpatch
, boost
, cmake
, chromaprint
, gettext
, gst_all_1
, liblastfm
, qtbase
, qtx11extras
, qttools
, taglib
, fftw
, glew
, qjson
, sqlite
, libgpod
, libplist
, usbmuxd
, libmtp
, libpulseaudio
, gvfs
, libcdio
, pcre
, projectm
, protobuf
, qca-qt5
, pkg-config
, sparsehash
, config
, makeWrapper
, gst_plugins
, util-linux
, libunwind
, libselinux
, elfutils
, libsepol
, orc
, alsa-lib
}:
let
withIpod = config.clementine.ipod or false;
withMTP = config.clementine.mtp or true;
withCD = config.clementine.cd or true;
withCloud = config.clementine.cloud or true;
in mkDerivation {
pname = "clementine";
version = "unstable-2022-04-11";
src = fetchFromGitHub {
owner = "clementine-player";
repo = "Clementine";
rev = "250024e117fbe5fae7c62b9c8e655d66412a6ed7";
sha256 = "06fcbs3wig3mh711iypyj49qm5246f7qhvgvv8brqfrd8cqyh6qf";
};
nativeBuildInputs = [
cmake
pkg-config
makeWrapper
util-linux
libunwind
libselinux
elfutils
libsepol
orc
];
buildInputs = [
boost
chromaprint
fftw
gettext
glew
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
gst_all_1.gstreamer
gvfs
liblastfm
libpulseaudio
pcre
projectm
protobuf
qca-qt5
qjson
qtbase
qtx11extras
qttools
sqlite
taglib
alsa-lib
]
# gst_plugins needed for setup-hooks
++ gst_plugins
++ lib.optionals (withIpod) [ libgpod libplist usbmuxd ]
++ lib.optionals (withMTP) [ libmtp ]
++ lib.optionals (withCD) [ libcdio ]
++ lib.optionals (withCloud) [ sparsehash ];
postPatch = ''
sed -i src/CMakeLists.txt \
-e 's,-Werror,,g' \
-e 's,-Wno-unknown-warning-option,,g' \
-e 's,-Wno-unused-private-field,,g'
sed -i CMakeLists.txt \
-e 's,libprotobuf.a,protobuf,g'
'';
preConfigure = ''
rm -rf ext/{,lib}clementine-spotifyblob
'';
cmakeFlags = [
"-DUSE_SYSTEM_PROJECTM=ON"
"-DSPOTIFY_BLOB=OFF"
];
postInstall = ''
wrapProgram $out/bin/clementine \
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
'';
meta = with lib; {
homepage = "https://www.clementine-player.org";
description = "A multiplatform music player";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.ttuegel ];
};
}

View file

@ -0,0 +1,56 @@
{ lib
, stdenv
, fetchFromGitHub
, makeWrapper
, rofi
, mpc-cli
, perl
, util-linux
, python3Packages
, libnotify
}:
stdenv.mkDerivation {
pname = "clerk";
version = "unstable-2016-10-14";
src = fetchFromGitHub {
owner = "carnager";
repo = "clerk";
rev = "875963bcae095ac1db174627183c76ebe165f787";
sha256 = "0y045my65hr3hjyx13jrnyg6g3wb41phqb1m7azc4l6vx6r4124b";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ python3Packages.mpd2 ];
dontBuild = true;
strictDeps = true;
installPhase =
let
binPath = lib.makeBinPath [
libnotify
mpc-cli
perl
rofi
util-linux
];
in
''
runHook preInstall
DESTDIR=$out PREFIX=/ make install
wrapProgram $out/bin/clerk --prefix PATH : "${binPath}"
runHook postInstall
'';
meta = with lib; {
description = "An MPD client built on top of rofi";
homepage = "https://github.com/carnager/clerk";
license = licenses.mit;
maintainers = with maintainers; [ anderspapitto ];
};
}

View file

@ -0,0 +1,33 @@
{ lib, stdenv
, fetchurl
, ladspaH
}:
stdenv.mkDerivation rec {
pname = "cmt";
version = "1.17";
src = fetchurl {
url = "http://www.ladspa.org/download/cmt_${version}.tgz";
sha256 = "07xd0xmwpa0j12813jpf87fr9hwzihii5l35mp8ady7xxfmxfmpb";
};
buildInputs = [ ladspaH ];
preBuild = ''
cd src
'';
installFlags = [ "INSTALL_PLUGINS_DIR=${placeholder "out"}/lib/ladspa" ];
preInstall = ''
mkdir -p $out/lib/ladspa
'';
meta = with lib; {
description = "Computer Music Toolkit";
homepage = "https://www.ladspa.org/cmt";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ sjfloat ];
};
}

View file

@ -0,0 +1,136 @@
{ config, lib, stdenv, fetchFromGitHub, runCommand, ncurses, pkg-config
, libiconv, CoreAudio, AudioUnit, VideoToolbox
, alsaSupport ? stdenv.isLinux, alsa-lib ? null
# simple fallback for everyone else
, aoSupport ? !stdenv.isLinux, libao ? null
, jackSupport ? false, libjack ? null
, samplerateSupport ? jackSupport, libsamplerate ? null
, ossSupport ? false, alsa-oss ? null
, pulseaudioSupport ? config.pulseaudio or false, libpulseaudio ? null
, mprisSupport ? stdenv.isLinux, systemd ? null
# TODO: add these
#, artsSupport
#, roarSupport
#, sndioSupport
#, sunSupport
#, waveoutSupport
, cddbSupport ? true, libcddb ? null
, cdioSupport ? true, libcdio ? null, libcdio-paranoia ? null
, cueSupport ? true, libcue ? null
, discidSupport ? (!stdenv.isDarwin), libdiscid ? null
, ffmpegSupport ? true, ffmpeg ? null
, flacSupport ? true, flac ? null
, madSupport ? true, libmad ? null
, mikmodSupport ? true, libmikmod ? null
, modplugSupport ? true, libmodplug ? null
, mpcSupport ? true, libmpcdec ? null
, tremorSupport ? false, tremor ? null
, vorbisSupport ? true, libvorbis ? null
, wavpackSupport ? true, wavpack ? null
, opusSupport ? true, opusfile ? null
, aacSupport ? false, faad2 ? null # already handled by ffmpeg
, mp4Support ? false, mp4v2 ? null # ffmpeg does support mp4 better
# not in nixpkgs
#, vtxSupport ? true, libayemu ? null
}:
with lib;
assert samplerateSupport -> jackSupport;
# vorbis and tremor are mutually exclusive
assert vorbisSupport -> !tremorSupport;
assert tremorSupport -> !vorbisSupport;
let
mkFlag = b: f: dep: if b
then { flags = [ f ]; deps = [ dep ]; }
else { flags = []; deps = []; };
opts = [
# Audio output
(mkFlag alsaSupport "CONFIG_ALSA=y" alsa-lib)
(mkFlag aoSupport "CONFIG_AO=y" libao)
(mkFlag jackSupport "CONFIG_JACK=y" libjack)
(mkFlag samplerateSupport "CONFIG_SAMPLERATE=y" libsamplerate)
(mkFlag ossSupport "CONFIG_OSS=y" alsa-oss)
(mkFlag pulseaudioSupport "CONFIG_PULSE=y" libpulseaudio)
(mkFlag mprisSupport "CONFIG_MPRIS=y" systemd)
#(mkFlag artsSupport "CONFIG_ARTS=y")
#(mkFlag roarSupport "CONFIG_ROAR=y")
#(mkFlag sndioSupport "CONFIG_SNDIO=y")
#(mkFlag sunSupport "CONFIG_SUN=y")
#(mkFlag waveoutSupport "CONFIG_WAVEOUT=y")
# Input file formats
(mkFlag cddbSupport "CONFIG_CDDB=y" libcddb)
(mkFlag cdioSupport "CONFIG_CDIO=y" [ libcdio libcdio-paranoia ])
(mkFlag cueSupport "CONFIG_CUE=y" libcue)
(mkFlag discidSupport "CONFIG_DISCID=y" libdiscid)
(mkFlag ffmpegSupport "CONFIG_FFMPEG=y" ffmpeg)
(mkFlag flacSupport "CONFIG_FLAC=y" flac)
(mkFlag madSupport "CONFIG_MAD=y" libmad)
(mkFlag mikmodSupport "CONFIG_MIKMOD=y" libmikmod)
(mkFlag modplugSupport "CONFIG_MODPLUG=y" libmodplug)
(mkFlag mpcSupport "CONFIG_MPC=y" libmpcdec)
(mkFlag tremorSupport "CONFIG_TREMOR=y" tremor)
(mkFlag vorbisSupport "CONFIG_VORBIS=y" libvorbis)
(mkFlag wavpackSupport "CONFIG_WAVPACK=y" wavpack)
(mkFlag opusSupport "CONFIG_OPUS=y" opusfile)
(mkFlag mp4Support "CONFIG_MP4=y" mp4v2)
(mkFlag aacSupport "CONFIG_AAC=y" faad2)
#(mkFlag vtxSupport "CONFIG_VTX=y" libayemu)
];
clangGCC = runCommand "clang-gcc" {} ''
#! ${stdenv.shell}
mkdir -p $out/bin
ln -s ${stdenv.cc}/bin/clang $out/bin/gcc
ln -s ${stdenv.cc}/bin/clang++ $out/bin/g++
'';
in
stdenv.mkDerivation rec {
pname = "cmus";
version = "2.9.1";
src = fetchFromGitHub {
owner = "cmus";
repo = "cmus";
rev = "v${version}";
sha256 = "sha256-HEiEnEWf/MzhPO19VKTLYzhylpEvyzy1Jxs6EW2NU34=";
};
patches = [ ./option-debugging.patch ];
configurePhase = "./configure " + concatStringsSep " " ([
"prefix=$out"
"CONFIG_WAV=y"
] ++ concatMap (a: a.flags) opts);
nativeBuildInputs = [ pkg-config ];
buildInputs = [ ncurses ]
++ lib.optional stdenv.cc.isClang clangGCC
++ lib.optionals stdenv.isDarwin [ libiconv CoreAudio AudioUnit VideoToolbox ]
++ flatten (concatMap (a: a.deps) opts);
makeFlags = [ "LD=$(CC)" ];
meta = with lib; {
description = "Small, fast and powerful console music player for Linux and *BSD";
homepage = "https://cmus.github.io/";
license = licenses.gpl2;
maintainers = [ maintainers.oxij ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -0,0 +1,42 @@
Shows build and link errors in configure for ease of debugging which
options require what.
diff --git a/scripts/checks.sh b/scripts/checks.sh
index 64cbbf3..fab4d9b 100644
--- a/scripts/checks.sh
+++ b/scripts/checks.sh
@@ -425,7 +425,7 @@ try_compile()
echo "$1" > $__src || exit 1
shift
__cmd="$CC -c $CFLAGS $@ $__src -o $__obj"
- $CC -c $CFLAGS "$@" $__src -o $__obj 2>/dev/null
+ $CC -c $CFLAGS "$@" $__src -o $__obj
;;
cxx)
__src=`tmp_file prog.cc`
@@ -433,7 +433,7 @@ try_compile()
echo "$1" > $__src || exit 1
shift
__cmd="$CXX -c $CXXFLAGS $@ $__src -o $__obj"
- $CXX -c $CXXFLAGS "$@" $__src -o $__obj 2>/dev/null
+ $CXX -c $CXXFLAGS "$@" $__src -o $__obj
;;
esac
return $?
@@ -451,7 +451,7 @@ try_compile_link()
echo "$1" > $__src || exit 1
shift
__cmd="$CC $__src -o $__exe $CFLAGS $LDFLAGS $@"
- $CC $__src -o $__exe $CFLAGS $LDFLAGS "$@" 2>/dev/null
+ $CC $__src -o $__exe $CFLAGS $LDFLAGS "$@"
;;
cxx)
__src=`tmp_file prog.cc`
@@ -459,7 +459,7 @@ try_compile_link()
echo "$1" > $__src || exit 1
shift
__cmd="$CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS $@"
- $CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@" 2>/dev/null
+ $CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@"
;;
esac
return $?

View file

@ -0,0 +1,42 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, libnotify
, gdk-pixbuf, libnotifySupport ? stdenv.isLinux, debug ? false }:
stdenv.mkDerivation rec {
pname = "cmusfm";
version = "0.4.1";
src = fetchFromGitHub {
owner = "Arkq";
repo = pname;
rev = "v${version}";
sha256 = "1px2is80jdxchg8cpn5cizg6jvcbzyxl0qzs3bn0k3d10qjvdww5";
};
configureFlags = lib.optional libnotifySupport "--enable-libnotify"
++ lib.optional debug "--enable-debug";
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ curl gdk-pixbuf ]
++ lib.optional libnotifySupport libnotify;
meta = with lib; {
description = "Last.fm and Libre.fm standalone scrobbler for the cmus music player";
longDescription = ''
Features:
+ Listening now notification support
+ Off-line played track cache for later submission
+ POSIX ERE-based file name parser
+ Desktop notification support (optionally)
+ Customizable scrobbling service
+ Small memory footprint
Configuration:
+ run `cmusfm init` to generate configuration file under ~/.config/cmus/cmusfm.conf
+ Inside cmus run `:set status_display_program=cmusfm` to set up cmusfm
'';
homepage = "https://github.com/Arkq/cmusfm/";
maintainers = with lib.maintainers; [ CharlesHD mudri ];
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -0,0 +1,92 @@
{ lib, fetchFromGitHub
, ninja
, meson
, pkg-config
, wrapGAppsHook
, appstream-glib
, desktop-file-utils
, gtk3
, gst_all_1
, gobject-introspection
, libhandy
, libdazzle
, python3Packages
, cairo
, gettext
, gnome
, pantheon
}:
python3Packages.buildPythonApplication rec {
format = "other"; # no setup.py
pname = "cozy";
version = "1.2.0";
# Temporary fix
# See https://github.com/NixOS/nixpkgs/issues/57029
# and https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
src = fetchFromGitHub {
owner = "geigi";
repo = pname;
rev = version;
sha256 = "0igqf9b77i13sxlk4ziw549h379hmz1slrb3vvf8irk94gxabsaw";
};
nativeBuildInputs = [
meson ninja pkg-config
wrapGAppsHook
appstream-glib
desktop-file-utils
gobject-introspection
];
buildInputs = [
gtk3
cairo
gettext
gnome.adwaita-icon-theme
libdazzle
libhandy
pantheon.granite
] ++ (with gst_all_1; [
gstreamer
gst-plugins-good
gst-plugins-ugly
gst-plugins-base
gst-plugins-bad
]);
propagatedBuildInputs = with python3Packages; [
apsw
cairo
dbus-python
distro
gst-python
magic
mutagen
packaging
peewee
pygobject3
pytz
requests
];
postPatch = ''
patchShebangs meson/*.py
'';
postInstall = ''
ln -s $out/bin/com.github.geigi.cozy $out/bin/cozy
'';
meta = with lib; {
description = "A modern audio book player for Linux using GTK 3";
homepage = "https://cozy.geigi.de/";
maintainers = [ maintainers.makefu ];
license = licenses.gpl3;
};
}

View file

@ -0,0 +1,68 @@
{ lib, stdenv
, fetchurl
, makeWrapper
, perlPackages
, cdparanoia
, coreutils
, eject
, flac
, gnugrep
, nano
, sox
, vorbis-tools
, vorbisgain
, which
}:
with lib;
stdenv.mkDerivation rec {
pname = "crip";
version = "3.9";
src = fetchurl {
url = "http://bach.dynet.com/${pname}/src/${pname}-${version}.tar.gz";
sha256 = "0pk9152wll6fmkj1pki3fz3ijlf06jyk32v31yarwvdkwrk7s9xz";
};
buildInputs = [ perlPackages.perl perlPackages.CDDB_get ];
nativeBuildInputs = [ makeWrapper ];
toolDeps = makeBinPath [
cdparanoia
coreutils
eject
flac
gnugrep
sox
vorbis-tools
vorbisgain
which
];
scripts = [ "crip" "editcomment" "editfilenames" ];
installPhase = ''
mkdir -p $out/bin/
for script in ${escapeShellArgs scripts}; do
cp $script $out/bin/
substituteInPlace $out/bin/$script \
--replace '$editor = "vim";' '$editor = "${nano}/bin/nano";'
wrapProgram $out/bin/$script \
--set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.CDDB_get ]}" \
--set PATH "${toolDeps}"
done
'';
meta = {
homepage = "http://bach.dynet.com/crip/";
description = "Terminal-based ripper/encoder/tagger tool for creating Ogg Vorbis/FLAC files";
license = lib.licenses.gpl1;
platforms = lib.platforms.linux;
maintainers = [ maintainers.endgame ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "csa";
version = "0.5.100810";
src = fetchurl {
url = "mirror://sourceforge/csa/${pname}-${version}.tar.gz";
sha256 = "1syg81dzdil0dyx1mlx1n7if3qsf2iz243p2zv34a1acfqm509r3";
};
# after running either cellular leveler mono or stereo, the other stops working,
# so we remove one of them:
postInstall = "rm $out/lib/ladspa/celllm_3890.*";
meta = with lib; {
homepage = "https://sourceforge.net/projects/csa/";
description = "A group of LADSPA Audio plugins for FM broadcast and more";
longDescription = ''
CSA means : Contrôle Signal Audio.
It contains the following plugins:
Emphazised Limiter, Cellular Leveler, Simple right/left amplifier. Blind Peak Meter.
'';
license = licenses.gpl3;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,44 @@
{
lib, stdenv, fetchFromGitHub, docbook_xsl,
docbook_xml_dtd_45, python, pygments,
libxslt
}:
stdenv.mkDerivation {
pname = "csound-manual";
version = "unstable-2019-02-22";
src = fetchFromGitHub {
owner = "csound";
repo = "manual";
rev = "3b0bdc83f9245261b4b85a57c3ed636d5d924a4f";
sha256 = "074byjhaxraapyg54dxgg7hi1d4978aa9c1rmyi50p970nsxnacn";
};
prePatch = ''
substituteInPlace manual.xml \
--replace "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
"${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd"
'';
nativeBuildInputs = [ libxslt.bin ];
buildInputs = [ docbook_xsl python pygments ];
buildPhase = ''
make XSL_BASE_PATH=${docbook_xsl}/share/xml/docbook-xsl html-dist
'';
installPhase = ''
mkdir -p $out/share/doc/csound
cp -r ./html $out/share/doc/csound
'';
meta = {
description = "The Csound Canonical Reference Manual";
homepage = "https://github.com/csound/manual";
license = lib.licenses.fdl12Plus;
maintainers = [ lib.maintainers.hlolli ];
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,52 @@
{ lib, stdenv, csound, desktop-file-utils,
fetchFromGitHub, python, python-qt, qmake,
qtwebengine, qtxmlpatterns, rtmidi, fetchpatch }:
stdenv.mkDerivation rec {
pname = "csound-qt";
version = "0.9.6-beta3";
src = fetchFromGitHub {
owner = "CsoundQt";
repo = "CsoundQt";
rev = version;
sha256 = "007jhkh0k6qk52r77i067999dwdiimazix6ggp2hvyc4pj6n5dip";
};
patches = [
(fetchpatch {
name = "examplepath.patch";
url = "https://github.com/CsoundQt/CsoundQt/commit/09f2d515bff638cbcacb450979d66e273a59fdec.diff";
sha256 = "0y23kf8m1mh9mklsvf908b2b8m2w2rji8qvws44paf1kpwnwdmgm";
})
./rtmidipath.patch
];
nativeBuildInputs = [ qmake qtwebengine qtxmlpatterns ];
buildInputs = [ csound desktop-file-utils rtmidi ];
qmakeFlags = [ "qcs.pro" "CONFIG+=rtmidi" "CONFIG+=pythonqt"
"CONFIG+=record_support" "CONFIG+=html_webengine"
"CSOUND_INCLUDE_DIR=${csound}/include/csound"
"CSOUND_LIBRARY_DIR=${csound}/lib"
"RTMIDI_DIR=${rtmidi.src}"
"PYTHONQT_SRC_DIR=${python-qt}/include/PythonQt"
"PYTHONQT_LIB_DIR=${python-qt}/lib"
"LIBS+=-L${python-qt}/lib"
"INCLUDEPATH+=${python-qt}/include/PythonQt"
"INCLUDEPATH+=${python}/include/python2.7"
"INSTALL_DIR=${placeholder "out"}"
"SHARE_DIR=${placeholder "out"}/share"
];
dontWrapQtApps = true;
meta = with lib; {
description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features";
homepage = "https://csoundqt.github.io/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ hlolli ];
};
}

View file

@ -0,0 +1,17 @@
diff --git a/src/src.pri b/src/src.pri
index e5e0c896..9a9fa513 100644
--- a/src/src.pri
+++ b/src/src.pri
@@ -155,9 +155,9 @@ pythonqt {
"src/pyqcsobject.cpp"
}
rtmidi {
- HEADERS += "src/../$${RTMIDI_DIR}/RtMidi.h"
- SOURCES += "src/../$${RTMIDI_DIR}/RtMidi.cpp"
- INCLUDEPATH += src/../$${RTMIDI_DIR}
+ HEADERS += "$${RTMIDI_DIR}/RtMidi.h"
+ SOURCES += "$${RTMIDI_DIR}/RtMidi.cpp"
+ INCLUDEPATH += $${RTMIDI_DIR}
}
perfThread_build {

View file

@ -0,0 +1,58 @@
{ lib, stdenv, fetchFromGitHub, cmake, libsndfile, libsamplerate, flex, bison, boost, gettext
, Accelerate
, AudioUnit
, CoreAudio
, CoreMIDI
, alsa-lib ? null
, libpulseaudio ? null
, libjack2 ? null
, liblo ? null
, ladspa-sdk ? null
, fluidsynth ? null
# , gmm ? null # opcodes don't build with gmm 5.1
, eigen ? null
, curl ? null
, tcltk ? null
, fltk ? null
}:
stdenv.mkDerivation rec {
pname = "csound";
version = "6.17.0";
hardeningDisable = [ "format" ];
src = fetchFromGitHub {
owner = "csound";
repo = "csound";
rev = version;
sha256 = "sha256-O19jm3JxHg4TcQzWQZu1uFjfYN2FR41fCRq5YGnTGD0=";
};
cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
++ lib.optional stdenv.isDarwin "-DCS_FRAMEWORK_DEST=${placeholder "out"}/lib"
++ lib.optional (libjack2 != null) "-DJACK_HEADER=${libjack2}/include/jack/jack.h";
nativeBuildInputs = [ cmake flex bison gettext ];
buildInputs = [ libsndfile libsamplerate boost ]
++ lib.optionals stdenv.isDarwin [
Accelerate AudioUnit CoreAudio CoreMIDI
] ++ lib.optionals stdenv.isLinux (builtins.filter (optional: optional != null) [
alsa-lib libpulseaudio libjack2
liblo ladspa-sdk fluidsynth eigen
curl tcltk fltk
]);
postInstall = lib.optional stdenv.isDarwin ''
mkdir -p $out/Library/Frameworks
ln -s $out/lib/CsoundLib64.framework $out/Library/Frameworks
'';
meta = with lib; {
description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
homepage = "https://csound.com/";
license = licenses.lgpl21Plus;
maintainers = [maintainers.marcweber];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,36 @@
{ lib, fetchFromGitHub, substituteAll, python3Packages, mpv }:
python3Packages.buildPythonApplication rec {
version = "0.2";
pname = "curseradio";
src = fetchFromGitHub {
owner = "chronitis";
repo = pname;
rev = "1bd4bd0faeec675e0647bac9a100b526cba19f8d";
sha256 = "11bf0jnj8h2fxhpdp498189r4s6b47vy4wripv0z4nx7lxajl88i";
};
propagatedBuildInputs = with python3Packages; [
requests
lxml
pyxdg
];
patches = [
(substituteAll {
src = ./mpv.patch;
inherit mpv;
})
];
# No tests
doCheck = false;
meta = with lib; {
description = "Command line radio player";
homepage = "https://github.com/chronitis/curseradio";
license = licenses.mit;
maintainers = [ maintainers.eyjhb ];
};
}

View file

@ -0,0 +1,11 @@
--- a/curseradio/curseradio.py
+++ b/curseradio/curseradio.py
@@ -30,7 +30,7 @@ import re
CONFIG_DEFAULT = {
'opml': {'root': "http://opml.radiotime.com/"},
- 'playback': {'command': '/usr/bin/mpv'},
+ 'playback': {'command': '@mpv@/bin/mpv'},
'interface': {'keymap': 'default'},
'keymap.default': {
'up': 'KEY_UP',

View file

@ -0,0 +1,34 @@
{ stdenv
, lib
, fetchFromGitHub
, meson
, ninja
, pkg-config
, ffmpeg
, libcdio
, libcdio-paranoia
, libmusicbrainz5
, curl
}:
stdenv.mkDerivation rec {
pname = "cyanrip";
version = "0.8.1";
src = fetchFromGitHub {
owner = "cyanreg";
repo = pname;
rev = "v${version}";
sha256 = "17bi2xhjv3f3i870whkyqckvjlg32wqkspash87zi0jw7m7jm229";
};
nativeBuildInputs = [ meson ninja pkg-config ];
buildInputs = [ ffmpeg libcdio libcdio-paranoia libmusicbrainz5 curl ];
meta = with lib; {
homepage = "https://github.com/cyanreg/cyanrip";
description = "Bule-ish CD ripper";
license = licenses.lgpl21Plus;
platforms = platforms.all;
maintainers = [ maintainers.zane ];
};
}

View file

@ -0,0 +1,95 @@
{ config, lib, stdenv, fetchFromGitHub
, autoconf
, automake
, libtool
, intltool
, pkg-config
, jansson
# deadbeef can use either gtk2 or gtk3
, gtk2Support ? false, gtk2
, gtk3Support ? true, gtk3, gsettings-desktop-schemas, wrapGAppsHook
# input plugins
, vorbisSupport ? true, libvorbis
, mp123Support ? true, libmad
, flacSupport ? true, flac
, wavSupport ? true, libsndfile
, cdaSupport ? true, libcdio, libcddb
, aacSupport ? true, faad2
, opusSupport ? true, opusfile
, wavpackSupport ? false, wavpack
, ffmpegSupport ? false, ffmpeg
, apeSupport ? true, yasm
# misc plugins
, zipSupport ? true, libzip
, artworkSupport ? true, imlib2
, hotkeysSupport ? true, libX11
, osdSupport ? true, dbus
# output plugins
, alsaSupport ? true, alsa-lib
, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
# effect plugins
, resamplerSupport ? true, libsamplerate
, overloadSupport ? true, zlib
# transports
, remoteSupport ? true, curl
}:
assert gtk2Support || gtk3Support;
stdenv.mkDerivation rec {
pname = "deadbeef";
version = "1.8.4";
src = fetchFromGitHub {
owner = "DeaDBeeF-Player";
repo = "deadbeef";
rev = version;
sha256 = "161b0ll8v4cjgwwmk137hzvh0jidlkx56vjkpnr70f0x4jzv2nll";
};
buildInputs = with lib; [ jansson ]
++ optional gtk2Support gtk2
++ optionals gtk3Support [ gtk3 gsettings-desktop-schemas ]
++ optional vorbisSupport libvorbis
++ optional mp123Support libmad
++ optional flacSupport flac
++ optional wavSupport libsndfile
++ optionals cdaSupport [ libcdio libcddb ]
++ optional aacSupport faad2
++ optional opusSupport opusfile
++ optional zipSupport libzip
++ optional ffmpegSupport ffmpeg
++ optional apeSupport yasm
++ optional artworkSupport imlib2
++ optional hotkeysSupport libX11
++ optional osdSupport dbus
++ optional alsaSupport alsa-lib
++ optional pulseSupport libpulseaudio
++ optional resamplerSupport libsamplerate
++ optional overloadSupport zlib
++ optional wavpackSupport wavpack
++ optional remoteSupport curl
;
nativeBuildInputs = [
autoconf
automake
intltool
libtool
pkg-config
] ++ lib.optional gtk3Support wrapGAppsHook;
enableParallelBuilding = true;
preConfigure = ''
./autogen.sh
'';
meta = with lib; {
description = "Ultimate Music Player for GNU/Linux";
homepage = "http://deadbeef.sourceforge.net/";
license = licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [ maintainers.abbradar ];
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, libxml2, deadbeef, glib, gtk3 }:
stdenv.mkDerivation rec {
pname = "deadbeef-headerbar-gtk3-plugin";
version = "1.2";
src = fetchFromGitHub {
owner = "saivert";
repo = "ddb_misc_headerbar_GTK3";
rev = "v${version}";
sha256 = "1v1schvnps7ypjqgcbqi74a45w8r2gbhrawz7filym22h1qr9wn0";
};
nativeBuildInputs = [ autoconf automake libtool pkg-config libxml2 ];
buildInputs = [ deadbeef glib gtk3 ];
# Choose correct installation path
# https://github.com/saivert/ddb_misc_headerbar_GTK3/commit/50ff75f76aa9d40761e352311670a894bfcd5cf6#r30319680
makeFlags = [ "pkglibdir=$(out)/lib/deadbeef" ];
preConfigure = "./autogen.sh";
meta = with lib; {
description = "Plug-in that adds GTK 3 header bar to the DeaDBeeF music player";
homepage = "https://github.com/saivert/ddb_misc_headerbar_GTK3";
license = licenses.gpl2Plus;
maintainers = [ maintainers.jtojnar ];
platforms = platforms.linux;
};
}

Some files were not shown because too many files have changed in this diff Show more