Sync from SUSE:SLFO:Main sord revision 84e92751c993b2e493def4089db5c262

This commit is contained in:
Adrian Schröter 2024-05-04 00:45:17 +02:00
commit 9e77edd5aa
8 changed files with 511 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,158 @@
From 67bcd63bda9d7b095489a09b9880aa730ddb5488 Mon Sep 17 00:00:00 2001
From: David Robillard <d@drobilla.net>
Date: Fri, 7 Oct 2022 12:07:51 -0400
Subject: [PATCH] Port sord_validate to pcre2
---
meson.build | 6 ++---
src/sord_config.h | 14 +++++------
src/sord_validate.c | 61 +++++++++++++++++++++++++++------------------
4 files changed, 49 insertions(+), 35 deletions(-)
Index: sord-0.16.14/meson.build
===================================================================
--- sord-0.16.14.orig/meson.build
+++ sord-0.16.14/meson.build
@@ -116,14 +116,14 @@ if not get_option('tools').disabled()
meson.override_find_program('sordi', sordi)
- pcre_dep = dependency('libpcre', required: false)
+ pcre2_dep = dependency('libpcre2-8', required: false)
- if pcre_dep.found()
+ if pcre2_dep.found()
sord_validate = executable('sord_validate',
files('src/sord_validate.c'),
c_args: c_suppressions,
install: true,
- dependencies: [sord_dep, pcre_dep])
+ dependencies: [sord_dep, pcre2_dep])
meson.override_find_program('sord_validate', sord_validate)
endif
Index: sord-0.16.14/src/sord_config.h
===================================================================
--- sord-0.16.14.orig/src/sord_config.h
+++ sord-0.16.14/src/sord_config.h
@@ -20,11 +20,11 @@
#if !defined(SORD_NO_DEFAULT_CONFIG)
-// The validator uses PCRE for literal pattern matching
-# ifndef HAVE_PCRE
+// The validator uses PCRE2 for literal pattern matching
+# ifndef HAVE_PCRE2
# ifdef __has_include
-# if __has_include(<pcre.h>)
-# define HAVE_PCRE 1
+# if __has_include(<pcre2.h>)
+# define HAVE_PCRE2 1
# endif
# endif
# endif
@@ -39,10 +39,10 @@
if the build system defines them all.
*/
-#ifdef HAVE_PCRE
-# define USE_PCRE 1
+#ifdef HAVE_PCRE2
+# define USE_PCRE2 1
#else
-# define USE_PCRE 0
+# define USE_PCRE2 0
#endif
#endif // SORD_CONFIG_H
Index: sord-0.16.14/src/sord_validate.c
===================================================================
--- sord-0.16.14.orig/src/sord_validate.c
+++ sord-0.16.14/src/sord_validate.c
@@ -8,8 +8,9 @@
#include "sord/sord.h"
#include "sord_config.h"
-#if USE_PCRE
-# include <pcre.h>
+#if USE_PCRE2
+# define PCRE2_CODE_UNIT_WIDTH 8
+# include <pcre2.h>
#endif
#ifdef _WIN32
@@ -176,31 +177,43 @@ is_descendant_of(SordModel* model,
}
static bool
-regexp_match(const uint8_t* pat, const char* str)
+regexp_match(const uint8_t* const pattern, const char* const str)
{
-#if USE_PCRE
- // Append a $ to the pattern so we only match if the entire string matches
- const size_t len = strlen((const char*)pat);
- char* const regx = (char*)malloc(len + 2);
- memcpy(regx, pat, len);
- regx[len] = '$';
- regx[len + 1] = '\0';
-
- const char* err;
- int erroffset;
- pcre* re = pcre_compile(regx, PCRE_ANCHORED, &err, &erroffset, NULL);
- free(regx);
+#if USE_PCRE2
+ static const uint32_t options = PCRE2_ANCHORED | PCRE2_ENDANCHORED;
+
+ int err = 0;
+ size_t erroffset = 0U;
+
+ pcre2_code* const re = pcre2_compile(
+ pattern, PCRE2_ZERO_TERMINATED, options, &err, &erroffset, NULL);
+
if (!re) {
- fprintf(
- stderr, "Error in pattern `%s' at offset %d (%s)\n", pat, erroffset, err);
+ fprintf(stderr,
+ "Error in pattern `%s' at offset %lu (%d)\n",
+ pattern,
+ erroffset,
+ err);
return false;
}
- const bool ret =
- pcre_exec(re, NULL, str, (int)strlen(str), 0, 0, NULL, 0) >= 0;
- pcre_free(re);
- return ret;
-#endif // USE_PCRE
+ pcre2_match_data* const match_data =
+ pcre2_match_data_create_from_pattern(re, NULL);
+
+ const int rc = pcre2_match(re,
+ (const uint8_t*)str,
+ PCRE2_ZERO_TERMINATED,
+ 0,
+ options,
+ match_data,
+ NULL);
+
+ pcre2_match_data_free(match_data);
+
+ pcre2_code_free(re);
+ return rc > 0;
+#endif // USE_PCRE2
+
return true;
}
@@ -776,8 +789,8 @@ main(int argc, char** argv)
URI(xsd, pattern);
URI(xsd, string);
-#if !USE_PCRE
- fprintf(stderr, "warning: Built without PCRE, datatypes not checked.\n");
+#if !USE_PCRE2
+ fprintf(stderr, "warning: Built without PCRE2, datatypes not checked.\n");
#endif
const int prop_st = check_properties(model, &uris);

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libsord-0-0

