From 0d85b53dd0f1473a960ae47429841e89377c1c87 Mon Sep 17 00:00:00 2001
From: Juan RP <xtraeme@voidlinux.eu>
Date: Mon, 7 Sep 2015 18:49:26 +0200
Subject: [PATCH] Refact Raspberry Pi firmware and userland packages.

- Packaged rpi-userland which now contains the userland GPU libs
and utilities, and builds on musl.
- rpi-firmware now just contains the boot files, nothing else.
- rpi-firmware-pcfiles has been merged into rpi-userland-devel and
has been removed.
---
 common/shlibs                                 | 25 ++++----
 srcpkgs/rpi-firmware-pcfiles/template         | 16 -----
 srcpkgs/rpi-firmware-src                      |  1 -
 srcpkgs/rpi-firmware/template                 | 37 +----------
 srcpkgs/rpi-userland-devel                    |  1 +
 .../{rpi-firmware => rpi-userland}/INSTALL    |  0
 .../files/bcm_host.pc                         |  0
 .../files/egl.pc                              |  0
 .../files/glesv2.pc                           |  0
 srcpkgs/rpi-userland/template                 | 62 +++++++++++++++++++
 10 files changed, 77 insertions(+), 65 deletions(-)
 delete mode 100644 srcpkgs/rpi-firmware-pcfiles/template
 delete mode 120000 srcpkgs/rpi-firmware-src
 create mode 120000 srcpkgs/rpi-userland-devel
 rename srcpkgs/{rpi-firmware => rpi-userland}/INSTALL (100%)
 rename srcpkgs/{rpi-firmware-pcfiles => rpi-userland}/files/bcm_host.pc (100%)
 rename srcpkgs/{rpi-firmware-pcfiles => rpi-userland}/files/egl.pc (100%)
 rename srcpkgs/{rpi-firmware-pcfiles => rpi-userland}/files/glesv2.pc (100%)
 create mode 100644 srcpkgs/rpi-userland/template

diff --git a/common/shlibs b/common/shlibs
index 20a43d39057..83a8ceaef57 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -119,12 +119,11 @@ libXrandr.so.2 libXrandr-1.3.0_1
 libGLU.so.1 glu-9.0.0_1
 libEGL.so.1 libEGL-7.11_1
 libEGL.so.1 nvidia-libs-346.72_2
-libEGL.so rpi-firmware-20150207_1
-libGLES.so rpi-firmware-20150207_1
-libGLESv1_CM.so rpi-firmware-20150207_1
 libGLESv1_CM.so.1 libGLES-1.0_1
 libGLESv2.so.2 libGLES-1.0_1
-libGLESv2.so rpi-firmware-20150207_1
+libEGL.so rpi-userland-0.0.0.0.20150907_1
+libGLES.so rpi-userland-0.0.0.0.20150907_1
+libGLESv2.so rpi-userland-0.0.0.0.20150907_1
 libwayland-egl.so.1 libwayland-egl-9.0.1_4
 libGL.so.1 libGL-7.11_1
 libGL.so.1 catalyst-libs-14.2_1
@@ -1185,15 +1184,15 @@ libtaginfo.so.1 libtaginfo-0.1.3_1
 libtaginfo_c.so.0 libtaginfo-0.1.3_1
 libaa.so.1 aalib-1.4rc4_2
 libbsd.so.0 libbsd-0.4.2_1
-libWFC.so rpi-firmware-20130228_1
-libbcm_host.so rpi-firmware-20130228_1
-libopenmaxil.so rpi-firmware-20130228_1
-libvchiq_arm.so rpi-firmware-20130228_1
-libvcos.so rpi-firmware-20130228_1
-libmmal.so rpi-firmware-20150206_1
-libmmal_core.so rpi-firmware-20150206_1
-libmmal_util.so rpi-firmware-20150206_1
-libOpenVG.so rpi-firmware-20150206_1
+libWFC.so rpi-userland-0.0.0.0.20150907_1
+libbcm_host.so rpi-userland-0.0.0.0.20150907_1
+libopenmaxil.so rpi-userland-0.0.0.0.20150907_1
+libvchiq_arm.so rpi-userland-0.0.0.0.20150907_1
+libvcos.so rpi-userland-0.0.0.0.20150907_1
+libmmal.so rpi-userland-0.0.0.0.20150907_1
+libmmal_core.so rpi-userland-0.0.0.0.20150907_1
+libmmal_util.so rpi-userland-0.0.0.0.20150907_1
+libOpenVG.so rpi-userland-0.0.0.0.20150907_1
 liblockdev.so.1 lockdev-1.0.3_1
 libcec.so.3.0 libcec-3.0.1_1
 libpython3.3m.so.1.0 python3-3.3.0_1
