Compare commits
No commits in common. "master" and "core-updates" have entirely different histories.
master
...
core-updat
|
@ -1,5 +1,4 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
|
|
||||||
;; Per-directory local variables for GNU Emacs 23 and later.
|
;; Per-directory local variables for GNU Emacs 23 and later.
|
||||||
|
|
||||||
((nil
|
((nil
|
||||||
|
@ -10,17 +9,11 @@
|
||||||
;; For use with 'bug-reference-prog-mode'.
|
;; For use with 'bug-reference-prog-mode'.
|
||||||
(bug-reference-url-format . "https://gitlab.com/nonguix/nonguix/issues/%s")
|
(bug-reference-url-format . "https://gitlab.com/nonguix/nonguix/issues/%s")
|
||||||
(bug-reference-bug-regexp
|
(bug-reference-bug-regexp
|
||||||
. "\\(#\\([0-9]+\\)\\)")
|
. "#[0-9]+")))
|
||||||
|
|
||||||
(geiser-insert-actual-lambda . nil)))
|
|
||||||
(c-mode . ((c-file-style . "gnu")))
|
(c-mode . ((c-file-style . "gnu")))
|
||||||
(scheme-mode
|
(scheme-mode
|
||||||
.
|
.
|
||||||
;; Note this next setting will use the current guix as the geiser binary;
|
((indent-tabs-mode . nil)
|
||||||
;; one working with a local guix checkout may want something different.
|
|
||||||
((geiser-guile-binary . ("guix" "repl"))
|
|
||||||
|
|
||||||
(indent-tabs-mode . nil)
|
|
||||||
(eval . (put 'eval-when 'scheme-indent-function 1))
|
(eval . (put 'eval-when 'scheme-indent-function 1))
|
||||||
(eval . (put 'call-with-prompt 'scheme-indent-function 1))
|
(eval . (put 'call-with-prompt 'scheme-indent-function 1))
|
||||||
(eval . (put 'test-assert 'scheme-indent-function 1))
|
(eval . (put 'test-assert 'scheme-indent-function 1))
|
||||||
|
|
|
@ -9,9 +9,6 @@
|
||||||
(name "ajgrf"))
|
(name "ajgrf"))
|
||||||
("50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"
|
("50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"
|
||||||
(name "ambrevar"))
|
(name "ambrevar"))
|
||||||
(;; primary: "220F 98D9 5E86 204C 0036 DA7B 6DEC 4360 408B 4185"
|
|
||||||
"F4C2 D1DF 3FDE EA63 D1D3 0776 ACC6 6D09 CA52 8292"
|
|
||||||
(name "hako"))
|
|
||||||
("5DA3 74E1 EADB DC7C 772D 5E65 5E76 B1AD 0FC2 2F93"
|
("5DA3 74E1 EADB DC7C 772D 5E65 5E76 B1AD 0FC2 2F93"
|
||||||
(name "ison"))
|
(name "ison"))
|
||||||
(;; primary: "1BA4 08C5 8BF2 0EA7 3179 635A 865D C0A3 DED9 B5D0"
|
(;; primary: "1BA4 08C5 8BF2 0EA7 3179 635A 865D C0A3 DED9 B5D0"
|
||||||
|
@ -21,8 +18,7 @@
|
||||||
(name "jonsger"))
|
(name "jonsger"))
|
||||||
("D319 C7A9 8F2C 3A11 D9C0 0E30 F369 0CBE 3152 EF58"
|
("D319 C7A9 8F2C 3A11 D9C0 0E30 F369 0CBE 3152 EF58"
|
||||||
(name "pineapples"))
|
(name "pineapples"))
|
||||||
(;; primary: "7E9F 5BF6 1680 4367 127B 7A87 F9E6 9FB8 5A75 54F1"
|
("A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9"
|
||||||
"A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9"
|
|
||||||
(name "podiki"))
|
(name "podiki"))
|
||||||
("1EFB 0909 1F17 D28C CBF9 B13A 53D4 57B2 D636 EE82"
|
("1EFB 0909 1F17 D28C CBF9 B13A 53D4 57B2 D636 EE82"
|
||||||
(name "roptat"))))
|
(name "roptat"))))
|
||||||
|
|
5
NEWS
5
NEWS
|
@ -1,12 +1,9 @@
|
||||||
-*- org -*-
|
-*- org -*-
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
# Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
# Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
# Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
|
# Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
|
||||||
#+TITLE: NEWS about user visible changes of nonguix
|
#+TITLE: NEWS about user visible changes of nonguix
|
||||||
|
|
||||||
* Unreleased
|
|
||||||
*** New `chromium-binary-build-system`
|
|
||||||
|
|
||||||
* Changes in 1.4.0 (since 2022-05-21 (Guix 1.3.0))
|
* Changes in 1.4.0 (since 2022-05-21 (Guix 1.3.0))
|
||||||
** Distribution
|
** Distribution
|
||||||
*** Nvidia driver now available as service
|
*** Nvidia driver now available as service
|
||||||
|
|
127
README.org
127
README.org
|
@ -94,20 +94,19 @@ your configuration.
|
||||||
** Installation image
|
** Installation image
|
||||||
|
|
||||||
For some hardware the official Guix installation image won't do
|
For some hardware the official Guix installation image won't do
|
||||||
(e.g. unsupported wifi). You can find a pre-generated installation image
|
(e.g. unsupported wifi). You can generate an installation image running the
|
||||||
(time and version in line with upstream Guix), running the nonfree Linux
|
nonfree Linux kernel and nonfree firmware with the following command:
|
||||||
kernel and nonfree firmware, on the [[https://gitlab.com/nonguix/nonguix/-/releases][Releases page]] (see below for important
|
|
||||||
note if you use the 1.4.0 release or those created prior to April 2024). Or,
|
|
||||||
you can generate an installation image from a local checkout of this
|
|
||||||
repository, at a more recent commit, with the following command:
|
|
||||||
|
|
||||||
#+begin_src sh
|
#+begin_src sh
|
||||||
guix system image --image-type=iso9660 /path/to/this/channel/nongnu/system/install.scm
|
guix system image --image-type=iso9660 /path/to/this/channel/nongnu/system/install.scm
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Like the official Guix installation image, this will produce a read-only image
|
Like the official Guix installation image, this will produce a read-only image
|
||||||
with any changes made stored in memory. Alternatively, a writable image can
|
with any changes made stored in memory. As indicated below, you will need to
|
||||||
be created with the following command:
|
run ~guix pull~ to download the Nonguix package descriptions, so will need
|
||||||
|
enough memory to hold the cached channel code which can be several hundred
|
||||||
|
megabytes. As an alternative, you can create a writable image with the
|
||||||
|
following command:
|
||||||
|
|
||||||
#+begin_src sh
|
#+begin_src sh
|
||||||
guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
|
guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
|
||||||
|
@ -124,14 +123,11 @@ Either type of image can be written to a USB thumbdrive with:
|
||||||
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync
|
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
*** Important note for 1.4.0
|
The installation media produced by the above method does not automatically
|
||||||
The installation media for 1.4.0 or those produced manually before commit
|
configure your channels specification. You need to add Nonguix "manually"
|
||||||
[[https://gitlab.com/nonguix/nonguix/-/commit/80b273e86a19ceaee6d9b6650ed56e853409a799#note_2075084624][80b273e8]] (April 2024) do not automatically configure your channels
|
into ~/etc/guix/channels.scm~ and then run ~guix pull~ to make Guix aware of
|
||||||
specification. You need to add Nonguix "manually" into ~/etc/guix/channels.scm~
|
Nonguix scheme libraries. Below is Guile scheme code to include Nonguix in the
|
||||||
and then run ~guix pull~ to make Guix aware of Nonguix scheme libraries. This
|
channel specification.
|
||||||
will require enough memory to hold the cached channel code which can be
|
|
||||||
several hundred megabytes. Below is Guile scheme code to include Nonguix in
|
|
||||||
the channel specification.
|
|
||||||
|
|
||||||
#+BEGIN_SRC scheme
|
#+BEGIN_SRC scheme
|
||||||
(use-modules (ice-9 pretty-print))
|
(use-modules (ice-9 pretty-print))
|
||||||
|
@ -177,9 +173,7 @@ is exactly equivalent to:
|
||||||
rest)))
|
rest)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Broadcom
|
** Broadcom Wireless
|
||||||
|
|
||||||
*** Wireless
|
|
||||||
|
|
||||||
Some Broadcom wireless hardware requires a proprietary kernel module in
|
Some Broadcom wireless hardware requires a proprietary kernel module in
|
||||||
addition to firmware. To use such hardware you will also need to add a service
|
addition to firmware. To use such hardware you will also need to add a service
|
||||||
|
@ -198,98 +192,6 @@ to load that module on boot and blacklist conflicting kernel modules:
|
||||||
...)
|
...)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
*** Webcam
|
|
||||||
|
|
||||||
Like Broadcom wireless hardware, the Broadcom 1570 PCIe webcam (better known as
|
|
||||||
FacetimeHD and found in recent Macbooks) also requires a kernel module,
|
|
||||||
firmware, and blacklisting of conflicting modules:
|
|
||||||
|
|
||||||
#+BEGIN_SRC scheme
|
|
||||||
(use-modules (nongnu packages linux))
|
|
||||||
(use-modules (nongnu packages firmware))
|
|
||||||
|
|
||||||
(operating-system
|
|
||||||
(kernel-arguments '("modprobe.blacklist=bdc_pci"))
|
|
||||||
(kernel-loadable-modules (list facetimehd))
|
|
||||||
(firmware (cons* facetimehd-firmware
|
|
||||||
facetimehd-calibration ; Optional but make the colors look better.
|
|
||||||
%base-firmware))
|
|
||||||
(services
|
|
||||||
(cons* (simple-service 'facetimehd
|
|
||||||
kernel-module-loader-service-type
|
|
||||||
'("facetimehd"))
|
|
||||||
...))
|
|
||||||
...)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** NVIDIA graphics card
|
|
||||||
|
|
||||||
NVIDIA graphics card support in Nonguix consists of a system service =nvidia-service-type= and a package =nvda= for application setup.
|
|
||||||
|
|
||||||
The following code serves as an example for system setup:
|
|
||||||
|
|
||||||
#+BEGIN_SRC scheme
|
|
||||||
(use-modules (gnu services gnome)
|
|
||||||
(gnu services xorg)
|
|
||||||
(nongnu packages nvidia)
|
|
||||||
(nongnu services nvidia))
|
|
||||||
|
|
||||||
(operating-system
|
|
||||||
(kernel-arguments '("modprobe.blacklist=nouveau"
|
|
||||||
;; Set this if the card is not used for displaying or
|
|
||||||
;; you're using Wayland:
|
|
||||||
"nvidia_drm.modeset=1"))
|
|
||||||
(services
|
|
||||||
(cons* (service nvidia-service-type)
|
|
||||||
;; Configure desktop environment, GNOME for example.
|
|
||||||
(service gnome-desktop-service-type
|
|
||||||
;; Enable NVIDIA support, only do this when the card is
|
|
||||||
;; used for displaying.
|
|
||||||
(gnome-desktop-configuration
|
|
||||||
(gnome (replace-mesa gnome))))
|
|
||||||
;; Configure Xorg server, only do this when the card is used for
|
|
||||||
;; displaying.
|
|
||||||
(set-xorg-configuration
|
|
||||||
(xorg-configuration
|
|
||||||
(modules (cons nvda %default-xorg-modules))
|
|
||||||
(drivers '("nvidia"))))
|
|
||||||
...))
|
|
||||||
...)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
For application setup, =mesa= has to be replaced with =nvda= for every individual package that requires the NVIDIA driver, this can be done with grafting (which doesn't rebuild packages) or rewriting inputs (which rebuilds packages) (see [[https://guix.gnu.org/manual/devel/en/guix.html#Package-Transformation-Options][Package Transformation Options]] in GNU Guix Reference Manual). For example:
|
|
||||||
|
|
||||||
#+BEGIN_SRC shell
|
|
||||||
guix build mesa-utils --with-graft=mesa=nvda
|
|
||||||
guix build mesa-utils --with-input=mesa=nvda
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
The above transformation can be used within an one-off software environment spawned by =guix shell= as well, for correct environment variables, the =nvda= package may be added into the environment:
|
|
||||||
|
|
||||||
#+BEGIN_SRC shell
|
|
||||||
guix shell mesa-utils nvda --with-graft=mesa=nvda \
|
|
||||||
-- glxinfo
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
To graft mesa with nvda programmatically, use =replace-mesa= defined in =(nongnu packages nvidia)=:
|
|
||||||
|
|
||||||
#+BEGIN_SRC scheme
|
|
||||||
(use-modules (nongnu packages nvidia))
|
|
||||||
|
|
||||||
;; Replace mesa with nvda for a single package.
|
|
||||||
(replace-mesa <some-package>)
|
|
||||||
|
|
||||||
;; Replace mesa with nvda for a package list.
|
|
||||||
(map replace-mesa (list <some-package> ...))
|
|
||||||
|
|
||||||
;; A package with mesa replaced is still a package, it can be part of a
|
|
||||||
;; package list.
|
|
||||||
(list (replace-mesa <some-package>)
|
|
||||||
...)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
When the card is not used for displaying, environment variables =__GLX_VENDOR_LIBRARY_NAME=nvidia= and =__NV_PRIME_RENDER_OFFLOAD=1= may be set.
|
|
||||||
|
|
||||||
** Substitutes for nonguix
|
** Substitutes for nonguix
|
||||||
|
|
||||||
A Nonguix substitute server is available at [[https://substitutes.nonguix.org]].
|
A Nonguix substitute server is available at [[https://substitutes.nonguix.org]].
|
||||||
|
@ -329,9 +231,6 @@ sudo guix archive --authorize < signing-key.pub
|
||||||
sudo guix system reconfigure /etc/config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
|
sudo guix system reconfigure /etc/config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
The [[https://cuirass.nonguix.org/][Nonguix Cuirass instance]] can be useful when investigating substitution
|
|
||||||
failures.
|
|
||||||
|
|
||||||
Check out the [[https://guix.gnu.org/manual/en/html_node/Substitutes.html][chapter on substitutes]]
|
Check out the [[https://guix.gnu.org/manual/en/html_node/Substitutes.html][chapter on substitutes]]
|
||||||
in the Guix manual for more details.
|
in the Guix manual for more details.
|
||||||
|
|
||||||
|
|
|
@ -1,121 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
|
||||||
|
|
||||||
;;; This file is not part of GNU Guix but requires this naming scheme
|
|
||||||
;;; so that the %nvidia-updater is properly read when using
|
|
||||||
;;; `guix refresh -L$(pwd) nvidia-driver' in nonguix root.
|
|
||||||
|
|
||||||
(define-module (guix import nvidia)
|
|
||||||
#:use-module (web client)
|
|
||||||
#:use-module (sxml match)
|
|
||||||
#:use-module (sxml simple)
|
|
||||||
#:use-module (guix memoization)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (guix upstream)
|
|
||||||
#:use-module (ice-9 match)
|
|
||||||
#:use-module (ice-9 regex)
|
|
||||||
#:use-module (srfi srfi-1)
|
|
||||||
#:use-module (srfi srfi-26)
|
|
||||||
#:use-module (srfi srfi-71)
|
|
||||||
#:export (%nvidia-updater))
|
|
||||||
|
|
||||||
(define nvidia-latest-url "https://www.nvidia.com/en-us/drivers/unix/")
|
|
||||||
|
|
||||||
(define (archive->guix-arch system)
|
|
||||||
(match system
|
|
||||||
("https://www.nvidia.com/object/linux-amd64-display-archive.html"
|
|
||||||
"x86_64-linux")
|
|
||||||
("https://www.nvidia.com/en-us/drivers/unix/linux-aarch64-archive/"
|
|
||||||
"aarch64-linux")
|
|
||||||
(_ #f)))
|
|
||||||
|
|
||||||
(define (archive? cand)
|
|
||||||
(or (string= cand (string-append nvidia-latest-url "linux-aarch64-archive/"))
|
|
||||||
(and (string-prefix? "https://www.nvidia.com/object/" cand)
|
|
||||||
(string-suffix? "-archive.html" cand))))
|
|
||||||
|
|
||||||
(define nvidia-versions
|
|
||||||
(memoize
|
|
||||||
(lambda _
|
|
||||||
(let* ((response content (http-get nvidia-latest-url))
|
|
||||||
(match-str (string-match "<div id=\"rightContent\".*</div>"
|
|
||||||
content))
|
|
||||||
(greedy-right-content (match:substring match-str))
|
|
||||||
(match-str (string-match "</div>" greedy-right-content))
|
|
||||||
(right-content
|
|
||||||
(string-append (match:prefix match-str) "</div>"))
|
|
||||||
;; xml->sxml is not flexible enough for html.
|
|
||||||
;; For instance, <br> tags don't have closing </br>.
|
|
||||||
;; This trick preprocesses html to extract all <a> tags in
|
|
||||||
;; a <body> wrapper, which sxml-match can handle well.
|
|
||||||
(xml (xml->sxml
|
|
||||||
(string-append
|
|
||||||
"<body><"
|
|
||||||
(string-join
|
|
||||||
(filter (cute string-prefix? "a " <>)
|
|
||||||
(string-split right-content #\<))
|
|
||||||
"</a><")
|
|
||||||
"</a></body>")
|
|
||||||
#:trim-whitespace? #t))
|
|
||||||
(link-alist
|
|
||||||
(sxml-match
|
|
||||||
xml
|
|
||||||
((*TOP*
|
|
||||||
(body
|
|
||||||
(a (@ (href ,url)) ,version) ...))
|
|
||||||
(fold acons
|
|
||||||
'()
|
|
||||||
(list (or (string= version "Archive")
|
|
||||||
(string-trim version))
|
|
||||||
...)
|
|
||||||
(list (if (archive? url)
|
|
||||||
(archive->guix-arch url)
|
|
||||||
url)
|
|
||||||
...)))))
|
|
||||||
(system #f)
|
|
||||||
(versions
|
|
||||||
(fold
|
|
||||||
(lambda (el rest)
|
|
||||||
(match el
|
|
||||||
(`(#t . ,s)
|
|
||||||
(set! system s)
|
|
||||||
rest)
|
|
||||||
(`(,version . ,address)
|
|
||||||
;; aarch64 seems to follow the same driver versions than x86_64
|
|
||||||
;; KISS: use only an alist of versions
|
|
||||||
;; go for an alist of alists insted if they diverge
|
|
||||||
(if (and (string? system) (string= system "x86_64-linux"))
|
|
||||||
(cons version rest)
|
|
||||||
rest))
|
|
||||||
(_ rest)))
|
|
||||||
'()
|
|
||||||
link-alist)))
|
|
||||||
(fold acons '() (list "main" "latest" "beta") (take versions 3))))))
|
|
||||||
|
|
||||||
(define* (latest-release package #:key (version #f))
|
|
||||||
"Return an <upstream-source> for the latest-release of PACKAGE."
|
|
||||||
(let* ((name (package-name package))
|
|
||||||
(kind (match name
|
|
||||||
("nvidia-driver" "main")
|
|
||||||
("nvidia-driver-beta" "beta")))
|
|
||||||
(version (or version (assoc-ref (nvidia-versions) kind))))
|
|
||||||
(upstream-source
|
|
||||||
(package name)
|
|
||||||
(version version)
|
|
||||||
(urls (list (string-append
|
|
||||||
"https://us.download.nvidia.com/XFree86/Linux-x86_64/"
|
|
||||||
version "/NVIDIA-Linux-x86_64-" version ".run"))))))
|
|
||||||
|
|
||||||
(define (nvidia-package? package)
|
|
||||||
"Return true if PACKAGE is Nvidia."
|
|
||||||
(member (package-name package)
|
|
||||||
(list "nvidia-driver" "nvidia-driver-beta")))
|
|
||||||
|
|
||||||
(define %nvidia-updater
|
|
||||||
(upstream-updater
|
|
||||||
(name 'nvidia)
|
|
||||||
(description "Updater for Nvidia packages")
|
|
||||||
(pred nvidia-package?)
|
|
||||||
(import latest-release)))
|
|
||||||
|
|
||||||
;; nvidia.scm ends here.
|
|
49
news.txt
49
news.txt
|
@ -1,6 +1,5 @@
|
||||||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2023 Wolf <wolf@wolfsden.cz>
|
|
||||||
;;
|
;;
|
||||||
;; Copying and distribution of this file, with or without modification, are
|
;; Copying and distribution of this file, with or without modification, are
|
||||||
;; permitted in any medium without royalty provided the copyright notice and
|
;; permitted in any medium without royalty provided the copyright notice and
|
||||||
|
@ -9,54 +8,6 @@
|
||||||
(channel-news
|
(channel-news
|
||||||
(version 0)
|
(version 0)
|
||||||
|
|
||||||
(entry (commit "be61a1829a19724299e46d6e3c1038229039c3ee")
|
|
||||||
(title
|
|
||||||
(en "Nvidia driver package/service updates and changes"))
|
|
||||||
(body
|
|
||||||
(en "In addition to the Nvidia driver package being updated to 550.67,
|
|
||||||
the service, procedures, and configuration has changed. Please see the new
|
|
||||||
directions in the Nonguix README.org for how to use the Nvidia driver in your
|
|
||||||
system configuration, and of course report any issues with these changes or
|
|
||||||
improvements for the documentation.")))
|
|
||||||
|
|
||||||
(entry (commit "8078757b887a7691644b119913c3f7b41661775d")
|
|
||||||
(title
|
|
||||||
(en "New @code{GUIX_SANDBOX_EXTRA_SHARES} variable for nonguix containers (Steam)"))
|
|
||||||
(body
|
|
||||||
(en "The nonguix container has a new environment variable
|
|
||||||
@code{GUIX_SANDBOX_EXTRA_SHARES} which is a @code{:} delimited list of
|
|
||||||
directories to share with the container. These directories will be available
|
|
||||||
at the same path as the host. For instance, you can set this to another drive
|
|
||||||
you want to have a Steam library in by either setting this variable in your
|
|
||||||
environment or launching Steam with:
|
|
||||||
|
|
||||||
@example
|
|
||||||
GUIX_SANDBOX_EXTRA_SHARES=/some/other/drive steam
|
|
||||||
@end example
|
|
||||||
|
|
||||||
This should allow you to select @code{/some/other/drive} in Steam for a game
|
|
||||||
library. This is an experimental feature and just provides a basic way to add
|
|
||||||
shares to the container, so please test and report any difficulties or
|
|
||||||
suggestions to improve.")))
|
|
||||||
|
|
||||||
(entry (commit "1591c3d1d10b2884da29ab7d1252304f2ce1514b")
|
|
||||||
(title
|
|
||||||
(en "(nongnu packages steam-client) module renamed"))
|
|
||||||
(body
|
|
||||||
(en "The (nongnu packages steam-client) module has been renamed to (nongnu packages
|
|
||||||
game-client). This is to better reflect the contents with the addition of the
|
|
||||||
Heroic client in a following commit.")))
|
|
||||||
|
|
||||||
(entry (commit "9456c59cfa580399ab450ca0057321e2d81f3319")
|
|
||||||
(title
|
|
||||||
(en "Linux LTS kernel updated to 6.1")
|
|
||||||
(de "Linux LTS Kernel wird auf 6.1 aktualisiert"))
|
|
||||||
(body
|
|
||||||
(en "The default version of the @code{linux-lts} kernel has been
|
|
||||||
updated to the 6.1 longterm release series.")
|
|
||||||
(de "Der standardmäßig verwendete @code{linux-lts}-Kernel basiert
|
|
||||||
jetzt auf der 6.1-Versionsreihe (Langzeitunterstützung).")))
|
|
||||||
|
|
||||||
(entry (commit "7d4c49eace0d3f074aa34ebbbf880236b6b0fab1")
|
(entry (commit "7d4c49eace0d3f074aa34ebbbf880236b6b0fab1")
|
||||||
(title
|
(title
|
||||||
(en "Nvidia driver configuration refactored")
|
(en "Nvidia driver configuration refactored")
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org>
|
|
||||||
;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
||||||
|
|
||||||
(define-module (nongnu packages)
|
|
||||||
#:use-module (gnu packages)
|
|
||||||
#:use-module (guix diagnostics)
|
|
||||||
#:use-module (guix i18n)
|
|
||||||
#:use-module (ice-9 match)
|
|
||||||
#:use-module (srfi srfi-34)
|
|
||||||
#:replace (%patch-path
|
|
||||||
search-patch)
|
|
||||||
#:export (nongnu-patches))
|
|
||||||
|
|
||||||
;;; Commentary:
|
|
||||||
;;;
|
|
||||||
;;; This module refines the default value of some parameters from (gnu
|
|
||||||
;;; packages) and the syntax/procedures using those. This allows
|
|
||||||
;;; 'search-paths' and friends to work without any user intervention.
|
|
||||||
;;;
|
|
||||||
;;; Code:
|
|
||||||
|
|
||||||
(define %nongnu-root-directory
|
|
||||||
;; This is like %distro-root-directory from (gnu packages), with adjusted
|
|
||||||
;; paths.
|
|
||||||
(letrec-syntax ((dirname* (syntax-rules ()
|
|
||||||
((_ file)
|
|
||||||
(dirname file))
|
|
||||||
((_ file head tail ...)
|
|
||||||
(dirname (dirname* file tail ...)))))
|
|
||||||
(try (syntax-rules ()
|
|
||||||
((_ (file things ...) rest ...)
|
|
||||||
(match (search-path %load-path file)
|
|
||||||
(#f
|
|
||||||
(try rest ...))
|
|
||||||
(absolute
|
|
||||||
(dirname* absolute things ...))))
|
|
||||||
((_)
|
|
||||||
#f))))
|
|
||||||
(try ("nongnu/packages/firmware.scm" nongnu/ packages/)
|
|
||||||
("nongnu/ci.scm" nongnu/))))
|
|
||||||
|
|
||||||
(define %patch-path
|
|
||||||
;; Define it after '%package-module-path' so that '%load-path' contains user
|
|
||||||
;; directories, allowing patches in $GUIX_PACKAGE_PATH to be found.
|
|
||||||
(make-parameter
|
|
||||||
(map (lambda (directory)
|
|
||||||
(if (string=? directory %nongnu-root-directory)
|
|
||||||
(string-append directory "/nongnu/packages/patches")
|
|
||||||
directory))
|
|
||||||
%load-path)))
|
|
||||||
|
|
||||||
;;; XXX: The following must be redefined to make use of the overridden
|
|
||||||
;;; %patch-path parameter above.
|
|
||||||
(define (search-patch file-name)
|
|
||||||
"Search the patch FILE-NAME. Raise an error if not found."
|
|
||||||
(or (search-path (%patch-path) file-name)
|
|
||||||
(raise (formatted-message (G_ "~a: patch not found")
|
|
||||||
file-name))))
|
|
||||||
|
|
||||||
;;; XXX: `search-patches' being syntax, it can't be overridden by the module
|
|
||||||
;;; system, or so it seems, so we simply rename it.
|
|
||||||
(define-syntax-rule (nongnu-patches file-name ...)
|
|
||||||
"Return the list of absolute file names corresponding to each
|
|
||||||
FILE-NAME found in %PATCH-PATH."
|
|
||||||
(list (search-patch file-name) ...))
|
|
|
@ -21,20 +21,20 @@
|
||||||
(define-public anydesk
|
(define-public anydesk
|
||||||
(package
|
(package
|
||||||
(name "anydesk")
|
(name "anydesk")
|
||||||
(version "6.3.2-1")
|
(version "6.1.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://download.anydesk.com/linux/anydesk_"
|
(uri (string-append "https://download.anydesk.com/linux/anydesk-"
|
||||||
version "_amd64.deb"))
|
version "-amd64.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"13b5ab4a889vz39d36f45mhv3mlaxb305wsh3plk3dbjcrkkkirb"))))
|
"1ai58fsivb8al1279bayl800qavy0kfj40rjhf87g902ap3p4bhh"))))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:validate-runpath? #f
|
`(#:validate-runpath? #f
|
||||||
#:strip-binaries? #f ;; For some reason it breaks the program
|
#:strip-binaries? #f ;; For some reason it breaks the program
|
||||||
#:patchelf-plan
|
#:patchelf-plan
|
||||||
`(("usr/bin/anydesk" ("atk"
|
`(("anydesk" ("atk"
|
||||||
"cairo"
|
"cairo"
|
||||||
"fontconfig"
|
"fontconfig"
|
||||||
"freetype"
|
"freetype"
|
||||||
|
@ -66,29 +66,17 @@
|
||||||
"polkit-gnome"
|
"polkit-gnome"
|
||||||
"pulseaudio")))
|
"pulseaudio")))
|
||||||
#:install-plan
|
#:install-plan
|
||||||
`(("usr/bin/anydesk" "/bin/")
|
`(("anydesk" "/bin/")
|
||||||
("usr/share/polkit-1/actions/com.anydesk.anydesk.policy" "/etc/polkit-1/actions/")
|
("polkit-1/com.anydesk.anydesk.policy" "/etc/polkit-1/actions/")
|
||||||
("usr/share/icons" "/share/icons/"))
|
("icons/" "/share/icons/"))
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(replace 'binary-unpack
|
(replace 'unpack
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(let* ((files (filter (lambda (f)
|
(invoke "tar" "-xvzf" (assoc-ref inputs "source") "--strip-components" "1")))
|
||||||
(not (string=? (basename f) "environment-variables")))
|
|
||||||
(find-files (getcwd))))
|
|
||||||
(binary-file (car files)))
|
|
||||||
(when (= 1 (length files))
|
|
||||||
(mkdir "binary")
|
|
||||||
(chdir "binary")
|
|
||||||
(invoke "ar" "x" binary-file)
|
|
||||||
(invoke "tar" "xvf" "data.tar.gz")
|
|
||||||
(invoke "rm" "-rfv" "control.tar.gz"
|
|
||||||
"data.tar.gz"
|
|
||||||
binary-file
|
|
||||||
"debian-binary")))))
|
|
||||||
(add-after 'wrap-program 'install-desktop-entry
|
(add-after 'wrap-program 'install-desktop-entry
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let* ((desktop-file "usr/share/applications/anydesk.desktop")
|
(let* ((desktop-file "anydesk.desktop")
|
||||||
(out (assoc-ref outputs "out"))
|
(out (assoc-ref outputs "out"))
|
||||||
(applications (string-append out "/share/applications")))
|
(applications (string-append out "/share/applications")))
|
||||||
(substitute* desktop-file
|
(substitute* desktop-file
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
openlibm
|
openlibm
|
||||||
pulseaudio
|
pulseaudio
|
||||||
qtbase-5
|
qtbase-5
|
||||||
qtserialport-5
|
qtserialport
|
||||||
qtmultimedia-5
|
qtmultimedia-5
|
||||||
zlib))
|
zlib))
|
||||||
(synopsis "Layout, editing, and control software for your laser cutter")
|
(synopsis "Layout, editing, and control software for your laser cutter")
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2022, 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
;;; Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||||
;;; Copyright © 2022 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2022 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
|
|
||||||
|
@ -7,24 +7,32 @@
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
|
#:use-module (gnu packages cups)
|
||||||
|
#:use-module (gnu packages fontutils)
|
||||||
#:use-module (gnu packages fonts)
|
#:use-module (gnu packages fonts)
|
||||||
#:use-module (gnu packages freedesktop)
|
#:use-module (gnu packages freedesktop)
|
||||||
|
#:use-module (gnu packages databases)
|
||||||
|
#:use-module (gnu packages gcc)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
|
#:use-module (gnu packages gnome)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages nss)
|
||||||
#:use-module (gnu packages pciutils)
|
#:use-module (gnu packages pciutils)
|
||||||
#:use-module (gnu packages photo)
|
#:use-module (gnu packages photo)
|
||||||
#:use-module (gnu packages qt)
|
|
||||||
#:use-module (gnu packages video)
|
#:use-module (gnu packages video)
|
||||||
#:use-module (gnu packages wget)
|
#:use-module (gnu packages wget)
|
||||||
|
#:use-module (gnu packages xdisorg)
|
||||||
#:use-module (gnu packages xiph)
|
#:use-module (gnu packages xiph)
|
||||||
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (nonguix build-system chromium-binary)
|
#:use-module (nonguix build-system binary)
|
||||||
#:use-module (nonguix licenses)
|
#:use-module (nonguix licenses)
|
||||||
#:use-module (ice-9 string-fun))
|
#:use-module (ice-9 string-fun))
|
||||||
|
|
||||||
|
@ -32,7 +40,14 @@
|
||||||
(let* ((name (string-append "google-chrome-" repo))
|
(let* ((name (string-append "google-chrome-" repo))
|
||||||
(appname (if (string=? repo "stable")
|
(appname (if (string=? repo "stable")
|
||||||
"chrome"
|
"chrome"
|
||||||
(string-replace-substring name "google-" ""))))
|
(string-replace-substring name "google-" "")))
|
||||||
|
(patchelf-inputs (list "alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups"
|
||||||
|
"dbus" "eudev" "expat" "freetype" "fontconfig-minimal" "gcc" "gdk-pixbuf"
|
||||||
|
"glib" "gtk" "harfbuzz" "libdrm" "libnotify" "libsecret" "libx11"
|
||||||
|
"libxcb" "libexif" "libxcomposite" "libxcursor" "libxdamage"
|
||||||
|
"libxext" "libxfixes" "libxi" "libxkbcommon" "libxkbfile" "libxrandr"
|
||||||
|
"libxrender" "libxtst" "libnotify" "mesa" "nspr" "pango" "pipewire"
|
||||||
|
"sqlcipher" "xdg-utils" "zlib")))
|
||||||
(package
|
(package
|
||||||
(name name)
|
(name name)
|
||||||
(version version)
|
(version version)
|
||||||
|
@ -44,31 +59,37 @@
|
||||||
name "/" name "_" version "-1_amd64.deb"))
|
name "/" name "_" version "-1_amd64.deb"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 hash))))
|
(base32 hash))))
|
||||||
(build-system chromium-binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
;; almost 300MB, faster to download and build from Google servers
|
;; almost 300MB, faster to download and build from Google servers
|
||||||
#:substitutable? #f
|
#:substitutable? #f
|
||||||
#:wrapper-plan
|
#:patchelf-plan
|
||||||
#~(let ((path (string-append "opt/google/" #$appname "/")))
|
#~(let ((patchelf-inputs (list #$@patchelf-inputs))
|
||||||
|
(path (string-append "opt/google/" #$appname "/")))
|
||||||
(map (lambda (file)
|
(map (lambda (file)
|
||||||
(string-append path file))
|
(cons (string-append path file) (list patchelf-inputs)))
|
||||||
'("chrome"
|
'("chrome"
|
||||||
"chrome-sandbox"
|
"chrome-sandbox"
|
||||||
"chrome_crashpad_handler"
|
"chrome_crashpad_handler"
|
||||||
|
"nacl_helper"
|
||||||
"libEGL.so"
|
"libEGL.so"
|
||||||
"libGLESv2.so"
|
"libGLESv2.so")))
|
||||||
"liboptimization_guide_internal.so"
|
|
||||||
"libqt5_shim.so"
|
|
||||||
"libqt6_shim.so"
|
|
||||||
"libvk_swiftshader.so"
|
|
||||||
"libvulkan.so.1"
|
|
||||||
"WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))
|
|
||||||
#:install-plan
|
#:install-plan
|
||||||
#~'(("opt/" "/share")
|
#~'(("opt/" "/share")
|
||||||
("usr/share/" "/share"))
|
("usr/share/" "/share"))
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'unpack-deb
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(invoke "ar" "x" #$source)
|
||||||
|
(invoke "rm" "-v" "control.tar.xz"
|
||||||
|
"debian-binary"
|
||||||
|
(string-append "google-chrome-" #$repo "_"
|
||||||
|
#$version
|
||||||
|
"-1_amd64.deb"))
|
||||||
|
(invoke "tar" "xf" "data.tar.xz")
|
||||||
|
(invoke "rm" "-vrf" "data.tar.xz" "etc")))
|
||||||
(add-before 'install 'patch-assets
|
(add-before 'install 'patch-assets
|
||||||
;; Many thanks to
|
;; Many thanks to
|
||||||
;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/google-chrome/default.nix
|
;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/google-chrome/default.nix
|
||||||
|
@ -88,55 +109,94 @@
|
||||||
((old-exe) exe))
|
((old-exe) exe))
|
||||||
(substitute* (string-append usr/share "/menu/google-" #$appname ".menu")
|
(substitute* (string-append usr/share "/menu/google-" #$appname ".menu")
|
||||||
(("/opt") share)
|
(("/opt") share)
|
||||||
((old-exe) exe)))))
|
((old-exe) exe))
|
||||||
(add-after 'install 'install-icons
|
#t)))
|
||||||
(lambda _
|
(add-after 'install 'install-wrapper
|
||||||
(define (format-icon-size name)
|
|
||||||
(car
|
|
||||||
(string-split
|
|
||||||
(string-drop-right (string-drop name 13) 4)
|
|
||||||
#\_)))
|
|
||||||
(let ((icons (string-append #$output "/share/icons/hicolor"))
|
|
||||||
(share (string-append #$output "/share/google/" #$appname)))
|
|
||||||
(for-each (lambda (icon)
|
|
||||||
(let* ((icon-name (basename icon))
|
|
||||||
(icon-size (format-icon-size icon-name))
|
|
||||||
(target (string-append icons "/" icon-size "x" icon-size "/apps/google-" #$appname ".png")))
|
|
||||||
(mkdir-p (dirname target))
|
|
||||||
(rename-file icon target)))
|
|
||||||
(find-files share "product_logo_.*\\.png")))))
|
|
||||||
(add-before 'install-wrapper 'install-exe
|
|
||||||
(lambda _
|
(lambda _
|
||||||
(let* ((bin (string-append #$output "/bin"))
|
(let* ((bin (string-append #$output "/bin"))
|
||||||
(exe (string-append bin "/google-" #$appname))
|
(exe (string-append bin "/google-" #$appname))
|
||||||
(share (string-append #$output "/share"))
|
(share (string-append #$output "/share"))
|
||||||
(chrome-target (string-append share "/google/" #$appname "/google-" #$appname)))
|
(chrome-target (string-append share "/google/" #$appname "/google-" #$appname))
|
||||||
|
(patchelf-inputs-packages (list #$@(map (lambda (i) (this-package-input i)) patchelf-inputs)))
|
||||||
|
(ld-library-libs (map (lambda (input)
|
||||||
|
(string-append input "/lib"))
|
||||||
|
patchelf-inputs-packages)))
|
||||||
(mkdir-p bin)
|
(mkdir-p bin)
|
||||||
(symlink chrome-target exe)
|
(symlink chrome-target exe)
|
||||||
(wrap-program exe
|
(wrap-program exe
|
||||||
|
`("FONTCONFIG_PATH" ":" prefix
|
||||||
|
(,(string-join
|
||||||
|
(list
|
||||||
|
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||||
|
#$output)
|
||||||
|
":")))
|
||||||
|
`("LD_LIBRARY_PATH" ":" prefix
|
||||||
|
(,(string-join
|
||||||
|
(append
|
||||||
|
ld-library-libs
|
||||||
|
(list
|
||||||
|
(string-append #$(this-package-input "nss") "/lib/nss")
|
||||||
|
#$output))
|
||||||
|
":")))
|
||||||
'("CHROME_WRAPPER" = (#$appname)))))))))
|
'("CHROME_WRAPPER" = (#$appname)))))))))
|
||||||
|
(native-inputs (list tar))
|
||||||
(inputs
|
(inputs
|
||||||
(list bzip2
|
(list alsa-lib
|
||||||
|
at-spi2-atk
|
||||||
|
at-spi2-core
|
||||||
|
atk
|
||||||
|
bzip2
|
||||||
|
cairo
|
||||||
curl
|
curl
|
||||||
|
cups
|
||||||
|
dbus
|
||||||
|
eudev
|
||||||
|
expat
|
||||||
flac
|
flac
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
font-liberation
|
font-liberation
|
||||||
|
`(,gcc "lib")
|
||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
|
glib
|
||||||
gtk
|
gtk
|
||||||
harfbuzz
|
harfbuzz
|
||||||
|
libdrm
|
||||||
libexif
|
libexif
|
||||||
libglvnd
|
libglvnd
|
||||||
|
libnotify
|
||||||
libpng
|
libpng
|
||||||
|
librsvg
|
||||||
|
libsecret
|
||||||
libva
|
libva
|
||||||
|
libx11
|
||||||
|
libxcb
|
||||||
|
libxcomposite
|
||||||
|
libxcursor
|
||||||
|
libxdamage
|
||||||
|
libxext
|
||||||
|
libxfixes
|
||||||
|
libxi
|
||||||
|
libxkbcommon
|
||||||
|
libxkbfile
|
||||||
|
libxrandr
|
||||||
libxscrnsaver
|
libxscrnsaver
|
||||||
|
libxshmfence
|
||||||
|
libxrender
|
||||||
|
libxtst
|
||||||
|
mesa
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
opus
|
opus
|
||||||
|
pango
|
||||||
pciutils
|
pciutils
|
||||||
pipewire
|
pipewire
|
||||||
qtbase-5
|
|
||||||
qtbase
|
|
||||||
snappy
|
snappy
|
||||||
|
sqlcipher
|
||||||
util-linux
|
util-linux
|
||||||
xdg-utils
|
xdg-utils
|
||||||
wget))
|
wget
|
||||||
|
zlib))
|
||||||
(synopsis "Freeware web browser")
|
(synopsis "Freeware web browser")
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(description "Google Chrome is a cross-platform web browser developed by Google.")
|
(description "Google Chrome is a cross-platform web browser developed by Google.")
|
||||||
|
@ -144,10 +204,10 @@
|
||||||
(license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
|
(license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
|
||||||
|
|
||||||
(define-public google-chrome-stable
|
(define-public google-chrome-stable
|
||||||
(make-google-chrome "stable" "131.0.6778.108" "0b8a3dmn7n4kyjzyirxcy6xihnasmp3rcy2ly4zh7vp7r5l6lkqd"))
|
(make-google-chrome "stable" "112.0.5615.49" "0jq5pbyayk8pa9ksxp2dk3k7j2jic506mfpkq1a1z48j1l4fkr5i"))
|
||||||
|
|
||||||
(define-public google-chrome-beta
|
(define-public google-chrome-beta
|
||||||
(make-google-chrome "beta" "132.0.6834.32" "0ncjyg3vxsjspb0i1nsflcry9sfsffnqiwa2y7cgh46xamdq6f2c"))
|
(make-google-chrome "beta" "112.0.5615.49" "146gd9csj08d1ygwwh6gyqqbi7d34mhv3vv7wv4a8z9hn7jhdifg"))
|
||||||
|
|
||||||
(define-public google-chrome-unstable
|
(define-public google-chrome-unstable
|
||||||
(make-google-chrome "unstable" "133.0.6847.2" "1z15maqs1g8lhi7dm9hn4r272nl0g967a11igmw2sj14zl3n9j6g"))
|
(make-google-chrome "unstable" "113.0.5672.24" "0byksvk781gmh5fmjmc77jh19gvkzadf78yr9b4c42las44g4pn4"))
|
||||||
|
|
|
@ -26,15 +26,15 @@
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
|
||||||
(define-public chromium-embedded-framework
|
(define-public chromium-embedded-framework
|
||||||
(let ((git-revision "5053a95")
|
(let ((git-revision "d0bbcbb")
|
||||||
(chromium-version "117.0.5938.150")
|
(chromium-version "103.0.5060.114")
|
||||||
(arch (match (or (%current-target-system) (%current-system))
|
(arch (match (or (%current-target-system) (%current-system))
|
||||||
("aarch64-linux" "linuxarm64")
|
("aarch64-linux" "linuxarm64")
|
||||||
("armhf-linux" "linuxarm")
|
("armhf-linux" "linuxarm")
|
||||||
(_ "linux64"))))
|
(_ "linux64"))))
|
||||||
(package
|
(package
|
||||||
(name "chromium-embedded-framework")
|
(name "chromium-embedded-framework")
|
||||||
(version "117.2.4")
|
(version "103.0.9")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
"_" arch "_minimal.tar.bz2"))
|
"_" arch "_minimal.tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0vzzwq1k6bv9d209yg3samvfnfwj7s58y9r3p3pd98wxa9iyzf4j"))))
|
"143x0jmasl4z16bkxlrbz874chd9x9xpc5qylb9h7j80gfcrzlsi"))))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:patchelf-plan
|
`(#:patchelf-plan
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2020 Jelle Licht <jlicht@fsfe.org>
|
;;; Copyright © 2020 Jelle Licht <jlicht@fsfe.org>
|
||||||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
|
||||||
|
|
||||||
(define-module (nongnu packages clojure)
|
(define-module (nongnu packages clojure)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
|
@ -12,7 +11,6 @@
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system trivial)
|
#:use-module (guix build-system trivial)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (nonguix build-system binary)
|
#:use-module (nonguix build-system binary)
|
||||||
|
@ -87,7 +85,7 @@ lets you focus on your code.")
|
||||||
(define-public clj-kondo
|
(define-public clj-kondo
|
||||||
(package
|
(package
|
||||||
(name "clj-kondo")
|
(name "clj-kondo")
|
||||||
(version "2025.01.16")
|
(version "2023.01.20")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch/zipbomb)
|
(method url-fetch/zipbomb)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -95,87 +93,26 @@ lets you focus on your code.")
|
||||||
version "/clj-kondo-" version "-linux-amd64.zip"))
|
version "/clj-kondo-" version "-linux-amd64.zip"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0w9a2lz9xr5446bav2fp70jfinlm9zrl0iv9s0h0b6jczqx2f977"))))
|
"0i91qaqjnrg7ad0rs1r4rjwi77pr16dhck9bflb4kiyggcbs4dds"))))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:patchelf-plan `'(("clj-kondo" ("gcc" "zlib")))
|
`(#:patchelf-plan
|
||||||
#:install-plan `'(("./clj-kondo" "/bin/"))
|
'(("clj-kondo" ("gcc:lib" "zlib")))
|
||||||
#:phases #~(modify-phases %standard-phases
|
#:install-plan
|
||||||
(add-after 'unpack 'chmod
|
'(("clj-kondo" "/bin/"))
|
||||||
(lambda _
|
#:phases
|
||||||
(chmod "clj-kondo" #o755))))))
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'chmod
|
||||||
|
(lambda _
|
||||||
|
(chmod "clj-kondo" #o755))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list unzip))
|
`(("unzip" ,unzip)))
|
||||||
(inputs
|
(inputs
|
||||||
(list `(,gcc "lib")
|
`(("gcc:lib" ,gcc "lib")
|
||||||
zlib))
|
("zlib" ,zlib)))
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(home-page "https://github.com/clj-kondo/clj-kondo")
|
(home-page "https://github.com/clj-kondo/clj-kondo")
|
||||||
(synopsis "Linter for Clojure code")
|
(synopsis "Linter for Clojure code")
|
||||||
(description "Clj-kondo performs static analysis on Clojure, ClojureScript
|
(description "Clj-kondo performs static analysis on Clojure, ClojureScript
|
||||||
and EDN, without the need of a running REPL.")
|
and EDN, without the need of a running REPL.")
|
||||||
(license license:epl1.0)))
|
(license license:epl1.0)))
|
||||||
|
|
||||||
(define-public clojure-lsp
|
|
||||||
(package
|
|
||||||
(name "clojure-lsp")
|
|
||||||
(version "2024.03.13-13.11.00")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch/zipbomb)
|
|
||||||
(uri (string-append "https://github.com/clojure-lsp/clojure-lsp"
|
|
||||||
"/releases/download/" version
|
|
||||||
"/clojure-lsp-native-static-linux-amd64.zip"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1l6w55aragyf8rzy087iqw97xnpih5syjwhf0jwbgrqps2k44ms5"))))
|
|
||||||
(build-system binary-build-system)
|
|
||||||
(arguments
|
|
||||||
`(#:install-plan
|
|
||||||
'(("./clojure-lsp" "/bin/"))
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'chmod
|
|
||||||
(lambda _
|
|
||||||
(chmod "./clojure-lsp" #o755))))))
|
|
||||||
(inputs (list `(,gcc "lib") zlib))
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(home-page "https://github.com/clojure-lsp/clojure-lsp")
|
|
||||||
(synopsis "Clojure & ClojureScript Language Server (LSP) implementation")
|
|
||||||
(description "This package provides a Language Server for Clojure and ClojureScript
|
|
||||||
languages. The goal of this project is to bring great editing tools for
|
|
||||||
Clojure/Clojurescript to all editors and programatically via its CLI and API.
|
|
||||||
It aims to work alongside you to help you navigate, identify and fix errors,
|
|
||||||
perform refactors and more.")
|
|
||||||
(license license:expat)))
|
|
||||||
|
|
||||||
(define-public babashka
|
|
||||||
(package
|
|
||||||
(name "babashka")
|
|
||||||
(version "1.3.189")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch/tarbomb)
|
|
||||||
(uri (string-append "https://github.com/babashka/babashka"
|
|
||||||
"/releases/download/v" version "/babashka-"
|
|
||||||
version "-linux-amd64.tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1gzra3y5iljjqi4rj1qxr3yniqla3qnhv881gkzrp788fwsvlmwv"))))
|
|
||||||
(build-system binary-build-system)
|
|
||||||
(arguments
|
|
||||||
`(#:patchelf-plan
|
|
||||||
'(("bb" ("gcc" "zlib")))
|
|
||||||
#:install-plan
|
|
||||||
'(("./bb" "/bin/"))
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'chmod
|
|
||||||
(lambda _
|
|
||||||
(chmod "bb" #o755))))))
|
|
||||||
(inputs (list `(,gcc "lib") zlib))
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(home-page "https://github.com/babashka/babashka")
|
|
||||||
(synopsis "Native, fast starting Clojure interpreter for scripting")
|
|
||||||
(description "Babashka is a native Clojure interpreter for scripting with
|
|
||||||
fast startup. Its main goal is to leverage Clojure in places where you would
|
|
||||||
be using bash otherwise.")
|
|
||||||
(license license:epl1.0)))
|
|
||||||
|
|
|
@ -10,14 +10,14 @@
|
||||||
(define-public unrar
|
(define-public unrar
|
||||||
(package
|
(package
|
||||||
(name "unrar")
|
(name "unrar")
|
||||||
(version "7.0.9")
|
(version "6.2.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.rarlab.com/rar/unrarsrc-"
|
(uri (string-append "https://www.rarlab.com/rar/unrarsrc-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"09l336li4q7yrpjq22q6da2vrynpqbyb4a9fdxa02k65wkwi6p2h"))))
|
"1mbw20lh300r541dz4m84rvq7b542mnb70yc29afrjj6waknqza7"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ; No tests.
|
'(#:tests? #f ; No tests.
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
(define-public compcert
|
(define-public compcert
|
||||||
(package
|
(package
|
||||||
(name "compcert")
|
(name "compcert")
|
||||||
(version "3.14")
|
(version "3.12")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -24,11 +24,15 @@
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"030fsg0qr9aasmwk0ahp78sw8rbjmf6pl1w9ws5ghs61kyk4qwj1"))))
|
"0pcrkz1as37iz2wcp8j226fjn672lrj0cip2s0wpkiy097qi0yc5"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'allow-newer-coq-version
|
||||||
|
(lambda _
|
||||||
|
(substitute* "configure"
|
||||||
|
(("8.15.2") "8.16.1"))))
|
||||||
(replace 'configure
|
(replace 'configure
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let ((system ,(match (or (%current-target-system) (%current-system))
|
(let ((system ,(match (or (%current-target-system) (%current-system))
|
||||||
|
|
|
@ -67,25 +67,25 @@ various IDEs and plugins.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public dotnet
|
(define-public dotnet
|
||||||
(let ((dotnet-sdk-version "8.0.8"))
|
(let ((dotnet-sdk-version "6.0.9"))
|
||||||
(package
|
(package
|
||||||
(name "dotnet")
|
(name "dotnet")
|
||||||
(version "8.0.401")
|
(version "6.0.401")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch/tarbomb)
|
(method url-fetch/tarbomb)
|
||||||
(uri
|
(uri
|
||||||
(string-append "https://download.visualstudio.microsoft.com/"
|
(string-append "https://download.visualstudio.microsoft.com/download/pr/8159607a-e686-4ead-ac99-b4c97290a5fd/ec6070b1b2cc0651ebe57cf1bd411315/dotnet-sdk-"
|
||||||
"download/pr/db901b0a-3144-4d07-b8ab-6e7a43e7a791/"
|
version
|
||||||
"4d9d1b39b879ad969c6c0ceb6d052381/dotnet-sdk-"
|
"-linux-x64.tar.gz"))
|
||||||
version "-linux-x64.tar.gz"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1ygr563apl2776yjabn0plsvx5fcmb5wb0fnldrqwb9b5n8d6cb2"))))
|
(base32
|
||||||
|
"05yr64ffcaf48ripxzcv9nwlzp7r83cy9hz17dm5c0317lhksqch"))))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:patchelf-plan
|
`(#:patchelf-plan
|
||||||
;; TODO: Make this a more compact procedure.
|
`(("dotnet"
|
||||||
`(("dotnet" ("gcc:lib" "zlib"))
|
("gcc:lib" "zlib"))
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||||
dotnet-sdk-version
|
dotnet-sdk-version
|
||||||
"/libSystem.Net.Security.Native.so")
|
"/libSystem.Net.Security.Native.so")
|
||||||
|
@ -94,18 +94,6 @@ various IDEs and plugins.")
|
||||||
dotnet-sdk-version
|
dotnet-sdk-version
|
||||||
"/libSystem.Security.Cryptography.Native.OpenSsl.so")
|
"/libSystem.Security.Cryptography.Native.OpenSsl.so")
|
||||||
("openssl"))
|
("openssl"))
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
|
||||||
dotnet-sdk-version
|
|
||||||
"/libSystem.Native.so")
|
|
||||||
("gcc:lib"))
|
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
|
||||||
dotnet-sdk-version
|
|
||||||
"/libSystem.Globalization.Native.so")
|
|
||||||
("gcc:lib"))
|
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
|
||||||
dotnet-sdk-version
|
|
||||||
"/libSystem.Net.Security.Native.so")
|
|
||||||
("gcc:lib"))
|
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||||
dotnet-sdk-version
|
dotnet-sdk-version
|
||||||
"/libSystem.IO.Compression.Native.so")
|
"/libSystem.IO.Compression.Native.so")
|
||||||
|
@ -120,12 +108,12 @@ various IDEs and plugins.")
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||||
dotnet-sdk-version "/libclrjit.so")
|
dotnet-sdk-version "/libclrjit.so")
|
||||||
("gcc:lib"))
|
("gcc:lib"))
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
|
||||||
dotnet-sdk-version "/libclrgc.so")
|
|
||||||
("gcc:lib"))
|
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||||
dotnet-sdk-version "/libcoreclr.so")
|
dotnet-sdk-version "/libcoreclr.so")
|
||||||
("gcc:lib" "icu4c"))
|
("gcc:lib" "icu4c"))
|
||||||
|
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||||
|
dotnet-sdk-version "/libdbgshim.so")
|
||||||
|
("gcc:lib"))
|
||||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||||
dotnet-sdk-version "/libhostpolicy.so")
|
dotnet-sdk-version "/libhostpolicy.so")
|
||||||
("gcc:lib"))
|
("gcc:lib"))
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
((guix elf) #:select (elf-segments parse-elf PT_INTERP))
|
((guix elf) #:select (elf-segments parse-elf PT_INTERP))
|
||||||
((ice-9 binary-ports) #:select (get-bytevector-n))
|
((ice-9 binary-ports) #:select (get-bytevector-n))
|
||||||
((srfi srfi-1) #:select (last))
|
((srfi srfi-1) #:select (last))
|
||||||
,@%default-gnu-imported-modules)
|
,@%gnu-build-system-modules)
|
||||||
#:tests? #f
|
#:tests? #f
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2023, 2024 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
|
|
||||||
(define-module (nongnu packages editors)
|
|
||||||
#:use-module (gnu packages base)
|
|
||||||
#:use-module (gnu packages gtk)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module ((guix licenses) :prefix license:)
|
|
||||||
#:use-module (nonguix build-system chromium-binary)
|
|
||||||
#:use-module (ice-9 match))
|
|
||||||
|
|
||||||
(define-public vscodium
|
|
||||||
(package
|
|
||||||
(name "vscodium")
|
|
||||||
(version "1.92.1.24225")
|
|
||||||
(source
|
|
||||||
(let ((arch (match (or (%current-target-system) (%current-system))
|
|
||||||
("aarch64-linux" "arm64")
|
|
||||||
("armhf-linux" "armhf")
|
|
||||||
(_ "x64")))
|
|
||||||
(hash (match (or (%current-target-system) (%current-system))
|
|
||||||
("aarch64-linux"
|
|
||||||
"0m5x9v577h8n16ypzb1y2066alc59v5bw7jiqp2xr7g20s9kb0vy")
|
|
||||||
("armhf-linux"
|
|
||||||
"047gz12gx8pa5aglykd0785l6i9ivsn4kkgfhi5l0y4jh8hjys8c")
|
|
||||||
(_
|
|
||||||
"1w1rhbbk177yz85csck3sax51qnvgaip9w238dmzb4a50ikfnp23"))))
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri
|
|
||||||
(string-append
|
|
||||||
"https://github.com/VSCodium/vscodium/releases/download/" version
|
|
||||||
"/VSCodium-linux-" arch "-" version ".tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32 hash)))))
|
|
||||||
(build-system chromium-binary-build-system)
|
|
||||||
(arguments
|
|
||||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
|
||||||
#:substitutable? #f
|
|
||||||
#:wrapper-plan
|
|
||||||
#~'(("opt/vscodium/codium" (("out" "/opt/vscodium"))))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
|
||||||
(mkdir-p "opt/vscodium")
|
|
||||||
(invoke "tar" "-xvf" source "-C" "opt/vscodium")))
|
|
||||||
(add-before 'install-wrapper 'install-entrypoint
|
|
||||||
(lambda _
|
|
||||||
(let* ((bin (string-append #$output "/bin")))
|
|
||||||
(delete-file (string-append #$output "/environment-variables"))
|
|
||||||
(mkdir-p bin)
|
|
||||||
(symlink (string-append #$output "/opt/vscodium/codium")
|
|
||||||
(string-append bin "/codium")))))
|
|
||||||
(add-after 'install-entrypoint 'install-resources
|
|
||||||
(lambda _
|
|
||||||
(let* ((icons
|
|
||||||
(string-append #$output
|
|
||||||
"/share/icons/hicolor/512x512/apps"))
|
|
||||||
(icon.png
|
|
||||||
(string-append #$output
|
|
||||||
"/opt/vscodium/resources/app/"
|
|
||||||
"resources/linux/code.png"))
|
|
||||||
(apps (string-append #$output "/share/applications")))
|
|
||||||
(mkdir-p icons)
|
|
||||||
(symlink icon.png
|
|
||||||
(string-append icons "/code.png"))
|
|
||||||
(mkdir-p apps)
|
|
||||||
(make-desktop-entry-file
|
|
||||||
(string-append apps "/" #$name ".desktop")
|
|
||||||
#:name "VSCodium"
|
|
||||||
#:generic-name "Text Editor"
|
|
||||||
#:exec (string-append #$output "/bin/codium --ozone-platform-hint=auto")
|
|
||||||
#:icon "code"
|
|
||||||
#:type "Application"
|
|
||||||
#:actions '("new-empty-window")
|
|
||||||
#:keywords '("vscode")
|
|
||||||
#:categories '("TextEditor" "Development"
|
|
||||||
"IDE")
|
|
||||||
#:startup-notify #t
|
|
||||||
#:startup-w-m-class "Code"
|
|
||||||
#:comment
|
|
||||||
'(("en" "Code Editing. Redefined.")
|
|
||||||
(#f "Code Editing. Redefined.")))))))))
|
|
||||||
(supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
|
|
||||||
(native-inputs
|
|
||||||
(list tar))
|
|
||||||
(inputs
|
|
||||||
(list gdk-pixbuf))
|
|
||||||
(home-page "https://vscodium.com/")
|
|
||||||
(synopsis "Community-driven, freely-licensed binary distribution of VSCode")
|
|
||||||
(description "VSCodium is a community-driven, freely-licensed binary
|
|
||||||
distribution of Microsoft’s editor VSCode.")
|
|
||||||
(license license:expat)))
|
|
|
@ -1,106 +0,0 @@
|
||||||
;;; 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"))))
|
|
|
@ -1,17 +1,28 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2022 Demis Balbach <db@minikn.xyz>
|
;;; Copyright © 2022 Demis Balbach <db@minikn.xyz>
|
||||||
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
|
|
||||||
(define-module (nongnu packages engineering)
|
(define-module (nongnu packages engineering)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
|
#:use-module (gnu packages cups)
|
||||||
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages fontutils)
|
||||||
|
#:use-module (gnu packages gcc)
|
||||||
|
#:use-module (gnu packages gl)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
|
#:use-module (gnu packages gnome)
|
||||||
|
#:use-module (gnu packages gtk)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages nss)
|
||||||
|
#:use-module (gnu packages xdisorg)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module ((guix licenses) :prefix license:)
|
#:use-module ((guix licenses) :prefix license:)
|
||||||
#:use-module (nonguix build-system chromium-binary)
|
#:use-module (nonguix build-system binary)
|
||||||
#:use-module ((nonguix licenses) :prefix license:)
|
#:use-module ((nonguix licenses) :prefix license:)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
|
@ -28,42 +39,125 @@
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1rv3f8d1sb5irn4y8hjzk2m7c9irw71ls8p1mqambxg79q9ffj9m"))))
|
(base32 "1rv3f8d1sb5irn4y8hjzk2m7c9irw71ls8p1mqambxg79q9ffj9m"))))
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(build-system chromium-binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||||
#:wrapper-plan
|
#:patchelf-plan
|
||||||
#~'("lib/LycheeSlicer/lycheeslicer")
|
#~'(("lib/LycheeSlicer/lycheeslicer"
|
||||||
|
("alsa-lib"
|
||||||
|
"at-spi2-atk"
|
||||||
|
"at-spi2-core"
|
||||||
|
"atk"
|
||||||
|
"cairo"
|
||||||
|
"cups"
|
||||||
|
"dbus"
|
||||||
|
"expat"
|
||||||
|
"eudev"
|
||||||
|
"fontconfig-minimal"
|
||||||
|
"gcc"
|
||||||
|
"gdk-pixbuf"
|
||||||
|
"glib"
|
||||||
|
"gtk+"
|
||||||
|
"libdrm"
|
||||||
|
"libnotify"
|
||||||
|
"libsecret"
|
||||||
|
"libx11"
|
||||||
|
"libxcb"
|
||||||
|
"libxcomposite"
|
||||||
|
"libxdamage"
|
||||||
|
"libxext"
|
||||||
|
"libxfixes"
|
||||||
|
"libxkbcommon"
|
||||||
|
"libxrandr"
|
||||||
|
"libxscrnsaver"
|
||||||
|
"libxshmfence"
|
||||||
|
"libxtst"
|
||||||
|
"mesa"
|
||||||
|
"nspr"
|
||||||
|
"pango")))
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'binary-unpack 'setup-cwd
|
(replace 'unpack
|
||||||
(lambda _
|
(lambda _
|
||||||
|
(invoke "ar" "x" #$source)
|
||||||
|
(invoke "tar" "xvf" "data.tar.xz")
|
||||||
;; Use the more standard lib directory for everything.
|
;; Use the more standard lib directory for everything.
|
||||||
(rename-file "opt/" "lib")
|
(rename-file "opt/" "lib")
|
||||||
(mkdir-p "share")
|
(mkdir-p "share")
|
||||||
(copy-recursively "usr/share" "share")
|
(copy-recursively "usr/share" "share")
|
||||||
;; Remove unneeded files.
|
;; Remove unneeded files.
|
||||||
(delete-file-recursively "usr")))
|
(delete-file-recursively "usr")
|
||||||
(add-after 'setup-cwd 'fix-desktop-file
|
(delete-file "control.tar.gz")
|
||||||
|
(delete-file "data.tar.xz")
|
||||||
|
(delete-file "debian-binary")))
|
||||||
|
(add-after 'unpack 'fix-desktop-file
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Fix the .desktop file binary location.
|
;; Fix the .desktop file binary location.
|
||||||
(substitute* '("share/applications/lycheeslicer.desktop")
|
(substitute* '("share/applications/lycheeslicer.desktop")
|
||||||
(("/opt/LycheeSlicer")
|
(("/opt/LycheeSlicer")
|
||||||
(string-append #$output "/lib/LycheeSlicer")))))
|
(string-append #$output "/lib/LycheeSlicer")))))
|
||||||
(add-before 'install-wrapper 'symlink-binary-file
|
(add-after 'install 'symlink-binary-file-and-cleanup
|
||||||
(lambda _
|
(lambda _
|
||||||
|
(delete-file (string-append #$output "/environment-variables"))
|
||||||
(mkdir-p (string-append #$output "/bin"))
|
(mkdir-p (string-append #$output "/bin"))
|
||||||
(symlink (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
|
(symlink (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
|
||||||
(string-append #$output "/bin/lycheeslicer"))))
|
(string-append #$output "/bin/lycheeslicer"))))
|
||||||
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
|
(add-after 'install 'wrap-where-patchelf-does-not-work
|
||||||
(lambda _
|
(lambda _
|
||||||
(wrap-program (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
|
(wrap-program (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
|
||||||
|
`("FONTCONFIG_PATH" ":" prefix
|
||||||
|
(,(string-join
|
||||||
|
(list
|
||||||
|
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||||
|
#$output)
|
||||||
|
":")))
|
||||||
`("LD_LIBRARY_PATH" ":" prefix
|
`("LD_LIBRARY_PATH" ":" prefix
|
||||||
(,(string-join
|
(,(string-join
|
||||||
(list
|
(list
|
||||||
(string-append #$output "/lib/LycheeSlicer"))
|
(string-append #$(this-package-input "nss") "/lib/nss")
|
||||||
|
(string-append #$(this-package-input "mesa") "/lib")
|
||||||
|
(string-append #$(this-package-input "dbus") "/lib")
|
||||||
|
(string-append #$(this-package-input "gcc") "/lib")
|
||||||
|
(string-append #$(this-package-input "eudev") "/lib")
|
||||||
|
(string-append #$(this-package-input "libsecret") "/lib")
|
||||||
|
(string-append #$(this-package-input "libxscrnsaver") "/lib")
|
||||||
|
(string-append #$(this-package-input "libnotify") "/lib")
|
||||||
|
(string-append #$output "/lib/LycheeSlicer")
|
||||||
|
#$output)
|
||||||
":")))))))))
|
":")))))))))
|
||||||
|
(native-inputs (list tar))
|
||||||
(inputs
|
(inputs
|
||||||
(list libxscrnsaver))
|
(list alsa-lib
|
||||||
|
at-spi2-atk
|
||||||
|
at-spi2-core
|
||||||
|
atk
|
||||||
|
cairo
|
||||||
|
cups
|
||||||
|
dbus
|
||||||
|
expat
|
||||||
|
eudev
|
||||||
|
fontconfig
|
||||||
|
`(,gcc "lib")
|
||||||
|
glib
|
||||||
|
gtk+
|
||||||
|
libdrm
|
||||||
|
libnotify
|
||||||
|
libsecret
|
||||||
|
libx11
|
||||||
|
libxcb
|
||||||
|
libxcomposite
|
||||||
|
libxdamage
|
||||||
|
libxext
|
||||||
|
libxfixes
|
||||||
|
libxkbcommon
|
||||||
|
libxrandr
|
||||||
|
libxscrnsaver
|
||||||
|
libxshmfence
|
||||||
|
libxtst
|
||||||
|
mesa
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
pango))
|
||||||
(home-page "https://mango3d.io")
|
(home-page "https://mango3d.io")
|
||||||
(synopsis "Slicer for resin 3d printers of different manufacturers")
|
(synopsis "Slicer for resin 3d printers of different manufacturers")
|
||||||
(description "A user-friendly slicing software for resin 3d printers. It
|
(description "A user-friendly slicing software for resin 3d printers. It
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
||||||
;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com>
|
|
||||||
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
|
|
||||||
|
|
||||||
(define-module (nongnu packages firmware)
|
(define-module (nongnu packages firmware)
|
||||||
#:use-module (gnu packages compression)
|
|
||||||
#:use-module (gnu packages cpio)
|
|
||||||
#:use-module (gnu packages efi)
|
#:use-module (gnu packages efi)
|
||||||
#:use-module (gnu packages firmware)
|
#:use-module (gnu packages firmware)
|
||||||
#:use-module (guix build-system copy)
|
#:use-module (guix build-system copy)
|
||||||
|
@ -17,8 +13,7 @@
|
||||||
#:use-module ((guix licenses) #:prefix guix-license:)
|
#:use-module ((guix licenses) #:prefix guix-license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (nonguix licenses)
|
#:use-module (nonguix licenses))
|
||||||
#:use-module (nongnu packages compression))
|
|
||||||
|
|
||||||
;; fwupd with LVFS nonfree repositories enabled
|
;; fwupd with LVFS nonfree repositories enabled
|
||||||
(define-public fwupd-nonfree
|
(define-public fwupd-nonfree
|
||||||
|
@ -135,18 +130,16 @@ HDMI to USB Type-C Bridge in the PinePhone.")
|
||||||
(build-system copy-build-system)
|
(build-system copy-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:substitutable? #f
|
`(#:substitutable? #f
|
||||||
#:install-plan '(;;Bluetooth firmware
|
#:install-plan '( ;Bluetooth firmware
|
||||||
("BCM4345C5.hcd" "/lib/firmware/brcm/")
|
("BCM4345C5.hcd" "usr/lib/firmware/brcm/")
|
||||||
;; WiFi firmware
|
;; WiFi firmware
|
||||||
("fw_bcm43456c5_ag.bin" "/lib/firmware/brcm/")
|
("fw_bcm43456c5_ag.bin" "usr/lib/firmware/brcm/")
|
||||||
("fw_bcm43456c5_ag.bin"
|
|
||||||
"/lib/firmware/brcm/brcmfmac43456-sdio.bin")
|
|
||||||
("brcmfmac43456-sdio.clm_blob"
|
("brcmfmac43456-sdio.clm_blob"
|
||||||
"/lib/firmware/brcm/")
|
"usr/lib/firmware/brcm/")
|
||||||
("brcmfmac43456-sdio.AP6256.txt"
|
("brcmfmac43456-sdio.AP6256.txt"
|
||||||
"/lib/firmware/brcm/")
|
"usr/lib/firmware/brcm/")
|
||||||
("brcmfmac43456-sdio.AP6256.txt"
|
("brcmfmac43456-sdio.AP6256.txt"
|
||||||
"/lib/firmware/brcm/brcmfmac43456-sdio.pine64,pinebook-pro.txt"))))
|
"usr/lib/firmware/brcm/brcmfmac43456-sdio.pine64,pinebook-pro.txt"))))
|
||||||
(synopsis "Firmware for the wifi/bt module AP6256")
|
(synopsis "Firmware for the wifi/bt module AP6256")
|
||||||
(description
|
(description
|
||||||
"This package provides Firmware for the wifi/bt module AP6256,
|
"This package provides Firmware for the wifi/bt module AP6256,
|
||||||
|
@ -183,127 +176,3 @@ and STLC2300 Bluetooth chips.")
|
||||||
(license (list guix-license:gpl2+
|
(license (list guix-license:gpl2+
|
||||||
(nonfree
|
(nonfree
|
||||||
"file:///share/doc/bluez-firmware-1.2/BCM-LEGAL.txt")))))
|
"file:///share/doc/bluez-firmware-1.2/BCM-LEGAL.txt")))))
|
||||||
|
|
||||||
(define dump-file-chunk
|
|
||||||
#~(lambda (in out count start)
|
|
||||||
(use-modules (rnrs io ports))
|
|
||||||
(call-with-output-file out
|
|
||||||
(lambda (out-port)
|
|
||||||
(put-bytevector
|
|
||||||
out-port
|
|
||||||
(call-with-input-file in
|
|
||||||
(lambda (in-port)
|
|
||||||
(seek in-port start SEEK_SET)
|
|
||||||
(get-bytevector-n in-port count))))))))
|
|
||||||
|
|
||||||
(define-public facetimehd-firmware
|
|
||||||
(package
|
|
||||||
(name "facetimehd-firmware")
|
|
||||||
(version "1.43")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://updates.cdn-apple.com/2019/cert"
|
|
||||||
"/041-88431-20191011-e7ee7d98-2878-4cd9-bc0a-d98b3a1e24b1"
|
|
||||||
"/OSXUpd10.11.5.dmg"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"009kfk1nrrialgp69c5smzgbmd5xpvk35xmqr2fzb15h6pp33ka6"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:substitutable? #f
|
|
||||||
#:install-plan #~'(("firmware.bin" "/lib/firmware/facetimehd/"))
|
|
||||||
#:phases
|
|
||||||
(let ((dmg-subset-size 207733123)
|
|
||||||
(dmg-subset-offset 204909802)
|
|
||||||
(firmware-size 603715)
|
|
||||||
(firmware-offset 81920))
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-before 'install 'extract
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(let ((firmware-in
|
|
||||||
(string-append
|
|
||||||
"System/Library/Extensions/AppleCameraInterface.kext"
|
|
||||||
"/Contents/MacOS/AppleCameraInterface")))
|
|
||||||
(let ((dmg-subset "dmg-subset"))
|
|
||||||
(#$dump-file-chunk #$source
|
|
||||||
dmg-subset
|
|
||||||
#$dmg-subset-size
|
|
||||||
#$dmg-subset-offset)
|
|
||||||
(system
|
|
||||||
(string-join
|
|
||||||
(list (search-input-file inputs "/bin/xz")
|
|
||||||
"--decompress"
|
|
||||||
"--stdout"
|
|
||||||
dmg-subset
|
|
||||||
"|"
|
|
||||||
(search-input-file inputs "/bin/cpio")
|
|
||||||
"--format=odc"
|
|
||||||
"--extract"
|
|
||||||
"--make-directories"
|
|
||||||
(string-append "./" firmware-in)))))
|
|
||||||
(let ((firmware-out "firmware.bin.gz"))
|
|
||||||
(#$dump-file-chunk firmware-in
|
|
||||||
firmware-out
|
|
||||||
#$firmware-size
|
|
||||||
#$firmware-offset)
|
|
||||||
(invoke
|
|
||||||
(search-input-file inputs "/bin/gzip")
|
|
||||||
"--decompress"
|
|
||||||
(string-append firmware-out))))))))))
|
|
||||||
(native-inputs
|
|
||||||
(list cpio gzip xz))
|
|
||||||
(synopsis "Firmware for the FacetimeHD (Broadcom 1570) PCIe webcam")
|
|
||||||
(description "Firmware for the FacetimeHD webcam. See
|
|
||||||
@uref{https://github.com/patjak/facetimehd/wiki/Get-Started#firmware-extraction,
|
|
||||||
patjak's facetimehd wiki} for more information.")
|
|
||||||
(home-page "https://support.apple.com")
|
|
||||||
(license (nonfree "https://www.apple.com/legal"))
|
|
||||||
(supported-systems '("i686-linux" "x86_64-linux"))))
|
|
||||||
|
|
||||||
(define-public facetimehd-calibration
|
|
||||||
(package
|
|
||||||
(name "facetimehd-calibration")
|
|
||||||
(version "5.1.5769")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch/zipbomb)
|
|
||||||
(uri (string-append
|
|
||||||
"https://download.info.apple.com/Mac_OS_X"
|
|
||||||
"/031-30890-20150812-ea191174-4130-11e5-a125-930911ba098f"
|
|
||||||
"/bootcamp" version".zip"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"07jbh6d0djcvcgj5hhkkw7d6mvcl228yb8rp0a2qqw20ya72rpjf"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:install-plan #~'(("." "/lib/firmware/facetimehd/"
|
|
||||||
#:include-regexp ("[0-9]{4}_01XX\\.dat")))
|
|
||||||
#:phases
|
|
||||||
(let ((calibration-files
|
|
||||||
'(("1771_01XX.dat" 19040 1644880)
|
|
||||||
("1871_01XX.dat" 19040 1606800)
|
|
||||||
("1874_01XX.dat" 19040 1625840)
|
|
||||||
("9112_01XX.dat" 33060 1663920))))
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-before 'install 'extract
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(invoke (search-input-file inputs "/bin/unrar")
|
|
||||||
"x"
|
|
||||||
"BootCamp/Drivers/Apple/AppleCamera64.exe")
|
|
||||||
(for-each (lambda (spec)
|
|
||||||
(apply #$dump-file-chunk "AppleCamera.sys" spec))
|
|
||||||
'#$calibration-files)))))))
|
|
||||||
(native-inputs
|
|
||||||
(list unrar unzip))
|
|
||||||
(synopsis "Calibration files for the FacetimeHD (Broadcom 1570) PCIe webcam")
|
|
||||||
(description "Calibration files for the FacetimeHD webcam. These are
|
|
||||||
optional but make the colors look much better. See
|
|
||||||
@uref{https://github.com/patjak/facetimehd/wiki/Extracting-the-sensor-calibration-files,
|
|
||||||
patjak's facetimehd wiki} for more information.")
|
|
||||||
(home-page "https://support.apple.com/kb/DL1837")
|
|
||||||
(license (nonfree "https://www.apple.com/legal"))
|
|
||||||
(supported-systems '("i686-linux" "x86_64-linux"))))
|
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2021 Korytov Pavel <thexcloud@gmail.com>
|
;;; Copyright © 2021 Korytov Pavel <thexcloud@gmail.com>
|
||||||
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com>
|
|
||||||
|
|
||||||
(define-module (nongnu packages fonts)
|
(define-module (nongnu packages fonts)
|
||||||
#:use-module (ice-9 string-fun)
|
#:use-module (ice-9 string-fun)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (guix deprecation)
|
#:use-module (guix deprecation)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix build-system font)
|
#:use-module (guix build-system font)
|
||||||
#:use-module (guix build-system copy)
|
#:use-module (guix build-system copy)
|
||||||
|
@ -165,163 +163,3 @@ Included fonts:
|
||||||
("font-microsoft-trebuchet-ms" ,font-microsoft-trebuchet-ms)
|
("font-microsoft-trebuchet-ms" ,font-microsoft-trebuchet-ms)
|
||||||
("font-microsoft-verdana" ,font-microsoft-verdana)
|
("font-microsoft-verdana" ,font-microsoft-verdana)
|
||||||
("font-microsoft-webdings" ,font-microsoft-webdings)))))
|
("font-microsoft-webdings" ,font-microsoft-webdings)))))
|
||||||
|
|
||||||
(define* (apple-font #:key
|
|
||||||
font-name
|
|
||||||
archive-timestamp
|
|
||||||
version
|
|
||||||
file
|
|
||||||
hash
|
|
||||||
synopsis
|
|
||||||
description)
|
|
||||||
(package
|
|
||||||
(name (string-append "font-apple-"
|
|
||||||
(string-replace-substring
|
|
||||||
(string-downcase font-name)
|
|
||||||
" " "-")))
|
|
||||||
(version version)
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
;; Download link is unversioned, use a stable snapshot.
|
|
||||||
"https://web.archive.org/web/" archive-timestamp "/"
|
|
||||||
"https://devimages-cdn.apple.com/design/resources/download/"
|
|
||||||
file ".dmg"))
|
|
||||||
(sha256
|
|
||||||
(base32 hash))))
|
|
||||||
(build-system font-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source inputs #:allow-other-keys)
|
|
||||||
(let ((7z-exe (search-input-file inputs "/bin/7z")))
|
|
||||||
(invoke 7z-exe "x" source)
|
|
||||||
(invoke 7z-exe "x" (car (find-files "." "\\.pkg$")))
|
|
||||||
(invoke 7z-exe "x" "Payload~")))))))
|
|
||||||
(native-inputs (list p7zip))
|
|
||||||
(home-page "https://developer.apple.com/fonts")
|
|
||||||
(synopsis (string-append font-name " typeface by Apple."))
|
|
||||||
(description description)
|
|
||||||
(license
|
|
||||||
(nonfree
|
|
||||||
"https://www.apple.com"
|
|
||||||
"Specific license information is embedded in the font files."))))
|
|
||||||
|
|
||||||
(define-public font-apple-sf-pro
|
|
||||||
(apple-font
|
|
||||||
#:font-name "SF Pro"
|
|
||||||
#:archive-timestamp "20240527221252"
|
|
||||||
#:file "SF-Pro"
|
|
||||||
#:version "20.0d8e1"
|
|
||||||
#:hash "153k3q8h5mpd358b1lsa8ha32qxv7vc2q661k20j4nnf3ndjkv9j"
|
|
||||||
#:description "This neutral, flexible, sans-serif typeface is the system
|
|
||||||
font for iOS, iPad OS, macOS and tvOS. SF Pro features nine weights, variable
|
|
||||||
optical sizes for optimal legibility, four widths, and includes a rounded
|
|
||||||
variant. SF Pro supports over 150 languages across Latin, Greek, and Cyrillic
|
|
||||||
scripts."))
|
|
||||||
|
|
||||||
(define-public font-apple-sf-compact
|
|
||||||
(apple-font
|
|
||||||
#:font-name "SF Compact"
|
|
||||||
#:archive-timestamp "20240527221317"
|
|
||||||
#:file "SF-Compact"
|
|
||||||
#:version "20.0d8e1"
|
|
||||||
#:hash "01j7k95rnmg667hyhj88fxqrgsah2mnk2ws7fmclif92mqcgwirj"
|
|
||||||
#:description "Sharing many features with SF Pro, SF Compact features an
|
|
||||||
efficient, compact design that is optimized for small sizes and narrow columns.
|
|
||||||
SF Compact is the system font for watchOS and includes a rounded variant."))
|
|
||||||
|
|
||||||
(define-public font-apple-sf-mono
|
|
||||||
(apple-font
|
|
||||||
#:font-name "SF Mono"
|
|
||||||
#:archive-timestamp "20240527221346"
|
|
||||||
#:file "SF-Mono"
|
|
||||||
#:version "20.0d8e1"
|
|
||||||
#:hash "0cxj1wk6nbz1ysi0cg1w79b7ja48n00dypxkrsc3mvrn1vmdb4dm"
|
|
||||||
#:description "This monospaced variant of San Francisco enables alignment
|
|
||||||
between rows and columns of text, and is used in coding environments like Xcode.
|
|
||||||
SF Mono features six weights and supports Latin, Greek, and Cyrillic scripts."))
|
|
||||||
|
|
||||||
(define-public font-apple-sf-arabic
|
|
||||||
(apple-font
|
|
||||||
#:font-name "SF Arabic"
|
|
||||||
#:archive-timestamp "20240527221359"
|
|
||||||
#:file "SF-Arabic"
|
|
||||||
#:version "20.0d8e1"
|
|
||||||
#:hash "0sm7w5i19n3jdj6d04344nxizqacg264rladjiwhxhwa3ksfbxsn"
|
|
||||||
#:description "A contemporary interpretation of the Naskh style with a
|
|
||||||
rational and flexible design, this extension of San Francisco is the Arabic
|
|
||||||
system font on Apple platforms. Like San Francisco, SF Arabic features nine
|
|
||||||
weights, variable optical sizes that automatically adjust spacing and contrast
|
|
||||||
based on the point size, and includes a rounded variant."))
|
|
||||||
|
|
||||||
(define-public font-apple-new-york
|
|
||||||
(apple-font
|
|
||||||
#:font-name "New York"
|
|
||||||
#:archive-timestamp "20240527221356"
|
|
||||||
#:file "NY"
|
|
||||||
#:version "17.0d5e1"
|
|
||||||
#:hash "06d8pnfp4z5nb82mh7g7pnz5m4njph3zy17ww1m8x0m34hn50zdn"
|
|
||||||
#:description "A companion to San Francisco, this serif typeface is based on
|
|
||||||
essential aspects of historical type styles. New York features six weights,
|
|
||||||
supports Latin, Greek and Cyrillic scripts, and features variable optical sizes
|
|
||||||
allowing it to perform as a traditional reading face at small sizes and a
|
|
||||||
graphic display face at larger sizes."))
|
|
||||||
|
|
||||||
;; At the time of this writing, `sf-symbols' is just `sf-pro' and `sf-compact'
|
|
||||||
;; together plus one extra file, SFSymbolsFallback.otf. This package is
|
|
||||||
;; probably of limited use on non-macOS but we'll include it for completeness
|
|
||||||
;; and in case the situation changes in the future.
|
|
||||||
(define-public font-apple-sf-symbols
|
|
||||||
(apple-font
|
|
||||||
#:font-name "SF Symbols"
|
|
||||||
#:archive-timestamp "20240701100406"
|
|
||||||
#:file "SF-Symbols-6"
|
|
||||||
#:version "6"
|
|
||||||
#:hash "1hyghp03zpsiks2p6kmghnmg28kkjj3qqk2hgwva855kly6r4hv8"
|
|
||||||
#:description "With over 5,000 symbols, SF Symbols is a library of
|
|
||||||
iconography designed to integrate seamlessly with San Francisco, the system
|
|
||||||
font for Apple platforms. Symbols come in nine weights and three scales, and
|
|
||||||
automatically align with text labels."))
|
|
||||||
|
|
||||||
(define-public font-apple-color-emoji
|
|
||||||
(package
|
|
||||||
(name "font-apple-color-emoji")
|
|
||||||
(version "18.0d4e1")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://github.com/pharcosyle/apple-fonts"
|
|
||||||
"/releases/download"
|
|
||||||
"/Apple-Color-Emoji-" version "/Apple.Color.Emoji.ttc"))
|
|
||||||
(sha256
|
|
||||||
(base32 "06i1ady7b2g1i2hl3f8yxn64g2i82c2ni9vdw25gpdqdj28vyqw3"))))
|
|
||||||
(build-system font-build-system)
|
|
||||||
(home-page "https://www.apple.com")
|
|
||||||
(synopsis "Apple Color Emoji typeface by Apple.")
|
|
||||||
(description "Color and black-and-white Apple emoji fonts.")
|
|
||||||
(license (nonfree "https://www.apple.com"))))
|
|
||||||
|
|
||||||
(define-public font-apple-symbols
|
|
||||||
(package
|
|
||||||
(name "font-apple-symbols")
|
|
||||||
(version "17.0d1e2")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://github.com/pharcosyle/apple-fonts"
|
|
||||||
"/releases/download"
|
|
||||||
"/Apple-Symbols-" version "/Apple.Symbols.ttf"))
|
|
||||||
(sha256
|
|
||||||
(base32 "14ivhsiszmy1ql69kpr1f33n07qgpaj7w43w2p5qnmlwcrvs3ccr"))))
|
|
||||||
(build-system font-build-system)
|
|
||||||
(home-page "https://www.apple.com")
|
|
||||||
(synopsis "Apple Symbols typeface by Apple.")
|
|
||||||
(description "An Apple system font intended to provide coverage for
|
|
||||||
characters defined as symbols in the Unicode Standard.")
|
|
||||||
(license (nonfree "https://www.apple.com"))))
|
|
||||||
|
|
|
@ -1,366 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2020 pkill-9
|
|
||||||
;;; Copyright © 2020, 2021 ison <ison@airmail.cc>
|
|
||||||
;;; Copyright © 2021 pineapples
|
|
||||||
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
|
|
||||||
;;; Copyright © 2021 Kozo <kozodev@runbox.com>
|
|
||||||
;;; Copyright © 2021, 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
|
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
;;; Copyright © 2023 Elijah Malaby
|
|
||||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
|
||||||
|
|
||||||
(define-module (nongnu packages game-client)
|
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
|
||||||
#:use-module ((nonguix licenses) #:prefix license:)
|
|
||||||
#:use-module (guix git-download)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix build-system gnu)
|
|
||||||
#:use-module (guix build-system python)
|
|
||||||
#:use-module (gnu packages audio)
|
|
||||||
#:use-module (gnu packages base)
|
|
||||||
#:use-module (gnu packages bash)
|
|
||||||
#:use-module (gnu packages certs)
|
|
||||||
#:use-module (gnu packages compression)
|
|
||||||
#:use-module (gnu packages curl)
|
|
||||||
#:use-module (gnu packages elf)
|
|
||||||
#:use-module (gnu packages file)
|
|
||||||
#:use-module (gnu packages fonts)
|
|
||||||
#:use-module (gnu packages fontutils)
|
|
||||||
#:use-module (gnu packages freedesktop)
|
|
||||||
#:use-module (gnu packages gawk)
|
|
||||||
#:use-module (gnu packages gcc)
|
|
||||||
#:use-module (gnu packages gl)
|
|
||||||
#:use-module (gnu packages glib)
|
|
||||||
#:use-module (gnu packages gnome)
|
|
||||||
#:use-module (gnu packages graphics)
|
|
||||||
#:use-module (gnu packages gtk)
|
|
||||||
#:use-module (gnu packages libbsd)
|
|
||||||
#:use-module (gnu packages libusb)
|
|
||||||
#:use-module (gnu packages linux)
|
|
||||||
#:use-module (gnu packages llvm)
|
|
||||||
#:use-module (gnu packages logging)
|
|
||||||
#:use-module (gnu packages lsof)
|
|
||||||
#:use-module (nongnu packages nvidia)
|
|
||||||
#:use-module (gnu packages pciutils)
|
|
||||||
#:use-module (gnu packages pulseaudio)
|
|
||||||
#:use-module (gnu packages python)
|
|
||||||
#:use-module (gnu packages python-web)
|
|
||||||
#:use-module (gnu packages python-xyz)
|
|
||||||
#:use-module (gnu packages toolkits)
|
|
||||||
#:use-module (gnu packages video)
|
|
||||||
#:use-module (gnu packages xorg)
|
|
||||||
#:use-module (nonguix build-system chromium-binary)
|
|
||||||
#:use-module (nonguix multiarch-container)
|
|
||||||
#:use-module (nonguix utils))
|
|
||||||
|
|
||||||
(define heroic-client
|
|
||||||
(package
|
|
||||||
(name "heroic-client")
|
|
||||||
(version "2.15.2")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "https://github.com/Heroic-Games-Launcher/"
|
|
||||||
"HeroicGamesLauncher/releases/download/v"
|
|
||||||
version "/heroic_" version "_amd64.deb"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1bzdb9nqmr9w092c22n57ldykm00n98d78rhqzypf430lrl0kzcj"))))
|
|
||||||
(build-system chromium-binary-build-system)
|
|
||||||
(arguments
|
|
||||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
|
||||||
#:wrapper-plan
|
|
||||||
#~'(("lib/Heroic/heroic" (("out" "/lib/Heroic"))))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-after 'binary-unpack 'setup-cwd
|
|
||||||
(lambda _
|
|
||||||
(copy-recursively "usr/" ".")
|
|
||||||
;; Use the more standard lib directory for everything.
|
|
||||||
(rename-file "opt/" "lib")
|
|
||||||
;; Remove unneeded files.
|
|
||||||
(delete-file-recursively "usr")))
|
|
||||||
;; Fix the .desktop file "Exec" line to just be "heroic" in
|
|
||||||
;; order for this desktop file to be useful to launch heroic in
|
|
||||||
;; the container (heroic package) as well.
|
|
||||||
(add-after 'patch-dot-desktop-files 'fix-desktop-file
|
|
||||||
(lambda _
|
|
||||||
(substitute*
|
|
||||||
(string-append #$output "/share/applications/heroic.desktop")
|
|
||||||
(("Exec=.*/heroic") "Exec=heroic"))))
|
|
||||||
(delete 'patch-dot-desktop-files)
|
|
||||||
(add-after 'install 'symlink-binary-file
|
|
||||||
(lambda _
|
|
||||||
(mkdir-p (string-append #$output "/bin"))
|
|
||||||
(symlink (string-append #$output "/lib/Heroic/heroic")
|
|
||||||
(string-append #$output "/bin/heroic")))))))
|
|
||||||
(home-page "https://heroicgameslauncher.com")
|
|
||||||
(synopsis "Native GOG, Amazon and Epic Games Launcher")
|
|
||||||
(description "Heroic is an Open Source Game Launcher. Right now it supports launching
|
|
||||||
games from the Epic Games Store using Legendary, GOG Games using our custom
|
|
||||||
implementation with gogdl and Amazon Games using Nile.")
|
|
||||||
(license license:gpl3)))
|
|
||||||
|
|
||||||
(define steam-client
|
|
||||||
(package
|
|
||||||
(name "steam-client")
|
|
||||||
(version "1.0.0.78")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "http://repo.steampowered.com/steam/archive/precise/steam_"
|
|
||||||
version ".tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0390qy8vy7sx35hxl51yrbk6mvdz1vvpy96v07qva4bjbmsmjhhh"))
|
|
||||||
(file-name (string-append name "-" version ".tar.gz"))))
|
|
||||||
(build-system gnu-build-system)
|
|
||||||
(arguments
|
|
||||||
`(#:tests? #f ; There are no tests.
|
|
||||||
#:validate-runpath? #f ; Looks for bin/steam which doesn't exist.
|
|
||||||
#:make-flags
|
|
||||||
(list "PREFIX=" (string-append "DESTDIR=" (assoc-ref %outputs "out")))
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(delete 'configure)
|
|
||||||
;; Patch Makefile so it creates links to the store rather than /lib.
|
|
||||||
(add-after 'unpack 'patch-makefile
|
|
||||||
(lambda _
|
|
||||||
(substitute* "Makefile"
|
|
||||||
(("-fns ")
|
|
||||||
"-fns $(DESTDIR)"))))
|
|
||||||
(add-after 'unpack 'patch-startscript
|
|
||||||
(lambda _
|
|
||||||
(substitute* "bin_steam.sh"
|
|
||||||
(("/usr") (assoc-ref %outputs "out")))))
|
|
||||||
(add-after 'patch-dot-desktop-files 'patch-desktop-file
|
|
||||||
(lambda _
|
|
||||||
(let ((path (string-append (assoc-ref %outputs "out")
|
|
||||||
"/share/applications/")))
|
|
||||||
(substitute* (string-append path "steam.desktop")
|
|
||||||
(("Exec=.*/steam") "Exec=steam"))
|
|
||||||
(copy-file (string-append path "steam.desktop")
|
|
||||||
(string-append path "steam-asound32.desktop"))
|
|
||||||
(substitute* (string-append path "steam-asound32.desktop")
|
|
||||||
(("Exec=steam %U") "Exec=steam %U -- --asound32")
|
|
||||||
(("Name=Steam") "Name=Steam (32-bit ALSA)")))))
|
|
||||||
(delete 'patch-dot-desktop-files)
|
|
||||||
;; Steamdeps installs missing packages, which doesn't work with Guix.
|
|
||||||
(add-after 'install 'post-install
|
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
||||||
(let ((out (assoc-ref %outputs "out")))
|
|
||||||
(delete-file (string-append out "/lib/steam/bin_steamdeps.py"))
|
|
||||||
(delete-file (string-append out "/bin/steamdeps"))))))))
|
|
||||||
(home-page "https://store.steampowered.com")
|
|
||||||
(synopsis "Digital distribution platform for managing and playing games")
|
|
||||||
(description "Steam is a digital software distribution platform created by Valve.")
|
|
||||||
(license (license:nonfree "file:///share/doc/steam/steam_subscriber_agreement.txt"))))
|
|
||||||
|
|
||||||
(define steam-client-libs
|
|
||||||
`(("at-spi2-core" ,at-spi2-core) ; Required (often) for SteamVR interface.
|
|
||||||
("bash" ,bash) ; Required for steam startup.
|
|
||||||
("coreutils" ,coreutils)
|
|
||||||
("diffutils" ,diffutils)
|
|
||||||
("dbus-glib" ,dbus-glib) ; Required for steam browser.
|
|
||||||
("elfutils" ,elfutils) ; Required for capturing library dependencies in pv.
|
|
||||||
("eudev" ,eudev) ; Required for steamwebhelper/heavy runtime.
|
|
||||||
("fontconfig" ,fontconfig) ; Required for steam client.
|
|
||||||
("file" ,file) ; Used for steam installation.
|
|
||||||
("find" ,findutils) ; Required at least for some logging.
|
|
||||||
("font-google-noto" ,font-google-noto) ; Not required but to match following fonts.
|
|
||||||
;; These next three fonts are to cover emoji and Chinese/Japanese/Korean
|
|
||||||
;; and related scripts.
|
|
||||||
("font-google-noto-emoji" ,font-google-noto-emoji)
|
|
||||||
("font-google-noto-sans-cjk" ,font-google-noto-sans-cjk)
|
|
||||||
("font-google-noto-serif-cjk" ,font-google-noto-serif-cjk)
|
|
||||||
("freetype" ,freetype) ; Required for steam login.
|
|
||||||
("gawk" ,gawk)
|
|
||||||
("gdk-pixbuf" ,gdk-pixbuf) ; Required for steam tray icon.
|
|
||||||
;; Required for steam startup; use newer version for better compatibility
|
|
||||||
;; with some games like Dwarf Fortress.
|
|
||||||
("gcc:lib" ,gcc-14 "lib")
|
|
||||||
("grep" ,grep)
|
|
||||||
("libbsd" ,libbsd)
|
|
||||||
("libcap" ,libcap) ; Required for SteamVR, but needs pkexec too.
|
|
||||||
("libusb" ,libusb) ; Required for SteamVR.
|
|
||||||
("libva" ,libva) ; Required for hardware video encoding/decoding.
|
|
||||||
("libvdpau" ,libvdpau) ; Required for hardware video encoding/decoding.
|
|
||||||
("libvdpau-va-gl" ,libvdpau-va-gl) ; Additional VDPAU support.
|
|
||||||
("llvm" ,llvm-for-mesa) ; Required for mesa.
|
|
||||||
("lsof" ,lsof) ; Required for some friend's list actions.
|
|
||||||
("mesa" ,mesa) ; Required for steam startup.
|
|
||||||
("nss-certs" ,nss-certs) ; Required for steam login.
|
|
||||||
("pciutils" ,pciutils) ; Tries to run lspci at steam startup.
|
|
||||||
("procps" ,procps)
|
|
||||||
("sed" ,sed)
|
|
||||||
("tar" ,tar)
|
|
||||||
("usbutils" ,usbutils) ; Required for SteamVR.
|
|
||||||
("util-linux" ,util-linux) ; Required for steam login.
|
|
||||||
("wayland" ,wayland) ; Required for mesa vulkan (e.g. libvulkan_radeon).
|
|
||||||
("xdg-user-dirs" ,xdg-user-dirs) ; Suppress warning of missing xdg-user-dir.
|
|
||||||
("flatpak-xdg-utils" ,flatpak-xdg-utils)
|
|
||||||
("xz" ,xz)
|
|
||||||
("zenity" ,zenity))) ; Required for progress dialogs.
|
|
||||||
|
|
||||||
(define steam-gameruntime-libs
|
|
||||||
`(("alsa-lib" ,alsa-lib) ; Required for audio in most games.
|
|
||||||
("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio") ; Required for audio in most games.
|
|
||||||
("font-dejavu" ,font-dejavu)
|
|
||||||
("font-liberation" ,font-liberation)
|
|
||||||
("imgui" ,imgui-1.86) ; Required for MangoHud.
|
|
||||||
("mangohud" ,mangohud)
|
|
||||||
("openal" ,openal) ; Prevents corrupt audio in Crypt of the Necrodancer.
|
|
||||||
("pulseaudio" ,pulseaudio) ; Prevents corrupt audio in Sven Coop.
|
|
||||||
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
|
|
||||||
("spdlog" ,spdlog))) ; Required for MangoHud.
|
|
||||||
|
|
||||||
(define steam-container-libs
|
|
||||||
(append steam-client-libs
|
|
||||||
steam-gameruntime-libs
|
|
||||||
fhs-min-libs))
|
|
||||||
|
|
||||||
(define steam-nvidia-container-libs
|
|
||||||
(modify-inputs steam-container-libs
|
|
||||||
(replace "mesa" nvda)))
|
|
||||||
|
|
||||||
(define heroic-extra-client-libs
|
|
||||||
`(("curl" ,curl) ; Required for Heroic to download e.g. Wine.
|
|
||||||
("which" ,which) ; Heroic complains about trying to use which (though works).
|
|
||||||
("gtk+" ,gtk+))) ; Required for Heroic interface (gtk filechooser schema).
|
|
||||||
|
|
||||||
(define steam-ld.so.conf
|
|
||||||
(packages->ld.so.conf
|
|
||||||
(list (fhs-union steam-container-libs
|
|
||||||
#:name "fhs-union-64")
|
|
||||||
(fhs-union steam-container-libs
|
|
||||||
#:name "fhs-union-32"
|
|
||||||
#:system "i686-linux"))))
|
|
||||||
|
|
||||||
(define steam-ld.so.cache
|
|
||||||
(ld.so.conf->ld.so.cache steam-ld.so.conf))
|
|
||||||
|
|
||||||
(define steam-nvidia-ld.so.conf
|
|
||||||
(packages->ld.so.conf
|
|
||||||
(list (fhs-union steam-nvidia-container-libs
|
|
||||||
#:name "fhs-union-64")
|
|
||||||
(fhs-union steam-nvidia-container-libs
|
|
||||||
#:name "fhs-union-32"
|
|
||||||
#:system "i686-linux"))))
|
|
||||||
|
|
||||||
(define steam-nvidia-ld.so.cache
|
|
||||||
(ld.so.conf->ld.so.cache steam-nvidia-ld.so.conf))
|
|
||||||
|
|
||||||
(define-public steam-container
|
|
||||||
(nonguix-container
|
|
||||||
(name "steam")
|
|
||||||
(wrap-package steam-client)
|
|
||||||
(run "/bin/steam")
|
|
||||||
(ld.so.conf steam-ld.so.conf)
|
|
||||||
(ld.so.cache steam-ld.so.cache)
|
|
||||||
(union64
|
|
||||||
(fhs-union steam-container-libs
|
|
||||||
#:name "fhs-union-64"))
|
|
||||||
(union32
|
|
||||||
(fhs-union steam-container-libs
|
|
||||||
#:name "fhs-union-32"
|
|
||||||
#:system "i686-linux"))
|
|
||||||
(link-files '("share"))
|
|
||||||
(description "Steam is a digital software distribution platform created by
|
|
||||||
Valve. This package provides a script for launching Steam in a Guix container
|
|
||||||
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
|
||||||
all games will be installed.")))
|
|
||||||
|
|
||||||
(define-public steam-nvidia-container
|
|
||||||
(nonguix-container
|
|
||||||
(inherit steam-container)
|
|
||||||
(name "steam-nvidia")
|
|
||||||
;; Steam's .desktop files expect a "steam" executable, so provide that.
|
|
||||||
(binary-name "steam")
|
|
||||||
(ld.so.conf steam-nvidia-ld.so.conf)
|
|
||||||
(ld.so.cache steam-nvidia-ld.so.cache)
|
|
||||||
(union64
|
|
||||||
(fhs-union steam-nvidia-container-libs
|
|
||||||
#:name "fhs-union-64"))
|
|
||||||
(union32
|
|
||||||
(fhs-union steam-nvidia-container-libs
|
|
||||||
#:name "fhs-union-32"
|
|
||||||
#:system "i686-linux"))
|
|
||||||
(preserved-env %nvidia-environment-variable-regexps)))
|
|
||||||
|
|
||||||
(define-public steam (nonguix-container->package steam-container))
|
|
||||||
(define-public steam-nvidia (nonguix-container->package steam-nvidia-container))
|
|
||||||
|
|
||||||
(define-public heroic-container
|
|
||||||
(nonguix-container
|
|
||||||
(name "heroic")
|
|
||||||
(wrap-package heroic-client)
|
|
||||||
(run "/bin/heroic")
|
|
||||||
(ld.so.conf steam-ld.so.conf)
|
|
||||||
(ld.so.cache steam-ld.so.cache)
|
|
||||||
;; TODO: Probably can remove some of the packages from these lists, at
|
|
||||||
;; least changing the client libraries as Heroic is rather different from
|
|
||||||
;; Steam. However, a good number will be needed to run games anyway. A
|
|
||||||
;; better separation and testing in Steam as well would be helpful to
|
|
||||||
;; differentiate what packages are needed for what in general. For now,
|
|
||||||
;; this is easier and works.
|
|
||||||
(union64
|
|
||||||
(fhs-union `(,@heroic-extra-client-libs
|
|
||||||
,@steam-container-libs)
|
|
||||||
#:name "fhs-union-64"))
|
|
||||||
;; Don't include heroic-client-libs as they are not needed in 32-bit.
|
|
||||||
(union32
|
|
||||||
(fhs-union steam-container-libs
|
|
||||||
#:name "fhs-union-32"
|
|
||||||
#:system "i686-linux"))
|
|
||||||
(link-files '("share"))
|
|
||||||
(description "Heroic is an Open Source Game Launcher. Right now it supports launching
|
|
||||||
games from the Epic Games Store using Legendary, GOG Games using our custom
|
|
||||||
implementation with gogdl and Amazon Games using Nile. This package provides
|
|
||||||
a script for launching Heroic in a Guix container which will use the directory
|
|
||||||
@file{$HOME/.local/share/guix-sandbox-home} where all games will be
|
|
||||||
installed.")))
|
|
||||||
|
|
||||||
(define-public heroic-nvidia-container
|
|
||||||
(nonguix-container
|
|
||||||
(inherit heroic-container)
|
|
||||||
(name "heroic-nvidia")
|
|
||||||
(ld.so.conf steam-nvidia-ld.so.conf)
|
|
||||||
(ld.so.cache steam-nvidia-ld.so.cache)
|
|
||||||
(union64
|
|
||||||
(fhs-union `(,@heroic-extra-client-libs
|
|
||||||
,@steam-nvidia-container-libs)
|
|
||||||
#:name "fhs-union-64"))
|
|
||||||
(union32
|
|
||||||
(fhs-union steam-nvidia-container-libs
|
|
||||||
#:name "fhs-union-32"
|
|
||||||
#:system "i686-linux"))
|
|
||||||
(preserved-env %nvidia-environment-variable-regexps)))
|
|
||||||
|
|
||||||
(define-public heroic (nonguix-container->package heroic-container))
|
|
||||||
(define-public heroic-nvidia (nonguix-container->package heroic-nvidia-container))
|
|
||||||
|
|
||||||
(define-public protonup-ng
|
|
||||||
(package
|
|
||||||
(name "protonup-ng")
|
|
||||||
(version "0.2.1")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://github.com/cloudishBenne/protonup-ng")
|
|
||||||
(commit version)))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
|
||||||
(base32 "0yd2mhhqxzarqxk85zf42s931jzc94f1cssn1hblsqghr79laa45"))))
|
|
||||||
(build-system python-build-system)
|
|
||||||
(arguments
|
|
||||||
(list #:tests? #f)) ; there are no tests
|
|
||||||
(inputs
|
|
||||||
(list python-configparser python-requests))
|
|
||||||
(home-page "https://github.com/cloudishBenne/protonup-ng")
|
|
||||||
(synopsis "Manage Proton-GE Installations")
|
|
||||||
(description "ProtonUp-ng is a CLI program and API to automate the installation
|
|
||||||
and update of GloriousEggroll's Proton-GE.")
|
|
||||||
(license license:gpl3)))
|
|
|
@ -1,20 +1,16 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
||||||
;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si>
|
|
||||||
|
|
||||||
(define-module (nongnu packages game-development)
|
(define-module (nongnu packages game-development)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-1)
|
|
||||||
#:use-module ((nonguix licenses) :prefix license:)
|
#:use-module ((nonguix licenses) :prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (nonguix build-system binary)
|
#:use-module (nonguix build-system binary)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module ((guix licenses) :prefix license:)
|
|
||||||
#:use-module (gnu packages audio)
|
#:use-module (gnu packages audio)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages gcc)
|
#:use-module (gnu packages gcc)
|
||||||
|
@ -163,95 +159,128 @@ development should opt for GLSL rather than Cg.")
|
||||||
"https://raw.githubusercontent.com/ValveSoftware/source-sdk-2013/master/LICENSE"))))
|
"https://raw.githubusercontent.com/ValveSoftware/source-sdk-2013/master/LICENSE"))))
|
||||||
|
|
||||||
(define-public eduke32
|
(define-public eduke32
|
||||||
(package
|
;; There are no official releases.
|
||||||
(name "eduke32")
|
(let ((commit "188e14622cfe5c6f63b04b989b350bf2a29a893c")
|
||||||
(version "20240316-10564-0bc78c53d")
|
(revision "1")
|
||||||
(source
|
(duke-nukem-3d-directory "share/dukenukem3d"))
|
||||||
(origin
|
(package
|
||||||
(method url-fetch)
|
(name "eduke32")
|
||||||
(uri (string-append "https://dukeworld.com/eduke32/synthesis/"
|
(version (git-version "0" revision commit))
|
||||||
version "/eduke32_src_" version ".tar.xz"))
|
(source
|
||||||
(sha256
|
(origin
|
||||||
(base32 "1a9fw1kfriyrybjxl72b2434w3yiz2nxg6541lnyhzbdka2cp2lf"))
|
(method git-fetch)
|
||||||
(modules '((guix build utils)))
|
(uri (git-reference
|
||||||
(snippet
|
(url "https://voidpoint.io/terminx/eduke32.git")
|
||||||
;; Remove bundled libxmp and platform-specific stuff.
|
(commit commit)))
|
||||||
#~(for-each delete-file-recursively '("platform" "source/libxmp-lite")))))
|
(file-name (git-file-name name version))
|
||||||
(build-system gnu-build-system)
|
(sha256
|
||||||
(arguments
|
(base32 "0wy4bppiw4q2hn0v38msrjyvj2hzfvigakc23c2wqfnbl7rm0hrz"))
|
||||||
(list #:license-file-regexp "buildlic.txt"
|
;; Unbundle libxmp.
|
||||||
#:tests? #f
|
(modules '((guix build utils)))
|
||||||
#:phases
|
(snippet
|
||||||
#~(modify-phases %standard-phases
|
'(begin (delete-file-recursively "source/libxmp-lite") #t))))
|
||||||
(add-after 'unpack 'link-license
|
(build-system gnu-build-system)
|
||||||
(lambda _
|
(arguments
|
||||||
;; Ensure the install-license-files phase can find it.
|
`(#:tests? #f
|
||||||
(link "package/common/buildlic.txt" "buildlic.txt")))
|
;; Add glu to rpath so that SDL can dlopen it.
|
||||||
(add-after 'unpack 'unbundle-libxmp
|
#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
|
||||||
(lambda _
|
(assoc-ref %build-inputs "glu") "/lib"))
|
||||||
(substitute* "Common.mak"
|
#:phases
|
||||||
(("^LIBS :=" match) (string-append match " -lxmp")))
|
(modify-phases %standard-phases
|
||||||
(with-directory-excursion "source/audiolib/src"
|
(add-after 'unpack 'unbundle-libxmp
|
||||||
(for-each (lambda (file) (substitute* file (("libxmp-lite/") "")))
|
(lambda _
|
||||||
'("multivoc.cpp" "xmp.cpp")))))
|
(substitute* "GNUmakefile"
|
||||||
(add-after 'unpack 'fix-share-path
|
(("-I\\$\\(libxmplite_inc\\)")
|
||||||
(lambda _
|
(string-append "-I" (assoc-ref %build-inputs "libxmp") "/include"))
|
||||||
(substitute* "source/duke3d/src/common.cpp"
|
(("^ *audiolib_deps \\+= libxmplite.*$") "")
|
||||||
(("/usr/local/share/games") (string-append #$output "/share")))))
|
(("-logg") "-logg -lxmp"))
|
||||||
(delete 'configure)
|
(with-directory-excursion "source/audiolib/src"
|
||||||
(replace 'install
|
(for-each (lambda (file) (substitute* file (("libxmp-lite/") "")))
|
||||||
(lambda _
|
'("multivoc.cpp" "xmp.cpp")))
|
||||||
(let ((bin (string-append #$output "/bin")))
|
#t))
|
||||||
(install-file "eduke32" bin)
|
(delete 'configure)
|
||||||
(install-file "mapster32" bin)
|
(replace 'install
|
||||||
(install-file "package/sdk/m32help.hlp"
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(string-append #$output "/share/eduke32"))))))))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(inputs (list alsa-lib
|
(glu (assoc-ref inputs "glu"))
|
||||||
flac
|
(eduke (string-append out "/bin/eduke32"))
|
||||||
glu
|
(eduke-real (string-append out "/bin/.eduke32-real")))
|
||||||
gtk+-2
|
;; TODO: Install custom .desktop file? Need icon.
|
||||||
libvorbis
|
;; See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=eduke32.
|
||||||
libvpx
|
(install-file "eduke32" (string-append out "/bin"))
|
||||||
libxmp
|
(install-file "mapster32" (string-append out "/bin"))
|
||||||
sdl2
|
(install-file "package/common/buildlic.txt"
|
||||||
sdl2-mixer))
|
(string-append out "/share/licenses"))
|
||||||
(native-inputs
|
;; Wrap program:
|
||||||
(list gdk-pixbuf pkg-config))
|
;; - Make sure current directory is writable, else eduke32 will segfault.
|
||||||
(synopsis "Engine of the classic PC first person shooter Duke Nukem 3D")
|
;; - Add ../share/dukenukem3d to the dir search list.
|
||||||
(description "EDuke32 is a free homebrew game engine and source port of
|
;; TODO: Skip store duke3d.grp When ~/.config/eduke32/duke3d.grp is found.
|
||||||
the classic PC first person shooter Duke Nukem 3D—Duke3D for short. A
|
(rename-file eduke eduke-real)
|
||||||
thousands of features and upgrades were added for regular players and
|
(call-with-output-file eduke
|
||||||
additional editing capabilities and scripting extensions for homebrew
|
(lambda (p)
|
||||||
developers and mod creators. EDuke32 is open source but non-free software.
|
(format p "\
|
||||||
|
#!~a
|
||||||
|
mkdir -p ~~/.config/eduke32
|
||||||
|
cd ~~/.config/eduke32
|
||||||
|
exec -a \"$0\" ~a\
|
||||||
|
-g \"${0%/*}\"/../~a/*.grp\
|
||||||
|
-g \"${0%/*}\"/../~a/*.zip\
|
||||||
|
-g \"${0%/*}\"/../~a/*.map\
|
||||||
|
-g \"${0%/*}\"/../~a/*.con\
|
||||||
|
-g \"${0%/*}\"/../~a/*.def\
|
||||||
|
\"$@\"~%"
|
||||||
|
(which "bash") eduke-real
|
||||||
|
,duke-nukem-3d-directory
|
||||||
|
,duke-nukem-3d-directory
|
||||||
|
,duke-nukem-3d-directory
|
||||||
|
,duke-nukem-3d-directory
|
||||||
|
,duke-nukem-3d-directory)))
|
||||||
|
(chmod eduke #o755)))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("sdl-union" ,(sdl-union (list sdl2 sdl2-mixer)))
|
||||||
|
("alsa-lib" ,alsa-lib)
|
||||||
|
("glu" ,glu)
|
||||||
|
("libvorbis" ,libvorbis)
|
||||||
|
("libvpx" ,libvpx)
|
||||||
|
("libxmp" ,libxmp)
|
||||||
|
("flac" ,flac)
|
||||||
|
("gtk+" ,gtk+-2)))
|
||||||
|
(synopsis "Engine of the classic PC first person shooter Duke Nukem 3D")
|
||||||
|
(description "EDuke32 is a free homebrew game engine and source port of the
|
||||||
|
classic PC first person shooter Duke Nukem 3D—Duke3D for short. A thousands
|
||||||
|
of features and upgrades were added for regular players and additional editing
|
||||||
|
capabilities and scripting extensions for homebrew developers and mod
|
||||||
|
creators. EDuke32 is open source but non-free software.
|
||||||
|
|
||||||
This package does not contain any game file. You can either install packages
|
This package does not contain any game file. You can either install packages
|
||||||
with game files or or put @file{.grp} game files manually in
|
with game files or or put @file{.grp} game files manually in
|
||||||
@file{~/.config/eduke32/}.")
|
@file{~/.config/eduke32/}.")
|
||||||
(home-page "https://eduke32.com")
|
(home-page "https://eduke32.com/")
|
||||||
(license
|
(license (license:nonfree
|
||||||
(list license:gpl2
|
"https://eduke32.com/buildlic.txt")))))
|
||||||
(license:nonfree "file://package/common/buildlic.txt")))))
|
|
||||||
|
|
||||||
(define-public fury
|
(define-public fury
|
||||||
(package/inherit eduke32
|
(package
|
||||||
|
(inherit eduke32)
|
||||||
(name "fury")
|
(name "fury")
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments eduke32)
|
(substitute-keyword-arguments (package-arguments eduke32)
|
||||||
((#:make-flags flags #~'())
|
((#:make-flags flags ''()) `(cons* "FURY=1" ,flags))
|
||||||
#~(cons* "FURY=1" #$flags))
|
((#:phases phases '%standard-phases)
|
||||||
((#:phases phases #~%standard-phases)
|
`(modify-phases ,phases
|
||||||
#~(modify-phases #$phases
|
(replace 'install
|
||||||
(add-after 'unpack 'disable-sdl-static
|
(lambda _
|
||||||
(lambda _
|
(let* ((out (assoc-ref %outputs "out")))
|
||||||
(substitute* "GNUmakefile"
|
(install-file "fury" (string-append out "/bin"))
|
||||||
(("SDL_STATIC := 1") ""))))
|
(install-file "mapster32" (string-append out "/bin"))
|
||||||
(replace 'install
|
(install-file "package/common/buildlic.txt"
|
||||||
(lambda _
|
(string-append out "/share/licenses")))
|
||||||
(install-file "fury" (string-append #$output "/bin"))))))))
|
#t))))))
|
||||||
(inputs
|
|
||||||
(alist-delete "libvpx" (package-inputs eduke32)))
|
|
||||||
(synopsis "Game engine for the first-person shooter Ion Fury")
|
(synopsis "Game engine for the first-person shooter Ion Fury")
|
||||||
(description
|
(description
|
||||||
"This is the @code{eduke32} engine built with support for the Ion Fury
|
(string-append
|
||||||
|
"This is the @code{eduke32} engine built with support for the Ion Fury
|
||||||
game. Game data is not provided. Run @command{fury} with the option
|
game. Game data is not provided. Run @command{fury} with the option
|
||||||
@option{-j} to specify the directory containing @file{fury.grp}.")))
|
@option{-j} to specify the directory containing @file{fury.grp}."))))
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2021-2022 Timotej Lazar <timotej.lazar@araneo.si>
|
;;; Copyright © 2021-2022 Timotej Lazar <timotej.lazar@araneo.si>
|
||||||
;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com>
|
|
||||||
|
|
||||||
(define-module (nongnu packages gog)
|
(define-module (nongnu packages gog)
|
||||||
#:use-module (gnu packages boost)
|
#:use-module (gnu packages boost)
|
||||||
|
@ -22,7 +21,7 @@
|
||||||
(define-public lgogdownloader
|
(define-public lgogdownloader
|
||||||
(package
|
(package
|
||||||
(name "lgogdownloader")
|
(name "lgogdownloader")
|
||||||
(version "3.15")
|
(version "3.9")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -31,7 +30,7 @@
|
||||||
(commit (string-append "v" version))))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0bjjn2wam4f2lzmk0hkdxxc7k0wk3f0lyszl0birsr9h3jjpjqw7"))))
|
(base32 "1hbwgwdm1vn7lkz366q9q8f44sk1pvhgjffndwx49lh3md66xps2"))))
|
||||||
(build-system qt-build-system)
|
(build-system qt-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags '("-DUSE_QT_GUI=ON")
|
`(#:configure-flags '("-DUSE_QT_GUI=ON")
|
||||||
|
@ -39,11 +38,15 @@
|
||||||
(inputs
|
(inputs
|
||||||
(list boost
|
(list boost
|
||||||
curl
|
curl
|
||||||
|
htmlcxx
|
||||||
jsoncpp
|
jsoncpp
|
||||||
qtwebengine
|
liboauth
|
||||||
|
qtbase-5
|
||||||
|
qtdeclarative-5
|
||||||
|
qtwebchannel-5
|
||||||
|
qtwebengine-5
|
||||||
rhash
|
rhash
|
||||||
tinyxml2
|
tinyxml2
|
||||||
tidy-html
|
|
||||||
zlib))
|
zlib))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list help2man
|
(list help2man
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2024 Romain Garbage <romain.garbage@inria.fr>
|
|
||||||
|
|
||||||
(define-module (nongnu packages hugo)
|
|
||||||
#:use-module (nonguix build-system binary)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module ((guix licenses)
|
|
||||||
#:prefix license:)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (guix utils))
|
|
||||||
|
|
||||||
(define-public hugo
|
|
||||||
(package
|
|
||||||
(name "hugo")
|
|
||||||
(version "0.140.2")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://github.com/gohugoio/hugo/releases/download/v" version
|
|
||||||
"/" name "_" version "_linux-" (cond ((target-aarch64?)
|
|
||||||
"arm64")
|
|
||||||
((target-arm32?)
|
|
||||||
"arm")
|
|
||||||
((target-x86-64?)
|
|
||||||
"amd64")) ".tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32 (cond ((target-aarch64?)
|
|
||||||
"1dv2k9j3i3294bl94jhwi645pf5r2143hizxd3xpc3fz8w8cfyy8")
|
|
||||||
((target-arm32?)
|
|
||||||
"0f3mirqn3x2lrj7gzjyqklj081y7jfyxww2zkccg9f6jq0vcfcxd")
|
|
||||||
((target-x86-64?)
|
|
||||||
"0hs4b3nrr1qajrh7f64ibwjrfipqllvifp526kf2gfxnhpkr67l8"))))))
|
|
||||||
(build-system binary-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:install-plan ''(("hugo" "/bin/hugo"))))
|
|
||||||
(supported-systems (list "aarch64-linux"
|
|
||||||
"armhf-linux"
|
|
||||||
"x86_64-linux"))
|
|
||||||
(home-page "https://gohugo.io/")
|
|
||||||
(synopsis "Static site generator written in Go")
|
|
||||||
(description
|
|
||||||
"Hugo is a static site generator written in Go, optimized for speed and
|
|
||||||
designed for flexibility. With its advanced templating system and fast asset
|
|
||||||
pipelines, Hugo renders a complete site in seconds, often less.")
|
|
||||||
(license license:asl2.0)))
|
|
|
@ -1,217 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
|
|
||||||
(define-module (nongnu packages k8s)
|
|
||||||
#:use-module (guix build-system copy)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module ((guix licenses) :prefix license:))
|
|
||||||
|
|
||||||
(define-public k9s
|
|
||||||
(package
|
|
||||||
(name "k9s")
|
|
||||||
(version "0.32.5")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://github.com/derailed/k9s/releases/download/v"
|
|
||||||
version "/k9s_Linux_amd64.tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"18yf4vr4pgdl5ssijmpf45amdasjrd3mbgnsp1cjnadszvsiphrk"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:substitutable? #f
|
|
||||||
#:install-plan
|
|
||||||
#~'(("k9s" "bin/"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
|
||||||
(invoke "tar" "-xvf" source))))))
|
|
||||||
(home-page "https://k9scli.io")
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(synopsis "Kubernetes CLI To Manage Your Clusters In Style")
|
|
||||||
(description
|
|
||||||
"K9s provides a terminal UI to interact with your Kubernetes clusters. The
|
|
||||||
aim of this project is to make it easier to navigate, observe and manage your
|
|
||||||
applications in the wild. K9s continually watches Kubernetes for changes and
|
|
||||||
offers subsequent commands to interact with your observed resources.")
|
|
||||||
(license license:asl2.0)))
|
|
||||||
|
|
||||||
(define-public katenary
|
|
||||||
(package
|
|
||||||
(name "katenary")
|
|
||||||
(version "2.0.0-beta2")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://github.com/metal3d/katenary/releases/download/"
|
|
||||||
version "/katenary-linux-amd64"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0vk5c82bf5aasrgz2b7qdjlbmlcjha0r3swmrbs9y5mms18y7m3i"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:substitutable? #f
|
|
||||||
#:install-plan
|
|
||||||
#~'(("katenary" "bin/"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
|
||||||
(copy-file source "./katenary")
|
|
||||||
(chmod "katenary" #o644)))
|
|
||||||
(add-before 'install 'chmod
|
|
||||||
(lambda _
|
|
||||||
(chmod "katenary" #o555))))))
|
|
||||||
(home-page "https://github.com/metal3d/katenary")
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(synopsis "Convert docker-compose to a configurable helm chart")
|
|
||||||
(description
|
|
||||||
"Katenary is a tool to help to transform docker-compose files to a working
|
|
||||||
Helm Chart for Kubernetes.")
|
|
||||||
(license license:expat)))
|
|
||||||
|
|
||||||
(define-public kubectl
|
|
||||||
(package
|
|
||||||
(name "kubectl")
|
|
||||||
(version "1.31.0")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://dl.k8s.io/release/v" version "/bin/linux/amd64/kubectl"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0dr40ckdj65ka6ndp8knyprh1k0nx6vg8yyg7p6c1lc49b3as9vw"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:substitutable? #f
|
|
||||||
#:install-plan
|
|
||||||
#~'(("kubectl" "bin/"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
|
||||||
(copy-file source "./kubectl")
|
|
||||||
(chmod "kubectl" #o644)))
|
|
||||||
(add-before 'install 'chmod
|
|
||||||
(lambda _
|
|
||||||
(chmod "kubectl" #o555))))))
|
|
||||||
(home-page "https://github.com/kubernetes/kubectl")
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(synopsis "Kubernetes command line tool")
|
|
||||||
(description
|
|
||||||
"kubectl allows you to run commands against Kubernetes clusters. You can
|
|
||||||
use kubectl to deploy applications, inspect and manage cluster resources, and
|
|
||||||
view logs.")
|
|
||||||
(license license:asl2.0)))
|
|
||||||
|
|
||||||
(define-public kompose
|
|
||||||
(package
|
|
||||||
(name "kompose")
|
|
||||||
(version "1.34.0")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://github.com/kubernetes/kompose/releases/download/v"
|
|
||||||
version "/kompose-linux-amd64"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0wg1ks3flb5rbpazich7v052s3zm8fwja044r67sky3bxxihx3f5"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:substitutable? #f
|
|
||||||
#:install-plan
|
|
||||||
#~'(("kompose" "bin/"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
|
||||||
(copy-file source "./kompose")))
|
|
||||||
(add-before 'install 'chmod
|
|
||||||
(lambda _
|
|
||||||
(chmod "kompose" #o555))))))
|
|
||||||
(home-page "https://kompose.io")
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(synopsis "Go from Docker Compose to Kubernetes")
|
|
||||||
(description
|
|
||||||
"Kompose is a conversion tool for Docker Compose to container orchestrators
|
|
||||||
such as Kubernetes (or OpenShift).")
|
|
||||||
(license license:expat)))
|
|
||||||
|
|
||||||
(define-public helm-kubernetes
|
|
||||||
(package
|
|
||||||
(name "helm-kubernetes")
|
|
||||||
(version "3.15.4")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://get.helm.sh/helm-v" version "-linux-amd64.tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1afgf08z6hgy07kjk8fj7xkr8ma4qk2f1r33901nzz87zkn0yh0i"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:substitutable? #f
|
|
||||||
#:install-plan
|
|
||||||
#~'(("linux-amd64/helm" "bin/"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
|
||||||
(invoke "tar" "-xvf" source)))
|
|
||||||
(add-before 'install 'chmod
|
|
||||||
(lambda _
|
|
||||||
(chmod "linux-amd64/helm" #o555))))))
|
|
||||||
(home-page "https://helm.sh")
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(synopsis "The package manager for Kubernetes")
|
|
||||||
(description
|
|
||||||
"Helm helps you manage Kubernetes applications - Helm Charts help you
|
|
||||||
define, install, and upgrade Kubernetes applications.")
|
|
||||||
(license license:asl2.0)))
|
|
||||||
|
|
||||||
(define-public kind
|
|
||||||
(package
|
|
||||||
(name "kind")
|
|
||||||
(version "0.24.0")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "https://kind.sigs.k8s.io/dl/v" version "/kind-linux-amd64"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"03b0idcb11knqyx2ryakvlkqk1cdyavkar6izjihsqlxlfjsv6mq"))))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:substitutable? #f
|
|
||||||
#:install-plan
|
|
||||||
#~'(("kind" "bin/"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'unpack
|
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
|
||||||
(copy-file source "./kind")
|
|
||||||
(chmod "kind" #o644)))
|
|
||||||
(add-before 'install 'chmod
|
|
||||||
(lambda _
|
|
||||||
(chmod "kind" #o555))))))
|
|
||||||
(home-page "https://kind.sigs.k8s.io")
|
|
||||||
(synopsis "Tool for running local Kubernetes clusters using Docker containers")
|
|
||||||
(description "kind (Kubernetes in Docker) is designed for creating and managing
|
|
||||||
local Kubernetes clusters using Docker containers as nodes. It provides
|
|
||||||
a fast and straightforward way to run Kubernetes for development and
|
|
||||||
testing tasks.
|
|
||||||
|
|
||||||
Supporting multi-node cluster configurations, kind is ideal for testing
|
|
||||||
more complex, real-world scenarios without demanding extensive resources.
|
|
||||||
It’s a lightweight, portable, and configurable solution useful in
|
|
||||||
continuous integration (CI) workflows.")
|
|
||||||
(license license:asl2.0)))
|
|
|
@ -4,7 +4,7 @@
|
||||||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||||
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
|
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
|
||||||
;;; Copyright © 2020, 2021 James Smith <jsubuntuxp@disroot.org>
|
;;; Copyright © 2020, 2021 James Smith <jsubuntuxp@disroot.org>
|
||||||
;;; Copyright © 2020-2025 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2020, 2021, 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
|
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
|
||||||
;;; Copyright © 2020, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2020, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2020, 2021, 2022 Zhu Zihao <all_but_last@163.com>
|
;;; Copyright © 2020, 2021, 2022 Zhu Zihao <all_but_last@163.com>
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
;;; Copyright © 2021 Risto Stevcev <me@risto.codes>
|
;;; Copyright © 2021 Risto Stevcev <me@risto.codes>
|
||||||
;;; Copyright © 2021 aerique <aerique@xs4all.nl>
|
;;; Copyright © 2021 aerique <aerique@xs4all.nl>
|
||||||
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
|
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
|
||||||
;;; Copyright © 2022, 2023, 2024, 2025 John Kehayias <john.kehayias@protonmail.com>
|
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
|
||||||
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
||||||
;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
|
;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
|
||||||
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
|
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
|
||||||
|
@ -21,22 +21,12 @@
|
||||||
;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com>
|
;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com>
|
||||||
;;; Copyright © 2023 Morgan Smith <Morgan.J.Smith@outlook.com>
|
;;; Copyright © 2023 Morgan Smith <Morgan.J.Smith@outlook.com>
|
||||||
;;; Copyright © 2023 Jelle Licht <jlicht@fsfe.org>
|
;;; Copyright © 2023 Jelle Licht <jlicht@fsfe.org>
|
||||||
;;; Copyright © 2023 Adam Kandur <rndd@tuta.io>
|
|
||||||
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
|
|
||||||
;;; Copyright © 2023 Ada Stevenson <adanskana@gmail.com>
|
|
||||||
;;; Copyright © 2023 Tomas Volf <~@wolfsden.cz>
|
|
||||||
;;; Copyright © 2023 PRESFIL <presfil@protonmail.com>
|
|
||||||
;;; Copyright © 2024, 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
||||||
|
|
||||||
(define-module (nongnu packages linux)
|
(define-module (nongnu packages linux)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (nongnu packages)
|
|
||||||
#:use-module (gnu packages admin)
|
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages cpio)
|
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages parallel)
|
|
||||||
#:use-module (guix licenses)
|
#:use-module (guix licenses)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
|
@ -58,43 +48,7 @@
|
||||||
"/linux/kernel/v" (version-major version) ".x"
|
"/linux/kernel/v" (version-major version) ".x"
|
||||||
"/linux-" version ".tar.xz"))
|
"/linux-" version ".tar.xz"))
|
||||||
|
|
||||||
;;; If you are corrupting the kernel on your own, consider using output of
|
(define* (corrupt-linux freedo #:key (name "linux") (configs '()))
|
||||||
;;; this procedure as a base for your options:
|
|
||||||
;;; (corrupt-linux linux-libre-lts
|
|
||||||
;;; #:configs (cons* "CONFIG_FOO=y"
|
|
||||||
;;; (nonguix-extra-linux-options linux-libre-lts)
|
|
||||||
(define-public (nonguix-extra-linux-options linux-or-version)
|
|
||||||
"Return a list containing additional options that nonguix sets by default
|
|
||||||
for a corrupted linux package of specified version. linux-or-version can be
|
|
||||||
some freedo package or an output of package-version procedure."
|
|
||||||
(define linux-version
|
|
||||||
(if (package? linux-or-version)
|
|
||||||
(package-version linux-or-version)
|
|
||||||
linux-or-version))
|
|
||||||
|
|
||||||
(reverse (fold (lambda (opt opts)
|
|
||||||
(if (version>=? linux-version (car opt))
|
|
||||||
(cons* (cdr opt) opts)
|
|
||||||
opts))
|
|
||||||
'()
|
|
||||||
;; List of additional options for nonguix corrupted linux.
|
|
||||||
;; Each member is a pair of a minimal version (>=) and the
|
|
||||||
;; option itself. Option has to be in a format suitable for
|
|
||||||
;; (@ (guix build kconfig) modify-defconfig) procedure.
|
|
||||||
;;
|
|
||||||
;; Do note that this list is intended for enabling use of
|
|
||||||
;; hardware requiring non-free firmware. If a configuration
|
|
||||||
;; option does work under linux-libre, it should go into Guix
|
|
||||||
;; actual.
|
|
||||||
'(
|
|
||||||
;; Driver for MediaTek mt7921e wireless chipset
|
|
||||||
("5.15" . "CONFIG_MT7921E=m")))))
|
|
||||||
|
|
||||||
(define* (corrupt-linux freedo
|
|
||||||
#:key
|
|
||||||
(name "linux")
|
|
||||||
(configs (nonguix-extra-linux-options freedo))
|
|
||||||
(defconfig #f))
|
|
||||||
|
|
||||||
;; TODO: This very directly depends on guix internals.
|
;; TODO: This very directly depends on guix internals.
|
||||||
;; Throw it all out when we manage kernel hashes.
|
;; Throw it all out when we manage kernel hashes.
|
||||||
|
@ -122,13 +76,11 @@ some freedo package or an output of package-version procedure."
|
||||||
(inherit
|
(inherit
|
||||||
(customize-linux
|
(customize-linux
|
||||||
#:name name
|
#:name name
|
||||||
#:linux freedo
|
|
||||||
#:source (origin
|
#:source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri url)
|
(uri url)
|
||||||
(hash hash))
|
(hash hash))
|
||||||
#:configs configs
|
#:configs configs))
|
||||||
#:defconfig defconfig))
|
|
||||||
(version version)
|
(version version)
|
||||||
(home-page "https://www.kernel.org/")
|
(home-page "https://www.kernel.org/")
|
||||||
(synopsis "Linux kernel with nonfree binary blobs included")
|
(synopsis "Linux kernel with nonfree binary blobs included")
|
||||||
|
@ -136,14 +88,8 @@ some freedo package or an output of package-version procedure."
|
||||||
"The unmodified Linux kernel, including nonfree blobs, for running Guix System
|
"The unmodified Linux kernel, including nonfree blobs, for running Guix System
|
||||||
on hardware which requires nonfree software to function."))))
|
on hardware which requires nonfree software to function."))))
|
||||||
|
|
||||||
(define-public linux-6.13
|
(define-public linux-6.2
|
||||||
(corrupt-linux linux-libre-6.13))
|
(corrupt-linux linux-libre-6.2))
|
||||||
|
|
||||||
(define-public linux-6.12
|
|
||||||
(corrupt-linux linux-libre-6.12))
|
|
||||||
|
|
||||||
(define-public linux-6.6
|
|
||||||
(corrupt-linux linux-libre-6.6))
|
|
||||||
|
|
||||||
(define-public linux-6.1
|
(define-public linux-6.1
|
||||||
(corrupt-linux linux-libre-6.1))
|
(corrupt-linux linux-libre-6.1))
|
||||||
|
@ -157,205 +103,44 @@ on hardware which requires nonfree software to function."))))
|
||||||
(define-public linux-5.4
|
(define-public linux-5.4
|
||||||
(corrupt-linux linux-libre-5.4))
|
(corrupt-linux linux-libre-5.4))
|
||||||
|
|
||||||
(define-public linux linux-6.12)
|
(define-public linux-4.19
|
||||||
|
(corrupt-linux linux-libre-4.19))
|
||||||
|
|
||||||
|
(define-public linux-4.14
|
||||||
|
(corrupt-linux linux-libre-4.14))
|
||||||
|
|
||||||
|
(define-public linux linux-6.2)
|
||||||
;; linux-lts points to the *newest* released long-term support version.
|
;; linux-lts points to the *newest* released long-term support version.
|
||||||
(define-public linux-lts linux-6.12)
|
(define-public linux-lts linux-5.15)
|
||||||
|
|
||||||
(define-public linux-arm64-generic-5.10
|
(define-public linux-arm64-generic-6.0
|
||||||
(corrupt-linux linux-libre-arm64-generic-5.10 #:name "linux-arm64-generic"))
|
|
||||||
|
|
||||||
(define-public linux-arm64-generic-5.4
|
|
||||||
(corrupt-linux linux-libre-arm64-generic-5.4 #:name "linux-arm64-generic"))
|
|
||||||
|
|
||||||
(define-public linux-arm64-generic
|
|
||||||
(corrupt-linux linux-libre-arm64-generic #:name "linux-arm64-generic"))
|
(corrupt-linux linux-libre-arm64-generic #:name "linux-arm64-generic"))
|
||||||
|
|
||||||
|
(define-public linux-arm64-generic-5.15
|
||||||
;;;
|
(corrupt-linux linux-libre-arm64-generic #:name "linux-arm64-generic"))
|
||||||
;;; Linux-XanMod
|
|
||||||
;;;
|
|
||||||
|
|
||||||
(define* (make-linux-xanmod-source version xanmod-revision
|
(define-public linux-arm64-generic linux-arm64-generic-6.0)
|
||||||
#:key xanmod-branch kernel-hash xanmod-hash)
|
|
||||||
|
|
||||||
(define %upstream-linux-source
|
(define-public linux-arm64-generic-lts linux-arm64-generic-5.15)
|
||||||
(@@ (gnu packages linux) %upstream-linux-source))
|
|
||||||
|
|
||||||
(define kernel-source
|
|
||||||
(%upstream-linux-source (version-major+minor version) kernel-hash))
|
|
||||||
|
|
||||||
(define xanmod-patch
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"mirror://sourceforge/xanmod/releases/" xanmod-branch "/"
|
|
||||||
version "-" xanmod-revision "/patch-"
|
|
||||||
version "-" xanmod-revision ".xz"))
|
|
||||||
(sha256 xanmod-hash)))
|
|
||||||
|
|
||||||
(origin
|
|
||||||
(inherit kernel-source)
|
|
||||||
(modules '((guix build utils)))
|
|
||||||
(snippet
|
|
||||||
#~(begin
|
|
||||||
(let* ((xz-name (basename #+xanmod-patch))
|
|
||||||
(patch-xz-name (string-append (string-drop-right xz-name 3)
|
|
||||||
".patch.xz"))
|
|
||||||
(patch-name (string-drop-right patch-xz-name 3)))
|
|
||||||
(copy-file #+xanmod-patch patch-xz-name)
|
|
||||||
(invoke #+(file-append xz "/bin/unxz") patch-xz-name)
|
|
||||||
(invoke #+(file-append patch "/bin/patch")
|
|
||||||
"--force" "--no-backup-if-mismatch"
|
|
||||||
#+@(origin-patch-flags kernel-source)
|
|
||||||
"--input" patch-name)
|
|
||||||
(for-each delete-file
|
|
||||||
(list patch-name
|
|
||||||
;; EXTRAVERSION is used instead.
|
|
||||||
"localversion")))))))
|
|
||||||
|
|
||||||
(define* (make-linux-xanmod version xanmod-revision source
|
|
||||||
#:key
|
|
||||||
(name "linux-xanmod")
|
|
||||||
(xanmod-defconfig "config_x86-64-v1"))
|
|
||||||
|
|
||||||
(define %default-extra-linux-options
|
|
||||||
((@@ (gnu packages linux) default-extra-linux-options) version))
|
|
||||||
|
|
||||||
(define config->string
|
|
||||||
(@@ (gnu packages linux) config->string))
|
|
||||||
|
|
||||||
(define base-kernel
|
|
||||||
(customize-linux
|
|
||||||
#:name name
|
|
||||||
#:source source
|
|
||||||
#:defconfig xanmod-defconfig
|
|
||||||
;; EXTRAVERSION is used instead.
|
|
||||||
#:configs (config->string
|
|
||||||
'(("CONFIG_LOCALVERSION" . "")))
|
|
||||||
#:extra-version xanmod-revision))
|
|
||||||
|
|
||||||
(package
|
|
||||||
(inherit base-kernel)
|
|
||||||
(version version)
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments base-kernel)
|
|
||||||
((#:phases phases)
|
|
||||||
#~(modify-phases #$phases
|
|
||||||
;; Since `customize-linux' replaces the configure phase, we add
|
|
||||||
;; XanMod defconfig beforehand to ensure compatibility of the
|
|
||||||
;; resulting package with `customize-linux'.
|
|
||||||
(add-before 'configure 'add-xanmod-defconfig
|
|
||||||
(lambda _
|
|
||||||
(rename-file
|
|
||||||
(string-append "CONFIGS/xanmod/gcc/" #$xanmod-defconfig)
|
|
||||||
".config")
|
|
||||||
|
|
||||||
;; Adapted from `make-linux-libre*'.
|
|
||||||
(chmod ".config" #o666)
|
|
||||||
(let ((port (open-file ".config" "a"))
|
|
||||||
(extra-configuration
|
|
||||||
#$(config->string
|
|
||||||
(append %default-extra-linux-options
|
|
||||||
;; NOTE: These are configs expected by Guix
|
|
||||||
;; but missing from XanMod defconfig.
|
|
||||||
'(("CONFIG_BLK_DEV_NVME" . #t))))))
|
|
||||||
(display extra-configuration port)
|
|
||||||
(close-port port))
|
|
||||||
(invoke "make" "oldconfig")
|
|
||||||
|
|
||||||
(rename-file
|
|
||||||
".config"
|
|
||||||
(string-append "arch/x86/configs/" #$xanmod-defconfig))))))))
|
|
||||||
(native-inputs
|
|
||||||
(modify-inputs (package-native-inputs base-kernel)
|
|
||||||
;; cpio is needed for CONFIG_IKHEADERS.
|
|
||||||
(prepend cpio zstd)))
|
|
||||||
(home-page "https://xanmod.org/")
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(synopsis "Linux kernel distribution with custom settings and new features")
|
|
||||||
(description
|
|
||||||
"This package provides XanMod kernel, a general-purpose Linux kernel
|
|
||||||
distribution with custom settings and new features. It's built to provide a
|
|
||||||
stable, responsive and smooth desktop experience.")))
|
|
||||||
|
|
||||||
;; Linux-XanMod sources
|
|
||||||
(define-public linux-xanmod-version "6.12.13")
|
|
||||||
(define-public linux-xanmod-revision "xanmod1")
|
|
||||||
(define-public linux-xanmod-source
|
|
||||||
(make-linux-xanmod-source
|
|
||||||
linux-xanmod-version
|
|
||||||
linux-xanmod-revision
|
|
||||||
#:xanmod-branch "main"
|
|
||||||
#:kernel-hash (base32 "1sr58vsh39hdwk0z27lg14isqwn4g8m4r7a8z2rsyhkfwlmmd8mi")
|
|
||||||
#:xanmod-hash (base32 "18a7hbm7gvf6b7wr84rszmpl1yb3mdgj2plv5627mv09dn87lvz2")))
|
|
||||||
|
|
||||||
(define-public linux-xanmod-lts-version "6.6.72")
|
|
||||||
(define-public linux-xanmod-lts-revision "xanmod1")
|
|
||||||
(define-public linux-xanmod-lts-source
|
|
||||||
(make-linux-xanmod-source
|
|
||||||
linux-xanmod-lts-version
|
|
||||||
linux-xanmod-lts-revision
|
|
||||||
#:xanmod-branch "lts"
|
|
||||||
#:kernel-hash (base32 "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr")
|
|
||||||
#:xanmod-hash (base32 "119jvwmxpjfpifg7mhqirjc1g1q769584hv2xc8wyg2iklhhs653")))
|
|
||||||
|
|
||||||
;; Linux-XanMod packages
|
|
||||||
(define-public linux-xanmod
|
|
||||||
(make-linux-xanmod linux-xanmod-version
|
|
||||||
linux-xanmod-revision
|
|
||||||
linux-xanmod-source))
|
|
||||||
|
|
||||||
(define-public linux-xanmod-lts
|
|
||||||
(make-linux-xanmod linux-xanmod-lts-version
|
|
||||||
linux-xanmod-lts-revision
|
|
||||||
linux-xanmod-lts-source))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
|
||||||
;;; Firmwares
|
|
||||||
;;;
|
|
||||||
|
|
||||||
(define-public linux-firmware
|
(define-public linux-firmware
|
||||||
(package
|
(package
|
||||||
(name "linux-firmware")
|
(name "linux-firmware")
|
||||||
(version "20250211")
|
(version "20230404")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://kernel.org/linux/kernel/firmware/"
|
(uri (string-append "mirror://kernel.org/linux/kernel/firmware/"
|
||||||
"linux-firmware-" version ".tar.xz"))
|
"linux-firmware-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0z998nxplnc22nbj3yzdyjjs433p92rzvq2x5i9rv0xzjxc39q9d"))))
|
"01znf4gnymxn8q189gda6rlksw1nz1980ypkj0jcw71inlmsvyf3"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:tests? #f
|
`(#:tests? #f
|
||||||
#:strip-binaries? #f
|
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
|
||||||
#:validate-runpath? #f
|
#:phases
|
||||||
#:make-flags #~(list (string-append "DESTDIR=" #$output))
|
(modify-phases %standard-phases
|
||||||
#:phases
|
(delete 'validate-runpath))))
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'patch-out-check_whence.py
|
|
||||||
(lambda _
|
|
||||||
;; The 'check_whence.py' script requires git (and the
|
|
||||||
;; repository metadata).
|
|
||||||
(substitute* "copy-firmware.sh"
|
|
||||||
(("./check_whence.py")
|
|
||||||
"true"))))
|
|
||||||
(delete 'configure)
|
|
||||||
(replace 'install
|
|
||||||
;; Use Zstd compression to reduce space requirements.
|
|
||||||
(lambda* (#:key (parallel-build? #t) (make-flags '())
|
|
||||||
#:allow-other-keys)
|
|
||||||
(let ((num-jobs (if parallel-build?
|
|
||||||
(number->string (parallel-job-count))
|
|
||||||
"1")))
|
|
||||||
;; Use the best 'standard' compression level.
|
|
||||||
(setenv "ZSTD_CLEVEL" "19")
|
|
||||||
;; Compress using multiple threads.
|
|
||||||
(setenv "ZSTD_NBTHREADS" num-jobs)
|
|
||||||
(apply invoke "make" "install-zst" "-j" num-jobs
|
|
||||||
make-flags)))))))
|
|
||||||
(native-inputs (list parallel rdfind zstd))
|
|
||||||
(home-page
|
(home-page
|
||||||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git")
|
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git")
|
||||||
(synopsis "Nonfree firmware blobs for Linux")
|
(synopsis "Nonfree firmware blobs for Linux")
|
||||||
|
@ -369,23 +154,23 @@ if your hardware is supported by one of the smaller firmware packages.")
|
||||||
|
|
||||||
(define (select-firmware keep)
|
(define (select-firmware keep)
|
||||||
"Modify linux-firmware copy list to retain only files matching KEEP regex."
|
"Modify linux-firmware copy list to retain only files matching KEEP regex."
|
||||||
#~(lambda _
|
`(lambda _
|
||||||
(use-modules (ice-9 regex))
|
(use-modules (ice-9 regex))
|
||||||
(substitute* "WHENCE"
|
(substitute* "WHENCE"
|
||||||
(("^(File|RawFile|Link): *([^ ]*)(.*)" _ type file rest)
|
(("^(File|Link): *([^ ]*)(.*)" _ type file rest)
|
||||||
(string-append (if (string-match #$keep file) type "Skip") ": " file rest)))))
|
(string-append (if (string-match ,keep file) type "Skip") ": " file rest)))))
|
||||||
|
|
||||||
(define-public amdgpu-firmware
|
(define-public amdgpu-firmware
|
||||||
(package
|
(package
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "amdgpu-firmware")
|
(name "amdgpu-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICENSE.amdgpu"
|
`(#:license-file-regexp "LICENSE.amdgpu"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^amdgpu/")))))))
|
,(select-firmware "^amdgpu/")))))))
|
||||||
(home-page "http://support.amd.com/en-us/download/linux")
|
(home-page "http://support.amd.com/en-us/download/linux")
|
||||||
(synopsis "Nonfree firmware for AMD graphics chips")
|
(synopsis "Nonfree firmware for AMD graphics chips")
|
||||||
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
||||||
|
@ -403,12 +188,12 @@ advanced 3D.")
|
||||||
(inherit amdgpu-firmware)
|
(inherit amdgpu-firmware)
|
||||||
(name "radeon-firmware")
|
(name "radeon-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICENSE.radeon"
|
`(#:license-file-regexp "LICENSE.radeon"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^radeon/")))))))
|
,(select-firmware "^radeon/")))))))
|
||||||
(synopsis "Nonfree firmware for older AMD graphics chips")
|
(synopsis "Nonfree firmware for older AMD graphics chips")
|
||||||
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
||||||
graphics cards can be run with the free Mesa, some cards require a nonfree
|
graphics cards can be run with the free Mesa, some cards require a nonfree
|
||||||
|
@ -460,12 +245,12 @@ and modules, userspace libraries, and bootloader/GPU firmware.")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "atheros-firmware")
|
(name "atheros-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICEN[CS]E.*[Aa]th"
|
`(#:license-file-regexp "LICEN[CS]E.*[Aa]th"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)")))))))
|
,(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)")))))))
|
||||||
(synopsis "Nonfree firmware blobs for Atheros wireless cards")
|
(synopsis "Nonfree firmware blobs for Atheros wireless cards")
|
||||||
(description "Nonfree firmware blobs for Atheros wireless cards. This
|
(description "Nonfree firmware blobs for Atheros wireless cards. This
|
||||||
package contains nonfree firmware for the following chips:
|
package contains nonfree firmware for the following chips:
|
||||||
|
@ -636,12 +421,12 @@ WLAN.TF.2.1-00021-QCARMSWP-1 (ath10k/QCA9377/hw1.0/firmware-6.bin)
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "ibt-hw-firmware")
|
(name "ibt-hw-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICENCE.ibt_firmware"
|
`(#:license-file-regexp "LICENCE.ibt_firmware"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^intel/ibt-")))))))
|
,(select-firmware "^intel/ibt-")))))))
|
||||||
(home-page "http://www.intel.com/support/wireless/wlan/sb/CS-016675.htm")
|
(home-page "http://www.intel.com/support/wireless/wlan/sb/CS-016675.htm")
|
||||||
(synopsis "Non-free firmware for Intel bluetooth chips")
|
(synopsis "Non-free firmware for Intel bluetooth chips")
|
||||||
(description "This firmware is required by the btintel kernel module to
|
(description "This firmware is required by the btintel kernel module to
|
||||||
|
@ -657,12 +442,12 @@ laptops).")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "iwlwifi-firmware")
|
(name "iwlwifi-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICENCE.iwlwifi_firmware"
|
`(#:license-file-regexp "LICENCE.iwlwifi_firmware"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^iwlwifi-")))))))
|
,(select-firmware "^iwlwifi-")))))))
|
||||||
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi")
|
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi")
|
||||||
(synopsis "Nonfree firmware for Intel wifi chips")
|
(synopsis "Nonfree firmware for Intel wifi chips")
|
||||||
(description "The proprietary iwlwifi kernel module is required by many
|
(description "The proprietary iwlwifi kernel module is required by many
|
||||||
|
@ -678,12 +463,12 @@ support for 5GHz and 802.11ac, among others.")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "i915-firmware")
|
(name "i915-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICENCE.i915"
|
`(#:license-file-regexp "LICENCE.i915"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^i915/")))))))
|
,(select-firmware "^i915/")))))))
|
||||||
(home-page "https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html")
|
(home-page "https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html")
|
||||||
(synopsis "Nonfree firmware for Intel integrated graphics")
|
(synopsis "Nonfree firmware for Intel integrated graphics")
|
||||||
(description "This package contains the various firmware for Intel
|
(description "This package contains the various firmware for Intel
|
||||||
|
@ -693,124 +478,18 @@ integrated graphics chipsets, including GuC, HuC and DMC.")
|
||||||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware"
|
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware"
|
||||||
"/linux-firmware.git/plain/LICENCE.i915")))))
|
"/linux-firmware.git/plain/LICENCE.i915")))))
|
||||||
|
|
||||||
(define-public mediatek-firmware
|
|
||||||
(package
|
|
||||||
(inherit linux-firmware)
|
|
||||||
(name "mediatek-firmware")
|
|
||||||
(arguments
|
|
||||||
(cons* #:license-file-regexp "LICENCE\\.(mediatek\
|
|
||||||
|ralink_a_mediatek_company_firmware)"
|
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
|
||||||
((#:phases phases #~%standard-phases)
|
|
||||||
#~(modify-phases #$phases
|
|
||||||
(add-after 'unpack 'select-firmware
|
|
||||||
#$(select-firmware "^mediatek/")))))))
|
|
||||||
(synopsis
|
|
||||||
"Nonfree firmware for MediaTek chips")
|
|
||||||
(description
|
|
||||||
"Nonfree firmware for MediaTek Ethernet, WiFi, Bluetooth, Video Processing
|
|
||||||
Units (VPU), etc. chips. This package contains nonfree firmware for the
|
|
||||||
following drivers/chips:
|
|
||||||
@table @code
|
|
||||||
@item mt7601u
|
|
||||||
MediaTek MT7601U firmware (mediatek/mt7601u.bin)
|
|
||||||
@item btmtk_usb
|
|
||||||
MediaTek Bluetooth USB driver firmware (mediatek/mt7650.bin,
|
|
||||||
mediatek/mt7622pr2h.bin, mediatek/mt7668pr2h.bin)
|
|
||||||
@item mtk-vpu
|
|
||||||
MediaTek VPU video processing unit driver (mediatek/mt8173/vpu_d.bin
|
|
||||||
and mediatek/mt8173/vpu_p.bin)
|
|
||||||
@item mtk_scp
|
|
||||||
MediaTek SCP System Control Processing Driver (mediatek/mt8183/scp.img,
|
|
||||||
mediatek/mt8186/scp.img, mediatek/mt8192/scp.img and mediatek/mt8195/scp.img)
|
|
||||||
@item mt76x0
|
|
||||||
MediaTek MT76x0 Wireless MACs (mediatek/mt7610u.bin,
|
|
||||||
mediatek/mt7610e.bin and mediatek/mt7650e.bin)
|
|
||||||
@item mt76x2e
|
|
||||||
MediaTek MT76x2 Wireless MACs
|
|
||||||
(mediatek/mt7662.bin and mediatek/mt7662_rom_patch.bin)
|
|
||||||
@item mt76x2u
|
|
||||||
MediaTek MT76x2u Wireless MACs
|
|
||||||
(mediatek/mt7662u.bin and mediatek/mt7662u_rom_patch.bin)
|
|
||||||
@item mt7615e
|
|
||||||
MediaTek MT7615e Wireless MACs (mediatek/mt7615_n9.bin,
|
|
||||||
mediatek/mt7615_cr4.bin and mediatek/mt7615_rom_patch.bin)
|
|
||||||
@item mt7622
|
|
||||||
MediaTek MT7622 Wireless MACs (mediatek/mt7622_n9.bin and
|
|
||||||
mediatek/mt7622_rom_patch.bin)
|
|
||||||
@item mt7663
|
|
||||||
MediaTek MT7663 Wireless MACs (mediatek/mt7663pr2h.bin,
|
|
||||||
mediatek/mt7663_n9_v3.bin, mediatek/mt7663pr2h_rebb.bin and
|
|
||||||
mediatek/mt7663_n9_rebb.bin)
|
|
||||||
@item mt7915e
|
|
||||||
MediaTek Wireless MACs for MT7915/MT7916/MT7986/MT7981
|
|
||||||
(mediatek/mt7915_wm.bin, mediatek/mt7915_wa.bin, mediatek/mt7915_rom_patch.bin,
|
|
||||||
mediatek/mt7915_eeprom.bin, mediatek/mt7915_eeprom_dbdc.bin,
|
|
||||||
mediatek/mt7916_wm.bin, mediatek/mt7916_wa.bin, mediatek/mt7916_rom_patch.bin,
|
|
||||||
mediatek/mt7916_eeprom.bin, mediatek/mt7986_wm.bin,
|
|
||||||
mediatek/mt7986_wm_mt7975.bin, mediatek/mt7986_wa.bin,
|
|
||||||
mediatek/mt7986_rom_patch.bin, mediatek/mt7986_rom_patch_mt7975.bin,
|
|
||||||
mediatek/mt7986_wo_0.bin, mediatek/mt7986_wo_1.bin,
|
|
||||||
mediatek/mt7986_eeprom_mt7976.bin, mediatek/mt7986_eeprom_mt7976_dbdc.bin,
|
|
||||||
mediatek/mt7986_eeprom_mt7976_dual.bin, mediatek/mt7986_eeprom_mt7975_dual.bin,
|
|
||||||
mediatek/mt7981_wm.bin, mediatek/mt7981_wa.bin, mediatek/mt7981_rom_patch.bin,
|
|
||||||
and mediatek/mt7981_wo.bin)
|
|
||||||
@item mt7921
|
|
||||||
MediaTek MT7921 Wireless MACs
|
|
||||||
(mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin and
|
|
||||||
mediatek/WIFI_RAM_CODE_MT7961_1.bin)
|
|
||||||
@item mt7921
|
|
||||||
MediaTek MT7921 bluetooth chipset (BT_RAM_CODE_MT7961_1_2_hdr.bin)
|
|
||||||
@item mt7922
|
|
||||||
MediaTek MT7922 Wireless MACs
|
|
||||||
(mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin and
|
|
||||||
mediatek/WIFI_RAM_CODE_MT7922_1.bin)
|
|
||||||
@item mt7922
|
|
||||||
MediaTek MT7922 bluetooth chipset
|
|
||||||
(mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin)
|
|
||||||
@item mt7925
|
|
||||||
MediaTek MT7925 Wireless MACs
|
|
||||||
(mediatek/mt7925/WIFI_MT7925_PATCH_MCU_1_1_hdr.bin and
|
|
||||||
mediatek/mt7925/WIFI_RAM_CODE_MT7925_1_1.bin)
|
|
||||||
@item mt7925
|
|
||||||
MediaTek MT7925 bluetooth chipset
|
|
||||||
(mediatek/mt7925/BT_RAM_CODE_MT7925_1_1_hdr.bin)
|
|
||||||
@item mt7988
|
|
||||||
MediaTek MT7988 Internal 2.5G Ethernet Phy
|
|
||||||
(mediatek/mt7988/i2p5ge-phy-pmb.bin)
|
|
||||||
@item mt7996e
|
|
||||||
MediaTek Wireless MACs for MT7996 (mediatek/mt7996/mt7996_wm.bin,
|
|
||||||
mediatek/mt7996/mt7996_wa.bin, mediatek/mt7996/mt7996_rom_patch.bin,
|
|
||||||
mediatek/mt7996/mt7996_dsp.bin and mediatek/mt7996/mt7996_eeprom.bin)
|
|
||||||
@item mtk-sof
|
|
||||||
MediaTek Sound Open Firmware driver (mediatek/sof/sof-mt8186.ri,
|
|
||||||
mediatek/sof/sof-mt8186.ri, mediatek/sof/sof-mt8186.ldc,
|
|
||||||
mediatek/sof-tplg/sof-mt8186.tplg, mediatek/sof/sof-mt8195.ri,
|
|
||||||
mediatek/sof/sof-mt8195.ldc and
|
|
||||||
mediatek/sof-tplg/sof-mt8195-mt6359-rt1019-rt5682.tplg)
|
|
||||||
@end table")
|
|
||||||
(license
|
|
||||||
(list (nonfree
|
|
||||||
(string-append
|
|
||||||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware"
|
|
||||||
"/linux-firmware.git/plain/LICENCE.mediatek"))
|
|
||||||
(nonfree
|
|
||||||
(string-append
|
|
||||||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware"
|
|
||||||
"/linux-firmware.git/plain"
|
|
||||||
"/LICENCE.ralink_a_mediatek_company_firmware"))))))
|
|
||||||
|
|
||||||
(define-public realtek-firmware
|
(define-public realtek-firmware
|
||||||
(package
|
(package
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "realtek-firmware")
|
(name "realtek-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICENCE.rtlwifi_firmware.txt"
|
`(#:license-file-regexp "LICENCE.rtlwifi_firmware.txt"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/")))))))
|
,(select-firmware
|
||||||
|
"^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/")))))))
|
||||||
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/rtl819x")
|
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/rtl819x")
|
||||||
(synopsis "Nonfree firmware for Realtek ethernet, wifi, and bluetooth chips")
|
(synopsis "Nonfree firmware for Realtek ethernet, wifi, and bluetooth chips")
|
||||||
(description
|
(description
|
||||||
|
@ -900,8 +579,8 @@ package contains nonfree firmware for the following chips:
|
||||||
(deprecated-package "rtl-bt-firmware" realtek-firmware))
|
(deprecated-package "rtl-bt-firmware" realtek-firmware))
|
||||||
|
|
||||||
(define-public rtl8192eu-linux-module
|
(define-public rtl8192eu-linux-module
|
||||||
(let ((commit "3af9a868a0ca622d830966ac83aea2bf17cd0d65")
|
(let ((commit "865656c3a1d1aee8c4ba459ce7608756d17c712f")
|
||||||
(revision "7"))
|
(revision "5"))
|
||||||
(package
|
(package
|
||||||
(name "rtl8192eu-linux-module")
|
(name "rtl8192eu-linux-module")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -914,7 +593,7 @@ package contains nonfree firmware for the following chips:
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0d2qzf7xbipjdp1zm2ffqhnda8wasqriqnv6dkl0mhqn2f8za3i8"))))
|
"08nq0wlrpzm8n2g14c4jlxs0crr6s5ls1n14bc17zmpy9vlarhfx"))))
|
||||||
(build-system linux-module-build-system)
|
(build-system linux-module-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags
|
`(#:make-flags
|
||||||
|
@ -937,8 +616,8 @@ network adapters.")
|
||||||
(license gpl2))))
|
(license gpl2))))
|
||||||
|
|
||||||
(define-public rtl8821ce-linux-module
|
(define-public rtl8821ce-linux-module
|
||||||
(let ((commit "f119398d868b1a3395f40c1df2e08b57b2c882cd")
|
(let ((commit "538c34671b391340e0ae23ff11bde77b6588496c")
|
||||||
(revision "12"))
|
(revision "9"))
|
||||||
(package
|
(package
|
||||||
(name "rtl8821ce-linux-module")
|
(name "rtl8821ce-linux-module")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -951,7 +630,7 @@ network adapters.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"03336fzhcyfkxa32rx0calzlyzamvinql5f19wwm61aijrmlmyhi"))))
|
"0p7xj032bp3h6wp27dhf2j42bgd4gvpk7w95n830awbj07c04dss"))))
|
||||||
(build-system linux-module-build-system)
|
(build-system linux-module-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:make-flags
|
(list #:make-flags
|
||||||
|
@ -979,63 +658,9 @@ network adapters.")
|
||||||
;; hal/rtl8821c/hal8821c_fw.c
|
;; hal/rtl8821c/hal8821c_fw.c
|
||||||
(license gpl2))))
|
(license gpl2))))
|
||||||
|
|
||||||
(define-public rtl8821cu-linux-module
|
|
||||||
(let ((commit "4f6004af4c4171882f37e2e5d8fb3609fe260617")
|
|
||||||
(revision "2"))
|
|
||||||
(package
|
|
||||||
(name "rtl8821cu-linux-module")
|
|
||||||
(version (git-version "0.0.0" revision commit))
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://github.com/morrownr/8821cu-20210916")
|
|
||||||
(commit commit)))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
|
||||||
(base32 "09ig0rrkkn00i3d1n6p62n1610kcjgb2h9kbcqdsrmpnlnw5kfl2"))))
|
|
||||||
(build-system linux-module-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:make-flags #~(list (string-append "CC="
|
|
||||||
#$(cc-for-target))
|
|
||||||
(string-append "KSRC="
|
|
||||||
(assoc-ref %build-inputs
|
|
||||||
"linux-module-builder")
|
|
||||||
"/lib/modules/build"))
|
|
||||||
#:phases #~(modify-phases %standard-phases
|
|
||||||
(replace 'build
|
|
||||||
(lambda* (#:key (make-flags '())
|
|
||||||
(parallel-build? #t) #:allow-other-keys)
|
|
||||||
(apply invoke "make"
|
|
||||||
`(,@(if parallel-build?
|
|
||||||
`("-j" ,(number->string (parallel-job-count)))
|
|
||||||
'()) ,@make-flags)))))
|
|
||||||
#:tests? #f))
|
|
||||||
(home-page "https://github.com/morrownr/8821cu-20210916")
|
|
||||||
(synopsis "Linux driver for Realtek USB WiFi adapters")
|
|
||||||
(description
|
|
||||||
"Linux driver for USB WiFi adapters that are based on the
|
|
||||||
Realtek RTL8811CU, RTL8821CU, RTL8821CUH and RTL8731AU chipsets.
|
|
||||||
|
|
||||||
To work, in addition to installing the driver, you need
|
|
||||||
to disable the conflicting rtw88 driver:
|
|
||||||
|
|
||||||
@example
|
|
||||||
(operating-system
|
|
||||||
;; ...
|
|
||||||
;; Blacklist conflicting kernel modules.
|
|
||||||
(kernel-arguments '(\"modprobe.blacklist=rtw88_8821cu\"))
|
|
||||||
(kernel-loadable-modules (list rtl8821cu-linux-module)))
|
|
||||||
@end example")
|
|
||||||
;; Rejected by Guix beause it contains a binary blob in:
|
|
||||||
;; hal/rtl8821c/hal8821c_fw.c
|
|
||||||
(license (nonfree
|
|
||||||
"https://github.com/morrownr/8821cu-20210916/blob/main/LICENSE")))))
|
|
||||||
|
|
||||||
(define-public rtl8812au-aircrack-ng-linux-module
|
(define-public rtl8812au-aircrack-ng-linux-module
|
||||||
(let ((commit "63cf0b4584aa8878b0fe8ab38017f31c319bde3d")
|
(let ((commit "08589e2f8c18d4de18a28d92c74d0a2191bb86b9")
|
||||||
(revision "13"))
|
(revision "10"))
|
||||||
(package
|
(package
|
||||||
(inherit rtl8821ce-linux-module)
|
(inherit rtl8821ce-linux-module)
|
||||||
(name "rtl8812au-aircrack-ng-linux-module")
|
(name "rtl8812au-aircrack-ng-linux-module")
|
||||||
|
@ -1048,7 +673,7 @@ to disable the conflicting rtw88 driver:
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "103pn6qlj116dm244ygf1wic9dq2qn80lafiyxynyhpckkyhhfxl"))
|
(base32 "07yiya5ckm578pwxdm5nnyq45vnw4zjbd31a5365l9cwbpfji67s"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
#~(begin
|
#~(begin
|
||||||
|
@ -1072,7 +697,7 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
|
||||||
(define-public r8168-linux-module
|
(define-public r8168-linux-module
|
||||||
(package
|
(package
|
||||||
(name "r8168-linux-module")
|
(name "r8168-linux-module")
|
||||||
(version "8.052.01")
|
(version "8.051.02")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -1081,9 +706,19 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"01mi7hh92nc7jaxkfrpz7j0ci78djrhgmq0im4k1270mwmvr0yzj"))))
|
"16mpr0np6xbmzdnwg4p3q6yli2gh032k98g4vplya33hrn50vh52"))))
|
||||||
(arguments
|
(arguments
|
||||||
(list #:tests? #f))
|
(list #:tests? #f
|
||||||
|
#:phases #~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'enter-src-directory
|
||||||
|
(lambda _
|
||||||
|
(chdir "src")))
|
||||||
|
;; Needed to compile module for linux >= 6.1
|
||||||
|
(add-before 'build 'fix-build
|
||||||
|
(lambda _
|
||||||
|
(substitute* "r8168.h"
|
||||||
|
(("netif_napi_add\\(ndev, &priv->napi, function, weight\\)")
|
||||||
|
"netif_napi_add(ndev, &priv->napi, function)")))))))
|
||||||
(build-system linux-module-build-system)
|
(build-system linux-module-build-system)
|
||||||
(home-page "https://github.com/mtorromeo/r8168")
|
(home-page "https://github.com/mtorromeo/r8168")
|
||||||
(synopsis "Linux driver for Realtek PCIe network adapters")
|
(synopsis "Linux driver for Realtek PCIe network adapters")
|
||||||
|
@ -1097,9 +732,9 @@ giving you trouble, you can try this module.")
|
||||||
(define (broadcom-sta-patch name commit hash)
|
(define (broadcom-sta-patch name commit hash)
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://raw.githubusercontent.com/rpmfusion/wl-kmod/"
|
(uri (string-append "https://raw.githubusercontent.com/NixOS/nixpkgs/"
|
||||||
commit
|
commit
|
||||||
"wl-kmod-"
|
"/pkgs/os-specific/linux/broadcom-sta/"
|
||||||
name
|
name
|
||||||
".patch"))
|
".patch"))
|
||||||
(sha256
|
(sha256
|
||||||
|
@ -1114,12 +749,12 @@ giving you trouble, you can try this module.")
|
||||||
(string-replace-substring broadcom-sta-version "." "_")
|
(string-replace-substring broadcom-sta-version "." "_")
|
||||||
".tar.gz"))
|
".tar.gz"))
|
||||||
(patches
|
(patches
|
||||||
;; Keep these in sync with the patches at
|
;; Keep these in sync with the list at
|
||||||
;; https://github.com/rpmfusion/wl-kmod
|
;; https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/broadcom-sta.
|
||||||
;; They seem to be good about keeping broadcom patches up to date so updating
|
;; Nixpkgs is good about keeping broadcom patches up to date so updating
|
||||||
;; for a new kernel release should be as simple as chaging the commit to
|
;; for a new kernel release should be as simple as chaging the commit to
|
||||||
;; the newest available and adding any new patches.
|
;; the newest available and adding any new patches.
|
||||||
(let ((commit "cb67598cbf5d8c5260b750d6f7e5c6a6599b7b85"))
|
(let ((commit "355042e2ff5933b245e804c5eaff4ec3f340e71b"))
|
||||||
(list
|
(list
|
||||||
(broadcom-sta-patch "i686-build-failure" commit "1522w2gb698svlkb2b4lijbd740agvs2ibpz4g0jlv8v31cybkf4")
|
(broadcom-sta-patch "i686-build-failure" commit "1522w2gb698svlkb2b4lijbd740agvs2ibpz4g0jlv8v31cybkf4")
|
||||||
(broadcom-sta-patch "license" commit "0rwlhafcmpp97cknqwv8gwf8sbxgqavgci1ywfkdxiylh4mhcvhr")
|
(broadcom-sta-patch "license" commit "0rwlhafcmpp97cknqwv8gwf8sbxgqavgci1ywfkdxiylh4mhcvhr")
|
||||||
|
@ -1137,9 +772,7 @@ giving you trouble, you can try this module.")
|
||||||
(broadcom-sta-patch "linux-6.1" commit "1pvx1h7iimcbfqdc13n1980ngxk9q6iyip8svn293x4h7jn472kf")
|
(broadcom-sta-patch "linux-6.1" commit "1pvx1h7iimcbfqdc13n1980ngxk9q6iyip8svn293x4h7jn472kf")
|
||||||
(broadcom-sta-patch "pedantic-fix" commit "1kxmw1iyxnfwad75h981sak5qk16p81xy1f2qxss2d0v97vkfkl5")
|
(broadcom-sta-patch "pedantic-fix" commit "1kxmw1iyxnfwad75h981sak5qk16p81xy1f2qxss2d0v97vkfkl5")
|
||||||
(broadcom-sta-patch "null-pointer-fix" commit "15c2vxgf7v5wy4s8w9jk7irf3fxxghy05gxmav1ss73a2azajdx7")
|
(broadcom-sta-patch "null-pointer-fix" commit "15c2vxgf7v5wy4s8w9jk7irf3fxxghy05gxmav1ss73a2azajdx7")
|
||||||
(broadcom-sta-patch "gcc" commit "0jcqk2vapyy2pbsjv9n8b3qp6vqz17d6s07cr04cx7075q7yhz5h")
|
(broadcom-sta-patch "gcc" commit "0jcqk2vapyy2pbsjv9n8b3qp6vqz17d6s07cr04cx7075q7yhz5h"))))
|
||||||
(broadcom-sta-patch "028_kernel_6.12_adaption" commit
|
|
||||||
"154dhlb3vyq8bnx7f371scsrhp9cszvmqlswqg5vi6gfgbqnrq08"))))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1gj485qqr190idilacpxwgqyw21il03zph2rddizgj7fbd6pfyaz"))))
|
"1gj485qqr190idilacpxwgqyw21il03zph2rddizgj7fbd6pfyaz"))))
|
||||||
|
@ -1281,44 +914,10 @@ chipsets from Broadcom:
|
||||||
"/b60fa04881bf8f9b9d578f57d1dfa596cae2a82e"
|
"/b60fa04881bf8f9b9d578f57d1dfa596cae2a82e"
|
||||||
"/LICENSE.broadcom_bcm20702")))))
|
"/LICENSE.broadcom_bcm20702")))))
|
||||||
|
|
||||||
(define-public facetimehd
|
|
||||||
(package
|
|
||||||
(name "facetimehd")
|
|
||||||
(version "0.6.8.2")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://github.com/patjak/facetimehd")
|
|
||||||
(commit version)))
|
|
||||||
(file-name (git-file-name "facetimehd" version))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1mk9zw100258khc3510jzgm8rci3l26ad0lx4fcqrd8ksq8k03kp"))))
|
|
||||||
(build-system linux-module-build-system)
|
|
||||||
(arguments
|
|
||||||
'(#:tests? #f))
|
|
||||||
(synopsis "Linux driver for the FacetimeHD (Broadcom 1570) PCIe webcam")
|
|
||||||
(description "Linux driver for the FacetimeHD webcam. According to Apple the
|
|
||||||
following models contain a Facetime HD camera and should be compatible with this
|
|
||||||
driver:
|
|
||||||
@itemize
|
|
||||||
@item iMac (21,5\", since mid 2011)
|
|
||||||
@item iMac (27\", since mid 2011)
|
|
||||||
@item MacBook Air (since mid 2011)
|
|
||||||
@item MacBook Pro (15\", since early 2011)
|
|
||||||
@item MacBook Pro (17\", since early 2011)
|
|
||||||
@item MacBook Pro (13\", since early 2011)
|
|
||||||
@item Thunderbolt display
|
|
||||||
@end itemize")
|
|
||||||
(home-page "https://github.com/patjak/facetimehd")
|
|
||||||
(license gpl2)
|
|
||||||
(supported-systems '("i686-linux" "x86_64-linux"))))
|
|
||||||
|
|
||||||
(define-public intel-microcode
|
(define-public intel-microcode
|
||||||
(package
|
(package
|
||||||
(name "intel-microcode")
|
(name "intel-microcode")
|
||||||
(version "20241112")
|
(version "20230214")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1329,15 +928,15 @@ driver:
|
||||||
(commit (string-append "microcode-" version))))
|
(commit (string-append "microcode-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1i2pfw1vfnws76dpdik5x9kn3rysq8ggb4c16c2lmxzz4phyvxbn"))))
|
(base32 "047m1c7bap19cqxpqy2xlzngn8i8jfk44ffbkmkhw4nfrval81sb"))))
|
||||||
(build-system copy-build-system)
|
(build-system copy-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:install-plan
|
`(#:install-plan
|
||||||
#~(let ((doc (string-append "share/doc/" #$name "-" #$version "/")))
|
(let ((doc (string-append "share/doc/" ,name "-" ,version "/")))
|
||||||
`(("intel-ucode" "lib/firmware/")
|
`(("intel-ucode" "lib/firmware/")
|
||||||
("README.md" ,doc)
|
("README.md" ,doc)
|
||||||
("releasenote.md" ,doc)
|
("releasenote.md" ,doc)
|
||||||
("security.md" ,doc)))))
|
("security.md" ,doc)))))
|
||||||
(home-page
|
(home-page
|
||||||
"https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files")
|
"https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files")
|
||||||
(synopsis "Processor microcode firmware for Intel CPUs")
|
(synopsis "Processor microcode firmware for Intel CPUs")
|
||||||
|
@ -1353,12 +952,12 @@ your CPU.")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "amd-microcode")
|
(name "amd-microcode")
|
||||||
(arguments
|
(arguments
|
||||||
(cons* #:license-file-regexp "LICENSE.amd-ucode"
|
`(#:license-file-regexp "LICENSE.amd-ucode"
|
||||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases #~%standard-phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
#$(select-firmware "^amd-ucode/")))))))
|
,(select-firmware "^amd-ucode/")))))))
|
||||||
(synopsis "Processor microcode firmware for AMD CPUs")
|
(synopsis "Processor microcode firmware for AMD CPUs")
|
||||||
(description "Updated system processor microcode for AMD x86-64
|
(description "Updated system processor microcode for AMD x86-64
|
||||||
processors. AMD releases microcode updates to correct processor behavior as
|
processors. AMD releases microcode updates to correct processor behavior as
|
||||||
|
@ -1371,23 +970,20 @@ documented in the respective processor revision guides.")
|
||||||
(define-public sof-firmware
|
(define-public sof-firmware
|
||||||
(package
|
(package
|
||||||
(name "sof-firmware")
|
(name "sof-firmware")
|
||||||
(version "2024.09")
|
(version "2.2.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/thesofproject/sof-bin/releases/download/v"
|
(uri (string-append "https://github.com/thesofproject/sof-bin/releases/download/v"
|
||||||
version "/sof-bin-" version ".tar.gz"))
|
version "/sof-bin-v" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0866rg40gzlal90ykgs0x622vy3qrw1s3g0qfv80i41mh6gxjiza"))))
|
"0hnvzbjgib8f0m2gw345vk0p4h9ba34g7vciih1jgcz2y5kgs7sr"))))
|
||||||
(build-system copy-build-system)
|
(build-system copy-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:install-plan
|
`(#:install-plan
|
||||||
'(("sof" "lib/firmware/intel/sof")
|
(list (list (string-append "sof-v" ,version) "lib/firmware/intel/sof")
|
||||||
("sof-ace-tplg" "lib/firmware/intel/sof-ace-tplg")
|
(list (string-append "sof-tplg-v" ,version) "lib/firmware/intel/sof-tplg"))))
|
||||||
("sof-ipc4" "lib/firmware/intel/sof-ipc4")
|
|
||||||
("sof-ipc4-tplg" "lib/firmware/intel/sof-ipc4-tplg")
|
|
||||||
("sof-tplg" "lib/firmware/intel/sof-tplg"))))
|
|
||||||
(home-page "https://www.sofproject.org")
|
(home-page "https://www.sofproject.org")
|
||||||
(synopsis "Sound Open Firmware")
|
(synopsis "Sound Open Firmware")
|
||||||
(description "This package contains Linux firmwares and topology files for
|
(description "This package contains Linux firmwares and topology files for
|
||||||
|
|
|
@ -1,23 +1,16 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2023, 2024 André A. Gomes <andremegafone@gmail.com>
|
|
||||||
|
|
||||||
(define-module (nongnu packages lisp)
|
(define-module (nongnu packages lisp)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages lisp)
|
|
||||||
#:use-module (gnu packages lisp-xyz)
|
|
||||||
#:use-module (nongnu packages electron)
|
|
||||||
#:use-module (guix build-system copy)
|
#:use-module (guix build-system copy)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system asdf)
|
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix git-download)
|
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (nonguix build-system binary)
|
#:use-module (nonguix build-system binary)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
|
||||||
#:use-module ((nonguix licenses) #:prefix license:))
|
#:use-module ((nonguix licenses) #:prefix license:))
|
||||||
|
|
||||||
;; TODO: Split into differents outputs:
|
;; TODO: Split into differents outputs:
|
||||||
|
@ -45,7 +38,7 @@
|
||||||
"/acl" version "express-" arch2 ".tbz2")))
|
"/acl" version "express-" arch2 ".tbz2")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1zxajn238aibsv0qknm5kiqjiplb4ggynjsxar390rwznh57qc46"))))
|
"0ir1irpq5hhcmy0yp5p2jpnq5if1gr1fgxybqyvppx1j1jdfkcsp"))))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(inputs (list bash-minimal zlib openssl))
|
(inputs (list bash-minimal zlib openssl))
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -67,16 +60,6 @@
|
||||||
"--directory=source" "-xvf" (assoc-ref inputs "source")
|
"--directory=source" "-xvf" (assoc-ref inputs "source")
|
||||||
"--strip-components" "1")
|
"--strip-components" "1")
|
||||||
(chdir "source")))
|
(chdir "source")))
|
||||||
(add-after 'install 'update-license
|
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(substitute*
|
|
||||||
(string-append (assoc-ref outputs "out")
|
|
||||||
"/share/allegro-cl/devel.lic")
|
|
||||||
((";; License created on January 25, 2021, 8:32:19\\.")
|
|
||||||
";; License created on January 17, 2023, 10:42:54.")
|
|
||||||
((";; Expiration date: 2023-1-31 00:00:00")
|
|
||||||
";; Expiration date: 2024-1-31 00:00:00"))
|
|
||||||
#t))
|
|
||||||
(add-after 'install 'wrap-program
|
(add-after 'install 'wrap-program
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
@ -121,45 +104,3 @@ then open a browser at http://localhost:PORT, where PORT is the indicated port."
|
||||||
(home-page "https://franz.com/products/allegrocl/")
|
(home-page "https://franz.com/products/allegrocl/")
|
||||||
(license (license:nonfree
|
(license (license:nonfree
|
||||||
"https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf"))))
|
"https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf"))))
|
||||||
|
|
||||||
(define-public sbcl-cl-electron
|
|
||||||
(let ((commit "f2245dc1450a6ad416984cf932be50e00957390a")
|
|
||||||
(revision "3"))
|
|
||||||
(package
|
|
||||||
(name "sbcl-cl-electron")
|
|
||||||
(version (git-version "0.0.0" revision commit))
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://github.com/atlas-engineer/cl-electron")
|
|
||||||
(commit commit)))
|
|
||||||
(file-name (git-file-name "cl-electron" version))
|
|
||||||
(sha256
|
|
||||||
(base32 "0c18xbwwnjaiwzd01dprdrwzp27nwihaf7pmkql1f5yk43x3ajs0"))))
|
|
||||||
(build-system asdf-build-system/sbcl)
|
|
||||||
(inputs (list electron
|
|
||||||
sbcl-cl-json sbcl-iolib sbcl-cl-str sbcl-nclasses
|
|
||||||
sbcl-cl-ppcre sbcl-bordeaux-threads sbcl-lparallel
|
|
||||||
sbcl-parenscript sbcl-spinneret))
|
|
||||||
(arguments
|
|
||||||
'(#:tests? #f
|
|
||||||
#:asd-systems '("cl-electron" "cl-electron/demos")
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'fix-paths
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(substitute* "source/core.lisp"
|
|
||||||
(("\"electron\"")
|
|
||||||
(string-append "\"" (assoc-ref inputs "electron") "/bin/electron\""))))))))
|
|
||||||
(synopsis "Common Lisp interface to Electron")
|
|
||||||
(home-page "https://github.com/atlas-engineer/cl-electron")
|
|
||||||
(description "@command{cl-electron} is a binding to Electron for
|
|
||||||
Common Lisp.")
|
|
||||||
(license license:bsd-3))))
|
|
||||||
|
|
||||||
(define-public cl-electron
|
|
||||||
(sbcl-package->cl-source-package sbcl-cl-electron))
|
|
||||||
|
|
||||||
(define-public ecl-cl-electron
|
|
||||||
(sbcl-package->ecl-package sbcl-cl-electron))
|
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2021, 2022 PantherX OS Team <team@pantherx.org>
|
;;; Copyright © 2021, 2022 PantherX OS Team <team@pantherx.org>
|
||||||
;;; Copyright © 2022, 2023, 2024, 2025 John Kehayias <john.kehayias@protonmail.com>
|
;;; Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
|
||||||
;;; Copyright © 2022 Evgenii Lepikhin <johnlepikhin@gmail.com>
|
;;; Copyright © 2022 Evgenii Lepikhin <johnlepikhin@gmail.com>
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
;;; Copyright © 2023 Raven Hallsby <karl@hallsby.org>
|
|
||||||
;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se>
|
|
||||||
|
|
||||||
(define-module (nongnu packages messaging)
|
(define-module (nongnu packages messaging)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages cups)
|
#:use-module (gnu packages cups)
|
||||||
|
#:use-module (gnu packages databases)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
#:use-module (gnu packages gcc)
|
#:use-module (gnu packages gcc)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
|
@ -30,14 +28,13 @@
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module ((guix licenses) :prefix license:)
|
#:use-module ((guix licenses) :prefix license:)
|
||||||
#:use-module (nonguix build-system binary)
|
#:use-module (nonguix build-system binary)
|
||||||
#:use-module (nonguix build-system chromium-binary)
|
|
||||||
#:use-module ((nonguix licenses) :prefix license:)
|
#:use-module ((nonguix licenses) :prefix license:)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define-public element-desktop
|
(define-public element-desktop
|
||||||
(package
|
(package
|
||||||
(name "element-desktop")
|
(name "element-desktop")
|
||||||
(version "1.11.89")
|
(version "1.11.24")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -46,31 +43,105 @@
|
||||||
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
|
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
|
||||||
"_amd64.deb"))
|
"_amd64.deb"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0riavl8qq59s45xxdk0s1n6i1wymsx1zfdz5dp3ccr8xpzw77abq"))))
|
(base32 "1bqhsimvchphjaha1vwj12xrrp8cy5bmvv1ha5nyifih8nk8k3l4"))))
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(build-system chromium-binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||||
#:wrapper-plan
|
#:patchelf-plan
|
||||||
#~'(("lib/Element/element-desktop" (("out" "/lib/Element"))))
|
#~'(("lib/Element/element-desktop"
|
||||||
|
("alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups"
|
||||||
|
"dbus" "expat" "fontconfig-minimal" "gcc" "gdk-pixbuf" "glib"
|
||||||
|
"gtk+" "libdrm" "libnotify" "libsecret" "libx11" "libxcb"
|
||||||
|
"libxcomposite" "libxcursor" "libxdamage" "libxext" "libxfixes"
|
||||||
|
"libxi" "libxkbcommon" "libxkbfile" "libxrandr" "libxrender"
|
||||||
|
"libxtst" "mesa" "nspr" "pango" "zlib")))
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'binary-unpack 'setup-cwd
|
(replace 'unpack
|
||||||
(lambda _
|
(lambda _
|
||||||
|
(invoke "ar" "x" #$source)
|
||||||
|
(invoke "tar" "xvf" "data.tar.xz")
|
||||||
(copy-recursively "usr/" ".")
|
(copy-recursively "usr/" ".")
|
||||||
;; Use the more standard lib directory for everything.
|
;; Use the more standard lib directory for everything.
|
||||||
(rename-file "opt/" "lib")
|
(rename-file "opt/" "lib")
|
||||||
;; Remove unneeded files.
|
;; Remove unneeded files.
|
||||||
(delete-file-recursively "usr")
|
(delete-file-recursively "usr")
|
||||||
|
(delete-file "control.tar.gz")
|
||||||
|
(delete-file "data.tar.xz")
|
||||||
|
(delete-file "debian-binary")
|
||||||
;; Fix the .desktop file binary location.
|
;; Fix the .desktop file binary location.
|
||||||
(substitute* '("share/applications/element-desktop.desktop")
|
(substitute* '("share/applications/element-desktop.desktop")
|
||||||
(("/opt/Element/")
|
(("/opt/Element/")
|
||||||
(string-append #$output "/bin/")))))
|
(string-append #$output "/lib/Element/")))))
|
||||||
(add-after 'install 'symlink-binary-file
|
(add-after 'install 'symlink-binary-file-and-cleanup
|
||||||
(lambda _
|
(lambda _
|
||||||
|
(delete-file (string-append #$output "/environment-variables"))
|
||||||
(mkdir-p (string-append #$output "/bin"))
|
(mkdir-p (string-append #$output "/bin"))
|
||||||
(symlink (string-append #$output "/lib/Element/element-desktop")
|
(symlink (string-append #$output "/lib/Element/element-desktop")
|
||||||
(string-append #$output "/bin/element-desktop")))))))
|
(string-append #$output "/bin/element-desktop"))))
|
||||||
|
(add-after 'install 'wrap-where-patchelf-does-not-work
|
||||||
|
(lambda _
|
||||||
|
(wrap-program (string-append #$output "/lib/Element/element-desktop")
|
||||||
|
`("FONTCONFIG_PATH" ":" prefix
|
||||||
|
(,(string-join
|
||||||
|
(list
|
||||||
|
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||||
|
#$output)
|
||||||
|
":")))
|
||||||
|
`("LD_LIBRARY_PATH" ":" prefix
|
||||||
|
(,(string-join
|
||||||
|
(list
|
||||||
|
(string-append #$(this-package-input "nss") "/lib/nss")
|
||||||
|
(string-append #$(this-package-input "eudev") "/lib")
|
||||||
|
(string-append #$(this-package-input "gcc") "/lib")
|
||||||
|
(string-append #$(this-package-input "mesa") "/lib")
|
||||||
|
(string-append #$(this-package-input "libxkbfile") "/lib")
|
||||||
|
(string-append #$(this-package-input "zlib") "/lib")
|
||||||
|
(string-append #$(this-package-input "libsecret") "/lib")
|
||||||
|
(string-append #$(this-package-input "sqlcipher") "/lib")
|
||||||
|
(string-append #$(this-package-input "libnotify") "/lib")
|
||||||
|
(string-append #$output "/lib/Element")
|
||||||
|
#$output)
|
||||||
|
":")))))))))
|
||||||
|
(native-inputs (list tar))
|
||||||
|
(inputs
|
||||||
|
(list alsa-lib
|
||||||
|
at-spi2-atk
|
||||||
|
at-spi2-core
|
||||||
|
atk
|
||||||
|
cairo
|
||||||
|
cups
|
||||||
|
dbus
|
||||||
|
eudev
|
||||||
|
expat
|
||||||
|
fontconfig
|
||||||
|
`(,gcc "lib")
|
||||||
|
glib
|
||||||
|
gtk+
|
||||||
|
libdrm
|
||||||
|
libnotify
|
||||||
|
librsvg
|
||||||
|
libsecret
|
||||||
|
libx11
|
||||||
|
libxcb
|
||||||
|
libxcomposite
|
||||||
|
libxcursor
|
||||||
|
libxdamage
|
||||||
|
libxext
|
||||||
|
libxfixes
|
||||||
|
libxi
|
||||||
|
libxkbcommon
|
||||||
|
libxkbfile
|
||||||
|
libxrandr
|
||||||
|
libxrender
|
||||||
|
libxtst
|
||||||
|
mesa
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
pango
|
||||||
|
sqlcipher
|
||||||
|
zlib))
|
||||||
(home-page "https://github.com/vector-im/element-desktop")
|
(home-page "https://github.com/vector-im/element-desktop")
|
||||||
(synopsis "Matrix collaboration client for desktop")
|
(synopsis "Matrix collaboration client for desktop")
|
||||||
(description "Element Desktop is a Matrix client for desktop with Element Web at
|
(description "Element Desktop is a Matrix client for desktop with Element Web at
|
||||||
|
@ -83,40 +154,109 @@ its core.")
|
||||||
(define-public signal-desktop
|
(define-public signal-desktop
|
||||||
(package
|
(package
|
||||||
(name "signal-desktop")
|
(name "signal-desktop")
|
||||||
(version "7.41.0")
|
(version "6.14.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
(string-append
|
(string-append
|
||||||
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
|
"https://updates.signal.org/desktop/apt/pool/main/s/" name "/" name "_" version
|
||||||
"_amd64.deb"))
|
"_amd64.deb"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1ainlhhzf427f0jqdh83m8519ywihnxyiw505n4msgyhpwgwj5n0"))))
|
(base32 "1gfvyw094wg6ch5bn69gvd8304nq22aiqc6jvvpykizpxg6flbvp"))))
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(build-system chromium-binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||||
#:wrapper-plan
|
#:patchelf-plan
|
||||||
#~'(("lib/Signal/signal-desktop" (("out" "/lib/Signal"))))
|
#~'(("lib/Signal/signal-desktop"
|
||||||
|
("alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups"
|
||||||
|
"dbus" "expat" "fontconfig-minimal" "gcc" "gdk-pixbuf" "glib"
|
||||||
|
"gtk+" "libdrm" "libsecret" "libx11" "libxcb" "libxcomposite"
|
||||||
|
"libxcursor" "libxdamage" "libxext" "libxfixes" "libxi"
|
||||||
|
"libxkbcommon" "libxkbfile" "libxrandr" "libxshmfence" "libxtst"
|
||||||
|
"mesa" "nspr" "pango" "pulseaudio" "zlib")))
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'binary-unpack 'setup-cwd
|
(replace 'unpack
|
||||||
(lambda _
|
(lambda _
|
||||||
|
(invoke "ar" "x" #$source)
|
||||||
|
(invoke "tar" "xvf" "data.tar.xz")
|
||||||
(copy-recursively "usr/" ".")
|
(copy-recursively "usr/" ".")
|
||||||
;; Use the more standard lib directory for everything.
|
;; Use the more standard lib directory for everything.
|
||||||
(rename-file "opt/" "lib")
|
(rename-file "opt/" "lib")
|
||||||
;; Remove unneeded files.
|
;; Remove unneeded files.
|
||||||
(delete-file-recursively "usr")
|
(delete-file-recursively "usr")
|
||||||
|
(delete-file "control.tar.gz")
|
||||||
|
(delete-file "data.tar.xz")
|
||||||
|
(delete-file "debian-binary")
|
||||||
|
(delete-file "environment-variables")
|
||||||
;; Fix the .desktop file binary location.
|
;; Fix the .desktop file binary location.
|
||||||
(substitute* '("share/applications/signal-desktop.desktop")
|
(substitute* '("share/applications/signal-desktop.desktop")
|
||||||
(("/opt/Signal/")
|
(("/opt/Signal/")
|
||||||
(string-append #$output "/bin/")))))
|
(string-append #$output "/lib/Signal/")))))
|
||||||
(add-after 'install 'symlink-binary-file
|
(add-after 'install 'symlink-binary-file-and-cleanup
|
||||||
(lambda _
|
(lambda _
|
||||||
|
(delete-file (string-append #$output "/environment-variables"))
|
||||||
(mkdir-p (string-append #$output "/bin"))
|
(mkdir-p (string-append #$output "/bin"))
|
||||||
(symlink (string-append #$output "/lib/Signal/signal-desktop")
|
(symlink (string-append #$output "/lib/Signal/signal-desktop")
|
||||||
(string-append #$output "/bin/signal-desktop")))))))
|
(string-append #$output "/bin/signal-desktop"))))
|
||||||
|
(add-after 'install 'wrap-where-patchelf-does-not-work
|
||||||
|
(lambda _
|
||||||
|
(wrap-program (string-append #$output "/lib/Signal/signal-desktop")
|
||||||
|
`("FONTCONFIG_PATH" ":" prefix
|
||||||
|
(,(string-join
|
||||||
|
(list
|
||||||
|
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||||
|
#$output)
|
||||||
|
":")))
|
||||||
|
`("LD_LIBRARY_PATH" ":" prefix
|
||||||
|
(,(string-join
|
||||||
|
(list
|
||||||
|
(string-append #$(this-package-input "nss") "/lib/nss")
|
||||||
|
(string-append #$(this-package-input "eudev") "/lib")
|
||||||
|
(string-append #$(this-package-input "gcc") "/lib")
|
||||||
|
(string-append #$(this-package-input "mesa") "/lib")
|
||||||
|
(string-append #$(this-package-input "libxkbfile") "/lib")
|
||||||
|
(string-append #$(this-package-input "pulseaudio") "/lib")
|
||||||
|
(string-append #$(this-package-input "zlib") "/lib")
|
||||||
|
(string-append #$(this-package-input "libsecret") "/lib")
|
||||||
|
(string-append #$output "/lib/Signal")
|
||||||
|
#$output)
|
||||||
|
":")))))))))
|
||||||
|
(native-inputs (list tar))
|
||||||
|
(inputs (list alsa-lib
|
||||||
|
at-spi2-atk
|
||||||
|
at-spi2-core
|
||||||
|
atk
|
||||||
|
cairo
|
||||||
|
cups
|
||||||
|
dbus
|
||||||
|
eudev
|
||||||
|
expat
|
||||||
|
fontconfig
|
||||||
|
`(,gcc "lib")
|
||||||
|
glib
|
||||||
|
gtk+
|
||||||
|
libdrm
|
||||||
|
librsvg
|
||||||
|
libsecret
|
||||||
|
libx11
|
||||||
|
libxcb
|
||||||
|
libxcomposite
|
||||||
|
libxdamage
|
||||||
|
libxext
|
||||||
|
libxfixes
|
||||||
|
libxkbcommon
|
||||||
|
libxkbfile
|
||||||
|
libxrandr
|
||||||
|
libxshmfence
|
||||||
|
mesa
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
pango
|
||||||
|
pulseaudio
|
||||||
|
zlib))
|
||||||
(home-page "https://signal.org/")
|
(home-page "https://signal.org/")
|
||||||
(synopsis "Private messenger using the Signal protocol")
|
(synopsis "Private messenger using the Signal protocol")
|
||||||
(description "Signal Desktop is an Electron application that links with Signal on Android
|
(description "Signal Desktop is an Electron application that links with Signal on Android
|
||||||
|
@ -129,14 +269,14 @@ or iOS.")
|
||||||
(define-public zoom
|
(define-public zoom
|
||||||
(package
|
(package
|
||||||
(name "zoom")
|
(name "zoom")
|
||||||
(version "5.17.5.2543")
|
(version "5.13.11.1288")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://cdn.zoom.us/prod/" version "/zoom_x86_64.tar.xz"))
|
(uri (string-append "https://cdn.zoom.us/prod/" version "/zoom_x86_64.tar.xz"))
|
||||||
(file-name (string-append name "-" version "-x86_64.tar.xz"))
|
(file-name (string-append name "-" version "-x86_64.tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "06m53d3jrpiq1z5wd7m61lb3w8m8g72iaqx5sixnzn290gyyzgim"))))
|
(base32 "1ngj15j9d7i0z4d0wraziyv75whp0digh8rg1jzfmi0ws3ir2d6b"))))
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -189,8 +329,8 @@ or iOS.")
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(replace 'unpack
|
(replace 'unpack
|
||||||
(lambda* (#:key source #:allow-other-keys)
|
(lambda _
|
||||||
(invoke "tar" "xvf" source)
|
(invoke "tar" "xvf" #$source)
|
||||||
;; Use the more standard lib directory for everything.
|
;; Use the more standard lib directory for everything.
|
||||||
(mkdir-p "lib")
|
(mkdir-p "lib")
|
||||||
(rename-file "zoom/" "lib/zoom")))
|
(rename-file "zoom/" "lib/zoom")))
|
||||||
|
@ -212,9 +352,6 @@ or iOS.")
|
||||||
"libxrender"
|
"libxrender"
|
||||||
"zlib")))))
|
"zlib")))))
|
||||||
(wrap-program (string-append #$output "/lib/zoom/zoom")
|
(wrap-program (string-append #$output "/lib/zoom/zoom")
|
||||||
'("QML2_IMPORT_PATH" = ())
|
|
||||||
'("QT_PLUGIN_PATH" = ())
|
|
||||||
'("QT_SCREEN_SCALE_FACTORS" = ())
|
|
||||||
`("FONTCONFIG_PATH" ":" prefix
|
`("FONTCONFIG_PATH" ":" prefix
|
||||||
(,(string-join
|
(,(string-join
|
||||||
(list
|
(list
|
||||||
|
@ -254,8 +391,6 @@ or iOS.")
|
||||||
"pango"
|
"pango"
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
"xcb-util"
|
"xcb-util"
|
||||||
"xcb-util-image"
|
|
||||||
"xcb-util-keysyms"
|
|
||||||
"xcb-util-wm"
|
"xcb-util-wm"
|
||||||
"xcb-util-renderutil"
|
"xcb-util-renderutil"
|
||||||
"zlib")))))
|
"zlib")))))
|
||||||
|
@ -295,8 +430,6 @@ or iOS.")
|
||||||
"pango"
|
"pango"
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
"xcb-util"
|
"xcb-util"
|
||||||
"xcb-util-image"
|
|
||||||
"xcb-util-keysyms"
|
|
||||||
"xcb-util-wm"
|
"xcb-util-wm"
|
||||||
"xcb-util-renderutil"
|
"xcb-util-renderutil"
|
||||||
"zlib")))))))
|
"zlib")))))))
|
||||||
|
|
|
@ -14,17 +14,14 @@
|
||||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||||
;;; Copyright © 2019, 2020 Adrian Malacoda <malacoda@monarch-pass.net>
|
;;; Copyright © 2019, 2020 Adrian Malacoda <malacoda@monarch-pass.net>
|
||||||
;;; Copyright © 2020-2025 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2020-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
||||||
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
|
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
|
||||||
;;; Copyright © 2021, 2024 Brice Waegeneire <brice@waegenei.re>
|
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||||
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
|
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
|
||||||
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
|
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
|
||||||
;;; Copyright © 2023 Tomas Volf <wolf@wolfsden.cz>
|
|
||||||
|
|
||||||
(define-module (nongnu packages mozilla)
|
(define-module (nongnu packages mozilla)
|
||||||
#:use-module (srfi srfi-26)
|
|
||||||
|
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system cargo)
|
#:use-module (guix build-system cargo)
|
||||||
#:use-module (guix build-system trivial)
|
#:use-module (guix build-system trivial)
|
||||||
|
@ -67,46 +64,50 @@
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages rust)
|
#:use-module (gnu packages rust)
|
||||||
#:use-module (gnu packages rust-apps)
|
#:use-module (gnu packages rust-apps)
|
||||||
#:use-module (gnu packages speech)
|
|
||||||
#:use-module (gnu packages sqlite)
|
#:use-module (gnu packages sqlite)
|
||||||
#:use-module (gnu packages video)
|
#:use-module (gnu packages video)
|
||||||
#:use-module (nongnu packages wasm)
|
#:use-module (nongnu packages wasm)
|
||||||
#:use-module (gnu packages xdisorg)
|
#:use-module (gnu packages xdisorg)
|
||||||
#:use-module (gnu packages xorg))
|
#:use-module (gnu packages xorg))
|
||||||
|
|
||||||
;;; Define the versions of rust needed to build firefox, trying to match
|
;; Define the versions of rust needed to build firefox, trying to match
|
||||||
;;; upstream. See table at [0], `Uses' column for the specific version.
|
;; upstream. See the file taskcluster/ci/toolchain/rust.yml at
|
||||||
;;; Using `rust' will likely lead to a newer version then listed in the table,
|
;; https://searchfox.org under the particular firefox release, like
|
||||||
;;; but since in Guix only the latest packaged Rust is officially supported,
|
;; mozilla-esr102.
|
||||||
;;; it is a tradeoff worth making.
|
(define-public rust-firefox-esr rust) ; 1.60 is the default in Guix
|
||||||
;;; 0: https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html
|
(define-public rust-firefox (@@ (gnu packages rust) rust-1.65)) ; 1.63 is also listed, but 1.61 is the minimum needed
|
||||||
;; The `rust' package is too old.
|
|
||||||
(define-public rust-firefox-esr rust-1.77)
|
|
||||||
(define-public rust-firefox rust-1.77)
|
|
||||||
|
|
||||||
;; Update this id with every firefox update to its release date.
|
(define icu4c-72
|
||||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
(package
|
||||||
(define %firefox-esr-build-id "20250203132125")
|
(inherit icu4c)
|
||||||
|
(version "72.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/unicode-org/icu/releases/download/release-"
|
||||||
|
(string-map (lambda (x) (if (char=? x #\.) #\- x)) version)
|
||||||
|
"/icu4c-"
|
||||||
|
(string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
|
||||||
|
"-src.tgz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0s0xly0ndspd4p9jl6101qvnp5rgz5kl9qrmcvapwah92y1d7lm2"))))))
|
||||||
|
|
||||||
|
;; Update this id with every firefox update to it's release date.
|
||||||
|
;; It's used for cache validation and therefor can lead to strange bugs.
|
||||||
|
(define %firefox-esr-build-id "20230411000000")
|
||||||
|
|
||||||
(define-public firefox-esr
|
(define-public firefox-esr
|
||||||
(package
|
(package
|
||||||
(name "firefox-esr")
|
(name "firefox-esr")
|
||||||
(version "128.7.0esr")
|
(version "102.10.0esr")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
||||||
version "/source/firefox-" version ".source.tar.xz"))
|
version "/source/firefox-" version ".source.tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1xwl6z8ax3dw5hjb5lwpl5641rmlizmfqs3xg74cnczsvm7bz9z0"))
|
(base32 "1y7v19xxl6jchywd0zxy5vr4pj23pi6di4lhlivxpki2pkgm8scc"))))
|
||||||
(patches
|
|
||||||
(map (lambda (patch)
|
|
||||||
(search-path
|
|
||||||
(map (cut string-append <> "/nongnu/packages/patches")
|
|
||||||
%load-path)
|
|
||||||
patch))
|
|
||||||
'("firefox-esr-compare-paths.patch"
|
|
||||||
"firefox-esr-use-system-wide-dir.patch")))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
|
@ -138,11 +139,6 @@
|
||||||
"--with-distribution-id=org.nonguix"
|
"--with-distribution-id=org.nonguix"
|
||||||
"--disable-official-branding"
|
"--disable-official-branding"
|
||||||
|
|
||||||
;; Do not require addons in the global app or system directories to
|
|
||||||
;; be signed by Mozilla.
|
|
||||||
"--allow-addon-sideload"
|
|
||||||
"--with-unsigned-addon-scopes=app,system"
|
|
||||||
|
|
||||||
;; Features
|
;; Features
|
||||||
"--disable-tests"
|
"--disable-tests"
|
||||||
"--disable-updater"
|
"--disable-updater"
|
||||||
|
@ -158,7 +154,6 @@
|
||||||
"--disable-elf-hack"))
|
"--disable-elf-hack"))
|
||||||
#:imported-modules %cargo-utils-modules
|
#:imported-modules %cargo-utils-modules
|
||||||
#:modules `((ice-9 regex)
|
#:modules `((ice-9 regex)
|
||||||
(ice-9 string-fun)
|
|
||||||
(ice-9 ftw)
|
(ice-9 ftw)
|
||||||
(srfi srfi-1)
|
(srfi srfi-1)
|
||||||
(srfi srfi-26)
|
(srfi srfi-26)
|
||||||
|
@ -166,7 +161,7 @@
|
||||||
(rnrs io ports)
|
(rnrs io ports)
|
||||||
(guix elf)
|
(guix elf)
|
||||||
(guix build gremlin)
|
(guix build gremlin)
|
||||||
,@%default-gnu-imported-modules)
|
,@%gnu-build-system-modules)
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'fix-preferences
|
(add-after 'unpack 'fix-preferences
|
||||||
|
@ -185,11 +180,6 @@
|
||||||
|
|
||||||
;; XDG settings should be managed by Guix.
|
;; XDG settings should be managed by Guix.
|
||||||
(write-setting "browser.shell.checkDefaultBrowser" "false")
|
(write-setting "browser.shell.checkDefaultBrowser" "false")
|
||||||
|
|
||||||
;; It defaults to Google Location Services, but misses a necessary
|
|
||||||
;; API key.
|
|
||||||
(write-setting "geo.provider.network.url"
|
|
||||||
"\"https://api.beacondb.net/v1/geolocate\"")
|
|
||||||
(close-port port))))
|
(close-port port))))
|
||||||
(add-after 'fix-preferences 'fix-ffmpeg-runtime-linker
|
(add-after 'fix-preferences 'fix-ffmpeg-runtime-linker
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
@ -238,24 +228,8 @@
|
||||||
;; complain that it's not able to change Cargo.lock.
|
;; complain that it's not able to change Cargo.lock.
|
||||||
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
|
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
|
||||||
(substitute* "build/RunCbindgen.py"
|
(substitute* "build/RunCbindgen.py"
|
||||||
(("args.append\\(\"--frozen\"\\)") "pass"))))
|
(("\"--frozen\",") ""))))
|
||||||
(delete 'bootstrap)
|
(delete 'bootstrap)
|
||||||
(add-before 'configure 'patch-SpeechDispatcherService.cpp
|
|
||||||
(lambda _
|
|
||||||
(let* ((lib "libspeechd.so.2")
|
|
||||||
(file "dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp")
|
|
||||||
(old-content (call-with-input-file file get-string-all)))
|
|
||||||
(substitute
|
|
||||||
file
|
|
||||||
`((,(format #f "~s" lib)
|
|
||||||
. ,(lambda (line _)
|
|
||||||
(string-replace-substring
|
|
||||||
line
|
|
||||||
lib
|
|
||||||
(string-append #$speech-dispatcher "/lib/" lib))))))
|
|
||||||
(if (string=? old-content
|
|
||||||
(call-with-input-file file get-string-all))
|
|
||||||
(error "substitute did nothing, phase requires an update")))))
|
|
||||||
(add-before 'configure 'set-build-id
|
(add-before 'configure 'set-build-id
|
||||||
;; Firefox will write the timestamp to output, which is harmful
|
;; Firefox will write the timestamp to output, which is harmful
|
||||||
;; for reproducibility, so change it to a fixed date. Use a
|
;; for reproducibility, so change it to a fixed date. Use a
|
||||||
|
@ -291,9 +265,6 @@
|
||||||
|
|
||||||
(setenv "MOZ_NOSPAM" "1")
|
(setenv "MOZ_NOSPAM" "1")
|
||||||
|
|
||||||
;; WM_CLASS (default is "$MOZ_APP_NAME-$MOZ_UPDATE_CHANNEL").
|
|
||||||
(setenv "MOZ_APP_REMOTINGNAME" "Firefox")
|
|
||||||
|
|
||||||
(setenv "MOZBUILD_STATE_PATH" (getcwd))
|
(setenv "MOZBUILD_STATE_PATH" (getcwd))
|
||||||
|
|
||||||
(let* ((mozconfig (string-append (getcwd) "/mozconfig"))
|
(let* ((mozconfig (string-append (getcwd) "/mozconfig"))
|
||||||
|
@ -388,17 +359,13 @@
|
||||||
'("mesa" "ffmpeg")))))
|
'("mesa" "ffmpeg")))))
|
||||||
(pulseaudio-lib (string-append (assoc-ref inputs "pulseaudio")
|
(pulseaudio-lib (string-append (assoc-ref inputs "pulseaudio")
|
||||||
"/lib"))
|
"/lib"))
|
||||||
;; For sharing on Wayland
|
|
||||||
(pipewire-lib (string-append (assoc-ref inputs "pipewire")
|
|
||||||
"/lib"))
|
|
||||||
;; For U2F and WebAuthn
|
;; For U2F and WebAuthn
|
||||||
(eudev-lib (string-append (assoc-ref inputs "eudev") "/lib"))
|
(eudev-lib (string-append (assoc-ref inputs "eudev") "/lib"))
|
||||||
(gtk-share (string-append (assoc-ref inputs "gtk+")
|
(gtk-share (string-append (assoc-ref inputs "gtk+")
|
||||||
"/share")))
|
"/share")))
|
||||||
(wrap-program (car (find-files lib "^firefox$"))
|
(wrap-program (car (find-files lib "^firefox$"))
|
||||||
`("LD_LIBRARY_PATH" prefix (,mesa-lib ,libnotify-lib ,libva-lib
|
`("LD_LIBRARY_PATH" prefix (,mesa-lib ,libnotify-lib ,libva-lib
|
||||||
,pulseaudio-lib ,eudev-lib ,@rdd-whitelist
|
,pulseaudio-lib ,eudev-lib ,@rdd-whitelist))
|
||||||
,pipewire-lib))
|
|
||||||
`("XDG_DATA_DIRS" prefix (,gtk-share))
|
`("XDG_DATA_DIRS" prefix (,gtk-share))
|
||||||
`("MOZ_LEGACY_PROFILES" = ("1"))
|
`("MOZ_LEGACY_PROFILES" = ("1"))
|
||||||
`("MOZ_ALLOW_DOWNGRADE" = ("1"))))))
|
`("MOZ_ALLOW_DOWNGRADE" = ("1"))))))
|
||||||
|
@ -412,7 +379,7 @@
|
||||||
(("NewWindow") "new-window")
|
(("NewWindow") "new-window")
|
||||||
(("NewPrivateWindow") "new-private-window")
|
(("NewPrivateWindow") "new-private-window")
|
||||||
(("StartupNotify=true")
|
(("StartupNotify=true")
|
||||||
"StartupNotify=true\nStartupWMClass=Firefox"))
|
"StartupNotify=true\nStartupWMClass=Navigator"))
|
||||||
(install-file desktop-file applications))))
|
(install-file desktop-file applications))))
|
||||||
(add-after 'install-desktop-entry 'install-icons
|
(add-after 'install-desktop-entry 'install-icons
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
@ -451,7 +418,7 @@
|
||||||
gtk+
|
gtk+
|
||||||
gtk+-2
|
gtk+-2
|
||||||
hunspell
|
hunspell
|
||||||
icu4c-73
|
icu4c
|
||||||
jemalloc
|
jemalloc
|
||||||
libcanberra
|
libcanberra
|
||||||
libevent
|
libevent
|
||||||
|
@ -475,9 +442,8 @@
|
||||||
pipewire
|
pipewire
|
||||||
pixman
|
pixman
|
||||||
pulseaudio
|
pulseaudio
|
||||||
speech-dispatcher
|
|
||||||
sqlite
|
|
||||||
startup-notification
|
startup-notification
|
||||||
|
sqlite
|
||||||
eudev
|
eudev
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
|
@ -487,24 +453,19 @@
|
||||||
alsa-lib
|
alsa-lib
|
||||||
autoconf-2.13
|
autoconf-2.13
|
||||||
`(,rust-firefox-esr "cargo")
|
`(,rust-firefox-esr "cargo")
|
||||||
clang-18
|
clang
|
||||||
llvm
|
llvm
|
||||||
wasm32-wasi-clang-toolchain
|
wasm32-wasi-clang-toolchain
|
||||||
m4
|
m4
|
||||||
nasm
|
nasm
|
||||||
node-lts
|
node
|
||||||
perl
|
perl
|
||||||
pkg-config
|
pkg-config
|
||||||
python
|
python
|
||||||
rust-firefox-esr
|
rust-firefox-esr
|
||||||
rust-cbindgen-0.26
|
rust-cbindgen-0.23
|
||||||
which
|
which
|
||||||
yasm))
|
yasm))
|
||||||
(native-search-paths
|
|
||||||
(list (search-path-specification
|
|
||||||
(variable "ICECAT_SYSTEM_DIR")
|
|
||||||
(separator #f) ;single entry
|
|
||||||
(files '("lib/icecat")))))
|
|
||||||
(home-page "https://mozilla.org/firefox/")
|
(home-page "https://mozilla.org/firefox/")
|
||||||
(synopsis "Trademarkless version of Firefox")
|
(synopsis "Trademarkless version of Firefox")
|
||||||
(description
|
(description
|
||||||
|
@ -549,31 +510,22 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
||||||
((firefox) out))
|
((firefox) out))
|
||||||
#t))))))
|
#t))))))
|
||||||
|
|
||||||
;; Update this id with every firefox update to its release date.
|
;; Update this id with every firefox update to it's release date.
|
||||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
;; It's used for cache validation and therefor can lead to strange bugs.
|
||||||
(define %firefox-build-id "20250203132324")
|
(define %firefox-build-id "20230417000000")
|
||||||
|
|
||||||
(define-public firefox
|
(define-public firefox
|
||||||
(package
|
(package
|
||||||
(inherit firefox-esr)
|
(inherit firefox-esr)
|
||||||
(name "firefox")
|
(name "firefox")
|
||||||
(version "135.0")
|
(version "112.0.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
||||||
version "/source/firefox-" version ".source.tar.xz"))
|
version "/source/firefox-" version ".source.tar.xz"))
|
||||||
(patches
|
|
||||||
(map (lambda (patch)
|
|
||||||
(search-path
|
|
||||||
(map (cut string-append <> "/nongnu/packages/patches")
|
|
||||||
%load-path)
|
|
||||||
patch))
|
|
||||||
'("firefox-restore-desktop-files.patch"
|
|
||||||
"firefox-esr-compare-paths.patch"
|
|
||||||
"firefox-use-system-wide-dir.patch")))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0q5r2q6q56kyzl5pknrir9bzlhmzbvv9hi5gi4852izgcali4zl2"))))
|
(base32 "0jdnxy3xx4nzs5bn0rqa2v599pp3fp9ra540nxibrq9gh632hasx"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments firefox-esr)
|
(substitute-keyword-arguments (package-arguments firefox-esr)
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
|
@ -583,16 +535,49 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
||||||
(setenv "MOZ_BUILD_DATE" #$%firefox-build-id)))))))
|
(setenv "MOZ_BUILD_DATE" #$%firefox-build-id)))))))
|
||||||
(inputs
|
(inputs
|
||||||
(modify-inputs (package-inputs firefox-esr)
|
(modify-inputs (package-inputs firefox-esr)
|
||||||
(replace "icu4c" icu4c-75)))
|
(replace "icu4c" icu4c-72)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(modify-inputs (package-native-inputs firefox-esr)
|
(modify-inputs (package-native-inputs firefox-esr)
|
||||||
(replace "rust" rust-firefox)
|
(replace "rust" rust-firefox)
|
||||||
(replace "rust:cargo" `(,rust-firefox "cargo"))))
|
(replace "rust:cargo" `(,rust-firefox "cargo"))
|
||||||
|
(replace "node" node-lts)
|
||||||
|
(replace "rust-cbindgen" rust-cbindgen-0.24)))
|
||||||
(description
|
(description
|
||||||
"Full-featured browser client built from Firefox source tree, without
|
"Full-featured browser client built from Firefox source tree, without
|
||||||
the official icon and the name \"firefox\".")))
|
the official icon and the name \"firefox\".")))
|
||||||
|
|
||||||
;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no
|
(define-public firefox/wayland
|
||||||
;; longer need a seperate package for Firefox on Wayland.
|
(package
|
||||||
(define-public firefox-wayland
|
(inherit firefox)
|
||||||
(deprecated-package "firefox-wayland" firefox))
|
(name "firefox-wayland")
|
||||||
|
(native-inputs '())
|
||||||
|
(inputs
|
||||||
|
`(("bash" ,bash-minimal)
|
||||||
|
("firefox" ,firefox)))
|
||||||
|
(build-system trivial-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:modules ((guix build utils))
|
||||||
|
#:builder
|
||||||
|
(begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
(let* ((bash (assoc-ref %build-inputs "bash"))
|
||||||
|
(firefox (assoc-ref %build-inputs "firefox"))
|
||||||
|
(out (assoc-ref %outputs "out"))
|
||||||
|
(exe (string-append out "/bin/firefox")))
|
||||||
|
(mkdir-p (dirname exe))
|
||||||
|
|
||||||
|
(call-with-output-file exe
|
||||||
|
(lambda (port)
|
||||||
|
(format port "#!~a
|
||||||
|
MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
||||||
|
(string-append bash "/bin/bash")
|
||||||
|
(string-append firefox "/bin/firefox"))))
|
||||||
|
(chmod exe #o555)
|
||||||
|
|
||||||
|
;; Provide the manual and .desktop file.
|
||||||
|
(copy-recursively (string-append firefox "/share")
|
||||||
|
(string-append out "/share"))
|
||||||
|
(substitute* (string-append
|
||||||
|
out "/share/applications/firefox.desktop")
|
||||||
|
((firefox) out))
|
||||||
|
#t))))))
|
||||||
|
|
|
@ -34,9 +34,7 @@
|
||||||
("x86_64-linux" "linux_x86_64")
|
("x86_64-linux" "linux_x86_64")
|
||||||
("i686-linux" "linux_i686")
|
("i686-linux" "linux_i686")
|
||||||
("aarch64-linux" "linux_aarch64")
|
("aarch64-linux" "linux_aarch64")
|
||||||
("armhf-linux" "linux_armv7l")
|
("armhf-linux" "linux_armv7l"))
|
||||||
;; We need a default case
|
|
||||||
(_ "unsupported"))
|
|
||||||
".tar.xz"))
|
".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
|
@ -44,9 +42,7 @@
|
||||||
("x86_64-linux" "1hd7fbk0px45fxhqa7nqcnij8ls2fhpjp60v840vy2zqs9fkcr52")
|
("x86_64-linux" "1hd7fbk0px45fxhqa7nqcnij8ls2fhpjp60v840vy2zqs9fkcr52")
|
||||||
("i686-linux" "11vk32mxyda9xl08pp2ivd1vsahnw6w7d08in4syz6iannfwp19b")
|
("i686-linux" "11vk32mxyda9xl08pp2ivd1vsahnw6w7d08in4syz6iannfwp19b")
|
||||||
("aarch64-linux" "0zpkaiwwxn8yh3s1d22qswshbgaxx5d8iy17hb3w256zgb722yjw")
|
("aarch64-linux" "0zpkaiwwxn8yh3s1d22qswshbgaxx5d8iy17hb3w256zgb722yjw")
|
||||||
("armhf-linux" "18174b1lgsk73gxhala471ppzbrpa1cs953b5par998yqgh74znk")
|
("armhf-linux" "18174b1lgsk73gxhala471ppzbrpa1cs953b5par998yqgh74znk"))))))
|
||||||
;; We need a valid base32 default case
|
|
||||||
(_ "0000000000000000000000000000000000000000000000000000"))))))
|
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:strip-binaries? #f ;allocated section `.dynsym' not in segment
|
(list #:strip-binaries? #f ;allocated section `.dynsym' not in segment
|
||||||
|
|
|
@ -8,13 +8,11 @@
|
||||||
;;; Copyright © 2017, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
|
;;; Copyright © 2017, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||||
;;; Copyright © 2022-2023 B. Wilson <x@wilsonb.com>
|
;;; Copyright © 2022 B. Wilson <x@wilsonb.com>
|
||||||
|
|
||||||
(define-module (nongnu packages ncurses)
|
(define-module (nongnu packages ncurses)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix licenses)
|
#:use-module (guix licenses)
|
||||||
#:use-module (guix memoization)
|
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
|
@ -27,17 +25,6 @@
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define ncurses-rollup-patch
|
|
||||||
(mlambda (version hash)
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (match (string-split (version-major+minor+point version) #\.)
|
|
||||||
((major minor point)
|
|
||||||
(string-append "https://invisible-mirror.net/archives"
|
|
||||||
"/ncurses/" major "." minor "/ncurses-"
|
|
||||||
major "." minor "-" point "-patch.sh.bz2"))))
|
|
||||||
(sha256 (base32 hash)))))
|
|
||||||
|
|
||||||
(define-public ncurses-5
|
(define-public ncurses-5
|
||||||
(package
|
(package
|
||||||
(name "ncurses")
|
(name "ncurses")
|
||||||
|
@ -55,157 +42,172 @@
|
||||||
"doc")) ;1 MiB of man pages
|
"doc")) ;1 MiB of man pages
|
||||||
(arguments
|
(arguments
|
||||||
(let ((patch-makefile-phase
|
(let ((patch-makefile-phase
|
||||||
#~(lambda _
|
'(lambda _
|
||||||
(for-each patch-makefile-SHELL
|
(for-each patch-makefile-SHELL
|
||||||
(find-files "." "Makefile.in"))))
|
(find-files "." "Makefile.in"))))
|
||||||
(configure-phase
|
(configure-phase
|
||||||
;; The 'configure' script does not understand '--docdir', so we must
|
;; The 'configure' script does not understand '--docdir', so we must
|
||||||
;; override that and use '--mandir' instead.
|
;; override that and use '--mandir' instead.
|
||||||
#~(lambda* (#:key build target outputs configure-flags
|
'(lambda* (#:key build target outputs configure-flags
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
(let ((out (assoc-ref outputs "out"))
|
(let ((out (assoc-ref outputs "out"))
|
||||||
(doc (assoc-ref outputs "doc")))
|
(doc (assoc-ref outputs "doc")))
|
||||||
(apply invoke "./configure"
|
(apply invoke "./configure"
|
||||||
(string-append "SHELL=" (which "sh"))
|
(string-append "SHELL=" (which "sh"))
|
||||||
(string-append "--build=" build)
|
(string-append "--build=" build)
|
||||||
(string-append "--prefix=" out)
|
(string-append "--prefix=" out)
|
||||||
(string-append "--mandir=" doc "/share/man")
|
(string-append "--mandir=" doc "/share/man")
|
||||||
(if target
|
(if target
|
||||||
(cons (string-append "--host=" target)
|
(cons (string-append "--host=" target)
|
||||||
configure-flags)
|
configure-flags)
|
||||||
configure-flags)))))
|
configure-flags)))))
|
||||||
(apply-rollup-patch-phase
|
(apply-rollup-patch-phase
|
||||||
;; Ncurses distributes "stable" patchsets to be applied on top
|
;; Ncurses distributes "stable" patchsets to be applied on top
|
||||||
;; of the release tarball. These are only available as shell
|
;; of the release tarball. These are only available as shell
|
||||||
;; scripts(!) so we decompress and apply them in a phase.
|
;; scripts(!) so we decompress and apply them in a phase.
|
||||||
;; See <https://invisible-mirror.net/archives/ncurses/6.1/README>.
|
;; See <https://invisible-mirror.net/archives/ncurses/6.1/README>.
|
||||||
#~(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
'(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||||
(let ((rollup-patch #$(ncurses-rollup-patch
|
(let ((rollup-patch (assoc-ref (or native-inputs inputs)
|
||||||
(package-version this-package)
|
"rollup-patch")))
|
||||||
"16ny892yhimy6r4mmsgw3rcl0i15570ifn9c54g1ndyrk7kpmlgs")))
|
(when rollup-patch
|
||||||
(copy-file rollup-patch
|
(copy-file rollup-patch
|
||||||
(string-append (getcwd) "/rollup-patch.sh.bz2"))
|
(string-append (getcwd) "/rollup-patch.sh.bz2"))
|
||||||
(invoke "bzip2" "-d" "rollup-patch.sh.bz2")
|
(invoke "bzip2" "-d" "rollup-patch.sh.bz2")
|
||||||
(invoke "sh" "rollup-patch.sh"))))
|
(invoke "sh" "rollup-patch.sh")))))
|
||||||
(remove-shebang-phase
|
(remove-shebang-phase
|
||||||
#~(lambda _
|
'(lambda _
|
||||||
;; To avoid retaining a reference to the bootstrap Bash via the
|
;; To avoid retaining a reference to the bootstrap Bash via the
|
||||||
;; shebang of the 'ncursesw6-config' script, simply remove that
|
;; shebang of the 'ncursesw6-config' script, simply remove that
|
||||||
;; shebang: it'll work just as well without it. Likewise, do not
|
;; shebang: it'll work just as well without it. Likewise, do not
|
||||||
;; retain a reference to the "doc" output.
|
;; retain a reference to the "doc" output.
|
||||||
(substitute* "misc/ncurses-config.in"
|
(substitute* "misc/ncurses-config.in"
|
||||||
(("#!@SHELL@")
|
(("#!@SHELL@")
|
||||||
"# No shebang here, use /bin/sh!\n")
|
"# No shebang here, use /bin/sh!\n")
|
||||||
(("@SHELL@ \\$0")
|
(("@SHELL@ \\$0")
|
||||||
"$0")
|
"$0")
|
||||||
(("mandir=.*$")
|
(("mandir=.*$")
|
||||||
"mandir=share/man"))))
|
"mandir=share/man"))))
|
||||||
(post-install-phase
|
(post-install-phase
|
||||||
#~(lambda* (#:key outputs #:allow-other-keys)
|
`(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let ((out (assoc-ref outputs "out")))
|
(let ((out (assoc-ref outputs "out")))
|
||||||
;; When building a wide-character (Unicode) build, create backward
|
;; When building a wide-character (Unicode) build, create backward
|
||||||
;; compatibility links from the the "normal" libraries to the
|
;; compatibility links from the the "normal" libraries to the
|
||||||
;; wide-character ones (e.g. libncurses.so to libncursesw.so).
|
;; wide-character ones (e.g. libncurses.so to libncursesw.so).
|
||||||
#$@(if (target-mingw?)
|
,@(if (target-mingw?)
|
||||||
`( ;; TODO: create .la files to link to the .dll?
|
'( ;; TODO: create .la files to link to the .dll?
|
||||||
(with-directory-excursion (string-append out "/bin")
|
(with-directory-excursion (string-append out "/bin")
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (lib)
|
(lambda (lib)
|
||||||
(define lib.dll
|
(define lib.dll
|
||||||
(string-append "lib" lib ".dll"))
|
(string-append "lib" lib ".dll"))
|
||||||
(define libwx.dll
|
(define libw6.dll
|
||||||
(string-append "lib" lib "w"
|
(string-append "lib" lib "w6.dll"))
|
||||||
,(version-major version) ".dll"))
|
|
||||||
|
|
||||||
(when (file-exists? libwx.dll)
|
(when (file-exists? libw6.dll)
|
||||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||||
(symlink libw6.dll lib.dll)))
|
(symlink libw6.dll lib.dll)))
|
||||||
'("curses" "ncurses" "form" "panel" "menu"))))
|
'("curses" "ncurses" "form" "panel" "menu"))))
|
||||||
#~())
|
'())
|
||||||
(with-directory-excursion (string-append out "/lib")
|
(with-directory-excursion (string-append out "/lib")
|
||||||
(for-each (lambda (lib)
|
(for-each (lambda (lib)
|
||||||
(define libw.a
|
(define libw.a
|
||||||
(string-append "lib" lib "w.a"))
|
(string-append "lib" lib "w.a"))
|
||||||
(define lib.a
|
(define lib.a
|
||||||
(string-append "lib" lib ".a"))
|
(string-append "lib" lib ".a"))
|
||||||
|
|
||||||
#$@(if (not (target-mingw?))
|
,@(if (not (target-mingw?))
|
||||||
#~((define libw.so.x
|
`((define libw.so.x
|
||||||
(string-append "lib" lib "w.so."
|
(string-append "lib" lib "w.so."
|
||||||
#$(version-major version)))
|
,(version-major version)))
|
||||||
(define lib.so.x
|
(define lib.so.x
|
||||||
(string-append "lib" lib ".so."
|
(string-append "lib" lib ".so."
|
||||||
#$(version-major version)))
|
,(version-major version)))
|
||||||
(define lib.so
|
(define lib.so
|
||||||
(string-append "lib" lib ".so"))
|
(string-append "lib" lib ".so"))
|
||||||
(define packagew.pc
|
(define packagew.pc
|
||||||
(string-append lib "w.pc"))
|
(string-append lib "w.pc"))
|
||||||
(define package.pc
|
(define package.pc
|
||||||
(string-append lib ".pc")))
|
(string-append lib ".pc")))
|
||||||
#~())
|
'())
|
||||||
|
|
||||||
(when (file-exists? libw.a)
|
(when (file-exists? libw.a)
|
||||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||||
(symlink libw.a lib.a)
|
(symlink libw.a lib.a)
|
||||||
#$@(if (not (target-mingw?))
|
,@(if (not (target-mingw?))
|
||||||
'((symlink libw.so.x lib.so.x)
|
'((symlink libw.so.x lib.so.x)
|
||||||
(false-if-exception (delete-file lib.so))
|
(false-if-exception (delete-file lib.so))
|
||||||
(call-with-output-file lib.so
|
(call-with-output-file lib.so
|
||||||
(lambda (p)
|
(lambda (p)
|
||||||
(format p "INPUT (-l~aw)~%" lib)))
|
(format p "INPUT (-l~aw)~%" lib)))
|
||||||
(with-directory-excursion "pkgconfig"
|
(with-directory-excursion "pkgconfig"
|
||||||
(format #t "creating symlink for `~a'~%"
|
(format #t "creating symlink for `~a'~%"
|
||||||
package.pc)
|
package.pc)
|
||||||
(when (file-exists? packagew.pc)
|
(when (file-exists? packagew.pc)
|
||||||
(symlink packagew.pc package.pc))))
|
(symlink packagew.pc package.pc))))
|
||||||
#~())))
|
'())))
|
||||||
'("curses" "ncurses" "form" "panel" "menu")))))))
|
'("curses" "ncurses" "form" "panel" "menu")))))))
|
||||||
(list #:configure-flags
|
`(#:configure-flags
|
||||||
#~`("--with-shared" "--without-debug" "--enable-widec"
|
,(cons*
|
||||||
|
'quasiquote
|
||||||
|
`(("--with-shared" "--without-debug" "--enable-widec"
|
||||||
|
|
||||||
"--enable-pc-files" "--with-versioned-syms=yes"
|
"--enable-pc-files" "--with-versioned-syms=yes"
|
||||||
,(string-append "--with-pkg-config-libdir="
|
,(list 'unquote '(string-append "--with-pkg-config-libdir="
|
||||||
#$output "/lib/pkgconfig")
|
(assoc-ref %outputs "out")
|
||||||
|
"/lib/pkgconfig"))
|
||||||
|
|
||||||
;; By default headers land in an `ncursesw' subdir, which is not
|
;; By default headers land in an `ncursesw' subdir, which is not
|
||||||
;; what users expect.
|
;; what users expect.
|
||||||
,(string-append "--includedir=" #$output "/include")
|
,(list 'unquote '(string-append "--includedir=" (assoc-ref %outputs "out")
|
||||||
"--enable-overwrite" ;really honor --includedir
|
"/include"))
|
||||||
|
"--enable-overwrite" ;really honor --includedir
|
||||||
|
|
||||||
;; Make sure programs like 'tic', 'reset', and 'clear' have a
|
;; Make sure programs like 'tic', 'reset', and 'clear' have a
|
||||||
;; correct RUNPATH.
|
;; correct RUNPATH.
|
||||||
,(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
|
,(list 'unquote '(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
|
||||||
|
"/lib"))
|
||||||
|
|
||||||
;; Starting from ncurses 6.1, "make install" runs "install -s"
|
;; Starting from ncurses 6.1, "make install" runs "install -s"
|
||||||
;; by default, which doesn't work for cross-compiled binaries
|
;; by default, which doesn't work for cross-compiled binaries
|
||||||
;; because it invokes 'strip' instead of 'TRIPLET-strip'. Work
|
;; because it invokes 'strip' instead of 'TRIPLET-strip'. Work
|
||||||
;; around this.
|
;; around this.
|
||||||
#$@(if (%current-target-system) #~("--disable-stripping") #~())
|
,@(if (%current-target-system) '("--disable-stripping") '())
|
||||||
|
|
||||||
;; Do not assume a default search path in ld, even if it is only to
|
;; Do not assume a default search path in ld, even if it is only to
|
||||||
;; filter it out in ncurses-config. Mainly because otherwise it ends
|
;; filter it out in ncurses-config. Mainly because otherwise it ends
|
||||||
;; up using the libdir from binutils, which makes little sense and
|
;; up using the libdir from binutils, which makes little sense and
|
||||||
;; causes an unnecessary runtime dependency.
|
;; causes an unnecessary runtime dependency.
|
||||||
"cf_cv_ld_searchpath=/no-ld-searchpath"
|
"cf_cv_ld_searchpath=/no-ld-searchpath"
|
||||||
|
|
||||||
;; MinGW: Use term-driver created for the MinGW port.
|
;; MinGW: Use term-driver created for the MinGW port.
|
||||||
#$@(if (target-mingw?) #~("--enable-term-driver") #~())
|
,@(if (target-mingw?) '("--enable-term-driver") '()))))
|
||||||
"CXXFLAGS=-std=c++11")
|
#:tests? #f ; no "check" target
|
||||||
#:tests? #f ; no "check" target
|
#:phases (modify-phases %standard-phases
|
||||||
#:phases #~(modify-phases %standard-phases
|
(add-after 'unpack 'apply-rollup-patch
|
||||||
(add-after 'unpack 'apply-rollup-patch
|
,apply-rollup-patch-phase)
|
||||||
#$apply-rollup-patch-phase)
|
(replace 'configure ,configure-phase)
|
||||||
(replace 'configure #$configure-phase)
|
(add-after 'install 'post-install
|
||||||
(add-after 'install 'post-install
|
,post-install-phase)
|
||||||
#$post-install-phase)
|
(add-before 'configure 'patch-makefile-SHELL
|
||||||
(add-before 'configure 'patch-makefile-SHELL
|
,patch-makefile-phase)
|
||||||
#$patch-makefile-phase)
|
(add-before 'patch-source-shebangs 'remove-unneeded-shebang
|
||||||
(add-before 'patch-source-shebangs 'remove-unneeded-shebang
|
,remove-shebang-phase)))))
|
||||||
#$remove-shebang-phase)))))
|
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(if (%current-target-system)
|
`(,@(if (%current-target-system)
|
||||||
(list pkg-config this-package) ;for 'tic'
|
`(("self" ,this-package)) ;for `tic'
|
||||||
(list pkg-config)))
|
'())
|
||||||
|
("rollup-patch"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (match (string-split (version-major+minor+point version) #\.)
|
||||||
|
((major minor point)
|
||||||
|
(string-append "https://invisible-mirror.net/archives"
|
||||||
|
"/ncurses/" major "." minor "/ncurses-"
|
||||||
|
major "." minor "-" point "-patch.sh.bz2"))))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"16ny892yhimy6r4mmsgw3rcl0i15570ifn9c54g1ndyrk7kpmlgs"))))
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
(list (search-path-specification
|
(list (search-path-specification
|
||||||
(variable "TERMINFO_DIRS")
|
(variable "TERMINFO_DIRS")
|
||||||
|
@ -220,10 +222,13 @@ ncursesw library provides wide character support.")
|
||||||
(license x11)
|
(license x11)
|
||||||
(home-page "https://www.gnu.org/software/ncurses/")))
|
(home-page "https://www.gnu.org/software/ncurses/")))
|
||||||
|
|
||||||
|
;; Needed by u-boot 2022.04+
|
||||||
|
;; Consider merging into ncurses for next core-updates cycle.
|
||||||
(define-public ncurses/tinfo-5
|
(define-public ncurses/tinfo-5
|
||||||
(package/inherit ncurses-5
|
(package/inherit ncurses-5
|
||||||
(name "ncurses-with-tinfo")
|
(name "ncurses-with-tinfo")
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments ncurses-5)
|
(substitute-keyword-arguments (package-arguments ncurses-5)
|
||||||
((#:configure-flags cf)
|
((#:configure-flags cf)
|
||||||
#~(cons "--with-termlib=tinfo" #$cf))))))
|
`(cons "--with-termlib=tinfo"
|
||||||
|
,cf))))))
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,23 +0,0 @@
|
||||||
See comment in gnu/build/icecat-extension.scm.
|
|
||||||
|
|
||||||
diff --git a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
|
||||||
index 0b885f6..0bbfbee 100644
|
|
||||||
--- a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
|
||||||
+++ b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
|
||||||
@@ -3607,6 +3607,7 @@ export const XPIDatabaseReconcile = {
|
|
||||||
if (
|
|
||||||
newAddon ||
|
|
||||||
oldAddon.updateDate != xpiState.mtime ||
|
|
||||||
+ oldAddon.path != xpiState.path ||
|
|
||||||
(aUpdateCompatibility && this.isAppBundledLocation(installLocation))
|
|
||||||
) {
|
|
||||||
newAddon = this.updateMetadata(
|
|
||||||
@@ -3615,8 +3616,6 @@ export const XPIDatabaseReconcile = {
|
|
||||||
xpiState,
|
|
||||||
newAddon
|
|
||||||
);
|
|
||||||
- } else if (oldAddon.path != xpiState.path) {
|
|
||||||
- newAddon = this.updatePath(installLocation, oldAddon, xpiState);
|
|
||||||
} else if (aUpdateCompatibility || aSchemaChange) {
|
|
||||||
newAddon = this.updateCompatibility(
|
|
||||||
installLocation,
|
|
|
@ -1,38 +0,0 @@
|
||||||
Replace "/usr/lib/mozilla" (the system-wide directory for extensions and
|
|
||||||
native manifests) with "$ICECAT_SYSTEM_DIR".
|
|
||||||
|
|
||||||
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
index d3af49b495..4beef0aa7e 100644
|
|
||||||
--- a/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
+++ b/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
@@ -296,24 +296,12 @@ nsresult nsXREDirProvider::GetBackgroundTasksProfilesRootDir(
|
|
||||||
static nsresult GetSystemParentDirectory(nsIFile** aFile) {
|
|
||||||
nsresult rv;
|
|
||||||
nsCOMPtr<nsIFile> localDir;
|
|
||||||
-# if defined(XP_MACOSX)
|
|
||||||
- rv = GetOSXFolderType(kOnSystemDisk, kApplicationSupportFolderType,
|
|
||||||
- getter_AddRefs(localDir));
|
|
||||||
- if (NS_SUCCEEDED(rv)) {
|
|
||||||
- rv = localDir->AppendNative("Mozilla"_ns);
|
|
||||||
- }
|
|
||||||
-# else
|
|
||||||
- constexpr auto dirname =
|
|
||||||
-# ifdef HAVE_USR_LIB64_DIR
|
|
||||||
- "/usr/lib64/mozilla"_ns
|
|
||||||
-# elif defined(__OpenBSD__) || defined(__FreeBSD__)
|
|
||||||
- "/usr/local/lib/mozilla"_ns
|
|
||||||
-# else
|
|
||||||
- "/usr/lib/mozilla"_ns
|
|
||||||
-# endif
|
|
||||||
- ;
|
|
||||||
- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir));
|
|
||||||
-# endif
|
|
||||||
+
|
|
||||||
+ const char* systemParentDir = getenv("ICECAT_SYSTEM_DIR");
|
|
||||||
+ if (!systemParentDir || !*systemParentDir) return NS_ERROR_FAILURE;
|
|
||||||
+
|
|
||||||
+ rv = NS_NewNativeLocalFile(nsDependentCString(systemParentDir), false,
|
|
||||||
+ getter_AddRefs(localDir));
|
|
||||||
|
|
||||||
if (NS_SUCCEEDED(rv)) {
|
|
||||||
localDir.forget(aFile);
|
|
|
@ -1,917 +0,0 @@
|
||||||
From: John Kehayias
|
|
||||||
Date: Fri, 18 Oct 2024 20:33:02 -0400
|
|
||||||
Subject: [PATCH] Revert "Bug 1907512 - Remove duplicated desktop files
|
|
||||||
r=stransky"
|
|
||||||
|
|
||||||
This reverts commit 7ac2001cd0d4e1f44f104d9b17a427a009935e20 which removed the desktop files in favor of generating them. See upstream discussion at <https://bugzilla.mozilla.org/show_bug.cgi?id=1901703>.
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
.../search-provider-files/firefox.desktop | 274 +++++++++++++
|
|
||||||
.../org.mozilla.firefox.desktop | 386 ++++++++++++++++++
|
|
||||||
.../docker/firefox-snap/firefox.desktop | 219 ++++++++++
|
|
||||||
3 files changed, 879 insertions(+)
|
|
||||||
create mode 100644 browser/components/shell/search-provider-files/firefox.desktop
|
|
||||||
create mode 100644 taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop
|
|
||||||
create mode 100644 taskcluster/docker/firefox-snap/firefox.desktop
|
|
||||||
|
|
||||||
diff --git a/browser/components/shell/search-provider-files/firefox.desktop b/browser/components/shell/search-provider-files/firefox.desktop
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..575290acddc3
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/browser/components/shell/search-provider-files/firefox.desktop
|
|
||||||
@@ -0,0 +1,274 @@
|
|
||||||
+[Desktop Entry]
|
|
||||||
+Version=1.0
|
|
||||||
+Name=Firefox
|
|
||||||
+GenericName=Web Browser
|
|
||||||
+GenericName[ca]=Navegador web
|
|
||||||
+GenericName[cs]=Webový prohlížeč
|
|
||||||
+GenericName[es]=Navegador web
|
|
||||||
+GenericName[fa]=مرورگر اینترنتی
|
|
||||||
+GenericName[fi]=WWW-selain
|
|
||||||
+GenericName[fr]=Navigateur Web
|
|
||||||
+GenericName[hu]=Webböngésző
|
|
||||||
+GenericName[it]=Browser Web
|
|
||||||
+GenericName[ja]=ウェブ・ブラウザ
|
|
||||||
+GenericName[ko]=웹 브라우저
|
|
||||||
+GenericName[nb]=Nettleser
|
|
||||||
+GenericName[nl]=Webbrowser
|
|
||||||
+GenericName[nn]=Nettlesar
|
|
||||||
+GenericName[no]=Nettleser
|
|
||||||
+GenericName[pl]=Przeglądarka WWW
|
|
||||||
+GenericName[pt]=Navegador Web
|
|
||||||
+GenericName[pt_BR]=Navegador Web
|
|
||||||
+GenericName[sk]=Internetový prehliadač
|
|
||||||
+GenericName[sv]=Webbläsare
|
|
||||||
+Comment=Browse the Web
|
|
||||||
+Comment[ca]=Navegueu per el web
|
|
||||||
+Comment[cs]=Prohlížení stránek World Wide Webu
|
|
||||||
+Comment[de]=Im Internet surfen
|
|
||||||
+Comment[es]=Navegue por la web
|
|
||||||
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
|
||||||
+Comment[fi]=Selaa Internetin WWW-sivuja
|
|
||||||
+Comment[fr]=Navigue sur Internet
|
|
||||||
+Comment[hu]=A világháló böngészése
|
|
||||||
+Comment[it]=Esplora il web
|
|
||||||
+Comment[ja]=ウェブを閲覧します
|
|
||||||
+Comment[ko]=웹을 돌아 다닙니다
|
|
||||||
+Comment[nb]=Surf på nettet
|
|
||||||
+Comment[nl]=Verken het internet
|
|
||||||
+Comment[nn]=Surf på nettet
|
|
||||||
+Comment[no]=Surf på nettet
|
|
||||||
+Comment[pl]=Przeglądanie stron WWW
|
|
||||||
+Comment[pt]=Navegue na Internet
|
|
||||||
+Comment[pt_BR]=Navegue na Internet
|
|
||||||
+Comment[sk]=Prehliadanie internetu
|
|
||||||
+Comment[sv]=Surfa på webben
|
|
||||||
+Exec=firefox %u
|
|
||||||
+Icon=firefox
|
|
||||||
+Terminal=false
|
|
||||||
+Type=Application
|
|
||||||
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
|
||||||
+StartupNotify=true
|
|
||||||
+Categories=Network;WebBrowser;
|
|
||||||
+Keywords=web;browser;internet;
|
|
||||||
+Actions=new-window;new-private-window;
|
|
||||||
+DBusActivatable=true
|
|
||||||
+
|
|
||||||
+X-Desktop-File-Install-Version=0.24
|
|
||||||
+
|
|
||||||
+[Desktop Action new-window]
|
|
||||||
+Name=Open a New Window
|
|
||||||
+Name[ach]=Dirica manyen
|
|
||||||
+Name[af]=Nuwe venster
|
|
||||||
+Name[an]=Nueva finestra
|
|
||||||
+Name[ar]=نافذة جديدة
|
|
||||||
+Name[as]=নতুন উইন্ডো
|
|
||||||
+Name[ast]=Ventana nueva
|
|
||||||
+Name[az]=Yeni Pəncərə
|
|
||||||
+Name[be]=Новае акно
|
|
||||||
+Name[bg]=Нов прозорец
|
|
||||||
+Name[bn_BD]=নতুন উইন্ডো (N)
|
|
||||||
+Name[bn_IN]=নতুন উইন্ডো
|
|
||||||
+Name[br]=Prenestr nevez
|
|
||||||
+Name[brx]=गोदान उइन्ड'(N)
|
|
||||||
+Name[bs]=Novi prozor
|
|
||||||
+Name[ca]=Finestra nova
|
|
||||||
+Name[cak]=K'ak'a' tzuwäch
|
|
||||||
+Name[cs]=Nové okno
|
|
||||||
+Name[cy]=Ffenestr Newydd
|
|
||||||
+Name[da]=Nyt vindue
|
|
||||||
+Name[de]=Neues Fenster
|
|
||||||
+Name[dsb]=Nowe wokno
|
|
||||||
+Name[el]=Νέο παράθυρο
|
|
||||||
+Name[en_GB]=New Window
|
|
||||||
+Name[en_US]=New Window
|
|
||||||
+Name[en_ZA]=New Window
|
|
||||||
+Name[eo]=Nova fenestro
|
|
||||||
+Name[es_AR]=Nueva ventana
|
|
||||||
+Name[es_CL]=Nueva ventana
|
|
||||||
+Name[es_ES]=Nueva ventana
|
|
||||||
+Name[es_MX]=Nueva ventana
|
|
||||||
+Name[et]=Uus aken
|
|
||||||
+Name[eu]=Leiho berria
|
|
||||||
+Name[fa]=پنجره جدید
|
|
||||||
+Name[ff]=Henorde Hesere
|
|
||||||
+Name[fi]=Uusi ikkuna
|
|
||||||
+Name[fr]=Nouvelle fenêtre
|
|
||||||
+Name[fy_NL]=Nij finster
|
|
||||||
+Name[ga_IE]=Fuinneog Nua
|
|
||||||
+Name[gd]=Uinneag ùr
|
|
||||||
+Name[gl]=Nova xanela
|
|
||||||
+Name[gn]=Ovetã pyahu
|
|
||||||
+Name[gu_IN]=નવી વિન્ડો
|
|
||||||
+Name[he]=חלון חדש
|
|
||||||
+Name[hi_IN]=नया विंडो
|
|
||||||
+Name[hr]=Novi prozor
|
|
||||||
+Name[hsb]=Nowe wokno
|
|
||||||
+Name[hu]=Új ablak
|
|
||||||
+Name[hy_AM]=Նոր Պատուհան
|
|
||||||
+Name[id]=Jendela Baru
|
|
||||||
+Name[is]=Nýr gluggi
|
|
||||||
+Name[it]=Nuova finestra
|
|
||||||
+Name[ja]=新しいウィンドウ
|
|
||||||
+Name[ja_JP-mac]=新規ウインドウ
|
|
||||||
+Name[ka]=ახალი ფანჯარა
|
|
||||||
+Name[kk]=Жаңа терезе
|
|
||||||
+Name[km]=បង្អួចថ្មី
|
|
||||||
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
|
||||||
+Name[ko]=새 창
|
|
||||||
+Name[kok]=नवें जनेल
|
|
||||||
+Name[ks]=نئئ وِنڈو
|
|
||||||
+Name[lij]=Neuvo barcon
|
|
||||||
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
|
||||||
+Name[lt]=Naujas langas
|
|
||||||
+Name[ltg]=Jauns lūgs
|
|
||||||
+Name[lv]=Jauns logs
|
|
||||||
+Name[mai]=नव विंडो
|
|
||||||
+Name[mk]=Нов прозорец
|
|
||||||
+Name[ml]=പുതിയ ജാലകം
|
|
||||||
+Name[mr]=नवीन पटल
|
|
||||||
+Name[ms]=Tetingkap Baru
|
|
||||||
+Name[my]=ဝင်းဒိုးအသစ်
|
|
||||||
+Name[nb_NO]=Nytt vindu
|
|
||||||
+Name[ne_NP]=नयाँ सञ्झ्याल
|
|
||||||
+Name[nl]=Nieuw venster
|
|
||||||
+Name[nn_NO]=Nytt vindauge
|
|
||||||
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
|
||||||
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
|
||||||
+Name[pl]=Nowe okno
|
|
||||||
+Name[pt_BR]=Nova janela
|
|
||||||
+Name[pt_PT]=Nova janela
|
|
||||||
+Name[rm]=Nova fanestra
|
|
||||||
+Name[ro]=Fereastră nouă
|
|
||||||
+Name[ru]=Новое окно
|
|
||||||
+Name[sat]=नावा विंडो (N)
|
|
||||||
+Name[si]=නව කවුළුවක්
|
|
||||||
+Name[sk]=Nové okno
|
|
||||||
+Name[sl]=Novo okno
|
|
||||||
+Name[son]=Zanfun taaga
|
|
||||||
+Name[sq]=Dritare e Re
|
|
||||||
+Name[sr]=Нови прозор
|
|
||||||
+Name[sv_SE]=Nytt fönster
|
|
||||||
+Name[ta]=புதிய சாளரம்
|
|
||||||
+Name[te]=కొత్త విండో
|
|
||||||
+Name[th]=หน้าต่างใหม่
|
|
||||||
+Name[tr]=Yeni pencere
|
|
||||||
+Name[tsz]=Eraatarakua jimpani
|
|
||||||
+Name[uk]=Нове вікно
|
|
||||||
+Name[ur]=نیا دریچہ
|
|
||||||
+Name[uz]=Yangi oyna
|
|
||||||
+Name[vi]=Cửa sổ mới
|
|
||||||
+Name[wo]=Palanteer bu bees
|
|
||||||
+Name[xh]=Ifestile entsha
|
|
||||||
+Name[zh_CN]=新建窗口
|
|
||||||
+Name[zh_TW]=開新視窗
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+Exec=firefox --new-window %u
|
|
||||||
+
|
|
||||||
+[Desktop Action new-private-window]
|
|
||||||
+Name=Open a New Private Window
|
|
||||||
+Name[ach]=Dirica manyen me mung
|
|
||||||
+Name[af]=Nuwe privaatvenster
|
|
||||||
+Name[an]=Nueva finestra privada
|
|
||||||
+Name[ar]=نافذة خاصة جديدة
|
|
||||||
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
|
||||||
+Name[ast]=Ventana privada nueva
|
|
||||||
+Name[az]=Yeni Məxfi Pəncərə
|
|
||||||
+Name[be]=Новае акно адасаблення
|
|
||||||
+Name[bg]=Нов прозорец за поверително сърфиране
|
|
||||||
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
|
||||||
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
|
||||||
+Name[br]=Prenestr merdeiñ prevez nevez
|
|
||||||
+Name[brx]=गोदान प्राइभेट उइन्ड'
|
|
||||||
+Name[bs]=Novi privatni prozor
|
|
||||||
+Name[ca]=Finestra privada nova
|
|
||||||
+Name[cak]=K'ak'a' ichinan tzuwäch
|
|
||||||
+Name[cs]=Nové anonymní okno
|
|
||||||
+Name[cy]=Ffenestr Breifat Newydd
|
|
||||||
+Name[da]=Nyt privat vindue
|
|
||||||
+Name[de]=Neues privates Fenster
|
|
||||||
+Name[dsb]=Nowe priwatne wokno
|
|
||||||
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
|
||||||
+Name[en_GB]=New Private Window
|
|
||||||
+Name[en_US]=New Private Window
|
|
||||||
+Name[en_ZA]=New Private Window
|
|
||||||
+Name[eo]=Nova privata fenestro
|
|
||||||
+Name[es_AR]=Nueva ventana privada
|
|
||||||
+Name[es_CL]=Nueva ventana privada
|
|
||||||
+Name[es_ES]=Nueva ventana privada
|
|
||||||
+Name[es_MX]=Nueva ventana privada
|
|
||||||
+Name[et]=Uus privaatne aken
|
|
||||||
+Name[eu]=Leiho pribatu berria
|
|
||||||
+Name[fa]=پنجره ناشناس جدید
|
|
||||||
+Name[ff]=Henorde Suturo Hesere
|
|
||||||
+Name[fi]=Uusi yksityinen ikkuna
|
|
||||||
+Name[fr]=Nouvelle fenêtre de navigation privée
|
|
||||||
+Name[fy_NL]=Nij priveefinster
|
|
||||||
+Name[ga_IE]=Fuinneog Nua Phríobháideach
|
|
||||||
+Name[gd]=Uinneag phrìobhaideach ùr
|
|
||||||
+Name[gl]=Nova xanela privada
|
|
||||||
+Name[gn]=Ovetã ñemi pyahu
|
|
||||||
+Name[gu_IN]=નવી ખાનગી વિન્ડો
|
|
||||||
+Name[he]=חלון פרטי חדש
|
|
||||||
+Name[hi_IN]=नयी निजी विंडो
|
|
||||||
+Name[hr]=Novi privatni prozor
|
|
||||||
+Name[hsb]=Nowe priwatne wokno
|
|
||||||
+Name[hu]=Új privát ablak
|
|
||||||
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
|
||||||
+Name[id]=Jendela Mode Pribadi Baru
|
|
||||||
+Name[is]=Nýr huliðsgluggi
|
|
||||||
+Name[it]=Nuova finestra anonima
|
|
||||||
+Name[ja]=新しいプライベートウィンドウ
|
|
||||||
+Name[ja_JP-mac]=新規プライベートウインドウ
|
|
||||||
+Name[ka]=ახალი პირადი ფანჯარა
|
|
||||||
+Name[kk]=Жаңа жекелік терезе
|
|
||||||
+Name[km]=បង្អួចឯកជនថ្មី
|
|
||||||
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
|
||||||
+Name[ko]=새 사생활 보호 모드
|
|
||||||
+Name[kok]=नवो खाजगी विंडो
|
|
||||||
+Name[ks]=نْو پرایوٹ وینڈو&
|
|
||||||
+Name[lij]=Neuvo barcon privou
|
|
||||||
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
|
||||||
+Name[lt]=Naujas privataus naršymo langas
|
|
||||||
+Name[ltg]=Jauns privatais lūgs
|
|
||||||
+Name[lv]=Jauns privātais logs
|
|
||||||
+Name[mai]=नया निज विंडो (W)
|
|
||||||
+Name[mk]=Нов приватен прозорец
|
|
||||||
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
|
||||||
+Name[mr]=नवीन वैयक्तिक पटल
|
|
||||||
+Name[ms]=Tetingkap Persendirian Baharu
|
|
||||||
+Name[my]=New Private Window
|
|
||||||
+Name[nb_NO]=Nytt privat vindu
|
|
||||||
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
|
||||||
+Name[nl]=Nieuw privévenster
|
|
||||||
+Name[nn_NO]=Nytt privat vindauge
|
|
||||||
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
|
||||||
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
|
||||||
+Name[pl]=Nowe okno prywatne
|
|
||||||
+Name[pt_BR]=Nova janela privativa
|
|
||||||
+Name[pt_PT]=Nova janela privada
|
|
||||||
+Name[rm]=Nova fanestra privata
|
|
||||||
+Name[ro]=Fereastră privată nouă
|
|
||||||
+Name[ru]=Новое приватное окно
|
|
||||||
+Name[sat]=नावा निजेराक् विंडो (W )
|
|
||||||
+Name[si]=නව පුද්ගලික කවුළුව (W)
|
|
||||||
+Name[sk]=Nové okno v režime Súkromné prehliadanie
|
|
||||||
+Name[sl]=Novo zasebno okno
|
|
||||||
+Name[son]=Sutura zanfun taaga
|
|
||||||
+Name[sq]=Dritare e Re Private
|
|
||||||
+Name[sr]=Нови приватан прозор
|
|
||||||
+Name[sv_SE]=Nytt privat fönster
|
|
||||||
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
|
||||||
+Name[te]=కొత్త ఆంతరంగిక విండో
|
|
||||||
+Name[th]=หน้าต่างส่วนตัวใหม่
|
|
||||||
+Name[tr]=Yeni gizli pencere
|
|
||||||
+Name[tsz]=Juchiiti eraatarakua jimpani
|
|
||||||
+Name[uk]=Приватне вікно
|
|
||||||
+Name[ur]=نیا نجی دریچہ
|
|
||||||
+Name[uz]=Yangi maxfiy oyna
|
|
||||||
+Name[vi]=Cửa sổ riêng tư mới
|
|
||||||
+Name[wo]=Panlanteeru biir bu bees
|
|
||||||
+Name[xh]=Ifestile yangasese entsha
|
|
||||||
+Name[zh_CN]=新建隐私浏览窗口
|
|
||||||
+Name[zh_TW]=新增隱私視窗
|
|
||||||
+Exec=firefox --private-window %u
|
|
||||||
diff --git a/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop b/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..21c3e7aec0f4
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop
|
|
||||||
@@ -0,0 +1,386 @@
|
|
||||||
+[Desktop Entry]
|
|
||||||
+Version=1.0
|
|
||||||
+Name=Firefox Web Browser
|
|
||||||
+Name[ar]=متصفح الويب فَيَرفُكْس
|
|
||||||
+Name[ast]=Restolador web Firefox
|
|
||||||
+Name[bn]=ফায়ারফক্স ওয়েব ব্রাউজার
|
|
||||||
+Name[ca]=Navegador web Firefox
|
|
||||||
+Name[cs]=Firefox Webový prohlížeč
|
|
||||||
+Name[da]=Firefox - internetbrowser
|
|
||||||
+Name[el]=Περιηγητής Firefox
|
|
||||||
+Name[es]=Navegador web Firefox
|
|
||||||
+Name[et]=Firefoxi veebibrauser
|
|
||||||
+Name[fa]=مرورگر اینترنتی Firefox
|
|
||||||
+Name[fi]=Firefox-selain
|
|
||||||
+Name[fr]=Navigateur Web Firefox
|
|
||||||
+Name[gl]=Navegador web Firefox
|
|
||||||
+Name[he]=דפדפן האינטרנט Firefox
|
|
||||||
+Name[hr]=Firefox web preglednik
|
|
||||||
+Name[hu]=Firefox webböngésző
|
|
||||||
+Name[it]=Firefox Browser Web
|
|
||||||
+Name[ja]=Firefox ウェブ・ブラウザ
|
|
||||||
+Name[ko]=Firefox 웹 브라우저
|
|
||||||
+Name[ku]=Geroka torê Firefox
|
|
||||||
+Name[lt]=Firefox interneto naršyklė
|
|
||||||
+Name[nb]=Firefox Nettleser
|
|
||||||
+Name[nl]=Firefox webbrowser
|
|
||||||
+Name[nn]=Firefox Nettlesar
|
|
||||||
+Name[no]=Firefox Nettleser
|
|
||||||
+Name[pl]=Przeglądarka WWW Firefox
|
|
||||||
+Name[pt]=Firefox Navegador Web
|
|
||||||
+Name[pt_BR]=Navegador Web Firefox
|
|
||||||
+Name[ro]=Firefox – Navigator Internet
|
|
||||||
+Name[ru]=Веб-браузер Firefox
|
|
||||||
+Name[sk]=Firefox - internetový prehliadač
|
|
||||||
+Name[sl]=Firefox spletni brskalnik
|
|
||||||
+Name[sv]=Firefox webbläsare
|
|
||||||
+Name[tr]=Firefox Web Tarayıcısı
|
|
||||||
+Name[ug]=Firefox توركۆرگۈ
|
|
||||||
+Name[uk]=Веб-браузер Firefox
|
|
||||||
+Name[vi]=Trình duyệt web Firefox
|
|
||||||
+Name[zh_CN]=Firefox 网络浏览器
|
|
||||||
+Name[zh_TW]=Firefox 網路瀏覽器
|
|
||||||
+Comment=Browse the World Wide Web
|
|
||||||
+Comment[ar]=تصفح الشبكة العنكبوتية العالمية
|
|
||||||
+Comment[ast]=Restola pela Rede
|
|
||||||
+Comment[bn]=ইন্টারনেট ব্রাউজ করুন
|
|
||||||
+Comment[ca]=Navegueu per la web
|
|
||||||
+Comment[cs]=Prohlížení stránek World Wide Webu
|
|
||||||
+Comment[da]=Surf på internettet
|
|
||||||
+Comment[de]=Im Internet surfen
|
|
||||||
+Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
|
|
||||||
+Comment[es]=Navegue por la web
|
|
||||||
+Comment[et]=Lehitse veebi
|
|
||||||
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
|
||||||
+Comment[fi]=Selaa Internetin WWW-sivuja
|
|
||||||
+Comment[fr]=Naviguer sur le Web
|
|
||||||
+Comment[gl]=Navegar pola rede
|
|
||||||
+Comment[he]=גלישה ברחבי האינטרנט
|
|
||||||
+Comment[hr]=Pretražite web
|
|
||||||
+Comment[hu]=A világháló böngészése
|
|
||||||
+Comment[it]=Esplora il web
|
|
||||||
+Comment[ja]=ウェブを閲覧します
|
|
||||||
+Comment[ko]=웹을 돌아 다닙니다
|
|
||||||
+Comment[ku]=Li torê bigere
|
|
||||||
+Comment[lt]=Naršykite internete
|
|
||||||
+Comment[nb]=Surf på nettet
|
|
||||||
+Comment[nl]=Verken het internet
|
|
||||||
+Comment[nn]=Surf på nettet
|
|
||||||
+Comment[no]=Surf på nettet
|
|
||||||
+Comment[pl]=Przeglądanie stron WWW
|
|
||||||
+Comment[pt]=Navegue na Internet
|
|
||||||
+Comment[pt_BR]=Navegue na Internet
|
|
||||||
+Comment[ro]=Navigați pe Internet
|
|
||||||
+Comment[ru]=Доступ в Интернет
|
|
||||||
+Comment[sk]=Prehliadanie internetu
|
|
||||||
+Comment[sl]=Brskajte po spletu
|
|
||||||
+Comment[sv]=Surfa på webben
|
|
||||||
+Comment[tr]=İnternet'te Gezinin
|
|
||||||
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
|
|
||||||
+Comment[uk]=Перегляд сторінок Інтернету
|
|
||||||
+Comment[vi]=Để duyệt các trang web
|
|
||||||
+Comment[zh_CN]=浏览互联网
|
|
||||||
+Comment[zh_TW]=瀏覽網際網路
|
|
||||||
+GenericName=Web Browser
|
|
||||||
+GenericName[ar]=متصفح ويب
|
|
||||||
+GenericName[ast]=Restolador Web
|
|
||||||
+GenericName[bn]=ওয়েব ব্রাউজার
|
|
||||||
+GenericName[ca]=Navegador web
|
|
||||||
+GenericName[cs]=Webový prohlížeč
|
|
||||||
+GenericName[da]=Webbrowser
|
|
||||||
+GenericName[el]=Περιηγητής διαδικτύου
|
|
||||||
+GenericName[es]=Navegador web
|
|
||||||
+GenericName[et]=Veebibrauser
|
|
||||||
+GenericName[fa]=مرورگر اینترنتی
|
|
||||||
+GenericName[fi]=WWW-selain
|
|
||||||
+GenericName[fr]=Navigateur Web
|
|
||||||
+GenericName[gl]=Navegador Web
|
|
||||||
+GenericName[he]=דפדפן אינטרנט
|
|
||||||
+GenericName[hr]=Web preglednik
|
|
||||||
+GenericName[hu]=Webböngésző
|
|
||||||
+GenericName[it]=Browser web
|
|
||||||
+GenericName[ja]=ウェブ・ブラウザ
|
|
||||||
+GenericName[ko]=웹 브라우저
|
|
||||||
+GenericName[ku]=Geroka torê
|
|
||||||
+GenericName[lt]=Interneto naršyklė
|
|
||||||
+GenericName[nb]=Nettleser
|
|
||||||
+GenericName[nl]=Webbrowser
|
|
||||||
+GenericName[nn]=Nettlesar
|
|
||||||
+GenericName[no]=Nettleser
|
|
||||||
+GenericName[pl]=Przeglądarka WWW
|
|
||||||
+GenericName[pt]=Navegador Web
|
|
||||||
+GenericName[pt_BR]=Navegador Web
|
|
||||||
+GenericName[ro]=Navigator Internet
|
|
||||||
+GenericName[ru]=Веб-браузер
|
|
||||||
+GenericName[sk]=Internetový prehliadač
|
|
||||||
+GenericName[sl]=Spletni brskalnik
|
|
||||||
+GenericName[sv]=Webbläsare
|
|
||||||
+GenericName[tr]=Web Tarayıcı
|
|
||||||
+GenericName[ug]=توركۆرگۈ
|
|
||||||
+GenericName[uk]=Веб-браузер
|
|
||||||
+GenericName[vi]=Trình duyệt Web
|
|
||||||
+GenericName[zh_CN]=网络浏览器
|
|
||||||
+GenericName[zh_TW]=網路瀏覽器
|
|
||||||
+Keywords=Internet;WWW;Browser;Web;Explorer
|
|
||||||
+Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب
|
|
||||||
+Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
|
|
||||||
+Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
|
|
||||||
+Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer
|
|
||||||
+Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
|
|
||||||
+Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
|
|
||||||
+Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;Firefox;Φιρεφοχ;Ιντερνετ
|
|
||||||
+Keywords[es]=Explorador;Internet;WWW
|
|
||||||
+Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
|
|
||||||
+Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
|
|
||||||
+Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
|
|
||||||
+Keywords[hr]=Internet;WWW;preglednik;Web
|
|
||||||
+Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
|
|
||||||
+Keywords[it]=Internet;WWW;Browser;Web;Navigatore
|
|
||||||
+Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
|
|
||||||
+Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ
|
|
||||||
+Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
|
|
||||||
+Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
|
|
||||||
+Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
|
|
||||||
+Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
|
|
||||||
+Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис
|
|
||||||
+Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer
|
|
||||||
+Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
|
|
||||||
+Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
|
|
||||||
+Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд
|
|
||||||
+Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web
|
|
||||||
+Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;Firefox;ff;互联网;网站;
|
|
||||||
+Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐
|
|
||||||
+Exec=firefox %u
|
|
||||||
+Icon=org.mozilla.firefox
|
|
||||||
+Terminal=false
|
|
||||||
+Type=Application
|
|
||||||
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
|
||||||
+StartupNotify=true
|
|
||||||
+Categories=Network;WebBrowser;
|
|
||||||
+Actions=new-window;new-private-window;profile-manager-window;
|
|
||||||
+StartupWMClass=firefox
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+[Desktop Action new-window]
|
|
||||||
+Name=Open a New Window
|
|
||||||
+Name[ach]=Dirica manyen
|
|
||||||
+Name[af]=Nuwe venster
|
|
||||||
+Name[an]=Nueva finestra
|
|
||||||
+Name[ar]=نافذة جديدة
|
|
||||||
+Name[as]=নতুন উইন্ডো
|
|
||||||
+Name[ast]=Ventana nueva
|
|
||||||
+Name[az]=Yeni Pəncərə
|
|
||||||
+Name[be]=Новае акно
|
|
||||||
+Name[bg]=Нов прозорец
|
|
||||||
+Name[bn_BD]=নতুন উইন্ডো (N)
|
|
||||||
+Name[bn_IN]=নতুন উইন্ডো
|
|
||||||
+Name[br]=Prenestr nevez
|
|
||||||
+Name[brx]=गोदान उइन्ड'(N)
|
|
||||||
+Name[bs]=Novi prozor
|
|
||||||
+Name[ca]=Finestra nova
|
|
||||||
+Name[cak]=K'ak'a' tzuwäch
|
|
||||||
+Name[cs]=Nové okno
|
|
||||||
+Name[cy]=Ffenestr Newydd
|
|
||||||
+Name[da]=Nyt vindue
|
|
||||||
+Name[de]=Neues Fenster
|
|
||||||
+Name[dsb]=Nowe wokno
|
|
||||||
+Name[el]=Νέο παράθυρο
|
|
||||||
+Name[en_GB]=New Window
|
|
||||||
+Name[en_US]=New Window
|
|
||||||
+Name[en_ZA]=New Window
|
|
||||||
+Name[eo]=Nova fenestro
|
|
||||||
+Name[es_AR]=Nueva ventana
|
|
||||||
+Name[es_CL]=Nueva ventana
|
|
||||||
+Name[es_ES]=Nueva ventana
|
|
||||||
+Name[es_MX]=Nueva ventana
|
|
||||||
+Name[et]=Uus aken
|
|
||||||
+Name[eu]=Leiho berria
|
|
||||||
+Name[fa]=پنجره جدید
|
|
||||||
+Name[ff]=Henorde Hesere
|
|
||||||
+Name[fi]=Uusi ikkuna
|
|
||||||
+Name[fr]=Nouvelle fenêtre
|
|
||||||
+Name[fy_NL]=Nij finster
|
|
||||||
+Name[ga_IE]=Fuinneog Nua
|
|
||||||
+Name[gd]=Uinneag ùr
|
|
||||||
+Name[gl]=Nova xanela
|
|
||||||
+Name[gn]=Ovetã pyahu
|
|
||||||
+Name[gu_IN]=નવી વિન્ડો
|
|
||||||
+Name[he]=חלון חדש
|
|
||||||
+Name[hi_IN]=नया विंडो
|
|
||||||
+Name[hr]=Novi prozor
|
|
||||||
+Name[hsb]=Nowe wokno
|
|
||||||
+Name[hu]=Új ablak
|
|
||||||
+Name[hy_AM]=Նոր Պատուհան
|
|
||||||
+Name[id]=Jendela Baru
|
|
||||||
+Name[is]=Nýr gluggi
|
|
||||||
+Name[it]=Nuova finestra
|
|
||||||
+Name[ja]=新しいウィンドウ
|
|
||||||
+Name[ja_JP]=新規ウインドウ
|
|
||||||
+Name[ka]=ახალი ფანჯარა
|
|
||||||
+Name[kk]=Жаңа терезе
|
|
||||||
+Name[km]=បង្អួចថ្មី
|
|
||||||
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
|
||||||
+Name[ko]=새 창
|
|
||||||
+Name[kok]=नवें जनेल
|
|
||||||
+Name[ks]=نئئ وِنڈو
|
|
||||||
+Name[lij]=Neuvo barcon
|
|
||||||
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
|
||||||
+Name[lt]=Naujas langas
|
|
||||||
+Name[ltg]=Jauns lūgs
|
|
||||||
+Name[lv]=Jauns logs
|
|
||||||
+Name[mai]=नव विंडो
|
|
||||||
+Name[mk]=Нов прозорец
|
|
||||||
+Name[ml]=പുതിയ ജാലകം
|
|
||||||
+Name[mr]=नवीन पटल
|
|
||||||
+Name[ms]=Tetingkap Baru
|
|
||||||
+Name[my]=ဝင်းဒိုးအသစ်
|
|
||||||
+Name[nb_NO]=Nytt vindu
|
|
||||||
+Name[ne_NP]=नयाँ सञ्झ्याल
|
|
||||||
+Name[nl]=Nieuw venster
|
|
||||||
+Name[nn_NO]=Nytt vindauge
|
|
||||||
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
|
||||||
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
|
||||||
+Name[pl]=Nowe okno
|
|
||||||
+Name[pt_BR]=Nova janela
|
|
||||||
+Name[pt_PT]=Nova janela
|
|
||||||
+Name[rm]=Nova fanestra
|
|
||||||
+Name[ro]=Fereastră nouă
|
|
||||||
+Name[ru]=Новое окно
|
|
||||||
+Name[sat]=नावा विंडो (N)
|
|
||||||
+Name[si]=නව කවුළුවක්
|
|
||||||
+Name[sk]=Nové okno
|
|
||||||
+Name[sl]=Novo okno
|
|
||||||
+Name[son]=Zanfun taaga
|
|
||||||
+Name[sq]=Dritare e Re
|
|
||||||
+Name[sr]=Нови прозор
|
|
||||||
+Name[sv_SE]=Nytt fönster
|
|
||||||
+Name[ta]=புதிய சாளரம்
|
|
||||||
+Name[te]=కొత్త విండో
|
|
||||||
+Name[th]=หน้าต่างใหม่
|
|
||||||
+Name[tr]=Yeni pencere
|
|
||||||
+Name[tsz]=Eraatarakua jimpani
|
|
||||||
+Name[uk]=Нове вікно
|
|
||||||
+Name[ur]=نیا دریچہ
|
|
||||||
+Name[uz]=Yangi oyna
|
|
||||||
+Name[vi]=Cửa sổ mới
|
|
||||||
+Name[wo]=Palanteer bu bees
|
|
||||||
+Name[xh]=Ifestile entsha
|
|
||||||
+Name[zh_CN]=新建窗口
|
|
||||||
+Name[zh_TW]=開新視窗
|
|
||||||
+Exec=firefox --new-window %u
|
|
||||||
+
|
|
||||||
+[Desktop Action new-private-window]
|
|
||||||
+Name=Open a New Private Window
|
|
||||||
+Name[ach]=Dirica manyen me mung
|
|
||||||
+Name[af]=Nuwe privaatvenster
|
|
||||||
+Name[an]=Nueva finestra privada
|
|
||||||
+Name[ar]=نافذة خاصة جديدة
|
|
||||||
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
|
||||||
+Name[ast]=Ventana privada nueva
|
|
||||||
+Name[az]=Yeni Məxfi Pəncərə
|
|
||||||
+Name[be]=Новае акно адасаблення
|
|
||||||
+Name[bg]=Нов прозорец за поверително сърфиране
|
|
||||||
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
|
||||||
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
|
||||||
+Name[br]=Prenestr merdeiñ prevez nevez
|
|
||||||
+Name[brx]=गोदान प्राइभेट उइन्ड'
|
|
||||||
+Name[bs]=Novi privatni prozor
|
|
||||||
+Name[ca]=Finestra privada nova
|
|
||||||
+Name[cak]=K'ak'a' ichinan tzuwäch
|
|
||||||
+Name[cs]=Nové anonymní okno
|
|
||||||
+Name[cy]=Ffenestr Breifat Newydd
|
|
||||||
+Name[da]=Nyt privat vindue
|
|
||||||
+Name[de]=Neues privates Fenster
|
|
||||||
+Name[dsb]=Nowe priwatne wokno
|
|
||||||
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
|
||||||
+Name[en_GB]=New Private Window
|
|
||||||
+Name[en_US]=New Private Window
|
|
||||||
+Name[en_ZA]=New Private Window
|
|
||||||
+Name[eo]=Nova privata fenestro
|
|
||||||
+Name[es_AR]=Nueva ventana privada
|
|
||||||
+Name[es_CL]=Nueva ventana privada
|
|
||||||
+Name[es_ES]=Nueva ventana privada
|
|
||||||
+Name[es_MX]=Nueva ventana privada
|
|
||||||
+Name[et]=Uus privaatne aken
|
|
||||||
+Name[eu]=Leiho pribatu berria
|
|
||||||
+Name[fa]=پنجره ناشناس جدید
|
|
||||||
+Name[ff]=Henorde Suturo Hesere
|
|
||||||
+Name[fi]=Uusi yksityinen ikkuna
|
|
||||||
+Name[fr]=Nouvelle fenêtre de navigation privée
|
|
||||||
+Name[fy_NL]=Nij priveefinster
|
|
||||||
+Name[ga_IE]=Fuinneog Nua Phríobháideach
|
|
||||||
+Name[gd]=Uinneag phrìobhaideach ùr
|
|
||||||
+Name[gl]=Nova xanela privada
|
|
||||||
+Name[gn]=Ovetã ñemi pyahu
|
|
||||||
+Name[gu_IN]=નવી ખાનગી વિન્ડો
|
|
||||||
+Name[he]=חלון פרטי חדש
|
|
||||||
+Name[hi_IN]=नयी निजी विंडो
|
|
||||||
+Name[hr]=Novi privatni prozor
|
|
||||||
+Name[hsb]=Nowe priwatne wokno
|
|
||||||
+Name[hu]=Új privát ablak
|
|
||||||
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
|
||||||
+Name[id]=Jendela Mode Pribadi Baru
|
|
||||||
+Name[is]=Nýr huliðsgluggi
|
|
||||||
+Name[it]=Nuova finestra anonima
|
|
||||||
+Name[ja]=新しいプライベートウィンドウ
|
|
||||||
+Name[ja_JP]=新規プライベートウインドウ
|
|
||||||
+Name[ka]=ახალი პირადი ფანჯარა
|
|
||||||
+Name[kk]=Жаңа жекелік терезе
|
|
||||||
+Name[km]=បង្អួចឯកជនថ្មី
|
|
||||||
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
|
||||||
+Name[ko]=새 사생활 보호 모드
|
|
||||||
+Name[kok]=नवो खाजगी विंडो
|
|
||||||
+Name[ks]=نْو پرایوٹ وینڈو&
|
|
||||||
+Name[lij]=Neuvo barcon privou
|
|
||||||
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
|
||||||
+Name[lt]=Naujas privataus naršymo langas
|
|
||||||
+Name[ltg]=Jauns privatais lūgs
|
|
||||||
+Name[lv]=Jauns privātais logs
|
|
||||||
+Name[mai]=नया निज विंडो (W)
|
|
||||||
+Name[mk]=Нов приватен прозорец
|
|
||||||
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
|
||||||
+Name[mr]=नवीन वैयक्तिक पटल
|
|
||||||
+Name[ms]=Tetingkap Persendirian Baharu
|
|
||||||
+Name[my]=New Private Window
|
|
||||||
+Name[nb_NO]=Nytt privat vindu
|
|
||||||
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
|
||||||
+Name[nl]=Nieuw privévenster
|
|
||||||
+Name[nn_NO]=Nytt privat vindauge
|
|
||||||
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
|
||||||
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
|
||||||
+Name[pl]=Nowe okno prywatne
|
|
||||||
+Name[pt_BR]=Nova janela privativa
|
|
||||||
+Name[pt_PT]=Nova janela privada
|
|
||||||
+Name[rm]=Nova fanestra privata
|
|
||||||
+Name[ro]=Fereastră privată nouă
|
|
||||||
+Name[ru]=Новое приватное окно
|
|
||||||
+Name[sat]=नावा निजेराक् विंडो (W )
|
|
||||||
+Name[si]=නව පුද්ගලික කවුළුව (W)
|
|
||||||
+Name[sk]=Nové okno v režime Súkromné prehliadanie
|
|
||||||
+Name[sl]=Novo zasebno okno
|
|
||||||
+Name[son]=Sutura zanfun taaga
|
|
||||||
+Name[sq]=Dritare e Re Private
|
|
||||||
+Name[sr]=Нови приватан прозор
|
|
||||||
+Name[sv_SE]=Nytt privat fönster
|
|
||||||
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
|
||||||
+Name[te]=కొత్త ఆంతరంగిక విండో
|
|
||||||
+Name[th]=หน้าต่างส่วนตัวใหม่
|
|
||||||
+Name[tr]=Yeni gizli pencere
|
|
||||||
+Name[tsz]=Juchiiti eraatarakua jimpani
|
|
||||||
+Name[uk]=Приватне вікно
|
|
||||||
+Name[ur]=نیا نجی دریچہ
|
|
||||||
+Name[uz]=Yangi maxfiy oyna
|
|
||||||
+Name[vi]=Cửa sổ riêng tư mới
|
|
||||||
+Name[wo]=Panlanteeru biir bu bees
|
|
||||||
+Name[xh]=Ifestile yangasese entsha
|
|
||||||
+Name[zh_CN]=新建隐私浏览窗口
|
|
||||||
+Name[zh_TW]=新增隱私視窗
|
|
||||||
+Exec=firefox --private-window %u
|
|
||||||
+
|
|
||||||
+[Desktop Action profile-manager-window]
|
|
||||||
+Name=Open the Profile Manager
|
|
||||||
+Name[cs]=Správa profilů
|
|
||||||
+Name[de]=Profilverwaltung öffnen
|
|
||||||
+Name[es]=Abrir el Gestor de Perfiles
|
|
||||||
+Name[fr]=Ouvrir le gestionnaire de profils
|
|
||||||
+Exec=firefox --ProfileManager
|
|
||||||
diff --git a/taskcluster/docker/firefox-snap/firefox.desktop b/taskcluster/docker/firefox-snap/firefox.desktop
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..73e36e8d83de
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/taskcluster/docker/firefox-snap/firefox.desktop
|
|
||||||
@@ -0,0 +1,219 @@
|
|
||||||
+[Desktop Entry]
|
|
||||||
+Version=1.0
|
|
||||||
+Name=Firefox Web Browser
|
|
||||||
+Name[ar]=متصفح الويب فَيَرفُكْس
|
|
||||||
+Name[ast]=Restolador web Firefox
|
|
||||||
+Name[bn]=ফায়ারফক্স ওয়েব ব্রাউজার
|
|
||||||
+Name[ca]=Navegador web Firefox
|
|
||||||
+Name[cs]=Firefox Webový prohlížeč
|
|
||||||
+Name[da]=Firefox - internetbrowser
|
|
||||||
+Name[el]=Περιηγητής Firefox
|
|
||||||
+Name[es]=Navegador web Firefox
|
|
||||||
+Name[et]=Firefoxi veebibrauser
|
|
||||||
+Name[fa]=مرورگر اینترنتی Firefox
|
|
||||||
+Name[fi]=Firefox-selain
|
|
||||||
+Name[fr]=Navigateur Web Firefox
|
|
||||||
+Name[gl]=Navegador web Firefox
|
|
||||||
+Name[he]=דפדפן האינטרנט Firefox
|
|
||||||
+Name[hr]=Firefox web preglednik
|
|
||||||
+Name[hu]=Firefox webböngésző
|
|
||||||
+Name[it]=Firefox Browser Web
|
|
||||||
+Name[ja]=Firefox ウェブ・ブラウザ
|
|
||||||
+Name[ko]=Firefox 웹 브라우저
|
|
||||||
+Name[ku]=Geroka torê Firefox
|
|
||||||
+Name[lt]=Firefox interneto naršyklė
|
|
||||||
+Name[nb]=Firefox Nettleser
|
|
||||||
+Name[nl]=Firefox webbrowser
|
|
||||||
+Name[nn]=Firefox Nettlesar
|
|
||||||
+Name[no]=Firefox Nettleser
|
|
||||||
+Name[pl]=Przeglądarka WWW Firefox
|
|
||||||
+Name[pt]=Firefox Navegador Web
|
|
||||||
+Name[pt_BR]=Navegador Web Firefox
|
|
||||||
+Name[ro]=Firefox – Navigator Internet
|
|
||||||
+Name[ru]=Веб-браузер Firefox
|
|
||||||
+Name[sk]=Firefox - internetový prehliadač
|
|
||||||
+Name[sl]=Firefox spletni brskalnik
|
|
||||||
+Name[sv]=Firefox webbläsare
|
|
||||||
+Name[tr]=Firefox Web Tarayıcısı
|
|
||||||
+Name[ug]=Firefox توركۆرگۈ
|
|
||||||
+Name[uk]=Веб-браузер Firefox
|
|
||||||
+Name[vi]=Trình duyệt web Firefox
|
|
||||||
+Name[zh_CN]=Firefox 网络浏览器
|
|
||||||
+Name[zh_TW]=Firefox 網路瀏覽器
|
|
||||||
+Comment=Browse the World Wide Web
|
|
||||||
+Comment[ar]=تصفح الشبكة العنكبوتية العالمية
|
|
||||||
+Comment[ast]=Restola pela Rede
|
|
||||||
+Comment[bn]=ইন্টারনেট ব্রাউজ করুন
|
|
||||||
+Comment[ca]=Navegueu per la web
|
|
||||||
+Comment[cs]=Prohlížení stránek World Wide Webu
|
|
||||||
+Comment[da]=Surf på internettet
|
|
||||||
+Comment[de]=Im Internet surfen
|
|
||||||
+Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
|
|
||||||
+Comment[es]=Navegue por la web
|
|
||||||
+Comment[et]=Lehitse veebi
|
|
||||||
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
|
||||||
+Comment[fi]=Selaa Internetin WWW-sivuja
|
|
||||||
+Comment[fr]=Naviguer sur le Web
|
|
||||||
+Comment[gl]=Navegar pola rede
|
|
||||||
+Comment[he]=גלישה ברחבי האינטרנט
|
|
||||||
+Comment[hr]=Pretražite web
|
|
||||||
+Comment[hu]=A világháló böngészése
|
|
||||||
+Comment[it]=Esplora il web
|
|
||||||
+Comment[ja]=ウェブを閲覧します
|
|
||||||
+Comment[ko]=웹을 돌아 다닙니다
|
|
||||||
+Comment[ku]=Li torê bigere
|
|
||||||
+Comment[lt]=Naršykite internete
|
|
||||||
+Comment[nb]=Surf på nettet
|
|
||||||
+Comment[nl]=Verken het internet
|
|
||||||
+Comment[nn]=Surf på nettet
|
|
||||||
+Comment[no]=Surf på nettet
|
|
||||||
+Comment[pl]=Przeglądanie stron WWW
|
|
||||||
+Comment[pt]=Navegue na Internet
|
|
||||||
+Comment[pt_BR]=Navegue na Internet
|
|
||||||
+Comment[ro]=Navigați pe Internet
|
|
||||||
+Comment[ru]=Доступ в Интернет
|
|
||||||
+Comment[sk]=Prehliadanie internetu
|
|
||||||
+Comment[sl]=Brskajte po spletu
|
|
||||||
+Comment[sv]=Surfa på webben
|
|
||||||
+Comment[tr]=İnternet'te Gezinin
|
|
||||||
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
|
|
||||||
+Comment[uk]=Перегляд сторінок Інтернету
|
|
||||||
+Comment[vi]=Để duyệt các trang web
|
|
||||||
+Comment[zh_CN]=浏览互联网
|
|
||||||
+Comment[zh_TW]=瀏覽網際網路
|
|
||||||
+GenericName=Web Browser
|
|
||||||
+GenericName[ar]=متصفح ويب
|
|
||||||
+GenericName[ast]=Restolador Web
|
|
||||||
+GenericName[bn]=ওয়েব ব্রাউজার
|
|
||||||
+GenericName[ca]=Navegador web
|
|
||||||
+GenericName[cs]=Webový prohlížeč
|
|
||||||
+GenericName[da]=Webbrowser
|
|
||||||
+GenericName[el]=Περιηγητής διαδικτύου
|
|
||||||
+GenericName[es]=Navegador web
|
|
||||||
+GenericName[et]=Veebibrauser
|
|
||||||
+GenericName[fa]=مرورگر اینترنتی
|
|
||||||
+GenericName[fi]=WWW-selain
|
|
||||||
+GenericName[fr]=Navigateur Web
|
|
||||||
+GenericName[gl]=Navegador Web
|
|
||||||
+GenericName[he]=דפדפן אינטרנט
|
|
||||||
+GenericName[hr]=Web preglednik
|
|
||||||
+GenericName[hu]=Webböngésző
|
|
||||||
+GenericName[it]=Browser web
|
|
||||||
+GenericName[ja]=ウェブ・ブラウザ
|
|
||||||
+GenericName[ko]=웹 브라우저
|
|
||||||
+GenericName[ku]=Geroka torê
|
|
||||||
+GenericName[lt]=Interneto naršyklė
|
|
||||||
+GenericName[nb]=Nettleser
|
|
||||||
+GenericName[nl]=Webbrowser
|
|
||||||
+GenericName[nn]=Nettlesar
|
|
||||||
+GenericName[no]=Nettleser
|
|
||||||
+GenericName[pl]=Przeglądarka WWW
|
|
||||||
+GenericName[pt]=Navegador Web
|
|
||||||
+GenericName[pt_BR]=Navegador Web
|
|
||||||
+GenericName[ro]=Navigator Internet
|
|
||||||
+GenericName[ru]=Веб-браузер
|
|
||||||
+GenericName[sk]=Internetový prehliadač
|
|
||||||
+GenericName[sl]=Spletni brskalnik
|
|
||||||
+GenericName[sv]=Webbläsare
|
|
||||||
+GenericName[tr]=Web Tarayıcı
|
|
||||||
+GenericName[ug]=توركۆرگۈ
|
|
||||||
+GenericName[uk]=Веб-браузер
|
|
||||||
+GenericName[vi]=Trình duyệt Web
|
|
||||||
+GenericName[zh_CN]=网络浏览器
|
|
||||||
+GenericName[zh_TW]=網路瀏覽器
|
|
||||||
+Keywords=Internet;WWW;Browser;Web;Explorer
|
|
||||||
+Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب
|
|
||||||
+Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
|
|
||||||
+Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
|
|
||||||
+Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer
|
|
||||||
+Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
|
|
||||||
+Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
|
|
||||||
+Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;Firefox;Φιρεφοχ;Ιντερνετ
|
|
||||||
+Keywords[es]=Explorador;Internet;WWW
|
|
||||||
+Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
|
|
||||||
+Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
|
|
||||||
+Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
|
|
||||||
+Keywords[hr]=Internet;WWW;preglednik;Web
|
|
||||||
+Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
|
|
||||||
+Keywords[it]=Internet;WWW;Browser;Web;Navigatore
|
|
||||||
+Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
|
|
||||||
+Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ
|
|
||||||
+Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
|
|
||||||
+Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
|
|
||||||
+Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
|
|
||||||
+Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
|
|
||||||
+Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис
|
|
||||||
+Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer
|
|
||||||
+Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
|
|
||||||
+Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
|
|
||||||
+Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд
|
|
||||||
+Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web
|
|
||||||
+Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;Firefox;ff;互联网;网站;
|
|
||||||
+Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐
|
|
||||||
+Exec=firefox %u
|
|
||||||
+Terminal=false
|
|
||||||
+X-MultipleArgs=false
|
|
||||||
+Type=Application
|
|
||||||
+Icon=/browser/chrome/icons/default/default128.png
|
|
||||||
+Categories=GNOME;GTK;Network;WebBrowser;
|
|
||||||
+MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
|
|
||||||
+StartupNotify=true
|
|
||||||
+Actions=NewWindow;NewPrivateWindow;
|
|
||||||
+
|
|
||||||
+[Desktop Action NewWindow]
|
|
||||||
+Name=Open a New Window
|
|
||||||
+Name[ar]=افتح نافذة جديدة
|
|
||||||
+Name[ast]=Abrir una ventana nueva
|
|
||||||
+Name[bn]=Abrir una ventana nueva
|
|
||||||
+Name[ca]=Obre una finestra nova
|
|
||||||
+Name[cs]=Otevřít nové okno
|
|
||||||
+Name[da]=Åbn et nyt vindue
|
|
||||||
+Name[de]=Ein neues Fenster öffnen
|
|
||||||
+Name[el]=Άνοιγμα νέου παραθύρου
|
|
||||||
+Name[es]=Abrir una ventana nueva
|
|
||||||
+Name[fi]=Avaa uusi ikkuna
|
|
||||||
+Name[fr]=Ouvrir une nouvelle fenêtre
|
|
||||||
+Name[gl]=Abrir unha nova xanela
|
|
||||||
+Name[he]=פתיחת חלון חדש
|
|
||||||
+Name[hr]=Otvori novi prozor
|
|
||||||
+Name[hu]=Új ablak nyitása
|
|
||||||
+Name[it]=Apri una nuova finestra
|
|
||||||
+Name[ja]=新しいウィンドウを開く
|
|
||||||
+Name[ko]=새 창 열기
|
|
||||||
+Name[ku]=Paceyeke nû veke
|
|
||||||
+Name[lt]=Atverti naują langą
|
|
||||||
+Name[nb]=Åpne et nytt vindu
|
|
||||||
+Name[nl]=Nieuw venster openen
|
|
||||||
+Name[pt]=Abrir nova janela
|
|
||||||
+Name[pt_BR]=Abrir nova janela
|
|
||||||
+Name[ro]=Deschide o fereastră nouă
|
|
||||||
+Name[ru]=Новое окно
|
|
||||||
+Name[sk]=Otvoriť nové okno
|
|
||||||
+Name[sl]=Odpri novo okno
|
|
||||||
+Name[sv]=Öppna ett nytt fönster
|
|
||||||
+Name[tr]=Yeni pencere aç
|
|
||||||
+Name[ug]=يېڭى كۆزنەك ئېچىش
|
|
||||||
+Name[uk]=Відкрити нове вікно
|
|
||||||
+Name[vi]=Mở cửa sổ mới
|
|
||||||
+Name[zh_CN]=新建窗口
|
|
||||||
+Name[zh_TW]=開啟新視窗
|
|
||||||
+Exec=firefox -new-window
|
|
||||||
+
|
|
||||||
+[Desktop Action NewPrivateWindow]
|
|
||||||
+Name=Open a New Private Window
|
|
||||||
+Name[ar]=افتح نافذة جديدة للتصفح الخاص
|
|
||||||
+Name[ca]=Obre una finestra nova en mode d'incògnit
|
|
||||||
+Name[de]=Ein neues privates Fenster öffnen
|
|
||||||
+Name[es]=Abrir una ventana privada nueva
|
|
||||||
+Name[fi]=Avaa uusi yksityinen ikkuna
|
|
||||||
+Name[fr]=Ouvrir une nouvelle fenêtre de navigation privée
|
|
||||||
+Name[he]=פתיחת חלון גלישה פרטית חדש
|
|
||||||
+Name[hu]=Új privát ablak nyitása
|
|
||||||
+Name[it]=Apri una nuova finestra anonima
|
|
||||||
+Name[nb]=Åpne et nytt privat vindu
|
|
||||||
+Name[ru]=Новое приватное окно
|
|
||||||
+Name[sl]=Odpri novo okno zasebnega brskanja
|
|
||||||
+Name[tr]=Yeni bir pencere aç
|
|
||||||
+Name[uk]=Відкрити нове вікно у потайливому режимі
|
|
||||||
+Name[zh_TW]=開啟新隱私瀏覽視窗
|
|
||||||
+Exec=firefox -private-window
|
|
||||||
--
|
|
||||||
2.39.5 (Apple Git-154)
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
Replace "/usr/lib/mozilla" (the system-wide directory for extensions and
|
|
||||||
native manifests) with "$ICECAT_SYSTEM_DIR".
|
|
||||||
|
|
||||||
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
index e3be04e70c..a3501c4f44 100644
|
|
||||||
--- a/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
+++ b/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
@@ -280,24 +280,11 @@ nsresult nsXREDirProvider::GetBackgroundTasksProfilesRootDir(
|
|
||||||
static nsresult GetSystemParentDirectory(nsIFile** aFile) {
|
|
||||||
nsresult rv;
|
|
||||||
nsCOMPtr<nsIFile> localDir;
|
|
||||||
-# if defined(XP_MACOSX)
|
|
||||||
- rv = GetOSXFolderType(kOnSystemDisk, kApplicationSupportFolderType,
|
|
||||||
- getter_AddRefs(localDir));
|
|
||||||
- if (NS_SUCCEEDED(rv)) {
|
|
||||||
- rv = localDir->AppendNative("Mozilla"_ns);
|
|
||||||
- }
|
|
||||||
-# else
|
|
||||||
- constexpr auto dirname =
|
|
||||||
-# ifdef HAVE_USR_LIB64_DIR
|
|
||||||
- "/usr/lib64/mozilla"_ns
|
|
||||||
-# elif defined(__OpenBSD__) || defined(__FreeBSD__)
|
|
||||||
- "/usr/local/lib/mozilla"_ns
|
|
||||||
-# else
|
|
||||||
- "/usr/lib/mozilla"_ns
|
|
||||||
-# endif
|
|
||||||
- ;
|
|
||||||
- rv = NS_NewNativeLocalFile(dirname, getter_AddRefs(localDir));
|
|
||||||
-# endif
|
|
||||||
+ const char* systemParentDir = getenv("ICECAT_SYSTEM_DIR");
|
|
||||||
+ if (!systemParentDir || !*systemParentDir) return NS_ERROR_FAILURE;
|
|
||||||
+
|
|
||||||
+ rv = NS_NewNativeLocalFile(nsDependentCString(systemParentDir),
|
|
||||||
+ getter_AddRefs(localDir));
|
|
||||||
|
|
||||||
if (NS_SUCCEEDED(rv)) {
|
|
||||||
localDir.forget(aFile);
|
|
|
@ -1,12 +1,11 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
|
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
|
||||||
;;; Copyright © 2021 Kahka F
|
;;; Copyright © 2021 Kahka F
|
||||||
;;; Copyright © 2021, 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
|
|
||||||
(define-module (nongnu packages printers)
|
(define-module (nongnu packages printers)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages cups)
|
#:use-module (gnu packages cups)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
@ -15,147 +14,149 @@
|
||||||
|
|
||||||
(define-public hplip-plugin
|
(define-public hplip-plugin
|
||||||
(package
|
(package
|
||||||
(inherit hplip)
|
(inherit hplip)
|
||||||
(name "hplip-plugin")
|
(name "hplip-plugin")
|
||||||
(description "Hewlett-Packard printer drivers with nonfree plugin.")
|
(description "Hewlett-Packard printer drivers with nonfree plugin.")
|
||||||
(source (origin
|
(source (origin (inherit (package-source hplip))
|
||||||
(inherit (package-source hplip))
|
(snippet
|
||||||
(snippet
|
(delete '(for-each
|
||||||
(delete '(for-each
|
delete-file
|
||||||
delete-file
|
(find-files "." (lambda
|
||||||
(find-files "." (lambda (file stat)
|
(file stat)
|
||||||
(elf-file? file))))
|
(elf-file? file))))
|
||||||
(origin-snippet (package-source hplip))))))
|
(origin-snippet (package-source hplip))))))
|
||||||
(inputs (alist-delete "python-pyqt" (package-inputs hplip)))
|
(inputs (alist-delete "python-pyqt" (package-inputs hplip)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(append
|
(append
|
||||||
`(("hplip-plugin"
|
`(("hplip-plugin"
|
||||||
,(origin
|
,(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://developers.hp.com/sites/default/files/hplip-"
|
(uri (string-append "https://developers.hp.com/sites/default/files/hplip-"
|
||||||
(package-version hplip) "-plugin.run"))
|
(package-version hplip) "-plugin.run"))
|
||||||
;; TODO: Since this needs to be updated on every update to Guix's
|
(sha256
|
||||||
;; hplip in order to build, might be better to decouple this
|
(base32
|
||||||
;; package from hplip. In the meantime, update this hash when
|
"1ffqnmmghxqclv66qq14wypfha2xalcrbrjw0dqkmpvbnzwbn49g")))))
|
||||||
;; hplip is updated in Guix.
|
(package-native-inputs hplip)))
|
||||||
(sha256
|
(arguments
|
||||||
(base32
|
(substitute-keyword-arguments
|
||||||
"0zq66hm7ni6w1c3cxy1gxrxzvyvfn0lhjnia8p4azvz2r309j9s0")))))
|
(package-arguments hplip)
|
||||||
(package-native-inputs hplip)))
|
((#:configure-flags cf)
|
||||||
(arguments
|
`(delete "--enable-qt5" ,cf))
|
||||||
(substitute-keyword-arguments (package-arguments hplip)
|
((#:phases ph)
|
||||||
((#:configure-flags cf)
|
`(modify-phases
|
||||||
#~(delete "--enable-qt5" #$cf))
|
,ph
|
||||||
((#:phases ph)
|
(replace
|
||||||
#~(modify-phases #$ph
|
'fix-hard-coded-file-names
|
||||||
(replace 'fix-hard-coded-file-names
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(let ((out (assoc-ref outputs "out"))
|
||||||
(let ((out (assoc-ref outputs "out"))
|
;; FIXME: use merged ppds (I think actually only
|
||||||
;; FIXME: use merged ppds (I think actually only
|
;; drvs need to be merged).
|
||||||
;; drvs need to be merged).
|
(cupsdir (assoc-ref inputs "cups-minimal")))
|
||||||
(cupsdir (assoc-ref inputs "cups-minimal")))
|
(substitute* "base/g.py"
|
||||||
(substitute* "base/g.py"
|
(("'/usr/share;[^']*'")
|
||||||
(("'/usr/share;[^']*'")
|
(string-append "'" cupsdir "/share'"))
|
||||||
(string-append "'" cupsdir "/share'"))
|
(("'/etc/hp/hplip.conf'")
|
||||||
(("'/etc/hp/hplip.conf'")
|
(string-append "'" out
|
||||||
(string-append "'" out
|
"/etc/hp/hplip.conf" "'"))
|
||||||
"/etc/hp/hplip.conf" "'"))
|
(("/var/lib/hp")
|
||||||
(("/var/lib/hp")
|
(string-append
|
||||||
(string-append
|
out
|
||||||
out
|
"/var/lib/hp")))
|
||||||
"/var/lib/hp")))
|
|
||||||
|
|
||||||
(substitute* "Makefile.in"
|
(substitute* "Makefile.in"
|
||||||
(("[[:blank:]]check-plugin\\.py[[:blank:]]") " ")
|
(("[[:blank:]]check-plugin\\.py[[:blank:]]") " ")
|
||||||
;; FIXME Use beginning-of-word in regexp.
|
;; FIXME Use beginning-of-word in regexp.
|
||||||
(("[[:blank:]]plugin\\.py[[:blank:]]") " ")
|
(("[[:blank:]]plugin\\.py[[:blank:]]") " ")
|
||||||
(("/usr/include/libusb-1.0")
|
(("/usr/include/libusb-1.0")
|
||||||
(string-append (assoc-ref inputs "libusb")
|
(string-append (assoc-ref inputs "libusb")
|
||||||
"/include/libusb-1.0"))
|
"/include/libusb-1.0"))
|
||||||
(("hplip_statedir =.*$")
|
(("hplip_statedir =.*$")
|
||||||
;; Don't bail out while trying to create
|
;; Don't bail out while trying to create
|
||||||
;; /var/lib/hplip. We can safely change its value
|
;; /var/lib/hplip. We can safely change its value
|
||||||
;; here because it's hard-coded in the code anyway.
|
;; here because it's hard-coded in the code anyway.
|
||||||
"hplip_statedir = $(prefix)/var/lib/hp\n")
|
"hplip_statedir = $(prefix)/var/lib/hp\n")
|
||||||
(("hplip_confdir = /etc/hp")
|
(("hplip_confdir = /etc/hp")
|
||||||
;; This is only used for installing the default config.
|
;; This is only used for installing the default config.
|
||||||
(string-append "hplip_confdir = " out
|
(string-append "hplip_confdir = " out
|
||||||
"/etc/hp"))
|
"/etc/hp"))
|
||||||
(("halpredir = /usr/share/hal/fdi/preprobe/10osvendor")
|
(("halpredir = /usr/share/hal/fdi/preprobe/10osvendor")
|
||||||
;; We don't use hal.
|
;; We don't use hal.
|
||||||
(string-append "halpredir = " out
|
(string-append "halpredir = " out
|
||||||
"/share/hal/fdi/preprobe/10osvendor"))
|
"/share/hal/fdi/preprobe/10osvendor"))
|
||||||
(("rulesdir = /etc/udev/rules.d")
|
(("rulesdir = /etc/udev/rules.d")
|
||||||
;; udev rules will be merged by base service.
|
;; udev rules will be merged by base service.
|
||||||
(string-append "rulesdir = " out
|
(string-append "rulesdir = " out
|
||||||
"/lib/udev/rules.d"))
|
"/lib/udev/rules.d"))
|
||||||
(("rulessystemdir = /usr/lib/systemd/system")
|
(("rulessystemdir = /usr/lib/systemd/system")
|
||||||
;; We don't use systemd.
|
;; We don't use systemd.
|
||||||
(string-append "rulessystemdir = " out
|
(string-append "rulessystemdir = " out
|
||||||
"/lib/systemd/system"))
|
"/lib/systemd/system"))
|
||||||
(("/etc/sane.d")
|
(("/etc/sane.d")
|
||||||
(string-append out "/etc/sane.d")))
|
(string-append out "/etc/sane.d")))
|
||||||
|
|
||||||
(substitute* "common/utils.h"
|
(substitute* "common/utils.h"
|
||||||
(("/var/lib/hp")
|
(("/var/lib/hp")
|
||||||
(string-append
|
(string-append
|
||||||
out
|
out
|
||||||
"/var/lib/hp"))))))
|
"/var/lib/hp")))
|
||||||
(add-after 'install-models-dat 'install-plugins
|
#t)))
|
||||||
(lambda* (#:key outputs system inputs #:allow-other-keys)
|
(add-after
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
'install-models-dat 'install-plugins
|
||||||
(state-dir (string-append out "/var/lib/hp"))
|
(lambda* (#:key outputs system inputs #:allow-other-keys)
|
||||||
(hp-arch (assoc-ref
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
'(("i686-linux" . "x86_32")
|
(state-dir (string-append out "/var/lib/hp"))
|
||||||
("x86_64-linux" . "x86_64")
|
(hp-arch (assoc-ref
|
||||||
("armhf-linux" . "arm32")
|
'(("i686-linux" . "x86_32")
|
||||||
("aarch64-linux" . "aarch64"))
|
("x86_64-linux" . "x86_64")
|
||||||
system)))
|
("armhf-linux" . "arm32")
|
||||||
(unless hp-arch
|
("aarch64-linux" . "aarch64"))
|
||||||
(error (string-append
|
system)))
|
||||||
"HPLIP plugin not supported on "
|
(unless hp-arch
|
||||||
system)))
|
(error (string-append
|
||||||
(invoke "sh" (assoc-ref inputs "hplip-plugin")
|
"HPLIP plugin not supported on "
|
||||||
"--noexec" "--keep")
|
system)))
|
||||||
(chdir "plugin_tmp")
|
(invoke "sh" (assoc-ref inputs "hplip-plugin")
|
||||||
(install-file "plugin.spec"
|
"--noexec" "--keep")
|
||||||
(string-append out "/share/hplip/"))
|
(chdir "plugin_tmp")
|
||||||
|
(install-file "plugin.spec"
|
||||||
|
(string-append out "/share/hplip/"))
|
||||||
|
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (file)
|
(lambda (file)
|
||||||
(install-file
|
(install-file
|
||||||
file
|
file
|
||||||
(string-append out "/share/hplip/data/firmware")))
|
(string-append out "/share/hplip/data/firmware")))
|
||||||
(find-files "." "\\.fw.gz$"))
|
(find-files "." "\\.fw.gz$"))
|
||||||
|
|
||||||
(install-file "license.txt"
|
(install-file "license.txt"
|
||||||
(string-append out "/share/hplip/data/plugins"))
|
(string-append out "/share/hplip/data/plugins"))
|
||||||
(mkdir-p
|
(mkdir-p
|
||||||
(string-append out "/share/hplip/prnt/plugins"))
|
(string-append out "/share/hplip/prnt/plugins"))
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (type plugins)
|
(lambda (type plugins)
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (plugin)
|
(lambda (plugin)
|
||||||
(let ((file (string-append plugin "-" hp-arch ".so"))
|
(let ((file (string-append plugin "-" hp-arch ".so"))
|
||||||
(dir (string-append out "/share/hplip/"
|
(dir (string-append out "/share/hplip/"
|
||||||
type "/plugins")))
|
type "/plugins")))
|
||||||
(install-file file dir)
|
(install-file file dir)
|
||||||
(chmod (string-append dir "/" file) #o755)
|
(chmod (string-append dir "/" file) #o755)
|
||||||
(symlink (string-append dir "/" file)
|
(symlink (string-append dir "/" file)
|
||||||
(string-append dir "/" plugin ".so"))))
|
(string-append dir "/" plugin ".so"))))
|
||||||
plugins))
|
plugins))
|
||||||
'("prnt" "scan")
|
'("prnt" "scan")
|
||||||
'(("lj" "hbpl1")
|
'(("lj" "hbpl1")
|
||||||
("bb_soap" "bb_marvell" "bb_soapht" "bb_escl")))
|
("bb_soap" "bb_marvell" "bb_soapht" "bb_escl")))
|
||||||
(mkdir-p state-dir)
|
(mkdir-p state-dir)
|
||||||
(call-with-output-file
|
(call-with-output-file
|
||||||
(string-append state-dir "/hplip.state")
|
(string-append state-dir "/hplip.state")
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
(simple-format port "[plugin]
|
(simple-format port "[plugin]
|
||||||
installed=1
|
installed=1
|
||||||
eula=1
|
eula=1
|
||||||
version=~A
|
version=~A
|
||||||
" #$(package-version hplip))))
|
" ,(package-version hplip))))
|
||||||
|
|
||||||
(substitute* (string-append out "/etc/hp/hplip.conf")
|
(substitute* (string-append out "/etc/hp/hplip.conf")
|
||||||
(("/usr") out)))))))))))
|
(("/usr") out))
|
||||||
|
#t)))))))))
|
||||||
|
|
|
@ -1,236 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
;;; Copyright © 2024 Karl Hallsby <karl@hallsby.com
|
|
||||||
|
|
||||||
(define-module (nongnu packages productivity)
|
|
||||||
#:use-module (gnu packages base)
|
|
||||||
#:use-module (gnu packages compression)
|
|
||||||
#:use-module (gnu packages freedesktop)
|
|
||||||
#:use-module (gnu packages gl)
|
|
||||||
#:use-module (gnu packages glib)
|
|
||||||
#:use-module (gnu packages gtk)
|
|
||||||
#:use-module (gnu packages image)
|
|
||||||
#:use-module (gnu packages linux)
|
|
||||||
#:use-module (gnu packages pciutils)
|
|
||||||
#:use-module (gnu packages photo)
|
|
||||||
#:use-module (gnu packages xiph)
|
|
||||||
#:use-module (gnu packages xorg)
|
|
||||||
#:use-module (gnu packages video)
|
|
||||||
#:use-module (gnu packages wget)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (nonguix build-system chromium-binary)
|
|
||||||
#:use-module ((nonguix licenses) #:prefix license:)
|
|
||||||
#:use-module ((guix licenses) #:prefix free-license:))
|
|
||||||
|
|
||||||
(define-public anytype
|
|
||||||
(package
|
|
||||||
(name "anytype")
|
|
||||||
(version "0.44.0")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri
|
|
||||||
(string-append "https://anytype-release.fra1.cdn.digitaloceanspaces.com/"
|
|
||||||
name "_" version "_amd64.deb"))
|
|
||||||
(file-name (string-append "anytype-" version ".deb"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0djyvz6y4pk277xa2mc4w6w029i3f7zd2d1pniyrpayhnna6f670"))))
|
|
||||||
(build-system chromium-binary-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
;; almost 300MB
|
|
||||||
#:substitutable? #f
|
|
||||||
#:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
|
||||||
#:wrapper-plan
|
|
||||||
#~(map (lambda (file)
|
|
||||||
(string-append "opt/Anytype/" file))
|
|
||||||
'("anytype"
|
|
||||||
"chrome-sandbox"
|
|
||||||
"chrome_crashpad_handler"
|
|
||||||
"libEGL.so"
|
|
||||||
"libffmpeg.so"
|
|
||||||
"libGLESv2.so"
|
|
||||||
"libvk_swiftshader.so"
|
|
||||||
"libvulkan.so.1"
|
|
||||||
"resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node"
|
|
||||||
"resources/app.asar.unpacked/node_modules/keytar/build/Release/obj.target/keytar.node"))
|
|
||||||
#:install-plan
|
|
||||||
#~'(("opt/" "/share")
|
|
||||||
("usr/share/" "/share"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-after 'binary-unpack 'disable-auto-updates
|
|
||||||
(lambda _
|
|
||||||
(delete-file "opt/Anytype/resources/app-update.yml")))
|
|
||||||
;; We don't need regedit, a node library to interact with Windows
|
|
||||||
;; hosts.
|
|
||||||
(add-after 'binary-unpack 'strip-regedit
|
|
||||||
(lambda _
|
|
||||||
(delete-file-recursively
|
|
||||||
(string-append "opt/Anytype/resources/app.asar.unpacked/"
|
|
||||||
"node_modules/regedit"))))
|
|
||||||
(add-after 'binary-unpack 'strip-python
|
|
||||||
(lambda _
|
|
||||||
(delete-file
|
|
||||||
(string-append "opt/Anytype/resources/app.asar.unpacked/"
|
|
||||||
"node_modules/keytar/build/node_gyp_bins/python3"))))
|
|
||||||
(add-before 'install 'patch-assets
|
|
||||||
(lambda _
|
|
||||||
(let* ((bin (string-append #$output "/bin"))
|
|
||||||
(usr/share "./usr/share")
|
|
||||||
(old-exe "/opt/Anytype/anytype")
|
|
||||||
(exe (string-append bin "/anytype")))
|
|
||||||
(substitute* (string-append usr/share "/applications/anytype.desktop")
|
|
||||||
(((string-append "^Exec=" old-exe)) (string-append "Exec=" exe))))))
|
|
||||||
(add-before 'install-wrapper 'symlink-entrypoint
|
|
||||||
(lambda _
|
|
||||||
(let* ((bin (string-append #$output "/bin"))
|
|
||||||
(exe (string-append bin "/anytype"))
|
|
||||||
(share (string-append #$output "/share/Anytype"))
|
|
||||||
(target (string-append share "/anytype")))
|
|
||||||
(mkdir-p bin)
|
|
||||||
(symlink target exe)
|
|
||||||
(wrap-program exe
|
|
||||||
`("LD_LIBRARY_PATH" = (,share)))))))))
|
|
||||||
(inputs
|
|
||||||
(list bzip2
|
|
||||||
flac
|
|
||||||
gdk-pixbuf
|
|
||||||
harfbuzz
|
|
||||||
libexif
|
|
||||||
libglvnd
|
|
||||||
libpng
|
|
||||||
libva
|
|
||||||
libxscrnsaver
|
|
||||||
opus
|
|
||||||
pciutils
|
|
||||||
snappy
|
|
||||||
util-linux
|
|
||||||
xdg-utils
|
|
||||||
wget))
|
|
||||||
(synopsis "Productivity and note-taking app")
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(description "Anytype is an E2E encrypted, cross-platform, productivity and
|
|
||||||
note taking app. It stores all the data locally and allows for peer-to-peer
|
|
||||||
synchronization.")
|
|
||||||
(home-page "https://anytype.io")
|
|
||||||
(license (license:nonfree
|
|
||||||
"https://github.com/anyproto/anytype-ts/blob/main/LICENSE.md"))))
|
|
||||||
|
|
||||||
(define-public zotero
|
|
||||||
(package
|
|
||||||
(name "zotero")
|
|
||||||
(version "6.0.35")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
;; Can switch to git-fetch from Github too!
|
|
||||||
(method url-fetch)
|
|
||||||
(uri
|
|
||||||
(string-append "https://download.zotero.org/client/release/"
|
|
||||||
version "/Zotero-" version "_linux-x86_64.tar.bz2"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"17f9an43jwnqpcslbvnhg7hrzkvs2whzwg4ysdgy2gl4m6cln18w"))
|
|
||||||
(snippet
|
|
||||||
#~(begin
|
|
||||||
(use-modules (guix build utils))
|
|
||||||
;; Disable Zotero's automatic update feature.
|
|
||||||
(substitute* "defaults/preferences/prefs.js"
|
|
||||||
(("pref\\(\"app.update.enabled\", true\\)")
|
|
||||||
"pref(\"app.update.enabled\", false)")
|
|
||||||
(("pref\\(\"app.update.auto\", true\\)")
|
|
||||||
"pref(\"app.update.auto\", false)"))))))
|
|
||||||
(build-system chromium-binary-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
;; ~70 MiB
|
|
||||||
#:substitutable? #f
|
|
||||||
#:validate-runpath? #t
|
|
||||||
#:wrapper-plan
|
|
||||||
#~'("zotero-bin")
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-before 'install-wrapper 'install-entrypoint
|
|
||||||
(lambda _
|
|
||||||
(let* ((bin (string-append #$output "/bin")))
|
|
||||||
(mkdir-p bin)
|
|
||||||
(symlink (string-append #$output "/zotero")
|
|
||||||
(string-append bin "/zotero")))))
|
|
||||||
(add-after 'install 'create-desktop-file
|
|
||||||
(lambda _
|
|
||||||
(make-desktop-entry-file
|
|
||||||
(string-append #$output "/share/applications/zotero.desktop")
|
|
||||||
#:name "Zotero"
|
|
||||||
#:type "Application"
|
|
||||||
#:generic-name "Reference Management"
|
|
||||||
#:exec (string-append #$output "/bin/zotero -url %U")
|
|
||||||
#:icon "zotero"
|
|
||||||
#:keywords '("zotero")
|
|
||||||
#:categories '("Office" "Database")
|
|
||||||
#:terminal #f
|
|
||||||
#:startup-notify #t
|
|
||||||
#:startup-w-m-class "zotero"
|
|
||||||
;; MIME-type list taken from Zotero's shipped .desktop file
|
|
||||||
#:mime-type '("x-scheme-handler/zotero" "text/plain"
|
|
||||||
"application/x-research-info-systems"
|
|
||||||
"text/x-research-info-systems"
|
|
||||||
"text/ris"
|
|
||||||
"application/x-endnote-refer"
|
|
||||||
"application/x-inst-for-Scientific-info"
|
|
||||||
"application/mods+xml"
|
|
||||||
"application/rdf+xml"
|
|
||||||
"application/x-bibtex"
|
|
||||||
"text/x-bibtex"
|
|
||||||
"application/marc"
|
|
||||||
"application/vnd.citationstyles.style+xml")
|
|
||||||
#:comment
|
|
||||||
'(("en" "Collect, organize, cite, and share your research sources")
|
|
||||||
(#f "Collect, organize, cite, and share your research sources")))))
|
|
||||||
(add-after 'install 'install-icons
|
|
||||||
(lambda _
|
|
||||||
(let ((icon-sizes (list 16 32 48 256)))
|
|
||||||
(for-each
|
|
||||||
(lambda (size)
|
|
||||||
(mkdir-p (string-append #$output "/share/icons/hicolor/"
|
|
||||||
size "x" size "/apps"))
|
|
||||||
(copy-file
|
|
||||||
(string-append "chrome/icons/default/default" size ".png")
|
|
||||||
(string-append #$output "/share/icons/hicolor/"
|
|
||||||
size "x" size "/apps/zotero.png")))
|
|
||||||
(map number->string icon-sizes))))))))
|
|
||||||
;; The zotero script that we wrap (which produces .zotero-real), has
|
|
||||||
;; this open file limit step done for us. If that script ever goes
|
|
||||||
;; away, then we can just uncomment this one.
|
|
||||||
;; (add-after 'install-wrapper 'raise-open-file-limit
|
|
||||||
;; (lambda _
|
|
||||||
;; (let ((file (string-append #$output "/bin/zotero")))
|
|
||||||
;; (with-output-to-file file
|
|
||||||
;; (lambda _
|
|
||||||
;; (display
|
|
||||||
;; (string-append
|
|
||||||
;; "#!/bin/sh\n"
|
|
||||||
;; ;; Raise the open files limit because Mozilla file
|
|
||||||
;; ;; functions leave files open for a tiny bit longer than
|
|
||||||
;; ;; necessary, so an installation with many translators and
|
|
||||||
;; ;; styles can exceed the default 1024 file limit. ulimit
|
|
||||||
;; ;; is a shell built-in, so we cannot use Guix's
|
|
||||||
;; ;; program-file function.
|
|
||||||
;; "ulimit -n 4096\n"
|
|
||||||
;; #$output "/bin/zotero-bin" " -app " #$output "/application.ini" " \"$@\""))))
|
|
||||||
;; (chmod file #o755))))
|
|
||||||
(inputs (list dbus-glib libxt))
|
|
||||||
(synopsis "Collect, organize, cite, and share your research sources")
|
|
||||||
;; If we build from source, then we may be able to support more
|
|
||||||
;; architectures. But Zotero is a Firefox/Electron app that uses a lot of
|
|
||||||
;; JavaScript, which may be problematic when packaging using Guix.
|
|
||||||
(supported-systems '("x86_64-linux"))
|
|
||||||
(description "Zotero is a research reference and bibliography tool.
|
|
||||||
Zotero helps you organize your research any way you want. You can sort items
|
|
||||||
into collections and tag them with keywords. Zotero instantly creates
|
|
||||||
references and bibliographies for any text editor, and directly inside Word,
|
|
||||||
LibreOffice, and Google Docs for over 10,000 citation styles.")
|
|
||||||
(home-page "https://www.zotero.org")
|
|
||||||
(license free-license:agpl3)))
|
|
|
@ -5,19 +5,15 @@
|
||||||
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
|
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
|
||||||
;;; Copyright © 2021 Kozo <kozodev@runbox.com>
|
;;; Copyright © 2021 Kozo <kozodev@runbox.com>
|
||||||
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
|
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
|
|
||||||
;;; Copyright © 2023 Elijah Malaby
|
|
||||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
|
||||||
|
|
||||||
;;; The script provided by this package may optionally be started as
|
;;; The steam script provided by this package may optionally be started as
|
||||||
;;; a shell instead of automatically launching the wrapped entrypoint by setting
|
;;; a shell instead of automatically launching Steam by setting the
|
||||||
;;; the environment variable DEBUG=1. If the sandbox is started this way then
|
;;; environment variable DEBUG=1. If the sandbox is started this way then
|
||||||
;;; the package should subsequently be launched via fhs-internal.
|
;;; Steam should subsequently be launched via fhs-internal.
|
||||||
|
|
||||||
;;; The sandbox shell aids in debugging missing container elements. For
|
;;; The sandbox shell aids in debugging missing container elements. For
|
||||||
;;; example a missing symlink may be created manually before launching the
|
;;; example a missing symlink may be created manually before launching Steam
|
||||||
;;; package to verify that the fix works before filing a bug report.
|
;;; to verify that the fix works before filing a bug report.
|
||||||
|
|
||||||
;;; A container wrapper creates the following store items:
|
;;; A container wrapper creates the following store items:
|
||||||
;;; * Main container package [nonguix-container->package] (basically a dummy
|
;;; * Main container package [nonguix-container->package] (basically a dummy
|
||||||
|
@ -32,58 +28,62 @@
|
||||||
;;; (script run in-container which performs additional setup before
|
;;; (script run in-container which performs additional setup before
|
||||||
;;; launching the desired application)
|
;;; launching the desired application)
|
||||||
;;; References:
|
;;; References:
|
||||||
;;; -> Wrapped package {inside container}.
|
;;; -> Wrapped package {inside container} (in this case Steam).
|
||||||
|
|
||||||
;;; Note: The extra container-internal package is necessary because there is no
|
;;; Note: The extra container-internal package is necessary because there is no
|
||||||
;;; way to add the container package's own store path to its own manifest unless
|
;;; way to add the container package's own store path to its own manifest unless
|
||||||
;;; the manifest is printed inside the build phases. However, the (guix gexp)
|
;;; the manifest is printed inside the build phases. However, the (guix gexp)
|
||||||
;;; module is apparently disallowed inside build phases.
|
;;; module is apparently disallowed inside build phases.
|
||||||
|
|
||||||
(define-module (nonguix multiarch-container)
|
(define-module (nongnu packages steam-client)
|
||||||
#:use-module (gnu packages)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (gnu packages base)
|
#:use-module ((nonguix licenses) #:prefix license:)
|
||||||
#:use-module (guix build-system trivial)
|
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix records)
|
#:use-module (guix git-download)
|
||||||
|
#:use-module (guix utils)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix records)
|
||||||
#:export (nonguix-container
|
#:use-module (guix download)
|
||||||
nonguix-container?
|
#:use-module (guix build-system gnu)
|
||||||
ngc-name
|
#:use-module (guix build-system python)
|
||||||
ngc-binary-name
|
#:use-module (guix build-system trivial)
|
||||||
ngc-version
|
#:use-module (guix transformations)
|
||||||
ngc-wrap-package
|
#:use-module (gnu packages)
|
||||||
ngc-run
|
#:use-module (gnu packages audio)
|
||||||
ngc-wrapper-name
|
#:use-module (gnu packages base)
|
||||||
ngc-manifest-name
|
#:use-module (gnu packages bash)
|
||||||
ngc-internal-name
|
#:use-module (gnu packages certs)
|
||||||
ngc-sandbox-home
|
#:use-module (gnu packages compression)
|
||||||
ngc-ld.so.conf
|
#:use-module (gnu packages elf)
|
||||||
ngc-ld.so.cache
|
#:use-module (gnu packages file)
|
||||||
ngc-union64
|
#:use-module (gnu packages fonts)
|
||||||
ngc-union32
|
#:use-module (gnu packages fontutils)
|
||||||
ngc-preserved-env
|
#:use-module (gnu packages freedesktop)
|
||||||
ngc-exposed
|
#:use-module (gnu packages gawk)
|
||||||
ngc-shared
|
#:use-module (gnu packages gcc)
|
||||||
ngc-modules
|
#:use-module (gnu packages gl)
|
||||||
ngc-packages
|
#:use-module (gnu packages glib)
|
||||||
ngc-link-files
|
#:use-module (gnu packages gnome)
|
||||||
ngc-home-page
|
#:use-module (gnu packages graphics)
|
||||||
ngc-synopsis
|
#:use-module (gnu packages libbsd)
|
||||||
ngc-description
|
#:use-module (gnu packages libusb)
|
||||||
ngc-license
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages llvm)
|
||||||
fhs-min-libs
|
#:use-module (gnu packages logging)
|
||||||
fhs-union
|
#:use-module (nongnu packages nvidia)
|
||||||
ld.so.conf->ld.so.cache
|
#:use-module (gnu packages pciutils)
|
||||||
packages->ld.so.conf
|
#:use-module (gnu packages pulseaudio)
|
||||||
nonguix-container->package))
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages python-web)
|
||||||
|
#:use-module (gnu packages python-xyz)
|
||||||
|
#:use-module (gnu packages toolkits)
|
||||||
|
#:use-module (gnu packages video)
|
||||||
|
#:use-module (nonguix utils))
|
||||||
|
|
||||||
(define-record-type* <nonguix-container>
|
(define-record-type* <nonguix-container>
|
||||||
nonguix-container make-nonguix-container
|
nonguix-container make-nonguix-container
|
||||||
nonguix-container? this-nonguix-container
|
nonguix-container? this-nonguix-container
|
||||||
(name ngc-name)
|
(name ngc-name)
|
||||||
(binary-name ngc-binary-name (default (ngc-name this-nonguix-container)) (thunked))
|
|
||||||
(version ngc-version (default #f))
|
(version ngc-version (default #f))
|
||||||
(wrap-package ngc-wrap-package)
|
(wrap-package ngc-wrap-package)
|
||||||
(run ngc-run)
|
(run ngc-run)
|
||||||
|
@ -91,8 +91,6 @@
|
||||||
(manifest-name ngc-manifest-name (default "nonguix-container-manifest.scm"))
|
(manifest-name ngc-manifest-name (default "nonguix-container-manifest.scm"))
|
||||||
(internal-name ngc-internal-name (default "fhs-internal"))
|
(internal-name ngc-internal-name (default "fhs-internal"))
|
||||||
(sandbox-home ngc-sandbox-home (default ".local/share/guix-sandbox-home"))
|
(sandbox-home ngc-sandbox-home (default ".local/share/guix-sandbox-home"))
|
||||||
(ld.so.conf ngc-ld.so.conf)
|
|
||||||
(ld.so.cache ngc-ld.so.cache)
|
|
||||||
(union64 ngc-union64 (default '()))
|
(union64 ngc-union64 (default '()))
|
||||||
(union32 ngc-union32 (default '()))
|
(union32 ngc-union32 (default '()))
|
||||||
(preserved-env ngc-preserved-env (default '()))
|
(preserved-env ngc-preserved-env (default '()))
|
||||||
|
@ -106,10 +104,122 @@
|
||||||
(description ngc-description (default #f))
|
(description ngc-description (default #f))
|
||||||
(license ngc-license (default #f)))
|
(license ngc-license (default #f)))
|
||||||
|
|
||||||
|
(define steam-client
|
||||||
|
(package
|
||||||
|
(name "steam-client")
|
||||||
|
(version "1.0.0.75")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "http://repo.steampowered.com/steam/archive/precise/steam_"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"19rn29slsxv7b5fisr1jzn79bskzifbj5hmxqn2436ivwfjna9g5"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; There are no tests.
|
||||||
|
#:validate-runpath? #f ; Looks for bin/steam which doesn't exist.
|
||||||
|
#:make-flags
|
||||||
|
(list "PREFIX=" (string-append "DESTDIR=" (assoc-ref %outputs "out")))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure)
|
||||||
|
;; Patch Makefile so it creates links to the store rather than /lib.
|
||||||
|
(add-after 'unpack 'patch-makefile
|
||||||
|
(lambda _
|
||||||
|
(substitute* "Makefile"
|
||||||
|
(("-fns ")
|
||||||
|
"-fns $(DESTDIR)"))))
|
||||||
|
(delete 'patch-dot-desktop-files)
|
||||||
|
(add-after 'unpack 'patch-startscript
|
||||||
|
(lambda _
|
||||||
|
(substitute* "bin_steam.sh"
|
||||||
|
(("/usr") (assoc-ref %outputs "out")))))
|
||||||
|
(add-after 'patch-dot-desktop-files 'patch-desktop-file
|
||||||
|
(lambda _
|
||||||
|
(let ((path (string-append (assoc-ref %outputs "out")
|
||||||
|
"/share/applications/")))
|
||||||
|
(substitute* (string-append path "steam.desktop")
|
||||||
|
(("Exec=.*/steam") "Exec=steam"))
|
||||||
|
(copy-file (string-append path "steam.desktop")
|
||||||
|
(string-append path "steam-asound32.desktop"))
|
||||||
|
(substitute* (string-append path "steam-asound32.desktop")
|
||||||
|
(("Exec=steam %U") "Exec=steam %U -- --asound32")
|
||||||
|
(("Name=Steam") "Name=Steam (32-bit ALSA)")))))
|
||||||
|
;; Steamdeps installs missing packages, which doesn't work with Guix.
|
||||||
|
(add-after 'install-binaries 'post-install
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref %outputs "out")))
|
||||||
|
(delete-file (string-append out "/lib/steam/bin_steamdeps.py"))
|
||||||
|
(delete-file (string-append out "/bin/steamdeps"))))))))
|
||||||
|
(home-page "https://store.steampowered.com")
|
||||||
|
(synopsis "Digital distribution platform for managing and playing games")
|
||||||
|
(description "Steam is a digital software distribution platform created by Valve.")
|
||||||
|
(license (license:nonfree "file:///share/doc/steam/steam_subscriber_agreement.txt"))))
|
||||||
|
|
||||||
|
(define glibc-for-fhs
|
||||||
|
(package
|
||||||
|
(inherit glibc)
|
||||||
|
(name "glibc-for-fhs")
|
||||||
|
(source (origin (inherit (package-source glibc))
|
||||||
|
;; Remove Guix's patch to read ld.so.cache from /gnu/store
|
||||||
|
;; directories, re-enabling the default /etc/ld.so.cache
|
||||||
|
;; behavior.
|
||||||
|
(patches (delete (car (search-patches "glibc-dl-cache.patch"))
|
||||||
|
(origin-patches (package-source glibc))))))))
|
||||||
|
|
||||||
(define fhs-min-libs
|
(define fhs-min-libs
|
||||||
`(("glibc" ,(@@ (gnu packages base) glibc-for-fhs))
|
`(("glibc" ,glibc-for-fhs)
|
||||||
("glibc-locales" ,glibc-locales)))
|
("glibc-locales" ,glibc-locales)))
|
||||||
|
|
||||||
|
(define steam-client-libs
|
||||||
|
`(("bash" ,bash) ; Required for steam startup.
|
||||||
|
("coreutils" ,coreutils)
|
||||||
|
("diffutils" ,diffutils)
|
||||||
|
("dbus-glib" ,dbus-glib) ; Required for steam browser.
|
||||||
|
("elfutils" ,elfutils) ; Required for capturing library dependencies in pv.
|
||||||
|
("eudev" ,eudev) ; Required for steamwebhelper/heavy runtime.
|
||||||
|
("fontconfig" ,fontconfig) ; Required for steam client.
|
||||||
|
("file" ,file) ; Used for steam installation.
|
||||||
|
("find" ,findutils) ; Required at least for some logging.
|
||||||
|
("freetype" ,freetype) ; Required for steam login.
|
||||||
|
("gawk" ,gawk)
|
||||||
|
("gcc:lib" ,gcc "lib") ; Required for steam startup.
|
||||||
|
("grep" ,grep)
|
||||||
|
("libbsd" ,libbsd)
|
||||||
|
("libcap" ,libcap) ; Required for SteamVR, but needs pkexec too.
|
||||||
|
("libusb" ,libusb) ; Required for SteamVR.
|
||||||
|
("libva" ,libva) ; Required for hardware video encoding/decoding.
|
||||||
|
("libvdpau" ,libvdpau) ; Required for hardware video encoding/decoding.
|
||||||
|
("libvdpau-va-gl" ,libvdpau-va-gl) ; Additional VDPAU support.
|
||||||
|
("llvm" ,llvm-11) ; Required for mesa.
|
||||||
|
("mesa" ,mesa) ; Required for steam startup.
|
||||||
|
("nss-certs" ,nss-certs) ; Required for steam login.
|
||||||
|
("pciutils" ,pciutils) ; Tries to run lspci at steam startup.
|
||||||
|
("procps" ,procps)
|
||||||
|
("sed" ,sed)
|
||||||
|
("tar" ,tar)
|
||||||
|
("usbutils" ,usbutils) ; Required for SteamVR.
|
||||||
|
("util-linux" ,util-linux) ; Required for steam login.
|
||||||
|
("wayland" ,wayland) ; Required for mesa vulkan (e.g. libvulkan_radeon).
|
||||||
|
("flatpak-xdg-utils" ,flatpak-xdg-utils)
|
||||||
|
("xz" ,xz)
|
||||||
|
("zenity" ,zenity))) ; Required for progress dialogs.
|
||||||
|
|
||||||
|
(define steam-gameruntime-libs
|
||||||
|
`(("alsa-lib" ,alsa-lib) ; Required for audio in most games.
|
||||||
|
("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio") ; Required for audio in most games.
|
||||||
|
("font-dejavu" ,font-dejavu)
|
||||||
|
("font-liberation" ,font-liberation)
|
||||||
|
("imgui" ,imgui-1.86) ; Required for MangoHud.
|
||||||
|
("mangohud" ,mangohud)
|
||||||
|
("openal" ,openal) ; Prevents corrupt audio in Crypt of the Necrodancer.
|
||||||
|
("pulseaudio" ,pulseaudio) ; Prevents corrupt audio in Sven Coop.
|
||||||
|
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
|
||||||
|
("spdlog" ,spdlog))) ; Required for MangoHud.
|
||||||
|
|
||||||
(define* (fhs-union inputs #:key (name "fhs-union") (version "0.0") (system "x86_64-linux"))
|
(define* (fhs-union inputs #:key (name "fhs-union") (version "0.0") (system "x86_64-linux"))
|
||||||
"Create a package housing the union of inputs."
|
"Create a package housing the union of inputs."
|
||||||
(package
|
(package
|
||||||
|
@ -154,25 +264,45 @@
|
||||||
in the Guix store"
|
in the Guix store"
|
||||||
(computed-file
|
(computed-file
|
||||||
"ld.so.conf"
|
"ld.so.conf"
|
||||||
#~(begin
|
(with-imported-modules
|
||||||
;; Need to quote "#$packages" as #$packages tries to "apply" the first item to the rest, like a procedure.
|
`((guix build union)
|
||||||
(let* ((packages '#$packages)
|
(guix build utils))
|
||||||
;; Add "/lib" to each package.
|
#~(begin
|
||||||
;; TODO Make this more general for other needed directories.
|
(use-modules (guix build union)
|
||||||
(dirs-lib
|
(guix build utils))
|
||||||
(lambda (packages)
|
;; Need to quote "#$packages" as #$packages tries to "apply" the first item to the rest, like a procedure.
|
||||||
(map (lambda (package)
|
(let* ((packages '#$packages)
|
||||||
(string-append package "/lib"))
|
;; Add "/lib" to each package.
|
||||||
packages)))
|
;; TODO Make this more general for other needed directories.
|
||||||
(fhs-lib-dirs
|
(dirs-lib
|
||||||
(dirs-lib packages)))
|
(lambda (packages)
|
||||||
(call-with-output-file #$output
|
(map (lambda (package)
|
||||||
(lambda (port)
|
(string-append package "/lib"))
|
||||||
(for-each (lambda (directory)
|
packages)))
|
||||||
(display directory port)
|
(fhs-lib-dirs
|
||||||
(newline port))
|
(dirs-lib packages)))
|
||||||
fhs-lib-dirs)))
|
(call-with-output-file #$output
|
||||||
#$output))))
|
(lambda (port)
|
||||||
|
(for-each (lambda (directory)
|
||||||
|
(display directory port)
|
||||||
|
(newline port))
|
||||||
|
fhs-lib-dirs)))
|
||||||
|
#$output)))))
|
||||||
|
|
||||||
|
(define steam-ld.so.conf
|
||||||
|
(packages->ld.so.conf
|
||||||
|
(list (fhs-union `(,@steam-client-libs
|
||||||
|
,@steam-gameruntime-libs
|
||||||
|
,@fhs-min-libs)
|
||||||
|
#:name "fhs-union-64")
|
||||||
|
(fhs-union `(,@steam-client-libs
|
||||||
|
,@steam-gameruntime-libs
|
||||||
|
,@fhs-min-libs)
|
||||||
|
#:name "fhs-union-32"
|
||||||
|
#:system "i686-linux"))))
|
||||||
|
|
||||||
|
(define steam-ld.so.cache
|
||||||
|
(ld.so.conf->ld.so.cache steam-ld.so.conf))
|
||||||
|
|
||||||
(define (nonguix-container->package container)
|
(define (nonguix-container->package container)
|
||||||
"Return a package with wrapper script to launch the supplied container object
|
"Return a package with wrapper script to launch the supplied container object
|
||||||
|
@ -209,7 +339,7 @@ in a sandboxed FHS environment."
|
||||||
(manifest-target (assoc-ref %build-inputs "fhs-manifest"))
|
(manifest-target (assoc-ref %build-inputs "fhs-manifest"))
|
||||||
(manifest-dest (string-append out "/etc/" ,(ngc-manifest-name container)))
|
(manifest-dest (string-append out "/etc/" ,(ngc-manifest-name container)))
|
||||||
(wrapper-target (assoc-ref %build-inputs "fhs-wrapper"))
|
(wrapper-target (assoc-ref %build-inputs "fhs-wrapper"))
|
||||||
(wrapper-dest (string-append out "/bin/" ,(ngc-binary-name container)))
|
(wrapper-dest (string-append out "/bin/" ,(ngc-name container)))
|
||||||
(link-files ',(ngc-link-files container)))
|
(link-files ',(ngc-link-files container)))
|
||||||
(mkdir-p (string-append out "/sbin"))
|
(mkdir-p (string-append out "/sbin"))
|
||||||
(mkdir-p (string-append out "/etc"))
|
(mkdir-p (string-append out "/etc"))
|
||||||
|
@ -238,7 +368,8 @@ in a sandboxed FHS environment."
|
||||||
in a sandboxed FHS environment."
|
in a sandboxed FHS environment."
|
||||||
(program-file
|
(program-file
|
||||||
(ngc-wrapper-name container)
|
(ngc-wrapper-name container)
|
||||||
(with-imported-modules '((guix build utils))
|
(with-imported-modules
|
||||||
|
`((guix build utils))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build utils))
|
(use-modules (guix build utils))
|
||||||
(define (preserve-var var)
|
(define (preserve-var var)
|
||||||
|
@ -259,47 +390,21 @@ in a sandboxed FHS environment."
|
||||||
(home (getenv "HOME"))
|
(home (getenv "HOME"))
|
||||||
(sandbox-home (or (getenv "GUIX_SANDBOX_HOME")
|
(sandbox-home (or (getenv "GUIX_SANDBOX_HOME")
|
||||||
(string-append home "/" #$(ngc-sandbox-home container))))
|
(string-append home "/" #$(ngc-sandbox-home container))))
|
||||||
(wayland-display (or (getenv "WAYLAND_DISPLAY")
|
|
||||||
"wayland-0"))
|
|
||||||
(preserved-env '("^DBUS_"
|
(preserved-env '("^DBUS_"
|
||||||
|
"^DISPLAY$"
|
||||||
"^DRI_PRIME$"
|
"^DRI_PRIME$"
|
||||||
"^GDK_SCALE$" ; For UI scaling.
|
"^GDK_SCALE$" ; For Steam UI scaling.
|
||||||
"^GUIX_LOCPATH$" ; For pressure-vessel locales.
|
|
||||||
;; For startup of added non-Steam games as it
|
|
||||||
;; seems they start in an early environment
|
|
||||||
;; before our additional settings. (Likely
|
|
||||||
;; this can be removed when rewritten to use
|
|
||||||
;; --emulate-fhs from upstream.) Note that
|
|
||||||
;; this is explicitly set below. We could
|
|
||||||
;; preserve what is set before launching the
|
|
||||||
;; container, but any such directories would
|
|
||||||
;; need to be shared with the container as
|
|
||||||
;; well; this is not needed currently.
|
|
||||||
"^LD_LIBRARY_PATH$"
|
|
||||||
"^LIBVA_DRIVERS_PATH$" ; For VA-API drivers.
|
|
||||||
"^MANGOHUD" ; For MangoHud configuration.
|
|
||||||
"^PRESSURE_VESSEL_" ; For pressure vessel options.
|
"^PRESSURE_VESSEL_" ; For pressure vessel options.
|
||||||
"_PROXY$"
|
"_PROXY$"
|
||||||
"_proxy$"
|
"_proxy$"
|
||||||
;; To allow workaround for upstream bug
|
|
||||||
;; <https://github.com/ValveSoftware/steam-for-linux/issues/9306>
|
|
||||||
;; and tracked on our end as
|
|
||||||
;; <https://gitlab.com/nonguix/nonguix/-/issues/267>.
|
|
||||||
;; TODO: Remove once upstream fixes this bug.
|
|
||||||
"^QT_X11_NO_MITSHM$"
|
|
||||||
"^SDL_"
|
"^SDL_"
|
||||||
"^STEAM_"
|
"^STEAM_"
|
||||||
"^SSL_" ; SSL certificate environment, needed by curl for Heroic.
|
"^VDPAU_DRIVER_PATH$" ; For VDPAU drivers.
|
||||||
"^TZ" ; For setting time zone.
|
|
||||||
"^XAUTHORITY$"
|
"^XAUTHORITY$"
|
||||||
;; Matching all ^XDG_ vars causes issues
|
;; Matching all ^XDG_ vars causes issues
|
||||||
;; discussed in 80decf05.
|
;; discussed in 80decf05.
|
||||||
"^XDG_CURRENT_DESKTOP$"
|
|
||||||
"^XDG_DATA_HOME$"
|
"^XDG_DATA_HOME$"
|
||||||
"^XDG_RUNTIME_DIR$"
|
"^XDG_RUNTIME_DIR$"
|
||||||
"^XDG_SESSION_(CLASS|TYPE)$"
|
|
||||||
"^(WAYLAND_)?DISPLAY$"
|
|
||||||
#$@(ngc-preserved-env container) ; Environment from container.
|
|
||||||
;; The following are useful for debugging.
|
;; The following are useful for debugging.
|
||||||
"^CAPSULE_DEBUG$"
|
"^CAPSULE_DEBUG$"
|
||||||
"^G_MESSAGES_DEBUG$"
|
"^G_MESSAGES_DEBUG$"
|
||||||
|
@ -314,7 +419,6 @@ in a sandboxed FHS environment."
|
||||||
,@(exists-> "/dev/nvidia-modeset")
|
,@(exists-> "/dev/nvidia-modeset")
|
||||||
,@(exists-> "/etc/machine-id")
|
,@(exists-> "/etc/machine-id")
|
||||||
"/etc/localtime" ; Needed for correct time zone.
|
"/etc/localtime" ; Needed for correct time zone.
|
||||||
"/etc/os-release" ; Needed for distro info.
|
|
||||||
"/sys/class/drm" ; Needed for hw monitoring like MangoHud.
|
"/sys/class/drm" ; Needed for hw monitoring like MangoHud.
|
||||||
"/sys/class/hwmon" ; Needed for hw monitoring like MangoHud.
|
"/sys/class/hwmon" ; Needed for hw monitoring like MangoHud.
|
||||||
"/sys/class/hidraw" ; Needed for devices like the Valve Index.
|
"/sys/class/hidraw" ; Needed for devices like the Valve Index.
|
||||||
|
@ -323,8 +427,7 @@ in a sandboxed FHS environment."
|
||||||
,@(exists-> "/sys/class/powercap") ; Needed for power monitoring like MangoHud.
|
,@(exists-> "/sys/class/powercap") ; Needed for power monitoring like MangoHud.
|
||||||
"/sys/dev"
|
"/sys/dev"
|
||||||
"/sys/devices"
|
"/sys/devices"
|
||||||
,@(exists-> "/var/run/dbus")
|
,@(exists-> "/var/run/dbus")))
|
||||||
#$@(ngc-exposed container)))
|
|
||||||
;; /dev/hidraw is needed for SteamVR to access the HMD, although here we
|
;; /dev/hidraw is needed for SteamVR to access the HMD, although here we
|
||||||
;; share all hidraw devices. Instead we could filter to only share specific
|
;; share all hidraw devices. Instead we could filter to only share specific
|
||||||
;; device. See, for example, this script:
|
;; device. See, for example, this script:
|
||||||
|
@ -338,34 +441,29 @@ in a sandboxed FHS environment."
|
||||||
,@(exists-> (string-append home "/.config/pulse"))
|
,@(exists-> (string-append home "/.config/pulse"))
|
||||||
,@(exists-> (string-append xdg-runtime "/pulse"))
|
,@(exists-> (string-append xdg-runtime "/pulse"))
|
||||||
,@(exists-> (string-append xdg-runtime "/bus"))
|
,@(exists-> (string-append xdg-runtime "/bus"))
|
||||||
,@(exists-> (string-append xdg-runtime "/" wayland-display))
|
,@(exists-> (getenv "XAUTHORITY"))))
|
||||||
,@(exists-> (getenv "XAUTHORITY"))
|
|
||||||
#$@(ngc-shared container)))
|
|
||||||
(DEBUG (equal? (getenv "DEBUG") "1"))
|
(DEBUG (equal? (getenv "DEBUG") "1"))
|
||||||
;; Make sure this environment variable is not set to the
|
|
||||||
;; emptry string or else guix shell will fail to start.
|
|
||||||
(extra-shares-env (getenv "GUIX_SANDBOX_EXTRA_SHARES"))
|
|
||||||
(extra-shares (if (and extra-shares-env (not (string= extra-shares-env "")))
|
|
||||||
(string-split extra-shares-env #\:)
|
|
||||||
#f))
|
|
||||||
(args (cdr (command-line)))
|
(args (cdr (command-line)))
|
||||||
(command (if DEBUG '()
|
(command (if DEBUG '()
|
||||||
`("--" ,run ,@args))))
|
`("--" ,run ,@args))))
|
||||||
;; Set this so Steam's pressure-vessel container does not need to
|
;; TODO: Remove once upstream change is merged and in stable pressure-vessel
|
||||||
;; generate locales, improving startup time. This needs to be set to
|
;; (although may want to hold off for anyone using older pressure-vessel versions
|
||||||
;; the "usual" path, probably so they are included in the
|
;; for whatever reason), see:
|
||||||
;; pressure-vessel container.
|
;; https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/merge_requests/406
|
||||||
(setenv "GUIX_LOCPATH" "/usr/lib/locale")
|
(setenv "PRESSURE_VESSEL_FILESYSTEMS_RO" "/gnu/store")
|
||||||
;; By default VA-API drivers are searched for in mesa's store path,
|
;; By default VDPAU drivers are searched for in libvdpau's store
|
||||||
;; so set this path to where the drivers will actually be located in
|
;; path, so set this path to where the drivers will actually be
|
||||||
;; the container.
|
;; located in the container.
|
||||||
(setenv "LIBVA_DRIVERS_PATH" "/lib64/dri:/lib/dri")
|
(setenv "VDPAU_DRIVER_PATH" "/lib64/vdpau")
|
||||||
(format #t "\n* Launching ~a in sandbox: ~a.\n\n"
|
(format #t "\n* Launching ~a in sandbox: ~a.\n\n"
|
||||||
#$(package-name (ngc-wrap-package container)) sandbox-home)
|
#$(package-name (ngc-wrap-package container)) sandbox-home)
|
||||||
(when DEBUG
|
(when DEBUG
|
||||||
(format #t "* DEBUG set to 1: Starting shell. Launch application manually with: ~a.\n\n"
|
(format #t "* DEBUG set to 1: Starting shell. Launch application manually with: ~a.\n\n"
|
||||||
#$(ngc-internal-name container)))
|
#$(ngc-internal-name container)))
|
||||||
(mkdir-p sandbox-home)
|
(mkdir-p sandbox-home)
|
||||||
|
(invoke #$(file-append pulseaudio "/bin/pulseaudio")
|
||||||
|
"--start"
|
||||||
|
"--exit-idle-time=60")
|
||||||
(apply invoke
|
(apply invoke
|
||||||
`("guix" "shell"
|
`("guix" "shell"
|
||||||
"--container" "--no-cwd" "--network"
|
"--container" "--no-cwd" "--network"
|
||||||
|
@ -373,9 +471,7 @@ in a sandboxed FHS environment."
|
||||||
,@(map add-path expose)
|
,@(map add-path expose)
|
||||||
,@(map (lambda (item)
|
,@(map (lambda (item)
|
||||||
(add-path item #:writable? #t))
|
(add-path item #:writable? #t))
|
||||||
(if extra-shares
|
share)
|
||||||
(append share extra-shares)
|
|
||||||
share))
|
|
||||||
"-m" ,manifest-file
|
"-m" ,manifest-file
|
||||||
,@command)))))))
|
,@command)))))))
|
||||||
|
|
||||||
|
@ -424,8 +520,7 @@ the exact path for the fhs-internal package."
|
||||||
(version (or (ngc-version container)
|
(version (or (ngc-version container)
|
||||||
(package-version (ngc-wrap-package container))))
|
(package-version (ngc-wrap-package container))))
|
||||||
(source #f)
|
(source #f)
|
||||||
(inputs `(("fhs-internal-script"
|
(inputs `(("fhs-internal-script" ,(make-internal-script container))))
|
||||||
,(make-internal-script container))))
|
|
||||||
(build-system trivial-build-system)
|
(build-system trivial-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:modules ((guix build utils))
|
`(#:modules ((guix build utils))
|
||||||
|
@ -451,8 +546,8 @@ application."
|
||||||
;; contains are directly to /gnu/store/. Instead, it could be generated with
|
;; contains are directly to /gnu/store/. Instead, it could be generated with
|
||||||
;; a generic ld.so.conf and result in paths more typical in an FHS distro,
|
;; a generic ld.so.conf and result in paths more typical in an FHS distro,
|
||||||
;; like /lib within the container. This may be useful for future compatibility.
|
;; like /lib within the container. This may be useful for future compatibility.
|
||||||
(let* ((ld.so.conf (ngc-ld.so.conf container))
|
(let* ((ld.so.conf steam-ld.so.conf)
|
||||||
(ld.so.cache (ngc-ld.so.cache container))
|
(ld.so.cache steam-ld.so.cache)
|
||||||
(pkg (ngc-wrap-package container))
|
(pkg (ngc-wrap-package container))
|
||||||
(run (ngc-run container)))
|
(run (ngc-run container)))
|
||||||
(program-file
|
(program-file
|
||||||
|
@ -461,9 +556,7 @@ application."
|
||||||
`((guix build utils))
|
`((guix build utils))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build utils)
|
(use-modules (guix build utils)
|
||||||
(ice-9 getopt-long)
|
(ice-9 getopt-long))
|
||||||
(srfi srfi-1)
|
|
||||||
(srfi srfi-26))
|
|
||||||
(define (path->str path)
|
(define (path->str path)
|
||||||
(if (list? path)
|
(if (list? path)
|
||||||
(string-join path "/")
|
(string-join path "/")
|
||||||
|
@ -473,13 +566,9 @@ application."
|
||||||
(dest (path->str (cdr pair))))
|
(dest (path->str (cdr pair))))
|
||||||
(unless (file-exists? dest)
|
(unless (file-exists? dest)
|
||||||
(symlink target dest))))
|
(symlink target dest))))
|
||||||
(define (file-symlink file dir)
|
(define (icd-symlink file)
|
||||||
(mkdir-p dir)
|
|
||||||
(new-symlink
|
(new-symlink
|
||||||
`(,file . (,dir ,(basename file)))))
|
`(,file . ("/usr/share/vulkan/icd.d" ,(basename file)))))
|
||||||
;; Use stat to follow links from packages like MangoHud.
|
|
||||||
(define (get-files dir)
|
|
||||||
(find-files (path->str dir) #:stat stat))
|
|
||||||
(define fhs-option-spec
|
(define fhs-option-spec
|
||||||
'((asound32 (value #f))))
|
'((asound32 (value #f))))
|
||||||
(let* ((guix-env (getenv "GUIX_ENVIRONMENT"))
|
(let* ((guix-env (getenv "GUIX_ENVIRONMENT"))
|
||||||
|
@ -489,9 +578,9 @@ application."
|
||||||
(ld.so.cache #$(file-append ld.so.cache))
|
(ld.so.cache #$(file-append ld.so.cache))
|
||||||
(all-args (cdr (command-line)))
|
(all-args (cdr (command-line)))
|
||||||
(fhs-args (member "--" all-args))
|
(fhs-args (member "--" all-args))
|
||||||
(package-args (if fhs-args
|
(steam-args (if fhs-args
|
||||||
(reverse (cdr (member "--" (reverse all-args))))
|
(reverse (cdr (member "--" (reverse all-args))))
|
||||||
all-args)))
|
all-args)))
|
||||||
(delete-file "/bin/sh")
|
(delete-file "/bin/sh")
|
||||||
(rmdir "/bin")
|
(rmdir "/bin")
|
||||||
(for-each
|
(for-each
|
||||||
|
@ -499,8 +588,8 @@ application."
|
||||||
'("/run/current-system/profile/etc"
|
'("/run/current-system/profile/etc"
|
||||||
"/run/current-system/profile/share"
|
"/run/current-system/profile/share"
|
||||||
"/sbin"
|
"/sbin"
|
||||||
"/usr/lib"
|
"/usr/share/vulkan/icd.d"
|
||||||
"/usr/share"))
|
"/usr/share/vulkan/implicit_layer.d")) ; Implicit layers like MangoHud
|
||||||
(for-each
|
(for-each
|
||||||
new-symlink
|
new-symlink
|
||||||
`((,ld.so.cache . "/etc/ld.so.cache")
|
`((,ld.so.cache . "/etc/ld.so.cache")
|
||||||
|
@ -514,65 +603,30 @@ application."
|
||||||
((,union64 "lib") . "/lib64")
|
((,union64 "lib") . "/lib64")
|
||||||
((,union64 "lib") . "/run/current-system/profile/lib64")
|
((,union64 "lib") . "/run/current-system/profile/lib64")
|
||||||
((,union64 "lib/locale") . "/run/current-system/locale")
|
((,union64 "lib/locale") . "/run/current-system/locale")
|
||||||
;; Despite using GUIX_LOCPATH, stil need locales in their
|
|
||||||
;; expected location for pressure-vessel to use them.
|
|
||||||
((,union64 "lib/locale") . "/usr/lib/locale")
|
|
||||||
((,union64 "sbin/ldconfig") . "/sbin/ldconfig")
|
((,union64 "sbin/ldconfig") . "/sbin/ldconfig")
|
||||||
((,union64 "share/mime") . "/usr/share/mime") ; Steam tray icon.
|
|
||||||
((,union64 "share/glib-2.0") . "/usr/share/glib-2.0") ; Heroic interface.
|
|
||||||
((,union64 "share/drirc.d") . "/usr/share/drirc.d")
|
((,union64 "share/drirc.d") . "/usr/share/drirc.d")
|
||||||
((,union64 "share/fonts") . "/usr/share/fonts")
|
|
||||||
((,union64 "share/fonts") . "/run/current-system/profile/share/fonts")
|
((,union64 "share/fonts") . "/run/current-system/profile/share/fonts")
|
||||||
((,union64 "etc/fonts") . "/etc/fonts")))
|
((,union64 "etc/fonts") . "/etc/fonts")
|
||||||
|
((,union64 "share/vulkan/explicit_layer.d") .
|
||||||
|
"/usr/share/vulkan/explicit_layer.d")
|
||||||
|
;; The MangoHud layer has the same file name for 64- and 32-bit,
|
||||||
|
;; so create links with different names.
|
||||||
|
((,union64 "share/vulkan/implicit_layer.d/MangoHud.json") .
|
||||||
|
"/usr/share/vulkan/implicit_layer.d/MangoHud.json")
|
||||||
|
((,union32 "share/vulkan/implicit_layer.d/MangoHud.json") .
|
||||||
|
"/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json")))
|
||||||
(for-each
|
(for-each
|
||||||
(cut file-symlink <> "/usr/share/egl/egl_external_platform.d")
|
icd-symlink
|
||||||
(append-map
|
;; Use stat to follow links from packages like MangoHud.
|
||||||
get-files
|
`(,@(find-files (string-append union32 "/share/vulkan/icd.d")
|
||||||
`((,union32 "share/egl/egl_external_platform.d")
|
#:directories? #t #:stat stat)
|
||||||
(,union64 "share/egl/egl_external_platform.d"))))
|
,@(find-files (string-append union64 "/share/vulkan/icd.d")
|
||||||
(for-each
|
#:directories? #t #:stat stat)))
|
||||||
(cut file-symlink <> "/usr/share/glvnd/egl_vendor.d")
|
;; TODO: Is this the right place for this?
|
||||||
(append-map
|
|
||||||
get-files
|
|
||||||
`((,union32 "share/glvnd/egl_vendor.d")
|
|
||||||
(,union64 "share/glvnd/egl_vendor.d"))))
|
|
||||||
(for-each
|
|
||||||
(cut file-symlink <> "/usr/share/vulkan/icd.d")
|
|
||||||
(append-map
|
|
||||||
get-files
|
|
||||||
`((,union32 "share/vulkan/icd.d")
|
|
||||||
(,union64 "share/vulkan/icd.d"))))
|
|
||||||
(for-each
|
|
||||||
(cut file-symlink <> "/usr/share/vulkan/explicit_layer.d")
|
|
||||||
(append-map
|
|
||||||
get-files
|
|
||||||
`((,union64 "share/vulkan/explicit_layer.d")
|
|
||||||
(,union32 "share/vulkan/explicit_layer.d"))))
|
|
||||||
(for-each
|
|
||||||
(cut file-symlink <> "/usr/share/vulkan/implicit_layer.d")
|
|
||||||
(append-map
|
|
||||||
get-files
|
|
||||||
`((,union32 "share/vulkan/implicit_layer.d")
|
|
||||||
(,union64 "share/vulkan/implicit_layer.d")
|
|
||||||
;; For MangoHud implicit layers.
|
|
||||||
(,guix-env "share/vulkan/implicit_layer.d"))))
|
|
||||||
;; TODO: This is not the right place for this.
|
|
||||||
;; Newer versions of Steam won't startup if they can't copy to here
|
;; Newer versions of Steam won't startup if they can't copy to here
|
||||||
;; (previous would output this error but continue).
|
;; (previous would output this error but continue).
|
||||||
(if (file-exists? ".steam/root/bootstrap.tar.xz")
|
(if (file-exists? ".steam/root/bootstrap.tar.xz")
|
||||||
(chmod ".steam/root/bootstrap.tar.xz" #o644))
|
(chmod ".steam/root/bootstrap.tar.xz" #o644))
|
||||||
;; TODO: Should other environment setup also happen inside the
|
|
||||||
;; container rather than before container is launched?
|
|
||||||
;;
|
|
||||||
;; Set this so that e.g. non-Steam games added to Steam will
|
|
||||||
;; launch properly. It seems otherwise they don't make it to
|
|
||||||
;; launching Steam's pressure-vessel container (for Proton
|
|
||||||
;; games). Wait to set this inside the container to not cause
|
|
||||||
;; issues on foreign distros, see
|
|
||||||
;; <https://gitlab.com/nonguix/nonguix/-/issues/303>
|
|
||||||
(setenv "LD_LIBRARY_PATH"
|
|
||||||
(string-append "/lib64:/lib:/lib64/nss:/lib/nss:"
|
|
||||||
"/lib64/vdpau:/lib/vdpau"))
|
|
||||||
|
|
||||||
;; Process FHS-specific command line options.
|
;; Process FHS-specific command line options.
|
||||||
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
|
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
|
||||||
|
@ -580,13 +634,9 @@ application."
|
||||||
(asound-lib (if asound32-opt "lib" "lib64")))
|
(asound-lib (if asound32-opt "lib" "lib64")))
|
||||||
(if asound32-opt
|
(if asound32-opt
|
||||||
(display "\n\n/etc/asound.conf configured for 32-bit.\n\n\n")
|
(display "\n\n/etc/asound.conf configured for 32-bit.\n\n\n")
|
||||||
(display (string-append "\n\n/etc/asound.conf configured for 64-bit.\nLaunch "
|
(display "\n\n/etc/asound.conf configured for 64-bit.\nLaunch steam with \"steam -- --asound32\" to use 32-bit instead.\n\n\n"))
|
||||||
#$(ngc-binary-name container)
|
|
||||||
" with \""
|
|
||||||
(basename #$(ngc-run container))
|
|
||||||
" -- --asound32\" to use 32-bit instead.\n\n\n")))
|
|
||||||
(with-output-to-file "/etc/asound.conf"
|
(with-output-to-file "/etc/asound.conf"
|
||||||
(lambda _ (format (current-output-port) "# Generated by nonguix's internal script
|
(lambda _ (format (current-output-port) "# Generated by steam-client
|
||||||
|
|
||||||
# Use PulseAudio by default
|
# Use PulseAudio by default
|
||||||
pcm_type.pulse {
|
pcm_type.pulse {
|
||||||
|
@ -611,4 +661,78 @@ ctl.!default {
|
||||||
fallback \"sysdefault\"
|
fallback \"sysdefault\"
|
||||||
}\n\n" asound-lib asound-lib))))
|
}\n\n" asound-lib asound-lib))))
|
||||||
|
|
||||||
(apply system* `(#$(file-append pkg run) ,@package-args))))))))
|
(apply system* `(#$(file-append pkg run) ,@steam-args))))))))
|
||||||
|
|
||||||
|
(define-public steam
|
||||||
|
(nonguix-container->package
|
||||||
|
(nonguix-container
|
||||||
|
(name "steam")
|
||||||
|
(wrap-package steam-client)
|
||||||
|
(run "/bin/steam")
|
||||||
|
(union64
|
||||||
|
(fhs-union `(,@steam-client-libs
|
||||||
|
,@steam-gameruntime-libs
|
||||||
|
,@fhs-min-libs)
|
||||||
|
#:name "fhs-union-64"))
|
||||||
|
(union32
|
||||||
|
(fhs-union `(,@steam-client-libs
|
||||||
|
,@steam-gameruntime-libs
|
||||||
|
,@fhs-min-libs)
|
||||||
|
#:name "fhs-union-32"
|
||||||
|
#:system "i686-linux"))
|
||||||
|
(link-files '("share/applications/steam.desktop"
|
||||||
|
"share/applications/steam-asound32.desktop"))
|
||||||
|
(description "Steam is a digital software distribution platform created by
|
||||||
|
Valve. This package provides a script for launching Steam in a Guix container
|
||||||
|
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
||||||
|
all games will be installed."))))
|
||||||
|
|
||||||
|
(define-public steam-nvidia
|
||||||
|
(nonguix-container->package
|
||||||
|
(nonguix-container
|
||||||
|
(name "steam-nvidia")
|
||||||
|
(wrap-package steam-client)
|
||||||
|
(run "/bin/steam")
|
||||||
|
(union64
|
||||||
|
(replace-mesa
|
||||||
|
(fhs-union `(,@steam-client-libs
|
||||||
|
,@steam-gameruntime-libs
|
||||||
|
,@fhs-min-libs)
|
||||||
|
#:name "fhs-union-64")))
|
||||||
|
(union32
|
||||||
|
(replace-mesa
|
||||||
|
(fhs-union `(,@steam-client-libs
|
||||||
|
,@steam-gameruntime-libs
|
||||||
|
,@fhs-min-libs)
|
||||||
|
#:name "fhs-union-32"
|
||||||
|
#:system "i686-linux")))
|
||||||
|
(link-files '("share/applications/steam.desktop"
|
||||||
|
"share/applications/steam-asound32.desktop"))
|
||||||
|
(description "Steam is a digital software distribution platform created by
|
||||||
|
Valve. This package provides a script for launching Steam in a Guix container
|
||||||
|
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
||||||
|
all games will be installed."))))
|
||||||
|
|
||||||
|
(define-public protonup-ng
|
||||||
|
(package
|
||||||
|
(name "protonup-ng")
|
||||||
|
(version "0.2.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/cloudishBenne/protonup-ng")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0yd2mhhqxzarqxk85zf42s931jzc94f1cssn1hblsqghr79laa45"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
(list #:tests? #f)) ; there are no tests
|
||||||
|
(inputs
|
||||||
|
(list python-configparser python-requests))
|
||||||
|
(home-page "https://github.com/cloudishBenne/protonup-ng")
|
||||||
|
(synopsis "Manage Proton-GE Installations")
|
||||||
|
(description "ProtonUp-ng is a CLI program and API to automate the installation
|
||||||
|
and update of GloriousEggroll's Proton-GE.")
|
||||||
|
(license license:gpl3)))
|
|
@ -13,7 +13,7 @@
|
||||||
(define-public helix-core
|
(define-public helix-core
|
||||||
(package
|
(package
|
||||||
(name "helix-core")
|
(name "helix-core")
|
||||||
(version "r23.1")
|
(version "r22.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://ftp.perforce.com/perforce/" version
|
(uri (string-append "https://ftp.perforce.com/perforce/" version
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
("i686-linux"
|
("i686-linux"
|
||||||
"0f5qs55rspw86axnmml3nxx551lwbxwz1cgi9kmy2f9g5rrplnkn")
|
"0f5qs55rspw86axnmml3nxx551lwbxwz1cgi9kmy2f9g5rrplnkn")
|
||||||
(_
|
(_
|
||||||
"1vqfkhgbx6ch7710w8mmm7hydl6jmd9qgzs0gfjg8gvd5gnh1csr"))))))
|
"077rfbjgyhdgv76i2727s3yk3p52y75nml8n9wv8g7mvhfs9ypa9"))))))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:strip-binaries? #f
|
`(#:strip-binaries? #f
|
||||||
|
|
|
@ -1,54 +1,19 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org>
|
;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org>
|
||||||
;;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com>
|
|
||||||
;;; Copyright © 2024 Murilo <murilo@disroot.org>
|
|
||||||
|
|
||||||
(define-module (nongnu packages video)
|
(define-module (nongnu packages video)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages video)
|
#:use-module (gnu packages video)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system gnu)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix utils)
|
#:use-module ((guix licenses) #:prefix license:))
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
|
||||||
#:use-module (nongnu packages chromium)
|
|
||||||
#:use-module (nongnu packages nvidia))
|
|
||||||
|
|
||||||
(define-public ffmpeg-nvenc
|
|
||||||
(package/inherit ffmpeg
|
|
||||||
(name "ffmpeg-nvenc")
|
|
||||||
(inputs
|
|
||||||
(modify-inputs
|
|
||||||
(package-inputs ffmpeg)
|
|
||||||
(prepend nv-codec-headers)))
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments ffmpeg)
|
|
||||||
((#:configure-flags flags)
|
|
||||||
;; Currently only interested in NVENC.
|
|
||||||
;; Might be better to make a ffmpeg-nonfree with all nonfree codecs
|
|
||||||
;; in the future.
|
|
||||||
#~(cons* "--enable-cuvid"
|
|
||||||
"--enable-ffnvcodec"
|
|
||||||
"--enable-encoder=hevc_nvenc"
|
|
||||||
"--enable-encoder=h264_nvenc"
|
|
||||||
#$flags))))
|
|
||||||
(description
|
|
||||||
(string-append
|
|
||||||
(package-description ffmpeg)
|
|
||||||
" This build of FFmpeg includes the nonfree NVIDIA encoder for
|
|
||||||
@code{h264_nvenc} and @code{hevc_nvenc} hardware encoding on NVIDIA GPUs."))))
|
|
||||||
|
|
||||||
(define-public replace-ffmpeg-nvenc
|
|
||||||
(package-input-rewriting
|
|
||||||
`((,ffmpeg . ,ffmpeg-nvenc))))
|
|
||||||
|
|
||||||
(define-public gmmlib
|
(define-public gmmlib
|
||||||
(package
|
(package
|
||||||
(name "gmmlib")
|
(name "gmmlib")
|
||||||
(version "22.3.19")
|
(version "22.3.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -57,7 +22,7 @@
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0p3wp6xcvpb4jzw4fsf6554qy91iblmq9y50ph3iy29m19q6nznb"))))
|
"0rbbzqpxgqklgdmbl7wjyblylm1g0jan3552scbi12z31bvq2442"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; Tests are run as part of the normal build step
|
;; Tests are run as part of the normal build step
|
||||||
|
@ -73,7 +38,7 @@ for VAAPI.")
|
||||||
(define-public intel-media-driver
|
(define-public intel-media-driver
|
||||||
(package
|
(package
|
||||||
(name "intel-media-driver")
|
(name "intel-media-driver")
|
||||||
(version "24.1.5")
|
(version "22.6.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -82,16 +47,16 @@ for VAAPI.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1jm4imld48scj0j499wq5zbdjv4gg7hg2sawljqnjvy09dmp09bs"))))
|
"08rnvhpgf7czb39swpm0qds11v5zlfjzl1wxnjl7df9vgf1lx3qh"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(inputs (list libva gmmlib))
|
(inputs (list libva gmmlib))
|
||||||
(native-inputs (list pkg-config))
|
(native-inputs (list pkg-config))
|
||||||
(arguments
|
(arguments
|
||||||
(list #:tests? #f ;Tests are run as part of the normal build step
|
'(#:tests? #f ;Tests are run as part of the normal build step
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
#~(list "-DENABLE_NONFREE_KERNELS=OFF"
|
(list "-DENABLE_NONFREE_KERNELS=OFF"
|
||||||
(string-append "-DLIBVA_DRIVERS_PATH="
|
(string-append "-DLIBVA_DRIVERS_PATH="
|
||||||
#$output "/lib/dri"))))
|
(assoc-ref %outputs "out") "/lib/dri"))))
|
||||||
;; XXX Because of <https://issues.guix.gnu.org/issue/22138>, we need to add
|
;; XXX Because of <https://issues.guix.gnu.org/issue/22138>, we need to add
|
||||||
;; this to all VA-API back ends instead of once to libva.
|
;; this to all VA-API back ends instead of once to libva.
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
|
@ -107,128 +72,4 @@ accelerated decoding, encoding, and video post processing for the GEN based
|
||||||
graphics hardware.")
|
graphics hardware.")
|
||||||
(license (list license:expat license:bsd-3))))
|
(license (list license:expat license:bsd-3))))
|
||||||
|
|
||||||
(define-public intel-media-driver/nonfree
|
intel-media-driver
|
||||||
(package
|
|
||||||
(inherit intel-media-driver)
|
|
||||||
(name "intel-media-driver-nonfree")
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments intel-media-driver)
|
|
||||||
((#:configure-flags flags #~'())
|
|
||||||
#~(cons "-DENABLE_NONFREE_KERNELS=ON"
|
|
||||||
(delete "-DENABLE_NONFREE_KERNELS=OFF" #$flags)))))
|
|
||||||
(synopsis
|
|
||||||
(string-append
|
|
||||||
(package-synopsis intel-media-driver)
|
|
||||||
" with nonfree kernels"))
|
|
||||||
(description
|
|
||||||
(string-append
|
|
||||||
(package-description intel-media-driver)
|
|
||||||
" This build of intel-media-driver includes nonfree blobs to fully enable the
|
|
||||||
video decode capabilities of supported Intel GPUs."))))
|
|
||||||
|
|
||||||
(define-public nv-codec-headers
|
|
||||||
(package
|
|
||||||
(name "nv-codec-headers")
|
|
||||||
(version "12.1.14.0")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git")
|
|
||||||
(commit (string-append "n" version))))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
|
||||||
(base32 "0sp4giwbhai9blgd2k7sb571xwmz2yx17w32vy0nyj86ccb2x5jq"))))
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:tests? #f ; No tests.
|
|
||||||
#:make-flags #~(list (string-append "PREFIX=" #$output))
|
|
||||||
#:phases #~(modify-phases %standard-phases
|
|
||||||
(delete 'configure)
|
|
||||||
(add-after 'unpack 'fix-paths
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(substitute* "include/ffnvcodec/dynlink_loader.h"
|
|
||||||
(("lib.*\\.so\\.." lib)
|
|
||||||
(search-input-file
|
|
||||||
inputs (string-append "lib/" lib)))))))))
|
|
||||||
(build-system gnu-build-system)
|
|
||||||
(inputs (list nvidia-driver))
|
|
||||||
(home-page "https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git")
|
|
||||||
(synopsis
|
|
||||||
"FFmpeg version of headers required to interface with NVIDIA's codec APIs")
|
|
||||||
(description
|
|
||||||
"This package provides the necessary headers for interfacing with NVIDIA's
|
|
||||||
codec APIs.")
|
|
||||||
(license license:expat)))
|
|
||||||
|
|
||||||
(define-public obs-with-cef
|
|
||||||
(package
|
|
||||||
(inherit obs)
|
|
||||||
(name "obs-with-cef")
|
|
||||||
(inputs
|
|
||||||
(append (package-inputs obs)
|
|
||||||
`(("chromium-embedded-framework" ,chromium-embedded-framework))))
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments obs)
|
|
||||||
((#:configure-flags flags)
|
|
||||||
#~(append #$flags
|
|
||||||
'("-DBUILD_BROWSER=ON"
|
|
||||||
"-DCEF_ROOT_DIR=../source/cef")))
|
|
||||||
((#:phases phases)
|
|
||||||
#~(modify-phases #$phases
|
|
||||||
(add-before 'configure 'add-cef
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(let ((chromium-embedded-framework
|
|
||||||
#$(this-package-input "chromium-embedded-framework")))
|
|
||||||
(mkdir-p "cef/Release")
|
|
||||||
(mkdir-p "cef/Resources")
|
|
||||||
(for-each (lambda (file)
|
|
||||||
(symlink file (string-append "cef/Release/"
|
|
||||||
(basename file)))
|
|
||||||
(symlink file (string-append "cef/Resources/"
|
|
||||||
(basename file))))
|
|
||||||
(filter
|
|
||||||
(lambda (file)
|
|
||||||
(not (string= (basename (dirname file))
|
|
||||||
"locales")))
|
|
||||||
(find-files
|
|
||||||
(string-append chromium-embedded-framework
|
|
||||||
"/share/cef"))))
|
|
||||||
(symlink (string-append chromium-embedded-framework
|
|
||||||
"/lib/libcef.so")
|
|
||||||
"cef/Release/libcef.so")
|
|
||||||
(mkdir-p "cef/libcef_dll_wrapper")
|
|
||||||
(symlink (string-append chromium-embedded-framework
|
|
||||||
"/lib/libcef_dll_wrapper.a")
|
|
||||||
"cef/libcef_dll_wrapper/libcef_dll_wrapper.a")
|
|
||||||
(symlink (string-append chromium-embedded-framework
|
|
||||||
"/include")
|
|
||||||
"cef/include"))))
|
|
||||||
(add-after 'install 'symlink-obs-browser
|
|
||||||
;; Required for lib/obs-plugins/obs-browser.so file.
|
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(symlink
|
|
||||||
(string-append #$output
|
|
||||||
"/lib/libobs-frontend-api.so.0")
|
|
||||||
(string-append #$output
|
|
||||||
"/lib/obs-plugins/libobs-frontend-api.so.0"))
|
|
||||||
(symlink
|
|
||||||
(string-append #$output
|
|
||||||
"/lib/libobs.so.0")
|
|
||||||
(string-append #$output
|
|
||||||
"/lib/obs-plugins/libobs.so.0"))))))))
|
|
||||||
(description
|
|
||||||
(string-append
|
|
||||||
(package-description obs)
|
|
||||||
" This build of OBS includes embeded Chromium-based browser to enable
|
|
||||||
Browser source."))))
|
|
||||||
|
|
||||||
(define-public obs-nvenc
|
|
||||||
(let ((obs-ffmpeg-nvenc (replace-ffmpeg-nvenc obs)))
|
|
||||||
(package/inherit obs-ffmpeg-nvenc
|
|
||||||
(name "obs-nvenc")
|
|
||||||
(description
|
|
||||||
(string-append
|
|
||||||
(package-description obs)
|
|
||||||
" This build of OBS includes the nonfree NVIDIA encoder for FFmpeg
|
|
||||||
@code{h264_nvenc} and @code{hevc_nvenc} hardware encoding on NVIDIA GPUs.")))))
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
(define-public zerotier
|
(define-public zerotier
|
||||||
(package
|
(package
|
||||||
(name "zerotier")
|
(name "zerotier")
|
||||||
(version "1.12.2")
|
(version "1.8.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -21,17 +21,16 @@
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0p5rpvh137gf5y9ylip7kxfl4argv34sr4wiiygvfk670rifnk57"))))
|
"101b1k9f3cpbgj0l87ya1cbqs9dv0qiayjap4m29fxyjra8hbkb8"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags (list "ZT_SSO_SUPPORTED=0") ; We don't need SSO/OIDC
|
`(#:phases
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
;; There is no ./configure
|
;; There is no ./configure
|
||||||
(delete 'configure)
|
(delete 'configure)
|
||||||
(replace 'check
|
(replace 'check
|
||||||
(lambda* (#:key make-flags #:allow-other-keys)
|
(lambda _
|
||||||
(apply invoke "make" "selftest" make-flags)
|
(invoke "make" "selftest")
|
||||||
(invoke "./zerotier-selftest")))
|
(invoke "./zerotier-selftest")))
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#:use-module (guix build-system trivial)
|
#:use-module (guix build-system trivial)
|
||||||
#:use-module (guix build-system copy)
|
#:use-module (guix build-system copy)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
|
@ -22,7 +21,7 @@
|
||||||
(define-public winetricks
|
(define-public winetricks
|
||||||
(package
|
(package
|
||||||
(name "winetricks")
|
(name "winetricks")
|
||||||
(version "20230212")
|
(version "20220411")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -31,47 +30,48 @@
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"15glm6ws0zihcks93l39mli8wf5b5vkijb0vaid9cqra6x0zppd5"))))
|
"09bv6wsm3y9p6jhlcmnjlnczdyr996b2mvxg4fbvlqa3fv9gac8n"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
(list cabextract
|
`(("cabextract" ,cabextract)
|
||||||
p7zip
|
("p7zip" ,p7zip)
|
||||||
perl
|
("perl" ,perl)
|
||||||
;; unrar ; TODO: Include unrar? It is referenced in the source.
|
;; ("unrar" ,unrar) ; TODO: Include unrar? It is referenced in the source.
|
||||||
unzip
|
("unzip" ,unzip)
|
||||||
wget
|
("wget" ,wget)
|
||||||
zenity))
|
("zenity" ,zenity)))
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
`(#:tests? #f
|
||||||
#:tests? #f
|
;; TODO: Checks need bashate, shellcheck (in Guix), and checkbashisms.
|
||||||
;; TODO: Checks need bashate, shellcheck (in Guix), and checkbashisms.
|
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))
|
||||||
#:make-flags #~(list (string-append "DESTDIR=" #$output)
|
"PREFIX=")
|
||||||
"PREFIX=")
|
#:phases
|
||||||
#:phases
|
(modify-phases %standard-phases
|
||||||
#~(modify-phases %standard-phases
|
(delete 'configure)
|
||||||
(delete 'configure)
|
(add-after 'install 'wrap-program
|
||||||
(add-after 'install 'wrap-program
|
;; The script relies on WINETRICKS_GUI being exactly "zenity", so
|
||||||
;; The script relies on WINETRICKS_GUI being exactly "zenity", so
|
;; we can't patch the path directly. Probably same for other dependencies.
|
||||||
;; we can't patch the path directly. Probably same for other dependencies.
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(lambda _
|
(let* ((zenity-bin (string-append (assoc-ref inputs "zenity") "/bin/"))
|
||||||
(let* ((winetricks (string-append #$output "/bin/winetricks"))
|
(perl-bin (string-append (assoc-ref inputs "perl") "/bin/"))
|
||||||
(paths (map
|
(winetricks (string-append (assoc-ref outputs "out")
|
||||||
(lambda (p) (string-append p "/bin"))
|
"/bin/winetricks")))
|
||||||
(list #$(this-package-input "cabextract")
|
(wrap-program winetricks
|
||||||
#$(this-package-input "p7zip")
|
`("PATH" prefix (,@(map (lambda (in)
|
||||||
#$(this-package-input "perl")
|
(string-append (assoc-ref inputs in) "/bin/"))
|
||||||
#$(this-package-input "unzip")
|
'("cabextract"
|
||||||
#$(this-package-input "wget")
|
"p7zip"
|
||||||
#$(this-package-input "zenity")))))
|
"perl"
|
||||||
(wrap-program winetricks
|
"unzip"
|
||||||
`("PATH" prefix ,paths)))))
|
"wget"
|
||||||
(add-after 'install 'patch-perl-path
|
"zenity"))))))))
|
||||||
(lambda _
|
(add-after 'install 'patch-perl-path
|
||||||
(let* ((perl (string-append #$(this-package-input "perl")
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
"/bin/perl"))
|
(let* ((perl (string-append (assoc-ref inputs "perl") "/bin/perl"))
|
||||||
(winetricks (string-append #$output "/bin/winetricks")))
|
(winetricks (string-append (assoc-ref outputs "out")
|
||||||
(substitute* winetricks
|
"/bin/winetricks")))
|
||||||
(("#!/usr/bin/env perl") (string-append "#!" perl)))))))))
|
(substitute* winetricks
|
||||||
|
(("#!/usr/bin/env perl") (string-append "#!" perl)))))))))
|
||||||
(home-page "https://github.com/Winetricks/winetricks")
|
(home-page "https://github.com/Winetricks/winetricks")
|
||||||
(synopsis "Easy way to work around problems in Wine")
|
(synopsis "Easy way to work around problems in Wine")
|
||||||
(description "Winetricks is an easy way to work around problems in Wine.
|
(description "Winetricks is an easy way to work around problems in Wine.
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2022, 2024 Hilton Chain <hako@ultrarare.space>
|
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
|
||||||
|
|
||||||
(define-module (nongnu services nvidia)
|
(define-module (nongnu services nvidia)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix records)
|
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services base)
|
#:use-module (gnu services base)
|
||||||
#:use-module (gnu services linux)
|
#:use-module (gnu services linux)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix records)
|
||||||
#:use-module (nongnu packages nvidia)
|
#:use-module (nongnu packages nvidia)
|
||||||
#:export (nvidia-configuration
|
#:export (nvidia-configuration
|
||||||
nvidia-configuration?
|
nvidia-configuration?
|
||||||
|
@ -19,32 +19,24 @@
|
||||||
(define-record-type* <nvidia-configuration>
|
(define-record-type* <nvidia-configuration>
|
||||||
nvidia-configuration make-nvidia-configuration
|
nvidia-configuration make-nvidia-configuration
|
||||||
nvidia-configuration?
|
nvidia-configuration?
|
||||||
(driver nvidia-configuration-driver
|
(nvidia-driver nvidia-configuration-nvidia-driver
|
||||||
(default nvda)) ; file-like
|
(default (list nvidia-driver))) ; list of file-like
|
||||||
(firmware nvidia-configuration-firmware
|
(nvidia-firmware nvidia-configuration-nvidia-firmware
|
||||||
(default nvidia-firmware)) ; file-like
|
(default (list nvidia-firmware))) ; list of file-like
|
||||||
(module nvidia-configuration-module
|
(nvidia-module nvidia-configuration-nvidia-module
|
||||||
(default nvidia-module))) ; file-like
|
(default (list nvidia-module))) ; list of file-like
|
||||||
|
(modules nvidia-configuration-modules
|
||||||
|
(default (list "nvidia-uvm")))) ; list of string
|
||||||
|
|
||||||
(define (nvidia-shepherd-service config)
|
(define (nvidia-shepherd-service config)
|
||||||
(let* ((nvidia-driver (nvidia-configuration-driver config))
|
(list (shepherd-service
|
||||||
(nvidia-smi (file-append nvidia-driver "/bin/nvidia-smi")))
|
(documentation "Unload nvidia-uvm module on powering off.")
|
||||||
(list (shepherd-service
|
(provision '(nvidia))
|
||||||
(documentation "Prepare system environment for NVIDIA driver.")
|
(requirement '(user-processes))
|
||||||
(provision '(nvidia))
|
(start #~(const #t))
|
||||||
(requirement '(udev))
|
(stop #~(lambda _
|
||||||
(one-shot? #t)
|
(let ((rmmod #$(file-append kmod "/bin/rmmod")))
|
||||||
(modules '(((guix build utils) #:select (invoke/quiet))
|
(zero? (system* rmmod "nvidia-uvm"))))))))
|
||||||
((rnrs io ports) #:select (get-line))))
|
|
||||||
(start
|
|
||||||
#~(lambda _
|
|
||||||
(when (file-exists? "/proc/driver/nvidia")
|
|
||||||
(let ((modprobe (call-with-input-file
|
|
||||||
"/proc/sys/kernel/modprobe" get-line)))
|
|
||||||
(false-if-exception
|
|
||||||
(begin
|
|
||||||
(invoke/quiet modprobe "--" "nvidia_uvm")
|
|
||||||
(invoke/quiet #$nvidia-smi)))))))))))
|
|
||||||
|
|
||||||
(define nvidia-service-type
|
(define nvidia-service-type
|
||||||
(service-type
|
(service-type
|
||||||
|
@ -52,13 +44,13 @@
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension shepherd-root-service-type
|
(list (service-extension shepherd-root-service-type
|
||||||
nvidia-shepherd-service)
|
nvidia-shepherd-service)
|
||||||
(service-extension profile-service-type
|
|
||||||
(compose list nvidia-configuration-driver))
|
|
||||||
(service-extension udev-service-type
|
(service-extension udev-service-type
|
||||||
(compose list nvidia-configuration-driver))
|
nvidia-configuration-nvidia-driver)
|
||||||
(service-extension firmware-service-type
|
(service-extension firmware-service-type
|
||||||
(compose list nvidia-configuration-firmware))
|
nvidia-configuration-nvidia-firmware)
|
||||||
(service-extension linux-loadable-module-service-type
|
(service-extension linux-loadable-module-service-type
|
||||||
(compose list nvidia-configuration-module))))
|
nvidia-configuration-nvidia-module)
|
||||||
|
(service-extension kernel-module-loader-service-type
|
||||||
|
nvidia-configuration-modules)))
|
||||||
(default-value (nvidia-configuration))
|
(default-value (nvidia-configuration))
|
||||||
(description "Prepare system environment for NVIDIA driver.")))
|
(description "Load NVIDIA modules.")))
|
||||||
|
|
|
@ -1,16 +1,13 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
|
;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
|
||||||
;;; Copyright © 2025 James Kalyan <mjkalyan@proton.me>
|
|
||||||
|
|
||||||
(define-module (nongnu services vpn)
|
(define-module (nongnu services vpn)
|
||||||
#:use-module (guix deprecation)
|
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
#:use-module (nongnu packages vpn)
|
#:use-module (nongnu packages vpn)
|
||||||
#:export (zerotier-service-type
|
#:export (zerotier-one-service))
|
||||||
zerotier-one-service))
|
|
||||||
|
|
||||||
(define %zerotier-action-join
|
(define %zerotier-action-join
|
||||||
(shepherd-action
|
(shepherd-action
|
||||||
|
@ -50,18 +47,12 @@
|
||||||
(list (string-append #$zerotier "/sbin/zerotier-one"))))
|
(list (string-append #$zerotier "/sbin/zerotier-one"))))
|
||||||
(stop #~(make-kill-destructor))))))
|
(stop #~(make-kill-destructor))))))
|
||||||
|
|
||||||
(define zerotier-service-type
|
(define zerotier-one-service-type
|
||||||
(service-type (name 'zerotier)
|
(service-type (name 'zerotier-one)
|
||||||
(description "ZeroTier One daemon.")
|
(description "ZeroTier One daemon.")
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension shepherd-root-service-type
|
(list (service-extension shepherd-root-service-type
|
||||||
zerotier-one-shepherd-service)))
|
zerotier-one-shepherd-service)))))
|
||||||
(default-value '())))
|
|
||||||
|
|
||||||
(define-deprecated/alias
|
(define* (zerotier-one-service #:key (config (list)))
|
||||||
zerotier-one-service-type
|
|
||||||
zerotier-service-type)
|
|
||||||
|
|
||||||
(define-deprecated (zerotier-one-service #:key (config '()))
|
|
||||||
zerotier-service-type
|
|
||||||
(service zerotier-one-service-type config))
|
(service zerotier-one-service-type config))
|
||||||
|
|
|
@ -2,46 +2,20 @@
|
||||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2024 Hilton Chain <hako@ultrarare.space>
|
|
||||||
|
|
||||||
;; Generate a bootable image (e.g. for USB sticks, etc.) with:
|
;; Generate a bootable image (e.g. for USB sticks, etc.) with:
|
||||||
;; $ guix system image --image-type=iso9660 nongnu/system/install.scm
|
;; $ guix system disk-image nongnu/system/install.scm
|
||||||
|
|
||||||
(define-module (nongnu system install)
|
(define-module (nongnu system install)
|
||||||
#:use-module (guix channels)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages package-management)
|
|
||||||
#:use-module (gnu packages version-control)
|
#:use-module (gnu packages version-control)
|
||||||
#:use-module (gnu packages vim)
|
#:use-module (gnu packages vim)
|
||||||
#:use-module (gnu packages zile)
|
#:use-module (gnu packages zile)
|
||||||
#:use-module (gnu services)
|
|
||||||
#:use-module (gnu services base)
|
|
||||||
#:use-module (gnu system)
|
#:use-module (gnu system)
|
||||||
#:use-module (gnu system install)
|
#:use-module (gnu system install)
|
||||||
#:use-module (nongnu packages linux)
|
#:use-module (nongnu packages linux)
|
||||||
#:export (installation-os-nonfree))
|
#:export (installation-os-nonfree))
|
||||||
|
|
||||||
;; https://substitutes.nonguix.org/signing-key.pub
|
|
||||||
(define %signing-key
|
|
||||||
(plain-file "nonguix.pub" "\
|
|
||||||
(public-key
|
|
||||||
(ecc
|
|
||||||
(curve Ed25519)
|
|
||||||
(q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))"))
|
|
||||||
|
|
||||||
(define %channels
|
|
||||||
(cons* (channel
|
|
||||||
(name 'nonguix)
|
|
||||||
(url "https://gitlab.com/nonguix/nonguix")
|
|
||||||
;; Enable signature verification:
|
|
||||||
(introduction
|
|
||||||
(make-channel-introduction
|
|
||||||
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
|
|
||||||
(openpgp-fingerprint
|
|
||||||
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
|
|
||||||
%default-channels))
|
|
||||||
|
|
||||||
(define installation-os-nonfree
|
(define installation-os-nonfree
|
||||||
(operating-system
|
(operating-system
|
||||||
(inherit installation-os)
|
(inherit installation-os)
|
||||||
|
@ -53,19 +27,6 @@
|
||||||
git
|
git
|
||||||
neovim
|
neovim
|
||||||
zile)
|
zile)
|
||||||
(operating-system-packages installation-os)))
|
(operating-system-packages installation-os)))))
|
||||||
(services
|
|
||||||
(modify-services (operating-system-user-services installation-os)
|
|
||||||
(guix-service-type
|
|
||||||
config => (guix-configuration
|
|
||||||
(inherit config)
|
|
||||||
(guix (guix-for-channels %channels))
|
|
||||||
(authorized-keys
|
|
||||||
(cons* %signing-key
|
|
||||||
%default-authorized-guix-keys))
|
|
||||||
(substitute-urls
|
|
||||||
`(,@%default-substitute-urls
|
|
||||||
"https://substitutes.nonguix.org"))
|
|
||||||
(channels %channels)))))))
|
|
||||||
|
|
||||||
installation-os-nonfree
|
installation-os-nonfree
|
||||||
|
|
|
@ -41,11 +41,7 @@
|
||||||
|
|
||||||
;; Do not use `@' to avoid introducing circular dependencies.
|
;; Do not use `@' to avoid introducing circular dependencies.
|
||||||
(let ((module (resolve-interface '(gnu packages elf))))
|
(let ((module (resolve-interface '(gnu packages elf))))
|
||||||
;; Use the older 0.16 version due to an upstream bug which can segfault
|
(module-ref module 'patchelf)))
|
||||||
;; some binaries. See <https://github.com/NixOS/patchelf/issues/482>.
|
|
||||||
;; TODO: Set back to patchelf when the package has been updated (or
|
|
||||||
;; patched) to fix this issue.
|
|
||||||
(module-ref module 'patchelf-0.16)))
|
|
||||||
|
|
||||||
(define (default-glibc)
|
(define (default-glibc)
|
||||||
"Return the default glibc package."
|
"Return the default glibc package."
|
||||||
|
|
|
@ -1,220 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
|
|
||||||
(define-module (nonguix build-system chromium-binary)
|
|
||||||
#:use-module (gnu packages bash)
|
|
||||||
#:use-module (gnu packages compression)
|
|
||||||
#:use-module (gnu packages cups)
|
|
||||||
#:use-module (gnu packages databases)
|
|
||||||
#:use-module (gnu packages fontutils)
|
|
||||||
#:use-module (gnu packages gcc)
|
|
||||||
#:use-module (gnu packages gl)
|
|
||||||
#:use-module (gnu packages glib)
|
|
||||||
#:use-module (gnu packages gnome)
|
|
||||||
#:use-module (gnu packages gtk)
|
|
||||||
#:use-module (gnu packages kerberos)
|
|
||||||
#:use-module (gnu packages linux)
|
|
||||||
#:use-module (gnu packages nss)
|
|
||||||
#:use-module (gnu packages pulseaudio)
|
|
||||||
#:use-module (gnu packages xdisorg)
|
|
||||||
#:use-module (gnu packages xorg)
|
|
||||||
#:use-module (gnu packages xml)
|
|
||||||
#:use-module (guix store)
|
|
||||||
#:use-module (guix utils)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix monads)
|
|
||||||
#:use-module (guix derivations)
|
|
||||||
#:use-module (guix search-paths)
|
|
||||||
#:use-module (guix build-system)
|
|
||||||
#:use-module (guix build-system gnu)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (ice-9 match)
|
|
||||||
#:use-module (srfi srfi-1)
|
|
||||||
#:use-module (nonguix build-system binary)
|
|
||||||
#:use-module (nonguix utils)
|
|
||||||
#:export (%chromium-binary-build-system-modules
|
|
||||||
lower
|
|
||||||
chromium-binary-build
|
|
||||||
chromium-binary-build-system))
|
|
||||||
|
|
||||||
;; Commentary:
|
|
||||||
;;
|
|
||||||
;; Standard build procedure for Chromium based binary packages. This is
|
|
||||||
;; implemented as an extension of `binary-build-system'.
|
|
||||||
;;
|
|
||||||
;; Code:
|
|
||||||
|
|
||||||
(define %chromium-binary-build-system-modules
|
|
||||||
;; Build-side modules imported by default.
|
|
||||||
`((nonguix build chromium-binary-build-system)
|
|
||||||
(nonguix build utils)
|
|
||||||
,@%binary-build-system-modules))
|
|
||||||
|
|
||||||
(define (build-patchelf-plan wrapper-plan inputs)
|
|
||||||
#~(let ((patchelf-inputs
|
|
||||||
(list #$@(map car inputs))))
|
|
||||||
(map (lambda (file)
|
|
||||||
;; Either an entry in WRAPPER-PLAN is just a string which can be
|
|
||||||
;; used directly, or it is a list where the second element is a
|
|
||||||
;; list of additional inputs for patchelf-plan.
|
|
||||||
(if (list? file)
|
|
||||||
(cons (car file) (list (append patchelf-inputs (cadr file))))
|
|
||||||
(cons file (list patchelf-inputs))))
|
|
||||||
#$wrapper-plan)))
|
|
||||||
|
|
||||||
(define* (lower name
|
|
||||||
#:key source inputs native-inputs outputs system target
|
|
||||||
(patchelf (default-patchelf))
|
|
||||||
(glibc (default-glibc))
|
|
||||||
#:allow-other-keys
|
|
||||||
#:rest arguments)
|
|
||||||
"Return a bag for NAME."
|
|
||||||
(define private-keywords
|
|
||||||
'(#:target #:patchelf #:inputs #:native-inputs))
|
|
||||||
(define host-inputs
|
|
||||||
`(,@(if source
|
|
||||||
`(("source" ,source))
|
|
||||||
'())
|
|
||||||
|
|
||||||
("alsa-lib" ,alsa-lib)
|
|
||||||
("atk" ,atk)
|
|
||||||
("at-spi2-atk" ,at-spi2-atk)
|
|
||||||
("at-spi2-core" ,at-spi2-core)
|
|
||||||
("bash-minimal" ,bash-minimal)
|
|
||||||
("cairo" ,cairo)
|
|
||||||
("cups" ,cups)
|
|
||||||
("dbus" ,dbus)
|
|
||||||
("eudev" ,eudev)
|
|
||||||
("expat" ,expat)
|
|
||||||
("fontconfig" ,fontconfig)
|
|
||||||
("freetype" ,freetype)
|
|
||||||
("gcc:lib" ,gcc "lib")
|
|
||||||
("glib" ,glib)
|
|
||||||
("gtk+" ,gtk+)
|
|
||||||
("libdrm" ,libdrm)
|
|
||||||
("libnotify" ,libnotify)
|
|
||||||
("librsvg" ,librsvg)
|
|
||||||
("libsecret" ,libsecret)
|
|
||||||
("libx11" ,libx11)
|
|
||||||
("libxcb" ,libxcb)
|
|
||||||
("libxcomposite" ,libxcomposite)
|
|
||||||
("libxcursor" ,libxcursor)
|
|
||||||
("libxdamage" ,libxdamage)
|
|
||||||
("libxext" ,libxext)
|
|
||||||
("libxfixes" ,libxfixes)
|
|
||||||
("libxi" ,libxi)
|
|
||||||
("libxkbcommon" ,libxkbcommon)
|
|
||||||
("libxkbfile" ,libxkbfile)
|
|
||||||
("libxrandr" ,libxrandr)
|
|
||||||
("libxrender" ,libxrender)
|
|
||||||
("libxshmfence" ,libxshmfence)
|
|
||||||
("libxtst" ,libxtst)
|
|
||||||
("mesa" ,mesa)
|
|
||||||
("mit-krb5" ,mit-krb5)
|
|
||||||
("nspr" ,nspr)
|
|
||||||
("nss" ,nss)
|
|
||||||
("pango" ,pango)
|
|
||||||
("pulseaudio" ,pulseaudio)
|
|
||||||
("sqlcipher" ,sqlcipher)
|
|
||||||
("xcb-util" ,xcb-util)
|
|
||||||
("xcb-util-image" ,xcb-util-image)
|
|
||||||
("xcb-util-keysyms" ,xcb-util-keysyms)
|
|
||||||
("xcb-util-renderutil" ,xcb-util-renderutil)
|
|
||||||
("xcb-util-wm" ,xcb-util-wm)
|
|
||||||
("zlib" ,zlib)
|
|
||||||
|
|
||||||
,@inputs
|
|
||||||
;; Keep the standard inputs of 'gnu-build-system'.
|
|
||||||
,@(standard-packages)))
|
|
||||||
|
|
||||||
(and (not target) ;XXX: no cross-compilation
|
|
||||||
(bag
|
|
||||||
(name name)
|
|
||||||
(system system)
|
|
||||||
(host-inputs host-inputs)
|
|
||||||
(build-inputs `(("patchelf" ,patchelf)
|
|
||||||
,@native-inputs
|
|
||||||
;; If current system is i686, the *32 packages will be the
|
|
||||||
;; same as the non-32, but that's OK.
|
|
||||||
("libc32" ,(to32 glibc))))
|
|
||||||
(outputs outputs)
|
|
||||||
(build chromium-binary-build)
|
|
||||||
(arguments (append
|
|
||||||
(strip-keyword-arguments private-keywords arguments)
|
|
||||||
(list #:wrap-inputs (alist-delete "source" host-inputs)))))))
|
|
||||||
|
|
||||||
(define* (chromium-binary-build name inputs
|
|
||||||
#:key
|
|
||||||
guile source wrap-inputs
|
|
||||||
(outputs '("out"))
|
|
||||||
(wrapper-plan ''())
|
|
||||||
(patchelf-plan ''())
|
|
||||||
(install-plan ''(("." "./")))
|
|
||||||
(search-paths '())
|
|
||||||
(out-of-source? #t)
|
|
||||||
(validate-runpath? #t)
|
|
||||||
(patch-shebangs? #t)
|
|
||||||
(strip-binaries? #t)
|
|
||||||
(strip-flags ''("--strip-debug"))
|
|
||||||
(strip-directories ''("lib" "lib64" "libexec"
|
|
||||||
"bin" "sbin"))
|
|
||||||
(phases '(@ (nonguix build chromium-binary-build-system)
|
|
||||||
%standard-phases))
|
|
||||||
(system (%current-system))
|
|
||||||
(imported-modules %chromium-binary-build-system-modules)
|
|
||||||
(modules '((nonguix build chromium-binary-build-system)
|
|
||||||
(guix build utils)
|
|
||||||
(nonguix build utils)))
|
|
||||||
(substitutable? #t)
|
|
||||||
allowed-references
|
|
||||||
disallowed-references)
|
|
||||||
"Build SOURCE using binary-build-system. WRAPPER-PLAN is a list of strings for
|
|
||||||
files which patchelf will add the INPUTS (which implicitly includes the base
|
|
||||||
packages needed for chromium-based binaries) to RPATH and wrap with needed
|
|
||||||
environment variables. Optionally, an entry can be a list with the first
|
|
||||||
entry the file to be patched and the second a list of additional inputs for
|
|
||||||
patchelf, like PATCHELF-PLAN in binary-build-system. PATCHELF-PLAN itself is
|
|
||||||
ignored if WRAPPER-PLAN is not '()."
|
|
||||||
(define builder
|
|
||||||
(with-imported-modules imported-modules
|
|
||||||
#~(begin
|
|
||||||
(use-modules #$@modules)
|
|
||||||
|
|
||||||
#$(with-build-variables inputs outputs
|
|
||||||
#~(chromium-binary-build #:source #+source
|
|
||||||
#:system #$system
|
|
||||||
#:outputs %outputs
|
|
||||||
#:inputs %build-inputs
|
|
||||||
#:patchelf-plan
|
|
||||||
#$(if (equal? wrapper-plan ''())
|
|
||||||
patchelf-plan
|
|
||||||
(build-patchelf-plan wrapper-plan
|
|
||||||
wrap-inputs))
|
|
||||||
#:install-plan #$install-plan
|
|
||||||
#:search-paths '#$(map search-path-specification->sexp
|
|
||||||
search-paths)
|
|
||||||
#:phases #$phases
|
|
||||||
#:out-of-source? #$out-of-source?
|
|
||||||
#:validate-runpath? #$validate-runpath?
|
|
||||||
#:patch-shebangs? #$patch-shebangs?
|
|
||||||
#:strip-binaries? #$strip-binaries?
|
|
||||||
#:strip-flags #$strip-flags
|
|
||||||
#:strip-directories #$strip-directories)))))
|
|
||||||
|
|
||||||
(mlet %store-monad ((guile (package->derivation (or guile (default-guile))
|
|
||||||
system #:graft? #f)))
|
|
||||||
(gexp->derivation name builder
|
|
||||||
#:system system
|
|
||||||
#:target #f
|
|
||||||
#:substitutable? substitutable?
|
|
||||||
#:allowed-references allowed-references
|
|
||||||
#:disallowed-references disallowed-references
|
|
||||||
#:guile-for-build guile)))
|
|
||||||
|
|
||||||
(define chromium-binary-build-system
|
|
||||||
(build-system
|
|
||||||
(name 'chromium-binary)
|
|
||||||
(description "The Chromium based binary build system")
|
|
||||||
(lower lower)))
|
|
||||||
|
|
||||||
;;; chromium-binary.scm ends here
|
|
|
@ -1,15 +1,12 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
|
|
||||||
|
|
||||||
(define-module (nonguix build binary-build-system)
|
(define-module (nonguix build binary-build-system)
|
||||||
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||||
#:use-module (nonguix build utils)
|
#:use-module (nonguix build utils)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-1)
|
|
||||||
#:export (%standard-phases
|
#:export (%standard-phases
|
||||||
binary-build))
|
binary-build))
|
||||||
|
|
||||||
|
@ -116,10 +113,6 @@ The inputs are optional when the file is an executable."
|
||||||
(invoke "patchelf" "--set-rpath" rpath binary)))
|
(invoke "patchelf" "--set-rpath" rpath binary)))
|
||||||
#t)
|
#t)
|
||||||
|
|
||||||
(display "Using patchelf version: ")
|
|
||||||
(force-output)
|
|
||||||
(invoke "patchelf" "--version")
|
|
||||||
|
|
||||||
(when (and patchelf-plan
|
(when (and patchelf-plan
|
||||||
(not (null? patchelf-plan)))
|
(not (null? patchelf-plan)))
|
||||||
(let ((interpreter (car (find-files (assoc-ref inputs "libc") "ld-linux.*\\.so")))
|
(let ((interpreter (car (find-files (assoc-ref inputs "libc") "ld-linux.*\\.so")))
|
||||||
|
@ -140,42 +133,10 @@ The inputs are optional when the file is an executable."
|
||||||
patchelf-plan)))
|
patchelf-plan)))
|
||||||
#t)
|
#t)
|
||||||
|
|
||||||
(define (deb-file? binary-file)
|
|
||||||
(string-suffix? ".deb" binary-file))
|
|
||||||
|
|
||||||
(define (unpack-deb deb-file)
|
|
||||||
(invoke "ar" "x" deb-file)
|
|
||||||
(let ((data-file (find file-exists?
|
|
||||||
(list "data.tar.xz" "data.tar.gz"
|
|
||||||
"data.tar.bz2"))))
|
|
||||||
(invoke "tar" "xvf" data-file)
|
|
||||||
(invoke "rm" "-rfv" "control.tar.gz"
|
|
||||||
data-file
|
|
||||||
deb-file
|
|
||||||
"debian-binary")))
|
|
||||||
|
|
||||||
(define* (binary-unpack #:key source #:allow-other-keys)
|
|
||||||
(let* ((files (filter (lambda (f)
|
|
||||||
(not (string=? (basename f) "environment-variables")))
|
|
||||||
(find-files (getcwd))))
|
|
||||||
(binary-file (car files)))
|
|
||||||
(when (= 1 (length files))
|
|
||||||
(mkdir "binary")
|
|
||||||
(chdir "binary")
|
|
||||||
(match binary-file
|
|
||||||
((? deb-file?) (unpack-deb binary-file))
|
|
||||||
(_
|
|
||||||
(begin
|
|
||||||
(format #t "Unknown file type: ~a~%" (basename binary-file))
|
|
||||||
;; Cleanup after ourselves
|
|
||||||
(chdir "..")
|
|
||||||
(rmdir "binary")))))))
|
|
||||||
|
|
||||||
(define %standard-phases
|
(define %standard-phases
|
||||||
;; Everything is as with the GNU Build System except for the `binary-unpack',
|
;; Everything is as with the GNU Build System except for the `configure'
|
||||||
;; `configure', `build', `check' and `install' phases.
|
;; , `build', `check' and `install' phases.
|
||||||
(modify-phases gnu:%standard-phases
|
(modify-phases gnu:%standard-phases
|
||||||
(add-after 'unpack 'binary-unpack binary-unpack)
|
|
||||||
(delete 'bootstrap)
|
(delete 'bootstrap)
|
||||||
(delete 'configure)
|
(delete 'configure)
|
||||||
(delete 'build)
|
(delete 'build)
|
||||||
|
|
|
@ -1,79 +0,0 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
|
|
||||||
(define-module (nonguix build chromium-binary-build-system)
|
|
||||||
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
|
||||||
#:use-module ((nonguix build binary-build-system) #:prefix binary:)
|
|
||||||
#:use-module (guix build utils)
|
|
||||||
#:use-module (ice-9 ftw)
|
|
||||||
#:use-module (ice-9 match)
|
|
||||||
#:export (%standard-phases
|
|
||||||
chromium-binary-build))
|
|
||||||
|
|
||||||
;; Commentary:
|
|
||||||
;;
|
|
||||||
;; Builder-side code of the Chromium binary build procedure.
|
|
||||||
;;
|
|
||||||
;; Code:
|
|
||||||
|
|
||||||
(define* (install-wrapper #:key inputs outputs #:allow-other-keys)
|
|
||||||
(let* ((output (assoc-ref outputs "out"))
|
|
||||||
(bin (string-append output "/bin"))
|
|
||||||
(fontconfig-minimal (assoc-ref inputs "fontconfig"))
|
|
||||||
(nss (assoc-ref inputs "nss"))
|
|
||||||
(wrap-inputs (map cdr inputs))
|
|
||||||
(lib-directories
|
|
||||||
(search-path-as-list '("lib") wrap-inputs))
|
|
||||||
(bin-directories
|
|
||||||
(search-path-as-list
|
|
||||||
'("bin" "sbin" "libexec")
|
|
||||||
wrap-inputs)))
|
|
||||||
(for-each
|
|
||||||
(lambda (exe)
|
|
||||||
(display (string-append "Wrapping " exe "\n"))
|
|
||||||
(wrap-program exe
|
|
||||||
`("FONTCONFIG_PATH" ":" prefix
|
|
||||||
(,(string-join
|
|
||||||
(list
|
|
||||||
(string-append fontconfig-minimal "/etc/fonts")
|
|
||||||
output)
|
|
||||||
":")))
|
|
||||||
`("PATH" ":" prefix
|
|
||||||
(,(string-join
|
|
||||||
(append
|
|
||||||
bin-directories
|
|
||||||
(list
|
|
||||||
bin))
|
|
||||||
":")))
|
|
||||||
`("LD_LIBRARY_PATH" ":" prefix
|
|
||||||
(,(string-join
|
|
||||||
(append
|
|
||||||
lib-directories
|
|
||||||
(list
|
|
||||||
(string-append nss "/lib/nss")
|
|
||||||
output))
|
|
||||||
":")))
|
|
||||||
;; Give a hint to Electron-based apps to detect if Wayland or X11 should
|
|
||||||
;; be used.
|
|
||||||
;; NOTE: The env-var version of this CLI arg was added in Electron >=28
|
|
||||||
`("ELECTRON_OZONE_PLATFORM_HINT" ":" =
|
|
||||||
("auto"))))
|
|
||||||
(map
|
|
||||||
(lambda (exe) (string-append bin "/" exe))
|
|
||||||
(filter
|
|
||||||
(lambda (exe) (not (string-prefix? "." exe)))
|
|
||||||
(scandir bin))))
|
|
||||||
#t))
|
|
||||||
|
|
||||||
(define %standard-phases
|
|
||||||
;; Everything is as with the binary-build-system except for the
|
|
||||||
;; `install-wrapper' phase.
|
|
||||||
(modify-phases binary:%standard-phases
|
|
||||||
(add-after 'install 'install-wrapper install-wrapper)))
|
|
||||||
|
|
||||||
(define* (chromium-binary-build #:key inputs (phases %standard-phases)
|
|
||||||
#:allow-other-keys #:rest args)
|
|
||||||
"Build the given package, applying all of PHASES in order."
|
|
||||||
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
|
|
||||||
|
|
||||||
;;; chromium-binary-build-system.scm ends here
|
|
|
@ -1,18 +1,15 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
|
||||||
|
|
||||||
(define-module (nonguix build utils)
|
(define-module (nonguix build utils)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 binary-ports)
|
#:use-module (ice-9 binary-ports)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (srfi srfi-1)
|
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:export (64-bit?
|
#:export (64-bit?
|
||||||
make-wrapper
|
make-wrapper
|
||||||
concatenate-files
|
concatenate-files))
|
||||||
build-paths-from-inputs))
|
|
||||||
|
|
||||||
(define (64-bit? file)
|
(define (64-bit? file)
|
||||||
"Return true if ELF file is in 64-bit format, false otherwise.
|
"Return true if ELF file is in 64-bit format, false otherwise.
|
||||||
|
|
|
@ -4,14 +4,11 @@
|
||||||
|
|
||||||
(define-module (nonguix utils)
|
(define-module (nonguix utils)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (srfi srfi-43)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 textual-ports)
|
#:use-module (ice-9 textual-ports)
|
||||||
#:use-module (ice-9 popen)
|
#:use-module (ice-9 popen)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages))
|
||||||
#:use-module (gnu services)
|
|
||||||
#:export (with-transformation))
|
|
||||||
|
|
||||||
(define-public (to32 package64)
|
(define-public (to32 package64)
|
||||||
"Build package for i686-linux.
|
"Build package for i686-linux.
|
||||||
|
@ -25,45 +22,3 @@ Only x86_64-linux and i686-linux are supported.
|
||||||
(arguments `(#:system "i686-linux"
|
(arguments `(#:system "i686-linux"
|
||||||
,@(package-arguments package64)))))
|
,@(package-arguments package64)))))
|
||||||
(_ package64)))
|
(_ package64)))
|
||||||
|
|
||||||
;; For concerns and direction of improvement, see this thread:
|
|
||||||
;; https://lists.gnu.org/archive/html/guix-devel/2024-06/msg00275.html
|
|
||||||
(define* (with-transformation proc obj #:optional (pred package?))
|
|
||||||
"Recursing into child elements, apply PROC to every element of OBJ that
|
|
||||||
matches PRED."
|
|
||||||
(match obj
|
|
||||||
((? pred)
|
|
||||||
(proc obj))
|
|
||||||
((? procedure?)
|
|
||||||
(lambda args
|
|
||||||
(apply values
|
|
||||||
(map (cut with-transformation proc <> pred)
|
|
||||||
(call-with-values
|
|
||||||
(lambda ()
|
|
||||||
(apply obj args))
|
|
||||||
list)))))
|
|
||||||
((a . b)
|
|
||||||
(cons (with-transformation proc a pred)
|
|
||||||
(with-transformation proc b pred)))
|
|
||||||
((_ ...)
|
|
||||||
(map (cut with-transformation proc <> pred)
|
|
||||||
obj))
|
|
||||||
(#(_ ...)
|
|
||||||
(vector-map (lambda (vec elt)
|
|
||||||
(with-transformation proc elt pred))
|
|
||||||
obj))
|
|
||||||
;; `<service-type>' and `<origin>' record types are expected to not be
|
|
||||||
;; modified. Altering them causes very difficult to debug run-time errors.
|
|
||||||
((or (? service-type?)
|
|
||||||
(? origin?))
|
|
||||||
obj)
|
|
||||||
((? record?)
|
|
||||||
(let* ((record-type (record-type-descriptor obj))
|
|
||||||
(record-fields (record-type-fields record-type)))
|
|
||||||
(apply (record-constructor record-type)
|
|
||||||
(map (lambda (field)
|
|
||||||
(let* ((accessor (record-accessor record-type field))
|
|
||||||
(obj (accessor obj)))
|
|
||||||
(with-transformation proc obj pred)))
|
|
||||||
record-fields))))
|
|
||||||
(_ obj)))
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user