{ packageOverrides = pkgs: rec { mpv = let mpv = pkgs.mpv.override { youtubeSupport = true; theoraSupport = true; }; in pkgs.stdenv.mkDerivation { name = "mpv-wrapper"; src = mpv; unpackPhase = "true"; buildInputs = [ pkgs.makeWrapper pkgs.rsync ]; installPhase = '' mkdir -p $out rsync -a $src/ $out/ chmod u+w $out/bin wrapProgram $out/bin/mpv \ --set JACK_PROMISCUOUS_SERVER 1 \ --run "umask 0" ''; }; jackmeter = let jackmeter = pkgs.jackmeter.override {}; in pkgs.stdenv.mkDerivation { name = "jackmeter-wrapper"; src = jackmeter; unpackPhase = "true"; buildInputs = [ pkgs.makeWrapper pkgs.rsync ]; installPhase = '' mkdir -p $out rsync -a $src/ $out/ chmod u+w $out/bin wrapProgram $out/bin/jack_meter \ --set JACK_PROMISCUOUS_SERVER 1 \ --run "umask 0" ''; }; myHaskellPackages = pkgs.recurseIntoAttrs ( pkgs.haskellPackages.override { extension = self: super: let callPackage = pkgs.lib.callPackageWith ( pkgs // self ); in { attoparsecExpr = callPackage ../custom/attoparsec-expr.nix {}; shellMonad = callPackage ../custom/shell-monad.nix {}; beuteltier = callPackage ../custom/beuteltier.nix {}; opossum = callPackage ../custom/opossum.nix {}; opossumWrapper = callPackage ../custom/opossum-wrapper.nix {}; wombat = callPackage ../custom/wombat.nix {}; wombatWrapper = pkgs.stdenv.mkDerivation { name = "wombat-wrapper"; src = self.wombat; unpackPhase = "true"; buildInputs = [ pkgs.makeWrapper pkgs.rsync ]; installPhase = '' mkdir -p $out rsync -a $src/ $out/ chmod u+w $out/bin wrapProgram $out/bin/wombat \ --prefix PATH : ${pkgs.ffmpeg}/bin \ --prefix PATH : ${pkgs.wget}/bin \ --prefix PATH : ${pkgs.youtube-dl}/bin ''; }; trivmix = callPackage ../custom/trivmix.nix {}; }; } ); runOpossum = pkgs.callPackage ../custom/run-opossum_bragi.nix { wombat = myHaskellPackages.wombatWrapper; opossum = myHaskellPackages.opossumWrapper; }; adjmix = let trivmix = myHaskellPackages.trivmix; in pkgs.stdenv.mkDerivation { name = "adjmix"; buildCommand = '' mkdir -p $out/bin cp ${trivmix}/bin/adjmix $out/bin ''; }; }; }