diff options
Diffstat (limited to 'gnu/packages/patches/soundconverter-remove-gconf-dependency.patch')
-rw-r--r-- | gnu/packages/patches/soundconverter-remove-gconf-dependency.patch | 83 |
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: |