BIN
sord-0.16.14.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
sord-0.16.14.tar.xz.sig Normal file

Binary file not shown.

177
sord.changes Normal file
View File

@ -0,0 +1,177 @@
-------------------------------------------------------------------
Fri Oct 14 11:39:13 UTC 2022 - Stephan Kulow <coolo@suse.com>
- Adding 67bcd63bda9d7b095489a09b9880aa730ddb5488.patch from upstrea
commit to suport pcre2 in favor of pcre1
-------------------------------------------------------------------
Fri Oct 14 11:26:43 UTC 2022 - Stephan Kulow <coolo@suse.com>
- update to 0.16.14:
* Adopt REUSE machine-readable licensing standard
* Allow programs to be used from subproject
* Fix accidentally exposed internal zix symbols
* Fix various warnings
* Switch to meson build system
-------------------------------------------------------------------
Tue Aug 9 20:31:13 UTC 2022 - Dirk Müller <dmueller@suse.com>
- add gpg validation of release
-------------------------------------------------------------------
Mon Jun 27 20:36:36 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 0.16.10:
* Fix Windows build
* Fix potential crash or incorrectness issue with GCC 10 again
-------------------------------------------------------------------
Tue Jan 19 22:16:29 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 0.16.8:
* Clean up code
* Fix potential undefined behavior
* Fix potentially incorrect search results
* Remove the need for a generated configuration header
-------------------------------------------------------------------
Wed Jan 6 12:46:54 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 0.16.6:
* Fix potential crash or incorrectness issues with GCC 10
* Fix various minor warnings and other code quality issues
-------------------------------------------------------------------
Fri Apr 17 08:11:10 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
- Update to version 0.16.4:
* Update build system
-------------------------------------------------------------------
Fri Aug 24 13:55:33 UTC 2018 - tchvatal@suse.com
- Update to 0.16.2:
* Update waf bundle to 2.0.9
* Fix warious compiler warnings and clang-format reports
-------------------------------------------------------------------
Thu Nov 2 11:49:01 UTC 2017 - mpluskal@suse.com
- Update to version 0.16.0:
* Fix construction and comparison of URIs with UTF-8 characters
* Fix documentation generation
* Return error from sord_inserter_write_statement() if a node can
not be written (e.g. undefined prefix)
* Make sord_node_get_counted return byte count, and clarify
documentation
* Safely return NULL from sord_iter_get() for end iterators
* Add sord_node_get_string_measured() to get both byte and
character counts
* sord_validate: Do proper numeric comparison for propery bounds
checking
* sord_validate: Tolerate xsd:decimal literals for double and
float properties if literals match pattern
- Use python3
- Rename devel subpackage
- Run tests during building
-------------------------------------------------------------------
Mon Jan 30 22:06:32 UTC 2017 - jengelh@inai.de
- Rename soname macro to sover as it does not contain a name
-------------------------------------------------------------------
Thu Jan 12 08:32:04 UTC 2017 - olaf@aepfle.de
- Add baselibs.conf for gstreamer-plugins-bad-32bit
-------------------------------------------------------------------
Thu Dec 17 10:26:07 UTC 2015 - davejplater@gmail.com
- Added manpage sord.3 and api docs to devel package.
-------------------------------------------------------------------
Wed Dec 16 08:52:37 UTC 2015 - olaf@aepfle.de
- Add BuildRoot: for SLE_11
-------------------------------------------------------------------
Wed Dec 9 01:59:33 UTC 2015 - someuniquename@gmail.com
- Removed doc package due to build problems.
- Update to version 0.14.0 stable;
* Reduce memory usage and increase performance with a better data structure
* Add sord_erase() for erasing statements via an iterator
* Fix bugs with stores that contain both graphs and default graph statements
* Fix crash caused by multiple deletion of datatype nodes
* Fix compilation on compilers that do not support -pthread flag
* Fix minor memory leak in sordi
* Fix using sordi with stdin
* Show sordi errors in standard format
* sord_validate: More extensive validation, including cardinality,
PlainLiteral, and someValuesFrom restrictions.
* This release does not break the ABI, but the semantics of iterators has
changed: any modification to a model invalidates iterators on that model
* Improve test coverage
* Upgrade to waf 1.8.14
-------------------------------------------------------------------
Wed Mar 25 16:06:46 UTC 2015 - p.drouand@gmail.com
- Update to version 0.12.2
* Fix iteration over an entire graph (* * * graph)
* sordmm.hpp: Remove unused members
* Update to waf 1.7.16
-------------------------------------------------------------------
Thu Sep 5 20:51:13 UTC 2013 - reddwarf@opensuse.org
- Update to 0.12.0
* Update to waf 1.7.9 and autowaf r90 (install docs to versioned directory)
* Add sord_get() for easily getting single property values
* sord_validate: Pass type check when range is xsd:anyURI and value is a URI
* sord_validate: Support any subClassOf rdf:Property, not just baked-in ones
* sordmm.hpp: Add convenient constructors for decimal and integer literals
* sordmm.hpp: Add Node::to_serd_node()
* sordmm.hpp: Don't automatically add RDF namespace prefix to world
-------------------------------------------------------------------
Tue Oct 23 21:32:33 UTC 2012 - reddwarf@opensuse.org
- Remove sord-0.8.0-no_g++.patch, applied upstream
- Update to 0.10.4
* Implement better data type validation in sord_validate conformant with
the XSD and OWL specifications
* Fix memory leaks in sord_validate
* Install sord_validate man page
* Disable timestamps in HTML documentation for reproducible build
* Add error callback to world for custom error reporting
* Performance and space (per node) improvements
* SSE4.2 accelerated hashing for node interning, where available
* Make all 'zix' symbols private to avoid symbol clashes in static builds
* Remove problematic "Loaded n statements" output from serdi
* Strip down API documentation to a single clean page
* Fix various hyper-strict warnings
* Do not require a C++ compiler to build
* Add option to build utilities as static binaries
* Upgrade to waf 1.7.2
* sordmm.hpp: Add indices and graphs parameters to Model constructor
* sordmm.hpp: Remove overzealous URI scheme assertion
* sordmm.hpp: Correctly handle Sord::Node self-assignment
-------------------------------------------------------------------
Thu Aug 16 14:25:48 UTC 2012 - reddwarf@opensuse.org
- Fix main package metadata
- Install sord_validate man page
- Created a libsord-docs subpackage to let multiple devel packages
with different APIs to be installed at the same time
-------------------------------------------------------------------
Wed Aug 8 22:29:36 UTC 2012 - reddwarf@opensuse.org
- First version of the package
- Added sord-0.8.0-no_g++.patch

