MaryEllenFoster/SopranoSesame

From FedoraProject

Jump to: navigation, search

Contents

The new stuff

Going back to first principles -- and patching spring (and its crazy dependency chain) out of the process -- I've managed as of today (24/11/2009) to create a SRPM of sesame that builds on my computer. There are a number of dependencies, most of them supporting packages from aduna-commons and aduna-appbase. There are also a number of existing Fedora packages which need minor updates in order for Sesame (or its dependencies) to build successfully against them.

The following graph shows the dependency chain. The colour scheme is as follows: red indicates a package which is pending in Fedora (under review or awaiting CVS); blue indicates an existing Fedora package which needs an update; and dotted lines indicate dependencies which I have patched out. Click the image for a fullsize version.

Graph of Sesame dependencies

You can also download the dependency graph in various other forms if the .png file isn't useful:

Links to SRPMs and spec files

I've put all of the relevant SRPMs and specs here:

   http://www.macs.hw.ac.uk/~mef3/soprano-sesame/

This includes unofficial versions of many of the Fedora packages which need modification, and a modified version of the soprano-backend-sesame SRPM from kde-redhat that uses the system sesame (see below).

Relevant bugs

Packages under review

Requested updates to existing Fedora packages

Note that I have requested provenpackager status on 2/12/2009 (edit: and was granted it the same day, wow!) in an effort to make these (mostly trivial) changes to the above packages (https://fedorahosted.org/fesco/ticket/283).

Completed bugs

Modifications to soprano-backend-sesame2

I've successfully patched the soprano-backend-sesame2 SRPM from kde-redhat to build against this version of sesame, and it appears to work when I run it. Here are the spec-file diffs:

--- soprano-backend-sesame2.spec        2009-11-02 19:38:37.000000000 +0000                                       
+++ soprano-backend-sesame2.spec.mef    2009-11-24 15:54:55.987342313 +0000                                       
@@ -4,7 +4,7 @@                                                                                                   
 Summary: Sesame2 Backend for Soprano                                                                             
 Name:    soprano-backend-sesame2                                                                                 
 Version: 2.3.67                                                                                                  
-Release: 0.1.%{snap}%{?dist}                                                                                     
+Release: 0.2.%{snap}%{?dist}                                                                                     
                                                                                                                  
 Group:   System Environment/Libraries                                                                            
 License: LGPLv2+                                                                                                 
@@ -12,6 +12,7 @@                                                                                                 
 #Source0: http://downloads.sf.net/soprano/soprano-%{version}.tar.bz2                                             
 Source0: soprano-%{snap}svn.tar.bz2                                                                              
 Source1: soprano-svn_checkout.sh                                                                                 
+Patch0:  soprano-sesame-classpath.patch                                                                          
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)                                        
                                                                                                                  
 ExcludeArch: ppc ppc64                                                                                           
@@ -22,9 +23,15 @@                                                                                                
 BuildRequires: redland-devel                                                                                     
 BuildRequires: raptor-devel                                                                                      
 BuildRequires: qt4-devel                                                                                         
+BuildRequires: sesame, aduna-commons-iteration                                                                   
                                                                                                                  
+# We may not need all of the aduna-commons-* stuff in practice                                                   
+Requires: sesame                                                                                                 
+Requires: aduna-appbase-core, aduna-appbase-logging, aduna-commons-collections                                   
+Requires: aduna-commons-concurrent, aduna-commons-i18n, aduna-commons-io                                         
+Requires: aduna-commons-iteration, aduna-commons-lang, aduna-commons-net
+Requires: aduna-commons-platform, aduna-commons-text, aduna-commons-xml
 Requires: java-1.6.0
-#Requires: java-1.6.0-openjdk%{?_isa}
 Requires: soprano%{?_isa} = %{version}

 # pkg rename
@@ -41,9 +48,13 @@
 %prep
 %setup -q -n soprano%{!?snap:-%{version}}

+find . -name "*.jar" | xargs rm -f
+find . -name "*.class" | xargs rm -f
+%patch0 -p1
+

 %build
-export JAVA_HOME=%{_jvmdir}/java
+export JAVA_HOME=%{java_home}
 mkdir -p %{_target_platform}
 pushd %{_target_platform}
 %{cmake} \
@@ -55,6 +66,9 @@

 make %{?_smp_mflags} -C %{_target_platform}/backends/sesame2

