mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-19 00:21:40 +00:00
Merge pull request #1000 from pumphaus/kde-gles-fixes
On the Raspberry Pi, use the Broadcom VideoCore GLES and EGL libs for kwin and kinfocenter
This commit is contained in:
commit
f5ed762ac2
6 changed files with 243 additions and 0 deletions
64
extra/kinfocenter/PKGBUILD
Normal file
64
extra/kinfocenter/PKGBUILD
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
# $Id: PKGBUILD 224713 2014-10-18 08:27:20Z andrea $
|
||||||
|
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
|
||||||
|
# Contributor: Antonio Rojas
|
||||||
|
|
||||||
|
# ALARM on armv6h: Arno Rehn <arno@arnorehn.de>
|
||||||
|
# - Disable the failing EGLonX parts (not available on the R-Pi). Needs better upstream support.
|
||||||
|
|
||||||
|
pkgname=kinfocenter
|
||||||
|
pkgver=5.1.0.1
|
||||||
|
_pkgver=5.1.0
|
||||||
|
pkgrel=1.1
|
||||||
|
pkgdesc='KInfocenter'
|
||||||
|
arch=('i686' 'x86_64')
|
||||||
|
url='https://projects.kde.org/projects/kde/workspace/kinfocenter'
|
||||||
|
license=('LGPL')
|
||||||
|
depends=('kdelibs4support' 'kcmutils' 'pciutils' 'glu' 'libraw1394' 'kwayland')
|
||||||
|
makedepends=('extra-cmake-modules' 'kdoctools' 'python' 'plasma-framework')
|
||||||
|
conflicts=('kdebase-workspace')
|
||||||
|
groups=('plasma-next')
|
||||||
|
source=("http://download.kde.org/stable/plasma/5.1.0/$pkgname-$pkgver.tar.xz"
|
||||||
|
"kinfocenter_disable_eglonx.patch")
|
||||||
|
md5sums=('8d258cd1cb691027b8ccaa95695920a5'
|
||||||
|
'a43a82b8be9aea5a4666b6372eecc7d2')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
cd "${srcdir}/${pkgname}-${_pkgver}"
|
||||||
|
|
||||||
|
# Raspberry Pi
|
||||||
|
if [ "$CARCH" == 'armv6h' ]; then
|
||||||
|
patch -p1 -i "${srcdir}/kinfocenter_disable_eglonx.patch"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
# Raspberry Pi
|
||||||
|
if [ "$CARCH" == 'armv6h' ]; then
|
||||||
|
VC_INCLUDE_DIR="/opt/vc/include;/opt/vc/include/interface/vcos/pthreads;/opt/vc/include/interface/vmcs_host/linux"
|
||||||
|
VC_EGL_LIB="/opt/vc/lib/libEGL.so"
|
||||||
|
VC_GLESv2_LIB="/opt/vc/lib/libGLESv2.so"
|
||||||
|
|
||||||
|
CMAKE_EXTRA_CONFIG_OPTIONS="-DOPENGLES_EGL_INCLUDE_DIR=$VC_INCLUDE_DIR \
|
||||||
|
-DOPENGLES_EGL_LIBRARY=$VC_EGL_LIB \
|
||||||
|
-DOPENGLES_INCLUDE_DIR=$VC_INCLUDE_DIR \
|
||||||
|
-DOPENGLES_LIBRARY=$VC_GLESv2_LIB"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd build
|
||||||
|
cmake ../$pkgname-5.1.0 \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DLIB_INSTALL_DIR=lib \
|
||||||
|
-DSYSCONF_INSTALL_DIR=/etc \
|
||||||
|
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
|
$CMAKE_EXTRA_CONFIG_OPTIONS
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd build
|
||||||
|
make DESTDIR="${pkgdir}" install
|
||||||
|
}
|
13
extra/kinfocenter/kinfocenter_disable_eglonx.patch
Normal file
13
extra/kinfocenter/kinfocenter_disable_eglonx.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/Modules/opengl/opengl.cpp b/Modules/opengl/opengl.cpp
|
||||||
|
index c87cde8..dcb09ff 100644
|
||||||
|
--- a/Modules/opengl/opengl.cpp
|
||||||
|
+++ b/Modules/opengl/opengl.cpp
|
||||||
|
@@ -818,7 +818,7 @@ static QTreeWidgetItem *get_gl_info_egl(Display *dpy, int scrnum, QTreeWidgetIte
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
- surf = eglCreateWindowSurface(egl_dpy, config, win, NULL);
|
||||||
|
+ surf = 0;
|
||||||
|
if (!surf) {
|
||||||
|
qDebug() << "Error: eglCreateWindowSurface failed\n";
|
||||||
|
eglDestroyContext(egl_dpy, ctx);
|
72
extra/kwin/PKGBUILD
Normal file
72
extra/kwin/PKGBUILD
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
# $Id: PKGBUILD 224438 2014-10-15 16:56:29Z andrea $
|
||||||
|
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
|
||||||
|
|
||||||
|
# ALARM on armv6h: Arno Rehn <arno@arnorehn.de>
|
||||||
|
# - Find Broadcom's VideoCore GLES and EGL libraries instead of mesa's libs.
|
||||||
|
# - Remove forced compilation of the EGLonX part (not available on the r-pi)
|
||||||
|
# - Fix general compilation errors.
|
||||||
|
# - Proper upstream patches for the above are pending.
|
||||||
|
|
||||||
|
pkgname=kwin
|
||||||
|
pkgver=5.1.0.1
|
||||||
|
_pkgver=5.1.0
|
||||||
|
pkgrel=1.1
|
||||||
|
pkgdesc='KDE Window manager'
|
||||||
|
arch=('i686' 'x86_64')
|
||||||
|
url='https://projects.kde.org/projects/kde/workspace/kwin'
|
||||||
|
license=('LGPL')
|
||||||
|
depends=('qt5-multimedia' 'plasma-framework' 'knewstuff' 'libxcursor' 'kinit'
|
||||||
|
'hicolor-icon-theme' 'libepoxy')
|
||||||
|
makedepends=('extra-cmake-modules' 'qt5-tools' 'kdoctools')
|
||||||
|
groups=('plasma-next')
|
||||||
|
install=${pkgname}.install
|
||||||
|
conflicts=('kdebase-workspace')
|
||||||
|
source=("http://download.kde.org/stable/plasma/5.1.0/${pkgname}-${pkgver}.tar.xz"
|
||||||
|
"rpi_fix_build.patch"
|
||||||
|
"kwin_remove_eglonxbackend.patch")
|
||||||
|
md5sums=('ab52f7ad3630b4da94b5e5dd09358e66'
|
||||||
|
'3e11a42013f03d55b4b730463bdd6fe0'
|
||||||
|
'28a1e8bd701a8fd1421e6ec238b4c522')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
cd "${srcdir}/${pkgname}-${_pkgver}"
|
||||||
|
|
||||||
|
# Raspberry Pi
|
||||||
|
if [ "$CARCH" == 'armv6h' ]; then
|
||||||
|
patch -p1 -i "${srcdir}/rpi_fix_build.patch"
|
||||||
|
patch -p1 -i "${srcdir}/kwin_remove_eglonxbackend.patch"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
# Raspberry Pi
|
||||||
|
if [ "$CARCH" == 'armv6h' ]; then
|
||||||
|
VC_INCLUDE_DIR="/opt/vc/include;/opt/vc/include/interface/vcos/pthreads;/opt/vc/include/interface/vmcs_host/linux"
|
||||||
|
VC_EGL_LIB="/opt/vc/lib/libEGL.so"
|
||||||
|
VC_GLESv2_LIB="/opt/vc/lib/libGLESv2.so"
|
||||||
|
|
||||||
|
CMAKE_EXTRA_CONFIG_OPTIONS="-DOPENGLES_EGL_INCLUDE_DIR=$VC_INCLUDE_DIR \
|
||||||
|
-DOPENGLES_EGL_LIBRARY=$VC_EGL_LIB \
|
||||||
|
-DOPENGLES_INCLUDE_DIR=$VC_INCLUDE_DIR \
|
||||||
|
-DOPENGLES_LIBRARY=$VC_GLESv2_LIB"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd build
|
||||||
|
cmake ../${pkgname}-5.1.0 \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DLIB_INSTALL_DIR=lib \
|
||||||
|
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
|
||||||
|
-DQML_INSTALL_DIR=lib/qt/qml \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
|
-DSYSCONF_INSTALL_DIR=/etc \
|
||||||
|
$CMAKE_EXTRA_CONFIG_OPTIONS
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd build
|
||||||
|
make DESTDIR="${pkgdir}" install
|
||||||
|
}
|
11
extra/kwin/kwin.install
Normal file
11
extra/kwin/kwin.install
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
post_install() {
|
||||||
|
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
post_upgrade() {
|
||||||
|
post_install
|
||||||
|
}
|
||||||
|
|
||||||
|
post_remove() {
|
||||||
|
post_install
|
||||||
|
}
|
40
extra/kwin/kwin_remove_eglonxbackend.patch
Normal file
40
extra/kwin/kwin_remove_eglonxbackend.patch
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 4058b34..a1f2060 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -397,10 +397,6 @@ if(KWIN_BUILD_ACTIVITIES)
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if(KWIN_HAVE_EGL)
|
||||||
|
- set(kwin_KDEINIT_SRCS ${kwin_KDEINIT_SRCS} eglonxbackend.cpp)
|
||||||
|
-endif()
|
||||||
|
-
|
||||||
|
if(HAVE_WAYLAND)
|
||||||
|
set(kwin_KDEINIT_SRCS
|
||||||
|
${kwin_KDEINIT_SRCS}
|
||||||
|
diff --git a/scene_opengl.cpp b/scene_opengl.cpp
|
||||||
|
index bacc980..e19bb00 100644
|
||||||
|
--- a/scene_opengl.cpp
|
||||||
|
+++ b/scene_opengl.cpp
|
||||||
|
@@ -28,7 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*********************************************************************/
|
||||||
|
#include "scene_opengl.h"
|
||||||
|
#ifdef KWIN_HAVE_EGL
|
||||||
|
-#include "eglonxbackend.h"
|
||||||
|
// for Wayland
|
||||||
|
#if HAVE_WAYLAND_EGL
|
||||||
|
#include "egl_wayland_backend.h"
|
||||||
|
@@ -437,10 +436,10 @@ SceneOpenGL *SceneOpenGL::createScene()
|
||||||
|
if (kwinApp()->shouldUseWaylandForCompositing()) {
|
||||||
|
backend = new EglWaylandBackend();
|
||||||
|
} else {
|
||||||
|
- backend = new EglOnXBackend();
|
||||||
|
+ backend = NULL;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
- backend = new EglOnXBackend();
|
||||||
|
+ backend = NULL;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
break;
|
43
extra/kwin/rpi_fix_build.patch
Normal file
43
extra/kwin/rpi_fix_build.patch
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index c4745df..4058b34 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -222,10 +222,12 @@ set(KWIN_BUILD_OPENGL FALSE)
|
||||||
|
set(KWIN_BUILD_OPENGLES FALSE)
|
||||||
|
if(OPENGL_FOUND AND (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GL"))
|
||||||
|
set(KWIN_BUILD_OPENGL TRUE)
|
||||||
|
+ include_directories(${OPENGL_INCLUDE_DIR})
|
||||||
|
message("Building KWin with OpenGL support")
|
||||||
|
endif()
|
||||||
|
if(OPENGLES_FOUND AND (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GLESv2"))
|
||||||
|
set(KWIN_BUILD_OPENGLES TRUE)
|
||||||
|
+ include_directories(${OPENGLES_INCLUDE_DIR} ${OPENGLES_EGL_INCLUDE_DIR})
|
||||||
|
message("Building KWin with OpenGL ES 2 support")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
diff --git a/libkwineffects/kwinglplatform.cpp b/libkwineffects/kwinglplatform.cpp
|
||||||
|
index 548d459..5e5b25b 100644
|
||||||
|
--- a/libkwineffects/kwinglplatform.cpp
|
||||||
|
+++ b/libkwineffects/kwinglplatform.cpp
|
||||||
|
@@ -25,6 +25,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#include <QStringList>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
+#include <X11/Xlib.h>
|
||||||
|
+
|
||||||
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
diff --git a/libkwineffects/kwingltexture.cpp b/libkwineffects/kwingltexture.cpp
|
||||||
|
index 97d2747..1dcf0e3 100644
|
||||||
|
--- a/libkwineffects/kwingltexture.cpp
|
||||||
|
+++ b/libkwineffects/kwingltexture.cpp
|
||||||
|
@@ -186,7 +186,7 @@ void GLTexturePrivate::cleanup()
|
||||||
|
bool GLTexture::isNull() const
|
||||||
|
{
|
||||||
|
Q_D(const GLTexture);
|
||||||
|
- return None == d->m_texture;
|
||||||
|
+ return 0 == d->m_texture;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSize GLTexture::size() const
|
Loading…
Reference in a new issue