From Fedora Project Wiki
Line 20: Line 20:
* Packages under review
* Packages under review
** aduna-root-poms: https://bugzilla.redhat.com/show_bug.cgi?id=540984 -- posted on 24/11/2009
** aduna-root-poms: https://bugzilla.redhat.com/show_bug.cgi?id=540984 -- posted on 24/11/2009
** logback: https://bugzilla.redhat.com/show_bug.cgi?id=540986 -- posted on 24/11/2009; depends on janino
** janino: https://bugzilla.redhat.com/show_bug.cgi?id=530986 -- package is approved, awaiting CVS
** janino: https://bugzilla.redhat.com/show_bug.cgi?id=530986 -- package is approved, awaiting CVS
** xml-security: https://bugzilla.redhat.com/show_bug.cgi?id=532535 (probably duplicate of https://bugzilla.redhat.com/show_bug.cgi?231305 -- stalled old review)
** xml-security: https://bugzilla.redhat.com/show_bug.cgi?id=532535 (probably duplicate of https://bugzilla.redhat.com/show_bug.cgi?231305 -- stalled old review)

Revision as of 16:26, 24 November 2009

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 four existing Fedora packages -- mysql-connector-java, postgresql-jdbc, jakarta-commons-fileupload, and jakarta-commons-pool -- which need minor updates in order for Sesame 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 the four 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

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.

  • annotation_1_0_api -- Not sure
  • aopalliance -- UP FOR REVIEW
  • apache-ibatis-sqlmap >= 0:2.3.2 -- needs cglib, derby, db-ojb
    • derby: UP FOR REVIEW
    • db-ojb: apache-jdo-1.1*, other stuff ...
  • apache-jdo-2.0-api -- probably just needs renaming of dependencies
    • NO: Building the newest version (2.2) needs geronimo-jpa_3.0_spec-1.0, which is not in current Fedora geronimo-specs package
  • aspectj >= 0:1.5.3 -- jpackage, in progress (seems to want an old JDK (< 0:1.5.0, investigate)
  • bsh2 -- Fedora has bsh v.1
  • burlap >= 0:3.0.8 -- needs caucho-services, hessian
    • caucho-services: builds fine is it current? the SRPM uses a gentoo source bundle ...
  • c3p0 >= 0:0.9.0 -- no deps, build issues -- doesn't work with the 1.6 version of javax.sql; can I make it use 1.5?
  • cglib -- needs (aspeckwerkz and) jarjar
    • aspectwerkz: jarjar, jrexx, piccolo, gnu-trove
      • jrexx: UP FOR REVIEW
      • piccolo: includes very old bundled libraries; don't really need it
      • gnu-trove: UP FOR REVIEW
  • commonj_1_1_apis -- Not sure
  • easymock-classextension -- needs cglib
  • ehcache >= 0:1.3.0 -- jpackage has 1.3.0, which requires many things including spring v1 (WTF?). Maybe try updating to 1.5.0 for Fedora
  • ejb_3_0_api -- Not sure
  • el_1_0_api -- Not sure
  • geronimo-interceptor-3.0-api -- Not sure
  • glassfish-javamail >= 0:1.4.0 -- needs glassfish-jaf
    • glassfish-jaf: builds fine
  • glassfish-jstl -- needs jbossweb (urgh)
  • glassfish-persistence-impl -- should be fine
  • groovy15 -- needs cglib, jarjar, jmock, mockobjects, openejb1, xstream
    • jmock: needs cglib
    • mockobjects: no extra deps; VERY VERY old and may not be worth patching
    • openejb: needs a bunch of maven stuff (probably just package name issues), along with castor0
      • castor0: needs cglib, ldapsdk, mockejb, tyrex
        • ldapsdk: UP FOR REVIEW
        • mockejb: aspectj, cglib, jakarta-cactus
          • jakarta-cactus: aspectj, cargo, maven stuff
            • cargo: needs ITSELF (?!?!), jmock, gnu-trove, jakarta-commons-vfs
              • jakarta-commons-vfs: jakarta-slide-webdavclient, jcifs
                • jakarta-slide-webdavclient: jakarta-commons-transaction, xml-im-exporter
                  • jakarta-commons-transaction: builds cleanly
                  • xml-im-exporter: UP FOR REVIEW
                • jcifs: UP FOR REVIEW
        • tyrex: castor0(?!) ldapsdk, openorb, openorb-tns
          • openorb*: avalon stuff (package name issue only), excalibur-configuration (is obsolete! may need to patch openorb)
    • xstream: needs cglib, jettison, jmock, wstx
      • jettison: needs jakarta-slide-webdavclient
      • wstx: no extra dependencies; builds nicely, nearly done -- dead old review request
  • hessian -- UP FOR REVIEW (investigate "hessian-nodep" though)
  • hibernate3 -- needs cglib jboss-cache jboss-common ehcache oscache swarmcache c3p0 proxool docbook-xsl-saxon
    • jboss*: I really don't want to package this too ... :(
    • oscache: ivy hibernate3(?!) jakarta-commons-logging >= 1.1
      • ivy: builds clean; project seems defunct
      • jakarta-commons-logging: Fedora has 1.0
    • swarmcache: builds cleanly
    • proxool: no extra dependencies, but jpackage SRPM seems corrupt
    • docbook-xsl-saxon: builds cleanly
  • hibernate3-annotations -- needs cglib, hibernate3, hibernate3-ejb-persistence-3.0-api
    • hibernate3-ejb-persistence-3.0-api: no deps, builds cleanly
  • hibernate3-entitymanager -- cglib, hibernate3, hibernate3-annotations, hibernate3-ejb-persistence-3.0-api, jboss-common
  • j2ee_connector_1_5_api -- Not sure
  • jakarta-cactus -- needs aspectj, cargo, maven stuff
    • cargo: needs ITSELF (?!?!), jmock, gnu-trove, jakarta-commons-vfs
  • jakarta-commons-attributes -- no deps, build failure
  • jakarta-poi >= 0:2.5.1 -- needs commons-logging > 1.1 (Fedora has 1.0)
  • jamonapi -- needs interceptor_3_0_api (not sure)
  • jarjar -- UP FOR REVIEW
  • jasperreports >= 0:2.0.4 -- needs jakarta-commons-javaflow jakarta-poi
    • jakarta-commons-javaflow: needs junit-addons maven2-default-skin mojo-maven2-plugin-taglist jakarta-commons-jci
    • maven2-default-skin: not sure on deps
    • mojo-maven2-plugin-taglist: from huge mojo-maven-plugins SRPM
    • jakarta-commons-jci: groovy15 vafer-dependency
      • vafer-dependency: UP FOR REVIEW
  • jboss4-common -- not sure where this comes from
  • jexcelapi -- UP FOR REVIEW
  • jmock -- needs cglib
  • jotm -- needs carol howl-logger jonathan-core jonathan-jeremie openorb-ots kilim1
    • carol (NB: jpackage version (2.2.7) seems newer than anything I'm currently able to download from http://carol.ow2.org/): carol-irmi carol-cmi jonathan-core jonathan-jeremie monolog kilim1 nanoxml-lite
      • carol-irmi: no deps, builds fine
      • carol-cmi: probably fine, just dep names -- not a separate package any more?
      • monolog: p6spy
        • p6spy: needs jboss :(
    • jonathan-core: kilim1 monolog nanoxml-lite
    • jonathan-jeremie: jonathan-core kilim1 monolog
    • kilim1: nanoxml-lite
    • nanoxml-lite: UP FOR REVIEW (as part of nanoxml package)
  • jpa_3_0_api -- Not sure
  • jruby >= 0:1.1.1 -- requires jarjar joni jruby-bytelist jvyamlb retroweaver; there's a dead Fedora package that could be resurrected
    • joni: no deps
    • jvyamlb: jruby-bytelist
    • retroweaver (may not be needed actually): wants a lot of JREs(?)
  • jruby-bytelist: no extra deps, builds clean
  • jsf_1_2_api -- Not sure
  • junit44 >= 0:4.4 -- Fedora has a 3.x version
  • junit-addons -- UP FOR REVIEW
  • ognl -- UP FOR REVIEW
  • openjpa >= 0:1.0.1 -- needs derby docbkx docbook-xml serp
    • docbkx: maven stuff, avalon stuff (renaming), and xslthl
      • xlslthl: builds clean
    • docbook-xml: nodeps, builds clean
  • portlet-1.0-api -- needs maven stuff (plugin name issues)
    • NO: Newer version on website needs extra Maven love to compile
  • quartz16 -- needs lots of APIs and jboss :(
  • saaj_1_3_api -- Not sure
  • serp: UP FOR REVIEW (although it's probably obsolete ...
  • struts >= 0:1.3.8 -- Fedora has 1.2.9
  • struts-tiles >= 0:1.3.8 -- See if this is in the Fedora package
  • testng -- needs bsh2 and qdox18
    • qdox18: maven2-plugin-release jmock jakarta-slide-webdavclient xsite
      • xsite: maven-release nanocontainer sitemesh xstream
        • nanocontainer: aopalliance bsh2 cglib1(really?) dynaop groovy15 jakarta-commons-logging >= 1.1 jakarta-commons-vfs jmock jruby picocontainer proxytoys rhino16 xstream
          • dynaop: cglib1 bsh2
          • picocontainer: cglib jakarta-slide-webdavclient jmock prefuse proxytoys xstream
            • prefuse: lucene1 (ick ...)
          • proxytoys: jmock cglib xstream
          • rhino16: xmlbeans
            • xmlbeans: saxon8 saxon8-dom saxon8-xpath
              • saxon8 (all same SRPM): no outstanding deps; may be better to get existing saxon(v6) package upgraded
  • tiles -- needs maven stuff, portlet_1.0_api, shale-test
    • shale-test: srpm is "shale", requires lots of stuff, hopefully it's just for running tests and can be patched out
  • velocity >= 0:1.5 -- Fedora has 1.4
  • velocity-tools -- needs struts >= 0:1.3.8, struts-taglib, struts-tiles, velocity-dvsl, mojo-maven-plugin-taglist, maven2-default-skin
    • velocity-dvsl: needs velocity >= 0:1.5, mojo-maven-plugin-taglist, maven2-default-skin
  • ws_metadata_2_0_api -- Not sure
  • xapool -- needs carol, jotm, p6spy