From 83240547183ca95df1bb2a5217e158acf1e29eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Tue, 3 Apr 2018 14:16:16 +0200 Subject: [PATCH] rebase SPL on top of debian/0.7.6-1 --- spl-debian | 2 +- .../0001-remove-DKMS-and-module-build.patch | 33 ++-- ...0002-Linux-4.15-compat-timer-updates.patch | 143 ------------------ ...-Fix-Debian-packaging-on-ARMv7-ARM64.patch | 65 -------- spl-patches/0004-Tag-spl-0.7.6.patch | 63 -------- spl-patches/series | 3 - 6 files changed, 21 insertions(+), 288 deletions(-) delete mode 100644 spl-patches/0002-Linux-4.15-compat-timer-updates.patch delete mode 100644 spl-patches/0003-Fix-Debian-packaging-on-ARMv7-ARM64.patch delete mode 100644 spl-patches/0004-Tag-spl-0.7.6.patch diff --git a/spl-debian b/spl-debian index 4a6efb8..d169ca2 160000 --- a/spl-debian +++ b/spl-debian @@ -1 +1 @@ -Subproject commit 4a6efb89ab2d96761f5f1d5faea0cb8d1e5a8dd0 +Subproject commit d169ca25d5546467bd92a00f4d953dbc2d8e3de1 diff --git a/spl-patches/0001-remove-DKMS-and-module-build.patch b/spl-patches/0001-remove-DKMS-and-module-build.patch index 20df65a..35ad5f3 100644 --- a/spl-patches/0001-remove-DKMS-and-module-build.patch +++ b/spl-patches/0001-remove-DKMS-and-module-build.patch @@ -8,16 +8,16 @@ Content-Transfer-Encoding: 8bit Signed-off-by: Fabian Grünbichler --- - debian/control.in | 24 -------------------- + debian/control.in | 30 ------------------------ debian/control | 1 - - debian/rules | 68 +------------------------------------------------------ - 3 files changed, 1 insertion(+), 92 deletions(-) + debian/rules | 70 ++----------------------------------------------------- + 3 files changed, 2 insertions(+), 99 deletions(-) diff --git a/debian/control.in b/debian/control.in -index b910704..786e689 100644 +index 02d3182..5fd81aa 100644 --- a/debian/control.in +++ b/debian/control.in -@@ -8,40 +8,16 @@ Build-Depends: autogen, +@@ -8,46 +8,16 @@ Build-Depends: autogen, autotools-dev, debhelper (>= 9), dh-autoreconf, @@ -25,13 +25,19 @@ index b910704..786e689 100644 libtool Standards-Version: 4.1.2 Homepage: http://www.zfsonlinux.org/ - Vcs-Git: git://anonscm.debian.org/pkg-zfsonlinux/spl.git - Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-zfsonlinux/spl.git + Vcs-Git: git@salsa.debian.org:zfsonlinux-team/spl.git + Vcs-Browser: https://salsa.debian.org/zfsonlinux-team/spl -Package: spl-dkms -Architecture: all --Depends: dkms (>> 2.2.1.0), file, libc-dev, libelf-dev, lsb-release, ${misc:Depends} --Recommends: spl (>= ${source:Upstream-Version}) +-Depends: dkms (>> 2.2.1.0), +- file, +- libc-dev, +- libelf-dev, +- lsb-release, +- ${misc:Depends} +-Recommends: spl (>= ${source:Upstream-Version}), +- @LINUX_COMPAT@ -Provides: spl-modules -Description: Solaris Porting Layer kernel modules for Linux - The Solaris Porting Layer (SPL) is a Linux kernel module which provides @@ -59,7 +65,7 @@ index b910704..786e689 100644 The Solaris Porting Layer (SPL) is a Linux kernel module which provides many of the Solaris kernel APIs. This shim layer makes it possible to diff --git a/debian/control b/debian/control -index b910704..9ddc12d 100644 +index c3abf8d..455c34d 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,6 @@ Build-Depends: autogen, @@ -71,7 +77,7 @@ index b910704..9ddc12d 100644 Standards-Version: 4.1.2 Homepage: http://www.zfsonlinux.org/ diff --git a/debian/rules b/debian/rules -index b2fc86c..a474ca4 100755 +index c7f2608..bca58f7 100755 --- a/debian/rules +++ b/debian/rules @@ -14,12 +14,8 @@ ifndef KVERS @@ -87,7 +93,7 @@ index b2fc86c..a474ca4 100755 + dh $@ --with autoreconf --parallel override_dh_auto_configure: - @cp debian/control.in debian/control + sed "s/@LINUX_COMPAT@/linux-libc-dev \(< $(shell debian/get_next.sh)\)/" debian/control.in > debian/control @@ -45,69 +41,7 @@ override_dh_auto_install: @# This creates the $(CURDIR)/$(NAME)-$(VERSION)/ tree. $(MAKE) distdir @@ -108,7 +114,7 @@ index b2fc86c..a474ca4 100755 override_dh_auto_clean: dh_auto_clean @if test -e META.orig; then mv META.orig META; fi - cp debian/control.in debian/control +- sed "s/@LINUX_COMPAT@/linux-libc-dev \(< $(shell debian/get_next.sh)\)/" debian/control.in > debian/control - -# ------------ - @@ -158,6 +164,7 @@ index b2fc86c..a474ca4 100755 - dh_md5sums -p${pmodules} - - dh_builddeb -p${pmodules} ++ cp debian/control.in debian/control -- 2.14.2 diff --git a/spl-patches/0002-Linux-4.15-compat-timer-updates.patch b/spl-patches/0002-Linux-4.15-compat-timer-updates.patch deleted file mode 100644 index 0b15973..0000000 --- a/spl-patches/0002-Linux-4.15-compat-timer-updates.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Tony Hutter -Date: Thu, 21 Dec 2017 10:56:32 -0800 -Subject: [PATCH] Linux 4.15 compat: timer updates -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Use timer_setup() macro and new timeout function definition. - -Reviewed-by: Brian Behlendorf -Signed-off-by: Tony Hutter -Closes #670 -Closes #671 -(cherry picked from commit 71513af020c0522560dc86668db46b49068787b3) -Signed-off-by: Fabian Grünbichler ---- - module/spl/spl-taskq.c | 27 +++++++++++++++++++++++++-- - config/spl-build.m4 | 34 ++++++++++++++++++++++++++++++++++ - 2 files changed, 59 insertions(+), 2 deletions(-) - -diff --git a/module/spl/spl-taskq.c b/module/spl/spl-taskq.c -index 7cad9f7..89c53a5 100644 ---- a/module/spl/spl-taskq.c -+++ b/module/spl/spl-taskq.c -@@ -209,9 +209,9 @@ task_done(taskq_t *tq, taskq_ent_t *t) - * add it to the priority list in order for immediate processing. - */ - static void --task_expire(unsigned long data) -+task_expire_impl(taskq_ent_t *t) - { -- taskq_ent_t *w, *t = (taskq_ent_t *)data; -+ taskq_ent_t *w; - taskq_t *tq = t->tqent_taskq; - struct list_head *l; - unsigned long flags; -@@ -245,6 +245,21 @@ task_expire(unsigned long data) - wake_up(&tq->tq_work_waitq); - } - -+#ifdef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST -+static void -+task_expire(struct timer_list *tl) -+{ -+ taskq_ent_t *t = from_timer(t, tl, tqent_timer); -+ task_expire_impl(t); -+} -+#else -+static void -+task_expire(unsigned long data) -+{ -+ task_expire_impl((taskq_ent_t *)data); -+} -+#endif -+ - /* - * Returns the lowest incomplete taskqid_t. The taskqid_t may - * be queued on the pending list, on the priority list, on the -@@ -590,7 +605,9 @@ taskq_dispatch(taskq_t *tq, task_func_t func, void *arg, uint_t flags) - t->tqent_func = func; - t->tqent_arg = arg; - t->tqent_taskq = tq; -+#ifndef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST - t->tqent_timer.data = 0; -+#endif - t->tqent_timer.function = NULL; - t->tqent_timer.expires = 0; - t->tqent_birth = jiffies; -@@ -640,7 +657,9 @@ taskq_dispatch_delay(taskq_t *tq, task_func_t func, void *arg, - t->tqent_func = func; - t->tqent_arg = arg; - t->tqent_taskq = tq; -+#ifndef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST - t->tqent_timer.data = (unsigned long)t; -+#endif - t->tqent_timer.function = task_expire; - t->tqent_timer.expires = (unsigned long)expire_time; - add_timer(&t->tqent_timer); -@@ -732,7 +751,11 @@ taskq_init_ent(taskq_ent_t *t) - { - spin_lock_init(&t->tqent_lock); - init_waitqueue_head(&t->tqent_waitq); -+#ifdef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST -+ timer_setup(&t->tqent_timer, NULL, 0); -+#else - init_timer(&t->tqent_timer); -+#endif - INIT_LIST_HEAD(&t->tqent_list); - t->tqent_id = 0; - t->tqent_func = NULL; -diff --git a/config/spl-build.m4 b/config/spl-build.m4 -index accf675..25013b5 100644 ---- a/config/spl-build.m4 -+++ b/config/spl-build.m4 -@@ -56,6 +56,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [ - SPL_AC_WAIT_QUEUE_HEAD_ENTRY - SPL_AC_KERNEL_WRITE - SPL_AC_KERNEL_READ -+ SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST - ]) - - AC_DEFUN([SPL_AC_MODULE_SYMVERS], [ -@@ -1755,3 +1756,36 @@ AC_DEFUN([SPL_AC_KERNEL_READ], [ - ]) - EXTRA_KCFLAGS="$tmp_flags" - ]) -+ -+dnl # -+dnl # 4.15 API change -+dnl # https://lkml.org/lkml/2017/11/25/90 -+dnl # Check if timer_list.func get passed a timer_list or an unsigned long -+dnl # (older kernels). Also sanity check the from_timer() and timer_setup() -+dnl # macros are available as well, since they will be used in the same newer -+dnl # kernels that support the new timer_list.func signature. -+dnl # -+AC_DEFUN([SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST], [ -+ AC_MSG_CHECKING([whether timer_list.function gets a timer_list]) -+ tmp_flags="$EXTRA_KCFLAGS" -+ EXTRA_KCFLAGS="-Werror" -+ SPL_LINUX_TRY_COMPILE([ -+ #include -+ void task_expire(struct timer_list *tl) {} -+ ],[ -+ #ifndef from_timer -+ #error "No from_timer() macro" -+ #endif -+ -+ struct timer_list timer; -+ timer.function = task_expire; -+ timer_setup(&timer, NULL, 0); -+ ],[ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE(HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST, 1, -+ [timer_list.function gets a timer_list]) -+ ],[ -+ AC_MSG_RESULT(no) -+ ]) -+ EXTRA_KCFLAGS="$tmp_flags" -+]) --- -2.14.2 - diff --git a/spl-patches/0003-Fix-Debian-packaging-on-ARMv7-ARM64.patch b/spl-patches/0003-Fix-Debian-packaging-on-ARMv7-ARM64.patch deleted file mode 100644 index 7cdd5ca..0000000 --- a/spl-patches/0003-Fix-Debian-packaging-on-ARMv7-ARM64.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: LOLi -Date: Thu, 18 Jan 2018 19:14:18 +0100 -Subject: [PATCH] Fix Debian packaging on ARMv7/ARM64 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When building packages on Debian-based systems specify the target -architecture used by 'alien' to convert .rpm packages into .deb: this -avoids detecting an incorrect value which results in the following -errors: - -.aarch64.rpm is for architecture aarch64 ; the package cannot be built on this system -.armv7l.rpm is for architecture armel ; the package cannot be built on this system - -Reviewed-by: Brian Behlendorf -Reviewed-by: George Melikov -Signed-off-by: loli10K -Closes zfsonlinux/zfs#7046 -Closes #678 -(cherry picked from commit 9ee1fc8b4cb7fdcda88e161d9fc2bbe50427972c) -Signed-off-by: Fabian Grünbichler ---- - config/deb.am | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/config/deb.am b/config/deb.am -index e05a175..f745c91 100644 ---- a/config/deb.am -+++ b/config/deb.am -@@ -32,24 +32,27 @@ deb-kmod: deb-local rpm-kmod - name=${PACKAGE}; \ - version=${VERSION}-${RELEASE}; \ - arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \ -+ debarch=`$(DPKG) --print-architecture`; \ - pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \ -- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \ -+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \ - $(RM) $$pkg1 - - deb-dkms: deb-local rpm-dkms - name=${PACKAGE}; \ - version=${VERSION}-${RELEASE}; \ - arch=`$(RPM) -qp $${name}-dkms-$${version}.src.rpm --qf %{arch} | tail -1`; \ -+ debarch=`$(DPKG) --print-architecture`; \ - pkg1=$${name}-dkms-$${version}.$${arch}.rpm; \ -- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \ -+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \ - $(RM) $$pkg1 - - deb-utils: deb-local rpm-utils - name=${PACKAGE}; \ - version=${VERSION}-${RELEASE}; \ - arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ -+ debarch=`$(DPKG) --print-architecture`; \ - pkg1=$${name}-$${version}.$${arch}.rpm; \ -- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \ -+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \ - $(RM) $$pkg1 - - deb: deb-kmod deb-dkms deb-utils --- -2.14.2 - diff --git a/spl-patches/0004-Tag-spl-0.7.6.patch b/spl-patches/0004-Tag-spl-0.7.6.patch deleted file mode 100644 index 2e94c3c..0000000 --- a/spl-patches/0004-Tag-spl-0.7.6.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Tony Hutter -Date: Thu, 1 Feb 2018 10:02:27 -0800 -Subject: [PATCH] Tag spl-0.7.6 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -META file and changelog updated. - -Signed-off-by: Tony Hutter -(cherry picked from commit 3cc0ea2a461788408aa2325e8ecb4e7f209633a8) -Signed-off-by: Fabian Grünbichler ---- - rpm/generic/spl-kmod.spec.in | 3 +++ - rpm/generic/spl.spec.in | 3 +++ - META | 2 +- - 3 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/rpm/generic/spl-kmod.spec.in b/rpm/generic/spl-kmod.spec.in -index af7132d..eb38c21 100644 ---- a/rpm/generic/spl-kmod.spec.in -+++ b/rpm/generic/spl-kmod.spec.in -@@ -167,6 +167,9 @@ chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* - rm -rf $RPM_BUILD_ROOT - - %changelog -+* Thu Feb 01 2018 Tony Hutter - 0.7.6-1 -+- Released 0.7.6-1, detailed release notes are available at: -+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6 - * Mon Dec 18 2017 Tony Hutter - 0.7.5-1 - - Released 0.7.5-1, detailed release notes are available at: - - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5 -diff --git a/rpm/generic/spl.spec.in b/rpm/generic/spl.spec.in -index f619475..0338a47 100644 ---- a/rpm/generic/spl.spec.in -+++ b/rpm/generic/spl.spec.in -@@ -34,6 +34,9 @@ make install DESTDIR=%{?buildroot} - %{_mandir}/man5/* - - %changelog -+* Thu Feb 01 2018 Tony Hutter - 0.7.6-1 -+- Released 0.7.6-1, detailed release notes are available at: -+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6 - * Mon Dec 18 2017 Tony Hutter - 0.7.5-1 - - Released 0.7.5-1, detailed release notes are available at: - - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5 -diff --git a/META b/META -index c66cd11..4b0c0bb 100644 ---- a/META -+++ b/META -@@ -1,7 +1,7 @@ - Meta: 1 - Name: spl - Branch: 1.0 --Version: 0.7.5 -+Version: 0.7.6 - Release: 1 - Release-Tags: relext - License: GPL --- -2.14.2 - diff --git a/spl-patches/series b/spl-patches/series index ce9c82d..20724b7 100644 --- a/spl-patches/series +++ b/spl-patches/series @@ -1,4 +1 @@ 0001-remove-DKMS-and-module-build.patch -0002-Linux-4.15-compat-timer-updates.patch -0003-Fix-Debian-packaging-on-ARMv7-ARM64.patch -0004-Tag-spl-0.7.6.patch