Accepting request 1240147 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/1240147
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/sord?expand=0&rev=20
This commit is contained in:
Ana Guerrero 2025-01-28 13:58:01 +00:00 committed by Git OBS Bridge
commit db05521ce2
7 changed files with 22 additions and 169 deletions

View File

@ -1,158 +0,0 @@
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);

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

Binary file not shown.

Binary file not shown.

3
sord-0.16.16.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:257f876d756143da02ee84c9260af93559d6249dd87f317e70ab5fffcc975fd0
size 107148

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

Binary file not shown.

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Sun Jan 19 00:15:11 UTC 2025 - Konstantin Voinov <kv@kott.no-ip.biz>
- remove 67bcd63bda9d7b095489a09b9880aa730ddb5488.patch now upstream
- update to 0.16.16
* Allow SORD_API to be defined by the user
* Fix command line help interface of sord_validate
* Fix dependencies in pkg-config file
* Override pkg-config dependency within meson
* Port sord_validate to pcre2
* Switch to external zix dependency
-------------------------------------------------------------------
Mon Feb 26 13:42:34 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -1,7 +1,7 @@
#
# spec file for package sord
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -18,7 +18,7 @@
%define sover 0
Name: sord
Version: 0.16.14
Version: 0.16.16
Release: 0
Summary: Utilities to work with RDF data
License: ISC
@ -28,8 +28,6 @@ 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
@ -37,6 +35,7 @@ BuildRequires: pcre2-devel
BuildRequires: pkgconfig
BuildRequires: python3
BuildRequires: pkgconfig(serd-0) >= 0.30.10
BuildRequires: pkgconfig(zix-0) >= 0.4.0
%description
Utilities to work with RDF data.
@ -65,15 +64,15 @@ Sord is a lightweight C library for storing RDF data in memory.
%autosetup -p1
%build
%{meson} -Ddocs=enabled -Dtests=enabled
%{meson_build}
%meson -Ddocs=enabled -Dtests=enabled
%meson_build
%install
%{meson_install}
%meson_install
rm -rf %{buildroot}%{_datadir}/doc/sord-0/html
%check
%{meson_test}
%meson_test
%post -n libsord-0-%{sover} -p /sbin/ldconfig
%postun -n libsord-0-%{sover} -p /sbin/ldconfig