51
sord.keyring Normal file
View File

@ -0,0 +1,51 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
KQ==
=T+zh
-----END PGP PUBLIC KEY BLOCK-----

98
sord.spec Normal file
View File

@ -0,0 +1,98 @@
#
# spec file for package sord
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define sover 0
Name: sord
Version: 0.16.14
Release: 0
Summary: Utilities to work with RDF data
License: ISC
Group: Productivity/File utilities
URL: https://drobilla.net/software/sord.html
Source0: https://download.drobilla.net/sord-%{version}.tar.xz
Source1: https://download.drobilla.net/sord-%{version}.tar.xz.sig
Source2: sord.keyring
Source3: baselibs.conf
# https://github.com/drobilla/sord/commit/67bcd63bda9d7b095489a09b9880aa730ddb5488
Patch0: 67bcd63bda9d7b095489a09b9880aa730ddb5488.patch
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: meson
BuildRequires: pcre2-devel
BuildRequires: pkgconfig
BuildRequires: python3
BuildRequires: pkgconfig(serd-0) >= 0.22.4
%description
Utilities to work with RDF data.
Sord is a lightweight C library for storing RDF data in memory.
%package -n libsord-0-%{sover}
Summary: A lightweight C library for storing RDF data in memory
Group: System/Libraries
%description -n libsord-0-%{sover}
A lightweight C library for storing RDF data in memory.
http://drobilla.net/software/sord/
%package devel
Summary: Development files for libsord
Group: Development/Libraries/C and C++
Requires: libsord-0-%{sover} = %{version}
Provides: libsord-0-devel = %{version}
Obsoletes: libsord-0-devel < %{version}
%description devel
Development files for libsord.
Sord is a lightweight C library for storing RDF data in memory.
%prep
%setup -q
%patch0 -p1
%build
%{meson} -Ddocs=enabled -Dtests=enabled
%{meson_build}
%install
%{meson_install}
rm -rf %{buildroot}%{_datadir}/doc/sord-0/html
%check
%{meson_test}
%post -n libsord-0-%{sover} -p /sbin/ldconfig
%postun -n libsord-0-%{sover} -p /sbin/ldconfig
%files
%attr(0755,root,root) %{_bindir}/sordi
%attr(0755,root,root) %{_bindir}/sord_validate
%{_mandir}/man1/sordi.1%{?ext_man}
%{_mandir}/man1/sord_validate.1%{?ext_man}
%files -n libsord-0-%{sover}
%license COPYING
%doc AUTHORS NEWS README.md
%{_libdir}/libsord-0.so.%{sover}*
%files devel
%{_libdir}/libsord-0.so
%{_includedir}/sord-0/
%{_libdir}/pkgconfig/sord-0.pc
%changelog