aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/soundconverter-remove-gconf-dependency.patch')
-rw-r--r--gnu/packages/patches/soundconverter-remove-gconf-dependency.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
new file mode 100644
index 0000000000..f065b9a3d4
--- /dev/null
+++ b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
@@ -0,0 +1,83 @@
+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: