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.
107 lines
3.9 KiB
Scheme
107 lines
3.9 KiB
Scheme
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
;;; Copyright © 2023 Pierre Neidhardt <mail@ambrevar.xyz>
|
|
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
;;; Copyright © 2024 Andre A. Gomes <andremegafone@gmail.com>
|
|
;;; Copyright © 2024 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
|
|
|
(define-module (nongnu packages electron)
|
|
#:use-module (nonguix build-system chromium-binary)
|
|
#:use-module ((nonguix licenses) :prefix license:)
|
|
#:use-module (guix download)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix utils)
|
|
#:use-module (ice-9 match)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages gtk)
|
|
#:use-module (gnu packages video))
|
|
|
|
(define (electron-source version hash)
|
|
(origin
|
|
(method url-fetch/zipbomb)
|
|
(uri
|
|
(string-append
|
|
"https://github.com/electron/electron/releases/download/v"
|
|
version "/electron-v" version "-"
|
|
(match (or (%current-system) (%current-target-system))
|
|
("x86_64-linux" "linux-x64")
|
|
("i686-linux" "linux-ia32")
|
|
("aarch64-linux" "linux-arm64")
|
|
("armhf-linux" "linux-armv7l")
|
|
;; We need a default case
|
|
(_ "unsupported"))
|
|
".zip"))
|
|
(sha256 (base32 hash))))
|
|
|
|
(define-public electron-27
|
|
(package
|
|
(name "electron")
|
|
(version "27.3.6")
|
|
(source (electron-source version
|
|
"12hjn1bfk8c25f54kk561mkjl7hsk8b16rj7a7gczswjdpx6fpi0"))
|
|
(build-system chromium-binary-build-system)
|
|
(arguments
|
|
`(#:wrapper-plan
|
|
`("electron"
|
|
"libffmpeg.so"
|
|
"libGLESv2.so"
|
|
"libEGL.so")
|
|
#:install-plan
|
|
`(("." "share/electron/" #:include
|
|
("electron"
|
|
"chrome-sandbox"
|
|
"chrome_100_percent.pak"
|
|
"chrome_200_percent.pak"
|
|
"chrome_crashpad_handler"
|
|
"icudtl.dat"
|
|
"resources.pak"
|
|
"v8_context_snapshot.bin"
|
|
"version"
|
|
"libffmpeg.so"
|
|
;; electron seems to force-load these from its directory.
|
|
"libEGL.so"
|
|
"libGLESv2.so"))
|
|
("resources" "share/electron/")
|
|
("locales" "share/electron/"))
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'install-wrapper 'wrap-where-patchelf-does-not-work
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
(bin (string-append out "/share/electron/electron"))
|
|
(wrapper (string-append out "/bin/electron")))
|
|
(mkdir-p (dirname wrapper))
|
|
(make-wrapper wrapper bin
|
|
`("LD_LIBRARY_PATH" ":"
|
|
prefix
|
|
(,(string-join
|
|
(list
|
|
(string-append out "/share/electron"))
|
|
":")))))
|
|
#t)))))
|
|
(native-inputs `(("unzip" ,unzip)))
|
|
(inputs `(("gdk-pixbuf" ,gdk-pixbuf)
|
|
("ffmpeg" ,ffmpeg)))
|
|
(home-page "https://www.electronjs.org/")
|
|
(synopsis "Cross platform desktop application shell")
|
|
(description "The Electron framework lets you write cross-platform desktop
|
|
applications using JavaScript, HTML and CSS. It is based on Node.js and
|
|
Chromium and is used by the Atom editor and many other apps.")
|
|
(license (license:nonfree
|
|
(string-append "https://github.com/electron/electron/blob/v"
|
|
version "/LICENSE")))))
|
|
|
|
(define-public electron electron-27)
|
|
|
|
(define-public electron-28
|
|
(package
|
|
(inherit electron-27)
|
|
(version "28.2.7")
|
|
(source (electron-source version
|
|
"0sw8nn1jr9x0p4s2g5yp5lrpy8mzq0sjd099x7axbg6cm1c80iff"))))
|
|
(define-public electron-29
|
|
(package
|
|
(inherit electron-27)
|
|
(version "29.1.4")
|
|
(source (electron-source version
|
|
"1d96nhx9j9mzc3q3ald1imqdxdgq9by1qm4q703sjy3knq1p38w3"))))
|