Accepting request 1291244 from devel:languages:python

- Convert to libalternatives

- Add reproducible-doc-build.patch to make the build reproducible.
  gh#RDFLib/rdflib#2645

OBS-URL: https://build.opensuse.org/request/show/1291244
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-rdflib?expand=0&rev=35
This commit is contained in:
2025-07-09 15:26:03 +00:00
committed by Git OBS Bridge
3 changed files with 52 additions and 22 deletions

View File

@@ -1,3 +1,14 @@
-------------------------------------------------------------------
Tue Jul 8 08:17:28 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Convert to libalternatives
-------------------------------------------------------------------
Tue Jul 8 08:07:39 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add reproducible-doc-build.patch to make the build reproducible.
gh#RDFLib/rdflib#2645
-------------------------------------------------------------------
Thu Apr 3 06:45:45 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>

View File

@@ -18,37 +18,37 @@
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "doc"
%bcond_without doc
%define psuffix -doc
%bcond_without doc
%else
%bcond_with doc
%define psuffix %{nil}
%bcond_with doc
%endif
# Tests don't work and cause a dependency loop with python-SPARQLWrapper
%bcond_with tests
%bcond_without libalternatives
%{?sle15_python_module_pythons}
Name: python-rdflib%{psuffix}
Version: 7.1.4
Release: 0
Summary: A Python library for working with RDF
License: BSD-3-Clause
URL: http://rdflib.net/
URL: https://rdflib.net/
Source: https://files.pythonhosted.org/packages/source/r/rdflib/rdflib-%{version}.tar.gz
# PATCH-FIX-UPSTREAM sphinx8.patch gh#RDFLib/rdflib#2956 -- daniel.garcia@suse.com
Patch0: sphinx8.patch
# PATCH-FIX-OPENSUSE reproducible-doc-build.patch gh#RDFLib/rdflib#2645 -- daniel.garcia@suse.com
Patch1: reproducible-doc-build.patch
BuildRequires: alts
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires(post): update-alternatives
Requires(postun): update-alternatives
Requires: alts
BuildArch: noarch
%if %{with tests}
BuildRequires: %{python_module SPARQLWrapper}
BuildRequires: %{python_module flake8}
BuildRequires: %{python_module pytest}
%endif
%if %{with doc}
BuildRequires: %{python_module rdflib = %{version}}
BuildRequires: python3-Sphinx
@@ -65,8 +65,8 @@ BuildRequires: %{python_module pyparsing}
BuildRequires: %{python_module wheel}
BuildRequires: %{python_module xml}
Requires: python-pyparsing
%python_subpackages
%endif
%python_subpackages
%description
RDFLib is a Python library for working with RDF, a simple yet powerful
@@ -117,19 +117,12 @@ popd
%else
%post
%python_install_alternative rdfs2dot
%python_install_alternative rdfpipe
%python_install_alternative rdfgraphisomorphism
%python_install_alternative rdf2dot
%python_install_alternative csv2rdf
%postun
%python_uninstall_alternative rdfs2dot
%python_uninstall_alternative rdfpipe
%python_uninstall_alternative rdfgraphisomorphism
%python_uninstall_alternative rdf2dot
%python_uninstall_alternative csv2rdf
%pre
%python_libalternatives_reset_alternative rdfs2dot
%python_libalternatives_reset_alternative rdfpipe
%python_libalternatives_reset_alternative rdfgraphisomorphism
%python_libalternatives_reset_alternative rdf2dot
%python_libalternatives_reset_alternative csv2rdf
%files %{python_files}
%license LICENSE

View File

@@ -0,0 +1,26 @@
diff --git a/rdflib/term.py b/rdflib/term.py
index 3e397674..4e0cfcf1 100644
--- a/rdflib/term.py
+++ b/rdflib/term.py
@@ -23,6 +23,7 @@ underlying Graph:
from __future__ import annotations
+import sys
import abc
import re
from fractions import Fraction
@@ -483,7 +484,12 @@ class BNode(IdentifiedNode):
else:
node_id = sn_result
else:
- node_id = uuid4().hex
+ # Do not generate random id for doc, this will help with reproducible
+ # builds https://github.com/RDFLib/rdflib/issues/2645
+ if "sphinx-build" in sys.argv[0]:
+ node_id = "NODEID"
+ else:
+ node_id = uuid4().hex
# note, for two (and only two) string variables,
# concat with + is faster than f"{x}{y}"
value = _prefix + f"{node_id}"