guix/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch

84 lines
3.4 KiB
Diff
Raw Normal View History

From: Sebastian Ramacher <sebastian@ramacher.at>
Date: Fri, 6 Apr 2018 13:25:35 +0200
Subject: Only fetch profiles if GConf is still available
---
bin/soundconverter.py | 1 -
soundconverter/gstreamer.py | 44 ++++++++++++++++++++++++--------------------
2 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/bin/soundconverter.py b/bin/soundconverter.py
index 39055ce..5198443 100644
--- a/bin/soundconverter.py
+++ b/bin/soundconverter.py
@@ -66,7 +66,6 @@ def _check_libs():
import gi
gi.require_version('Gst', '1.0')
gi.require_version('Gtk', '3.0')
- gi.require_version('GConf', '2.0')
from gi.repository import GObject
# force GIL creation - see https://bugzilla.gnome.org/show_bug.cgi?id=710447
import threading
diff --git a/soundconverter/gstreamer.py b/soundconverter/gstreamer.py
index 23aaa9b..211b052 100644
--- a/soundconverter/gstreamer.py
+++ b/soundconverter/gstreamer.py
@@ -25,7 +25,7 @@ from urllib.parse import urlparse
from gettext import gettext as _
import gi
-from gi.repository import Gst, Gtk, GObject, GConf, Gio
+from gi.repository import Gst, Gtk, GObject, Gio
from soundconverter.fileoperations import vfs_encode_filename, file_encode_filename
from soundconverter.fileoperations import unquote_filename, vfs_makedirs, vfs_unlink
@@ -66,25 +66,29 @@ _GCONF_PROFILE_LIST_PATH = "/system/gstreamer/1.0/audio/global/profile_list"
audio_profiles_list = []
audio_profiles_dict = {}
-_GCONF = GConf.Client.get_default()
-profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH)
-for name in profiles:
- if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"):
- # get profile
- description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name")
- extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension")
- pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline")
- # check profile validity
- if not extension or not pipeline:
- continue
- if not description:
- description = extension
- if description in audio_profiles_dict:
- continue
- # store
- profile = description, extension, pipeline
- audio_profiles_list.append(profile)
- audio_profiles_dict[description] = profile
+try:
+ from gi.repository import GConf
+ _GCONF = GConf.Client.get_default()
+ profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH)
+ for name in profiles:
+ if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"):
+ # get profile
+ description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name")
+ extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension")
+ pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline")
+ # check profile validity
+ if not extension or not pipeline:
+ continue
+ if not description:
+ description = extension
+ if description in audio_profiles_dict:
+ continue
+ # store
+ profile = description, extension, pipeline
+ audio_profiles_list.append(profile)
+ audio_profiles_dict[description] = profile
+except ImportError:
+ pass
required_elements = ('decodebin', 'fakesink', 'audioconvert', 'typefind', 'audiorate')
for element in required_elements: