[packages/lin_tape] - cleanup kernel version conditions

baggins baggins at pld-linux.org
Sun Dec 14 23:29:16 CET 2025


commit 30dc2cfb1424c3160293521a64d02bcc807cd87a
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Mon Dec 15 01:28:55 2025 +0100

    - cleanup kernel version conditions

 kernel-5.10.patch    |  20 ++++++++++
 kernel-6.1.patch     |  32 +++++++++++++++
 lin_tape.spec        |  10 ++++-
 no-distro-defs.patch | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 171 insertions(+), 2 deletions(-)
---
diff --git a/lin_tape.spec b/lin_tape.spec
index a50cce8..870095a 100644
--- a/lin_tape.spec
+++ b/lin_tape.spec
@@ -17,8 +17,11 @@ Source0:	%{pname}-%{version}.tgz
 # Source0-md5:	86e337bd1cc2da752997d74685fc4ab5
 Source1:	%{pname}.fixlist
 Patch0:		use-module-dir.patch
-Patch2:		kernel-6.15.patch
-Patch3:		kernel-6.16.patch
+Patch1:		no-distro-defs.patch
+Patch2:		kernel-5.10.patch
+Patch3:		kernel-6.1.patch
+Patch4:		kernel-6.15.patch
+Patch5:		kernel-6.16.patch
 # System Storage, Tape systems, Tape drivers and software, Tape device drivers (Linux)
 URL:		http://www.ibm.com/support/fixcentral/
 BuildRequires:	rpmbuild(macros) >= 1.701
@@ -67,8 +70,11 @@ compatible platforms.\
 %setup -q -n %{pname}-%{version}
 %undos Makefile
 %patch -P0 -p1
+%patch -P1 -p1
 %patch -P2 -p1
 %patch -P3 -p1
+%patch -P4 -p1
+%patch -P5 -p1
 
 install -p %{SOURCE1} .
 
