# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit cmake flag-o-matic udev if [[ ${PV} == 9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/${PN/-//}.git" else # We base our versioning on Raspbian # Go to https://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-userland/ # Example: # * libraspberrypi-bin-dbgsym_2+git20201022~151804+e432bc3-1_arm64.deb # * "e432bc3" is the first 7 hex digits of the commit hash. # * Go to https://github.com/raspberrypi/userland/commits/master and find the full hash GIT_COMMIT="e432bc3400401064e2d8affa5d1454aac2cf4a00" SRC_URI="https://github.com/raspberrypi/userland/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" KEYWORDS="-* ~arm ~arm64" S="${WORKDIR}/userland-${GIT_COMMIT}" fi DESCRIPTION="Raspberry Pi userspace tools and libraries" HOMEPAGE="https://github.com/raspberrypi/userland" # can end up in a loop with libcec detecting the old .so but failing to build with the headers gone RESTRICT="preserve-libs" LICENSE="BSD" SLOT="0" RDEPEND="acct-group/video !media-libs/raspberrypi-userland-bin !sys-apps/dtc" PATCHES=( # Install in $(get_libdir) # See https://github.com/raspberrypi/userland/pull/650 "${FILESDIR}/${PN}-libdir.patch" # Don't install includes that collide. "${FILESDIR}/${PN}-include.patch" # See https://github.com/raspberrypi/userland/pull/655 # "${FILESDIR}/${PN}-libfdt-static.patch" # See https://github.com/raspberrypi/userland/pull/659 "${FILESDIR}/${PN}-pkgconf-arm64.patch" ) pkg_pretend() { if ! ( use arm || use arm64 || [ -n "${I_KNOW_THIS_IS_FOR_THE_PI}" ]); then eerror "If you are trying to cross-compile things arn't set right" eerror "its trying to build for your host" die "${PN} is for the Raspberry pi: arm/arm64 only" fi if [ -n "${I_KNOW_THIS_IS_FOR_THE_PI}" ]; then ewarn "This is for the arm/arm64 pi only, if you set this on something not arm and it breaks you get to keep the pieces" ewarn "Wrappers such as aarch64-unknown-linux-gnu-emerge set things" ewarn "so that this isn't needed and should sucessfully cross compile this" fi } src_prepare() { cmake_src_prepare sed -i \ -e 's:DESTINATION ${VMCS_INSTALL_PREFIX}/src:DESTINATION ${VMCS_INSTALL_PREFIX}/'"share/doc/${PF}:" \ "${S}/makefiles/cmake/vmcs.cmake" || die "Failed sedding makefiles/cmake/vmcs.cmake" sed -i \ -e 's:^install(TARGETS EGL GLESv2 OpenVG WFC:install(TARGETS:' \ -e '/^install(TARGETS EGL_static GLESv2_static/d' \ "${S}/interface/khronos/CMakeLists.txt" || die "Failed sedding interface/khronos/CMakeLists.txt" sed -i \ -e 's:DESTINATION man/:DESTINATION share/man/:' \ "${S}"/host_applications/linux/apps/*/CMakeLists.txt || die "Failed fixing man page install location" } src_configure() { append-ldflags $(no-as-needed) mycmakeargs=( -DVMCS_INSTALL_PREFIX="${EPREFIX}/usr" -DARM64=$(usex arm64) ) cmake_src_configure } src_install() { cmake_src_install dolib.so "${WORKDIR}/${P}/build/lib/libfdt.so" udev_dorules "${FILESDIR}/92-local-vchiq-permissions.rules" } pkg_postinst() { udev_reload ewarn "Upstream has depreciated this package. Its useful commands have been split into rpi-utils" } pkg_postrm() { udev_reload }