diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6010db6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/python-systemd-234.tar.gz diff --git a/.python-systemd.metadata b/.python-systemd.metadata new file mode 100644 index 0000000..af3e37e --- /dev/null +++ b/.python-systemd.metadata @@ -0,0 +1 @@ +0aea149f95c43c44905cb898a9c51f61a4012787 SOURCES/python-systemd-234.tar.gz diff --git a/SOURCES/0001-journal-avoid-warning-about-deprecated-constant.patch b/SOURCES/0001-journal-avoid-warning-about-deprecated-constant.patch new file mode 100644 index 0000000..d9174b7 --- /dev/null +++ b/SOURCES/0001-journal-avoid-warning-about-deprecated-constant.patch @@ -0,0 +1,22 @@ +From 63473b65d0c10268a9e2c9485313c4584027e67e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 11 Nov 2020 22:36:04 +0100 +Subject: [PATCH 1/2] journal: avoid warning about deprecated constant + +--- + systemd/_reader.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/systemd/_reader.c b/systemd/_reader.c +index c9aa11d43c..8de7f6a963 100644 +--- a/systemd/_reader.c ++++ b/systemd/_reader.c +@@ -1339,7 +1339,7 @@ init_reader(void) + PyModule_AddIntConstant(m, "LOCAL_ONLY", SD_JOURNAL_LOCAL_ONLY) || + PyModule_AddIntConstant(m, "RUNTIME_ONLY", SD_JOURNAL_RUNTIME_ONLY) || + PyModule_AddIntConstant(m, "SYSTEM", SD_JOURNAL_SYSTEM) || +- PyModule_AddIntConstant(m, "SYSTEM_ONLY", SD_JOURNAL_SYSTEM_ONLY) || ++ PyModule_AddIntConstant(m, "SYSTEM_ONLY", SD_JOURNAL_SYSTEM) || + PyModule_AddIntConstant(m, "CURRENT_USER", SD_JOURNAL_CURRENT_USER) || + PyModule_AddIntConstant(m, "OS_ROOT", SD_JOURNAL_OS_ROOT) || + PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION)) { diff --git a/SOURCES/0002-reader-make-PY_SSIZE_T_CLEAN.patch b/SOURCES/0002-reader-make-PY_SSIZE_T_CLEAN.patch new file mode 100644 index 0000000..2c66e03 --- /dev/null +++ b/SOURCES/0002-reader-make-PY_SSIZE_T_CLEAN.patch @@ -0,0 +1,46 @@ +From ab9f2797127b374665c37c06b02121f5dcf7d61c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 12 Nov 2020 16:55:56 +0100 +Subject: [PATCH 2/2] reader: make PY_SSIZE_T_CLEAN + +--- + systemd/_reader.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/systemd/_reader.c b/systemd/_reader.c +index 8de7f6a963..3b6a4d0bbc 100644 +--- a/systemd/_reader.c ++++ b/systemd/_reader.c +@@ -18,7 +18,12 @@ + along with python-systemd; If not, see . + ***/ + ++#define PY_SSIZE_T_CLEAN ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wredundant-decls" + #include ++#pragma GCC diagnostic pop ++ + #include + #include + #include +@@ -710,11 +715,17 @@ PyDoc_STRVAR(Reader_add_match__doc__, + "Match is a string of the form \"FIELD=value\"."); + static PyObject* Reader_add_match(Reader *self, PyObject *args, PyObject *keywds) { + char *match; +- int match_len, r; ++ Py_ssize_t match_len; ++ int r; + if (!PyArg_ParseTuple(args, "s#:add_match", &match, &match_len)) + return NULL; + +- r = sd_journal_add_match(self->j, match, match_len); ++ if (match_len > INT_MAX) { ++ set_error(-ENOBUFS, NULL, NULL); ++ return NULL; ++ } ++ ++ r = sd_journal_add_match(self->j, match, (int) match_len); + if (set_error(r, NULL, "Invalid match") < 0) + return NULL; + diff --git a/SOURCES/0003-test-make-sure-NOTIFY_SOCKET-is-unset-in-test.patch b/SOURCES/0003-test-make-sure-NOTIFY_SOCKET-is-unset-in-test.patch new file mode 100644 index 0000000..06b7a34 --- /dev/null +++ b/SOURCES/0003-test-make-sure-NOTIFY_SOCKET-is-unset-in-test.patch @@ -0,0 +1,25 @@ +From 21e0cee30e5550cd6c9afa8c4cdedbcfdfca8480 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 12 Nov 2020 17:08:02 +0100 +Subject: [PATCH] test: make sure $NOTIFY_SOCKET is unset in test + +When running the tests in Fedora's mock, the test would +fail because NOTIFY_SOCKET is set to /run/systemd/nspawn/notify, and +we get a permission error. +--- + systemd/test/test_daemon.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/systemd/test/test_daemon.py b/systemd/test/test_daemon.py +index 1ddb55e94d..ff9e086e72 100644 +--- a/systemd/test/test_daemon.py ++++ b/systemd/test/test_daemon.py +@@ -257,6 +257,8 @@ def test_listen_fds_default_unset(): + assert listen_fds() == [] + + def test_notify_no_socket(): ++ os.environ.pop('NOTIFY_SOCKET', None) ++ + assert notify('READY=1') is False + with skip_enosys(): + assert notify('FDSTORE=1', fds=[]) is False diff --git a/SPECS/python-systemd.spec b/SPECS/python-systemd.spec new file mode 100644 index 0000000..52bb816 --- /dev/null +++ b/SPECS/python-systemd.spec @@ -0,0 +1,167 @@ +Name: python-systemd +Version: 234 +Release: 18%{?dist} +Summary: Python module wrapping systemd functionality + +License: LGPLv2+ +URL: https://github.com/systemd/python-systemd +Source0: https://github.com/systemd/python-systemd/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +Patch0001: 0001-journal-avoid-warning-about-deprecated-constant.patch +Patch0002: 0002-reader-make-PY_SSIZE_T_CLEAN.patch +Patch0003: 0003-test-make-sure-NOTIFY_SOCKET-is-unset-in-test.patch + +BuildRequires: make +BuildRequires: gcc +BuildRequires: systemd-devel +BuildRequires: python3-devel +BuildRequires: python3-sphinx +BuildRequires: web-assets-devel +BuildRequires: python3-pytest + +%global _description %{expand: +Python module for native access to the systemd facilities. +Functionality includes sending of structured messages to the journal +and reading journal files, querying machine and boot identifiers and a +lists of message identifiers provided by systemd. Other functionality +provided by libsystemd is also wrapped.} + +%description %_description + +%package -n python3-systemd +Summary: %{summary} + +%{?python_provide:%python_provide python3-systemd} +Provides: systemd-python3 = %{version}-%{release} +Provides: systemd-python3%{?_isa} = %{version}-%{release} +Obsoletes: systemd-python3 < 230 +Recommends: %{name}-doc + +%description -n python3-systemd %_description + +%package doc +Summary: HTML documentation for %{name} +Requires: js-jquery + +%description doc +%{summary}. + +%prep +%autosetup -p1 +sed -i 's/py\.test/pytest/' Makefile + +%build +make PYTHON=%{__python3} build +make PYTHON=%{__python3} SPHINX_BUILD=sphinx-build-3 sphinx-html +rm -r build/html/.buildinfo build/html/.doctrees + +%install +%make_install PYTHON=%{__python3} +mkdir -p %{buildroot}%{_pkgdocdir} +cp -rv build/html %{buildroot}%{_pkgdocdir}/ +ln -vsf %{_jsdir}/jquery/latest/jquery.min.js %{buildroot}%{_pkgdocdir}/html/_static/jquery.js +cp -p README.md NEWS %{buildroot}%{_pkgdocdir}/ + +%check +# if the socket is not there, skip doc tests +test -f /run/systemd/journal/stdout || \ + sed -i 's/--doctest[^ ]*//g' pytest.ini +make PYTHON=%{__python3} check + +%files -n python3-systemd +%license LICENSE.txt +%doc %{_pkgdocdir} +%exclude %{_pkgdocdir}/html +%{python3_sitearch}/systemd/ +%{python3_sitearch}/systemd_python*.egg-info + +%files doc +%doc %{_pkgdocdir}/html + +%changelog +* Tue Aug 10 2021 Mohan Boddu - 234-18 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 234-17 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Jan 27 2021 Fedora Release Engineering - 234-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Nov 12 2020 Zbigniew Jędrzejewski-Szmek - 234-15 +- Fix build with new mock (#1793022) and python 3.10 (#1891786) + +* Wed Jul 29 2020 Fedora Release Engineering - 234-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat May 23 2020 Miro Hrončok - 234-13 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 234-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sun Sep 08 2019 Miro Hrončok - 234-11 +- Subpackage python2-systemd has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Fri Aug 16 2019 Miro Hrončok - 234-10 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 234-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 234-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 234-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 15 2018 Miro Hrončok - 234-6 +- Rebuilt for Python 3.7 + +* Fri Feb 09 2018 Fedora Release Engineering - 234-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Nov 1 2017 Zbigniew Jędrzejewski-Szmek - 234-4 +- Use separate license and documentation directories + +* Thu Aug 03 2017 Fedora Release Engineering - 234-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 234-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sun Mar 26 2017 Zbigniew Jędrzejewski-Szmek - 234-1 +- Update to latest version + +* Sat Feb 11 2017 Fedora Release Engineering - 232-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Dec 13 2016 Stratakis Charalampos - 232-2 +- Rebuild for Python 3.6 + +* Thu Sep 22 2016 Zbigniew Jędrzejewski-Szmek - 232-1 +- Update to latest version + +* Tue Jul 19 2016 Fedora Release Engineering - 231-6 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Thu Feb 04 2016 Fedora Release Engineering - 231-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Sun Jan 24 2016 Zbigniew Jędrzejewski-Szmek - 231-4 +- Bugfixes for seek_monotonic and Python 2 compat + +* Sun Nov 15 2015 Zbigniew Jędrzejewski-Szmek - 231-3 +- Split out doc subpackage (#1242619) +- Do not allow installation of python-systemd in different versions + +* Sat Nov 07 2015 Robert Kuska - 231-2 +- Rebuilt for Python3.5 rebuild + +* Tue Oct 27 2015 Zbigniew Jędrzejewski-Szmek - 231-1 +- Update to latest version + +* Mon Jul 6 2015 Zbigniew Jędrzejewski-Szmek - 230-1 +- Initial packaging