audacity: move to by-name, format and refactor (#348861)
This commit is contained in:
commit
ea2a73f1ad
@ -1,208 +0,0 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, makeWrapper
|
||||
, wrapGAppsHook3
|
||||
, pkg-config
|
||||
, python3
|
||||
, gettext
|
||||
, file
|
||||
, libvorbis
|
||||
, libmad
|
||||
, libjack2
|
||||
, lv2
|
||||
, lilv
|
||||
, mpg123
|
||||
, opusfile
|
||||
, rapidjson
|
||||
, serd
|
||||
, sord
|
||||
, sqlite
|
||||
, sratom
|
||||
, suil
|
||||
, libsndfile
|
||||
, soxr
|
||||
, flac
|
||||
, lame
|
||||
, twolame
|
||||
, expat
|
||||
, libid3tag
|
||||
, libopus
|
||||
, libuuid
|
||||
, ffmpeg
|
||||
, 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
|
||||
, wavpack
|
||||
, wxGTK32
|
||||
, gtk3
|
||||
, libpng
|
||||
, libjpeg
|
||||
, AppKit
|
||||
, CoreAudioKit
|
||||
}:
|
||||
|
||||
# TODO
|
||||
# 1. detach sbsms
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "audacity";
|
||||
version = "3.6.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "audacity";
|
||||
repo = "audacity";
|
||||
rev = "Audacity-${version}";
|
||||
hash = "sha256-72k79UFxhk8JUCnMzbU9lZ0Ua3Ui41EkhPGSnGkf9mE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
mkdir src/private
|
||||
substituteInPlace scripts/build/macOS/fix_bundle.py \
|
||||
--replace "path.startswith('/usr/lib/')" "path.startswith('${builtins.storeDir}')"
|
||||
'' + lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace libraries/lib-files/FileNames.cpp \
|
||||
--replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
|
||||
'' + lib.optionalString (stdenv.hostPlatform.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "11.0") ''
|
||||
sed -z -i "s/NSAppearanceName.*systemAppearance//" src/AudacityApp.mm
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gettext
|
||||
pkg-config
|
||||
python3
|
||||
makeWrapper
|
||||
wrapGAppsHook3
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
linuxHeaders
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
expat
|
||||
ffmpeg
|
||||
file
|
||||
flac
|
||||
gtk3
|
||||
lame
|
||||
libid3tag
|
||||
libjack2
|
||||
libmad
|
||||
libopus
|
||||
libsbsms_2_3_0
|
||||
libsndfile
|
||||
libvorbis
|
||||
lilv
|
||||
lv2
|
||||
mpg123
|
||||
opusfile
|
||||
pcre
|
||||
portmidi
|
||||
rapidjson
|
||||
serd
|
||||
sord
|
||||
soundtouch
|
||||
soxr
|
||||
sqlite
|
||||
sratom
|
||||
suil
|
||||
twolame
|
||||
portaudio
|
||||
wavpack
|
||||
wxGTK32
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
alsa-lib # for portaudio
|
||||
at-spi2-core
|
||||
dbus
|
||||
libepoxy
|
||||
libXdmcp
|
||||
libXtst
|
||||
libpthreadstubs
|
||||
libxkbcommon
|
||||
libselinux
|
||||
libsepol
|
||||
libuuid
|
||||
util-linux
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
AppKit
|
||||
CoreAudioKit # for portaudio
|
||||
libpng
|
||||
libjpeg
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DAUDACITY_BUILD_LEVEL=2"
|
||||
"-DAUDACITY_REV_LONG=nixpkgs"
|
||||
"-DAUDACITY_REV_TIME=nixpkgs"
|
||||
"-DDISABLE_DYNAMIC_LOADING_FFMPEG=ON"
|
||||
"-Daudacity_conan_enabled=Off"
|
||||
"-Daudacity_use_ffmpeg=loaded"
|
||||
"-Daudacity_has_vst3=Off"
|
||||
"-Daudacity_has_crashreports=Off"
|
||||
|
||||
# RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
|
||||
"-DCMAKE_SKIP_BUILD_RPATH=ON"
|
||||
|
||||
# Fix duplicate store paths
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
];
|
||||
|
||||
# [ 57%] Generating LightThemeAsCeeCode.h...
|
||||
# ../../utils/image-compiler: error while loading shared libraries:
|
||||
# lib-theme.so: cannot open shared object file: No such file or directory
|
||||
preBuild = ''
|
||||
export LD_LIBRARY_PATH=$PWD/Release/lib/audacity
|
||||
'';
|
||||
|
||||
doCheck = false; # Test fails
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
# Replace audacity's wrapper, to:
|
||||
# - put it in the right place, it shouldn't be in "$out/audacity"
|
||||
# - Add the ffmpeg dynamic dependency
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
wrapProgram "$out/bin/audacity" \
|
||||
"''${gappsWrapperArgs[@]}" \
|
||||
--prefix LD_LIBRARY_PATH : "$out/lib/audacity":${lib.makeLibraryPath [ ffmpeg ]} \
|
||||
--suffix AUDACITY_MODULES_PATH : "$out/lib/audacity/modules" \
|
||||
--suffix AUDACITY_PATH : "$out/share/audacity"
|
||||
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/{Applications,bin}
|
||||
mv $out/Audacity.app $out/Applications/
|
||||
makeWrapper $out/Applications/Audacity.app/Contents/MacOS/Audacity $out/bin/audacity
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Sound editor with graphical UI";
|
||||
mainProgram = "audacity";
|
||||
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; [ veprbl wegank ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
224
pkgs/by-name/au/audacity/package.nix
Normal file
224
pkgs/by-name/au/audacity/package.nix
Normal file
@ -0,0 +1,224 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
makeWrapper,
|
||||
wrapGAppsHook3,
|
||||
pkg-config,
|
||||
python3,
|
||||
gettext,
|
||||
file,
|
||||
libvorbis,
|
||||
libmad,
|
||||
libjack2,
|
||||
lv2,
|
||||
lilv,
|
||||
mpg123,
|
||||
opusfile,
|
||||
rapidjson,
|
||||
serd,
|
||||
sord,
|
||||
sqlite,
|
||||
sratom,
|
||||
suil,
|
||||
libsndfile,
|
||||
soxr,
|
||||
flac,
|
||||
lame,
|
||||
twolame,
|
||||
expat,
|
||||
libid3tag,
|
||||
libopus,
|
||||
libuuid,
|
||||
ffmpeg,
|
||||
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,
|
||||
wavpack,
|
||||
wxGTK32,
|
||||
gtk3,
|
||||
libpng,
|
||||
libjpeg,
|
||||
darwin,
|
||||
}:
|
||||
|
||||
# TODO
|
||||
# 1. detach sbsms
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "audacity";
|
||||
version = "3.6.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "audacity";
|
||||
repo = "audacity";
|
||||
rev = "Audacity-${finalAttrs.version}";
|
||||
hash = "sha256-72k79UFxhk8JUCnMzbU9lZ0Ua3Ui41EkhPGSnGkf9mE=";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
''
|
||||
mkdir src/private
|
||||
substituteInPlace scripts/build/macOS/fix_bundle.py \
|
||||
--replace "path.startswith('/usr/lib/')" "path.startswith('${builtins.storeDir}')"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace libraries/lib-files/FileNames.cpp \
|
||||
--replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
|
||||
''
|
||||
+
|
||||
lib.optionalString
|
||||
(stdenv.hostPlatform.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "11.0")
|
||||
''
|
||||
sed -z -i "s/NSAppearanceName.*systemAppearance//" src/AudacityApp.mm
|
||||
'';
|
||||
|
||||
nativeBuildInputs =
|
||||
[
|
||||
cmake
|
||||
gettext
|
||||
pkg-config
|
||||
python3
|
||||
makeWrapper
|
||||
wrapGAppsHook3
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
linuxHeaders
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
expat
|
||||
ffmpeg
|
||||
file
|
||||
flac
|
||||
gtk3
|
||||
lame
|
||||
libid3tag
|
||||
libjack2
|
||||
libmad
|
||||
libopus
|
||||
libsbsms_2_3_0
|
||||
libsndfile
|
||||
libvorbis
|
||||
lilv
|
||||
lv2
|
||||
mpg123
|
||||
opusfile
|
||||
pcre
|
||||
portmidi
|
||||
rapidjson
|
||||
serd
|
||||
sord
|
||||
soundtouch
|
||||
soxr
|
||||
sqlite
|
||||
sratom
|
||||
suil
|
||||
twolame
|
||||
portaudio
|
||||
wavpack
|
||||
wxGTK32
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
alsa-lib # for portaudio
|
||||
at-spi2-core
|
||||
dbus
|
||||
libepoxy
|
||||
libXdmcp
|
||||
libXtst
|
||||
libpthreadstubs
|
||||
libxkbcommon
|
||||
libselinux
|
||||
libsepol
|
||||
libuuid
|
||||
util-linux
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
darwin.apple_sdk.frameworks.AppKit
|
||||
darwin.apple_sdk.frameworks.CoreAudioKit # for portaudio
|
||||
libpng
|
||||
libjpeg
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DAUDACITY_BUILD_LEVEL=2"
|
||||
"-DAUDACITY_REV_LONG=nixpkgs"
|
||||
"-DAUDACITY_REV_TIME=nixpkgs"
|
||||
"-DDISABLE_DYNAMIC_LOADING_FFMPEG=ON"
|
||||
"-Daudacity_conan_enabled=Off"
|
||||
"-Daudacity_use_ffmpeg=loaded"
|
||||
"-Daudacity_has_vst3=Off"
|
||||
"-Daudacity_has_crashreports=Off"
|
||||
|
||||
# RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
|
||||
"-DCMAKE_SKIP_BUILD_RPATH=ON"
|
||||
|
||||
# Fix duplicate store paths
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
];
|
||||
|
||||
# [ 57%] Generating LightThemeAsCeeCode.h...
|
||||
# ../../utils/image-compiler: error while loading shared libraries:
|
||||
# lib-theme.so: cannot open shared object file: No such file or directory
|
||||
preBuild = ''
|
||||
export LD_LIBRARY_PATH=$PWD/Release/lib/audacity
|
||||
'';
|
||||
|
||||
doCheck = false; # Test fails
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
# Replace audacity's wrapper, to:
|
||||
# - put it in the right place, it shouldn't be in "$out/audacity"
|
||||
# - Add the ffmpeg dynamic dependency
|
||||
postFixup =
|
||||
lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
wrapProgram "$out/bin/audacity" \
|
||||
"''${gappsWrapperArgs[@]}" \
|
||||
--prefix LD_LIBRARY_PATH : "$out/lib/audacity":${lib.makeLibraryPath [ ffmpeg ]} \
|
||||
--suffix AUDACITY_MODULES_PATH : "$out/lib/audacity/modules" \
|
||||
--suffix AUDACITY_PATH : "$out/share/audacity"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/{Applications,bin}
|
||||
mv $out/Audacity.app $out/Applications/
|
||||
makeWrapper $out/Applications/Audacity.app/Contents/MacOS/Audacity $out/bin/audacity
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Sound editor with graphical UI";
|
||||
mainProgram = "audacity";
|
||||
homepage = "https://www.audacityteam.org";
|
||||
changelog = "https://github.com/audacity/audacity/releases";
|
||||
license = with lib.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 lib.maintainers; [
|
||||
veprbl
|
||||
wegank
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
@ -28122,10 +28122,6 @@ with pkgs;
|
||||
audacious = audacious.override { audacious-plugins = null; };
|
||||
};
|
||||
|
||||
audacity = callPackage ../applications/audio/audacity {
|
||||
inherit (darwin.apple_sdk.frameworks) AppKit CoreAudioKit;
|
||||
};
|
||||
|
||||
audio-recorder = callPackage ../applications/audio/audio-recorder { };
|
||||
|
||||
auto-multiple-choice = callPackage ../applications/misc/auto-multiple-choice { };
|
||||
|
Loading…
Reference in New Issue
Block a user