X-Original-To: alpine-aports@lists.alpinelinux.org Received: from mx1.mailbox.org (mx1.mailbox.org [80.241.60.212]) by lists.alpinelinux.org (Postfix) with ESMTP id 5E3255C4CEB for ; Thu, 21 Sep 2017 19:47:18 +0000 (GMT) Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.mailbox.org (Postfix) with ESMTPS id CAC2F45735; Thu, 21 Sep 2017 21:47:16 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by spamfilter03.heinlein-hosting.de (spamfilter03.heinlein-hosting.de [80.241.56.117]) (amavisd-new, port 10030) with ESMTP id OQeovMB9vbSS; Thu, 21 Sep 2017 21:47:13 +0200 (CEST) From: clayton@craftyguy.net To: alpine-aports@lists.alpinelinux.org Cc: Clayton Craft Subject: [alpine-aports] [PATCH] testing/directfb: New aport Date: Thu, 21 Sep 2017 12:47:06 -0700 Message-Id: <20170921194706.25777-1-clayton@craftyguy.net> X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: From: Clayton Craft https://github.com/DirectFB/directfb Library for hw graphics acceleration, input dev, windowing system on top of the Linux fb device --- .../directfb/0001-directfb-fix-musl-compile.patch | 11 ++++ ...HREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch | 47 +++++++++++++++++ testing/directfb/0003-remove-set-gamma-ramp.patch | 23 +++++++++ .../directfb/0004-disable-fusion_dispatch.patch | 13 +++++ testing/directfb/0005-fix-tslib-configure.patch | 14 +++++ .../0006-fix-client-gfx_state-initialisation.patch | 39 ++++++++++++++ testing/directfb/APKBUILD | 59 ++++++++++++++++++++++ 7 files changed, 206 insertions(+) create mode 100644 testing/directfb/0001-directfb-fix-musl-compile.patch create mode 100644 testing/directfb/0002-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch create mode 100644 testing/directfb/0003-remove-set-gamma-ramp.patch create mode 100644 testing/directfb/0004-disable-fusion_dispatch.patch create mode 100644 testing/directfb/0005-fix-tslib-configure.patch create mode 100644 testing/directfb/0006-fix-client-gfx_state-initialisation.patch create mode 100644 testing/directfb/APKBUILD diff --git a/testing/directfb/0001-directfb-fix-musl-compile.patch b/testing/directfb/0001-directfb-fix-musl-compile.patch new file mode 100644 index 0000000000..b5de895e7f --- /dev/null +++ b/testing/directfb/0001-directfb-fix-musl-compile.patch @@ -0,0 +1,11 @@ +--- a/lib/direct/os/linux/glibc/system.c ++++ b/lib/direct/os/linux/glibc/system.c +@@ -111,7 +111,7 @@ direct_tgkill( int tgid, int tid, int sig ) + void + direct_trap( const char *domain, int sig ) + { +- sigval_t val; ++ union sigval val; + + if (direct_config->delay_trap_ms) { + D_LOG( Direct_Trap, VERBOSE, "NOT RAISING signal %d from %s, waiting for %dms... attach gdb --pid=%d\n", sig, domain, direct_config->delay_trap_ms, getpid() ); diff --git a/testing/directfb/0002-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch b/testing/directfb/0002-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch new file mode 100644 index 0000000000..03b087fc2c --- /dev/null +++ b/testing/directfb/0002-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch @@ -0,0 +1,47 @@ +--- a/lib/direct/os/linux/glibc/mutex.h ++++ b/lib/direct/os/linux/glibc/mutex.h +@@ -46,7 +46,6 @@ struct __D_DirectMutex { + /**********************************************************************************************************************/ + + #define DIRECT_MUTEX_INITIALIZER(name) { PTHREAD_MUTEX_INITIALIZER } +-#define DIRECT_RECURSIVE_MUTEX_INITIALIZER(name) { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP } + + #endif + +--- a/lib/direct/trace.c ++++ b/lib/direct/trace.c +@@ -89,7 +89,7 @@ struct __D_DirectTraceBuffer { + /**************************************************************************************************/ + + static DirectLink *buffers; +-static DirectMutex buffers_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(buffers_lock); ++static DirectMutex buffers_lock = DIRECT_MUTEX_INITIALIZER(buffers_lock); + + /**************************************************************************************************/ + +--- a/src/directfb.c ++++ b/src/directfb.c +@@ -163,6 +163,15 @@ DirectFBSetOption( const char *name, const char *value ) + return DFB_OK; + } + ++ ++static pthread_once_t lock_init_once = PTHREAD_ONCE_INIT; ++static DirectMutex lock; ++ ++static void lock_init(void) ++{ ++ direct_recursive_mutex_init(&lock); ++} ++ + /* + * Programs have to call this to get the super interface + * which is needed to access other functions +@@ -215,7 +224,7 @@ DirectFBCreate( IDirectFB **interface_ptr ) + if (dfb_config->remote.host) + return CreateRemote( dfb_config->remote.host, dfb_config->remote.port, interface_ptr ); + +- static DirectMutex lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(lock); ++ pthread_once(&lock_init_once, lock_init); + + direct_mutex_lock( &lock ); diff --git a/testing/directfb/0003-remove-set-gamma-ramp.patch b/testing/directfb/0003-remove-set-gamma-ramp.patch new file mode 100644 index 0000000000..652c5a1683 --- /dev/null +++ b/testing/directfb/0003-remove-set-gamma-ramp.patch @@ -0,0 +1,23 @@ +--- a/systems/fbdev/fbdev.c ++++ b/systems/fbdev/fbdev.c +@@ -2327,14 +2327,18 @@ dfb_fbdev_set_gamma_ramp( DFBSurfacePixelFormat format ) + for (i = 0; i < blue_size; i++) + cmap->blue[i] |= cmap->blue[i] << 8; + } +- ++ /* ++ * Commenting out section setting gamma ramp ++ * per: http://directfb-users.directfb.narkive.com/fUkXSRmm/hello ++ */ ++ /* + if (FBDEV_IOCTL( FBIOPUTCMAP, cmap ) < 0) { + D_PERROR( "DirectFB/FBDev: " + "Could not set gamma ramp" ); + + return errno2result(errno); + } +- ++ */ + return DFB_OK; + } + diff --git a/testing/directfb/0004-disable-fusion_dispatch.patch b/testing/directfb/0004-disable-fusion_dispatch.patch new file mode 100644 index 0000000000..900f9bbb93 --- /dev/null +++ b/testing/directfb/0004-disable-fusion_dispatch.patch @@ -0,0 +1,13 @@ +diff --git a/src/core/core.c b/src/core/core.c +index 6676bee..933f0fc 100644 +--- a/src/core/core.c ++++ b/src/core/core.c +@@ -1737,7 +1737,7 @@ dfb_core_shutdown( CoreDFB *core, bool emergency ) + dfb_gfx_cleanup(); + + while (loops--) { +- fusion_dispatch( core->world, 16384 ); ++ //fusion_dispatch( core->world, 16384 ); + + ret = dfb_core_wait_all( core, 10000 ); + if (ret == DFB_OK) diff --git a/testing/directfb/0005-fix-tslib-configure.patch b/testing/directfb/0005-fix-tslib-configure.patch new file mode 100644 index 0000000000..d612ee93c8 --- /dev/null +++ b/testing/directfb/0005-fix-tslib-configure.patch @@ -0,0 +1,14 @@ +--- a/configure.in ++++ b/configure.in +@@ -2459,9 +2459,9 @@ + + enable_tslib=no + if test "$checkfor_tslib" = "yes"; then +- PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0.0], [enable_tslib=yes], [enable_tslib=no]) ++ PKG_CHECK_MODULES([TSLIB], [tslib >= 1.0.0], [enable_tslib=yes], [enable_tslib=no]) + if test "$enable_tslib" = "no"; then +- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no ++ PKG_CHECK_MODULES([TSLIB], [tslib], [enable_tslib=yes], [enable_tslib=no + AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])]) + fi + fi diff --git a/testing/directfb/0006-fix-client-gfx_state-initialisation.patch b/testing/directfb/0006-fix-client-gfx_state-initialisation.patch new file mode 100644 index 0000000000..5b7a202ca3 --- /dev/null +++ b/testing/directfb/0006-fix-client-gfx_state-initialisation.patch @@ -0,0 +1,39 @@ +From 8e53c0b9cedb62b82e2b7680d793d433b647ae20 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Mon, 13 Jun 2016 13:32:44 -0700 +Subject: [PATCH] fix client->gfx_state initialisation + +Shortly before the DirectFB 1.7.7 release, an optimisation was added +to CoreGraphicsStateClient_Init() to avoid creating an extended +Graphics State object if it will not later be required: + + 4d422fb Client: Create extended Graphics State object when needed for later usage + +Unfortunately the client->gfx_state variable used to track the +extended Graphics State object is not initialised, which can lead to +crashes etc due to creation of the Graphics State object erroneously +being skipped. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +Signed-off-by: Philippe Reynes +--- + src/core/CoreGraphicsStateClient.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/core/CoreGraphicsStateClient.cpp b/src/core/CoreGraphicsStateClient.cpp +index 5d46f0e..5007755 100644 +--- a/src/core/CoreGraphicsStateClient.cpp ++++ b/src/core/CoreGraphicsStateClient.cpp +@@ -364,6 +364,7 @@ CoreGraphicsStateClient_Init( CoreGraphicsStateClient *client, + client->renderer = NULL; + client->requestor = NULL; + client->throttle = NULL; ++ client->gfx_state = NULL; + + if (dfb_config->task_manager) { + if (dfb_config->call_nodirect) { +-- +1.9.1 + diff --git a/testing/directfb/APKBUILD b/testing/directfb/APKBUILD new file mode 100644 index 0000000000..6cf6b1926d --- /dev/null +++ b/testing/directfb/APKBUILD @@ -0,0 +1,59 @@ +# Contributor: Clayton Craft +# Maintainer: Clayton Craft +pkgname=directfb +pkgver=1.7.7 +pkgrel=0 +pkgdesc="Library for hw graphics acceleration, input dev, windowing system on top of the Linux fb device" +arch="all" +url="https://github.com/DirectFB/directfb" +license="LGPL" +makedepends="zlib-dev freetype-dev libdrm-dev libpng-dev perl tslib tslib-dev autoconf automake libtool" +depends="libgcc libjpeg libpng freetype libdrm tslib" +subpackages="$pkgname-doc $pkgname-dev" +builddir="${srcdir}/DirectFB-${pkgver}" +source=" + http://sources.webos-ports.org/downloads/DirectFB-$pkgver.tar.gz + 0001-directfb-fix-musl-compile.patch + 0002-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch + 0003-remove-set-gamma-ramp.patch + 0004-disable-fusion_dispatch.patch + 0005-fix-tslib-configure.patch + 0006-fix-client-gfx_state-initialisation.patch + " + +build() { + cd "${builddir}" + autoconf + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --enable-static \ + --disable-zlib \ + --disable-x11 \ + --enable-fbdev \ + --disable-vnc \ + --disable-osx \ + --disable-mesa \ + --enable-drmkms \ + --enable-freetype \ + --with-inputdrivers=input_hub,keyboard,linuxinput,ps2mouse,serialmouse,tslib \ + --with-gfxdrivers=omap + make +} + +check() { + cd "${builddir}" + make check +} + +package() { + cd "${builddir}" + make DESTDIR="${pkgdir}" install +} + +sha512sums="c9ce8ffe7d7d17b0351da6a031db7345f31fb7112545f9352834ad33225a93e6284ef0e576ef5fc595bc9060c1756051322fa20f7b5b3444b68d7f05bd1ba494 DirectFB-1.7.7.tar.gz +d9325c228a534d2d2b93b4dacf896fc12c703b9e08adf1ae8f5baea2a0ed5c4d07d56b8bc63dc605362f093624eab40686b43028ef15a78a01bc10e5f41c16bc 0001-directfb-fix-musl-compile.patch +ed3bf9bf76616174aca6ae92fd9873c9452951b8a2acb60e1ccbbea0c4a7c9766e510899bc8f58c24dd5888c1e7e1f0a0d4a823f0bd9e03a4c9d2a54fb714221 0002-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch +bd1d0738c48411e8e065b8a250c1b31334ac65b26a8f6c91d5ad167a4d8fdac1de862c05940567e48fc740dd45fbecf906ebdfbff63420d4f86bee7a3a0746ee 0003-remove-set-gamma-ramp.patch +d68002702f3521a71405bb403b874dced5b123a2de037c9eb05667123a578c0e9a9f13a822fd8d77e31a83f1e1cc8df1d8511f7d2f427688d5ef6ae0fff448c5 0004-disable-fusion_dispatch.patch +c768ca7a4dae7fc0cd7d4fa559ab74adb6b5f21245e0f9b5d56af15b20effc04e6739e86d52d65c902c5e76ad72e966cd9db68f57a9bad11a004525825d443a4 0005-fix-tslib-configure.patch +6b118928c2ebe58654e1bf32433b084f4dc150526eec1b53f9eb4b856aee25733bd8d6114fde973fcb64416e4146f458cdb75e5836d7507cf802b84e44544462 0006-fix-client-gfx_state-initialisation.patch" -- 2.14.1 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---