diff --git a/0001-tests-add-workaround-for-pre-232-system-returning-EI.patch b/0001-tests-add-workaround-for-pre-232-system-returning-EI.patch new file mode 100644 index 0000000..1cf0413 --- /dev/null +++ b/0001-tests-add-workaround-for-pre-232-system-returning-EI.patch @@ -0,0 +1,58 @@ +From 35a5b281adea321ea3f7b7d688a994e735366fb0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 22 Sep 2016 20:12:15 -0400 +Subject: [PATCH] tests: add workaround for pre-232 system returning EINVAL on + some flags + +--- + systemd/test/test_journal.py | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +diff --git a/systemd/test/test_journal.py b/systemd/test/test_journal.py +index 090218334d..dceec3f18d 100644 +--- a/systemd/test/test_journal.py ++++ b/systemd/test/test_journal.py +@@ -21,6 +21,13 @@ def skip_enosys(): + pytest.skip() + raise + ++@contextlib.contextmanager ++def skip_valueerror(): ++ try: ++ yield ++ except ValueError: ++ pytest.skip() ++ + def test_priorities(): + p = journal.JournalHandler.mapPriority + +@@ -62,10 +69,12 @@ def test_reader_init_flags(): + def test_reader_os_root(tmpdir): + with pytest.raises(ValueError): + journal.Reader(journal.OS_ROOT) +- j1 = journal.Reader(path=tmpdir.strpath, +- flags=journal.OS_ROOT) +- j2 = journal.Reader(path=tmpdir.strpath, +- flags=journal.OS_ROOT | journal.CURRENT_USER) ++ with skip_valueerror(): ++ j1 = journal.Reader(path=tmpdir.strpath, ++ flags=journal.OS_ROOT) ++ with skip_valueerror(): ++ j2 = journal.Reader(path=tmpdir.strpath, ++ flags=journal.OS_ROOT | journal.CURRENT_USER) + j3 = journal.Reader(path=tmpdir.strpath, + flags=journal.OS_ROOT | journal.SYSTEM_ONLY) + +@@ -91,7 +100,8 @@ def test_reader_init_path_fd(tmpdir): + j1 = journal.Reader(path=fd) + assert list(j1) == [] + +- j2 = journal.Reader(journal.SYSTEM, path=fd) ++ with skip_valueerror(): ++ j2 = journal.Reader(journal.SYSTEM, path=fd) + assert list(j2) == [] + + j3 = journal.Reader(journal.CURRENT_USER, path=fd) +-- +2.9.0 + diff --git a/0002-_reader-use-proper-ifdef-guard-for-sd_j_open_files_f.patch b/0002-_reader-use-proper-ifdef-guard-for-sd_j_open_files_f.patch new file mode 100644 index 0000000..10dc486 --- /dev/null +++ b/0002-_reader-use-proper-ifdef-guard-for-sd_j_open_files_f.patch @@ -0,0 +1,55 @@ +From 13395b717a0951fa3f32ecb1629dfc1bbcf1b38b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 22 Sep 2016 20:41:21 -0400 +Subject: [PATCH] _reader: use proper ifdef guard for sd_j_open_files_fd + +--- + systemd/_reader.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/systemd/_reader.c b/systemd/_reader.c +index 0f6fd3fac8..3a2c218346 100644 +--- a/systemd/_reader.c ++++ b/systemd/_reader.c +@@ -283,7 +283,6 @@ static int Reader_init(Reader *self, PyObject *args, PyObject *keywds) { + Py_END_ALLOW_THREADS + } + } else if (_files) { +-#ifdef HAVE_JOURNAL_OPEN_FILES + _cleanup_Py_DECREF_ PyObject *item0 = NULL; + + item0 = PySequence_GetItem(_files, 0); +@@ -293,9 +292,13 @@ static int Reader_init(Reader *self, PyObject *args, PyObject *keywds) { + if (!strv_converter(_files, &files)) + return -1; + ++#ifdef HAVE_JOURNAL_OPEN_FILES + Py_BEGIN_ALLOW_THREADS + r = sd_journal_open_files(&self->j, (const char**) files, flags); + Py_END_ALLOW_THREADS ++#else ++ r = -ENOSYS; ++#endif + } else { + _cleanup_free_ int *fds = NULL; + size_t n_fds; +@@ -303,13 +306,14 @@ static int Reader_init(Reader *self, PyObject *args, PyObject *keywds) { + if (!intlist_converter(_files, &fds, &n_fds)) + return -1; + ++#ifdef HAVE_JOURNAL_OPEN_DIRECTORY_FD + Py_BEGIN_ALLOW_THREADS + r = sd_journal_open_files_fd(&self->j, fds, n_fds, flags); + Py_END_ALLOW_THREADS +- } + #else +- r = -ENOSYS; ++ r = -ENOSYS; + #endif ++ } + } else { + Py_BEGIN_ALLOW_THREADS + r = sd_journal_open(&self->j, flags); +-- +2.9.0 + diff --git a/python-systemd.spec b/python-systemd.spec index 4b4f8bf..ca88947 100644 --- a/python-systemd.spec +++ b/python-systemd.spec @@ -6,6 +6,8 @@ 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 +Patch1: 0001-tests-add-workaround-for-pre-232-system-returning-EI.patch +Patch2: 0002-_reader-use-proper-ifdef-guard-for-sd_j_open_files_f.patch BuildRequires: systemd-devel BuildRequires: python2-devel @@ -58,6 +60,7 @@ Requires: js-jquery %prep %autosetup -p1 +sed -i 's/py\.test/pytest/' Makefile %build make PYTHON=%{__python2} build