diff --git a/.gitignore b/.gitignore index c3ca32a..99cfd3d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ libffado-2.0.1-svn1864.tar.bz2 /libffado-2.2.1.tgz /libffado-2.3.0.tgz /libffado-2.4.0.tgz +/libffado-2.4.1.tgz diff --git a/libffado-api-doc-only.patch b/libffado-api-doc-only.patch deleted file mode 100644 index 0c2564a..0000000 --- a/libffado-api-doc-only.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -rupN libffado.old/doc/reference.doxygen.in libffado/doc/reference.doxygen.in ---- libffado.old/doc/reference.doxygen.in 2009-12-18 13:52:13.000000000 -0500 -+++ libffado/doc/reference.doxygen.in 2010-06-05 21:00:54.000000000 -0400 -@@ -568,9 +568,7 @@ WARN_LOGFILE = - # directories like "/usr/src/myproject". Separate the files or directories - # with spaces. - --INPUT = $top_srcdir/src \ -- $top_srcdir/doc \ -- $top_srcdir/libffado -+INPUT = $top_srcdir/libffado - - # This tag can be used to specify the character encoding of the source files - # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -diff -rupN libffado.old/SConstruct libffado/SConstruct ---- libffado.old/SConstruct 2010-05-10 15:34:07.000000000 -0400 -+++ libffado/SConstruct 2010-06-05 21:29:43.000000000 -0400 -@@ -583,7 +583,7 @@ if not env.GetOption('clean'): - Default( 'support' ) - if env['BUILD_TESTS']: - Default( 'tests' ) -- -+ Default( 'doc' ) - # - # Deal with the DESTDIR vs. xdg-tools conflict (which is basicely that the - # xdg-tools can't deal with DESTDIR, so the packagers have to deal with this diff --git a/libffado-byteswap.patch b/libffado-byteswap.patch deleted file mode 100644 index 716fb2d..0000000 --- a/libffado-byteswap.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -rupN libffado-2.4.0.org/src/rme/rme_avdevice.cpp libffado-2.4.0/src/rme/rme_avdevice.cpp ---- libffado-2.4.0.org/src/rme/rme_avdevice.cpp 2017-06-03 04:08:05.000000000 -0400 -+++ libffado-2.4.0/src/rme/rme_avdevice.cpp 2018-01-02 21:38:01.507348351 -0500 -@@ -42,7 +42,6 @@ - #include - #include - #include --#include "libutil/ByteSwap.h" - - #include - #include -diff -rupN libffado-2.4.0.org/src/rme/rme_avdevice.h libffado-2.4.0/src/rme/rme_avdevice.h ---- libffado-2.4.0.org/src/rme/rme_avdevice.h 2017-05-09 08:55:47.000000000 -0400 -+++ libffado-2.4.0/src/rme/rme_avdevice.h 2018-01-02 21:38:12.755286977 -0500 -@@ -31,6 +31,7 @@ - #include "libavc/avc_definitions.h" - - #include "libutil/Configuration.h" -+#include "libutil/ByteSwap.h" - - #include "fireface_def.h" - #include "libstreaming/rme/RmeReceiveStreamProcessor.h" diff --git a/libffado-pyqt4and5compat.patch b/libffado-pyqt4and5compat.patch deleted file mode 100644 index d353a2d..0000000 --- a/libffado-pyqt4and5compat.patch +++ /dev/null @@ -1,172 +0,0 @@ -diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/ffadowindow.py libffado-2.4.0/support/mixer-qt4/ffado/ffadowindow.py ---- libffado-2.4.0.org/support/mixer-qt4/ffado/ffadowindow.py 2017-06-04 03:23:13.000000000 -0400 -+++ libffado-2.4.0/support/mixer-qt4/ffado/ffadowindow.py 2018-01-05 20:27:25.394068104 -0500 -@@ -22,6 +22,8 @@ - # along with this program. If not, see . - # - -+import ctypes -+import datetime - import os - - from ffado.config import * -@@ -92,7 +94,8 @@ class FFADOWindow(QMainWindow): - self.menuTheme[theme].setCheckable(True) - - if (ffado_python3 and (self.style().objectName().lower() == theme.lower()) or -- not(ffado_python3) and (self.style().objectName().toLower() == theme.toLower())): -+ not(ffado_python3) and (self.style().objectName().toLower() == theme.toLower() if ffado_pyqt_version == 4 else -+ self.style().objectName().lower() == theme.lower())): - self.menuTheme[theme].setDisabled(True) - self.menuTheme[theme].setChecked(True) - self.menuTheme[theme].triggered.connect(self.switchTheme ) -@@ -174,9 +177,11 @@ class FFADOWindow(QMainWindow): - QMessageBox.about( self, "About FFADO", """ -

