summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Severance2023-12-19 00:56:55 -0500
committerChris Severance2023-12-19 00:56:55 -0500
commitfda929427fc1878a666fdddbbea2a4a1530b0f15 (patch)
tree974c1d267ea91eb2186c46efbf111d003484221b
parent5114491c0f367e7112d5605a785dbdd5722d5c4c (diff)
downloadaur-perle-serial.tar.gz
autu: Update to 3.9.2.4-6
-rw-r--r--.SRCINFO9
-rw-r--r--0008-kernel-6.0-set_termios-const-ktermios.patch2
-rw-r--r--0009-kernel-6.6-struct-tty_operations-write-size_t.patch21
-rw-r--r--PKGBUILD46
4 files changed, 57 insertions, 21 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 40041f62758e..fc5d73940458 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = perle-serial
pkgdesc = kernel module driver for Perle UltraPort SI Express PCI-RAS modem SPEED LE multi I/O serial parallel RS-232 422 485 port
pkgver = 3.9.2.4
- pkgrel = 5
+ pkgrel = 6
url = https://www.perle.com/downloads/mp_speedle.shtml
install = perle-serial-install.sh
arch = i686
@@ -27,6 +27,7 @@ pkgbase = perle-serial
source = 0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch
source = 0007-kernel-6.0-serial_UART_XMIT_SIZE.patch
source = 0008-kernel-6.0-set_termios-const-ktermios.patch
+ source = 0009-kernel-6.6-struct-tty_operations-write-size_t.patch
md5sums = 85e9617af62fcab55c684fa8e4b26987
md5sums = 52f87acfeb5f5820a74ad6aa74d18acf
md5sums = 6dac46dc8f094dd8f8b760a68414bd0b
@@ -36,7 +37,8 @@ pkgbase = perle-serial
md5sums = 47a81ca7f524a3e86abb72ae872bac74
md5sums = 128ee03b62d13384a249f6f6244d0214
md5sums = 3058470a7727ad05608a292d4850e052
- md5sums = 4e9c319ae14958bee4b96ee732e972c9
+ md5sums = ac437dd477d593c042af2752d1dfaf33
+ md5sums = b83c590138dcb1c23ad523bcbeb7ad72
sha256sums = d9d61a941ecfd2ff41d5450557eb9071d934497dbd10229e97c8f88b48cb9a58
sha256sums = 691e0d8d348ab9f19f0398ff79e0d4780d5110e3dd11acf3261e3f73b2983ea1
sha256sums = 31e0d244d22b16d2c0b783e38bac2d96a53cbe0ce14f2fe11142a8691ce952aa
@@ -46,6 +48,7 @@ pkgbase = perle-serial
sha256sums = 0c942db9e9a5f41873cc2ba6edae3372da672e8f82ea5c1266a2c905d4373319
sha256sums = 4c9e99b780353f270b96e57cd25e4ebf8e3058fa44105422ada42eb87cf798b2
sha256sums = 517e2aa68ee91bf2d8c0d6896dee2367cbc29f98ed5a3eb8392ca32028cd9b84
- sha256sums = 13b41be744f62b6c56b0b4bfcbae1707fefe6eb95d4f688e55eb99fb771d736a
+ sha256sums = 9780f642f30b0870c78864418f5a46bc189f27249eba312bec91538f622c2334
+ sha256sums = 9c93b5166e4b13b7a2cc39868dc578a621bbe07d7295a4d10d89328cf264d055
pkgname = perle-serial
diff --git a/0008-kernel-6.0-set_termios-const-ktermios.patch b/0008-kernel-6.0-set_termios-const-ktermios.patch
index 772dc359e85a..6b9aa983a7d6 100644
--- a/0008-kernel-6.0-set_termios-const-ktermios.patch
+++ b/0008-kernel-6.0-set_termios-const-ktermios.patch
@@ -8,7 +8,7 @@ diff -pNaru5 a/pserial/perle-serial.c b/pserial/perle-serial.c
}
-#if (LINUX_VERSION_CODE > 0x20612) // 2.6.18
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)
+static void ps_set_termios(struct tty_struct *tty, const struct ktermios *old_termios)
+#elif (LINUX_VERSION_CODE > 0x20612) // 2.6.18
static void ps_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
diff --git a/0009-kernel-6.6-struct-tty_operations-write-size_t.patch b/0009-kernel-6.6-struct-tty_operations-write-size_t.patch
new file mode 100644
index 000000000000..dbd8b090bcd5
--- /dev/null
+++ b/0009-kernel-6.6-struct-tty_operations-write-size_t.patch
@@ -0,0 +1,21 @@
+diff -pNaru5 a/pserial/perle-serial.c b/pserial/perle-serial.c
+--- a/pserial/perle-serial.c 2023-12-19 00:14:42.357856502 -0500
++++ b/pserial/perle-serial.c 2023-12-19 00:14:51.337954324 -0500
+@@ -2158,12 +2158,17 @@ static int ps_write(struct tty_struct *
+ }
+
+ #else // linux kernel is at least 2.6.10 - write prototype has "from_user"
+ // removed from parameter list.
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6,6,0)
+ static int ps_write(struct tty_struct * tty,
+ const unsigned char *buf, int count)
++#else
++static ssize_t ps_write(struct tty_struct * tty,
++ const unsigned char *buf, size_t count)
++#endif
+ {
+ int c, ret = 0;
+ struct ps_async_struct *info = (struct ps_async_struct *)tty->driver_data;
+ unsigned long flags;
+
diff --git a/PKGBUILD b/PKGBUILD
index 8852563436e4..401487bfafdb 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,6 +3,8 @@
_opt_DKMS=1 # This can be toggled between installs
_opt_PARALLEL=0 # 0 for SPEED without parallel port, 1 to enable parallel support
+#export KERNELRELEASE="$(basename $(dirname /usr/lib/modules/6.6.*/modules.alias))"
+
# Todo: /dev/ttyPS* should be created dynamically instead of all at once
# See /etc/perle-serial-setultrap.sh for persistent port modes
@@ -79,7 +81,7 @@ pkgname='perle-serial'
#_pkgver='3.9.0-14'
_pkgver='3.9.2-4'
pkgver="${_pkgver//-/.}"
-pkgrel='5'
+pkgrel='6'
pkgdesc='kernel module driver for Perle UltraPort SI Express PCI-RAS modem SPEED LE multi I/O serial parallel RS-232 422 485 port'
arch=('i686' 'x86_64')
url='https://www.perle.com/downloads/mp_speedle.shtml'
@@ -100,6 +102,7 @@ source=(
'0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch'
'0007-kernel-6.0-serial_UART_XMIT_SIZE.patch'
'0008-kernel-6.0-set_termios-const-ktermios.patch'
+ '0009-kernel-6.6-struct-tty_operations-write-size_t.patch'
)
md5sums=('85e9617af62fcab55c684fa8e4b26987'
'52f87acfeb5f5820a74ad6aa74d18acf'
@@ -110,7 +113,8 @@ md5sums=('85e9617af62fcab55c684fa8e4b26987'
'47a81ca7f524a3e86abb72ae872bac74'
'128ee03b62d13384a249f6f6244d0214'
'3058470a7727ad05608a292d4850e052'
- '4e9c319ae14958bee4b96ee732e972c9')
+ 'ac437dd477d593c042af2752d1dfaf33'
+ 'b83c590138dcb1c23ad523bcbeb7ad72')
sha256sums=('d9d61a941ecfd2ff41d5450557eb9071d934497dbd10229e97c8f88b48cb9a58'
'691e0d8d348ab9f19f0398ff79e0d4780d5110e3dd11acf3261e3f73b2983ea1'
'31e0d244d22b16d2c0b783e38bac2d96a53cbe0ce14f2fe11142a8691ce952aa'
@@ -120,7 +124,8 @@ sha256sums=('d9d61a941ecfd2ff41d5450557eb9071d934497dbd10229e97c8f88b48cb9a58'
'0c942db9e9a5f41873cc2ba6edae3372da672e8f82ea5c1266a2c905d4373319'
'4c9e99b780353f270b96e57cd25e4ebf8e3058fa44105422ada42eb87cf798b2'
'517e2aa68ee91bf2d8c0d6896dee2367cbc29f98ed5a3eb8392ca32028cd9b84'
- '13b41be744f62b6c56b0b4bfcbae1707fefe6eb95d4f688e55eb99fb771d736a')
+ '9780f642f30b0870c78864418f5a46bc189f27249eba312bec91538f622c2334'
+ '9c93b5166e4b13b7a2cc39868dc578a621bbe07d7295a4d10d89328cf264d055')
_opt_SERIAL=1 # This is for bug testing dkms only. All cards have serial ports so this should always be enabled.
@@ -188,6 +193,21 @@ prepare() {
-e '/\*\.o\.cmd/ s:^.*$:& *.symvers *.order *.mod.c .*.ko.cmd .*.o.d .cache.mk\n\trm -rf .tmp_versions:g' \
-e '# Switch SUBDIRS= to M= for Kernel 5.4' \
-e 's:SUBDIRS=:M=$(PWD) &:g' \
+ -e '/^KERNEL_/ s:shell uname -r:shell echo "$(KERNELRELEASE)":g' \
+ -e '# No DKMS instructions say to do this but it works and keeps the MAKE line real simple' \
+ -e 's:shell uname -r:KERNELRELEASE:g' \
+ -e '# DKMS sets KERNELRELEASE which accidentally launches phase 2 of this Makefile' \
+ -e '# Fix by changing the detection var.' \
+ -e '# SUBDIRS makes more sense to me because I can see it in the Makefile!' \
+ -e 's:^ifeq (\$(KERNELRELEASE),):ifeq (\$(SUBDIRS),):g' \
+ -e '# Disable stuff only used for make install' \
+ -e '/^base =/,/^$/ d' \
+ -e '# Disable non kernel utilities' \
+ -e 's:^#UTILS:# &:g' \
+ -e '# Move utils to separate target' \
+ -e '/^\s*all:/ s:$(UTILS).*$::g' \
+ -e 's@^install:@utils: $(UTILS)\n\n&@g' \
+ -e '1i KERNELRELEASE?=$(shell uname -r)' \
-i 'pserial/Makefile' 'pparport26/Makefile'
! test -s 'pserial/Makefile.Arch' || echo "${}"
! test -s 'pparport26/Makefile.Arch' || echo "${}"
@@ -233,6 +253,10 @@ prepare() {
# diff -pNaru5 'a' 'b' > '0008-kernel-6.0-set_termios-const-ktermios.patch'
patch -Nup1 -i "${srcdir}/0008-kernel-6.0-set_termios-const-ktermios.patch"
+ #cd '..'; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0009-kernel-6.6-struct-tty_operations-write-size_t.patch'
+ patch -Nup1 -i "${srcdir}/0009-kernel-6.6-struct-tty_operations-write-size_t.patch"
+
set +u
}
@@ -244,7 +268,7 @@ build() {
make -C 'pparport26' -s -j1
#fi
#if [ "${_opt_SERIAL}" -ne 0 ]; then
- make -C 'pserial' -s -j1 # too small for parallel make
+ make -C 'pserial' -s -j1 all utils # too small for parallel make
#fi
set +u
}
@@ -284,7 +308,7 @@ EOF
) > "${pkgdir}/etc/perle-serial-setultrap.sh"
sed -e 's:/bin/:/usr/bin/:g' -e 's:/usr/usr/:/usr/:g' -i "${pkgdir}/etc/perle-serial-setultrap.sh"
chmod 744 "${pkgdir}/etc/perle-serial-setultrap.sh"
- rm -r "${pkgdir}/UNKONWN" "${pkgdir}/etc/init.d"
+ rm -rf "${pkgdir}/UNKONWN" "${pkgdir}/etc/init.d"
# Install persistent settings service
install -Dm644 <(cat << EOF
# Automatically generated by ${pkgname}-${pkgver} PKGBUILD from Arch Linux AUR
@@ -375,18 +399,6 @@ EOF
fi
# sed 'a' can't add leading tabs so we add them here. It's also handy because this guarantees tabs not spaces.
sed -e 's:^make:\t&:g' -i "${_dkms}/Makefile"
- sed -e '/^KERNEL_/ s:shell uname -r:shell echo "$(KERNELRELEASE)":g' \
- -e '# No DKMS instructions say to do this but it works and keeps the MAKE line real simple' \
- -e 's:shell uname -r:KERNELRELEASE:g' \
- -e '# DKMS sets KERNELRELEASE which accidentally launches phase 2 of this Makefile' \
- -e '# Fix by changing the detection var.' \
- -e '# SUBDIRS makes more sense to me because I can see it in the Makefile!' \
- -e 's:^ifeq (\$(KERNELRELEASE),):ifeq (\$(SUBDIRS),):g' \
- -e '# Disable stuff only used for make install' \
- -e '/^base =/,/^$/ d' \
- -e '# Disable non kernel utilities' \
- -e 's:^UTILS:# &:g' \
- -i "${_dkms}"/*/'Makefile'
rm "${_dkms}"/*/*.sh "${_dkms}"/*/rc.*
if [ "${_opt_SERIAL}" -ne 0 ]; then
make -s -C "${_dkms}/pserial" clean KERNELRELEASE="$(uname -r)"