Merge pull request #242621 from OPNA2608/darwin/wildmidi

wildmidi: Enable on Darwin & refactor config, gst-plugins-bad: enable wildmidi on Darwin
This commit is contained in:
Lily Foster 2023-07-16 18:56:07 -04:00 committed by GitHub
commit 7c2092faba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 14 deletions

View File

@ -192,6 +192,7 @@ stdenv.mkDerivation rec {
libfreeaptx
zxing-cpp
usrsctp
wildmidi
] ++ lib.optionals opencvSupport [
opencv4
] ++ lib.optionals enableZbar [
@ -212,9 +213,6 @@ stdenv.mkDerivation rec {
wayland
wayland-protocols
] ++ lib.optionals (!stdenv.isDarwin) [
# wildmidi requires apple's OpenAL
# TODO: package apple's OpenAL, fix wildmidi, include on Darwin
wildmidi
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
mjpegtools
@ -318,7 +316,6 @@ stdenv.mkDerivation rec {
"-Duvch264=disabled" # requires gudev
"-Dv4l2codecs=disabled" # requires gudev
"-Dladspa=disabled" # requires lrdf
"-Dwildmidi=disabled" # see dependencies above
] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64) [
"-Dqsv=disabled" # Linux (and Windows) x86 only
] ++ lib.optionals (!gst-plugins-base.glEnabled) [

View File

@ -1,5 +1,8 @@
{ lib, stdenv, fetchFromGitHub, cmake, alsa-lib, freepats }:
{ lib, stdenv, fetchFromGitHub, writeTextFile, cmake, alsa-lib, OpenAL, freepats }:
let
defaultCfgPath = "${placeholder "out"}/etc/wildmidi/wildmidi.cfg";
in
stdenv.mkDerivation rec {
pname = "wildmidi";
version = "0.4.5";
@ -13,21 +16,34 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = [ alsa-lib stdenv.cc.libc/*couldn't find libm*/ ];
buildInputs = lib.optionals stdenv.buildPlatform.isLinux [
alsa-lib stdenv.cc.libc/*couldn't find libm*/
] ++ lib.optionals stdenv.buildPlatform.isDarwin [
OpenAL
];
preConfigure = ''
substituteInPlace CMakeLists.txt \
--replace /etc/wildmidi $out/etc
# https://github.com/Mindwerks/wildmidi/issues/236
substituteInPlace src/wildmidi.pc.in \
--replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
--replace '$'{exec_prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
'';
postInstall = ''
mkdir "$out"/etc
echo "dir ${freepats}" > "$out"/etc/wildmidi.cfg
echo "source ${freepats}/freepats.cfg" >> "$out"/etc/wildmidi.cfg
cmakeFlags = [
"-DWILDMIDI_CFG=${defaultCfgPath}"
];
postInstall = let
defaultCfg = writeTextFile {
name = "wildmidi.cfg";
text = ''
dir ${freepats}
source ${freepats}/freepats.cfg
'';
};
in ''
mkdir -p "$(dirname ${defaultCfgPath})"
ln -s ${defaultCfg} ${defaultCfgPath}
'';
meta = with lib; {
@ -39,7 +55,7 @@ stdenv.mkDerivation rec {
homepage = "https://wildmidi.sourceforge.net/";
# The library is LGPLv3, the wildmidi executable is GPLv3
license = licenses.lgpl3;
platforms = platforms.linux;
platforms = platforms.unix;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@ -25137,7 +25137,9 @@ with pkgs;
whereami = callPackage ../development/libraries/whereami { };
wildmidi = callPackage ../development/libraries/wildmidi { };
wildmidi = callPackage ../development/libraries/wildmidi {
inherit (darwin.apple_sdk.frameworks) OpenAL;
};
wiredtiger = callPackage ../development/libraries/wiredtiger { };