~alpine/aports

[alpine-aports] [PATCH] testing/directfb: New aport

Details
Message ID
<20170921194706.25777-1-clayton@craftyguy.net>
Sender timestamp
1506023226
DKIM signature
missing
Download raw message
Patch: +206 -0
From: Clayton Craft <clayton@craftyguy.net>

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 <armccurdy@gmail.com>
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 <armccurdy@gmail.com>
Signed-off-by: Philippe Reynes <philippe.reynes@sagemcom.com>
---
 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 <clayton@craftyguy.net>
# Maintainer: Clayton Craft <clayton@craftyguy.net>
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
---
Reply to thread Export thread (mbox)