diff options
Diffstat (limited to 'nongnu/packages/electron.scm')
-rw-r--r-- | nongnu/packages/electron.scm | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/nongnu/packages/electron.scm b/nongnu/packages/electron.scm new file mode 100644 index 0000000..a4a7b67 --- /dev/null +++ b/nongnu/packages/electron.scm @@ -0,0 +1,104 @@ +;;; 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")) + ".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")))) |