This patch moves Guile modules shipped as a Guix channel under the modules directory. The rationale behind this is that we are probably adding unwanted files into Guile's load path, such as the news file and possible scripts that could be added to the channel repository in the future. * guix-channel (channel): Set directory field. * nongnu/*: Move under modules/nongnu. * nonguix/*: Move under modules/nonguix.
149 lines
5.2 KiB
Scheme
149 lines
5.2 KiB
Scheme
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
|
|
|
|
(define-module (nongnu packages chromium)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix gexp)
|
|
#:use-module (guix download)
|
|
#:use-module (guix utils)
|
|
#:use-module (guix build-system gnu)
|
|
#:use-module (nonguix build-system binary)
|
|
#:use-module (gnu packages)
|
|
#:use-module (gnu packages base)
|
|
#:use-module (gnu packages cmake)
|
|
#:use-module (gnu packages cups)
|
|
#:use-module (gnu packages gcc)
|
|
#:use-module (gnu packages gl)
|
|
#:use-module (gnu packages glib)
|
|
#:use-module (gnu packages gtk)
|
|
#:use-module (gnu packages linux)
|
|
#:use-module (gnu packages nss)
|
|
#:use-module (gnu packages xml)
|
|
#:use-module (gnu packages xdisorg)
|
|
#:use-module (gnu packages xorg)
|
|
#:use-module (ice-9 match)
|
|
#:use-module (srfi srfi-1))
|
|
|
|
(define-public chromium-embedded-framework
|
|
(let ((git-revision "5053a95")
|
|
(chromium-version "117.0.5938.150")
|
|
(arch (match (or (%current-target-system) (%current-system))
|
|
("aarch64-linux" "linuxarm64")
|
|
("armhf-linux" "linuxarm")
|
|
(_ "linux64"))))
|
|
(package
|
|
(name "chromium-embedded-framework")
|
|
(version "117.2.4")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"https://cef-builds.spotifycdn.com/cef_binary_"
|
|
version
|
|
"+g" git-revision
|
|
"+chromium-" chromium-version
|
|
"_" arch "_minimal.tar.bz2"))
|
|
(sha256
|
|
(base32
|
|
"0vzzwq1k6bv9d209yg3samvfnfwj7s58y9r3p3pd98wxa9iyzf4j"))))
|
|
(build-system binary-build-system)
|
|
(arguments
|
|
`(#:patchelf-plan
|
|
`(("Release/libcef.so" ("alsa-lib"
|
|
"at-spi2-atk"
|
|
"at-spi2-core"
|
|
"atk"
|
|
"cairo"
|
|
"cups"
|
|
"dbus"
|
|
"expat"
|
|
"gcc"
|
|
"glib"
|
|
"glibc"
|
|
"gtk+"
|
|
"libdrm"
|
|
"libx11"
|
|
"libxcb"
|
|
"libxcomposite"
|
|
"libxdamage"
|
|
"libxext"
|
|
"libxfixes"
|
|
"libxkbcommon"
|
|
"libxrandr"
|
|
"libxshmfence"
|
|
"mesa"
|
|
"nspr"
|
|
("nss" "/lib/nss")
|
|
"pango")))
|
|
#:install-plan
|
|
`(("Release/libcef.so" "lib/")
|
|
("libcef_dll_wrapper/libcef_dll_wrapper.a" "lib/")
|
|
("Release/" "share/cef/"
|
|
#:include-regexp (".*.bin"))
|
|
("Resources/" "share/cef/")
|
|
("include" "./"))
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'install 'build
|
|
(lambda _
|
|
(invoke "cmake" "-DCMAKE_BUILD_TYPE=Release" ".")
|
|
(invoke "make" "libcef_dll_wrapper"))))))
|
|
(inputs
|
|
(list
|
|
alsa-lib
|
|
at-spi2-atk
|
|
at-spi2-core
|
|
atk
|
|
cairo
|
|
cups
|
|
dbus
|
|
expat
|
|
`(,gcc "lib")
|
|
glib
|
|
gtk+
|
|
libdrm
|
|
libx11
|
|
libxcb
|
|
libxcomposite
|
|
libxdamage
|
|
libxext
|
|
libxfixes
|
|
libxkbcommon
|
|
libxrandr
|
|
libxshmfence
|
|
mesa
|
|
nspr
|
|
nss
|
|
pango))
|
|
(native-inputs
|
|
;; FIXME: We specify glibc here so that Cmake does not pick the wrong
|
|
;; architecture (e.g. glibc32 while on a 64-bit system).
|
|
;; The build system could be smarter.
|
|
(list glibc
|
|
cmake))
|
|
(synopsis "Embed Chromium-based browsers in other applications")
|
|
(supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
|
|
(description "This library provides a simple framework for embedding
|
|
Chromium-based browsers in other applications.
|
|
|
|
Unlike the Chromium project itself, which focuses mainly on Google Chrome
|
|
application development, CEF focuses on facilitating embedded browser use
|
|
cases in third-party applications. CEF insulates the user from the underlying
|
|
Chromium and Blink code complexity by offering production-quality stable
|
|
APIs.
|
|
|
|
Some use cases for CEF include:
|
|
|
|
@itemize
|
|
@item Embedding an HTML5-compliant Web browser control in an existing native
|
|
application.
|
|
@item Creating a light-weight native \"shell\" application that hosts a user
|
|
interface developed primarily using Web technologies.
|
|
@item Rendering Web content “off-screen” in applications that have their own
|
|
custom drawing frameworks.
|
|
@item Acting as a host for automated testing of existing Web properties and
|
|
applications.
|
|
@end itemize\n")
|
|
(home-page "https://bitbucket.org/chromiumembedded/cef")
|
|
(license license:bsd-3))))
|