Merge branch 'master' into develop
Conflicts: docs/changelog.rst
This commit is contained in:
commit
b73095de28
@ -11,11 +11,18 @@ v0.19.0 (UNRELEASED)
|
||||
- Nothing yet.
|
||||
|
||||
|
||||
v0.18.2 (UNRELEASED)
|
||||
v0.18.2 (2014-02-16)
|
||||
====================
|
||||
|
||||
Bug fix release.
|
||||
|
||||
- We now log warnings for wrongly configured extensions, and clearly label them
|
||||
in :option:`mopidy config`, but does no longer stop Mopidy from starting
|
||||
because of misconfigured extensions. (Fixes: :issue:`682`)
|
||||
|
||||
- Fix a crash in the server side WebSocket handler caused by connection
|
||||
problems with clients. (Fixes: :issue:`428`, :issue:`571`)
|
||||
|
||||
- Fix the ``time_position`` field of the ``track_playback_ended`` event, which
|
||||
has been always 0 since v0.18.0. This made scrobbles by Mopidy-Scrobbler not
|
||||
be persisted by Last.fm, because Mopidy reported that you listened to 0
|
||||
|
||||
@ -21,4 +21,4 @@ if (isinstance(pykka.__version__, basestring)
|
||||
warnings.filterwarnings('ignore', 'could not open display')
|
||||
|
||||
|
||||
__version__ = '0.18.1'
|
||||
__version__ = '0.18.2'
|
||||
|
||||
@ -19,20 +19,25 @@ else:
|
||||
EMPTY_STRING = ''
|
||||
|
||||
|
||||
FETCH_ERROR = (
|
||||
'Fetching passwords from your keyring failed. Any passwords '
|
||||
'stored in the keyring will not be available.')
|
||||
|
||||
|
||||
def fetch():
|
||||
if not dbus:
|
||||
logger.debug('Fetching from keyring failed: dbus not installed.')
|
||||
logger.debug('%s (dbus not installed)', FETCH_ERROR)
|
||||
return []
|
||||
|
||||
try:
|
||||
bus = dbus.SessionBus()
|
||||
except dbus.exceptions.DBusException as e:
|
||||
logger.debug('Fetching from keyring failed: %s', e)
|
||||
logger.debug('%s (%s)', FETCH_ERROR, e)
|
||||
return []
|
||||
|
||||
if not bus.name_has_owner('org.freedesktop.secrets'):
|
||||
logger.debug(
|
||||
'Fetching from keyring failed: secrets service not running.')
|
||||
'%s (org.freedesktop.secrets service not running)', FETCH_ERROR)
|
||||
return []
|
||||
|
||||
service = _service(bus)
|
||||
@ -47,7 +52,7 @@ def fetch():
|
||||
items, prompt = service.Unlock(locked)
|
||||
if prompt != '/':
|
||||
_prompt(bus, prompt).Dismiss()
|
||||
logger.debug('Fetching from keyring failed: keyring is locked.')
|
||||
logger.debug('%s (Keyring is locked)', FETCH_ERROR)
|
||||
return []
|
||||
|
||||
result = []
|
||||
@ -65,19 +70,20 @@ def set(section, key, value):
|
||||
Indicates if storage failed or succeeded.
|
||||
"""
|
||||
if not dbus:
|
||||
logger.debug('Saving %s/%s to keyring failed: dbus not installed.',
|
||||
logger.debug('Saving %s/%s to keyring failed. (dbus not installed)',
|
||||
section, key)
|
||||
return False
|
||||
|
||||
try:
|
||||
bus = dbus.SessionBus()
|
||||
except dbus.exceptions.DBusException as e:
|
||||
logger.debug('Saving %s/%s to keyring failed: %s', section, key, e)
|
||||
logger.debug('Saving %s/%s to keyring failed. (%s)', section, key, e)
|
||||
return False
|
||||
|
||||
if not bus.name_has_owner('org.freedesktop.secrets'):
|
||||
logger.debug(
|
||||
'Saving %s/%s to keyring failed: secrets service not running.',
|
||||
'Saving %s/%s to keyring failed. '
|
||||
'(org.freedesktop.secrets service not running)',
|
||||
section, key)
|
||||
return False
|
||||
|
||||
@ -101,14 +107,14 @@ def set(section, key, value):
|
||||
item, prompt = collection.CreateItem(properties, secret, True)
|
||||
except dbus.exceptions.DBusException as e:
|
||||
# TODO: catch IsLocked errors etc.
|
||||
logger.debug('Saving %s/%s to keyring failed: %s', section, key, e)
|
||||
logger.debug('Saving %s/%s to keyring failed. (%s)', section, key, e)
|
||||
return False
|
||||
|
||||
if prompt == '/':
|
||||
return True
|
||||
|
||||
_prompt(bus, prompt).Dismiss()
|
||||
logger.debug('Saving secret %s/%s failed: Keyring is locked',
|
||||
logger.debug('Saving secret %s/%s failed. (Keyring is locked)',
|
||||
section, key)
|
||||
return False
|
||||
|
||||
|
||||
@ -100,10 +100,11 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener):
|
||||
host=self.hostname, port=self.port)
|
||||
|
||||
if self.zeroconf_service.publish():
|
||||
logger.info('Registered HTTP with Zeroconf as "%s"',
|
||||
self.zeroconf_service.name)
|
||||
logger.debug(
|
||||
'Registered HTTP with Zeroconf as "%s"',
|
||||
self.zeroconf_service.name)
|
||||
else:
|
||||
logger.info('Registering HTTP with Zeroconf failed.')
|
||||
logger.debug('Registering HTTP with Zeroconf failed.')
|
||||
|
||||
def on_stop(self):
|
||||
if self.zeroconf_service:
|
||||
|
||||
@ -48,10 +48,11 @@ class MpdFrontend(pykka.ThreadingActor, CoreListener):
|
||||
host=self.hostname, port=self.port)
|
||||
|
||||
if self.zeroconf_service.publish():
|
||||
logger.info('Registered MPD with Zeroconf as "%s"',
|
||||
self.zeroconf_service.name)
|
||||
logger.debug(
|
||||
'Registered MPD with Zeroconf as "%s"',
|
||||
self.zeroconf_service.name)
|
||||
else:
|
||||
logger.info('Registering MPD with Zeroconf failed.')
|
||||
logger.debug('Registering MPD with Zeroconf failed.')
|
||||
|
||||
def on_stop(self):
|
||||
if self.zeroconf_service:
|
||||
|
||||
@ -63,7 +63,7 @@ class Zeroconf(object):
|
||||
"""
|
||||
|
||||
if _is_loopback_address(self.host):
|
||||
logger.info(
|
||||
logger.debug(
|
||||
'Zeroconf publish on loopback interface is not supported.')
|
||||
return False
|
||||
|
||||
|
||||
@ -43,5 +43,6 @@ class VersionTest(unittest.TestCase):
|
||||
self.assertLess(SV('0.15.0'), SV('0.16.0'))
|
||||
self.assertLess(SV('0.16.0'), SV('0.17.0'))
|
||||
self.assertLess(SV('0.17.0'), SV('0.18.0'))
|
||||
self.assertLess(SV('0.18.0'), SV(__version__))
|
||||
self.assertLess(SV(__version__), SV('0.18.2'))
|
||||
self.assertLess(SV('0.18.0'), SV('0.18.1'))
|
||||
self.assertLess(SV('0.18.1'), SV(__version__))
|
||||
self.assertLess(SV(__version__), SV('0.18.3'))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user