diff --git a/libffado-2.4.4-icon-name.patch b/libffado-2.4.4-icon-name.patch new file mode 100644 index 0000000000000000000000000000000000000000..d5fc600377b4961ce9a8e0dc319e1110be38e300 --- /dev/null +++ b/libffado-2.4.4-icon-name.patch @@ -0,0 +1,12 @@ +diff -up libffado-2.4.4/support/mixer-qt4/ffado/ffadowindow.py.icon-name libffado-2.4.4/support/mixer-qt4/ffado/ffadowindow.py +--- libffado-2.4.4/support/mixer-qt4/ffado/ffadowindow.py.icon-name 2020-05-29 08:59:52.000000000 +0200 ++++ libffado-2.4.4/support/mixer-qt4/ffado/ffadowindow.py 2021-01-05 16:30:40.293184745 +0100 +@@ -267,7 +267,7 @@ def ffadomain(args): + 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" ) ) ++ app.setWindowIcon( QIcon( SHAREDIR + "/icons/ffado.png" ) ) + + app.setOrganizationName("FFADO") + app.setOrganizationDomain("ffado.org") diff --git a/libffado-2.4.4-no-test-apps.patch b/libffado-2.4.4-no-test-apps.patch new file mode 100644 index 0000000000000000000000000000000000000000..3cffc741dc569c41145c7d390e6ce7b85a8dc67b --- /dev/null +++ b/libffado-2.4.4-no-test-apps.patch @@ -0,0 +1,30 @@ +diff -up libffado-2.4.4/tests/SConscript.no-test-apps libffado-2.4.4/tests/SConscript +--- libffado-2.4.4/tests/SConscript.no-test-apps 2018-03-04 07:12:18.000000000 +0100 ++++ libffado-2.4.4/tests/SConscript 2021-01-05 16:26:04.561795120 +0100 +@@ -83,7 +83,7 @@ if env['ENABLE_DICE']: + + for app in apps.keys(): + env.Program( target=app, source = env.Split( apps[app] ) ) +- env.Install( "$bindir", app ) ++ # env.Install( "$bindir", app ) + + env.SConscript( dirs=["streaming", "systemtests"], exports="env" ) + +diff -up libffado-2.4.4/tests/streaming/SConscript.no-test-apps libffado-2.4.4/tests/streaming/SConscript +--- libffado-2.4.4/tests/streaming/SConscript.no-test-apps 2018-03-04 07:12:18.000000000 +0100 ++++ libffado-2.4.4/tests/streaming/SConscript 2021-01-05 16:25:56.357813274 +0100 +@@ -38,4 +38,4 @@ apps = { + + for app in apps.keys(): + env.Program( target=app, source = env.Split( apps[app] ) ) +- env.Install( "$bindir", app ) ++ # env.Install( "$bindir", app ) +diff -up libffado-2.4.4/tests/systemtests/SConscript.no-test-apps libffado-2.4.4/tests/systemtests/SConscript +--- libffado-2.4.4/tests/systemtests/SConscript.no-test-apps 2018-03-04 07:12:18.000000000 +0100 ++++ libffado-2.4.4/tests/systemtests/SConscript 2021-01-05 16:26:07.104789496 +0100 +@@ -49,4 +49,4 @@ apps = { + + for app in apps.keys(): + env.Program( target=app, source = env.Split( apps[app] ) ) +- env.Install( "$bindir", app ) ++ # env.Install( "$bindir", app ) diff --git a/libffado-2.4.4-scons-quirk.patch b/libffado-2.4.4-scons-quirk.patch new file mode 100644 index 0000000000000000000000000000000000000000..60f8a3927f2efd075a9b8f200e2cdea9bdff52eb --- /dev/null +++ b/libffado-2.4.4-scons-quirk.patch @@ -0,0 +1,13 @@ +diff -up libffado-2.4.4/SConstruct.scons-quirk libffado-2.4.4/SConstruct +--- libffado-2.4.4/SConstruct.scons-quirk 2020-08-09 09:29:35.000000000 +0200 ++++ libffado-2.4.4/SConstruct 2021-01-05 18:28:40.865754202 +0100 +@@ -150,7 +150,8 @@ if not os.path.isdir( "cache" ): + if not os.path.isdir( 'cache/objects' ): + os.makedirs( 'cache/objects' ) + +-CacheDir( 'cache/objects' ) ++# Doesn't work with scons < 3.0.2 ++# CacheDir( 'cache/objects' ) + + opts.Save( 'cache/options.cache', env ) + diff --git a/libffado-2.4.7.tar.gz b/libffado-2.4.7.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..14e775ad13853ee1e240061afe095c5c6da190ee Binary files /dev/null and b/libffado-2.4.7.tar.gz differ diff --git a/libffado-snapshot.sh b/libffado-snapshot.sh new file mode 100644 index 0000000000000000000000000000000000000000..0c3b37f31095b62431d56dded1b8430ecded2c44 --- /dev/null +++ b/libffado-snapshot.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# $1 - revision number to checkout. +: ${1?"You must either provide desired revision number \"X\" to checkout: `basename $0` X + or fetch the latest revision by: `basename $0` HEAD"} + +set -e + +tmp=$(mktemp -d) + +trap cleanup EXIT +cleanup() { + set +e + [ -z "$tmp" -o ! -d "$tmp" ] || rm -rf "$tmp" +} + +unset CDPATH +unset GREP_OPTIONS +pwd=$(pwd) +name=libffado +version=2.1.0 + +revision=$1 + +pushd "$tmp" >/dev/null +echo "Fetching SVN revision: $1" +svn export -r$revision http://subversion.ffado.org/ffado/trunk/$name $name-$version |tee $name.stdout +revision=$(cat $name.stdout|grep "Exported revision"|sed 's|[^0-9]*||g') +echo "Fetched SVN revision: $revision" +rm -f $name.stdout + +tar jcf "$pwd"/$name-$version-svn$revision.tar.bz2 $name-$version +echo "Written: $name-$version-svn$revision.tar.bz2" +popd >/dev/null diff --git a/libffado.spec b/libffado.spec new file mode 100644 index 0000000000000000000000000000000000000000..d6e985ae1125719ef18d00035533c2b82f3274ba --- /dev/null +++ b/libffado.spec @@ -0,0 +1,182 @@ +%define anolis_release 1 +## START: Set by rpmautospec +## (rpmautospec version 0.3.1) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +%global needs_scons_quirk 0 + +Summary: Free firewire audio driver library +Name: libffado +Version: 2.4.7 +Release: %{anolis_release}%{dist} +License: GPLv2 or GPLv3 +URL: http://www.ffado.org/ +Source0: http://www.ffado.org/files/%{name}-%{version}.tar.gz +# The trunk is tarballed as follows: +# bash libffado-snapshot.sh 2088 +# The fetch script +Source9: libffado-snapshot.sh +Patch0: libffado-2.4.4-no-test-apps.patch +Patch1: libffado-2.4.4-icon-name.patch +Patch2: libffado-2.4.4-scons-quirk.patch + +BuildRequires: alsa-lib-devel +BuildRequires: dbus-c++-devel +BuildRequires: dbus-devel +BuildRequires: python3-dbus +BuildRequires: python3-rpm-macros +BuildRequires: desktop-file-utils +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: glibmm24-devel +BuildRequires: graphviz +BuildRequires: libappstream-glib +BuildRequires: libconfig-devel +BuildRequires: libiec61883-devel +BuildRequires: libraw1394-devel +BuildRequires: libxml++-devel +BuildRequires: pkgconfig +BuildRequires: python3-qt5-devel +BuildRequires: python3-devel +%if ! %needs_scons_quirk +BuildRequires: python3-scons >= 3.0.2 +%else +BuildRequires: python3-scons +%endif +%description +The FFADO project aims to provide a generic, open-source solution for the +support of FireWire based audio devices for the Linux platform. It is the +successor of the FreeBoB project. + +%package devel +Summary: Free firewire audio driver library development headers +License: GPLv2 or GPLv3 +Requires: %{name} = %{version}-%{release} + +%description devel +Development files needed to build applications against libffado. + +%package -n ffado +Summary: Free firewire audio driver library applications and utilities +# support/tools/* is GPLv3 +# Some files in support/mixer-qt4/ffado are GPLv3+ +# The rest is GPLv2 or GPLv3 +License: GPLv3 and GPLv3+ and (GPLv2 or GPLv3) +Requires: %{name} = %{version}-%{release} +Requires: dbus +Requires: python3-dbus +Requires: python3-qt5 + +%description -n ffado +Applications and utilities for use with libffado. + +%package doc +Summary: Documentation files for %{name} +Requires: %{name} = %{EVR} +BuildArch: noarch + +%description doc +The %{name}-doc package contains documentation files for %{name}. + +%prep +%autosetup -N +%patch0 -p1 -b .no-test-apps +%patch1 -p1 -b .icon-name +%if %needs_scons_quirk +%patch2 -p1 -b .scons-quirk +%endif + +# Fix Python shebangs +sed -i 's|/usr/bin/.*python$|/usr/bin/python3|' \ + admin/*.py doc/SConscript tests/python/*.py tests/*.py \ + support/mixer-qt4/ffado-mixer* support/mixer-qt4/SConscript \ + support/tools/*.py support/tools/SConscript + +%build +export CFLAGS="%{optflags} -ffast-math" +export CXXFLAGS="%{optflags} -ffast-math --std=gnu++11" +export LDFLAGS="%{build_ldflags}" +scons-3 %{?_smp_mflags} \ + DETECT_USERSPACE_ENV=False \ + ENABLE_SETBUFFERSIZE_API_VER=True \ + ENABLE_OPTIMIZATIONS=True \ + CUSTOM_ENV=True \ + BUILD_DOC=user \ + PREFIX=%{_prefix} \ + LIBDIR=%{_libdir} \ + MANDIR=%{_mandir} \ + UDEVDIR=%{_prefix}/lib/udev/rules.d/ \ + PYPKGDIR=%{python3_sitelib}/ffado/ \ + PYTHON_INTERPRETER=/usr/bin/python3 \ + BUILD_TESTS=1 + +%install +# Exporting flags so that the install does not trigger another build +export CFLAGS="%{optflags} -ffast-math" +export CXXFLAGS="%{optflags} -ffast-math --std=gnu++11" +export LDFLAGS="%{build_ldflags}" +scons-3 DESTDIR=%{buildroot} PREFIX=%{_prefix}\ + install + +# We need to install the xdg stuff manually +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install --dir %{buildroot}%{_datadir}/applications \ + --add-category="Settings" \ + --set-icon=ffado \ + support/xdg/ffado.org-ffadomixer.desktop +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps +ln -s ../../../../libffado/icons/hi64-apps-ffado.png \ + %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/ffado.png + +# Install ffado-test RHBZ#805940 +install -m 755 tests/ffado-test %{buildroot}%{_bindir} + +%check +desktop-file-validate \ + %{buildroot}%{_datadir}/applications/ffado.org-ffadomixer.desktop +appstream-util validate-relax --nonet \ + %{buildroot}%{_datadir}/metainfo/ffado-mixer.appdata.xml + +%generate_compatibility_deps + +%files +%license LICENSE.* +%{_libdir}/libffado.so.* +%dir %{_datadir}/libffado/ +%{_datadir}/libffado/configuration +%{_prefix}/lib/udev/rules.d/* +%{_libdir}/libffado/static_info.txt + +%dir %{abidir} +%{abidir}/libffado.dump + +%files devel +%doc doc/reference/html/ +%{_includedir}/libffado/ +%{_libdir}/pkgconfig/libffado.pc +%{_libdir}/libffado.so + +%files -n ffado +%{_mandir}/man1/ffado-*.1* +%{_bindir}/* +%{_datadir}/libffado/*.xml +%{_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 +%{python3_sitelib}/ffado/ +%{abidir}/*-option.list + +%files doc +%doc AUTHORS ChangeLog README + +%changelog +* Tue Mar 28 2023 Zhongling He - 2.4.7-1 +- Init package from upstream