From 93a93e9a3b53c1a73142a305ea1f8136846942ee Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 22 Dec 2021 14:08:05 +0000 Subject: gentoo resync : 22.12.2021 --- sys-fs/zfs/files/2.1.2-musl-tests.patch | 58 ++++++++++++ sys-fs/zfs/files/2.1.2-openrc-vendor.patch | 42 +++++++++ sys-fs/zfs/files/2.1.2-scrub-timers.patch | 147 +++++++++++++++++++++++++++++ 3 files changed, 247 insertions(+) create mode 100644 sys-fs/zfs/files/2.1.2-musl-tests.patch create mode 100644 sys-fs/zfs/files/2.1.2-openrc-vendor.patch create mode 100644 sys-fs/zfs/files/2.1.2-scrub-timers.patch (limited to 'sys-fs/zfs/files') diff --git a/sys-fs/zfs/files/2.1.2-musl-tests.patch b/sys-fs/zfs/files/2.1.2-musl-tests.patch new file mode 100644 index 000000000000..3d2c563f8c51 --- /dev/null +++ b/sys-fs/zfs/files/2.1.2-musl-tests.patch @@ -0,0 +1,58 @@ +From 123c87b3c2d75636da79f57a4b0ed60d2a3133a8 Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Mon, 20 Dec 2021 12:25:11 -0800 +Subject: [PATCH] zfs-test/mmap_seek: fix build on musl + +it needs linux/fs.h for SEEK_DATA and friends + +without linux/fs.h: + +``` +mmap_seek.c +mmap_seek.c: In function 'seek_data': +mmap_seek.c:37:40: error: 'SEEK_DATA' undeclared (first use in this function); +did you mean 'SEEK_SET'? + 37 | off_t data_offset = lseek(fd, offset, SEEK_DATA); +``` + +also it needs sys/sysmacros.h for P2ROUNDUP +without it: + +``` +mmap_seek.c: In function 'main': +mmap_seek.c:122:19: warning: +implicit declaration of function 'P2ROUNDUP' [-Wimplicit-function-declaration] + 122 | seek_hole(fd, 0, P2ROUNDUP(file_size / 2, block_size)); + | ^~~~~~~~~ +powerpc64-gentoo-linux-musl/bin/ld: mmap_seek.o: in function `main': +mmap_seek.c:(.text.startup+0x1b8): undefined reference to `P2ROUNDUP' +powerpc64-gentoo-linux-musl/bin/ld: mmap_seek.c:(.text.startup+0x1d8): + undefined reference to `P2ROUNDUP' +powerpc64-gentoo-linux-musl/bin/ld: mmap_seek.c:(.text.startup+0x21c): + undefined reference to `P2ROUNDUP' +collect2: error: ld returned 1 exit status +make[5]: *** [Makefile:754: mmap_seek] Error 1 +``` + +Closes: https://github.com/openzfs/zfs/pull/12891 +Signed-off-by: Georgy Yakovlev +--- + tests/zfs-tests/cmd/mmap_seek/mmap_seek.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c b/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c +index f476e1dba9a..bb36527aafe 100644 +--- a/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c ++++ b/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c +@@ -29,7 +29,11 @@ + #include + #include + #include ++#include + #include ++#ifdef __linux__ ++#include ++#endif + + static void + seek_data(int fd, off_t offset, off_t expected) diff --git a/sys-fs/zfs/files/2.1.2-openrc-vendor.patch b/sys-fs/zfs/files/2.1.2-openrc-vendor.patch new file mode 100644 index 000000000000..abe222aa5b84 --- /dev/null +++ b/sys-fs/zfs/files/2.1.2-openrc-vendor.patch @@ -0,0 +1,42 @@ +From 6ef28c526ba7199a3740407d764b6505618ca8ba Mon Sep 17 00:00:00 2001 +From: Peter Levine +Date: Fri, 29 Oct 2021 18:34:37 -0400 +Subject: [PATCH] Set DEFAULT_INIT_SHELL to /sbin/openrc-run for Gentoo and + Alpine + +Gentoo and Alpine always set the rc init scripts' shebang to +#!/sbin/openrc-run, whether or not openrc is installed. + +Reviewed-by: Brian Behlendorf +Signed-off-by: Peter Levine +Closes #12683 +Closes #12692 +--- + config/zfs-build.m4 | 14 +++++--------- + 1 file changed, 5 insertions(+), 9 deletions(-) + +diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 +index 27041c054c2..ec4a2026bf5 100644 +--- a/config/zfs-build.m4 ++++ b/config/zfs-build.m4 +@@ -564,15 +564,11 @@ AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [ + *) DEFAULT_INIT_SCRIPT=lsb ;; + esac + +- # On gentoo, it's possible that OpenRC isn't installed. Check if +- # /sbin/openrc-run exists, and if not, fall back to generic defaults. +- +- DEFAULT_INIT_SHELL="/bin/sh" +- AS_IF([test "$DEFAULT_INIT_SCRIPT" = "openrc"], [ +- AS_IF([test -x "/sbin/openrc-run"], +- [DEFAULT_INIT_SHELL="/sbin/openrc-run"], +- [DEFAULT_INIT_SCRIPT=lsb]) +- ]) ++ case "$VENDOR" in ++ gentoo) DEFAULT_INIT_SHELL="/sbin/openrc-run";; ++ alpine) DEFAULT_INIT_SHELL="/sbin/openrc-run";; ++ *) DEFAULT_INIT_SHELL="/bin/sh" ;; ++ esac + + AC_MSG_RESULT([$DEFAULT_INIT_SCRIPT:$DEFAULT_INIT_SHELL]) + AC_SUBST(DEFAULT_INIT_SCRIPT) diff --git a/sys-fs/zfs/files/2.1.2-scrub-timers.patch b/sys-fs/zfs/files/2.1.2-scrub-timers.patch new file mode 100644 index 000000000000..f1c5b5699f62 --- /dev/null +++ b/sys-fs/zfs/files/2.1.2-scrub-timers.patch @@ -0,0 +1,147 @@ +From 2c9844d159024d4c742d24639a218213fb53d537 Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Sat, 22 May 2021 22:27:39 -0700 +Subject: [PATCH 1/2] systemd: add weekly and monthly scrub timers + +timers can be enabled as follows: + +systemctl enable zfs-scrub-weekly@rpool.timer --now +systemctl enable zfs-scrub-monthly@datapool.timer --now + +Each timer will pull in zfs-scrub@${poolname}.service, which is not +schedule-specific. + +Signed-off-by: Georgy Yakovlev +--- + etc/systemd/system/.gitignore | 1 + + etc/systemd/system/Makefile.am | 5 ++++- + etc/systemd/system/zfs-scrub-monthly@.timer.in | 12 ++++++++++++ + etc/systemd/system/zfs-scrub-weekly@.timer.in | 12 ++++++++++++ + etc/systemd/system/zfs-scrub@.service.in | 14 ++++++++++++++ + 5 files changed, 43 insertions(+), 1 deletion(-) + create mode 100644 etc/systemd/system/zfs-scrub-monthly@.timer.in + create mode 100644 etc/systemd/system/zfs-scrub-weekly@.timer.in + create mode 100644 etc/systemd/system/zfs-scrub@.service.in + +diff --git a/etc/systemd/system/Makefile.am b/etc/systemd/system/Makefile.am +index c374a52ac..5e65e1db4 100644 +--- a/etc/systemd/system/Makefile.am ++++ b/etc/systemd/system/Makefile.am +@@ -12,7 +12,10 @@ systemdunit_DATA = \ + zfs-volume-wait.service \ + zfs-import.target \ + zfs-volumes.target \ +- zfs.target ++ zfs.target \ ++ zfs-scrub-monthly@.timer \ ++ zfs-scrub-weekly@.timer \ ++ zfs-scrub@.service + + SUBSTFILES += $(systemdpreset_DATA) $(systemdunit_DATA) + +diff --git a/etc/systemd/system/zfs-scrub-monthly@.timer.in b/etc/systemd/system/zfs-scrub-monthly@.timer.in +new file mode 100644 +index 000000000..903068468 +--- /dev/null ++++ b/etc/systemd/system/zfs-scrub-monthly@.timer.in +@@ -0,0 +1,12 @@ ++[Unit] ++Description=Monthly zpool scrub timer for %i ++Documentation=man:zpool-scrub(8) ++ ++[Timer] ++OnCalendar=monthly ++Persistent=true ++RandomizedDelaySec=1h ++Unit=zfs-scrub@%i.service ++ ++[Install] ++WantedBy=timers.target +diff --git a/etc/systemd/system/zfs-scrub-weekly@.timer.in b/etc/systemd/system/zfs-scrub-weekly@.timer.in +new file mode 100644 +index 000000000..ede699500 +--- /dev/null ++++ b/etc/systemd/system/zfs-scrub-weekly@.timer.in +@@ -0,0 +1,12 @@ ++[Unit] ++Description=Weekly zpool scrub timer for %i ++Documentation=man:zpool-scrub(8) ++ ++[Timer] ++OnCalendar=weekly ++Persistent=true ++RandomizedDelaySec=1h ++Unit=zfs-scrub@%i.service ++ ++[Install] ++WantedBy=timers.target +diff --git a/etc/systemd/system/zfs-scrub@.service.in b/etc/systemd/system/zfs-scrub@.service.in +new file mode 100644 +index 000000000..c04ac292a +--- /dev/null ++++ b/etc/systemd/system/zfs-scrub@.service.in +@@ -0,0 +1,14 @@ ++[Unit] ++Description=zpool scrub on %i ++Documentation=man:zpool-scrub(8) ++Requires=zfs.target ++After=zfs.target ++ConditionACPower=true ++ConditionPathIsDirectory=/sys/module/zfs ++ ++[Service] ++ExecStart=/bin/sh -c '\ ++if @sbindir@/zpool status %i | grep "scrub in progress"; then\ ++exec @sbindir@/zpool wait -t scrub %i;\ ++else exec @sbindir@/zpool scrub -w %i; fi' ++ExecStop=-/bin/sh -c '@sbindir@/zpool scrub -p %i 2>/dev/null || true' +-- +2.34.1 + +From 4bac4eae0345fb322337b66a9b4923e9f3f52b0f Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Fri, 29 Oct 2021 21:40:50 -0700 +Subject: [PATCH 2/2] zpool-scrub.8: add PERIODIC SCRUB section + +Signed-off-by: Georgy Yakovlev +--- + man/man8/zpool-scrub.8 | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/man/man8/zpool-scrub.8 b/man/man8/zpool-scrub.8 +index 768f71539..69ae825b6 100644 +--- a/man/man8/zpool-scrub.8 ++++ b/man/man8/zpool-scrub.8 +@@ -116,8 +116,29 @@ scanned at 100M/s, and 68.4M of that file data has been + scrubbed sequentially at 10.0M/s. + .El + .El ++.Sh PERIODIC SCRUB ++On machines using systemd, scrub timers can be enabled on per-pool basis. ++.Nm weekly ++and ++.Nm monthly ++timer units are provided. ++.Bl -tag -width Ds ++.It Xo ++.Xc ++.Nm systemctl ++.Cm enable ++.Cm zfs-scrub-\fIweekly\fB@\fIrpool\fB.timer ++.Cm --now ++.It Xo ++.Xc ++.Nm systemctl ++.Cm enable ++.Cm zfs-scrub-\fImonthly\fB@\fIotherpool\fB.timer ++.Cm --now ++.El + . + .Sh SEE ALSO ++.Xr systemd.timer 5 , + .Xr zpool-iostat 8 , + .Xr zpool-resilver 8 , + .Xr zpool-status 8 +-- +2.34.1 + -- cgit v1.2.3