diff --git a/bamf-0.5.4.tar.gz b/bamf-0.5.4.tar.gz new file mode 100644 index 0000000..6c46ab1 Binary files /dev/null and b/bamf-0.5.4.tar.gz differ diff --git a/bamf.spec b/bamf.spec new file mode 100644 index 0000000..812aa92 --- /dev/null +++ b/bamf.spec @@ -0,0 +1,117 @@ +Summary: Application matching framework +Name: bamf +Version: 0.5.4 +Release: 4%{?dist} +# Library bits are LGPLv2 or LGPLv3 (but not open-ended LGPLv2+); +# non-lib bits are GPLv3. +# pbrobinson points out that three files in the lib are actually +# marked GPL in headers, making library GPL, though we think this +# may not be upstream's intention. For now, marking library as +# GPL. +# License: LGPLv2 or LGPLv3 +License: GPLv2 or GPLv3 +URL: https://launchpad.net/bamf +Source0: http://launchpad.net/bamf/0.5/%{version}/+download/%{name}-%{version}.tar.gz + +# Convert tests/gtester2xunit.py to Python 3 and lxml +Patch1: gtester2xunit-py3.patch + +BuildRequires: vala +BuildRequires: gtk-doc +BuildRequires: gobject-introspection-devel +BuildRequires: python3-devel +BuildRequires: python3-lxml +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(libgtop-2.0) +BuildRequires: pkgconfig(libwnck-3.0) +BuildRequires: pkgconfig(x11) +BuildRequires: systemd + +%description +BAMF removes the headache of applications matching into a simple DBus +daemon and C wrapper library. Currently features application matching +at amazing levels of accuracy (covering nearly every corner case). + +%package devel +Summary: Development files for %{name} +License: GPLv2 or GPLv3 +Requires: %{name}%{?_isa} = %{version}-%{release} +# For %%{_libdir}/girepository-1.0 and %%{_datadir}/gir-1.0 +#Requires: gobject-introspection-devel +Requires: pkgconfig + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package daemon +Summary: Application matching framework +License: GPLv3 +Requires: %{name}%{?_isa} = %{version}-%{release} +%{?systemd_requires} + +%description daemon +BAMF removes the headache of applications matching into a simple DBus +daemon and C wrapper library. Currently features application matching +at amazing levels of accuracy (covering nearly every corner case). This +package contains the bamf daemon and supporting data. + + +%prep +%autosetup -p1 + +# autotools add -Werror after our flags, and there are glib deprecation warnings +# see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=940164 +sed -i 's/ -Werror//' configure* + + +%build +CFLAGS="$RPM_OPT_FLAGS" +PYTHON="%{__python3}" +export CFLAGS PYTHON +%configure --disable-static --disable-webapps --enable-gtk-doc +make %{?_smp_mflags} + + +%install +make DESTDIR=%{buildroot} install + +find %{buildroot} -regex ".*\.la$" | xargs rm -f -- + +%ldconfig_scriptlets + +%post daemon +%systemd_user_post %{name}daemon.service + +%preun +%systemd_user_preun %{name}daemon.service + + +%files +%license COPYING.LGPL COPYING +%{_libdir}/libbamf3.so.* +%{_libdir}/girepository-1.0/Bamf*.typelib + +%files devel +%doc ChangeLog TODO +%{_includedir}/libbamf3 +%{_libdir}/libbamf3.so +%{_libdir}/pkgconfig/libbamf3.pc +%{_datadir}/gtk-doc +%{_datadir}/gir-1.0/Bamf*.gir +%dir %{_datadir}/vala +%dir %{_datadir}/vala/vapi +%{_datadir}/vala/vapi/libbamf3.vapi + +%files daemon +%doc COPYING +%{_libexecdir}/bamf +%{_datadir}/dbus-1/services/*.service +%{_userunitdir}/bamfdaemon.service +%exclude %{_datadir}/upstart/sessions/bamfdaemon.conf + +%changelog +* Thu Jul 23 2020 wangmian - 0.5.4-4 +- Init bamf project diff --git a/gtester2xunit-py3.patch b/gtester2xunit-py3.patch new file mode 100644 index 0000000..75c8ef0 --- /dev/null +++ b/gtester2xunit-py3.patch @@ -0,0 +1,62 @@ +diff --git a/configure b/configure +index af65be1..d915eea 100755 +--- a/configure ++++ b/configure +@@ -14653,10 +14653,10 @@ fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtester2xunit dependencies" >&5 + $as_echo_n "checking for gtester2xunit dependencies... " >&6; } +-if !($PYTHON -c "import libxslt, libxml2" 2> /dev/null); then ++if !($PYTHON -c "import lxml" 2> /dev/null); then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } +- as_fn_error $? "You need to install python-libxslt1 and python-libxml2" "$LINENO" 5; ++ as_fn_error $? "You need to install python-lxml" "$LINENO" 5; + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +diff --git a/configure.ac b/configure.ac +index 41cb7db..e62c807 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -115,9 +115,9 @@ GTK_DOC_CHECK(1.0) + + AC_PATH_PROG([PYTHON],[python]) + AC_MSG_CHECKING(for gtester2xunit dependencies) +-if !($PYTHON -c "import libxslt, libxml2" 2> /dev/null); then ++if !($PYTHON -c "import lxml" 2> /dev/null); then + AC_MSG_RESULT([no]) +- AC_MSG_ERROR([You need to install python-libxslt1 and python-libxml2]); ++ AC_MSG_ERROR([You need to install python-lxml]); + fi + AC_MSG_RESULT([yes]) + +diff --git a/tests/gtester2xunit.py b/tests/gtester2xunit.py +index fbe3c66..861d541 100755 +--- a/tests/gtester2xunit.py ++++ b/tests/gtester2xunit.py +@@ -1,18 +1,17 @@ + #! /usr/bin/python + from argparse import ArgumentParser +-import libxslt +-import libxml2 + import sys + import os ++from lxml import etree + + XSL_TRANSFORM='/usr/share/gtester2xunit/gtester.xsl' + + def transform_file(input_filename, output_filename, xsl_file): +- gtester = libxml2.parseFile(xsl_file) +- style = libxslt.parseStylesheetDoc(gtester) +- doc = libxml2.parseFile(input_filename) +- result = style.applyStylesheet(doc, None) +- result.saveFormatFile(filename=output_filename, format=True) ++ gtester = etree.parse(xsl_file) ++ style = etree.XSLT(gtester) ++ doc = etree.parse(input_filename) ++ result = style(doc) ++ result.write(filename=output_filename, format=True) + + + def get_output_filename(input_filename):