[arch-commits] Commit in go-openoffice/trunk (4 files)

andyrtr at archlinux.org andyrtr at archlinux.org
Fri Mar 26 21:51:16 UTC 2010


    Date: Friday, March 26, 2010 @ 17:51:16
  Author: andyrtr
Revision: 73507

prepare next build

Added:
  go-openoffice/trunk/localize-ooo.diff
  go-openoffice/trunk/system-redland.patch
Modified:
  go-openoffice/trunk/ChangeLog
  go-openoffice/trunk/PKGBUILD

----------------------+
 ChangeLog            |    8 
 PKGBUILD             |   40 +--
 localize-ooo.diff    |   12 
 system-redland.patch |  653 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 696 insertions(+), 17 deletions(-)

Modified: ChangeLog
===================================================================
--- ChangeLog	2010-03-26 19:55:39 UTC (rev 73506)
+++ ChangeLog	2010-03-26 21:51:16 UTC (rev 73507)
@@ -1,3 +1,11 @@
+2010-03-26 Andreas Radke <andyrtr at archlinux.org>
+
+        * 3.2.0.9-1 :
+        new upstream release = post 3.2.0 bugfix release
+	use lzma2/xz compression now for the source
+	try to workaround bugs caused by use of new system redland
+	use system lucene again that we downgraded to 2.9.2
+
 2010-03-15 Andreas Radke <andyrtr at archlinux.org>
 
         * 3.2.0.7-1 :

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-03-26 19:55:39 UTC (rev 73506)
+++ PKGBUILD	2010-03-26 21:51:16 UTC (rev 73507)
@@ -2,7 +2,7 @@
 # Maintainer: AndyRTR <andyrtr at archlinux.org>
 
 pkgname=go-openoffice
-_GOver=3.2.0.8 # = post OOo 3.2.0 final bugfix
+_GOver=3.2.0.9 # = post OOo 3.2.0 final bugfix
 pkgver=${_GOver}
 pkgrel=1
 pkgdesc="OpenOffice.org - go-oo.org enhanced version of SUN's office suite"
@@ -14,8 +14,8 @@
 install=${pkgname}.install
 depends=("curl>=7.19.6" "hunspell>=1.2.8" "python>=2.6.4" 'libwpd' 'redland>=1.0.10' 
          'libxaw' "neon>=0.28.6" "icu>=4.2.1" 'hsqldb-java' 'libxslt' 'libxtst' 'lpsolve'
-	  'beanshell' 'saxon' 'vigra' 'hyphen' 'libmspack' 'libldap' 'gtk2'
-	 'hicolor-icon-theme' 'shared-mime-info' 'desktop-file-utils') #  'lucene' 'libmythes' 'libgraphite' 
+	  'beanshell' 'saxon' 'vigra' 'hyphen' 'libmspack' 'libldap' 'gtk2' 'lucene'
+	 'hicolor-icon-theme' 'shared-mime-info' 'desktop-file-utils') #   'libmythes' 'libgraphite' 
 optdepends=('java-runtime:	adds java support'
             'libcups:		adds printing support'
             'gconf:		adds additional gnome support'
@@ -36,7 +36,7 @@
 _mirror="http://download.go-oo.org/"
 source=(${_mirror}/${_go_tree}/ooo-build-${_GOver}.tar.gz
 	ArchLinux.patch
-	${pkgname}-${_ootag}.tar.gz
+	${pkgname}-${_ootag}.tar.xz
 	http://download.go-oo.org//DEV300/ooo-cli-prebuilt-3.2.tar.bz2
 	http://cairographics.org/releases//cairo-1.4.10.tar.gz
 	http://download.go-oo.org//SRC680/mdbtools-0.6pre1.tar.gz
@@ -50,7 +50,8 @@
 	http://download.go-oo.org//DEV300/ooo_oxygen_images-2009-06-17.tar.gz
 	http://download.go-oo.org/src//seamonkey-1.1.14.source.tar.gz
 	http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.0-bin.tar.gz
-	buildfix_64bit_system_libjpeg.diff)
+	buildfix_64bit_system_libjpeg.diff
+	system-redland.patch)
 #options=('!distcc' '!ccache' '!makeflags')
 noextract=(ooo-cli-prebuilt-3.2.tar.bz2 cairo-1.4.10.tar.gz mdbtools-0.6pre1.tar.gz extras-3.tar.bz2 biblio.tar.bz2 unowinreg.dll 
            scsolver.2008-10-30.tar.bz2 libwpd-0.8.14.tar.gz libwps-0.1.2.tar.gz libwpg-0.1.3.tar.gz ooo_oxygen_images-2009-06-17.tar.gz)
