From e6a18c7c0c939b91b583d87e8b7767d7d5fe15d6 Mon Sep 17 00:00:00 2001 From: Graham White Date: Jul 12 2021 13:27:39 +0000 Subject: Update to 4.1.1, Python 3 compatibility. Respond to package review (BZ #1980282). --- diff --git a/.gitignore b/.gitignore index 0a2c2ea..5dde1e6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ exaile-0.3.2.0.tar.gz /exaile-3.4.3.tar.gz /exaile-3.4.5.tar.gz /exaile-4.0.0.tar.gz +/exaile-4.1.1.tar.gz diff --git a/d8bbcfd174b658babb6605799d1e9e788b578c84.patch b/d8bbcfd174b658babb6605799d1e9e788b578c84.patch new file mode 100644 index 0000000..960f711 --- /dev/null +++ b/d8bbcfd174b658babb6605799d1e9e788b578c84.patch @@ -0,0 +1,31 @@ +From 33220a748d340f83f3e053e0ba0afefef725aa87 Mon Sep 17 00:00:00 2001 +From: Johannes Sasongko +Date: Fri, 2 Apr 2021 10:51:54 +1000 +Subject: [PATCH] trax/util.is_valid_track: Change new_for_uri to + new_for_commandline_arg + +In Exaile core this is always called with a URI so it works, but the tests +call it with a local file path and we get test failures. (It must have +worked in earlier GIO versions, because our CI doesn't catch this.) + +trax.Track uses new_for_commandline_arg for its location argument, so this +should be correct. + +Fixes: https://github.com/exaile/exaile/issues/750 +--- + xl/trax/util.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xl/trax/util.py b/xl/trax/util.py +index 2738a771e..b980d392d 100644 +--- a/xl/trax/util.py ++++ b/xl/trax/util.py +@@ -45,7 +45,7 @@ def is_valid_track(location): + :returns: whether the file is a valid track + :rtype: boolean + """ +- extension = Gio.File.new_for_uri(location).get_basename().split(".")[-1] ++ extension = Gio.File.new_for_commandline_arg(location).get_basename().split(".")[-1] + return extension.lower() in metadata.formats + + diff --git a/exaile.spec b/exaile.spec index 1cb2bab..24a4626 100644 --- a/exaile.spec +++ b/exaile.spec @@ -1,60 +1,70 @@ -# This package depends on automagic byte compilation -# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 -%global _python_bytecompile_extra 1 - Name: exaile -Version: 4.0.0 +Version: 4.1.1 Release: 3%{?dist} Summary: Simple but powerful Amarok-style music player for GTK users License: GPLv2+ URL: http://www.exaile.org Source0: https://github.com/exaile/exaile/archive/%{version}/%{name}-%{version}.tar.gz +Patch0: https://github.com/exaile/exaile/commit/d8bbcfd174b658babb6605799d1e9e788b578c84.patch BuildArch: noarch - -BuildRequires: /usr/bin/pathfix.py -BuildRequires: python2-rpm-macros +BuildRequires: python3-rpm-macros # Dependencies: # see also https://github.com/exaile/exaile/blob/master/DEPS - +BuildRequires: cairo-gobject BuildRequires: desktop-file-utils BuildRequires: gettext +BuildRequires: gobject-introspection +BuildRequires: gstreamer1-plugins-base >= 1.14 +BuildRequires: gstreamer1-plugins-good >= 1.14 +BuildRequires: gtk3 >= 3.22 BuildRequires: help2man BuildRequires: libappstream-glib -BuildRequires: pygobject3-devel >= 3.13.2 -BuildRequires: gobject-introspection - -Requires: python2 -Requires: gtk3 >= 3.10 -Requires: python2-gstreamer1 >= 1.4 -Requires: gstreamer1-plugins-good >= 1.6 -Requires: gstreamer1-plugins-base >= 1.4 -Requires: python2-mutagen >= 1.10 -Requires: python2-dbus -Requires: pygobject3 >= 3.13.2 -Requires: python2-cairo +BuildRequires: python3-bsddb3 +BuildRequires: python3-cairo +BuildRequires: python3-dbus +BuildRequires: python3-devel +BuildRequires: python3-gobject-devel >= 3.22 +BuildRequires: python3-gstreamer1 >= 1.14 +BuildRequires: python3-mox3 +BuildRequires: python3-mutagen >= 1.38 +BuildRequires: python3-pytest +BuildRequires: python3-setproctitle + +Requires: python3 >= 3.6 +Requires: python3-bsddb3 +Requires: gtk3 >= 3.22 +Requires: python3-gstreamer1 >= 1.14 +Requires: gstreamer1-plugins-good >= 1.14 +Requires: gstreamer1-plugins-base >= 1.14 +Requires: python3-mutagen >= 1.38 +Requires: python3-dbus +Requires: python3-gobject >= 3.22 +Requires: python3-cairo Requires: cairo-gobject -Requires: python2-gobject +Requires: python3-setproctitle # Device detection: Recommends: libudisks2 # CD info: -Recommends: python2-cddb +# This is currently broken on python3 +# See https://github.com/exaile/exaile/issues/608 and https://github.com/exaile/exaile/issues/652 +# Recommends: python3-cddb # DAAP plugins (daapserver and daapclient): #Not packaged for Fedora #Recommends: spydaap +#Recommends: python3-zeroconf # Last.FM integration: -Recommends: python2-pylast +Recommends: python3-pylast # Lyrics from lyricsmania.com (lyricsmania): -Recommends: python2-lxml +Recommends: python3-lxml # Lyrics from lyrics.wikia.com (lyricwiki): -Recommends: python2-beautifulsoup4 +Recommends: python3-beautifulsoup4 # Musicbrainz covers: -Recommends: python2-musicbrainzngs +Recommends: python3-musicbrainzngs # Podcast plugin: -#Not packaged for Fedora -#Recommends: python2-feedparser +Recommends: python3-feedparser # Wikipedia info: Recommends: webkit2gtk3 # Xlib-based hotkeys: @@ -77,7 +87,7 @@ Recommends: streamripper Exaile is a music player with a simple interface and powerful music management capabilities. Features include automatic fetching of album art, lyrics fetching, streaming internet radio, tabbed playlists, smart -playlists with extensive filtering/search capabilities, and much more. +playlists with extensive filtering/search capabilities, and much more. Exaile is written using Python and GTK+ and is easily extensible via plugins. There are over 50 plugins distributed with Exaile that include @@ -87,23 +97,17 @@ ReplayGain, output via a secondary output device (great for DJs!), and much more. %prep -%setup -q -# Corresponding to: -# 1. Do not silently bytecompile. -# 2. Preserve timestamps. -find . -type f -name "Makefile" -exec \ - sed -i -e 's|compileall -q|compileall|g' \ - -e 's|install -m|install -pm|g' \ -{} + -print +%autosetup -p1 %build +%set_build_flags +# Keep timestamps while installing +# Delegate pyc compilation to brp-python-bytecompile +sed -i "s|install -m|\$(INSTALL) -m|;s|all: compile |all: |" Makefile %make_build %install -%make_install PREFIX=%{_prefix} LIBINSTALLDIR=%{_datadir} PYTHON2_CMD=%{__python2} - -# Some files got ambiguous python shebangs, we fix them after everything else is done -pathfix.py -pni "%{__python2}" %{buildroot}%{_datadir}/exaile/ +%make_install PREFIX=%{_prefix} LIBINSTALLDIR=%{_datadir} PYTHON3_CMD=%{__python3} desktop-file-install --delete-original \ --dir=%{buildroot}%{_datadir}/applications \ @@ -112,8 +116,11 @@ desktop-file-install --delete-original \ %find_lang %{name} %check +# this test should be ignored on Fedora/Debian systems and also doesn't work via Koji +rm tests/xl/trax/test_migration.py + appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/*.appdata.xml -#make test +make test %files -f %{name}.lang %doc README.md @@ -131,6 +138,13 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/*.appdata. %{_mandir}/man1/exaile*.1* %changelog +* Fri Jul 09 2021 Graham White - 4.1.1-2 +- Responding to package review (BZ #1980282) + +* Fri Apr 16 2021 Graham White - 4.1.1-1 +- Update to 4.1.1 +- Python 3 compatibility + * Thu Jul 25 2019 Fedora Release Engineering - 4.0.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/sources b/sources index fb58118..00bab01 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (exaile-4.0.0.tar.gz) = 66ec7cafed6ac12dd528d0e7d7262e0b3300269e4fd3ded2016dfd5ea308d08b8b6000e61366de0d381b299c955442454559154d5f4e1f7e48cd62298f6a3e43 +SHA512 (exaile-4.1.1.tar.gz) = 66c52374d2e668d0a9609749bd5308c9a3c76beeddc4ca990a5533ee521292941e32c6e37c1721df719e3db8cc3ce5636bfe4c9e33ad80236464ea579c89a0b7