From a004f49bea127f5f22c352b77991ace5d04decf4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 12:21:43 +0000 Subject: [PATCH 1/7] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- targetd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/targetd.spec b/targetd.spec index e56534d..7de4ce9 100644 --- a/targetd.spec +++ b/targetd.spec @@ -2,7 +2,7 @@ Name: targetd License: GPL-3.0-only Summary: Service to make storage remotely configurable Version: 0.10.4 -Release: 3%{?dist} +Release: 4%{?dist} URL: https://github.com/open-iscsi/targetd Source: https://github.com/open-iscsi/targetd/archive/v%{version}/targetd-%{version}.tar.gz Source1: targetd.service @@ -56,6 +56,9 @@ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ %config(noreplace) %{_sysconfdir}/target/targetd.yaml %changelog +* Sun Jan 19 2025 Fedora Release Engineering - 0.10.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sat Jul 20 2024 Fedora Release Engineering - 0.10.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From c020a9c3058bc9a210a26ed2ee8f8c4eabfc0340 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 2 Jun 2025 20:53:06 +0200 Subject: [PATCH 2/7] Rebuilt for Python 3.14 --- targetd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/targetd.spec b/targetd.spec index 7de4ce9..f6bb1a7 100644 --- a/targetd.spec +++ b/targetd.spec @@ -2,7 +2,7 @@ Name: targetd License: GPL-3.0-only Summary: Service to make storage remotely configurable Version: 0.10.4 -Release: 4%{?dist} +Release: 5%{?dist} URL: https://github.com/open-iscsi/targetd Source: https://github.com/open-iscsi/targetd/archive/v%{version}/targetd-%{version}.tar.gz Source1: targetd.service @@ -56,6 +56,9 @@ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ %config(noreplace) %{_sysconfdir}/target/targetd.yaml %changelog +* Mon Jun 02 2025 Python Maint - 0.10.4-5 +- Rebuilt for Python 3.14 + * Sun Jan 19 2025 Fedora Release Engineering - 0.10.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From b15ea2340e221f02e67333004157af6bfcdb88ed Mon Sep 17 00:00:00 2001 From: Tony Asleson Date: Mon, 9 Jun 2025 12:51:28 -0500 Subject: [PATCH 3/7] Use pyproject macros Needed to add some of the runtime dependencies to build for the import checks. Signed-off-by: Tony Asleson --- targetd.spec | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/targetd.spec b/targetd.spec index f6bb1a7..bb69b38 100644 --- a/targetd.spec +++ b/targetd.spec @@ -2,15 +2,15 @@ Name: targetd License: GPL-3.0-only Summary: Service to make storage remotely configurable Version: 0.10.4 -Release: 5%{?dist} +Release: 6%{?dist} URL: https://github.com/open-iscsi/targetd Source: https://github.com/open-iscsi/targetd/archive/v%{version}/targetd-%{version}.tar.gz Source1: targetd.service BuildArch: noarch BuildRequires: systemd-rpm-macros -BuildRequires: python3-devel python3-setuptools +BuildRequires: python3-devel python3-gobject-base python3-blockdev libblockdev-lvm Requires: python3-PyYAML python3-setproctitle python3-rtslib target-restore -Requires: nfs-utils, btrfs-progs, python3-blockdev, libblockdev-lvm +Requires: nfs-utils, btrfs-progs, python3-blockdev, libblockdev-lvm %description targetd turns the machine into a remotely-configurable storage appliance. @@ -21,8 +21,11 @@ those volumes over iSCSI. %prep %setup -q +%generate_buildrequires +%pyproject_buildrequires + %build -%py3_build +%pyproject_wheel %install mkdir -p %{buildroot}%{_mandir}/man8/ @@ -33,7 +36,11 @@ install -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/targetd.service install -m 644 targetd.yaml %{buildroot}%{_sysconfdir}/target/targetd.yaml install -m 644 targetd.8 %{buildroot}%{_mandir}/man8/ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ -%py3_install +%pyproject_install +%pyproject_save_files -l targetd + +%check +%pyproject_check_import %post %systemd_post targetd.service @@ -44,18 +51,18 @@ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ %postun %systemd_postun_with_restart targetd.service -%files +%files -f %{pyproject_files} %{_bindir}/targetd %{_unitdir}/targetd.service -%{python3_sitelib}/targetd/ -%{python3_sitelib}/*.egg-info -%license LICENSE %doc README.md API.md client %{_mandir}/man8/targetd.8* %{_mandir}/man5/targetd.yaml.5* %config(noreplace) %{_sysconfdir}/target/targetd.yaml %changelog +* Mon Jun 09 2025 Tony Asleson - 0.10.4-6 +- Use pyproject macros + * Mon Jun 02 2025 Python Maint - 0.10.4-5 - Rebuilt for Python 3.14 From 63bde938dac096efb9bb9294dd7c03bd12614153 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 9 Jun 2025 22:37:50 +0200 Subject: [PATCH 4/7] Rebuilt for Python 3.14 --- targetd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/targetd.spec b/targetd.spec index bb69b38..f6f635f 100644 --- a/targetd.spec +++ b/targetd.spec @@ -2,7 +2,7 @@ Name: targetd License: GPL-3.0-only Summary: Service to make storage remotely configurable Version: 0.10.4 -Release: 6%{?dist} +Release: 7%{?dist} URL: https://github.com/open-iscsi/targetd Source: https://github.com/open-iscsi/targetd/archive/v%{version}/targetd-%{version}.tar.gz Source1: targetd.service @@ -60,6 +60,9 @@ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ %config(noreplace) %{_sysconfdir}/target/targetd.yaml %changelog +* Mon Jun 09 2025 Python Maint - 0.10.4-7 +- Rebuilt for Python 3.14 + * Mon Jun 09 2025 Tony Asleson - 0.10.4-6 - Use pyproject macros From 3dfee18d289af4ffc0e35cbb239c4e2a4f26defa Mon Sep 17 00:00:00 2001 From: Tony Asleson Date: Thu, 24 Jul 2025 16:24:47 -0500 Subject: [PATCH 5/7] Move to tmt test Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2383084 Signed-off-by: Tony Asleson --- .fmf/version | 1 + 0001_rtslib_fb_api_fix.patch | 23 +++++++++++++++++ {tests => plans}/ci_test.sh | 13 ++++++++-- plans/tests.fmf | 50 ++++++++++++++++++++++++++++++++++++ targetd.spec | 9 +++++-- tests/tests.yml | 22 ---------------- 6 files changed, 92 insertions(+), 26 deletions(-) create mode 100644 .fmf/version create mode 100644 0001_rtslib_fb_api_fix.patch rename {tests => plans}/ci_test.sh (84%) create mode 100644 plans/tests.fmf delete mode 100644 tests/tests.yml diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/0001_rtslib_fb_api_fix.patch b/0001_rtslib_fb_api_fix.patch new file mode 100644 index 0000000..887fd2d --- /dev/null +++ b/0001_rtslib_fb_api_fix.patch @@ -0,0 +1,23 @@ +diff --git a/targetd/block.py b/targetd/block.py +index b7b03f0..edd47ec 100644 +--- a/targetd/block.py ++++ b/targetd/block.py +@@ -26,10 +26,17 @@ from rtslib_fb import ( + LUN, + MappedLUN, + RTSLibError, +- RTSLibNotInCFS, + NodeACLGroup, + ) + ++# This commit https://github.com/open-iscsi/rtslib-fb/commit/fdd69b1984bac6a6c3f08890bc22267b848a26ac ++# renamed a number of error classes which causes us to do the following ++try: ++ from rtslib_fb import RTSLibNotInCFS ++except ImportError: ++ from rtslib_fb import RTSLibNotInCFSError as RTSLibNotInCFS ++ ++ + from targetd.backends import lvm, zfs + from targetd.main import TargetdError + from targetd.utils import ignored, name_check diff --git a/tests/ci_test.sh b/plans/ci_test.sh similarity index 84% rename from tests/ci_test.sh rename to plans/ci_test.sh index 8d0a9e4..8d8bc63 100755 --- a/tests/ci_test.sh +++ b/plans/ci_test.sh @@ -18,7 +18,12 @@ function _chk fi } -SOURCE_DIR="targetd_src" +if [ "$#" -ne 1 ]; then + echo "Usage: $0 source directory" + exit 1 +fi + +SOURCE_DIR="$1" BASE=$PWD # TODO REMOVE THIS WHEN RAWHIDE PICKS UP @@ -32,6 +37,10 @@ _chk ./test/test.sh setup # Pick up new changes from setup _chk systemctl restart targetd +# Make sure nfs stuff is ok +_chk systemctl start rpcbind +_chk systemctl start nfs-server + # Try stopping the firewall, but don't fail if this fails systemctl stop firewalld @@ -44,6 +53,6 @@ netstat -anp | grep LISTEN | grep 18700 # Go back to start directory and run unit test. _chk cd $BASE -SRC="$BASE/$SOURCE_DIR" +SRC="$SOURCE_DIR" _chk TARGETD_UT_CERTFILE=/etc/target/targetd_cert.pem PYTHONPATH=$SRC python3 $SRC/test/targetd_test.py -v exit 0 \ No newline at end of file diff --git a/plans/tests.fmf b/plans/tests.fmf new file mode 100644 index 0000000..6775fd6 --- /dev/null +++ b/plans/tests.fmf @@ -0,0 +1,50 @@ +summary: targetd gating tests + +provision: + how: virtual + image: fedora + +prepare: + how: install + package: + - targetd + - util-linux + - lvm2 + - procps-ng + - coreutils + - openssl + - btrfs-progs + - audit + - python3-requests + - net-tools-2.0 + - nfs-utils + +discover: + how: shell + dist-git-source: true + dist-git-install-builddeps: true + tests: + - name: upstream test suite + test: | + set -x + if [ -z "$PKG_VER" ]; then + PKG_VER=`rpmspec -q --srpm --qf "%{version}" targetd.spec` + fi + if [ -z "$PKG_VER" ]; then + echo "Error: Unable to extract package version" + exit 1 + fi + + export SRC="$TMT_SOURCE_DIR/targetd-${PKG_VER}" + echo "Source is located: $SRC" + + echo "We are $PWD" + ls -lh + + echo "TMT_SOURCE_DIR is ($TMT_SOURCE_DIR)" + + ./plans/ci_test.sh "$SRC" + +execute: + - how: tmt + diff --git a/targetd.spec b/targetd.spec index f6f635f..3d9fd01 100644 --- a/targetd.spec +++ b/targetd.spec @@ -2,10 +2,11 @@ Name: targetd License: GPL-3.0-only Summary: Service to make storage remotely configurable Version: 0.10.4 -Release: 7%{?dist} +Release: 8%{?dist} URL: https://github.com/open-iscsi/targetd Source: https://github.com/open-iscsi/targetd/archive/v%{version}/targetd-%{version}.tar.gz Source1: targetd.service +Patch1: 0001_rtslib_fb_api_fix.patch BuildArch: noarch BuildRequires: systemd-rpm-macros BuildRequires: python3-devel python3-gobject-base python3-blockdev libblockdev-lvm @@ -19,7 +20,7 @@ administrator allocate volumes from an LVM volume group, and export those volumes over iSCSI. %prep -%setup -q +%autosetup -p1 %generate_buildrequires %pyproject_buildrequires @@ -60,6 +61,10 @@ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ %config(noreplace) %{_sysconfdir}/target/targetd.yaml %changelog +* Thu Jul 24 2025 Tony Asleson - 0.10.4-8 +- Workaround for: https://github.com/open-iscsi/rtslib-fb/issues/220 +- Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2383084 + * Mon Jun 09 2025 Python Maint - 0.10.4-7 - Rebuilt for Python 3.14 diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 428377f..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,22 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - tests: - - simple: - dir: . - run: ./ci_test.sh - required_packages: - - targetd - - util-linux - - lvm2 - - procps-ng - - coreutils - - openssl - - btrfs-progs - - audit - - python3-requests - repositories: - - repo: "https://github.com/open-iscsi/targetd.git" - dest: "targetd_src" From 5e910170d6f705adf486040b765d406dfd10a4e4 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 15:19:49 +0200 Subject: [PATCH 6/7] Rebuilt for Python 3.14.0rc2 bytecode --- targetd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/targetd.spec b/targetd.spec index 3d9fd01..4c6a4aa 100644 --- a/targetd.spec +++ b/targetd.spec @@ -2,7 +2,7 @@ Name: targetd License: GPL-3.0-only Summary: Service to make storage remotely configurable Version: 0.10.4 -Release: 8%{?dist} +Release: 9%{?dist} URL: https://github.com/open-iscsi/targetd Source: https://github.com/open-iscsi/targetd/archive/v%{version}/targetd-%{version}.tar.gz Source1: targetd.service @@ -61,6 +61,9 @@ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ %config(noreplace) %{_sysconfdir}/target/targetd.yaml %changelog +* Fri Aug 15 2025 Python Maint - 0.10.4-9 +- Rebuilt for Python 3.14.0rc2 bytecode + * Thu Jul 24 2025 Tony Asleson - 0.10.4-8 - Workaround for: https://github.com/open-iscsi/rtslib-fb/issues/220 - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2383084 From 5d6134befb033603f88ebc711e8daa4c7d369fa4 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 14:59:09 +0200 Subject: [PATCH 7/7] Rebuilt for Python 3.14.0rc3 bytecode --- targetd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/targetd.spec b/targetd.spec index 4c6a4aa..7634f2c 100644 --- a/targetd.spec +++ b/targetd.spec @@ -2,7 +2,7 @@ Name: targetd License: GPL-3.0-only Summary: Service to make storage remotely configurable Version: 0.10.4 -Release: 9%{?dist} +Release: 10%{?dist} URL: https://github.com/open-iscsi/targetd Source: https://github.com/open-iscsi/targetd/archive/v%{version}/targetd-%{version}.tar.gz Source1: targetd.service @@ -61,6 +61,9 @@ install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/ %config(noreplace) %{_sysconfdir}/target/targetd.yaml %changelog +* Fri Sep 19 2025 Python Maint - 0.10.4-10 +- Rebuilt for Python 3.14.0rc3 bytecode + * Fri Aug 15 2025 Python Maint - 0.10.4-9 - Rebuilt for Python 3.14.0rc2 bytecode