blob: 29ad196bcf4e0d0bb44e08a1442e7da04254c09b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com
# Contributor: ajs124
# Tested with Kernel 4.16, Dell D3000 SuperSpeed USB 3.0 Docking Station, 17e9:4318 DisplayLink
pkgname='evdi-git'
pkgver=1.14.7.r3.g59a3a86
_pkgver="${pkgver%%.r*}"
pkgrel=1
pkgdesc='kernel module that enables management of multiple screens, primarily for DisplayLink USB VGA DVI HDMI DisplayPort video'
arch=('i686' 'x86_64')
url='https://github.com/DisplayLink/evdi'
license=('GPL')
depends=('dkms')
makedepends=('git' 'libdrm')
#makedepends+=('linux-headers')
provides=("evdi=${_pkgver}")
conflicts=('evdi')
_srcdir="${pkgname%-git}"
source=(
'git+https://github.com/DisplayLink/evdi'
)
source[0]+='#branch=main'
md5sums=('SKIP')
sha256sums=('SKIP')
pkgver() {
cd "${_srcdir}"
local _modver _rev
#_modver="$(awk -F '=' '/MODVER=/ {print $2}' module/Makefile)"
_rev="$(git describe --long --tags | sed -e 's/^v//' -e 's/\([^-]*-g\)/r\1/' -e 's/-/./g')"
if [ -z "${_modver:-}" ]; then
printf '%s\n' "${_rev}"
else
printf '%s.r%s\n' "${_modver}" "${_rev##*.r}"
fi
}
prepare() {
cd "${_srcdir}"
local _src
for _src in "${source[@]%%::*}"; do
_src="${_src##*/}"
if [[ "${_src}" = *.patch ]]; then
msg2 "Patch ${_src}"
patch -Np1 -i "../${_src}"
fi
done
git revert -n '88ef73df576aacdfff6597616a77b88f42eca4c7'
#cd '..'; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; cd "${_srcdir}"; false
# diff -pNaru5 'a' 'b' > "0000-$RANDOM.patch"
#sed -e 's:-Werror::g' -i 'Makefile'
}
build() {
cd "${_srcdir}"
CFLAGS="${CFLAGS/-fno-plt/}"
CFLAGS="${CFLAGS/-fexceptions/}"
# DKMS builds are hard to debug. We can build it here to debug the errors.
#make -j1 -C 'module'
make -j1 -C 'library'
}
package() {
cd "${_srcdir}"
make -C 'library' -j1 install DESTDIR="${pkgdir}" PREFIX='/usr'
if ! :; then
pushd "${pkgdir}/usr/lib/" > /dev/null
local _libase
local _libs=(*.so.*)
if [ "${#_libs[@]}" -eq 2 ]; then
_libs="${_libs[1]}"
for _libase in *.so*; do
if [ "${_libase}" != "${_libs}" ]; then
ln -sf "${_libs}" "${_libase}"
fi
done
elif [ "${#_libs[@]}" -eq 1 ]; then
_libs="${_libs[0]}"
_libase="${_libs%.so*}.so"
ln -sf "${_libs}" "${_libase}"
ln -sf "${_libs}" "${_libase}.0" # bad soname
else
echo 'Unhandled libs'
false
fi
popd > /dev/null
fi
local _DKMS="${pkgdir}/usr/src/${pkgname%-git}-${_pkgver}"
#install -Dpm644 module/* -t "${_DKMS}/"
install -d "${_DKMS}/"
cp -pr 'module/'* "${_DKMS}/"
make -j1 -C "${_DKMS}" clean
rm -f "${_DKMS}/evdi.mod"
}
|