@@ -63,12 +64,11 @@
 	tar -xvf ooo-build-${_GOver}.tar.gz
 	cd ooo-build-${_GOver}
 	./configure --quiet --with-distro=ArchLinux
-	./download # --all
-	pushd src; tar -cvzf ../../${pkgname}-${_ootag}.tar.gz clone; popd
+	./download --all
+	pushd src; tar -cvJf ../../${pkgname}-${_ootag}.tar.xz clone; popd
         popd
 }
 
-
 build() {
 	unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH
 	[ -z "${JAVA_HOME}" ] && . /etc/profile.d/openjdk6.sh
@@ -80,6 +80,9 @@
 	# our ArchLinux distribution patch until we go upstream
 	patch -Np0 -i ${srcdir}/ArchLinux.patch || return 1
 
+	# fix bugs with recent system redland
+	patch -Np1 -i ${srcdir}/system-redland.patch || return 1
+
 	# hotfixes not yet upstream
 #	cp ${srcdir}/*.diff ${srcdir}/ooo-build-${_GOver}/patches/hotfixes/
 	cp ${srcdir}/buildfix_64bit_system_libjpeg.diff ${srcdir}/ooo-build-${_GOver}/patches/hotfixes/
@@ -104,7 +107,7 @@
 		--prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
 		--with-docdir=/usr/share/doc/packages/"${pkgname}" \
 		--mandir=/usr/share/man \
-		--with-lang="" \
+		--with-lang="en-US" \
 		--with-dict=ALL\
 		--with-binsuffix=no \
 		--disable-ldap \
@@ -125,18 +128,17 @@
 		--with-ant-home="/usr/share/java/apache-ant"\
 		--with-system-saxon\
 		--with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\
+		--with-system-lucene\
+		--with-lucene-core-jar=/usr/share/java/lucene-core.jar\
+		--with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\
 		--with-system-beanshell\
 		--with-system-vigra\
 		--with-system-altlinuxhyph\
 		--with-system-lpsolve\
 		$EXTRAOPTS || return 1
 
-#		--with-system-lucene\
-#		--with-lucene-core-jar=/usr/share/java/lucene-core.jar\
-#		--with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\
 #		--with-system-mythes\
 #		--with-system-graphite\
-
 #		--with-tag=${_ootag}
 #		--enable-report-builder \
 #		--with-additional-sections="OOXMLExport"
@@ -144,6 +146,10 @@
 	unset MAKEFLAGS
 #	./download
 	LD_PRELOAD="" make  || return 1
+}
+
+package() {
+	cd ${srcdir}/ooo-build-${_GOver}
 	make DESTDIR=${pkgdir} install || return 1
 
        # install all built dictionaries from source tree
@@ -165,8 +171,8 @@
 	sed -i "s:\/bin\/mktemp:\/usr\/bin\/mktemp:" ${pkgdir}/usr/lib/go-openoffice/program/unopkg || return 1
 	
 	#fix http://bugs.archlinux.org/task/17656
-	find ${pkgdir} -perm 444 -exec ls -lh {} \; 
-	find ${pkgdir} -perm 444 -exec chmod 644 {} \;
-	find ${pkgdir} -perm 555 -exec ls -lh {} \;
-	find ${pkgdir} -perm 555 -exec chmod 755 {} \;
+#	find ${pkgdir} -perm 444 -exec ls -lh {} \; 
+#	find ${pkgdir} -perm 444 -exec chmod 644 {} \;
+#	find ${pkgdir} -perm 555 -exec ls -lh {} \;
+#	find ${pkgdir} -perm 555 -exec chmod 755 {} \;
 }

