diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 22 | ||||
-rw-r--r-- | evdi.Changelog | 6 | ||||
-rw-r--r-- | force_output.patch | 13 | ||||
-rw-r--r-- | relro.patch | 11 |
5 files changed, 54 insertions, 6 deletions
@@ -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 @@ -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) + |