ffado.org

- -+

{ffado_version}

-+ -

FFADO is the new approach to have firewire audio on linux.

- --

© 2006-2014 by the FFADO developers
ffado is licensed under the GPLv3, for the full license text see www.gnu.org/licenses or the LICENSE.* files shipped with ffado.

-+

© 2006-2018 by the FFADO developers
ffado is licensed under the GPLv3, for the full license text see www.gnu.org/licenses or the LICENSE.* files shipped with ffado.

- -

FFADO developers are:

    -
  • Pieter Palmers -@@ -191,8 +196,17 @@ with contributions from:
      -
    • Stefan Richter -
    • Jano Svitok -
    --""" ) -+ """.format(ffado_version=get_ffado_version(), thisyear=datetime.datetime.now().year)) - -+def get_ffado_version(): -+ try: -+ # call the C function ffado_get_version() to figure out the version -+ lib = ctypes.cdll.LoadLibrary('libffado.so') -+ func = ctypes.CFUNCTYPE(ctypes.c_char_p) -+ ffado_get_version = func(('ffado_get_version', lib)) -+ return ffado_get_version() -+ except: -+ return "libffado" - - def get_lock(process_name): - import socket -@@ -252,6 +266,7 @@ def ffadomain(args): - logging.getLogger('global').setLevel(debug_level) - - log = logging.getLogger('main') -+ log.debug("Using %s with Qt: %s PyQt: %s" % (get_ffado_version(), QtCore.QT_VERSION_STR, QtCore.PYQT_VERSION_STR)) - - app = QApplication(args) - app.setWindowIcon( QIcon( SHAREDIR + "/icons/hi64-apps-ffado.png" ) ) -diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/logginghandler.py libffado-2.4.0/support/mixer-qt4/ffado/logginghandler.py ---- libffado-2.4.0.org/support/mixer-qt4/ffado/logginghandler.py 2017-06-03 04:25:01.000000000 -0400 -+++ libffado-2.4.0/support/mixer-qt4/ffado/logginghandler.py 2018-01-03 22:01:14.939141810 -0500 -@@ -28,7 +28,7 @@ import logging - log = logging.getLogger('logginghandler') - - class QStatusLogger( QObject, logging.Handler ): -- log = pyqtSignal(QString, int, name='log') -+ log = pyqtSignal(QString if ffado_pyqt_version == 4 else str, int, name='log') - def __init__( self, parent, statusbar, level=logging.NOTSET ): - QObject.__init__( self, parent ) - logging.Handler.__init__( self, level ) -diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/panelmanager.py libffado-2.4.0/support/mixer-qt4/ffado/panelmanager.py ---- libffado-2.4.0.org/support/mixer-qt4/ffado/panelmanager.py 2017-06-04 03:40:48.000000000 -0400 -+++ libffado-2.4.0/support/mixer-qt4/ffado/panelmanager.py 2018-01-03 21:18:15.042504716 -0500 -@@ -378,7 +378,7 @@ except ImportError: - action = self.sender() - # Extract the action data and store as a dbus.String type so - # it is usable as a key into self.panels[]. -- panel_key = dbus.String(action.data().toString()) -+ panel_key = dbus.String(action.data().toString() if ffado_pyqt_version == 4 else action.data()) - self.tabs.setCurrentIndex(self.tabs.indexOf(self.panels[panel_key])) - - def displayPanels(self): -@@ -515,6 +515,8 @@ except ImportError: - saveString.append('\n') - # file saving - savefilename = QFileDialog.getSaveFileName(self, 'Save File', os.getenv('HOME')) -+ if isinstance(savefilename, tuple): # newer PyQt5 -+ savefilename = savefilename[0] - try: - f = open(savefilename, 'w') - except IOError: -@@ -526,6 +528,8 @@ except ImportError: - - def readSettings(self): - readfilename = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME')) -+ if isinstance(readfilename, tuple): # newer PyQt5 -+ readfilename = readfilename[0] - try: - f = open(readfilename, 'r') - except IOError: -diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/crossbarrouter.py libffado-2.4.0/support/mixer-qt4/ffado/widgets/crossbarrouter.py ---- libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/crossbarrouter.py 2017-06-03 04:25:01.000000000 -0400 -+++ libffado-2.4.0/support/mixer-qt4/ffado/widgets/crossbarrouter.py 2018-01-03 21:11:01.563420583 -0500 -@@ -168,7 +168,10 @@ class CrossbarRouter(QWidget): - self.timer.setInterval(200) - self.timer.timeout.connect(self.updateLevels) - -- self.vubtn.setChecked(self.settings.value("crossbarrouter/runvu", False).toBool()) -+ if ffado_pyqt_version == 4: -+ self.vubtn.setChecked(self.settings.value("crossbarrouter/runvu", False).toBool()) -+ else: -+ self.vubtn.setChecked(self.settings.value("crossbarrouter/runvu", False) == u'true') - - def __del__(self): - print( "CrossbarRouter.__del__()" ) -diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/matrixmixer.py libffado-2.4.0/support/mixer-qt4/ffado/widgets/matrixmixer.py ---- libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/matrixmixer.py 2017-06-03 07:29:20.000000000 -0400 -+++ libffado-2.4.0/support/mixer-qt4/ffado/widgets/matrixmixer.py 2018-01-03 23:39:38.884080843 -0500 -@@ -200,14 +200,14 @@ class MixerNode(QAbstractSlider): - - def mousePressEvent(self, ev): - if ev.buttons() & Qt.LeftButton: -- self.pos = ev.posF() -+ self.pos = ev.posF() if ffado_pyqt_version == 4 else ev.localPos() - self.tmpvalue = self.value() - ev.accept() - #log.debug("MixerNode.mousePressEvent() %s" % str(self.pos)) - - def mouseMoveEvent(self, ev): - if hasattr(self, "tmpvalue") and self.pos is not QtCore.QPointF(0, 0): -- newpos = ev.posF() -+ newpos = ev.posF() if ffado_pyqt_version == 4 else ev.localPos() - change = newpos.y() - self.pos.y() - #log.debug("MixerNode.mouseReleaseEvent() change %s" % (str(change))) - self.setValue( self.tmpvalue - math.copysign(pow(abs(change), 2), change) ) -@@ -215,7 +215,7 @@ class MixerNode(QAbstractSlider): - - def mouseReleaseEvent(self, ev): - if hasattr(self, "tmpvalue") and self.pos is not QtCore.QPointF(0, 0): -- newpos = ev.posF() -+ newpos = ev.posF() if ffado_pyqt_version == 4 else ev.localPos() - change = newpos.y() - self.pos.y() - #log.debug("MixerNode.mouseReleaseEvent() change %s" % (str(change))) - self.setValue( self.tmpvalue - math.copysign(pow(abs(change), 2), change) ) -@@ -257,19 +257,19 @@ class MixerNode(QAbstractSlider): - if v == 0: - symb_inf = u"\u221E" - text = "-" + symb_inf + " dB" -- if ffado_python3: -+ if ffado_python3 or ffado_pyqt_version == 5: - # Python3 uses native python UTF strings rather than QString. - # This therefore appears to be the correct way to display this - # UTF8 string, but testing may prove otherwise. - p.drawText(rect, Qt.AlignCenter, text) - else: -- p.drawText(rect, Qt.AlignCenter, QtCore.QString.fromUtf8(text)) -+ p.drawText(rect, Qt.AlignCenter, QString.fromUtf8(text)) - if (self.inv_action!=None and self.inv_action.isChecked()): -- if ffado_python3: -+ if ffado_python3 or ffado_pyqt_version == 5: - # Refer to the comment about about Python UTF8 strings. - p.drawText(rect, Qt.AlignLeft|Qt.AlignTop, " ϕ") - else: -- p.drawText(rect, Qt.AlignLeft|Qt.AlignTop, QtCore.QString.fromUtf8(" ϕ")) -+ p.drawText(rect, Qt.AlignLeft|Qt.AlignTop, QString.fromUtf8(" ϕ")) - - def internalValueChanged(self, value): - #log.debug("MixerNode.internalValueChanged( %i )" % value) diff --git a/libffado-sconstruct.patch b/libffado-sconstruct.patch deleted file mode 100644 index cd7c9ec..0000000 --- a/libffado-sconstruct.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- libffado-2.4.0.org/SConstruct 2017-12-23 05:43:57.000000000 -0500 -+++ libffado-2.4.0/SConstruct 2018-01-02 22:35:01.793115884 -0500 -@@ -29,6 +29,7 @@ FFADO_VERSION="2.4.0" - from subprocess import Popen, PIPE - import os - import re -+import sys - from string import Template - import imp - import distutils.sysconfig -@@ -395,7 +396,7 @@ results above get rechecked. - - # PyQT checks - if env['BUILD_MIXER'] != 'false': -- have_dbus = (conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' )) -+ have_dbus = ((conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' )) or (conf.CheckForApp( 'which pyuic5' ) and conf.CheckForPyModule( 'dbus.mainloop.pyqt5' ))) - have_pyqt4 = (conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'PyQt4' )) - have_pyqt5 = (conf.CheckForApp( 'which pyuic5' ) and conf.CheckForPyModule( 'PyQt5' )) - if ((have_pyqt4 or have_pyqt5) and have_dbus): diff --git a/libffado.spec b/libffado.spec index cf2c107..7767978 100644 --- a/libffado.spec +++ b/libffado.spec @@ -1,7 +1,7 @@ Summary: Free firewire audio driver library Name: libffado -Version: 2.4.0 -Release: 6%{?dist} +Version: 2.4.1 +Release: 1%{?dist} # src/libutil/float_cast.h is LGPLv2+. # The rest is (GPLv2 or GPLv3) License: LGPLv2+ and (GPLv2 or GPLv3) @@ -12,15 +12,6 @@ Source0: http://www.ffado.org/files/%{name}-%{version}.tgz # bash libffado-snapshot.sh 2088 # The fetch script Source9: libffado-snapshot.sh -# We want the documentation for the library API only, not for the entire source: -# http://subversion.ffado.org/ticket/293 -Patch0: libffado-api-doc-only.patch -# add missing header. Fixes build on big endian systems. Upstreamed r2724 -Patch1: libffado-byteswap.patch -# add missing import and fix build against PyQt5. Upstreamed r2724 and r2725 -Patch2: libffado-sconstruct.patch -# PyQt4 and 5 compatibility. Upstreamed r2726 -Patch3: libffado-pyqt4and5compat.patch BuildRequires: alsa-lib-devel BuildRequires: dbus-c++-devel @@ -32,6 +23,7 @@ BuildRequires: doxygen BuildRequires: gcc-c++ BuildRequires: glibmm24-devel BuildRequires: graphviz +BuildRequires: libappstream-glib BuildRequires: libconfig-devel BuildRequires: libiec61883-devel BuildRequires: libraw1394-devel @@ -77,10 +69,6 @@ Applications and utilities for use with libffado. %prep %setup -q -%patch0 -p1 -b .api.doc.only -%patch1 -p1 -b .byteswap -%patch2 -p1 -b .sconstruct -%patch3 -p1 -b .pyqt4and5 # We don't want to install all tests sed -i '/Install/d' tests/{,*/}SConscript @@ -96,6 +84,7 @@ scons %{?_smp_mflags} \ ENABLE_SETBUFFERSIZE_API_VER=True \ ENABLE_OPTIMIZATIONS=True \ CUSTOM_ENV=True \ + BUILD_DOC=user \ PREFIX=%{_prefix} \ LIBDIR=%{_libdir} \ MANDIR=%{_mandir} \ @@ -126,12 +115,19 @@ install -m 755 tests/ffado-test %{buildroot}%{_bindir} %ldconfig_scriptlets +%check +desktop-file-validate \ + %{buildroot}%{_datadir}/applications/ffado.org-ffadomixer.desktop +appstream-util validate-relax --nonet \ + %{buildroot}%{_datadir}/metainfo/ffado-mixer.appdata.xml + %files %doc AUTHORS ChangeLog LICENSE.* README %{_libdir}/libffado.so.* %dir %{_datadir}/libffado/ %{_datadir}/libffado/configuration %{_prefix}/lib/udev/rules.d/* +%{_libdir}/libffado/static_info.txt %files devel %doc doc/reference/html/ @@ -143,15 +139,19 @@ install -m 755 tests/ffado-test %{buildroot}%{_bindir} %{_mandir}/man1/ffado-*.1* %{_bindir}/* %{_datadir}/libffado/*.xml -%{_datadir}/libffado/python/ %{_datadir}/libffado/icons/ %{_datadir}/dbus-1/services/org.ffado.Control.service %{_datadir}/applications/ffado.org-ffadomixer.desktop %{_datadir}/icons/hicolor/64x64/apps/ffado.png +%{_datadir}/metainfo/ffado-mixer.appdata.xml %{python_sitelib}/ffado/ %changelog +* Wed Apr 25 2018 Orcan Ogetbil - 2.4.1-1 +- Update to 2.4.1 +- Drop upstreamed patches + * Wed Apr 18 2018 Iryna Shcherbina - 2.4.0-6 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) diff --git a/sources b/sources index d98579b..5ffb408 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libffado-2.4.0.tgz) = 7df37584925cc908cc284dba344609928d39e006f71ae4ede62e4531b2628271ebd0db00407418e943fb569b5b8b919a76c90aaeed03005cefbd3c1c16ee1627 +SHA512 (libffado-2.4.1.tgz) = 0859f17b87c68108bbde726d1cf8ab0b99f6f7f02cbe36acd8b451e112688a4d1edc21134eb4a2edc8c92dcf5f5da52efeabb2ad0dc07804ed1aa664a3b38d74