Added: localize-ooo.diff
===================================================================
--- localize-ooo.diff	                        (rev 0)
+++ localize-ooo.diff	2010-03-26 21:51:16 UTC (rev 73507)
@@ -0,0 +1,12 @@
+--- bin/localize-ooo.old	2010-03-16 13:19:37.000000000 +0100
++++ bin/localize-ooo	2010-03-26 21:14:04.000000000 +0100
+@@ -23,6 +23,9 @@ fi
+ 
+ export LC_ALL='C';
+ 
++# do nothing for en-US only build
++test -z "$OOO_LANGS_LIST" && exit 0;
++
+ merge_localization()
+ {
+     sdf_file="$1"

Added: system-redland.patch
===================================================================
--- system-redland.patch	                        (rev 0)
+++ system-redland.patch	2010-03-26 21:51:16 UTC (rev 73507)
@@ -0,0 +1,653 @@
+From 9a6dfb41b0867d1d08af9fbb9afad84975407307 Mon Sep 17 00:00:00 2001
+From: Rene Engelhard <rene at debian.org>
+Date: Sat, 20 Mar 2010 00:37:02 +0000
+Subject: backport patch for removing redland patches and allowing system-redland
+
+* patches/dev300/apply:
+* patches/dev300/redland-remove-patches.diff:
+---
+diff --git a/patches/dev300/apply b/patches/dev300/apply
+index 3657d50..96db6a2 100644
+--- a/patches/dev300/apply
++++ b/patches/dev300/apply
+@@ -1518,6 +1518,9 @@ psprint-postscript-page-setup.diff, i#65491, n#80448, jholesov
+ vcl-bitmap2-negative-height.diff
+ 
+ [ SystemBits ]
++# remove redland patches; work around libredland bugs
++redland-remove-patches.diff, #i108911
++
+ # use getopt() and readdir_r() from system glibc
+ #FIXME src680: system-libc.diff, i#69033, rengelha
+ 
+diff --git a/patches/dev300/redland-remove-patches.diff b/patches/dev300/redland-remove-patches.diff
+new file mode 100644
+index 0000000..a945bc2
+--- a/dev/null
++++ b/patches/dev300/redland-remove-patches.diff
+@@ -0,0 +1,623 @@
++Index: configure.in
++===================================================================
++--- configure.in	(Revision 277995)
+++++ configure.in	(Arbeitskopie)
++@@ -528,6 +528,9 @@
++ AC_ARG_WITH(system-lpsolve,
++ [  --with-system-lpsolve         Use lpsolve already on system
++ ],,)
+++AC_ARG_WITH(system-redland,
+++[  --with-system-redland   Use redland library already on system
+++],,)
++ AC_ARG_WITH(system-mozilla,
++ [  --with-system-mozilla   Use mozilla already on system. Note that some
++                           components cannot be built against a contemporary
++@@ -4889,16 +4892,12 @@
++ dnl Check for system redland
++ dnl ===================================================================
++ AC_MSG_CHECKING([which redland library to use])
++-dnl if test -n "$with_system_redland" -o -n "$with_system_libs" && \
++-dnl	test "$with_system_redland" != "no"; then
++-dnl mst: NOTE: right now we need patches against redland
++-dnl            so we only enable system redland if explicitly requested
++-dnl            if next version includes patches, insert version check here
++-if test -n "$with_system_redland" && \
+++if test -n "$with_system_redland" -o -n "$with_system_libs" && \
++ 	test "$with_system_redland" != "no"; then
++ 	AC_MSG_RESULT([external])
++ 	SYSTEM_REDLAND=YES
++-	PKG_CHECK_MODULES(REDLAND, redland)
+++   dnl versions before 1.0.8 write RDF/XML that is useless for ODF (@xml:base)
+++   PKG_CHECK_MODULES(REDLAND, redland >= 1.0.8)
++ else
++ 	AC_MSG_RESULT([internal])
++ 	BUILD_TYPE="$BUILD_TYPE REDLAND"
++Index: redland/redland/makefile.mk
++===================================================================
++--- redland/redland/makefile.mk	(Revision 278035)
+++++ redland/redland/makefile.mk	(Arbeitskopie)
++@@ -62,9 +62,6 @@
++ 
++ 
++ PATCH_FILES=$(OOO_PATCH_FILES) \
++-    $(TARFILE_NAME).patch.free_null \
++-    $(TARFILE_NAME).patch.storage_hashes_context_serialize_get_statement \
++-    $(TARFILE_NAME).patch.storage_hashes_list_duplicates \
++ 
++ 
++ .IF "$(OS)"=="OS2"
++Index: redland/README
++===================================================================
++--- redland/README	(Revision 278035)
+++++ redland/README	(Arbeitskopie)
++@@ -22,7 +22,8 @@
++ Patches:
++ There are several patches, most of which contain only hacks to get it to
++ build with OOo build system.
++-There are also 3 patches that fix bugs in redland and are of general interest:
+++There used to be also 3 patches here that fix bugs in redland and ought to be
+++of general interest:
++ - redland-1.0.8.patch.free_null:
++   redland destructor functions don't check if argument is NULL
++ - redland-1.0.8.patch.storage_hashes_context_serialize_get_statement:
++@@ -31,4 +32,7 @@
++ - redland-1.0.8.patch.storage_hashes_list_duplicates:
++   hashes, list storage: if contexts are enabled, then it is possible to add
++                         duplicate statements
+++Attempts to upstream these patches failed for reasons upstream kept to
+++themselves.  Now these patches are replaced with workarounds in unoxml.
+++Note to future maintainers: work around redland bugs in client code.
++ 
++Index: unoxml/source/rdf/librdf_repository.cxx
++===================================================================
++--- unoxml/source/rdf/librdf_repository.cxx	(Revision 277995)
+++++ unoxml/source/rdf/librdf_repository.cxx	(Arbeitskopie)
++@@ -128,6 +128,56 @@
++ 
++ ////////////////////////////////////////////////////////////////////////////
++ 
+++// n.b.: librdf destructor functions dereference null pointers!
+++//       so they need to be wrapped to be usable with boost::shared_ptr.
+++static void safe_librdf_free_world(librdf_world *const world)
+++{
+++    if (world) { librdf_free_world(world); }
+++}
+++static void safe_librdf_free_model(librdf_model *const model)
+++{
+++    if (model) { librdf_free_model(model); }
+++}
+++static void safe_librdf_free_node(librdf_node* node)
+++{
+++    if (node) { librdf_free_node(node); }
+++}
+++static void safe_librdf_free_parser(librdf_parser *const parser)
+++{
+++    if (parser) { librdf_free_parser(parser); }
+++}
+++static void safe_librdf_free_query(librdf_query *const query)
+++{
+++    if (query) { librdf_free_query(query); }
+++}
+++static void
+++safe_librdf_free_query_results(librdf_query_results *const query_results)
+++{
+++    if (query_results) { librdf_free_query_results(query_results); }
+++}
+++static void safe_librdf_free_serializer(librdf_serializer *const serializer)
+++{
+++    if (serializer) { librdf_free_serializer(serializer); }
+++}
+++static void safe_librdf_free_statement(librdf_statement *const statement)
+++{
+++    if (statement) { librdf_free_statement(statement); }
+++}
+++static void safe_librdf_free_storage(librdf_storage *const storage)
+++{
+++    if (storage) { librdf_free_storage(storage); }
+++}
+++static void safe_librdf_free_stream(librdf_stream *const stream)
+++{
+++    if (stream) { librdf_free_stream(stream); }
+++}
+++static void safe_librdf_free_uri(librdf_uri *const uri)
+++{
+++    if (uri) { librdf_free_uri(uri); }
+++}
+++
+++////////////////////////////////////////////////////////////////////////////
+++
++ #if 0
++ class librdf_Statement:
++     public ::cppu::WeakImplHelper1<
++@@ -425,11 +475,13 @@
++     librdf_GraphResult(librdf_Repository *i_pRepository,
++             ::osl::Mutex & i_rMutex,
++             boost::shared_ptr<librdf_stream> const& i_pStream,
+++            boost::shared_ptr<librdf_node> const& i_pContext,
++             boost::shared_ptr<librdf_query>  const& i_pQuery =
++                 boost::shared_ptr<librdf_query>() )
++         : m_xRep(i_pRepository)
++         , m_rMutex(i_rMutex)
++         , m_pQuery(i_pQuery)
+++        , m_pContext(i_pContext)
++         , m_pStream(i_pStream)
++     { };
++ 
++@@ -452,8 +504,11 @@
++     // the query (in case this is a result of a graph query)
++     // not that the redland documentation spells this out explicity, but
++     // queries must be freed only after all the results are completely read
++-    boost::shared_ptr<librdf_query>  m_pQuery;
++-    boost::shared_ptr<librdf_stream> m_pStream;
+++    boost::shared_ptr<librdf_query>  const m_pQuery;
+++    boost::shared_ptr<librdf_node>   const m_pContext;
+++    boost::shared_ptr<librdf_stream> const m_pStream;
+++
+++    librdf_node* getContext() const;
++ };
++ 
++ 
++@@ -465,6 +520,17 @@
++     return m_pStream.get() && !librdf_stream_end(m_pStream.get());
++ }
++ 
+++librdf_node* librdf_GraphResult::getContext() const
+++{
+++    if (!m_pStream.get() || librdf_stream_end(m_pStream.get()))
+++        return NULL;
+++    librdf_node *pCtxt( static_cast<librdf_node *>
+++        (librdf_stream_get_context(m_pStream.get())) );
+++    if (pCtxt)
+++        return pCtxt;
+++    return m_pContext.get();
+++}
+++
++ ::com::sun::star::uno::Any SAL_CALL
++ librdf_GraphResult::nextElement()
++ throw (uno::RuntimeException, container::NoSuchElementException,
++@@ -472,8 +538,8 @@
++ {
++     ::osl::MutexGuard g(m_rMutex);
++     if (!m_pStream.get() || !librdf_stream_end(m_pStream.get())) {
++-        librdf_node *pCtxt( static_cast<librdf_node *>
++-            (librdf_stream_get_context(m_pStream.get())) );
+++        librdf_node * pCtxt = getContext();
+++
++         librdf_statement *pStmt( librdf_stream_get_object(m_pStream.get()) );
++         if (!pStmt) {
++             rdf::QueryException e(::rtl::OUString::createFromAscii(
++@@ -568,7 +634,7 @@
++ 
++     void operator() (librdf_node** io_pArray) const throw ()
++     {
++-        std::for_each(io_pArray, io_pArray + m_Count, librdf_free_node);
+++        std::for_each(io_pArray, io_pArray + m_Count, safe_librdf_free_node);
++         delete[] io_pArray;
++     }
++ };
++@@ -781,9 +847,9 @@
++ librdf_Repository::librdf_Repository(
++         uno::Reference< uno::XComponentContext > const & i_xContext)
++     : /*BaseMutex(),*/ m_xContext(i_xContext)
++-//    m_pWorld  (static_cast<librdf_world  *>(0), librdf_free_world  ),
++-    , m_pStorage(static_cast<librdf_storage*>(0), librdf_free_storage)
++-    , m_pModel  (static_cast<librdf_model  *>(0), librdf_free_model  )
+++//    m_pWorld  (static_cast<librdf_world  *>(0), safe_librdf_free_world  ),
+++    , m_pStorage(static_cast<librdf_storage*>(0), safe_librdf_free_storage)
+++    , m_pModel  (static_cast<librdf_model  *>(0), safe_librdf_free_model  )
++     , m_NamedGraphs()
++     , m_TypeConverter(i_xContext, *this)
++ {
++@@ -791,7 +857,7 @@
++ 
++     ::osl::MutexGuard g(m_aMutex);
++     if (!m_NumInstances++) {
++-        m_pWorld.reset(m_TypeConverter.createWorld(), librdf_free_world);
+++        m_pWorld.reset(m_TypeConverter.createWorld(), safe_librdf_free_world);
++     }
++ }
++ 
++@@ -844,7 +910,7 @@
++     ::osl::MutexGuard g(m_aMutex);
++     const boost::shared_ptr<librdf_node> pNode(
++         librdf_new_node_from_blank_identifier(m_pWorld.get(), NULL),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pNode) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::createBlankNode: "
++@@ -933,7 +999,7 @@
++     const boost::shared_ptr<librdf_node> pContext(
++         librdf_new_node_from_uri_string(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (context.getStr())),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pContext) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::importGraph: "
++@@ -945,7 +1011,7 @@
++     const boost::shared_ptr<librdf_uri> pBaseURI(
++         librdf_new_uri(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (baseURI.getStr())),
++-        librdf_free_uri);
+++        safe_librdf_free_uri);
++     if (!pBaseURI) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::importGraph: "
++@@ -954,7 +1020,7 @@
++ 
++     const boost::shared_ptr<librdf_parser> pParser(
++         librdf_new_parser(m_pWorld.get(), "rdfxml", NULL, NULL),
++-        librdf_free_parser);
+++        safe_librdf_free_parser);
++     if (!pParser) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::importGraph: "
++@@ -971,7 +1037,7 @@
++         librdf_parser_parse_counted_string_as_stream(pParser.get(),
++             reinterpret_cast<const unsigned char*>(buf.getConstArray()),
++             buf.getLength(), pBaseURI.get()),
++-        librdf_free_stream);
+++        safe_librdf_free_stream);
++     if (!pStream) {
++         throw rdf::ParseException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::importGraph: "
++@@ -1040,7 +1106,7 @@
++     const boost::shared_ptr<librdf_node> pContext(
++         librdf_new_node_from_uri_string(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (context.getStr())),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pContext) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::exportGraph: "
++@@ -1051,7 +1117,7 @@
++     const boost::shared_ptr<librdf_uri> pBaseURI(
++         librdf_new_uri(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (baseURI.getStr())),
++-        librdf_free_uri);
+++        safe_librdf_free_uri);
++     if (!pBaseURI) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::exportGraph: "
++@@ -1060,7 +1126,7 @@
++ 
++     const boost::shared_ptr<librdf_stream> pStream(
++         librdf_model_context_as_stream(m_pModel.get(), pContext.get()),
++-        librdf_free_stream);
+++        safe_librdf_free_stream);
++     if (!pStream) {
++         throw rdf::RepositoryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::exportGraph: "
++@@ -1070,7 +1136,7 @@
++     const char *format("rdfxml-abbrev");
++     const boost::shared_ptr<librdf_serializer> pSerializer(
++         librdf_new_serializer(m_pWorld.get(), format, NULL, NULL),
++-        librdf_free_serializer);
+++        safe_librdf_free_serializer);
++     if (!pSerializer) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::exportGraph: "
++@@ -1080,19 +1146,19 @@
++     const boost::shared_ptr<librdf_uri> pRelativeURI(
++         librdf_new_uri(m_pWorld.get(), reinterpret_cast<const unsigned char*>
++                 ("http://feature.librdf.org/raptor-relativeURIs")),
++-        librdf_free_uri);
+++        safe_librdf_free_uri);
++     const boost::shared_ptr<librdf_uri> pWriteBaseURI(
++         librdf_new_uri(m_pWorld.get(), reinterpret_cast<const unsigned char*>
++             ("http://feature.librdf.org/raptor-writeBaseURI")),
++-        librdf_free_uri);
+++        safe_librdf_free_uri);
++     const boost::shared_ptr<librdf_node> p0(
++         librdf_new_node_from_literal(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> ("0"), NULL, 0),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     const boost::shared_ptr<librdf_node> p1(
++         librdf_new_node_from_literal(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> ("1"), NULL, 0),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pWriteBaseURI || !pRelativeURI || !p0 || !p1) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::exportGraph: "
++@@ -1228,26 +1294,28 @@
++         isMetadatableWithoutMetadata(i_xObject))
++     {
++         return new librdf_GraphResult(this, m_aMutex,
++-            ::boost::shared_ptr<librdf_stream>());
+++            ::boost::shared_ptr<librdf_stream>(),
+++            ::boost::shared_ptr<librdf_node>());
++     }
++ 
++     ::osl::MutexGuard g(m_aMutex);
++     const boost::shared_ptr<librdf_statement> pStatement(
++         m_TypeConverter.mkStatement(m_pWorld.get(),
++             i_xSubject, i_xPredicate, i_xObject),
++-        librdf_free_statement);
+++        safe_librdf_free_statement);
++     OSL_ENSURE(pStatement, "mkStatement failed");
++ 
++     const boost::shared_ptr<librdf_stream> pStream(
++         librdf_model_find_statements(m_pModel.get(), pStatement.get()),
++-        librdf_free_stream);
+++        safe_librdf_free_stream);
++     if (!pStream) {
++         throw rdf::RepositoryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::getStatements: "
++             "librdf_model_find_statements failed"), *this);
++     }
++ 
++-    return new librdf_GraphResult(this, m_aMutex, pStream);
+++    return new librdf_GraphResult(this, m_aMutex, pStream,
+++        ::boost::shared_ptr<librdf_node>());
++ }
++ 
++ 
++@@ -1261,7 +1329,7 @@
++     const boost::shared_ptr<librdf_query> pQuery(
++         librdf_new_query(m_pWorld.get(), s_sparql, NULL,
++             reinterpret_cast<const unsigned char*> (query.getStr()), NULL),
++-        librdf_free_query);
+++        safe_librdf_free_query);
++     if (!pQuery) {
++         throw rdf::QueryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::querySelect: "
++@@ -1269,7 +1337,7 @@
++     }
++     const boost::shared_ptr<librdf_query_results> pResults(
++         librdf_model_query_execute(m_pModel.get(), pQuery.get()),
++-        librdf_free_query_results);
+++        safe_librdf_free_query_results);
++     if (!pResults || !librdf_query_results_is_bindings(pResults.get())) {
++         throw rdf::QueryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::querySelect: "
++@@ -1311,7 +1379,7 @@
++     const boost::shared_ptr<librdf_query> pQuery(
++         librdf_new_query(m_pWorld.get(), s_sparql, NULL,
++             reinterpret_cast<const unsigned char*> (query.getStr()), NULL),
++-        librdf_free_query);
+++        safe_librdf_free_query);
++     if (!pQuery) {
++         throw rdf::QueryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::queryConstruct: "
++@@ -1319,7 +1387,7 @@
++     }
++     const boost::shared_ptr<librdf_query_results> pResults(
++         librdf_model_query_execute(m_pModel.get(), pQuery.get()),
++-        librdf_free_query_results);
+++        safe_librdf_free_query_results);
++     if (!pResults || !librdf_query_results_is_graph(pResults.get())) {
++         throw rdf::QueryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::queryConstruct: "
++@@ -1327,14 +1395,15 @@
++     }
++     const boost::shared_ptr<librdf_stream> pStream(
++         librdf_query_results_as_stream(pResults.get()),
++-        librdf_free_stream);
+++        safe_librdf_free_stream);
++     if (!pStream) {
++         throw rdf::QueryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::queryConstruct: "
++             "librdf_query_results_as_stream failed"), *this);
++     }
++ 
++-    return new librdf_GraphResult(this, m_aMutex, pStream, pQuery);
+++    return new librdf_GraphResult(this, m_aMutex, pStream,
+++                                  ::boost::shared_ptr<librdf_node>(), pQuery);
++ }
++ 
++ ::sal_Bool SAL_CALL
++@@ -1348,7 +1417,7 @@
++     const boost::shared_ptr<librdf_query> pQuery(
++         librdf_new_query(m_pWorld.get(), s_sparql, NULL,
++             reinterpret_cast<const unsigned char*> (query.getStr()), NULL),
++-        librdf_free_query);
+++        safe_librdf_free_query);
++     if (!pQuery) {
++         throw rdf::QueryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::queryAsk: "
++@@ -1356,7 +1425,7 @@
++     }
++     const boost::shared_ptr<librdf_query_results> pResults(
++         librdf_model_query_execute(m_pModel.get(), pQuery.get()),
++-        librdf_free_query_results);
+++        safe_librdf_free_query_results);
++     if (!pResults || !librdf_query_results_is_boolean(pResults.get())) {
++         throw rdf::QueryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::queryAsk: "
++@@ -1611,19 +1680,20 @@
++         isMetadatableWithoutMetadata(i_xObject))
++     {
++         return new librdf_GraphResult(this, m_aMutex,
++-            ::boost::shared_ptr<librdf_stream>());
+++            ::boost::shared_ptr<librdf_stream>(),
+++            ::boost::shared_ptr<librdf_node>());
++     }
++ 
++     ::osl::MutexGuard g(m_aMutex);
++     const boost::shared_ptr<librdf_statement> pStatement(
++         m_TypeConverter.mkStatement(m_pWorld.get(),
++             i_xSubject, i_xPredicate, i_xObject),
++-        librdf_free_statement);
+++        safe_librdf_free_statement);
++     OSL_ENSURE(pStatement, "mkStatement failed");
++ 
++     const boost::shared_ptr<librdf_stream> pStream(
++         librdf_model_find_statements(m_pModel.get(), pStatement.get()),
++-        librdf_free_stream);
+++        safe_librdf_free_stream);
++     if (!pStream) {
++         throw rdf::RepositoryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::getStatementsRDFa: "
++@@ -1637,7 +1707,8 @@
++             "librdf_stream_add_map failed"), *this);
++     }
++ 
++-    return new librdf_GraphResult(this, m_aMutex, pStream);
+++    return new librdf_GraphResult(this, m_aMutex, pStream,
+++                                  ::boost::shared_ptr<librdf_node>());
++ }
++ 
++ // ::com::sun::star::lang::XInitialization:
++@@ -1649,11 +1720,11 @@
++ 
++     ::osl::MutexGuard g(m_aMutex);
++ 
++-//    m_pWorld.reset(m_TypeConverter.createWorld(), librdf_free_world);
+++//    m_pWorld.reset(m_TypeConverter.createWorld(), safe_librdf_free_world);
++     m_pStorage.reset(m_TypeConverter.createStorage(m_pWorld.get()),
++-        librdf_free_storage);
+++        safe_librdf_free_storage);
++     m_pModel.reset(m_TypeConverter.createModel(
++-        m_pWorld.get(), m_pStorage.get()), librdf_free_model);
+++        m_pWorld.get(), m_pStorage.get()), safe_librdf_free_model);
++ }
++ 
++ const NamedGraphMap_t::iterator SAL_CALL librdf_Repository::clearGraph(
++@@ -1680,7 +1751,7 @@
++     const boost::shared_ptr<librdf_node> pContext(
++         librdf_new_node_from_uri_string(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (context.getStr())),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pContext) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::clearGraph: "
++@@ -1731,7 +1802,7 @@
++     const boost::shared_ptr<librdf_node> pContext(
++         librdf_new_node_from_uri_string(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (context.getStr())),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pContext) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::addStatement: "
++@@ -1740,8 +1811,21 @@
++     const boost::shared_ptr<librdf_statement> pStatement(
++         m_TypeConverter.mkStatement(m_pWorld.get(),
++             i_xSubject, i_xPredicate, i_xObject),
++-        librdf_free_statement);
+++        safe_librdf_free_statement);
++     OSL_ENSURE(pStatement, "mkStatement failed");
+++
+++    // Test for duplicate statement
+++    // librdf_model_add_statement disallows duplicates while
+++    // librdf_model_context_add_statement allows duplicates
+++    {
+++        const boost::shared_ptr<librdf_stream> pStream(
+++            librdf_model_find_statements_in_context(m_pModel.get(),
+++                pStatement.get(), pContext.get()),
+++            safe_librdf_free_stream);
+++        if (pStream && !librdf_stream_end(pStream.get()))
+++            return;
+++    }
+++
++     if (librdf_model_context_add_statement(m_pModel.get(),
++             pContext.get(), pStatement.get())) {
++         throw rdf::RepositoryException(::rtl::OUString::createFromAscii(
++@@ -1779,7 +1863,7 @@
++     const boost::shared_ptr<librdf_node> pContext(
++         librdf_new_node_from_uri_string(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (context.getStr())),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pContext) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::removeStatements: "
++@@ -1788,13 +1872,13 @@
++     const boost::shared_ptr<librdf_statement> pStatement(
++         m_TypeConverter.mkStatement(m_pWorld.get(),
++             i_xSubject, i_xPredicate, i_xObject),
++-        librdf_free_statement);
+++        safe_librdf_free_statement);
++     OSL_ENSURE(pStatement, "mkStatement failed");
++ 
++     const boost::shared_ptr<librdf_stream> pStream(
++         librdf_model_find_statements_in_context(m_pModel.get(),
++             pStatement.get(), pContext.get()),
++-        librdf_free_stream);
+++        safe_librdf_free_stream);
++     if (!pStream) {
++         throw rdf::RepositoryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::removeStatements: "
++@@ -1838,7 +1922,8 @@
++         isMetadatableWithoutMetadata(i_xObject))
++     {
++         return new librdf_GraphResult(this, m_aMutex,
++-            ::boost::shared_ptr<librdf_stream>());
+++            ::boost::shared_ptr<librdf_stream>(),
+++            ::boost::shared_ptr<librdf_node>());
++     }
++ 
++     ::osl::MutexGuard g(m_aMutex);
++@@ -1855,7 +1940,7 @@
++     const boost::shared_ptr<librdf_node> pContext(
++         librdf_new_node_from_uri_string(m_pWorld.get(),
++             reinterpret_cast<const unsigned char*> (context.getStr())),
++-        librdf_free_node);
+++        safe_librdf_free_node);
++     if (!pContext) {
++         throw uno::RuntimeException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::getStatements: "
++@@ -1864,20 +1949,22 @@
++     const boost::shared_ptr<librdf_statement> pStatement(
++         m_TypeConverter.mkStatement(m_pWorld.get(),
++             i_xSubject, i_xPredicate, i_xObject),
++-        librdf_free_statement);
+++        safe_librdf_free_statement);
++     OSL_ENSURE(pStatement, "mkStatement failed");
++ 
++     const boost::shared_ptr<librdf_stream> pStream(
++         librdf_model_find_statements_in_context(m_pModel.get(),
++             pStatement.get(), pContext.get()),
++-        librdf_free_stream);
+++        safe_librdf_free_stream);
++     if (!pStream) {
++         throw rdf::RepositoryException(::rtl::OUString::createFromAscii(
++             "librdf_Repository::getStatements: "
++             "librdf_model_find_statements_in_context failed"), *this);
++     }
++ 
++-    return new librdf_GraphResult(this, m_aMutex, pStream);
+++    // librdf_model_find_statements_in_context is buggy and does not put
+++    // the context into result statements; pass it to librdf_GraphResult here
+++    return new librdf_GraphResult(this, m_aMutex, pStream, pContext);
++ }
++ 
++ librdf_world *librdf_TypeConverter::createWorld() const
++@@ -1929,8 +2016,8 @@
++         prtNode(contexts);
++         std::cout << std::endl;
++         // librdf_model_set_feature(repository, LIBRDF_FEATURE_CONTEXTS, ...);
++-        librdf_free_node(contexts);
++-        librdf_free_uri(ctxt);
+++        safe_librdf_free_node(contexts);
+++        safe_librdf_free_uri(ctxt);
++     }
++ #endif
++     return pRepository;
++@@ -2015,7 +2102,7 @@
++                 NULL, 0);
++         } else {
++             const boost::shared_ptr<librdf_uri> pDatatype(
++-                mkURI(i_pWorld, xType), librdf_free_uri);
+++                mkURI(i_pWorld, xType), safe_librdf_free_uri);
++             ret = librdf_new_node_from_typed_literal(i_pWorld,
++                 reinterpret_cast<const unsigned char*> (val.getStr()),
++                 NULL, pDatatype.get());
++@@ -2054,11 +2141,11 @@
++         try {
++             pObject = mkNode(i_pWorld, i_xObject);
++         } catch (...) {
++-            librdf_free_node(pPredicate);
+++            safe_librdf_free_node(pPredicate);
++             throw;
++         }
++     } catch (...) {
++-        librdf_free_node(pSubject);
+++        safe_librdf_free_node(pSubject);
++         throw;
++     }
++     // NB: this takes ownership of the nodes! (which is really ugly)
+--
+cgit v0.8.3-6-g21f6




More information about the arch-commits mailing list