+%{javac} -cp `build-classpath sesame/repository sesame/model aduna-commons-iteration` \
+       -d backends/sesame2 backends/sesame2/*.java
+

 %install
 rm -rf $RPM_BUILD_ROOT
@@ -91,6 +105,9 @@


 %changelog
+* Tue Nov 24 2009 Mary Ellen Foster <mefoster at gmail.com> 2.3.67-0.2.20091102
+- Build against system sesame instead of using the included jar files
+
 * Mon Nov 02 2009 Rex Dieter <rdieter@fedoraproject.org> 2.3.67-0.1.20091102
 - soprano-2.3.67 (20091102 snapshot)

And here is the patch file referred to above -- this CLASSPATH is probably overkill, but it works, and since the main symptom of an inadequate CLASSPATH is that nepomuk segfaults, I'm leaving it like this for now. :)

diff -ur soprano-2.3.1/backends/sesame2/CMakeLists.txt soprano-2.3.1.new/backends/sesame2/CMakeLists.txt
--- soprano-2.3.1/backends/sesame2/CMakeLists.txt       2009-06-25 08:44:09.000000000 +0100
+++ soprano-2.3.1.new/backends/sesame2/CMakeLists.txt   2009-11-24 14:37:39.441280419 +0000
@@ -53,9 +53,6 @@
 endif(WIN32)

 install(FILES
-  openrdf-sesame-2.2.4-onejar.jar
-  slf4j-api-1.5.5.jar
-  slf4j-simple-1.5.5.jar
   SopranoSesame2Wrapper.class
   DESTINATION share/soprano/sesame2
   )
diff -ur soprano-2.3.1/backends/sesame2/sesame2-config.h.cmake soprano-2.3.1.new/backends/sesame2/sesame2-config.h.cmake
--- soprano-2.3.1/backends/sesame2/sesame2-config.h.cmake       2009-06-25 08:44:09.000000000 +0100
+++ soprano-2.3.1.new/backends/sesame2/sesame2-config.h.cmake   2009-11-24 14:39:34.208280016 +0000
@@ -1 +1 @@
-#define SESAME2_CLASSPATH "${CMAKE_INSTALL_PREFIX}/share/soprano/sesame2/openrdf-sesame-2.2.4-onejar.jar:${CMAKE_INSTALL_PREFIX
}/share/soprano/sesame2/slf4j-api-1.5.5.jar:${CMAKE_INSTALL_PREFIX}/share/soprano/sesame2/slf4j-simple-1.5.5.jar:${CMAKE_INSTALL
_PREFIX}/share/soprano/sesame2/"
+#define SESAME2_CLASSPATH "/usr/share/java/aduna-commons-collections.jar:/usr/share/java/aduna-commons-concurrent.jar:/usr/shar
e/java/aduna-commons-i18n.jar:/usr/share/java/aduna-commons-io.jar:/usr/share/java/aduna-commons-iteration.jar:/usr/share/java/a
duna-commons-lang.jar:/usr/share/java/aduna-commons-net.jar:/usr/share/java/aduna-commons-platform/info.jar:/usr/share/java/adun
a-commons-platform/desktop.jar:/usr/share/java/aduna-commons-text.jar:/usr/share/java/aduna-commons-xml.jar:/usr/share/java/sesa
me/queryresultio-text.jar:/usr/share/java/sesame/rio-turtle.jar:/usr/share/java/sesame/rio-trig.jar:/usr/share/java/sesame/runti
me.jar:/usr/share/java/sesame/queryresultio-api.jar:/usr/share/java/sesame/rio-ntriples.jar:/usr/share/java/sesame/repository-da
taset.jar:/usr/share/java/sesame/repository-sail.jar:/usr/share/java/sesame/repository-manager.jar:/usr/share/java/sesame/rio-rd
fxml.jar:/usr/share/java/sesame/repository-http.jar:/usr/share/java/sesame/sail-inferencer.jar:/usr/share/java/sesame/queryresul
tio-binary.jar:/usr/share/java/sesame/model.jar:/usr/share/java/sesame/queryalgebra-evaluation.jar:/usr/share/java/sesame/rio-ap
i.jar:/usr/share/java/sesame/queryparser-sparql.jar:/usr/share/java/sesame/sail-rdbms.jar:/usr/share/java/sesame/rio-n3.jar:/usr
/share/java/sesame/queryparser-serql.jar:/usr/share/java/sesame/queryparser-api.jar:/usr/share/java/sesame/repository-api.jar:/u
sr/share/java/sesame/repository-event.jar:/usr/share/java/sesame/queryresultio-sparqlxml.jar:/usr/share/java/sesame/sail-nativer
df.jar:/usr/share/java/sesame/http-client.jar:/usr/share/java/sesame/rio-trix.jar:/usr/share/java/sesame/queryresultio-sparqljso
n.jar:/usr/share/java/sesame/queryalgebra-model.jar:/usr/share/java/sesame/console.jar:/usr/share/java/sesame/query.jar:/usr/sha
re/java/sesame/sail-api.jar:/usr/share/java/sesame/repository-contextaware.jar:/usr/share/java/sesame/sail-memory.jar:/usr/share
/java/sesame/http-protocol.jar:/usr/share/java/slf4j/simple.jar:/usr/share/java/slf4j/api.jar"

Older stuff

I'm keeping around the rest of the page because it could potentially be interesting, even if it's not relevant at the current time -- for example, if we decide to package Spring later on.

Review requests

Please do not review any of these packages until further notice -- turns out I didn't do a good enough job of searching for existing packages/review requests before filing them. I'm in the process of cleaning up the list. Sorry about that. :(

Unmet dependencies from the jpackage version of spring

I'm keeping this list for posterity, but note that most of this is not actually needed for sesame if I patch out the http-server-spring subpackage.