diff options
Diffstat (limited to 'pkgs/development')
3 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 09956a38bce4..f4d2a279a678 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -514,6 +514,10 @@ stdenv.mkDerivation ({ # Expose hadrian used for bootstrapping, for debugging purposes inherit hadrian; + + # TODO(@sternenseemann): there's no stage0:exe:haddock target by default, + # so haddock isn't available for GHC cross-compilers. Can we fix that? + hasHaddock = stdenv.hostPlatform == stdenv.targetPlatform; }; meta = { diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index e9e2dcc86fb2..3ea510b7da68 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1322,6 +1322,17 @@ self: super: { testToolDepends = (drv.testToolDepends or []) ++ [pkgs.postgresql]; }) super.beam-postgres; + # PortMidi needs an environment variable to have ALSA find its plugins: + # https://github.com/NixOS/nixpkgs/issues/6860 + PortMidi = overrideCabal (drv: { + patches = (drv.patches or []) ++ [ ./patches/portmidi-alsa-plugins.patch ]; + postPatch = (drv.postPatch or "") + '' + substituteInPlace portmidi/pm_linux/pmlinuxalsa.c \ + --replace @alsa_plugin_dir@ "${pkgs.alsa-plugins}/lib/alsa-lib" + ''; + }) super.PortMidi; + + # Fix for base >= 4.11 scat = overrideCabal (drv: { patches = [ # Fix build with base >= 4.11 diff --git a/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch b/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch new file mode 100644 index 000000000000..13860b7cfb7f --- /dev/null +++ b/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch @@ -0,0 +1,31 @@ +diff -Naurd PortMidi-0.2.0.0/portmidi/pm_linux/pmlinuxalsa.c PortMidi-0.2.0.0-alsafix/portmidi/pm_linux/pmlinuxalsa.c +--- PortMidi-0.2.0.0/portmidi/pm_linux/pmlinuxalsa.c 2023-12-13 11:35:12.517413022 +0000 ++++ PortMidi-0.2.0.0-alsafix/portmidi/pm_linux/pmlinuxalsa.c 2023-12-13 11:35:12.565413037 +0000 +@@ -719,6 +719,18 @@ + } + + ++static void set_alsa_plugin_path( void ) ++{ ++ char *existing; ++ ++ existing = getenv("ALSA_PLUGIN_DIR"); ++ if (NULL != existing) { ++ return; ++ } ++ setenv("ALSA_PLUGIN_DIR", "@alsa_plugin_dir@", 0); ++} ++ ++ + PmError pm_linuxalsa_init( void ) + { + int err; +@@ -726,6 +738,8 @@ + snd_seq_port_info_t *pinfo; + unsigned int caps; + ++ set_alsa_plugin_path(); ++ + /* Previously, the last parameter was SND_SEQ_NONBLOCK, but this + * would cause messages to be dropped if the ALSA buffer fills up. + * The correct behavior is for writes to block until there is |