Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pithos for openSUSE:Factory checked in at 2021-10-05 22:33:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pithos (Old) and /work/SRC/openSUSE:Factory/.pithos.new.2443 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pithos" Tue Oct 5 22:33:56 2021 rev:14 rq:923213 version:1.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/pithos/pithos.changes 2019-10-23 15:52:23.858794959 +0200 +++ /work/SRC/openSUSE:Factory/.pithos.new.2443/pithos.changes 2021-10-05 22:34:25.870929752 +0200 @@ -1,0 +2,13 @@ +Sat Oct 2 08:32:43 UTC 2021 - Enrico Belleri <ide...@protonmail.com> + +- Update to 1.5.1: + * Add Quit to the app menu + * Remove the limit of 95 stations + * Handle Enter keypress in stations search + * Fix app menu keybindings failing to work + * Fix syntax error on Python 3.8 + * Fix an exception on newer versions of pygobject + * Fix album art downloads in Flatpak + * MPRIS: Fix media keys failing to bind on KDE + +------------------------------------------------------------------- Old: ---- pithos-1.5.0.tar.xz New: ---- pithos-1.5.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pithos.spec ++++++ --- /var/tmp/diff_new_pack.DbTdDE/_old 2021-10-05 22:34:26.314930524 +0200 +++ /var/tmp/diff_new_pack.DbTdDE/_new 2021-10-05 22:34:26.314930524 +0200 @@ -1,7 +1,7 @@ # # spec file for package pithos # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # Copyright (c) 2012-2014 Malcolm J Lewis <malcolmle...@opensuse.org> # # All modifications and additions to the file contributed by third parties @@ -19,22 +19,23 @@ %global appid io.github.Pithos Name: pithos -Version: 1.5.0 +Version: 1.5.1 Release: 0 Summary: Native Pandora Radio client for Linux License: GPL-3.0-only Group: Productivity/Multimedia/Other -Url: https://pithos.github.io/ +URL: https://pithos.github.io Source0: https://github.com/pithos/pithos/releases/download/%{version}/pithos-%{version}.tar.xz - -BuildRequires: gdk-pixbuf-devel -BuildRequires: glib2-devel -BuildRequires: meson >= 0.50.0 # Needed for automatic typelib() Requires. BuildRequires: gobject-introspection BuildRequires: hicolor-icon-theme BuildRequires: intltool -BuildRequires: python3-devel >= 3.4 +BuildRequires: meson >= 0.50.0 +BuildRequires: pkgconfig +BuildRequires: pkgconfig(gdk-pixbuf-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(python3) >= 3.4 Requires: gstreamer-plugins-bad Requires: gstreamer-plugins-good Requires: python3-cairo ++++++ pithos-1.5.0.tar.xz -> pithos-1.5.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/data/io.github.Pithos.appdata.xml.in new/pithos-1.5.1/data/io.github.Pithos.appdata.xml.in --- old/pithos-1.5.0/data/io.github.Pithos.appdata.xml.in 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/data/io.github.Pithos.appdata.xml.in 2020-10-26 18:26:10.949539000 +0100 @@ -24,12 +24,27 @@ </screenshot> </screenshots> <releases> - <release date="2019-09-06" version="1.5.0"> + <release date="2020-10-26" version="1.5.1"> + <description> + <p>This is yet another minor bug fix release.</p> + <ul> + <li>Add Quit to the app menu</li> + <li>Remove the limit of 95 stations</li> + <li>Handle Enter keypress in stations search</li> + <li>Fix app menu keybindings failing to work</li> + <li>Fix syntax error on Python 3.8</li> + <li>Fix an exception on newer versions of pygobject</li> + <li>Fix album art downloads in Flatpak</li> + <li>MPRIS: Fix media keys failing to bind on KDE</li> + </ul> + </description> + </release> + <release date="2019-10-06" version="1.5.0"> <description> <p>This is a relatively small release fixing appmenu integration on modern versions of GNOME as well as using more sandbox (Flatpak) friendly APIs. Note that this move may introduce behavior changes on some platforms.</p> <ul> <li>Remove appmenu and move into a menu button in the toolbar</li> - <li>Fix preference dialog accidentaly getting destroyed</li> + <li>Fix preference dialog accidentally getting destroyed</li> <li>Notify: Migrate to GNotification</li> <li>MPRIS: Rename name to match app-id (org.mpris.MediaPlayer2.io.github.Pithos)</li> <li>Screensaver Pause: Remove platform specific screensaver support and use GTK's built-in detection</li> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/data/ui/PithosWindow.ui new/pithos-1.5.1/data/ui/PithosWindow.ui --- old/pithos-1.5.0/data/ui/PithosWindow.ui 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/data/ui/PithosWindow.ui 2020-10-26 18:26:10.950538900 +0100 @@ -7,15 +7,13 @@ <item> <attribute name="action">app.stations</attribute> <attribute name="label" translatable="yes">_Stations</attribute> - <attribute name="accel"><Primary>s</attribute> </item> </section> <section> - <item> - <attribute name="action">app.preferences</attribute> - <attribute name="label" translatable="yes">_Preferences</attribute> - <attribute name="accel"><Primary>p</attribute> - </item> + <item> + <attribute name="action">app.preferences</attribute> + <attribute name="label" translatable="yes">_Preferences</attribute> + </item> <item> <attribute name="action">win.show-help-overlay</attribute> <attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute> @@ -30,8 +28,14 @@ <attribute name="label" translatable="yes">_About</attribute> </item> </section> + <section> + <item> + <attribute name="action">app.quit</attribute> + <attribute name="label" translatable="yes">_Quit</attribute> + </item> + </section> </menu> - <object class="GtkAdjustment" id="adjustment1"> + <object class="GtkAdjustment" id="adjustment"> <property name="upper">100</property> <property name="step_increment">1</property> <property name="page_increment">10</property> @@ -45,16 +49,16 @@ <signal name="configure-event" handler="on_configure_event" swapped="no"/> <signal name="destroy" handler="on_destroy" swapped="no"/> <child> - <object class="GtkBox" id="vbox1"> + <object class="GtkBox"> <property name="visible">1</property> <property name="orientation">vertical</property> <child> - <object class="GtkToolbar" id="toolbar1"> + <object class="GtkToolbar"> <property name="visible">1</property> <property name="show_arrow">0</property> <property name="icon_size">2</property> <child> - <object class="GtkToolItem" id="toolitem1"> + <object class="GtkToolItem"> <property name="visible">1</property> <child> <object class="GtkBox" id="playcontrol_box"> @@ -85,7 +89,7 @@ </object> </child> <child> - <object class="GtkButton" id="button7"> + <object class="GtkButton"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="action_name">win.skip</property> @@ -120,7 +124,7 @@ </object> </child> <child internal-child="plus_button"> - <object class="GtkButton" id="volumebutton-plus_button2"> + <object class="GtkButton"> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="halign">center</property> @@ -129,7 +133,7 @@ </object> </child> <child internal-child="minus_button"> - <object class="GtkButton" id="volumebutton-minus_button2"> + <object class="GtkButton"> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="halign">center</property> @@ -150,7 +154,7 @@ </object> </child> <child> - <object class="GtkSeparatorToolItem" id="toolbutton1"> + <object class="GtkSeparatorToolItem"> <property name="visible">1</property> <property name="draw">0</property> </object> @@ -159,7 +163,7 @@ </packing> </child> <child> - <object class="GtkToolItem" id="toolbutton2"> + <object class="GtkToolItem"> <property name="visible">1</property> <property name="width-request">300</property> <child> @@ -173,7 +177,7 @@ </object> </child> <child> - <object class="GtkBox" id="box2"> + <object class="GtkBox"> <property name="visible">1</property> <property name="spacing">5</property> <child> @@ -184,7 +188,7 @@ </object> </child> <child> - <object class="GtkImage" id="image1"> + <object class="GtkImage"> <property name="visible">1</property> <property name="halign">end</property> <property name="valign">center</property> @@ -230,21 +234,21 @@ </object> </child> <child> - <object class="GtkScrolledWindow" id="scrolledwindow1"> + <object class="GtkScrolledWindow"> <property name="visible">1</property> - <property name="vadjustment">adjustment1</property> + <property name="vadjustment">adjustment</property> <property name="hscrollbar_policy">never</property> <child> <object class="GtkTreeView" id="songs_treeview"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="has_focus">1</property> - <property name="vadjustment">adjustment1</property> + <property name="vadjustment">adjustment</property> <property name="headers_visible">0</property> <property name="fixed_height_mode">1</property> <property name="enable_search">0</property> <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection1"/> + <object class="GtkTreeSelection"/> </child> </object> </child> @@ -274,21 +278,21 @@ <property name="secondary_text" translatable="yes">Pithos needs to be updated for compatibility with Pandora's latest changes.</property> <property name="secondary_use_markup">1</property> <child type="action"> - <object class="GtkButton" id="button4"> + <object class="GtkButton" id="button_help"> <property name="label" translatable="yes">Get Help Online</property> <property name="visible">1</property> </object> </child> <child type="action"> - <object class="GtkButton" id="button5"> + <object class="GtkButton" id="button_quit"> <property name="label" translatable="yes">Quit</property> <property name="visible">1</property> <property name="can_default">1</property> </object> </child> <action-widgets> - <action-widget response="1">button4</action-widget> - <action-widget response="0" default="true">button5</action-widget> + <action-widget response="1">button_help</action-widget> + <action-widget response="0" default="true">button_quit</action-widget> </action-widgets> </object> <object class="GtkMessageDialog" id="error_dialog_real"> @@ -297,28 +301,28 @@ <property name="message_type">error</property> <property name="text" translatable="yes">Error</property> <child type="action"> - <object class="GtkButton" id="button1"> + <object class="GtkButton" id="button_cancel"> <property name="label" translatable="yes">Cancel</property> <property name="visible">1</property> </object> </child> <child type="action"> - <object class="GtkButton" id="button2"> + <object class="GtkButton" id="button_retry"> <property name="label" translatable="yes">Retry</property> <property name="visible">1</property> </object> </child> <child type="action"> - <object class="GtkButton" id="button3"> + <object class="GtkButton" id="button_preferences"> <property name="label" translatable="yes">Preferences</property> <property name="visible">1</property> <property name="can_default">1</property> </object> </child> <action-widgets> - <action-widget response="1">button1</action-widget> - <action-widget response="2">button2</action-widget> - <action-widget response="3" default="true">button3</action-widget> + <action-widget response="1">button_cancel</action-widget> + <action-widget response="2">button_retry</action-widget> + <action-widget response="3" default="true">button_preferences</action-widget> </action-widgets> </object> <object class="GtkMessageDialog" id="fatal_error_dialog_real"> @@ -415,21 +419,21 @@ </object> </child> <child> - <object class="GtkMenuItem" id="menuitem4"> + <object class="GtkMenuItem"> <property name="visible">1</property> <property name="label" translatable="yes">Bookmark</property> <child type="submenu"> - <object class="GtkMenu" id="menu1"> + <object class="GtkMenu"> <property name="visible">1</property> <child> - <object class="GtkMenuItem" id="menuitem2"> + <object class="GtkMenuItem"> <property name="visible">1</property> <property name="label" translatable="yes">Song</property> <signal name="activate" handler="on_menuitem_bookmark_song" swapped="no"/> </object> </child> <child> - <object class="GtkMenuItem" id="menuitem3"> + <object class="GtkMenuItem"> <property name="visible">1</property> <property name="label" translatable="yes">Artist</property> <signal name="activate" handler="on_menuitem_bookmark_artist" swapped="no"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/docs/pithos.1 new/pithos-1.5.1/docs/pithos.1 --- old/pithos-1.5.0/docs/pithos.1 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/docs/pithos.1 2020-10-26 18:26:10.950538900 +0100 @@ -1,7 +1,7 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.11. -.TH PITHOS "1" "October 2019" "Pithos 1.5.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.14. +.TH PITHOS "1" "October 2020" "Pithos 1.5.1" "User Commands" .SH NAME -Pithos \- manual page for Pithos 1.5.0 +Pithos \- manual page for Pithos 1.5.1 .SH DESCRIPTION .SS "Usage:" .IP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/meson.build new/pithos-1.5.1/meson.build --- old/pithos-1.5.0/meson.build 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/meson.build 2020-10-26 18:26:10.950538900 +0100 @@ -1,5 +1,5 @@ project('pithos', - version: '1.5.0', + version: '1.5.1', meson_version: '>= 0.50.0' ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/pithos/SearchDialog.py new/pithos-1.5.1/pithos/SearchDialog.py --- old/pithos-1.5.0/pithos/SearchDialog.py 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/pithos/SearchDialog.py 2020-10-26 18:26:10.951539000 +0100 @@ -61,11 +61,11 @@ return for i in results: - if i.resultType is 'song': + if i.resultType == 'song': mk = '<b>{}</b> by {}'.format(html.escape(i.title), html.escape(i.artist)) - elif i.resultType is 'artist': + elif i.resultType == 'artist': mk = '<b>{}</b> (artist)'.format(html.escape(i.name)) - elif i.resultType is 'genre': + elif i.resultType == 'genre': mk = '<b>{}</b> (genre)'.format(html.escape(i.stationName)) self.model.append((i, mk)) self.treeview.show() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/pithos/StationsDialog.py new/pithos-1.5.1/pithos/StationsDialog.py --- old/pithos-1.5.0/pithos/StationsDialog.py 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/pithos/StationsDialog.py 2020-10-26 18:26:10.951539000 +0100 @@ -52,7 +52,7 @@ self.modelfilter.set_visible_func(visible_func) - self.modelsortable = Gtk.TreeModelSort.sort_new_with_model(self.modelfilter) + self.modelsortable = Gtk.TreeModelSort.new_with_model(self.modelfilter) """ @todo Leaving it as sorting by date added by default. Probably should make a radio select in the window or an option in program options for user preference @@ -201,9 +201,9 @@ def add_station_cb(self, dialog, response): result = dialog.result if result is not None: - if result.resultType is 'song': + if result.resultType == 'song': description = '{} by {}'.format(html.escape(result.title), html.escape(result.artist)) - elif result.resultType is 'artist': + elif result.resultType == 'artist': description = html.escape(result.name) else: description = html.escape(result.stationName) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/pithos/application.py new/pithos-1.5.1/pithos/application.py --- old/pithos-1.5.0/pithos/application.py 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/pithos/application.py 2020-10-26 18:26:10.951539000 +0100 @@ -67,10 +67,12 @@ action = Gio.SimpleAction.new("stations", None) action.connect("activate", self.stations_cb) self.add_action(action) + self.set_accels_for_action('app.stations', ['<Primary>s']) action = Gio.SimpleAction.new("preferences", None) action.connect("activate", self.prefs_cb) self.add_action(action) + self.set_accels_for_action('app.preferences', ['<Primary>p']) action = Gio.SimpleAction.new("help", None) action.connect("activate", self.help_cb) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/pithos/pandora/pandora.py new/pithos-1.5.1/pithos/pandora/pandora.py --- old/pithos-1.5.0/pithos/pandora/pandora.py 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/pithos/pandora/pandora.py 2020-10-26 18:26:10.952539000 +0100 @@ -327,7 +327,10 @@ logging.info('Explicit Content Filter set to: %s' %(state)) def get_stations(self, *ignore): - stations = self.json_call('user.getStationList')['stations'] + stations = self.json_call( + 'user.getStationList', + {'returnAllStations': True} + )['stations'] self.quickMixStationIds = None self.stations = [Station(self, i) for i in stations] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/pithos/pithos.py new/pithos-1.5.1/pithos/pithos.py --- old/pithos-1.5.0/pithos/pithos.py 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/pithos/pithos.py 2020-10-26 18:26:10.952539000 +0100 @@ -44,7 +44,7 @@ from .pandora import * from .pandora.data import * from .plugin import load_plugins -from .util import parse_proxy, open_browser, SecretService, popup_at_pointer +from .util import parse_proxy, open_browser, SecretService, popup_at_pointer, is_flatpak from .migrate_settings import maybe_migrate_settings try: @@ -366,12 +366,15 @@ self.worker = GObjectWorker() try: - self.tempdir = tempfile.TemporaryDirectory(prefix='pithos-', - dir=GLib.get_user_cache_dir()) - logging.info("Created temporary directory %s" %self.tempdir.name) + tempdir_base = '/var/tmp' # Prefered over /tmp as lots of icons can be large in size. + if is_flatpak(): + # However in flatpak that path is not readable by the host. + tempdir_base = os.path.join(GLib.get_user_cache_dir(), 'tmp') + self.tempdir = tempfile.TemporaryDirectory(prefix='pithos-', dir=tempdir_base) + logging.info("Created temporary directory {}".format(self.tempdir.name)) except IOError as e: self.tempdir = None - logging.warning('Failed to create a temporary directory') + logging.warning('Failed to create a temporary directory: {}'.format(e)) @property def playing(self): @@ -413,6 +416,7 @@ self.stations_popover.set_model(self.stations_model) self.stations_popover.listbox.connect('row-activated', self.active_station_changed) self.stations_button.set_popover(self.stations_popover) + self.stations_popover.search.connect('activate', self.search_activate_handler) def init_actions(self, app): action = Gio.SimpleAction.new('playpause', None) @@ -873,7 +877,7 @@ file_url = None if tmpdir: try: - with tempfile.NamedTemporaryFile(prefix='art-', dir=tmpdir.name, delete=False) as f: + with tempfile.NamedTemporaryFile(prefix='art-', suffix='.jpeg', dir=tmpdir.name, delete=False) as f: f.write(image) file_url = urllib.parse.urljoin('file://', urllib.parse.quote(f.name)) except IOError: @@ -1247,6 +1251,13 @@ GLib.source_remove(self.ui_loop_timer_id) self.ui_loop_timer_id = 0 + def search_activate_handler(self,station): + row = self.stations_popover.listbox.get_row_at_y(0) + if not row: + return + self.station_changed(row.station) + self.stations_popover.on_row_activated(self.stations_popover.listbox, row) + def active_station_changed(self, listbox, row): self.station_changed(row.station) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/pithos/plugins/mpris.py new/pithos-1.5.1/pithos/plugins/mpris.py --- old/pithos-1.5.0/pithos/plugins/mpris.py 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/pithos/plugins/mpris.py 2020-10-26 18:26:10.953539000 +0100 @@ -495,14 +495,14 @@ return 'io.github.Pithos' @dbus_property(MEDIA_PLAYER2_IFACE, signature='as') - def SupportedUriScheme(self): + def SupportedUriSchemes(self): '''as Read only Interface MediaPlayer2''' - return ['', ] + return [] @dbus_property(MEDIA_PLAYER2_IFACE, signature='as') def SupportedMimeTypes(self): '''as Read only Interface MediaPlayer2''' - return ['', ] + return [] @dbus_property(MEDIA_PLAYER2_PLAYER_IFACE, signature='s') def PlaybackStatus(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pithos-1.5.0/pithos/util.py new/pithos-1.5.1/pithos/util.py --- old/pithos-1.5.0/pithos/util.py 2019-10-06 22:36:47.000000000 +0200 +++ new/pithos-1.5.1/pithos/util.py 2020-10-26 18:26:10.953539000 +0100 @@ -14,6 +14,7 @@ import logging +import os from urllib.parse import splittype, splituser, splitpasswd import gi @@ -223,3 +224,12 @@ popup_at_pointer = Gtk.Menu.popup_at_pointer else: popup_at_pointer = lambda menu, event: menu.popup(None, None, None, None, event.button, event.time) + +_is_flatpak = None +def is_flatpak() -> bool: + global _is_flatpak + + if _is_flatpak is None: + _is_flatpak = os.path.exists('/.flatpak-info') + + return _is_flatpak