+# TODO
+# - missing deps:
+# * Sesame2 storage backend (java-based)
+# * Raptor RDF serializer
#
-# TODO:
-# - pl
-#
+# Conditional build:
+%bcond_without serializer # with raptor serializer. need to figure out proper BR
+%bcond_without sesame2 # with sesame2backend
-%define _snap 20070602
+%define qtbrver 4.4.3
-Summary: soprano
-#Summary(pl.UTF-8): soprano
+Summary: Soprano - Qt wrapper API to librdf
+Summary(pl.UTF-8): Soprano - wrapper Qt do librdf
Name: soprano
-Version: 0.9.0
-Release: 0.%{_snap}.1
-License: GPL
+Version: 2.2.1
+Release: 1
+License: GPL v2
Group: X11/Applications
-Source0: %{name}-%{_snap}.tar.bz2
-# Source0-md5: 8785c5166b4c36bba29eb943c558c51d
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: cmake
-BuildRequires: qt4-build
-BuildRequires: qt4-qmake
-BuildRequires: redland-devel
-BuildRequires: rpmbuild(macros) >= 1.129
+Source0: http://dl.sourceforge.net/soprano/%{name}-%{version}.tar.bz2
+# Source0-md5: 69688a71273e1e9389fc60e3085c695f
+URL: http://sourceforge.net/projects/soprano
+BuildRequires: QtCore-devel >= %{qtbrver}
+BuildRequires: QtDBus-devel >= %{qtbrver}
+BuildRequires: QtNetwork-devel >= %{qtbrver}
+BuildRequires: QtTest-devel >= %{qtbrver}
+BuildRequires: clucene-core-devel >= 0.9.16a-2
+BuildRequires: cmake >= 2.6.2
+%{?with_sesame2:BuildRequires: libgcj-devel}
+%{?with_serializer:BuildRequires: libraptor-devel}
+BuildRequires: qt4-build >= %{qtbrver}
+BuildRequires: qt4-qmake >= %{qtbrver}
+BuildRequires: rasqal-devel
+BuildRequires: redland-devel >= 1.0.6
+BuildRequires: rpmbuild(macros) >= 1.453
+BuildConflicts: java-sun
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-Soprano.
+Soprano (formally known as QRDF) is a library which provides a Qt
+wrapper API to different RDF storage solutions. It features named
+graphs (contexts) and has a modular plug-in structure which allows to
+use different RDF storage implementations.
-#%description -l pl.UTF-8
+%description -l pl.UTF-8
+Soprano (wcześniej znane jako QRDF) to biblioteka udostępniająca
+API wrappera Qt do różnych rozwiązań przechowywania danych RDF.
+Obsługuje nazwane grafy (konteksty) i ma strukturę modularnych
+wtyczek, co pozwala na używanie różnych implementacji
+przechowywania danych RDF.
%package devel
Summary: Header files for soprano
Pliki nagłówkowe dla soprano.
%prep
-%setup -q -n %{name}
+%setup -q
+# Sesame2 backend doesn't really use the new JNI-1.6 feature -> GetObjectRefType.
+#sed -i 's:JNI_VERSION_1_6:JNI_VERSION_1_4:g' CMakeLists.txt
+# cleanup.
+#sed -i 's:${JAVA_INCLUDE_PATH2}::' backends/sesame2/CMakeLists.txt
%build
install -d build
cd build
+# add this to get verbose output
+# -DCMAKE_VERBOSE_MAKEFILE=1
%cmake \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
- -DQT_QMAKE_EXECUTABLE=%{_bindir}/qt4-qmake \
+ -DQT_QMAKE_EXECUTABLE=%{_bindir}/qmake-qt4 \
%if "%{_lib}" == "lib64"
-DLIB_SUFFIX=64 \
%endif
+ -DJAVA_INCLUDE_PATH=%{_libdir}/gcc/%{_target_platform}/%{cc_version}/include \
+ -DJAVA_INCLUDE_PATH2=%{_libdir}/gcc/%{_target_platform}/%{cc_version}/include \
+ -DJAVA_JVM_LIBRARY=%{_libdir}/gcj-%{cc_version}-9/libjvm.so \
../
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-cd build
-%{__make} install \
+
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
%clean
%files
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/*.so*
+%attr(755,root,root) %{_bindir}/sopranocmd
+%attr(755,root,root) %{_bindir}/sopranod
+%attr(755,root,root) %{_bindir}/onto2vocabularyclass
+%attr(755,root,root) %{_libdir}/libsoprano.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libsoprano.so.4
+%attr(755,root,root) %{_libdir}/libsopranoclient.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libsopranoclient.so.1
+%attr(755,root,root) %{_libdir}/libsopranoserver.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libsopranoserver.so.1
+%attr(755,root,root) %{_libdir}/libsopranoindex.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libsopranoindex.so.1
%dir %{_libdir}/soprano
-%attr(755,root,root) %{_libdir}/soprano/*.so
+%attr(755,root,root) %{_libdir}/soprano/libsoprano_redlandbackend.so
+%attr(755,root,root) %{_libdir}/soprano/libsoprano_nquadparser.so
+%attr(755,root,root) %{_libdir}/soprano/libsoprano_nquadserializer.so
+%attr(755,root,root) %{_libdir}/soprano/libsoprano_raptorparser.so
+%{?with_sesame2:%attr(755,root,root) %{_libdir}/soprano/libsoprano_sesame2backend.so}
+%{?with_serializer:%attr(755,root,root) %{_libdir}/soprano/libsoprano_raptorserializer.so}
+%{_datadir}/soprano
+%{_datadir}/dbus-1/interfaces/org.soprano.Model.xml
+%{_datadir}/dbus-1/interfaces/org.soprano.NodeIterator.xml
+%{_datadir}/dbus-1/interfaces/org.soprano.QueryResultIterator.xml
+%{_datadir}/dbus-1/interfaces/org.soprano.Server.xml
+%{_datadir}/dbus-1/interfaces/org.soprano.StatementIterator.xml
%files devel
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libsoprano.so
+%attr(755,root,root) %{_libdir}/libsopranoserver.so
+%attr(755,root,root) %{_libdir}/libsopranoclient.so
+%attr(755,root,root) %{_libdir}/libsopranoindex.so
%dir %{_includedir}/soprano
%{_includedir}/soprano/*.h
+%{_includedir}/Soprano
+%{_pkgconfigdir}/soprano.pc