diff --git a/kernel-5.10.patch b/kernel-5.10.patch
new file mode 100644
index 0000000..5974b8c
--- /dev/null
+++ b/kernel-5.10.patch
@@ -0,0 +1,20 @@
+--- lin_tape-3.0.71/lin_tape_scsi_tape.c.orig	2025-06-30 16:30:30.000000000 +0200
++++ lin_tape-3.0.71/lin_tape_scsi_tape.c	2025-12-15 00:49:44.833317984 +0100
+@@ -11563,7 +11563,7 @@
+ 
+ 	memset(pages, '\0', drv->supported_sg_tablesize * sizeof(struct page*));
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)
+ 	down_read(&current->mm->mmap_lock);
+ #else
+ 	down_read(&current->mm->mmap_sem);
+@@ -11586,7 +11586,7 @@
+ 	mapped_pages = get_user_pages(current, current->mm,
+ 		(ulong)user_location, number_pages, rw, 0, pages, NULL);
+ #endif
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)
+ 	up_read(&current->mm->mmap_lock);
+ #else
+ 	up_read(&current->mm->mmap_sem);
diff --git a/kernel-6.1.patch b/kernel-6.1.patch
new file mode 100644
index 0000000..e6df92c
--- /dev/null
+++ b/kernel-6.1.patch
@@ -0,0 +1,32 @@
+--- lin_tape-3.0.71/lin_tape_scsi_ioctl.h~	2025-06-30 16:30:30.000000000 +0200
++++ lin_tape-3.0.71/lin_tape_scsi_ioctl.h	2025-12-15 01:22:51.856651250 +0100
+@@ -46,6 +46,7 @@
+ #include <scsi/scsi.h>          /* scsi command definition, etc.   */
+ #include <scsi/scsi_ioctl.h>    /* support generial scsi ioctl call*/
+ #include <scsi/scsi_cmnd.h>
++#include <scsi/sg.h>
+ 
+ #include "lin_tape_tape.h"
+ 
+--- lin_tape-3.0.71/lower.c~	2025-12-15 01:06:34.000000000 +0100
++++ lin_tape-3.0.71/lower.c	2025-12-15 01:24:36.073317908 +0100
+@@ -276,7 +276,7 @@
+ 	/* Send the command */
+ 	if (pfo_cmd->source == PFO_SOURCE_PFO) {
+ 		/* SCSI Command from decide code */
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(6,0,0) || defined (RHEL96)
++#if LINUX_VERSION_CODE > KERNEL_VERSION(6,2,0)
+                 result = scsi_execute_cmd(sdev, pfo_cmd->scsi_cmd,
+ 				pfo_cmd->data_direction==DMA_TO_DEVICE? REQ_OP_DRV_OUT:REQ_OP_DRV_IN,
+ 				pfo_cmd->buffer, pfo_cmd->bufflen, pfo_cmd->timeout, pfo_cmd->retries,
+--- lin_tape-3.0.71/upper.c~	2025-12-15 01:06:34.000000000 +0100
++++ lin_tape-3.0.71/upper.c	2025-12-15 01:25:05.333317909 +0100
+@@ -936,7 +936,7 @@
+ 		return pfo_scsi_execute_req(fdev_num, cmd, data_direction,
+ 			buffer, bufflen, sshdr, timeout, retries, resid);
+ 	} else {
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(6,0,0) || defined(RHEL96)
++#if LINUX_VERSION_CODE > KERNEL_VERSION(6,2,0)
+                 return scsi_execute_cmd(sdev, cmd, data_direction==DMA_FROM_DEVICE?REQ_OP_DRV_IN:REQ_OP_DRV_OUT,
+                         buffer, bufflen, timeout, retries, NULL);
+ #else		
diff --git a/no-distro-defs.patch b/no-distro-defs.patch
new file mode 100644
index 0000000..49192ed
--- /dev/null
+++ b/no-distro-defs.patch
@@ -0,0 +1,111 @@
+--- lin_tape-3.0.71/Makefile.orig	2025-12-15 00:50:47.000000000 +0100
++++ lin_tape-3.0.71/Makefile	2025-12-15 00:56:52.103317958 +0100
+@@ -19,75 +19,12 @@
+ 
+ lin_tape-objs := join.o lin_tape_scsi_config.o lin_tape_scsi_tape.o lin_tape_scsi_trace.o \
+              lin_tape_ioctl_tape.o lin_tape_ioctl_changer.o lin_tape_extra_ioctl.o
+-RHELRELEASE := $(shell [ -f "/etc/redhat-release" ] && echo 1 || echo 0)
+-ifeq ($(RHELRELEASE), 1)
+-KERNELDIR ?= /lib/modules/$(shell uname -r)/build
+-KERNELVER = $(shell uname -r 2>/dev/null|sed "s/[\.-]/_/g"|sed "s/\([0-9]*_[0-9]*_[0-9]*_[0-9]*\).*/\1/")
+-EXTRA_CFLAGS += -DKERNELVERSION_${KERNELVER}
+-RHEL94 := $(shell grep -qi 9.4 /etc/*release && echo 1 || echo 0)
+-ifeq ($(RHEL94), 1)
+-EXTRA_CFLAGS += -DRHEL94
+-else
+-RHEL95 := $(shell grep -qi 9.5 /etc/*release && echo 1 || echo 0)
+-ifeq ($(RHEL95), 1)
+-EXTRA_CFLAGS += -DRHEL94
+-EXTRA_CFLAGS += -DRHEL95
+-else
+-RHEL96 := $(shell grep -qi 9.6 /etc/*release && echo 1 || echo 0)
+-ifeq ($(RHEL96), 1)
+-EXTRA_CFLAGS += -DRHEL94
+-EXTRA_CFLAGS += -DRHEL95
+-EXTRA_CFLAGS += -DRHEL96
+-endif
+-endif
+-endif
+-else
+-UBUNTURELEASE := $(shell [ -f "/etc/os-release" ] && grep -qi Ubuntu /etc/os-release && echo 1 || echo 0)
+-ifeq ($(UBUNTURELEASE), 1)
+-EXTRA_CFLAGS += -DUBUNTUVERSION
+-else
+-EXTRA_CFLAGS += -DSLESVERSION
+-KERNELDIR ?= /lib/modules/$(shell uname -r)/build
+-KERNELVER = $(shell uname -r 2>/dev/null|sed "s/[\.-]/_/g"|sed "s/\([0-9]*_[0-9]*_[0-9]*_[0-9]*\).*/\1/")
+-EXTRA_CFLAGS += -DSLESKERNEL_${KERNELVER}
+-SLESSP2 := $(shell grep -qi SP2 /etc/*release && echo 1 || echo 0)
+-SLESSP5 := $(shell grep -qi SP5 /etc/*release && echo 1 || echo 0)
+-SLES15SP6 := $(shell grep -qi "15 SP6" /etc/*release && echo 1 || echo 0)
+-ifeq ($(SLESSP2), 1)
+-EXTRA_CFLAGS += -DSLESSP2
+-endif
+-ifeq ($(SLESSP5), 1)
+-EXTRA_CFLAGS += -DSLESSP5
+-endif
+-ifeq ($(SLES15SP6), 1)
+-EXTRA_CFLAGS += -DSLES15SP6
+-endif
+-endif
+-endif
+ 
+ ifeq ($(SFMP), 1)
+ EXTRA_CFLAGS += -DSFMPENABLED
+ endif
+ 
+ PROC := $(shell uname -m)
+-ifeq ($(UBUNTURELEASE), 0)
+-ifeq ($(PROC), ppc64)
+-EXTRA_CFLAGS += -m64
+-endif
+-
+-ifeq ($(PROC), powerpc64)
+-EXTRA_CFLAGS += -m64
+-endif
+-
+-ifeq ($(PROC), powerpc)
+-EXTRA_CFLAGS += -m64 -msoft-float
+-LDFLAGS += -melf64ppc
+-endif
+-
+-ifeq ($(PROC), x86_64)
+-EXTRA_CFLAGS += -mcmodel=kernel
+-endif
+-endif
+ 
+ VERSION := $(word 1,$(VERSIONRELEASE))
+ RELEASE := $(word 2,$(VERSIONRELEASE))
+--- lin_tape-3.0.71/upper.c~	2025-06-30 16:30:30.000000000 +0200
++++ lin_tape-3.0.71/upper.c	2025-12-15 01:03:04.216651273 +0100
+@@ -312,9 +312,9 @@
+ 
+ #ifdef KERNELVERSION_5_14_0_70 
+ 	if (blk_verify_command(pfo_cmd->scsi_cmd, mode & FMODE_WRITE))
+-#elif defined (UBUNTUVERSION) | LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0) || (LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0) && (LINUX_VERSION_CODE < KERNEL_VERSION(5, 14, 1) || defined(SLESSP5)))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0)
+ 	if (!scsi_cmd_allowed(pfo_cmd->scsi_cmd, mode & FMODE_WRITE))
+-#elif LINUX_VERSION_CODE > KERNEL_VERSION(3,12,0) && (defined(SLESVERSION) || defined(UBUNTUVERSION))
++#elif LINUX_VERSION_CODE > KERNEL_VERSION(3,12,0)
+ 	if (blk_verify_command(pfo_cmd->scsi_cmd, mode & FMODE_WRITE))
+ #else
+ 	/* RHEL 6.4 and beyond */
+--- lin_tape-3.0.71/lin_tape_scsi_tape.c~	2025-12-15 01:06:34.000000000 +0100
++++ lin_tape-3.0.71/lin_tape_scsi_tape.c	2025-12-15 01:13:10.333317926 +0100
+@@ -11568,15 +11568,7 @@
+ #else
+ 	down_read(&current->mm->mmap_sem);
+ #endif
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0) || defined(RHEL96)
+-        mapped_pages = get_user_pages((ulong)user_location, number_pages,
+-                                              rw, pages);
+-#elif LINUX_VERSION_CODE == KERNEL_VERSION(4,4,73) \
+-	|| (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,92) && LINUX_VERSION_CODE < KERNEL_VERSION(4,4,103)) \
+-	|| defined(SLESKERNEL_4_4_103_6) \
+-	|| (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,114) && !defined(SLESSP2)) \
+-	|| (LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) && defined(SLESSP2)) \
+-	|| defined (SLESKERNEL_4_4_103_94)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0)
+ 	mapped_pages = get_user_pages((unsigned long)user_location, number_pages,
+ 			                      rw, pages, NULL);
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/lin_tape.git/commitdiff/30dc2cfb1424c3160293521a64d02bcc807cd87a



More information about the pld-cvs-commit mailing list