diff --git a/srcpkgs/rpi-firmware-pcfiles/template b/srcpkgs/rpi-firmware-pcfiles/template
deleted file mode 100644
index 16e55149161..00000000000
--- a/srcpkgs/rpi-firmware-pcfiles/template
+++ /dev/null
@@ -1,16 +0,0 @@
-# Template file for 'rpi-firmware-pcfiles'
-pkgname=rpi-firmware-pcfiles
-version=0.2
-revision=1
-noarch=yes
-homepage="http://www.raspberrypi.org"
-short_desc="Raspberry Pi pkg-config files for GLESv2/EGL"
-maintainer="Juan RP <xtraeme@voidlinux.eu>"
-license="Public domain"
-depends="rpi-firmware"
-conflicts="MesaLib-devel>=0"
-
-do_install() {
-	vmkdir usr/lib/pkgconfig
-	install -m644 ${FILESDIR}/*.pc ${DESTDIR}/usr/lib/pkgconfig
-}
diff --git a/srcpkgs/rpi-firmware-src b/srcpkgs/rpi-firmware-src
deleted file mode 120000
index 82a535bef3d..00000000000
--- a/srcpkgs/rpi-firmware-src
+++ /dev/null
@@ -1 +0,0 @@
-rpi-firmware
\ No newline at end of file
diff --git a/srcpkgs/rpi-firmware/template b/srcpkgs/rpi-firmware/template
index 4cfc8802316..f8a2aac1d38 100644
--- a/srcpkgs/rpi-firmware/template
+++ b/srcpkgs/rpi-firmware/template
@@ -4,35 +4,17 @@ _gitshort="${_githash:0:7}"
 
 pkgname=rpi-firmware
 version=20150904
-revision=1
+revision=2
 noarch=yes
 wrksrc="firmware-${_githash}"
 short_desc="Firmware files for the Raspberry Pi (git ${_gitshort})"
 maintainer="Juan RP <xtraeme@voidlinux.eu>"
-license="Propietary - see /usr/share/licences/${pkgname}/"
+license="3-clause-BSD"
 homepage="https://github.com/raspberrypi/firmware"
 distfiles="https://github.com/raspberrypi/firmware/archive/${_githash}.tar.gz"
 checksum=5400f1a019d85883bf6e00e4c1a4433974e3edd3b92a1c4b31a18ce474c0bd7c
 
 conf_files="/boot/cmdline.txt /boot/config.txt"
-shlib_provides="
- libvcsm.so
- libvcos.so
- libvchiq_arm.so
- libopenmaxil.so
- libmmal_vc_client.so
- libmmal_util.so
- libmmal_core.so
- libmmal_components.so
- libmmal.so
- libdebug_sym.so
- libcontainers.so
- libbcm_host.so
- libWFC.so
- libOpenVG.so
- libGLESv2.so
- libEGL.so
- libGLESv1_CM.so"
 
 do_install() {
 	rm -f boot/*.img
@@ -43,25 +25,10 @@ do_install() {
 	vmkdir boot
 	cp -R boot/* ${DESTDIR}/boot
 
-	vmkdir opt/vc
-	cp -R hardfp/opt/vc/{bin,include,lib,sbin,src,LICENCE} ${DESTDIR}/opt/vc
-
-	vmkdir etc/ld.so.conf.d
-	echo "/opt/vc/lib" > ${DESTDIR}/etc/ld.so.conf.d/${pkgname}.conf
-
 	vmkdir usr/share/licenses/${pkgname}
 	mv ${DESTDIR}/boot/LICENCE.broadcom ${DESTDIR}/usr/share/licenses/${pkgname}
-	mv ${DESTDIR}/opt/vc/LICENCE ${DESTDIR}/usr/share/licenses/${pkgname}
 
 	# Install configuration files.
 	vinstall ${FILESDIR}/cmdline.txt 644 boot
 	vinstall ${FILESDIR}/config.txt 644 boot
 }
-
-rpi-firmware-src_package() {
-	noarch=yes
-	short_desc+=" - example sources"
-	pkg_install() {
-		vmove opt/vc/src
-	}
-}
diff --git a/srcpkgs/rpi-userland-devel b/srcpkgs/rpi-userland-devel
new file mode 120000
index 00000000000..8a52372b896
--- /dev/null
+++ b/srcpkgs/rpi-userland-devel
@@ -0,0 +1 @@
+rpi-userland
\ No newline at end of file
diff --git a/srcpkgs/rpi-firmware/INSTALL b/srcpkgs/rpi-userland/INSTALL
similarity index 100%
rename from srcpkgs/rpi-firmware/INSTALL
rename to srcpkgs/rpi-userland/INSTALL
diff --git a/srcpkgs/rpi-firmware-pcfiles/files/bcm_host.pc b/srcpkgs/rpi-userland/files/bcm_host.pc
similarity index 100%
rename from srcpkgs/rpi-firmware-pcfiles/files/bcm_host.pc
rename to srcpkgs/rpi-userland/files/bcm_host.pc
diff --git a/srcpkgs/rpi-firmware-pcfiles/files/egl.pc b/srcpkgs/rpi-userland/files/egl.pc
similarity index 100%
rename from srcpkgs/rpi-firmware-pcfiles/files/egl.pc
rename to srcpkgs/rpi-userland/files/egl.pc
diff --git a/srcpkgs/rpi-firmware-pcfiles/files/glesv2.pc b/srcpkgs/rpi-userland/files/glesv2.pc
similarity index 100%
rename from srcpkgs/rpi-firmware-pcfiles/files/glesv2.pc
rename to srcpkgs/rpi-userland/files/glesv2.pc
diff --git a/srcpkgs/rpi-userland/template b/srcpkgs/rpi-userland/template
new file mode 100644
index 00000000000..169525e5332
--- /dev/null
+++ b/srcpkgs/rpi-userland/template
@@ -0,0 +1,62 @@
+# Template file for 'rpi-firmware'
+_githash="fb11b39d97371c076eef7c85bbcab5733883a41e"
+_gitshort="${_githash:0:7}"
+
+pkgname=rpi-userland
+version=0.0.0.0.20150907
+revision=1
+wrksrc="userland-${_githash}"
+build_style=cmake
+hostmakedepends="cmake"
+short_desc="Raspberry Pi GPU userland libraries and utilities (git ${_gitshort})"
+maintainer="Juan RP <xtraeme@voidlinux.eu>"
+license="3-clause-BSD"
+homepage="https://github.com/raspberrypi/userland"
+distfiles="https://github.com/raspberrypi/userland/archive/${_githash}.tar.gz"
+checksum=3521fa369732c7caa9a343c19a4b37d1b1056033965f0654a07547a936da87df
+
+only_for_archs="armv6l armv6l-musl armv7l armv7l-musl"
+
+shlib_provides="
+ libvcsm.so
+ libvcos.so
+ libvchiq_arm.so
+ libopenmaxil.so
+ libmmal_vc_client.so
+ libmmal_util.so
+ libmmal_core.so
+ libmmal_components.so
+ libmmal.so
+ libdebug_sym.so
+ libcontainers.so
+ libbcm_host.so
+ libWFC.so
+ libOpenVG.so
+ libGLESv2.so
+ libEGL.so"
+
+pre_configure() {
+	sed -i '/extern FILE \*stderr/d' host_applications/linux/apps/raspicam/RaspiVidYUV.c
+}
+post_install() {
+	vmkdir etc/ld.so.conf.d
+	echo "/opt/vc/lib" > ${DESTDIR}/etc/ld.so.conf.d/${pkgname}.conf
+
+	vmkdir usr/lib/pkgconfig
+	vcopy ${FILESDIR}/*.pc usr/lib/pkgconfig
+	rm -rf ${DESTDIR}/etc
+	rm -rf ${DESTDIR}/opt/vc/share
+}
+
+rpi-userland-devel_package() {
+	provides="rpi-firmware-pcfiles-1_1"
+	replaces="rpi-firmware-pcfiles>=0"
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove opt/vc/include
+		vmove opt/vc/src
+		vmove opt/vc/lib/*.a
+		vmove usr/lib/pkgconfig
+	}
+}