Update libhybris and add more related packages
This commit is contained in:
parent
e07a79aa5d
commit
d3c369bc43
13 changed files with 385 additions and 50 deletions
32
hybris/drihybris/APKBUILD
Normal file
32
hybris/drihybris/APKBUILD
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
pkgname=drihybris
|
||||||
|
pkgver=1.0_git20171130
|
||||||
|
pkgrel=0
|
||||||
|
_commit=fbaf21e7cb343e0b7cd29f256ec28c46c01c07b8
|
||||||
|
pkgdesc="custom DRI3-based Xorg extension for use with libhybris"
|
||||||
|
url="https://github.com/NotKit/drihybris"
|
||||||
|
arch="armhf aarch64"
|
||||||
|
license="MIT"
|
||||||
|
subpackages="$pkgname-doc $pkgname-dev"
|
||||||
|
depends_dev="drihybrisproto"
|
||||||
|
makedepends="autoconf automake libtool util-macros
|
||||||
|
xorg-server-dev libxi-dev drihybrisproto"
|
||||||
|
source="$pkgname-$_commit.tar.gz::https://github.com/NotKit/drihybris/archive/$_commit.tar.gz"
|
||||||
|
|
||||||
|
builddir="$srcdir"/$pkgname-$_commit
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$builddir"
|
||||||
|
export LDFLAGS="$LDFLAGS -Wl,-z,lazy"
|
||||||
|
./autogen.sh \
|
||||||
|
--build=$CBUILD \
|
||||||
|
--host=$CHOST \
|
||||||
|
--prefix=/usr \
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$builddir"
|
||||||
|
make DESTDIR="$pkgdir" install
|
||||||
|
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
|
||||||
|
}
|
||||||
|
sha512sums="273fad45bfee1211195eff8dad979c97edda7440adc6da766346ff727216cad495d01132e20bdabc33b4e95b7420cf4d6c3c64b95ab5020ed5de5f58ad72ceb2 drihybris-fbaf21e7cb343e0b7cd29f256ec28c46c01c07b8.tar.gz"
|
17
hybris/drihybrisproto/APKBUILD
Normal file
17
hybris/drihybrisproto/APKBUILD
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
pkgname=drihybrisproto
|
||||||
|
pkgver=1.0_git20171130
|
||||||
|
pkgrel=0
|
||||||
|
_commit=fbaf21e7cb343e0b7cd29f256ec28c46c01c07b8
|
||||||
|
pkgdesc="X11 DRIHYBRIS protocol"
|
||||||
|
url="https://github.com/NotKit/drihybris"
|
||||||
|
arch="noarch"
|
||||||
|
license="MIT"
|
||||||
|
options="!check"
|
||||||
|
depends=""
|
||||||
|
|
||||||
|
source="$pkgname-$_commit.h::https://raw.githubusercontent.com/NotKit/drihybris/$_commit/src/$pkgname.h"
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm644 "$srcdir/$pkgname-$_commit.h" "$pkgdir/usr/include/X11/extensions/$pkgname.h"
|
||||||
|
}
|
||||||
|
sha512sums="233a07afb46d1c71062c12131022b23649a6355949c6dcbda5d1fb709ab6cca79e391cc7e29f02542e69ebb25fde8ad09280cbcb166f348b01bccbb68f540092 drihybrisproto-fbaf21e7cb343e0b7cd29f256ec28c46c01c07b8.h"
|
39
hybris/glamor-hybris/APKBUILD
Normal file
39
hybris/glamor-hybris/APKBUILD
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
pkgname=glamor-hybris
|
||||||
|
pkgver=1.0_git20180114
|
||||||
|
pkgrel=0
|
||||||
|
_commit=d15da5304b6b15bc12864041267880abb5565d0c
|
||||||
|
pkgdesc="glamor Xserver 2D acceleration modified to work with libhybris drivers"
|
||||||
|
url="https://github.com/NotKit/glamor-hybris"
|
||||||
|
arch="armhf aarch64"
|
||||||
|
license="MIT"
|
||||||
|
subpackages="$pkgname-doc $pkgname-dev"
|
||||||
|
depends=
|
||||||
|
makedepends="autoconf automake util-macros libtool
|
||||||
|
xorg-server-dev libxi-dev fontsproto randrproto
|
||||||
|
videoproto renderproto drihybrisproto drihybris-dev libepoxy-dev
|
||||||
|
libhybris-dev"
|
||||||
|
|
||||||
|
source="$pkgname-$_commit.tar.gz::https://github.com/NotKit/glamor-hybris/archive/$_commit.tar.gz"
|
||||||
|
|
||||||
|
builddir="$srcdir"/$pkgname-$_commit
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$builddir"
|
||||||
|
export LDFLAGS="$LDFLAGS -Wl,-z,lazy"
|
||||||
|
export CPPFLAGS="$CPPFLAGS -I/usr/include/android-7.1"
|
||||||
|
|
||||||
|
./autogen.sh \
|
||||||
|
--build=$CBUILD \
|
||||||
|
--host=$CHOST \
|
||||||
|
--prefix=/usr \
|
||||||
|
--enable-glamor-gles2
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$builddir"
|
||||||
|
make DESTDIR="$pkgdir" install
|
||||||
|
mv "$pkgdir/usr/include/xorg/glamor.h" "$pkgdir/usr/include/xorg/glamor-hybris.h"
|
||||||
|
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
|
||||||
|
}
|
||||||
|
sha512sums="3dbeb9ca69a425f0d24bedb201d598fec7103c43fdff2b0cda491db2b0f82a58116677e410051d98c505ca651a8e3f2361fd478d37a96e05b87b4bbb3a472916 glamor-hybris-d15da5304b6b15bc12864041267880abb5565d0c.tar.gz"
|
|
@ -1,32 +1,32 @@
|
||||||
From b9251827932545a455bfecea7b259eba5677c3bd Mon Sep 17 00:00:00 2001
|
From ae11619430c59ba4a23acd8659157f43b863d2ed Mon Sep 17 00:00:00 2001
|
||||||
From: NeKit <nekit1000@gmail.com>
|
From: NeKit <nekit1000@gmail.com>
|
||||||
Date: Wed, 18 Oct 2017 23:12:51 +0300
|
Date: Wed, 18 Oct 2017 23:12:51 +0300
|
||||||
Subject: [PATCH 3/3] Implement X11 EGL platform based on wayland code.
|
Subject: [PATCH 3/3] Implement X11 EGL platform based on wayland code.
|
||||||
|
|
||||||
Allow window system to hook eglGetConfigAttrib (needed for X11
|
* Allow window system to hook eglGetConfigAttrib (needed for X11 EGL_NATIVE_VISUAL_ID)
|
||||||
EGL_NATIVE_VISUAL_ID)
|
|
||||||
|
|
||||||
Use custom DRIHYBRIS Xorg extension for buffer sharing to Xorg/glamor when
|
* Use custom DRIHYBRIS Xorg extension for buffer sharing to Xorg/glamor when possible
|
||||||
possible
|
Gives huge speedup over XShmPutImage, but requires patched Glamor and DDX driver to
|
||||||
|
utilize it
|
||||||
|
|
||||||
Gives huge speedup over XShmPutImage, but requires patched Glamor and DDX driver
|
* Check for window resizes using Present extension when possible
|
||||||
to utilize it
|
|
||||||
|
|
||||||
Check for window resizes using Present extension when possible
|
* x11nativewindow: use same depth as target window for pixmap.
|
||||||
|
Call xcb_present_pixmap instead of xcb_copy_area to present pixmap
|
||||||
---
|
---
|
||||||
hybris/configure.ac | 1 +
|
hybris/configure.ac | 1 +
|
||||||
hybris/egl/egl.c | 13 +-
|
hybris/egl/egl.c | 13 +-
|
||||||
hybris/egl/platforms/Makefile.am | 2 +-
|
hybris/egl/platforms/Makefile.am | 2 +-
|
||||||
hybris/egl/platforms/common/eglplatformcommon.cpp | 2 +-
|
.../platforms/common/eglplatformcommon.cpp | 2 +-
|
||||||
hybris/egl/platforms/x11/Makefile.am | 43 ++
|
hybris/egl/platforms/x11/Makefile.am | 43 +
|
||||||
hybris/egl/platforms/x11/eglplatform_x11.cpp | 235 +++++++
|
hybris/egl/platforms/x11/eglplatform_x11.cpp | 235 ++++++
|
||||||
hybris/egl/platforms/x11/x11_window.cpp | 728 ++++++++++++++++++++++
|
hybris/egl/platforms/x11/x11_window.cpp | 742 ++++++++++++++++++
|
||||||
hybris/egl/platforms/x11/x11_window.h | 201 ++++++
|
hybris/egl/platforms/x11/x11_window.h | 206 +++++
|
||||||
hybris/egl/platforms/x11/xcb_drihybris.c | 167 +++++
|
hybris/egl/platforms/x11/xcb_drihybris.c | 167 ++++
|
||||||
hybris/egl/platforms/x11/xcb_drihybris.h | 122 ++++
|
hybris/egl/platforms/x11/xcb_drihybris.h | 122 +++
|
||||||
hybris/egl/ws.c | 9 +
|
hybris/egl/ws.c | 9 +
|
||||||
hybris/egl/ws.h | 2 +
|
hybris/egl/ws.h | 2 +
|
||||||
12 files changed, 1522 insertions(+), 3 deletions(-)
|
12 files changed, 1541 insertions(+), 3 deletions(-)
|
||||||
create mode 100644 hybris/egl/platforms/x11/Makefile.am
|
create mode 100644 hybris/egl/platforms/x11/Makefile.am
|
||||||
create mode 100644 hybris/egl/platforms/x11/eglplatform_x11.cpp
|
create mode 100644 hybris/egl/platforms/x11/eglplatform_x11.cpp
|
||||||
create mode 100644 hybris/egl/platforms/x11/x11_window.cpp
|
create mode 100644 hybris/egl/platforms/x11/x11_window.cpp
|
||||||
|
@ -390,10 +390,10 @@ index 0000000..001b733
|
||||||
+};
|
+};
|
||||||
diff --git a/hybris/egl/platforms/x11/x11_window.cpp b/hybris/egl/platforms/x11/x11_window.cpp
|
diff --git a/hybris/egl/platforms/x11/x11_window.cpp b/hybris/egl/platforms/x11/x11_window.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..4363e80
|
index 0000000..26e8844
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/hybris/egl/platforms/x11/x11_window.cpp
|
+++ b/hybris/egl/platforms/x11/x11_window.cpp
|
||||||
@@ -0,0 +1,728 @@
|
@@ -0,0 +1,742 @@
|
||||||
+/****************************************************************************************
|
+/****************************************************************************************
|
||||||
+ **
|
+ **
|
||||||
+ ** Copyright (C) 2013 Jolla Ltd.
|
+ ** Copyright (C) 2013 Jolla Ltd.
|
||||||
|
@ -440,8 +440,8 @@ index 0000000..4363e80
|
||||||
+void X11NativeWindow::resize(unsigned int width, unsigned int height)
|
+void X11NativeWindow::resize(unsigned int width, unsigned int height)
|
||||||
+{
|
+{
|
||||||
+ lock();
|
+ lock();
|
||||||
+ this->m_defaultWidth = width;
|
+ this->m_defaultWidth = this->m_width = width;
|
||||||
+ this->m_defaultHeight = height;
|
+ this->m_defaultHeight = this->m_height = height;
|
||||||
+ unlock();
|
+ unlock();
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -489,6 +489,7 @@ index 0000000..4363e80
|
||||||
+
|
+
|
||||||
+ m_width = window_attributes.width;
|
+ m_width = window_attributes.width;
|
||||||
+ m_height = window_attributes.height;
|
+ m_height = window_attributes.height;
|
||||||
|
+ m_depth = window_attributes.depth;
|
||||||
+
|
+
|
||||||
+ const char *env = getenv("HYBRIS_X11_FORCE_WIDTH");
|
+ const char *env = getenv("HYBRIS_X11_FORCE_WIDTH");
|
||||||
+ if (env != NULL)
|
+ if (env != NULL)
|
||||||
|
@ -694,6 +695,7 @@ index 0000000..4363e80
|
||||||
+
|
+
|
||||||
+void X11NativeWindow::finishSwap()
|
+void X11NativeWindow::finishSwap()
|
||||||
+{
|
+{
|
||||||
|
+ static int serial = 0;
|
||||||
+ int ret = 0;
|
+ int ret = 0;
|
||||||
+ lock();
|
+ lock();
|
||||||
+
|
+
|
||||||
|
@ -707,7 +709,7 @@ index 0000000..4363e80
|
||||||
+ m_lastBuffer = wnb;
|
+ m_lastBuffer = wnb;
|
||||||
+ wnb->busy = 1;
|
+ wnb->busy = 1;
|
||||||
+
|
+
|
||||||
+ fronted.push_back(wnb);
|
+ // fronted.push_back(wnb);
|
||||||
+
|
+
|
||||||
+ m_damage_rects = NULL;
|
+ m_damage_rects = NULL;
|
||||||
+ m_damage_n_rects = 0;
|
+ m_damage_n_rects = 0;
|
||||||
|
@ -717,9 +719,21 @@ index 0000000..4363e80
|
||||||
+ if (wnb->pixmap == 0)
|
+ if (wnb->pixmap == 0)
|
||||||
+ wnb->pixmap_from_buffer(m_connection, m_window);
|
+ wnb->pixmap_from_buffer(m_connection, m_window);
|
||||||
+
|
+
|
||||||
+ xcb_copy_area(m_connection, wnb->pixmap, m_window, m_xcb_gc,
|
+ xcb_present_pixmap(m_connection,
|
||||||
+ 0, 0, 0, 0, /* src_x, src_y, dst_x, dst_y */
|
+ m_window,
|
||||||
+ m_width, m_height);
|
+ wnb->pixmap,
|
||||||
|
+ (uint32_t) serial++,
|
||||||
|
+ 0, /* valid */
|
||||||
|
+ 0, /* update */
|
||||||
|
+ 0, /* x_off */
|
||||||
|
+ 0, /* y_off */
|
||||||
|
+ None, /* target_crtc */
|
||||||
|
+ None,
|
||||||
|
+ NULL,
|
||||||
|
+ XCB_PRESENT_OPTION_NONE,
|
||||||
|
+ 0,
|
||||||
|
+ 0,
|
||||||
|
+ 0, 0, NULL);
|
||||||
+ xcb_flush(m_connection);
|
+ xcb_flush(m_connection);
|
||||||
+
|
+
|
||||||
+ lock();
|
+ lock();
|
||||||
|
@ -917,7 +931,7 @@ index 0000000..4363e80
|
||||||
+
|
+
|
||||||
+ X11NativeWindowBuffer *wnb;
|
+ X11NativeWindowBuffer *wnb;
|
||||||
+
|
+
|
||||||
+ wnb = new ClientX11Buffer(m_alloc, m_width, m_height, m_format, m_usage);
|
+ wnb = new ClientX11Buffer(m_alloc, m_width, m_height, m_format, m_usage, m_depth);
|
||||||
+ m_bufList.push_back(wnb);
|
+ m_bufList.push_back(wnb);
|
||||||
+ ++m_freeBufs;
|
+ ++m_freeBufs;
|
||||||
+
|
+
|
||||||
|
@ -1112,7 +1126,7 @@ index 0000000..4363e80
|
||||||
+ drawable,
|
+ drawable,
|
||||||
+ stride * height * 4,
|
+ stride * height * 4,
|
||||||
+ this->width, height, stride,
|
+ this->width, height, stride,
|
||||||
+ 32, 32,
|
+ windowDepth, 32,
|
||||||
+ handle->numInts,
|
+ handle->numInts,
|
||||||
+ handle->numFds,
|
+ handle->numFds,
|
||||||
+ (const uint32_t *)(handle->data + handle->numFds),
|
+ (const uint32_t *)(handle->data + handle->numFds),
|
||||||
|
@ -1124,10 +1138,10 @@ index 0000000..4363e80
|
||||||
+// vim: noai:ts=4:sw=4:ss=4:expandtab
|
+// vim: noai:ts=4:sw=4:ss=4:expandtab
|
||||||
diff --git a/hybris/egl/platforms/x11/x11_window.h b/hybris/egl/platforms/x11/x11_window.h
|
diff --git a/hybris/egl/platforms/x11/x11_window.h b/hybris/egl/platforms/x11/x11_window.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..cceaee5
|
index 0000000..e5be070
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/hybris/egl/platforms/x11/x11_window.h
|
+++ b/hybris/egl/platforms/x11/x11_window.h
|
||||||
@@ -0,0 +1,201 @@
|
@@ -0,0 +1,206 @@
|
||||||
+/****************************************************************************************
|
+/****************************************************************************************
|
||||||
+ **
|
+ **
|
||||||
+ ** Copyright (C) 2013 Jolla Ltd.
|
+ ** Copyright (C) 2013 Jolla Ltd.
|
||||||
|
@ -1191,6 +1205,7 @@ index 0000000..cceaee5
|
||||||
+ int busy;
|
+ int busy;
|
||||||
+ int youngest;
|
+ int youngest;
|
||||||
+ ANativeWindowBuffer *other;
|
+ ANativeWindowBuffer *other;
|
||||||
|
+ int windowDepth;
|
||||||
+ xcb_pixmap_t pixmap;
|
+ xcb_pixmap_t pixmap;
|
||||||
+
|
+
|
||||||
+ void pixmap_from_buffer(xcb_connection_t *connection, xcb_drawable_t drawable);
|
+ void pixmap_from_buffer(xcb_connection_t *connection, xcb_drawable_t drawable);
|
||||||
|
@ -1208,7 +1223,8 @@ index 0000000..cceaee5
|
||||||
+ unsigned int width,
|
+ unsigned int width,
|
||||||
+ unsigned int height,
|
+ unsigned int height,
|
||||||
+ unsigned int format,
|
+ unsigned int format,
|
||||||
+ unsigned int usage)
|
+ unsigned int usage,
|
||||||
|
+ unsigned int windowDepth)
|
||||||
+ {
|
+ {
|
||||||
+ // Base members
|
+ // Base members
|
||||||
+ ANativeWindowBuffer::width = width;
|
+ ANativeWindowBuffer::width = width;
|
||||||
|
@ -1226,6 +1242,8 @@ index 0000000..cceaee5
|
||||||
+ assert(alloc_ok == 0);
|
+ assert(alloc_ok == 0);
|
||||||
+ this->youngest = 0;
|
+ this->youngest = 0;
|
||||||
+ this->common.incRef(&this->common);
|
+ this->common.incRef(&this->common);
|
||||||
|
+
|
||||||
|
+ this->windowDepth = windowDepth;
|
||||||
+ this->pixmap = 0;
|
+ this->pixmap = 0;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
@ -1312,6 +1330,7 @@ index 0000000..cceaee5
|
||||||
+ X11NativeWindowBuffer *m_lastBuffer;
|
+ X11NativeWindowBuffer *m_lastBuffer;
|
||||||
+ unsigned int m_width;
|
+ unsigned int m_width;
|
||||||
+ unsigned int m_height;
|
+ unsigned int m_height;
|
||||||
|
+ unsigned int m_depth;
|
||||||
+ unsigned int m_format;
|
+ unsigned int m_format;
|
||||||
+ unsigned int m_defaultWidth;
|
+ unsigned int m_defaultWidth;
|
||||||
+ unsigned int m_defaultHeight;
|
+ unsigned int m_defaultHeight;
|
||||||
|
@ -1668,5 +1687,5 @@ index c4811c0..92b221a 100644
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
--
|
--
|
||||||
2.15.1
|
2.17.0
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
pkgname=libhybris
|
pkgname=libhybris
|
||||||
pkgver=1.0_git20180212
|
pkgver=1.0_git20180212
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
arch="armhf aarch64"
|
arch="x86 armhf aarch64"
|
||||||
url="https://github.com/libhybris/libhybris"
|
url="https://github.com/libhybris/libhybris"
|
||||||
license="Apache"
|
license="Apache"
|
||||||
makedepends="autoconf automake libtool wayland-dev linux-headers bsd-compat-headers
|
makedepends="autoconf automake libtool wayland-dev linux-headers bsd-compat-headers
|
||||||
libx11-dev libxcb-dev libxext-dev
|
libx11-dev libxcb-dev libxext-dev
|
||||||
android-headers-7.1 android-headers-7.1-caf android-headers-4.4"
|
android-headers-7.1 android-headers-7.1-caf android-headers-4.4"
|
||||||
depends_dev="bsd-compat-headers android-headers-7.1"
|
depends_dev="bsd-compat-headers android-headers-7.1"
|
||||||
_rev=54dd4749706334882f9c404fca01a19f01325d07
|
_rev=4a7d95b73bf40bf6d03d12bf270974c3d0278099
|
||||||
source="$pkgname-$_rev.tar.gz::https://github.com/libhybris/libhybris/archive/$_rev.tar.gz
|
source="$pkgname-$_rev.tar.gz::https://github.com/libhybris/libhybris/archive/$_rev.tar.gz
|
||||||
0001-Make-libhybris-compile-with-musl.patch
|
0001-Make-libhybris-compile-with-musl.patch
|
||||||
0002-tests-Regression-test-for-EGL-glibc-TLS-conflict.patch
|
0002-tests-Regression-test-for-EGL-glibc-TLS-conflict.patch
|
||||||
|
@ -21,6 +21,9 @@ subpackages="$pkgname-dev $pkgname-egl $pkgname-gles $pkgname-libwayland-egl:_wa
|
||||||
if [ "$CARCH" == "aarch64" ]; then
|
if [ "$CARCH" == "aarch64" ]; then
|
||||||
subpackages="$pkgname-dev $pkgname-egl $pkgname-gles $pkgname-libwayland-egl:_wayland
|
subpackages="$pkgname-dev $pkgname-egl $pkgname-gles $pkgname-libwayland-egl:_wayland
|
||||||
$pkgname-7.1:_specific $pkgname-7.1-caf:_specific"
|
$pkgname-7.1:_specific $pkgname-7.1-caf:_specific"
|
||||||
|
elif [ "$CARCH" == "x86" ]; then
|
||||||
|
subpackages="$pkgname-dev $pkgname-egl $pkgname-gles $pkgname-libwayland-egl:_wayland
|
||||||
|
$pkgname-7.1:_specific $pkgname-4.4:_specific"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
options="!check !strip !tracedeps"
|
options="!check !strip !tracedeps"
|
||||||
|
@ -56,6 +59,10 @@ build() {
|
||||||
_vers="7.1 7.1-caf"
|
_vers="7.1 7.1-caf"
|
||||||
_ldpath="/usr/libexec/droid-hybris/system/lib64:/vendor/lib64:/system/lib64"
|
_ldpath="/usr/libexec/droid-hybris/system/lib64:/vendor/lib64:/system/lib64"
|
||||||
_arch="arm64"
|
_arch="arm64"
|
||||||
|
elif [ "$CARCH" == "x86" ]; then
|
||||||
|
_vers="7.1 4.4"
|
||||||
|
_ldpath="/usr/libexec/droid-hybris/system/lib:/vendor/lib:/system/lib"
|
||||||
|
_arch="x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for _headers_ver in $_vers; do
|
for _headers_ver in $_vers; do
|
||||||
|
@ -91,6 +98,8 @@ package() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_specific() {
|
_specific() {
|
||||||
|
depends="$pkgname"
|
||||||
|
|
||||||
for _bin in ${_bins_specific}; do
|
for _bin in ${_bins_specific}; do
|
||||||
install -Dm755 "${_tmppkgdir}/${subpkgname}/usr/bin/${_bin}" \
|
install -Dm755 "${_tmppkgdir}/${subpkgname}/usr/bin/${_bin}" \
|
||||||
"${subpkgdir}/usr/bin/${_bin}"
|
"${subpkgdir}/usr/bin/${_bin}"
|
||||||
|
@ -103,25 +112,28 @@ _specific() {
|
||||||
}
|
}
|
||||||
|
|
||||||
egl() {
|
egl() {
|
||||||
options="!tracedeps"
|
depends="$pkgname"
|
||||||
pkgdesc="libhybris libEGL runtime libraries"
|
pkgdesc="libhybris libEGL runtime libraries"
|
||||||
install -d "$subpkgdir"/usr/lib
|
install="$subpkgname.post-install"
|
||||||
|
|
||||||
|
install -d "$subpkgdir"/usr/lib/libhybris-egl
|
||||||
mv "$pkgdir"/usr/lib/libEGL.so.* \
|
mv "$pkgdir"/usr/lib/libEGL.so.* \
|
||||||
"$subpkgdir"/usr/lib/
|
"$subpkgdir"/usr/lib/libhybris-egl/
|
||||||
}
|
}
|
||||||
|
|
||||||
gles() {
|
gles() {
|
||||||
options="!tracedeps"
|
depends="$pkgname"
|
||||||
pkgdesc="libhybris libGLESv2 runtime libraries"
|
pkgdesc="libhybris libGLESv2 runtime libraries"
|
||||||
install -d "$subpkgdir"/usr/lib
|
install -d "$subpkgdir"/usr/lib/libhybris-egl
|
||||||
mv "$pkgdir"/usr/lib/libGLES*.so.* \
|
mv "$pkgdir"/usr/lib/libGLES*.so.* \
|
||||||
"$subpkgdir"/usr/lib/
|
"$subpkgdir"/usr/lib/libhybris-egl/
|
||||||
}
|
}
|
||||||
|
|
||||||
_wayland() {
|
_wayland() {
|
||||||
|
depends="$pkgname"
|
||||||
pkgdesc="libhybris libwayland-egl library"
|
pkgdesc="libhybris libwayland-egl library"
|
||||||
mkdir -p "$subpkgdir"/usr/lib
|
mkdir -p "$subpkgdir"/usr/lib/libhybris-egl
|
||||||
mv "$pkgdir"/usr/lib/libwayland-egl.so.* "$subpkgdir"/usr/lib/ \
|
mv "$pkgdir"/usr/lib/libwayland-egl.so.* "$subpkgdir"/usr/lib/libhybris-egl/ \
|
||||||
|| return 1
|
|| return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,8 +141,10 @@ dev() {
|
||||||
default_dev
|
default_dev
|
||||||
|
|
||||||
# Avoid conflicts with mesa-dev
|
# Avoid conflicts with mesa-dev
|
||||||
rm -f "$subpkgdir"/usr/lib/lib*GL*.so
|
install -d "$subpkgdir"/usr/lib/libhybris-egl
|
||||||
rm -f "$subpkgdir"/usr/lib/libwayland-egl.so
|
|
||||||
|
mv "$subpkgdir"/usr/lib/lib*GL*.so "$subpkgdir"/usr/lib/libhybris-egl
|
||||||
|
mv "$subpkgdir"/usr/lib/libwayland-egl.so "$subpkgdir"/usr/lib/libhybris-egl
|
||||||
|
|
||||||
cd "$subpkgdir"/usr/lib/pkgconfig
|
cd "$subpkgdir"/usr/lib/pkgconfig
|
||||||
rm -f egl.pc glesv*.pc wayland-egl.pc
|
rm -f egl.pc glesv*.pc wayland-egl.pc
|
||||||
|
@ -145,7 +159,7 @@ dev() {
|
||||||
ln -s ../hybris/EGL/eglhybris.h .
|
ln -s ../hybris/EGL/eglhybris.h .
|
||||||
}
|
}
|
||||||
|
|
||||||
sha512sums="798360130e540d9dd29ec937b3d01a1b146881c45ec6a2dd1a599a0164d46886b58927d38575993b525a06e99fcc2dd46f020e70f7e5c7cc43258b840ae183f8 libhybris-54dd4749706334882f9c404fca01a19f01325d07.tar.gz
|
sha512sums="378ad6815f2c17dec7c0043499833e55498f48634aa6dc8d5a5c2e8bfc4281f76690bca6f35e74f47a41b364baab1533ff8d8898d61a9e5b53897deb7d180f97 libhybris-4a7d95b73bf40bf6d03d12bf270974c3d0278099.tar.gz
|
||||||
9655816dc3d89f329801a74f4499c3752cbc96f7ba2e052765335a2cbd7e74cdf45064260ab27537bcd9d64673144eac6f89e31af4b4c6b4a4792ad7b398555d 0001-Make-libhybris-compile-with-musl.patch
|
9655816dc3d89f329801a74f4499c3752cbc96f7ba2e052765335a2cbd7e74cdf45064260ab27537bcd9d64673144eac6f89e31af4b4c6b4a4792ad7b398555d 0001-Make-libhybris-compile-with-musl.patch
|
||||||
1355a4403d1af8bdf75b9e4502cbfc093b9788224ce7c24a1f6a53dd7996d385d31a3362577a4293db6b6d0dd0ae4e88140b38c658ff0a288d9acfc2753859bb 0002-tests-Regression-test-for-EGL-glibc-TLS-conflict.patch
|
1355a4403d1af8bdf75b9e4502cbfc093b9788224ce7c24a1f6a53dd7996d385d31a3362577a4293db6b6d0dd0ae4e88140b38c658ff0a288d9acfc2753859bb 0002-tests-Regression-test-for-EGL-glibc-TLS-conflict.patch
|
||||||
f7d7b460af5f13c37289d7eadfa5eb52248a4a5379a1da07b74231eb4fc9c1ccda6644bcd39bbae89bd068d7f3f6c5fe4e9ae6b41991c1f3b48d6b4d59d951d8 0003-Implement-X11-EGL-platform-based-on-wayland-code.patch"
|
865ad86b297dcd09416a9df4e366d58429f737aeaa380308fd04943451cefd8500a18857e61c8de43cb4595c59d438d3f12855e189932ab7df8a2f354086a21c 0003-Implement-X11-EGL-platform-based-on-wayland-code.patch"
|
||||||
|
|
6
hybris/libhybris/libhybris-egl.post-install
Normal file
6
hybris/libhybris/libhybris-egl.post-install
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
|
if [ ! -f /etc/ld-musl-$ARCH.path ]; then
|
||||||
|
echo "/usr/lib/libhybris-egl:/lib:/usr/local/lib:/usr/lib" > /etc/ld-musl-$ARCH.path
|
||||||
|
fi
|
40
hybris/lxc-android/APKBUILD
Normal file
40
hybris/lxc-android/APKBUILD
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
pkgname=lxc-android
|
||||||
|
pkgver=1.0_git20180311
|
||||||
|
pkgrel=0
|
||||||
|
arch="noarch"
|
||||||
|
url="https://github.com/Halium/lxc-android"
|
||||||
|
license="Apache"
|
||||||
|
makedepends=""
|
||||||
|
depends="lxc"
|
||||||
|
_commit=f490b2cd0ca0498543089d79f15c24f3801cd8b7
|
||||||
|
install="$pkgname.post-install"
|
||||||
|
source="$pkgname-$_rev.tar.gz::https://github.com/Halium/$pkgname/archive/$_commit.tar.gz
|
||||||
|
pre-start.sh
|
||||||
|
lxc-android.init"
|
||||||
|
pkgdesc="Configuration for starting Halium build of Android inside LXC container"
|
||||||
|
|
||||||
|
builddir="$srcdir/$pkgname-$_commit"
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$builddir"
|
||||||
|
mkdir -p "$pkgdir"
|
||||||
|
cp -r "$builddir"/* "$pkgdir"
|
||||||
|
|
||||||
|
# Remove unneeded udev rule override
|
||||||
|
rm -f "$pkgdir/etc/udev/rules.d/50-firmware.rules"
|
||||||
|
|
||||||
|
# Remove systemd units
|
||||||
|
rm -rf "$pkgdir/etc/systemd"
|
||||||
|
rm -rf "$pkgdir/lib/systemd"
|
||||||
|
|
||||||
|
# Install wrapper so pre-start.sh could be provided by device package
|
||||||
|
mv "$pkgdir/var/lib/lxc/android/pre-start.sh" "$pkgdir/var/lib/lxc/android/pre-start.default.sh"
|
||||||
|
install -m755 "$srcdir/pre-start.sh" "$pkgdir/var/lib/lxc/android/pre-start.sh"
|
||||||
|
|
||||||
|
# OpenRC services
|
||||||
|
install -Dm755 "${srcdir}/lxc-android.init" \
|
||||||
|
"${pkgdir}/etc/init.d/lxc-android"
|
||||||
|
}
|
||||||
|
sha512sums="aed41538bc19fd228605bef4bf089a7bbc96964211abe5932e8685d089c32fce11fa7ba1068ad28f345895fef0d02dd388c4faef3c6abdbfbdd10ba96fcbbed0 lxc-android-.tar.gz
|
||||||
|
ef7081ea55a1acd5a6c5a973b4a7fc79bad4d5fdc721bc481e4ed92962a8ba9b70634e2a0a8f0afd28c14bd1fd4e1956914f68239c3dc34e41e167254252b1df pre-start.sh
|
||||||
|
ad373e26fb4850f887ca0be76a4c5f19115e214dcbdc315cf24e41eabfd03eebf8f19085a49c97661861b16e8005355c7fd10e86acdb4593d43250e3fed998fb lxc-android.init"
|
56
hybris/lxc-android/lxc-android.init
Normal file
56
hybris/lxc-android/lxc-android.init
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/sbin/openrc-run
|
||||||
|
# Copyright 1999-2012 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: /var/cvsroot/gentoo-x86/app-emulation/lxc/files/lxc.initd.2,v 1.5 2012/07/21 05:07:15 flameeyes Exp $
|
||||||
|
|
||||||
|
extra_started_commands="reboot"
|
||||||
|
|
||||||
|
description="Android/Halium LXC container"
|
||||||
|
|
||||||
|
CONTAINER=android
|
||||||
|
: ${logdir:=/var/log/lxc}
|
||||||
|
: ${systemimage:=/var/lib/lxc/android/system.img}
|
||||||
|
|
||||||
|
command="/usr/bin/lxc-start"
|
||||||
|
pidfile="/var/run/lxc/$CONTAINER.pid"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need localmount sysfs cgroups
|
||||||
|
after firewall net
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
checkpath -d /data
|
||||||
|
checkpath -d /system
|
||||||
|
|
||||||
|
ebegin "Mounting Android filesystems and starting Halium LXC container"
|
||||||
|
mount -o ro,loop $systemimage /system
|
||||||
|
|
||||||
|
/usr/lib/lxc-android/mount-android
|
||||||
|
|
||||||
|
rm -f "$logdir"/${CONTAINER}.log
|
||||||
|
|
||||||
|
checkpath -d -m 750 -o root:wheel $logdir
|
||||||
|
|
||||||
|
checkpath -d ${pidfile%/*}
|
||||||
|
start-stop-daemon --start $command \
|
||||||
|
--pidfile $pidfile \
|
||||||
|
-- \
|
||||||
|
--daemon \
|
||||||
|
--pidfile $pidfile \
|
||||||
|
--name ${CONTAINER} \
|
||||||
|
--logpriority WARN \
|
||||||
|
--logfile $logdir/${CONTAINER}.log \
|
||||||
|
|| eend $? || return $?
|
||||||
|
lxc-wait -n ${CONTAINER} -t 5 -s RUNNING
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
ebegin "Stopping container ${CONTAINER}"
|
||||||
|
lxc-stop -k --name ${CONTAINER}
|
||||||
|
start-stop-daemon --stop --pidfile ${pidfile} \
|
||||||
|
--retry ${POWEROFF_SIGNAL:-SIGUSR2}/${TIMEOUT:-30} \
|
||||||
|
--progress
|
||||||
|
eend $?
|
||||||
|
}
|
20
hybris/lxc-android/lxc-android.post-install
Normal file
20
hybris/lxc-android/lxc-android.post-install
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
groupadd -g 1000 aid_system
|
||||||
|
groupadd -g 1003 aid_graphics
|
||||||
|
groupadd -g 1004 aid_input
|
||||||
|
groupadd -g 1005 aid_audio
|
||||||
|
groupadd -g 3001 aid_net_bt_admin
|
||||||
|
groupadd -g 3002 aid_net_bt
|
||||||
|
groupadd -g 3003 aid_inet
|
||||||
|
groupadd -g 3004 aid_inet_raw
|
||||||
|
groupadd -g 3005 aid_inet_admin
|
||||||
|
|
||||||
|
usermod -a -G aid_system,aid_graphics,aid_input,aid_audio,aid_net_bt_admin,aid_net_bt,aid_inet,aid_inet_raw,aid_inet_admin user
|
||||||
|
|
||||||
|
rc-update add cgroups default
|
||||||
|
rc-update add lxc-android default
|
||||||
|
|
||||||
|
# postmarketOS firmware loader conflicts with ueventd one
|
||||||
|
if [ -f "/etc/udev/rules.d/50-firmware.rules" ]; then
|
||||||
|
rm /etc/udev/rules.d/50-firmware.rules
|
||||||
|
fi
|
4
hybris/lxc-android/lxc-android.sh
Normal file
4
hybris/lxc-android/lxc-android.sh
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
cd /
|
||||||
|
exec chroot /run/android /init
|
||||||
|
|
9
hybris/lxc-android/pre-start.sh
Normal file
9
hybris/lxc-android/pre-start.sh
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
lxc_config_path="$(dirname $LXC_CONFIG_FILE)"
|
||||||
|
|
||||||
|
# Allow pre-start.sh to be provided by device package, otherwise use the default one
|
||||||
|
if [ -f "$lxc_config_path/pre-start.custom.sh" ]; then
|
||||||
|
exec $lxc_config_path/pre-start.custom.sh
|
||||||
|
else
|
||||||
|
exec $lxc_config_path/pre-start.default.sh
|
||||||
|
fi
|
4
hybris/xf86-video-hwcomposer/30-modules-hybris.conf
Normal file
4
hybris/xf86-video-hwcomposer/30-modules-hybris.conf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Section "Module"
|
||||||
|
Load "drihybris"
|
||||||
|
Load "glamoreglhybris"
|
||||||
|
EndSection
|
75
hybris/xf86-video-hwcomposer/APKBUILD
Normal file
75
hybris/xf86-video-hwcomposer/APKBUILD
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
pkgname=xf86-video-hwcomposer
|
||||||
|
pkgver=1.0_git20180921
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="X.Org driver for Android devices rendering through HWComposer API"
|
||||||
|
url="https://github.com/NotKit/xf86-video-hwcomposer"
|
||||||
|
arch="armhf aarch64"
|
||||||
|
license="MIT"
|
||||||
|
depends="drihybris glamor-hybris"
|
||||||
|
makedepends="autoconf automake util-macros libtool
|
||||||
|
xorg-server-dev libxi-dev fontsproto randrproto
|
||||||
|
videoproto renderproto xf86dgaproto drihybrisproto
|
||||||
|
glamor-hybris-dev drihybris-dev
|
||||||
|
android-headers-4.4 android-headers-7.1 android-headers-7.1-caf
|
||||||
|
libhybris-dev libhybris libhybris-7.1"
|
||||||
|
_commit=192402cd8c2917d056f63f85eb3f83816a1f4c9a
|
||||||
|
source="$pkgname-$_commit.tar.gz::https://github.com/NotKit/$pkgname/archive/$_commit.tar.gz
|
||||||
|
30-modules-hybris.conf"
|
||||||
|
|
||||||
|
subpackages="$pkgname-doc"
|
||||||
|
|
||||||
|
if [ "$CARCH" == "armhf" ]; then
|
||||||
|
_vers="7.1 7.1-caf 4.4"
|
||||||
|
elif [ "$CARCH" == "aarch64" ]; then
|
||||||
|
_vers="7.1 7.1-caf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for _ver in $_vers; do
|
||||||
|
subpackages="$subpackages $pkgname-$_ver:_specific"
|
||||||
|
done
|
||||||
|
|
||||||
|
builddir="$srcdir/$pkgname-$_commit"
|
||||||
|
_tmppkgdir="$srcdir/tmpinstall"
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$builddir"
|
||||||
|
export LDFLAGS="$LDFLAGS -Wl,-z,lazy"
|
||||||
|
export CPPFLAGS="$CPPFLAGS -I/usr/include/android-7.1 -DMESA_EGL_NO_X11_HEADERS"
|
||||||
|
|
||||||
|
NOCONFIGURE=1 ./autogen.sh
|
||||||
|
|
||||||
|
./configure \
|
||||||
|
--build=$CBUILD \
|
||||||
|
--host=$CHOST \
|
||||||
|
--prefix=/usr \
|
||||||
|
--enable-drihybris \
|
||||||
|
--enable-glamor-hybris
|
||||||
|
|
||||||
|
for _ver in $_vers; do
|
||||||
|
msg "building $pkgname-$_ver"
|
||||||
|
|
||||||
|
for _makefile in "Makefile src/Makefile"; do
|
||||||
|
sed -i -E "s~/usr/include/android-[^ ]+~/usr/include/android-$_ver~g" $_makefile
|
||||||
|
done
|
||||||
|
|
||||||
|
make clean
|
||||||
|
make
|
||||||
|
make DESTDIR="${_tmppkgdir}/$pkgname-$_ver" install
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$builddir"
|
||||||
|
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
|
||||||
|
install -Dm644 "$srcdir"/30-modules-hybris.conf \
|
||||||
|
"$pkgdir"/etc/X11/xorg.conf.d/30-modules-hybris.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
_specific() {
|
||||||
|
_lib="xorg/modules/drivers/hwcomposer_drv.so"
|
||||||
|
install -Dm644 "${_tmppkgdir}/${subpkgname}/usr/lib/${_lib}" \
|
||||||
|
"${subpkgdir}/usr/lib/${_lib}"
|
||||||
|
}
|
||||||
|
|
||||||
|
sha512sums="1e567ea44b00b2941c306069579b76c4bc1c4d594e54f94550b3ae1402e047bc6b518b8568f185b7b742ee6fde56cf89e330de9211da6e38ad20963656869c24 xf86-video-hwcomposer-192402cd8c2917d056f63f85eb3f83816a1f4c9a.tar.gz
|
||||||
|
e8f9f6ec337e88ec440c4bdc3f3441a8252031d1a4265a251b500a087a2c88336861c7e3f81972019f6a492324e94253726ce031fedad60ff582dd8db73efac6 30-modules-hybris.conf"
|
Loading…
Reference in a new issue