summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: fb39da287623579d0e8413d1f3212e03fd170ebf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Maintainer: Michael Serpieri <mickybart@pygoscelis.org>

pkgbase=libhybris-git
pkgname=('libhybris-git' 'libhybris-libgl-git' 'libhybris-wayland-egl-git')
_pkgbase=libhybris
pkgver=1303.07b547e
pkgrel=1
arch=('armv7h' 'aarch64')
url="https://github.com/libhybris/libhybris"
license=('Apache')
makedepends=('wayland' 'hybris-android-headers')
source=("libhybris::git+https://github.com/libhybris/libhybris")
md5sums=('SKIP')

pkgver() {
  cd "${srcdir}/${_pkgbase}"
  echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD)
}

prepare() {
  cd "${_pkgbase}"

}

build() {
  cd "${srcdir}/${_pkgbase}/hybris"

  # set target arch for libhybris
  case "$CARCH" in
    "armv7h")
      _carch="arm"
      ;;
    "aarch64")
      _carch="arm64"
      ;;
    *)
      _carch="$CARCH"
  esac

  echo "Target architecture for libhybris: $_carch"

  ./autogen.sh \
    --enable-arch=$_carch \
    --prefix=/opt/android/hybris \
    --with-android-headers=/opt/android/include \
    --enable-wayland
  make

  # fake installation
  mkdir ${srcdir}/fakeinstall
  # lib dependency issue: workaround with -j1
  make -j1 DESTDIR="${srcdir}/fakeinstall" install
}

package_libhybris-git() {
  pkgdesc="hybris allows to use bionic-based HW adaptations in glibc systems"
  depends=('hybris-android-headers')
  provides=('libhybris')
  conflicts=('libhybris')

  cd "${srcdir}/${_pkgbase}/hybris"

  cp -av ${srcdir}/fakeinstall/* ${pkgdir}/

  # move pkgconfig to standard path
  install -m755 -d "${pkgdir}/usr/lib/"
  mv "${pkgdir}/opt/android/hybris/lib/pkgconfig" "${pkgdir}/usr/lib/" 
  rm -f ${pkgdir}/usr/lib/pkgconfig/{egl,glesv1_cm,glesv2,wayland-egl}.pc

  # create symlink to /usr/lib for every lib except those handle by package libgl, libwayland-egl
  find ${pkgdir}/opt/android/hybris/lib/ -type l -exec cp -a {} ${pkgdir}/usr/lib/ \;
  for i in $(find ${pkgdir}/opt/android/hybris/lib/ -not -type l -type f); do
    ln -s /opt/android/hybris/lib/$(basename $i) ${pkgdir}/usr/lib/
  done
  for i in $(find ${pkgdir}/usr/lib/ -name 'libEGL.so*' -or -name 'libGLES*' -or -name 'libwayland-egl.so*'); do
    rm -f $i
  done
}

package_libhybris-libgl-git() {
  pkgdesc="hybris 3-D graphics library"
  depends=('libhybris' 'libhybris-wayland-egl-git' 'mesa-hybris')
  provides=('libgl')
  replaces=('libgl')
  conflicts=('libgl')

  install -m755 -d ${pkgdir}/usr/lib/pkgconfig
  cp -av ${srcdir}/fakeinstall/opt/android/hybris/lib/pkgconfig/{egl,glesv1_cm,glesv2}.pc ${pkgdir}/usr/lib/pkgconfig/

  # WORKAROUND: libGL is not provided by libhybris so we use the one from mesa.
  #             Of course it will NOT work but we need it for Xwayland used kwin_wayland.
  #             Xwayland support should be broken and will need some analyze and fix.
  ln -s /usr/lib/mesa/libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1.2.0
  ln -s libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1
  ln -s libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so

  ln -s /opt/android/hybris/lib/libEGL.so.1.0.0 ${pkgdir}/usr/lib/libEGL.so.1.0.0
  ln -s libEGL.so.1.0.0 ${pkgdir}/usr/lib/libEGL.so.1
  ln -s libEGL.so.1.0.0 ${pkgdir}/usr/lib/libEGL.so

  ln -s /opt/android/hybris/lib/libGLESv1_CM.so.1.0.1 ${pkgdir}/usr/lib/libGLESv1_CM.so.1.0.1
  ln -s libGLESv1_CM.so.1.0.1 ${pkgdir}/usr/lib/libGLESv1_CM.so.1
  ln -s libGLESv1_CM.so.1.0.1 ${pkgdir}/usr/lib/libGLESv1_CM.so

  ln -s /opt/android/hybris/lib/libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/libGLESv2.so.2.0.0
  ln -s libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/libGLESv2.so.2
  ln -s libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/libGLESv2.so

}

package_libhybris-wayland-egl-git() {
  pkgdesc="hybris 3-D wayland library"
  depends=('libhybris')
  provides=('libwayland-egl')
  replaces=('libwayland-egl')
  conflicts=('libwayland-egl')

  install -m755 -d ${pkgdir}/usr/lib/pkgconfig
  cp ${srcdir}/fakeinstall/opt/android/hybris/lib/pkgconfig/wayland-egl.pc ${pkgdir}/usr/lib/pkgconfig

  ln -s /opt/android/hybris/lib/libwayland-egl.so.1.0.0 ${pkgdir}/usr/lib/libwayland-egl.so.1.0.0
  ln -s libwayland-egl.so.1.0.0 ${pkgdir}/usr/lib/libwayland-egl.so.1
  ln -s libwayland-egl.so.1.0.0 ${pkgdir}/usr/lib/libwayland-egl.so
}