3 # Optional due to unfree license.
10 gsettings-desktop-schemas,
13 gobject-introspection,
18 python3Packages.buildPythonApplication rec {
19 pname = "soundconverter";
22 src = fetchFromGitHub {
24 repo = "soundconverter";
26 hash = "sha256-sno5EOh8HHfBTIE67VA8mheYp5wUMFRCbcS2EtKES3c=";
33 gst_all_1.gst-plugins-base
34 gst_all_1.gst-plugins-good
35 gst_all_1.gst-plugins-ugly
36 (gst_all_1.gst-plugins-bad.override { inherit faacSupport; })
45 dependencies = with python3Packages; [
52 nativeCheckInputs = [ xvfb-run ];
55 substituteInPlace bin/soundconverter --replace \
56 "DATA_PATH = os.path.join(SOURCE_PATH, 'data')" \
57 "DATA_PATH = '$out/share/soundconverter'"
64 name = "${pname}-${version}";
66 xdgPaths = lib.concatMapStringsSep ":" glib.getSchemaDataDirPath;
70 export XDG_DATA_DIRS=$XDG_DATA_DIRS:${
73 gsettings-desktop-schemas
77 # FIXME: Fails due to weird Gio.file_parse_name() behavior.
78 sed -i '49 a\ @unittest.skip("Gio.file_parse_name issues")' tests/testcases/names.py
80 + lib.optionalString (!faacSupport) ''
81 substituteInPlace tests/testcases/gui_integration.py --replace \
82 "for encoder in ['fdkaacenc', 'faac', 'avenc_aac']:" \
83 "for encoder in ['fdkaacenc', 'avenc_aac']:"
88 xvfb-run python tests/test.py
92 # Necessary to set GDK_PIXBUF_MODULE_FILE.
98 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
102 homepage = "https://soundconverter.org/";
103 description = "Leading audio file converter for the GNOME Desktop";
104 mainProgram = "soundconverter";
106 SoundConverter reads anything the GStreamer library can read,
107 and writes WAV, FLAC, MP3, AAC and Ogg Vorbis files.
108 Uses Python and GTK+ GUI toolkit, and runs on X Window System.
110 license = lib.licenses.gpl3Only;
111 platforms = lib.platforms.linux;
112 maintainers = with lib.maintainers; [