summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD22
-rw-r--r--evdi.Changelog6
-rw-r--r--force_output.patch13
-rw-r--r--relro.patch11
5 files changed, 54 insertions, 6 deletions
diff --git a/.SRCINFO b/.SRCINFO
index fec055d09411..7d10ddcf2c38 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = evdi
pkgdesc = A Linux® kernel module that enables management of multiple screens.
pkgver = 1.5.1
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/DisplayLink/evdi
install = evdi.install
changelog = evdi.Changelog
@@ -10,8 +10,12 @@ pkgbase = evdi
license = GPL
depends = dkms
depends = libdrm
- source = evdi-1.5.1-1.tar.gz::https://github.com/DisplayLink/evdi/archive/v1.5.1.tar.gz
+ source = evdi-1.5.1-2.tar.gz::https://github.com/DisplayLink/evdi/archive/v1.5.1.tar.gz
+ source = force_output.patch
+ source = relro.patch
md5sums = 20a69bf61aef388019afb283bb03ea29
+ md5sums = 8ebc776d731166661106b1fb3eeb306c
+ md5sums = 05e64dd295a66c030139d0c8f6f7013b
pkgname = evdi
diff --git a/PKGBUILD b/PKGBUILD
index 6b357307b65b..a13b19a09765 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=evdi
pkgver=1.5.1
-pkgrel=1
+pkgrel=2
pkgdesc="A Linux® kernel module that enables management of multiple screens."
arch=('i686' 'x86_64')
url="https://github.com/DisplayLink/evdi"
@@ -19,12 +19,26 @@ backup=()
options=()
install=$pkgname.install
changelog=$pkgname.Changelog
-source=($pkgname-$pkgver-$pkgrel.tar.gz::https://github.com/DisplayLink/evdi/archive/v$pkgver.tar.gz)
+source=($pkgname-$pkgver-$pkgrel.tar.gz::https://github.com/DisplayLink/evdi/archive/v$pkgver.tar.gz
+ force_output.patch
+ relro.patch)
noextract=()
-md5sums=('20a69bf61aef388019afb283bb03ea29')
+md5sums=('20a69bf61aef388019afb283bb03ea29'
+ '8ebc776d731166661106b1fb3eeb306c'
+ '05e64dd295a66c030139d0c8f6f7013b')
+prepare() {
+ cd "$pkgname-$pkgver"
+ local src
+ for src in "${source[@]}"; do
+ src="${src%%::*}"
+ src="${src##*/}"
+ [[ $src = *.patch ]] || continue
+ patch -Np1 < "../$src"
+ done
+}
build() {
-# We only need to build the library in this step, dmks will build the module
+# We only need to build the library in this step, dkms will build the module
cd "$pkgname-$pkgver/library"
make
diff --git a/evdi.Changelog b/evdi.Changelog
index f7db5576bbc0..90e16ae24cca 100644
--- a/evdi.Changelog
+++ b/evdi.Changelog
@@ -1,3 +1,9 @@
+v1.5.1-2
+- Removed FBINFO_CAN_FORCE_OUTPUT (breaks 4.20 / apparently never worked right)
+ (https://github.com/torvalds/linux/commit/04cfcc7ab358e331b32cabde1e853a125f3f8735#diff-43768cc89c01c730cb119634b42dfa81)
+- Also added dynamic patching ability (borrowed from "linux" PKGBUILD)
+- Fixed namcap relro warning
+
v1.5.1
EVDI driver used in DisplayLink Ubuntu Software v4.4
diff --git a/force_output.patch b/force_output.patch
new file mode 100644
index 000000000000..ebdd1ae54ce7
--- /dev/null
+++ b/force_output.patch
@@ -0,0 +1,13 @@
+diff --git a/module/evdi_fb.c b/module/evdi_fb.c
+index af88ea1..52e4af6 100644
+--- a/module/evdi_fb.c
++++ b/module/evdi_fb.c
+@@ -367,7 +367,7 @@ static int evdifb_create(struct drm_fb_helper *helper,
+ info->fix.smem_len = size;
+ info->fix.smem_start = (unsigned long)ufbdev->ufb.obj->vmapping;
+
+- info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT;
++ info->flags = FBINFO_DEFAULT;
+ info->fbops = &evdifb_ops;
+ #if KERNEL_VERSION(4, 11, 0) > LINUX_VERSION_CODE
+ drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth);
diff --git a/relro.patch b/relro.patch
new file mode 100644
index 000000000000..d63d0887b9fb
--- /dev/null
+++ b/relro.patch
@@ -0,0 +1,11 @@
+diff --git a/library/Makefile b/library/Makefile
+index 9b4e856..8a13662 100644
+--- a/library/Makefile
++++ b/library/Makefile
+@@ -14,5 +14,5 @@ clean:
+ $(CC) -c -o $@ $< $(CFLAGS)
+
+ libevdi.so: evdi_lib.o
+- $(CC) $^ -o $@ -lc -lgcc -shared -Wl,-soname,libevdi.so.0
++ $(CC) $^ -o $@ -lc -lgcc -shared -Wl,-soname,libevdi.so.0 $(LDFLAGS)
+