summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD150
1 files changed, 135 insertions, 15 deletions
diff --git a/PKGBUILD b/PKGBUILD
index ec88aa200305..04014a15d765 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,11 +5,19 @@
# Digi bug: change literal "dgnc" to DRVSTR or PROCSTR
# Digi bug: viewing /proc/dgnc/0/[0-9]/sniff hangs terminal
+# Digi bug: multiple PCI cards not fully supported. Some cards may be non functional. Boot over and over to get them all to work.
+# Digi bug: Non functional in 5.15 even with just one card
+
+# Stopped working after kernel version 5.14.0: /dev/ttyn1a: No such device or address
+# also works not well in 5.10. rmmod modprobe doesn't fix it. Must reboot over and over until it's fixed.
+# Pretty much dead
_opt_DKMS=1 # This can be toggled between installs
_opt_defaultmode="0660" # default: 0600
_opt_defaultgroup="uucp" # default: root
+#export KERNELRELEASE="$(basename $(dirname /usr/lib/modules/5.10.*/modules.alias))"
+
# ls -l /dev | grep ',' | sort -n -k 5.1 | less
set -u
@@ -17,22 +25,65 @@ pkgname='digi-dgnc'
#_pkgver='1.3-28'; _dl='40002369_G.tgz'
_pkgver='1.3-29'; _dl='40002369_H.src.rpm'
pkgver="${_pkgver//-/.}"
-pkgrel=1
-pkgdesc='tty driver for Digi Neo and legacy ClassicBoard PCI PCIe serial port'
+pkgrel='8'
+pkgdesc='tty driver for Digi Neo and legacy ClassicBoard PCI PCIe RS-232 serial port'
arch=('i686' 'x86_64')
url='https://www.digi.com/'
+# https://hub.digi.com/support/products/infrastructure-management/
license=('GPL')
-options=('!strip')
+options=('!strip' '!buildflags')
install="${pkgname}-install.sh"
_srcdir="${pkgname##*-}-${pkgver%.*}"
source=(
"${pkgname##*-}-${pkgver}-${_dl}::http://ftp1.digi.com/support/driver/${_dl}"
'0000-Kernel-4-14-DRIVER-ATTR.patch' # https://patchwork.kernel.org/patch/9851919/ Available since 3.11-rc2
'0001-Kernel-4-15-timers.patch'
+ '0002-kernel-5.0.0-do_gettimeofday.patch'
+ '0003-kernel-5.6--proc_dir_entry-proc_ops.patch'
+ '0004-kernel-5.12-MODULE_SUPPORTED_DEVICE.patch'
+ '0005-kernel-5.13-dropped-tty_check_change.patch'
+ '0006-kernel-5.14-task_struct.state-unsigned-tty.patch'
+ '0007-kernel-5.15-alloc_tty_driver-put_tty_driver.patch'
+ '0008-kernel-6.1-remove-TTY_MAGIC.patch'
+ '0009-kernel-5.17-change-PDE_DATA.patch'
+ '0010-kernel-6.1-INIT_C_CC-termios_internal.patch'
+ '0011-kernel-6.0-set_termios-const-ktermios.patch'
+ '0012-kernel-6.4-class_create-1arg.patch'
+ '0013-kernel-6.4-DEFINE_SEMAPHORE-2arg.patch'
+ '0014-kernel-6.6-struct-tty_operations-write-size_t.patch'
)
+md5sums=('6171349852f6d02228d6e30c79b7a434'
+ 'a171e9ea1a4ff8340c3c58b303632edf'
+ '6c16c3c24c79fb558bcf27f780829c75'
+ '8e46a778c648ab4f0ca63a337d36df60'
+ '394d24a150676d8123300d6715b81fb8'
+ '44b0a7b0ab4dbe661b822fcba9423121'
+ '98f1684623d45f66e42f78e5ab8fd8c2'
+ '89de6a694ecf827a3358bcd8aea03a6a'
+ '58d75d8f86830d09ba8754d4e03a6a9d'
+ '7ceda3eaa776322b2042de8d159535ea'
+ '9371ea6968666c58413a463fcf341d1f'
+ '53bcd11e5e4acbd0466b3ffdda3b263b'
+ '6475487a9415d3dc7ece9dd888cec92c'
+ '7824cfd37ca3c7dd27e911c679f8256c'
+ 'bbae50830fad8e9e2b674078c2770aee'
+ 'b1584c28e0e1d6741ff4e7cca25761d8')
sha256sums=('e121a31569e3e1f156caeed70742971ec32fef598429ef647bde98f56aa048f5'
'625bb794d31690b45ad7469f811e7422dac938cf8e9b777aba4d97b60b3c6eae'
- '88d5a8589dca55ca98089dfa4570aa1fbde1095957d0788ad710a27b348c2f4f')
+ '88d5a8589dca55ca98089dfa4570aa1fbde1095957d0788ad710a27b348c2f4f'
+ '737df02a12fc76841325d1059d90451467637eab2df016efc20d84976eb5de7d'
+ '3496e90914e1fa2f209dd85c336e7b1c0b784dbbf67cc45e0f0f55f0b1ef5a0e'
+ 'f215451df4a01f0875a53425b6d8452c344f19b61b59b821f8c949b1b276c022'
+ 'f5eebe58f625b493cf8cb4c7fb8630fd4d0f9fa278ce4400b011fd702bd2db90'
+ 'dcedb22e0f3fb0c8197630b38217f86c5468d065ab2d67708c16c17351d6944e'
+ '0693e13442749c40a338320cca72dd8aad23678ea7cae035e6bab01a40640c44'
+ '718e5104ff4caf153757dd2f8c143402d2c175fd838cfc5db3f47618efd40230'
+ 'b5000b9bb68ae8ddc173b666ead6d60fa329aa4d5d96636af4717a131827748c'
+ 'c0786d12440da829f0a57ca9e7f2c3114edbd88213bb66687ac84730ee7c8ed1'
+ 'ab4921079d2a4ee3316bbea3bcb3ff7844d8ced73b6b4327d3c580088bc511b1'
+ '021745fab94745eaea1abc503a1f7ec94dfa6132f841d5ce2bb969dcb049eda6'
+ '40ee1fb8e261008d810c7251de5612029fa9c8b83a58bdd3279dd64467cb1bed'
+ '414f1115e195616945ac8d597bfd59a9ae3b8ec392c8f06f15213efa662e6433')
if [ "${_opt_DKMS}" -ne 0 ]; then
depends+=('linux' 'dkms' 'linux-headers')
@@ -70,16 +121,74 @@ prepare() {
fi
cd "${_srcdir}"
- #cp -pr "${srcdir}/${_srcdir}"{,.orig-0000}
+ #cp -pr "${srcdir}/${_srcdir}"{,.orig-0000}; false
#diff -pNaru5 dgnc-1.3{.orig-0000,} > '0000-Kernel-4-14-DRIVER-ATTR.patch'
patch -Nup1 -i "${srcdir}/0000-Kernel-4-14-DRIVER-ATTR.patch"
test ! -d "${srcdir}/${_srcdir}.orig-0000" || echo "${}"
- #cp -pr "${srcdir}/${_srcdir}"{,.orig-0001}
+ #cp -pr "${srcdir}/${_srcdir}"{,.orig-0001}; false
#diff -pNaru5 dgnc-1.3{.orig-0001,} > '0001-Kernel-4-15-timers.patch'
patch -Nup1 -i "${srcdir}/0001-Kernel-4-15-timers.patch"
test ! -d "${srcdir}/${_srcdir}.orig-0001" || echo "${}"
+ #cp -p driver/2.6.27/dgnc_tty.c{,.orig}; false
+ #diff -pNau5 driver/2.6.27/dgnc_tty.c{.orig,} > '0002-kernel-5.0.0-do_gettimeofday.patch'
+ patch -Nup0 -i "${srcdir}/0002-kernel-5.0.0-do_gettimeofday.patch"
+
+ #cp -pr driver/2.6.27{,.orig}; false
+ #diff -pNaru5 driver/2.6.27{.orig,} > '0003-kernel-5.6--proc_dir_entry-proc_ops.patch'
+ patch -Nup0 -i "${srcdir}/0003-kernel-5.6--proc_dir_entry-proc_ops.patch"
+
+ #rm -f driver/2.6.27/*.orig; cp -pr driver/2.6.27{,.orig}; false
+ #diff -pNaru5 driver/2.6.27{.orig,} > '0004-kernel-5.12-MODULE_SUPPORTED_DEVICE.patch'
+ patch -Nup0 -i "${srcdir}/0004-kernel-5.12-MODULE_SUPPORTED_DEVICE.patch"
+
+ #rm -f driver/2.6.27/*.orig; cp -pr driver/2.6.27{,.orig}; false
+ #diff -pNaru5 driver/2.6.27{.orig,} > '0005-kernel-5.13-dropped-tty_check_change.patch'
+ patch -Nup0 -i "${srcdir}/0005-kernel-5.13-dropped-tty_check_change.patch"
+
+ #rm -f driver/2.6.27/*.orig; cp -pr driver/2.6.27{,.orig}; false
+ #diff -pNaru5 driver/2.6.27{.orig,} > '0006-kernel-5.14-task_struct.state-unsigned-tty.patch'
+ patch -Nup0 -i "${srcdir}/0006-kernel-5.14-task_struct.state-unsigned-tty.patch"
+
+ # http://lkml.iu.edu/hypermail/linux/kernel/2107.2/08799.html [PATCH 5/8] tty: drop alloc_tty_driver
+ # http://lkml.iu.edu/hypermail/linux/kernel/2107.2/08801.html [PATCH 7/8] tty: drop put_tty_driver
+ #rm -f driver/2.6.27/*.orig; cp -pr driver/2.6.27{,.orig}; false
+ #diff -pNaru5 driver/2.6.27{.orig,} > '0007-kernel-5.15-alloc_tty_driver-put_tty_driver.patch'
+ patch -Nup0 -i "${srcdir}/0007-kernel-5.15-alloc_tty_driver-put_tty_driver.patch"
+
+ # https://lore.kernel.org/lkml/723478a270a3858f27843cbec621df4d5d44efcc.1663288066.git.nabijaczleweli@nabijaczleweli.xyz/T/
+ # cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0008-kernel-6.1-remove-TTY_MAGIC.patch'
+ patch -Nup1 -i "${srcdir}/0008-kernel-6.1-remove-TTY_MAGIC.patch"
+
+ # https://www.spinics.net/lists/linux-fsdevel/msg207433.html
+ # cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0009-kernel-5.17-change-PDE_DATA.patch'
+ patch -Nup1 -i "${srcdir}/0009-kernel-5.17-change-PDE_DATA.patch"
+
+ # https://www.uwsg.indiana.edu/hypermail/linux/kernel/1809.1/00449.html
+ #cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0010-kernel-6.1-INIT_C_CC-termios_internal.patch'
+ patch -Nup1 -i "${srcdir}/0010-kernel-6.1-INIT_C_CC-termios_internal.patch"
+
+ # https://lore.kernel.org/linux-arm-kernel/20220816115739.10928-9-ilpo.jarvinen@linux.intel.com/T/
+ # cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0011-kernel-6.0-set_termios-const-ktermios.patch'
+ patch -Nup1 -i "${srcdir}/0011-kernel-6.0-set_termios-const-ktermios.patch"
+
+ #cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0012-kernel-6.4-class_create-1arg.patch'
+ patch -Nup1 -i "${srcdir}/0012-kernel-6.4-class_create-1arg.patch"
+
+ #cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0013-kernel-6.4-DEFINE_SEMAPHORE-2arg.patch'
+ patch -Nup1 -i "${srcdir}/0013-kernel-6.4-DEFINE_SEMAPHORE-2arg.patch"
+
+ #cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; false
+ # diff -pNaru5 'a' 'b' > '0014-kernel-6.6-struct-tty_operations-write-size_t.patch'
+ patch -Nup1 -i "${srcdir}/0014-kernel-6.6-struct-tty_operations-write-size_t.patch"
+
# Version check
local _ver
_ver="$(grep -e 'TRUE_VERSION=' ./Makefile.inc | cut -d'"' -f2)"
@@ -120,7 +229,22 @@ prepare() {
test ! -s 'scripts/postinstall.Arch' || echo "${}"
# new folder in gcc 8
- sed -e 's/^clean:$/&\n\trm -f .cache.mk/g' -i driver/*/Makefile*
+ #cp -p 'driver/2.6.27/Makefile26'{,.Arch}
+ sed -e 's/^clean:$/&\n\trm -f .cache.mk/g' \
+ -e '# Use built in clean' \
+ -e 's:clean:clean_local:g' \
+ -e 's~^clean_local:~clean:\n\tmake -C @KERNEL_HEADERS@ SUBDIRS=$$PWD clean\n\n&~g' \
+ -e '# Kernel 5.4 compatible' \
+ -e 's: SUBDIRS=\([^ ]\+\) : M=\1&:g ' \
+ -e 's:@MODDIR@:/usr/lib/modules/$(KERNELRELEASE):g' \
+ -e 's:@KERNEL_HEADERS@:/usr/lib/modules/$(KERNELRELEASE)/build:g' \
+ -e '# Not a good way to sub variables' \
+ -e '/^MODDIR =/ s:\$(shell echo \(.*\))$:\1:g' \
+ -e '# Anything using these must fail' \
+ -e '/MOD = \// s:^:#:g' \
+ -e '1i KERNELRELEASE?=$(shell uname -r)' \
+ -i 'driver/2.6.27/Makefile26'
+ test ! -s 'driver/2.6.27/Makefile26.Arch'
# Branding in dmesg
sed -e '/^static int dgnc_start/,/^}$/ s@^\(\s\+\)APR(("For@'"\1APR((DRVSTR\": Arch Linux https://aur.archlinux.org/packages/${pkgname}/\"));\n&@g" \
@@ -168,8 +292,10 @@ build() {
set -u
cd "${_srcdir}"
_configure
- CPPFLAGS="${CPPFLAGS//-D_FORTIFY_SOURCE=2/}" \
+ set +u; msg2 'Build config'; set -u
+ #CPPFLAGS="${CPPFLAGS//-D_FORTIFY_SOURCE=2/}" \
make -C 'config' -j1
+ set +u; msg2 'Build'; set -u
make -j1
set +u
}
@@ -261,13 +387,7 @@ EOF
rm "${_dkms}/driver/build/"/Makefile?*
install -Dpm644 'dpa/dpacompat.h' -t "${_dkms}/dpa"
install -pm644 'Makefile.inc' -t "${_dkms}/"
- sed -e 's:/usr/lib/modules/[^/]\+/:/usr/lib/modules/$(KERNELRELEASE)/:g' \
- -e '# Not a good way to sub variables' \
- -e '/^MODDIR =/ s:\$(shell echo \(.*\))$:\1:g' \
- -e '# Anything using these must fail' \
- -e '/MOD = \// s:^:#:g' \
- -i "${_dkms}/driver/build/Makefile"
- make -C "${_dkms}/driver/build/" clean
+ make -C "${_dkms}/driver/build/" clean KERNELRELEASE="$(uname -r)" MYPWD="${_dkms}/driver/build/"
fi
set +u
}