From 6c11c75702969f810eb216d973912a5cdf286d34 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 5 Jan 2023 00:27:02 -0500 Subject: [PATCH] gnu: Add raspberrypi-userland. * gnu/packages/raspberry-pi.scm (raspberrypi-userland): New variable. --- gnu/packages/raspberry-pi.scm | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm index 8b809c18d3..57f9de4c5c 100644 --- a/gnu/packages/raspberry-pi.scm +++ b/gnu/packages/raspberry-pi.scm @@ -37,8 +37,10 @@ (define-module (gnu packages raspberry-pi) #:use-module (gnu packages gcc) #:use-module (gnu packages guile) #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages tls) + #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system qt) @@ -375,6 +377,57 @@ (define-public %bcmrpi3-defconfig "arm64" "bcmrpi3_defconfig" "1bfnl4p0ddx3200dg91kmh2pln36w95y05x1asc312kixv0jgd81")) +(define-public raspberrypi-userland + ;; There are no release nor tag; use the latest commit. + (let ((revision "0") + (commit "54fd97ae4066a10b6b02089bc769ceed328737e0")) + (package + (name "raspberrypi-userland") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raspberrypi/userland") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01853x2kx36vcm1wd0p20v72kw2p4xhnzp36jivh06mhma9b3h2v")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:configure-flags #~(list (string-append "-DVMCS_INSTALL_PREFIX=" + #$output)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda _ + (substitute* "interface/khronos/ext/egl_khr_image_client.c" + (("/opt/vc/lib/libvcsm.so") + (string-append #$output "/lib/libvcsm.so"))))) + (add-after 'unpack 'disable-hello_pi + (lambda _ + ;; Do not build hello_pi, which installs 32 MiB of binaries + ;; and source files to src/. + (substitute* "host_applications/linux/CMakeLists.txt" + ((".*add_subdirectory\\(apps/hello_pi).*") + "")) + (substitute* "makefiles/cmake/vmcs.cmake" + (("install.*host_applications/linux/apps/hello_pi" all) + (string-append "# " all)) + ((".*DESTINATION \\$\\{VMCS_INSTALL_PREFIX}/src)" all) + (string-append "# " all)))))))) + (native-inputs (list pkg-config)) + (home-page "https://github.com/raspberrypi/userland/") + (supported-systems (list "armhf-linux" "aarch64-linux")) + (synopsis "Raspberry Pi GPU-related libraries") + (description "This package package contains libraries to interface to +EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, VFC and OpenVG. It +also provides the @command{dtmerge}, @command{dtoverlay}, @command{dtparam}, +@command{raspivid} and @command{tvservice} commands, among others.") + (license license:bsd-3)))) + (define-public rpi-imager (package (name "rpi-imager")