Compare commits
338 Commits
make-authe
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
2ed247c0c8 | ||
|
8327932008 | ||
|
0d9c22d1c4 | ||
|
794aa4eff8 | ||
|
9f06b18aef | ||
|
3df2e2ccc4 | ||
|
c385e67f7d | ||
|
bd2f475ac6 | ||
|
9d4664b3d2 | ||
|
35d63ed31a | ||
|
8c1658014a | ||
|
7197aec14c | ||
|
1be22dfea3 | ||
|
26778f221b | ||
|
1df7887148 | ||
|
7c1a45d8e7 | ||
|
e4fafbad8e | ||
|
9b14c315ef | ||
|
440758d5dc | ||
|
5c6ef7cafd | ||
|
e215ff3c31 | ||
|
079d6da868 | ||
|
f80b238275 | ||
|
faf4c7dcf3 | ||
|
566cf65f9c | ||
|
b33c229161 | ||
|
f3a110cbd7 | ||
|
e290eaf25f | ||
|
c29a9af656 | ||
|
a11ff2a65a | ||
|
c196d02dc4 | ||
|
341c6e106d | ||
|
368701e26b | ||
|
f0e7c88853 | ||
|
e32a8591f9 | ||
|
565d287b75 | ||
|
f6c03eefeb | ||
|
2c77fe5331 | ||
|
b680888a22 | ||
|
3195ddf9f1 | ||
|
3813013d69 | ||
|
83f2040587 | ||
|
7912c08045 | ||
|
6dc7d74abd | ||
|
27954407eb | ||
|
c075e3ae21 | ||
|
851f2184e4 | ||
|
d234d9fa94 | ||
|
fd5a852e77 | ||
|
6ee78bb755 | ||
|
e3fb39c68a | ||
|
f44a49d309 | ||
|
3112b76fb8 | ||
|
87a6f757bc | ||
|
fc669782f0 | ||
|
f92d60d0a5 | ||
|
9730e95072 | ||
|
dd10e11910 | ||
|
578cef4e50 | ||
|
da06a007f8 | ||
|
6dce8b9bc7 | ||
|
5678801fbb | ||
|
88f33edcb0 | ||
|
e2ddc617e7 | ||
|
10e3c2bcae | ||
|
e81013943d | ||
|
4fe0608a5c | ||
|
5a7e61a0a5 | ||
|
faeed8a6a4 | ||
|
d14b552a6d | ||
|
4aa03a3ccf | ||
|
720df79727 | ||
|
825c68acea | ||
|
661efb289c | ||
|
7efff15189 | ||
|
dae0193bff | ||
|
792d5ecba8 | ||
|
91c0fed80d | ||
|
6e864249c2 | ||
|
479801db4d | ||
|
0c4a83a006 | ||
|
af911e9b2c | ||
|
88664240de | ||
|
eadb3374ab | ||
|
0d9869b5ff | ||
|
eab6ec15d9 | ||
|
63cf400ec9 | ||
|
311ad8ee13 | ||
|
5fd10621ce | ||
|
9814d2f566 | ||
|
a21f497504 | ||
|
3d54c63d35 | ||
|
8a6a4a3982 | ||
|
d8c25a0ad2 | ||
|
8dbfc04639 | ||
|
b03ec15974 | ||
|
7d912c1c46 | ||
|
3cdafc4802 | ||
|
d9f5fc57b3 | ||
|
64314bba83 | ||
|
99574ff94b | ||
|
f82534a8a8 | ||
|
425f3ee3dd | ||
|
c60ade9082 | ||
|
e6eccd3891 | ||
|
b79ef566ba | ||
|
c7e6962eb3 | ||
|
3b78eca656 | ||
|
141db409ef | ||
|
9f065c321e | ||
|
e72d4a7741 | ||
|
ba4c8bdd42 | ||
|
b91474f15e | ||
|
c1fb20ea53 | ||
|
d0e6e969ed | ||
|
bb03bb5dba | ||
|
aa1bfa802f | ||
|
9734a6a1fe | ||
|
00e2480d23 | ||
|
831f184a7d | ||
|
459700a58a | ||
|
a3bdbb9ec1 | ||
|
883c28fcec | ||
|
714db288db | ||
|
ad966c3844 | ||
|
d47b2f5a7b | ||
|
14c3e1fdc8 | ||
|
8cffc6b168 | ||
|
15fa7d02b6 | ||
|
630dc221ab | ||
|
38f77e9399 | ||
|
1fa6d4c194 | ||
|
e355a2ff67 | ||
|
db0bb9d0a6 | ||
|
ea84538b88 | ||
|
2be61e5d23 | ||
|
3e986ae6eb | ||
|
c21ece1b05 | ||
|
6a9fb8ea30 | ||
|
c2712c15ab | ||
|
62cbdd9112 | ||
|
cd0932c23c | ||
|
820e171503 | ||
|
b2ce94fe65 | ||
|
269997b06c | ||
|
a26aa5ecad | ||
|
1f6e595e26 | ||
|
fc5e2c7cb6 | ||
|
74b354fc26 | ||
|
3c3870a964 | ||
|
6af4aa2947 | ||
|
29500f81d4 | ||
|
99a4773155 | ||
|
e56f2bebc5 | ||
|
b8d6f9b913 | ||
|
6b54040cb4 | ||
|
e6b3bb87a4 | ||
|
fe9e92c924 | ||
|
bcdd831723 | ||
|
1e43499900 | ||
|
60f719b400 | ||
|
b6bb627631 | ||
|
1843650500 | ||
|
0f2e067ad0 | ||
|
47983a25db | ||
|
30ebd4262d | ||
|
55c8b9b212 | ||
|
dc7daa560e | ||
|
1d7c890926 | ||
|
df623c6cd5 | ||
|
8d982af6fd | ||
|
6c3b84b0be | ||
|
016cfc5775 | ||
|
6fc333ec18 | ||
|
20a6327134 | ||
|
94935f300d | ||
|
32cc099af9 | ||
|
69cf1764db | ||
|
efdd540f5e | ||
|
a3f0f98034 | ||
|
598738cb95 | ||
|
57d6d0cd4b | ||
|
92d4729bc6 | ||
|
21f160ee83 | ||
|
ee166d55db | ||
|
1b0594dc53 | ||
|
8b3999be51 | ||
|
6ffbeaf331 | ||
|
3c8465d2eb | ||
|
dbbd1bd9a0 | ||
|
3fb11bd107 | ||
|
05df998a00 | ||
|
cc0f27fb8d | ||
|
663d6ca760 | ||
|
2e7c5c0653 | ||
|
b8f18f41d7 | ||
|
1ab9aeb738 | ||
|
7a44d01a7f | ||
|
a6d95345e0 | ||
|
9fe6f0751b | ||
|
f2c953b06b | ||
|
d0aa4061ce | ||
|
831f3ff142 | ||
|
5a2de72b98 | ||
|
ea5ace7f2d | ||
|
35cba956ad | ||
|
877ed8cc4e | ||
|
1dcd866842 | ||
|
409b050f94 | ||
|
965c0d251d | ||
|
c10fc3e3a7 | ||
|
75eccbccc8 | ||
|
1d8f477b6d | ||
![]() |
b9bca55efc | ||
|
8a0e6588ee | ||
|
82335c1bf5 | ||
|
143b597422 | ||
|
1c14223ced | ||
|
ad46caa248 | ||
|
3592646f8d | ||
|
e6692e7f07 | ||
|
5ba636cbef | ||
|
1a7a7a2a6d | ||
|
9446bf27a4 | ||
|
363c541171 | ||
|
8383f9465b | ||
|
ad1b732187 | ||
|
92f4921c66 | ||
|
f2b49dc993 | ||
|
208255582d | ||
|
9f10369e01 | ||
|
34935b49ae | ||
|
d1609e765b | ||
|
81d5098e9b | ||
|
7081518be7 | ||
|
2ce37848a3 | ||
|
2d1a5c8257 | ||
|
779ef9a393 | ||
|
76251fb771 | ||
|
fd939d13fa | ||
|
0018464a1f | ||
|
cd565db6d7 | ||
|
3dca585034 | ||
|
be61a1829a | ||
|
39e64b2b77 | ||
|
260855dc5e | ||
|
3e6050eb84 | ||
|
ffe4fe4e6c | ||
|
b08562d4c9 | ||
|
d35912bd9e | ||
|
8a56ebb666 | ||
|
97925d2091 | ||
|
e4e34b7da4 | ||
|
e3896f51d2 | ||
|
deab71dbe6 | ||
|
fbf5024faf | ||
|
8c1a56e16e | ||
|
357888aa25 | ||
|
74fa6e1916 | ||
|
57c915ac9e | ||
|
b0ebc7cb24 | ||
|
2ae8a04b57 | ||
|
5fab8f4967 | ||
|
54d01560e9 | ||
|
f6c8eb082c | ||
|
d59c557f79 | ||
|
0ae85eb25e | ||
|
732cce2c90 | ||
|
c05b4995ab | ||
|
5b0465cf31 | ||
|
2b4dfe83e9 | ||
|
7006d54c47 | ||
|
99e12e9cbe | ||
|
4bc11de5dd | ||
|
5f7dabe418 | ||
|
47941b0a84 | ||
|
c1c9bb0571 | ||
|
fc49e4d6db | ||
|
d358152cc8 | ||
|
dd080d7a91 | ||
|
a276531874 | ||
|
bb6fcec6e9 | ||
|
1ee5d0cc09 | ||
|
22ceef2501 | ||
|
f9a27a679b | ||
|
60c4ea0dd0 | ||
|
9c70cf49c8 | ||
|
393abd05a2 | ||
|
80b273e86a | ||
|
54fb2194a1 | ||
|
2978ae66b9 | ||
|
ec3565d284 | ||
|
e7d3824c87 | ||
|
7651e8be04 | ||
|
ec1daa71c7 | ||
|
a79f2b58e2 | ||
|
8d047fc9a1 | ||
|
b04018d38a | ||
|
d6dbbc3a55 | ||
|
34dec82fa9 | ||
|
62daa38457 | ||
|
185176c8fa | ||
|
63fed4f383 | ||
|
756f4d2ad9 | ||
|
5bb3df8b35 | ||
|
a4356defe7 | ||
|
79939d562b | ||
|
c245d8f80b | ||
|
53d1cb350d | ||
|
9bfb057c3b | ||
|
5bfbb978e9 | ||
|
5c33acaaa5 | ||
|
cd07617047 | ||
|
556057f333 | ||
|
e54439a302 | ||
|
2d8de496b1 | ||
|
09151acd73 | ||
|
8c08d0bbe5 | ||
|
1c419ee1a8 | ||
|
3cebd9c77b | ||
|
825f6ee783 | ||
|
812250d5b6 | ||
|
40809109fc | ||
|
99f3249049 | ||
|
48d59208fc | ||
|
cd6b8abeb3 | ||
|
545a11dee6 | ||
|
5baccd1d72 | ||
|
8b130114d6 | ||
|
8ecb4e5b32 | ||
|
87357a2bec | ||
|
f8b956664c | ||
|
587cf0a135 | ||
|
e9e954a6f0 | ||
|
2b8a066fa1 | ||
|
db2293400d | ||
|
2d648f10ab | ||
|
f6121e161d |
|
@ -9,6 +9,9 @@
|
|||
(name "ajgrf"))
|
||||
("50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"
|
||||
(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"
|
||||
(name "ison"))
|
||||
(;; primary: "1BA4 08C5 8BF2 0EA7 3179 635A 865D C0A3 DED9 B5D0"
|
||||
|
@ -18,7 +21,8 @@
|
|||
(name "jonsger"))
|
||||
("D319 C7A9 8F2C 3A11 D9C0 0E30 F369 0CBE 3152 EF58"
|
||||
(name "pineapples"))
|
||||
("A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9"
|
||||
(;; primary: "7E9F 5BF6 1680 4367 127B 7A87 F9E6 9FB8 5A75 54F1"
|
||||
"A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9"
|
||||
(name "podiki"))
|
||||
("1EFB 0909 1F17 D28C CBF9 B13A 53D4 57B2 D636 EE82"
|
||||
(name "roptat"))))
|
||||
|
|
14
Makefile
14
Makefile
|
@ -1,14 +0,0 @@
|
|||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
# Copyright © 2024 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
# Copyright © 2024 Wolf <wolf@wolfsden.cz>
|
||||
|
||||
# nonguix channel
|
||||
channel_intro_commit = 897c1a470da759236cc11798f4e0a5f7d4d59fbc
|
||||
channel_intro_signer = 2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5
|
||||
|
||||
authenticate:
|
||||
echo "Authenticating Git checkout..." ; \
|
||||
guix git authenticate \
|
||||
--cache-key=channels/nonguix --stats \
|
||||
"$(channel_intro_commit)" "$(channel_intro_signer)"
|
99
README.org
99
README.org
|
@ -96,20 +96,18 @@ your configuration.
|
|||
For some hardware the official Guix installation image won't do
|
||||
(e.g. unsupported wifi). You can find a pre-generated installation image
|
||||
(time and version in line with upstream Guix), running the nonfree Linux
|
||||
kernel and nonfree firmware, on the [[https://gitlab.com/nonguix/nonguix/-/releases][Releases page]]. Or, you can generate an
|
||||
installation image from a local checkout of this repository, at a more recent
|
||||
commit, 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
|
||||
guix system image --image-type=iso9660 /path/to/this/channel/nongnu/system/install.scm
|
||||
#+end_src
|
||||
|
||||
Like the official Guix installation image, this will produce a read-only image
|
||||
with any changes made stored in memory. As indicated below, you will need to
|
||||
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:
|
||||
with any changes made stored in memory. Alternatively, a writable image can
|
||||
be created with the following command:
|
||||
|
||||
#+begin_src sh
|
||||
guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
|
||||
|
@ -126,11 +124,14 @@ 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
|
||||
#+END_SRC
|
||||
|
||||
The installation media produced by the above method does not automatically
|
||||
configure your channels specification. You need to add Nonguix "manually"
|
||||
into ~/etc/guix/channels.scm~ and then run ~guix pull~ to make Guix aware of
|
||||
Nonguix scheme libraries. Below is Guile scheme code to include Nonguix in the
|
||||
channel specification.
|
||||
*** Important note for 1.4.0
|
||||
The installation media for 1.4.0 or those produced manually before commit
|
||||
[[https://gitlab.com/nonguix/nonguix/-/commit/80b273e86a19ceaee6d9b6650ed56e853409a799#note_2075084624][80b273e8]] (April 2024) do not automatically configure your channels
|
||||
specification. You need to add Nonguix "manually" into ~/etc/guix/channels.scm~
|
||||
and then run ~guix pull~ to make Guix aware of Nonguix scheme libraries. This
|
||||
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
|
||||
(use-modules (ice-9 pretty-print))
|
||||
|
@ -220,6 +221,75 @@ firmware, and blacklisting of conflicting modules:
|
|||
...))
|
||||
...)
|
||||
#+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
|
||||
|
||||
A Nonguix substitute server is available at [[https://substitutes.nonguix.org]].
|
||||
|
@ -259,6 +329,9 @@ 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'
|
||||
#+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]]
|
||||
in the Guix manual for more details.
|
||||
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# Copyright © 2024 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
# Copyright © 2024 Wolf <wolf@wolfsden.cz>
|
||||
|
||||
# This hook script prevents the user from pushing to GitLab if any of the new
|
||||
# commits' OpenPGP signatures cannot be verified, or if a commit is signed
|
||||
# with an unauthorized key.
|
||||
|
||||
# Called by "git push" after it has checked the remote status, but before
|
||||
# anything has been pushed. If this script exits with a non-zero status nothing
|
||||
# will be pushed.
|
||||
#
|
||||
# This hook is called with the following parameters:
|
||||
#
|
||||
# $1 -- Name of the remote to which the push is being done
|
||||
# $2 -- URL to which the push is being done
|
||||
#
|
||||
# If pushing without using a named remote those arguments will be equal.
|
||||
#
|
||||
# Information about the commits which are being pushed is supplied as lines to
|
||||
# the standard input in the form:
|
||||
#
|
||||
# <local ref> <local sha1> <remote ref> <remote sha1>
|
||||
|
||||
# This is the "empty hash" used by Git when pushing a branch deletion.
|
||||
z40=0000000000000000000000000000000000000000
|
||||
|
||||
while read local_ref local_hash remote_ref remote_hash
|
||||
do
|
||||
# When deleting a remote branch, no commits are pushed to the remote, and
|
||||
# thus there are no signatures to be verified.
|
||||
if [ "$local_hash" != $z40 ]
|
||||
then
|
||||
# Only use the hook when pushing to the nonguix project on GitLab.
|
||||
case "$2" in
|
||||
*gitlab.com[:/]nonguix/*)
|
||||
exec make authenticate
|
||||
exit 127
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
121
guix/import/nvidia.scm
Normal file
121
guix/import/nvidia.scm
Normal file
|
@ -0,0 +1,121 @@
|
|||
;;; 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.
|
10
news.txt
10
news.txt
|
@ -9,6 +9,16 @@
|
|||
(channel-news
|
||||
(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)"))
|
||||
|
|
66
nongnu/packages.scm
Normal file
66
nongnu/packages.scm
Normal file
|
@ -0,0 +1,66 @@
|
|||
;;; 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
|
||||
(package
|
||||
(name "anydesk")
|
||||
(version "6.3.0")
|
||||
(version "6.3.2-1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.anydesk.com/linux/anydesk-"
|
||||
version "-amd64.tar.gz"))
|
||||
(uri (string-append "https://download.anydesk.com/linux/anydesk_"
|
||||
version "_amd64.deb"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lp4zvbdriwbzfnvblbbpzxsrs0l425rha9qjs9sy6ff6myk7qxi"))))
|
||||
"13b5ab4a889vz39d36f45mhv3mlaxb305wsh3plk3dbjcrkkkirb"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:validate-runpath? #f
|
||||
#:strip-binaries? #f ;; For some reason it breaks the program
|
||||
#:patchelf-plan
|
||||
`(("anydesk" ("atk"
|
||||
`(("usr/bin/anydesk" ("atk"
|
||||
"cairo"
|
||||
"fontconfig"
|
||||
"freetype"
|
||||
|
@ -66,17 +66,29 @@
|
|||
"polkit-gnome"
|
||||
"pulseaudio")))
|
||||
#:install-plan
|
||||
`(("anydesk" "/bin/")
|
||||
("polkit-1/com.anydesk.anydesk.policy" "/etc/polkit-1/actions/")
|
||||
("icons/" "/share/icons/"))
|
||||
`(("usr/bin/anydesk" "/bin/")
|
||||
("usr/share/polkit-1/actions/com.anydesk.anydesk.policy" "/etc/polkit-1/actions/")
|
||||
("usr/share/icons" "/share/icons/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(invoke "tar" "-xvzf" (assoc-ref inputs "source") "--strip-components" "1")))
|
||||
(replace 'binary-unpack
|
||||
(lambda* (#: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")
|
||||
(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
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((desktop-file "anydesk.desktop")
|
||||
(let* ((desktop-file "usr/share/applications/anydesk.desktop")
|
||||
(out (assoc-ref outputs "out"))
|
||||
(applications (string-append out "/share/applications")))
|
||||
(substitute* desktop-file
|
||||
|
|
|
@ -146,7 +146,7 @@
|
|||
openlibm
|
||||
pulseaudio
|
||||
qtbase-5
|
||||
qtserialport
|
||||
qtserialport-5
|
||||
qtmultimedia-5
|
||||
zlib))
|
||||
(synopsis "Layout, editing, and control software for your laser cutter")
|
||||
|
|
|
@ -121,6 +121,7 @@
|
|||
flac
|
||||
font-liberation
|
||||
gdk-pixbuf
|
||||
gtk
|
||||
harfbuzz
|
||||
libexif
|
||||
libglvnd
|
||||
|
@ -143,10 +144,10 @@
|
|||
(license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
|
||||
|
||||
(define-public google-chrome-stable
|
||||
(make-google-chrome "stable" "121.0.6167.139" "1b08wqflp1j5yqpw2g9z2s239gs8bzqbxigcxk93aqwf5c21ijkh"))
|
||||
(make-google-chrome "stable" "131.0.6778.108" "0b8a3dmn7n4kyjzyirxcy6xihnasmp3rcy2ly4zh7vp7r5l6lkqd"))
|
||||
|
||||
(define-public google-chrome-beta
|
||||
(make-google-chrome "beta" "122.0.6261.6" "1b12bjcg99f6bjfhm311hdx9s1a4i13mcgxbvf1gpzq8989c1g96"))
|
||||
(make-google-chrome "beta" "132.0.6834.32" "0ncjyg3vxsjspb0i1nsflcry9sfsffnqiwa2y7cgh46xamdq6f2c"))
|
||||
|
||||
(define-public google-chrome-unstable
|
||||
(make-google-chrome "unstable" "123.0.6262.5" "04mf9nysdn77371fxa3z0wbvy2k09vw49s3lrcynlwgiwrz89a3m"))
|
||||
(make-google-chrome "unstable" "133.0.6847.2" "1z15maqs1g8lhi7dm9hn4r272nl0g967a11igmw2sj14zl3n9j6g"))
|
||||
|
|
|
@ -87,7 +87,7 @@ lets you focus on your code.")
|
|||
(define-public clj-kondo
|
||||
(package
|
||||
(name "clj-kondo")
|
||||
(version "2023.10.20")
|
||||
(version "2025.01.16")
|
||||
(source (origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri (string-append
|
||||
|
@ -95,11 +95,11 @@ lets you focus on your code.")
|
|||
version "/clj-kondo-" version "-linux-amd64.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zb4bkmhv5mh18z8h82qa1a0m95pd5dwdxg31pqgs6lnlca3vsph"))))
|
||||
"0w9a2lz9xr5446bav2fp70jfinlm9zrl0iv9s0h0b6jczqx2f977"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list #:patchelf-plan `'(("clj-kondo" ("gcc" "zlib")))
|
||||
#:install-plan `'(("clj-kondo" "/bin/"))
|
||||
#:install-plan `'(("./clj-kondo" "/bin/"))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chmod
|
||||
(lambda _
|
||||
|
@ -115,3 +115,67 @@ lets you focus on your code.")
|
|||
(description "Clj-kondo performs static analysis on Clojure, ClojureScript
|
||||
and EDN, without the need of a running REPL.")
|
||||
(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
|
||||
(package
|
||||
(name "unrar")
|
||||
(version "6.2.2")
|
||||
(version "7.0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.rarlab.com/rar/unrarsrc-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mbw20lh300r541dz4m84rvq7b542mnb70yc29afrjj6waknqza7"))))
|
||||
"09l336li4q7yrpjq22q6da2vrynpqbyb4a9fdxa02k65wkwi6p2h"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; No tests.
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
(define-public compcert
|
||||
(package
|
||||
(name "compcert")
|
||||
(version "3.12")
|
||||
(version "3.14")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -24,15 +24,11 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pcrkz1as37iz2wcp8j226fjn672lrj0cip2s0wpkiy097qi0yc5"))))
|
||||
"030fsg0qr9aasmwk0ahp78sw8rbjmf6pl1w9ws5ghs61kyk4qwj1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'allow-newer-coq-version
|
||||
(lambda _
|
||||
(substitute* "configure"
|
||||
(("8.15.2") "8.16.1"))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((system ,(match (or (%current-target-system) (%current-system))
|
||||
|
|
|
@ -67,25 +67,25 @@ various IDEs and plugins.")
|
|||
(license license:expat)))
|
||||
|
||||
(define-public dotnet
|
||||
(let ((dotnet-sdk-version "6.0.9"))
|
||||
(let ((dotnet-sdk-version "8.0.8"))
|
||||
(package
|
||||
(name "dotnet")
|
||||
(version "6.0.401")
|
||||
(version "8.0.401")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch/tarbomb)
|
||||
(uri
|
||||
(string-append "https://download.visualstudio.microsoft.com/download/pr/8159607a-e686-4ead-ac99-b4c97290a5fd/ec6070b1b2cc0651ebe57cf1bd411315/dotnet-sdk-"
|
||||
version
|
||||
"-linux-x64.tar.gz"))
|
||||
(string-append "https://download.visualstudio.microsoft.com/"
|
||||
"download/pr/db901b0a-3144-4d07-b8ab-6e7a43e7a791/"
|
||||
"4d9d1b39b879ad969c6c0ceb6d052381/dotnet-sdk-"
|
||||
version "-linux-x64.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05yr64ffcaf48ripxzcv9nwlzp7r83cy9hz17dm5c0317lhksqch"))))
|
||||
(base32 "1ygr563apl2776yjabn0plsvx5fcmb5wb0fnldrqwb9b5n8d6cb2"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:patchelf-plan
|
||||
`(("dotnet"
|
||||
("gcc:lib" "zlib"))
|
||||
;; TODO: Make this a more compact procedure.
|
||||
`(("dotnet" ("gcc:lib" "zlib"))
|
||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||
dotnet-sdk-version
|
||||
"/libSystem.Net.Security.Native.so")
|
||||
|
@ -94,6 +94,18 @@ various IDEs and plugins.")
|
|||
dotnet-sdk-version
|
||||
"/libSystem.Security.Cryptography.Native.OpenSsl.so")
|
||||
("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/"
|
||||
dotnet-sdk-version
|
||||
"/libSystem.IO.Compression.Native.so")
|
||||
|
@ -108,12 +120,12 @@ various IDEs and plugins.")
|
|||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||
dotnet-sdk-version "/libclrjit.so")
|
||||
("gcc:lib"))
|
||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||
dotnet-sdk-version "/libclrgc.so")
|
||||
("gcc:lib"))
|
||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||
dotnet-sdk-version "/libcoreclr.so")
|
||||
("gcc:lib" "icu4c"))
|
||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||
dotnet-sdk-version "/libdbgshim.so")
|
||||
("gcc:lib"))
|
||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||
dotnet-sdk-version "/libhostpolicy.so")
|
||||
("gcc:lib"))
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
((guix elf) #:select (elf-segments parse-elf PT_INTERP))
|
||||
((ice-9 binary-ports) #:select (get-bytevector-n))
|
||||
((srfi srfi-1) #:select (last))
|
||||
,@%gnu-build-system-modules)
|
||||
,@%default-gnu-imported-modules)
|
||||
#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2023, 2024 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
|
||||
(define-module (nongnu packages editors)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -14,32 +14,39 @@
|
|||
(define-public vscodium
|
||||
(package
|
||||
(name "vscodium")
|
||||
(version "1.87.0.24060")
|
||||
(version "1.92.1.24225")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(let ((arch (match (or (%current-target-system) (%current-system))
|
||||
("aarch64-linux" "arm64")
|
||||
("armhf-linux" "armhf")
|
||||
(_ "x64"))))
|
||||
(string-append
|
||||
"https://github.com/VSCodium/vscodium/releases/download/" version
|
||||
"/VSCodium-linux-" arch "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32 "1lw7j8h0i96mg8si8dmi55ldbz5j63zb93qf1g59siavx84f1zpd"))))
|
||||
(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")
|
||||
#~'(("opt/vscodium/codium" (("out" "/opt/vscodium"))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(mkdir-p "opt/vscodium")
|
||||
(invoke "tar" "-xvf" #$source "-C" "opt/vscodium")))
|
||||
(invoke "tar" "-xvf" source "-C" "opt/vscodium")))
|
||||
(add-before 'install-wrapper 'install-entrypoint
|
||||
(lambda _
|
||||
(let* ((bin (string-append #$output "/bin")))
|
||||
|
@ -65,7 +72,7 @@
|
|||
(string-append apps "/" #$name ".desktop")
|
||||
#:name "VSCodium"
|
||||
#:generic-name "Text Editor"
|
||||
#:exec (string-append #$output "/bin/codium")
|
||||
#:exec (string-append #$output "/bin/codium --ozone-platform-hint=auto")
|
||||
#:icon "code"
|
||||
#:type "Application"
|
||||
#:actions '("new-empty-window")
|
||||
|
@ -76,15 +83,7 @@
|
|||
#:startup-w-m-class "Code"
|
||||
#:comment
|
||||
'(("en" "Code Editing. Redefined.")
|
||||
(#f "Code Editing. Redefined."))))))
|
||||
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
|
||||
(lambda _
|
||||
(wrap-program (string-append #$output "/bin/codium")
|
||||
`("LD_LIBRARY_PATH" ":"
|
||||
prefix
|
||||
(,(string-join
|
||||
(list (string-append #$output "/opt/vscodium"))
|
||||
":")))))))))
|
||||
(#f "Code Editing. Redefined.")))))))))
|
||||
(supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
|
||||
(native-inputs
|
||||
(list tar))
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
;;; 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)
|
||||
|
@ -13,23 +15,29 @@
|
|||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages video))
|
||||
|
||||
(define-public electron
|
||||
(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.1.0")
|
||||
(source (origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri
|
||||
(string-append
|
||||
"https://github.com/electron/electron/releases/download/v"
|
||||
version "/electron-v" version "-"
|
||||
(match (or (%current-system) (%current-target-system))
|
||||
("x86_64-linux" "linux-x64")
|
||||
("i686-linux" "linux-ia32")
|
||||
("aarch64-linux" "linux-arm64")
|
||||
("armhf-linux" "linux-armv7l"))
|
||||
".zip"))
|
||||
(sha256 (base32 "08illknzcikzzsb6i7z1p2xgb20jjc5cx9hynll25f44q9pg48b6"))))
|
||||
(version "27.3.6")
|
||||
(source (electron-source version
|
||||
"12hjn1bfk8c25f54kk561mkjl7hsk8b16rj7a7gczswjdpx6fpi0"))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
`(#:wrapper-plan
|
||||
|
@ -81,3 +89,18 @@ 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"))))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; 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)
|
||||
#:use-module (gnu packages compression)
|
||||
|
@ -134,16 +135,18 @@ HDMI to USB Type-C Bridge in the PinePhone.")
|
|||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:substitutable? #f
|
||||
#:install-plan '( ;Bluetooth firmware
|
||||
("BCM4345C5.hcd" "usr/lib/firmware/brcm/")
|
||||
#:install-plan '(;;Bluetooth firmware
|
||||
("BCM4345C5.hcd" "/lib/firmware/brcm/")
|
||||
;; WiFi firmware
|
||||
("fw_bcm43456c5_ag.bin" "usr/lib/firmware/brcm/")
|
||||
("fw_bcm43456c5_ag.bin" "/lib/firmware/brcm/")
|
||||
("fw_bcm43456c5_ag.bin"
|
||||
"/lib/firmware/brcm/brcmfmac43456-sdio.bin")
|
||||
("brcmfmac43456-sdio.clm_blob"
|
||||
"usr/lib/firmware/brcm/")
|
||||
"/lib/firmware/brcm/")
|
||||
("brcmfmac43456-sdio.AP6256.txt"
|
||||
"usr/lib/firmware/brcm/")
|
||||
"/lib/firmware/brcm/")
|
||||
("brcmfmac43456-sdio.AP6256.txt"
|
||||
"usr/lib/firmware/brcm/brcmfmac43456-sdio.pine64,pinebook-pro.txt"))))
|
||||
"/lib/firmware/brcm/brcmfmac43456-sdio.pine64,pinebook-pro.txt"))))
|
||||
(synopsis "Firmware for the wifi/bt module AP6256")
|
||||
(description
|
||||
"This package provides Firmware for the wifi/bt module AP6256,
|
||||
|
|
|
@ -213,10 +213,10 @@ Included fonts:
|
|||
(define-public font-apple-sf-pro
|
||||
(apple-font
|
||||
#:font-name "SF Pro"
|
||||
#:archive-timestamp "20230710073336"
|
||||
#:archive-timestamp "20240527221252"
|
||||
#:file "SF-Pro"
|
||||
#:version "19.0d6e1"
|
||||
#:hash "19qa6fs6x5614sqw9a6idlizzsssw8256crz1ps2p2n6gwp2fvaq"
|
||||
#: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
|
||||
|
@ -226,10 +226,10 @@ scripts."))
|
|||
(define-public font-apple-sf-compact
|
||||
(apple-font
|
||||
#:font-name "SF Compact"
|
||||
#:archive-timestamp "20230710073418"
|
||||
#:archive-timestamp "20240527221317"
|
||||
#:file "SF-Compact"
|
||||
#:version "19.0d6e1"
|
||||
#:hash "02127drlqvwscq6vaphmvsp85cn8j4zfhi0kb9a3fzc0z8b95hdq"
|
||||
#: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."))
|
||||
|
@ -237,10 +237,10 @@ 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 "20230710073457"
|
||||
#:archive-timestamp "20240527221346"
|
||||
#:file "SF-Mono"
|
||||
#:version "19.0d6e1"
|
||||
#:hash "0vjdpl3xyxl2rmfrnjsxpxdizpdr4canqa1nm63s5d3djs01iad6"
|
||||
#: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."))
|
||||
|
@ -248,10 +248,10 @@ 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 "20230710073501"
|
||||
#:archive-timestamp "20240527221359"
|
||||
#:file "SF-Arabic"
|
||||
#:version "19.0d6e1"
|
||||
#:hash "0phl3wi0lq7djcg8nqg1ml1f73bsfjzmvd2n8hkl6dbprmw614jp"
|
||||
#: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
|
||||
|
@ -261,10 +261,10 @@ based on the point size, and includes a rounded variant."))
|
|||
(define-public font-apple-new-york
|
||||
(apple-font
|
||||
#:font-name "New York"
|
||||
#:archive-timestamp "20230710073506"
|
||||
#:archive-timestamp "20240527221356"
|
||||
#:file "NY"
|
||||
#:version "17.0d5e1"
|
||||
#:hash "1hgxyizpgam7y1xh36fsypd3a1nn417wdnnfk1zahq9vhxrrds2w"
|
||||
#: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
|
||||
|
@ -278,10 +278,10 @@ graphic display face at larger sizes."))
|
|||
(define-public font-apple-sf-symbols
|
||||
(apple-font
|
||||
#:font-name "SF Symbols"
|
||||
#:archive-timestamp "20230710073513"
|
||||
#:file "SF-Symbols-5"
|
||||
#:version "5"
|
||||
#:hash "1bwlq1nf75bv0x36qdk371r2pd5slf3jlv50wgsl0kpj1dds22sf"
|
||||
#: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
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
(define heroic-client
|
||||
(package
|
||||
(name "heroic-client")
|
||||
(version "2.12.0")
|
||||
(version "2.15.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -67,19 +67,12 @@
|
|||
version "/heroic_" version "_amd64.deb"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ikb9r72n7xknns81mibipfwqh0r9hqnm5a3k4xsk8my1gajc60c"))))
|
||||
"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"
|
||||
"lib/Heroic/libEGL.so"
|
||||
"lib/Heroic/libGLESv2.so"
|
||||
"lib/Heroic/libvk_swiftshader.so"
|
||||
"lib/Heroic/libvulkan.so.1"
|
||||
"lib/Heroic/chrome-sandbox"
|
||||
"lib/Heroic/chrome_crashpad_handler"
|
||||
"lib/Heroic/libffmpeg.so")
|
||||
#~'(("lib/Heroic/heroic" (("out" "/lib/Heroic"))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'setup-cwd
|
||||
|
@ -88,26 +81,23 @@
|
|||
;; Use the more standard lib directory for everything.
|
||||
(rename-file "opt/" "lib")
|
||||
;; Remove unneeded files.
|
||||
(delete-file-recursively "usr")
|
||||
;; Fix the .desktop file binary location.
|
||||
(substitute* '("share/applications/heroic.desktop")
|
||||
(("/opt/Heroic/")
|
||||
(string-append #$output "/bin/")))))
|
||||
(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"))))
|
||||
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
|
||||
(lambda _
|
||||
(wrap-program (string-append #$output "/lib/Heroic/heroic")
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$output "/lib/Heroic"))
|
||||
":")))))))))
|
||||
(string-append #$output "/bin/heroic")))))))
|
||||
(home-page "https://heroicgameslauncher.com")
|
||||
(synopsis "A Native GOG, Amazon and Epic Games Launcher")
|
||||
(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.")
|
||||
|
@ -141,7 +131,6 @@ implementation with gogdl and Amazon Games using Nile.")
|
|||
(substitute* "Makefile"
|
||||
(("-fns ")
|
||||
"-fns $(DESTDIR)"))))
|
||||
(delete 'patch-dot-desktop-files)
|
||||
(add-after 'unpack 'patch-startscript
|
||||
(lambda _
|
||||
(substitute* "bin_steam.sh"
|
||||
|
@ -157,8 +146,9 @@ implementation with gogdl and Amazon Games using Nile.")
|
|||
(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-binaries 'post-install
|
||||
(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"))
|
||||
|
@ -179,10 +169,18 @@ implementation with gogdl and Amazon Games using Nile.")
|
|||
("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.
|
||||
("gcc:lib" ,gcc "lib") ; Required for steam startup.
|
||||
;; 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.
|
||||
|
@ -218,6 +216,15 @@ implementation with gogdl and Amazon Games using Nile.")
|
|||
("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).
|
||||
|
@ -225,19 +232,26 @@ implementation with gogdl and Amazon Games using Nile.")
|
|||
|
||||
(define steam-ld.so.conf
|
||||
(packages->ld.so.conf
|
||||
(list (fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
(list (fhs-union steam-container-libs
|
||||
#:name "fhs-union-64")
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
(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")
|
||||
|
@ -246,14 +260,10 @@ implementation with gogdl and Amazon Games using Nile.")
|
|||
(ld.so.conf steam-ld.so.conf)
|
||||
(ld.so.cache steam-ld.so.cache)
|
||||
(union64
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
(fhs-union steam-container-libs
|
||||
#:name "fhs-union-64"))
|
||||
(union32
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
(fhs-union steam-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(link-files '("share"))
|
||||
|
@ -268,8 +278,16 @@ all games will be installed.")))
|
|||
(name "steam-nvidia")
|
||||
;; Steam's .desktop files expect a "steam" executable, so provide that.
|
||||
(binary-name "steam")
|
||||
(union64 (replace-mesa (ngc-union64 steam-container)))
|
||||
(union32 (replace-mesa (ngc-union32 steam-container)))))
|
||||
(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))
|
||||
|
@ -289,15 +307,11 @@ all games will be installed.")))
|
|||
;; this is easier and works.
|
||||
(union64
|
||||
(fhs-union `(,@heroic-extra-client-libs
|
||||
,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-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-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
(fhs-union steam-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(link-files '("share"))
|
||||
|
@ -312,8 +326,17 @@ installed.")))
|
|||
(nonguix-container
|
||||
(inherit heroic-container)
|
||||
(name "heroic-nvidia")
|
||||
(union64 (replace-mesa (ngc-union64 heroic-container)))
|
||||
(union32 (replace-mesa (ngc-union32 heroic-container)))))
|
||||
(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))
|
||||
|
|
|
@ -1,16 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
||||
;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
|
||||
(define-module (nongnu packages game-development)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module ((nonguix licenses) :prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix licenses) :prefix license:)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages gcc)
|
||||
|
@ -159,128 +163,95 @@ development should opt for GLSL rather than Cg.")
|
|||
"https://raw.githubusercontent.com/ValveSoftware/source-sdk-2013/master/LICENSE"))))
|
||||
|
||||
(define-public eduke32
|
||||
;; There are no official releases.
|
||||
(let ((commit "188e14622cfe5c6f63b04b989b350bf2a29a893c")
|
||||
(revision "1")
|
||||
(duke-nukem-3d-directory "share/dukenukem3d"))
|
||||
(package
|
||||
(name "eduke32")
|
||||
(version (git-version "0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://voidpoint.io/terminx/eduke32.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0wy4bppiw4q2hn0v38msrjyvj2hzfvigakc23c2wqfnbl7rm0hrz"))
|
||||
;; Unbundle libxmp.
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin (delete-file-recursively "source/libxmp-lite") #t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
;; Add glu to rpath so that SDL can dlopen it.
|
||||
#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %build-inputs "glu") "/lib"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'unbundle-libxmp
|
||||
(lambda _
|
||||
(substitute* "GNUmakefile"
|
||||
(("-I\\$\\(libxmplite_inc\\)")
|
||||
(string-append "-I" (assoc-ref %build-inputs "libxmp") "/include"))
|
||||
(("^ *audiolib_deps \\+= libxmplite.*$") "")
|
||||
(("-logg") "-logg -lxmp"))
|
||||
(with-directory-excursion "source/audiolib/src"
|
||||
(for-each (lambda (file) (substitute* file (("libxmp-lite/") "")))
|
||||
'("multivoc.cpp" "xmp.cpp")))
|
||||
#t))
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(glu (assoc-ref inputs "glu"))
|
||||
(eduke (string-append out "/bin/eduke32"))
|
||||
(eduke-real (string-append out "/bin/.eduke32-real")))
|
||||
;; TODO: Install custom .desktop file? Need icon.
|
||||
;; See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=eduke32.
|
||||
(install-file "eduke32" (string-append out "/bin"))
|
||||
(install-file "mapster32" (string-append out "/bin"))
|
||||
(install-file "package/common/buildlic.txt"
|
||||
(string-append out "/share/licenses"))
|
||||
;; Wrap program:
|
||||
;; - Make sure current directory is writable, else eduke32 will segfault.
|
||||
;; - Add ../share/dukenukem3d to the dir search list.
|
||||
;; TODO: Skip store duke3d.grp When ~/.config/eduke32/duke3d.grp is found.
|
||||
(rename-file eduke eduke-real)
|
||||
(call-with-output-file eduke
|
||||
(lambda (p)
|
||||
(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.
|
||||
(package
|
||||
(name "eduke32")
|
||||
(version "20240316-10564-0bc78c53d")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dukeworld.com/eduke32/synthesis/"
|
||||
version "/eduke32_src_" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1a9fw1kfriyrybjxl72b2434w3yiz2nxg6541lnyhzbdka2cp2lf"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Remove bundled libxmp and platform-specific stuff.
|
||||
#~(for-each delete-file-recursively '("platform" "source/libxmp-lite")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:license-file-regexp "buildlic.txt"
|
||||
#:tests? #f
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'link-license
|
||||
(lambda _
|
||||
;; Ensure the install-license-files phase can find it.
|
||||
(link "package/common/buildlic.txt" "buildlic.txt")))
|
||||
(add-after 'unpack 'unbundle-libxmp
|
||||
(lambda _
|
||||
(substitute* "Common.mak"
|
||||
(("^LIBS :=" match) (string-append match " -lxmp")))
|
||||
(with-directory-excursion "source/audiolib/src"
|
||||
(for-each (lambda (file) (substitute* file (("libxmp-lite/") "")))
|
||||
'("multivoc.cpp" "xmp.cpp")))))
|
||||
(add-after 'unpack 'fix-share-path
|
||||
(lambda _
|
||||
(substitute* "source/duke3d/src/common.cpp"
|
||||
(("/usr/local/share/games") (string-append #$output "/share")))))
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin")))
|
||||
(install-file "eduke32" bin)
|
||||
(install-file "mapster32" bin)
|
||||
(install-file "package/sdk/m32help.hlp"
|
||||
(string-append #$output "/share/eduke32"))))))))
|
||||
(inputs (list alsa-lib
|
||||
flac
|
||||
glu
|
||||
gtk+-2
|
||||
libvorbis
|
||||
libvpx
|
||||
libxmp
|
||||
sdl2
|
||||
sdl2-mixer))
|
||||
(native-inputs
|
||||
(list gdk-pixbuf pkg-config))
|
||||
(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
|
||||
with game files or or put @file{.grp} game files manually in
|
||||
@file{~/.config/eduke32/}.")
|
||||
(home-page "https://eduke32.com/")
|
||||
(license (license:nonfree
|
||||
"https://eduke32.com/buildlic.txt")))))
|
||||
(home-page "https://eduke32.com")
|
||||
(license
|
||||
(list license:gpl2
|
||||
(license:nonfree "file://package/common/buildlic.txt")))))
|
||||
|
||||
(define-public fury
|
||||
(package
|
||||
(inherit eduke32)
|
||||
(package/inherit eduke32
|
||||
(name "fury")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments eduke32)
|
||||
((#:make-flags flags ''()) `(cons* "FURY=1" ,flags))
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let* ((out (assoc-ref %outputs "out")))
|
||||
(install-file "fury" (string-append out "/bin"))
|
||||
(install-file "mapster32" (string-append out "/bin"))
|
||||
(install-file "package/common/buildlic.txt"
|
||||
(string-append out "/share/licenses")))
|
||||
#t))))))
|
||||
((#:make-flags flags #~'())
|
||||
#~(cons* "FURY=1" #$flags))
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'disable-sdl-static
|
||||
(lambda _
|
||||
(substitute* "GNUmakefile"
|
||||
(("SDL_STATIC := 1") ""))))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(install-file "fury" (string-append #$output "/bin"))))))))
|
||||
(inputs
|
||||
(alist-delete "libvpx" (package-inputs eduke32)))
|
||||
(synopsis "Game engine for the first-person shooter Ion Fury")
|
||||
(description
|
||||
(string-append
|
||||
"This is the @code{eduke32} engine built with support for the Ion Fury
|
||||
"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
|
||||
@option{-j} to specify the directory containing @file{fury.grp}."))))
|
||||
@option{-j} to specify the directory containing @file{fury.grp}.")))
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
(define-public lgogdownloader
|
||||
(package
|
||||
(name "lgogdownloader")
|
||||
(version "3.12")
|
||||
(version "3.15")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -31,7 +31,7 @@
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0kmz5zsbci7iilbqdvql9c1vk2b1q2flsdr6psnkln07xp664di2"))))
|
||||
(base32 "0bjjn2wam4f2lzmk0hkdxxc7k0wk3f0lyszl0birsr9h3jjpjqw7"))))
|
||||
(build-system qt-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DUSE_QT_GUI=ON")
|
||||
|
@ -39,15 +39,11 @@
|
|||
(inputs
|
||||
(list boost
|
||||
curl
|
||||
htmlcxx
|
||||
jsoncpp
|
||||
liboauth
|
||||
qtbase-5
|
||||
qtdeclarative-5
|
||||
qtwebchannel-5
|
||||
qtwebengine-5
|
||||
qtwebengine
|
||||
rhash
|
||||
tinyxml2
|
||||
tidy-html
|
||||
zlib))
|
||||
(native-inputs
|
||||
(list help2man
|
||||
|
|
47
nongnu/packages/hugo.scm
Normal file
47
nongnu/packages/hugo.scm
Normal file
|
@ -0,0 +1,47 @@
|
|||
;;; 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)))
|
|
@ -11,7 +11,7 @@
|
|||
(define-public k9s
|
||||
(package
|
||||
(name "k9s")
|
||||
(version "0.27.4")
|
||||
(version "0.32.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -19,7 +19,7 @@
|
|||
version "/k9s_Linux_amd64.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14j37kl8pbmbid4np48cfv5k8vic6ngnc4pjh01qr6szplg861z5"))))
|
||||
"18yf4vr4pgdl5ssijmpf45amdasjrd3mbgnsp1cjnadszvsiphrk"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -29,8 +29,8 @@
|
|||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(invoke "tar" "-xvf" #$source))))))
|
||||
(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")
|
||||
|
@ -62,8 +62,8 @@ offers subsequent commands to interact with your observed resources.")
|
|||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(copy-file #$source "./katenary")
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./katenary")
|
||||
(chmod "katenary" #o644)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
|
@ -79,14 +79,14 @@ Helm Chart for Kubernetes.")
|
|||
(define-public kubectl
|
||||
(package
|
||||
(name "kubectl")
|
||||
(version "1.28.1")
|
||||
(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
|
||||
"1qbl4a2xv795apvbwahdb9kzcm2wys0am1c72as3iavgs3wxd9z7"))))
|
||||
"0dr40ckdj65ka6ndp8knyprh1k0nx6vg8yyg7p6c1lc49b3as9vw"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -96,8 +96,8 @@ Helm Chart for Kubernetes.")
|
|||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(copy-file #$source "./kubectl")
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./kubectl")
|
||||
(chmod "kubectl" #o644)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
|
@ -114,7 +114,7 @@ view logs.")
|
|||
(define-public kompose
|
||||
(package
|
||||
(name "kompose")
|
||||
(version "1.30.0")
|
||||
(version "1.34.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -122,7 +122,7 @@ view logs.")
|
|||
version "/kompose-linux-amd64"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sy3ci7s2dkjigasyv01nm1vg30wwhmdc0cmglzb23ws8bfrfjlh"))))
|
||||
"0wg1ks3flb5rbpazich7v052s3zm8fwja044r67sky3bxxihx3f5"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -132,8 +132,8 @@ view logs.")
|
|||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(copy-file #$source "./kompose")))
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./kompose")))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
(chmod "kompose" #o555))))))
|
||||
|
@ -148,14 +148,14 @@ such as Kubernetes (or OpenShift).")
|
|||
(define-public helm-kubernetes
|
||||
(package
|
||||
(name "helm-kubernetes")
|
||||
(version "3.12.3")
|
||||
(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
|
||||
"1d99c506shnz5cr9xhkrla5r82nan7v3hz631jqflicd376i68qv"))))
|
||||
"1afgf08z6hgy07kjk8fj7xkr8ma4qk2f1r33901nzz87zkn0yh0i"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -165,8 +165,8 @@ such as Kubernetes (or OpenShift).")
|
|||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(invoke "tar" "-xvf" #$source)))
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(invoke "tar" "-xvf" source)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
(chmod "linux-amd64/helm" #o555))))))
|
||||
|
@ -181,13 +181,13 @@ define, install, and upgrade Kubernetes applications.")
|
|||
(define-public kind
|
||||
(package
|
||||
(name "kind")
|
||||
(version "0.20.0")
|
||||
(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
|
||||
"1v9x953a5n0l3kz78wm29yh11vz56nmlvhi7xzcjscyksq9p4fji"))))
|
||||
"03b0idcb11knqyx2ryakvlkqk1cdyavkar6izjihsqlxlfjsv6mq"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -197,8 +197,8 @@ define, install, and upgrade Kubernetes applications.")
|
|||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(copy-file #$source "./kind")
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./kind")
|
||||
(chmod "kind" #o644)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
;;; Copyright © 2020, 2021 James Smith <jsubuntuxp@disroot.org>
|
||||
;;; Copyright © 2020-2024 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2020-2025 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
|
||||
;;; Copyright © 2020, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020, 2021, 2022 Zhu Zihao <all_but_last@163.com>
|
||||
|
@ -13,7 +13,7 @@
|
|||
;;; Copyright © 2021 Risto Stevcev <me@risto.codes>
|
||||
;;; Copyright © 2021 aerique <aerique@xs4all.nl>
|
||||
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
|
||||
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2022, 2023, 2024, 2025 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
||||
;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
|
||||
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
|
||||
|
@ -26,13 +26,17 @@
|
|||
;;; 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)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (nongnu packages)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpio)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages parallel)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
|
@ -132,8 +136,11 @@ some freedo package or an output of package-version procedure."
|
|||
"The unmodified Linux kernel, including nonfree blobs, for running Guix System
|
||||
on hardware which requires nonfree software to function."))))
|
||||
|
||||
(define-public linux-6.7
|
||||
(corrupt-linux linux-libre-6.7))
|
||||
(define-public linux-6.13
|
||||
(corrupt-linux linux-libre-6.13))
|
||||
|
||||
(define-public linux-6.12
|
||||
(corrupt-linux linux-libre-6.12))
|
||||
|
||||
(define-public linux-6.6
|
||||
(corrupt-linux linux-libre-6.6))
|
||||
|
@ -150,12 +157,9 @@ on hardware which requires nonfree software to function."))))
|
|||
(define-public linux-5.4
|
||||
(corrupt-linux linux-libre-5.4))
|
||||
|
||||
(define-public linux-4.19
|
||||
(corrupt-linux linux-libre-4.19))
|
||||
|
||||
(define-public linux linux-6.6)
|
||||
(define-public linux linux-6.12)
|
||||
;; linux-lts points to the *newest* released long-term support version.
|
||||
(define-public linux-lts linux-6.1)
|
||||
(define-public linux-lts linux-6.12)
|
||||
|
||||
(define-public linux-arm64-generic-5.10
|
||||
(corrupt-linux linux-libre-arm64-generic-5.10 #:name "linux-arm64-generic"))
|
||||
|
@ -215,7 +219,7 @@ on hardware which requires nonfree software to function."))))
|
|||
(xanmod-defconfig "config_x86-64-v1"))
|
||||
|
||||
(define %default-extra-linux-options
|
||||
(@@ (gnu packages linux) %default-extra-linux-options))
|
||||
((@@ (gnu packages linux) default-extra-linux-options) version))
|
||||
|
||||
(define config->string
|
||||
(@@ (gnu packages linux) config->string))
|
||||
|
@ -254,9 +258,7 @@ on hardware which requires nonfree software to function."))))
|
|||
(append %default-extra-linux-options
|
||||
;; NOTE: These are configs expected by Guix
|
||||
;; but missing from XanMod defconfig.
|
||||
'(("CONFIG_BLK_DEV_NVME" . #t)
|
||||
("CONFIG_CRYPTO_XTS" . m)
|
||||
("CONFIG_VIRTIO_CONSOLE" . m))))))
|
||||
'(("CONFIG_BLK_DEV_NVME" . #t))))))
|
||||
(display extra-configuration port)
|
||||
(close-port port))
|
||||
(invoke "make" "oldconfig")
|
||||
|
@ -277,17 +279,17 @@ 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.7.6")
|
||||
(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 "0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg")
|
||||
#:xanmod-hash (base32 "0hv76dj9z17w6zcy25v1ndlmdw593wlbmnw5x903vidb3c6a1dfi")))
|
||||
#:kernel-hash (base32 "1sr58vsh39hdwk0z27lg14isqwn4g8m4r7a8z2rsyhkfwlmmd8mi")
|
||||
#:xanmod-hash (base32 "18a7hbm7gvf6b7wr84rszmpl1yb3mdgj2plv5627mv09dn87lvz2")))
|
||||
|
||||
(define-public linux-xanmod-lts-version "6.6.18")
|
||||
(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
|
||||
|
@ -295,7 +297,7 @@ stable, responsive and smooth desktop experience.")))
|
|||
linux-xanmod-lts-revision
|
||||
#:xanmod-branch "lts"
|
||||
#:kernel-hash (base32 "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr")
|
||||
#:xanmod-hash (base32 "1q33bd4a65l46333l2m7vjn46b0xhdbz508bq7q0bphbmy0bf35m")))
|
||||
#:xanmod-hash (base32 "119jvwmxpjfpifg7mhqirjc1g1q769584hv2xc8wyg2iklhhs653")))
|
||||
|
||||
;; Linux-XanMod packages
|
||||
(define-public linux-xanmod
|
||||
|
@ -316,24 +318,44 @@ stable, responsive and smooth desktop experience.")))
|
|||
(define-public linux-firmware
|
||||
(package
|
||||
(name "linux-firmware")
|
||||
(version "20240115")
|
||||
(version "20250211")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/linux/kernel/firmware/"
|
||||
"linux-firmware-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13b75kd075famc58pvx4r9268pxn69nyihx7p3i6i7mvkgqayz5b"))))
|
||||
"0z998nxplnc22nbj3yzdyjjs433p92rzvq2x5i9rv0xzjxc39q9d"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key (make-flags '()) #:allow-other-keys)
|
||||
(apply invoke "make" "install-nodedup" make-flags)))
|
||||
(delete 'validate-runpath))))
|
||||
(list #:tests? #f
|
||||
#:strip-binaries? #f
|
||||
#:validate-runpath? #f
|
||||
#:make-flags #~(list (string-append "DESTDIR=" #$output))
|
||||
#:phases
|
||||
#~(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
|
||||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git")
|
||||
(synopsis "Nonfree firmware blobs for Linux")
|
||||
|
@ -347,23 +369,23 @@ if your hardware is supported by one of the smaller firmware packages.")
|
|||
|
||||
(define (select-firmware keep)
|
||||
"Modify linux-firmware copy list to retain only files matching KEEP regex."
|
||||
`(lambda _
|
||||
(use-modules (ice-9 regex))
|
||||
(substitute* "WHENCE"
|
||||
(("^(File|Link): *([^ ]*)(.*)" _ type file rest)
|
||||
(string-append (if (string-match ,keep file) type "Skip") ": " file rest)))))
|
||||
#~(lambda _
|
||||
(use-modules (ice-9 regex))
|
||||
(substitute* "WHENCE"
|
||||
(("^(File|RawFile|Link): *([^ ]*)(.*)" _ type file rest)
|
||||
(string-append (if (string-match #$keep file) type "Skip") ": " file rest)))))
|
||||
|
||||
(define-public amdgpu-firmware
|
||||
(package
|
||||
(inherit linux-firmware)
|
||||
(name "amdgpu-firmware")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICENSE.amdgpu"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware "^amdgpu/")))))))
|
||||
(cons* #:license-file-regexp "LICENSE.amdgpu"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^amdgpu/")))))))
|
||||
(home-page "http://support.amd.com/en-us/download/linux")
|
||||
(synopsis "Nonfree firmware for AMD graphics chips")
|
||||
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
||||
|
@ -381,12 +403,12 @@ advanced 3D.")
|
|||
(inherit amdgpu-firmware)
|
||||
(name "radeon-firmware")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICENSE.radeon"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware "^radeon/")))))))
|
||||
(cons* #:license-file-regexp "LICENSE.radeon"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^radeon/")))))))
|
||||
(synopsis "Nonfree firmware for older AMD graphics chips")
|
||||
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
||||
graphics cards can be run with the free Mesa, some cards require a nonfree
|
||||
|
@ -438,12 +460,12 @@ and modules, userspace libraries, and bootloader/GPU firmware.")
|
|||
(inherit linux-firmware)
|
||||
(name "atheros-firmware")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICEN[CS]E.*[Aa]th"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)")))))))
|
||||
(cons* #:license-file-regexp "LICEN[CS]E.*[Aa]th"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)")))))))
|
||||
(synopsis "Nonfree firmware blobs for Atheros wireless cards")
|
||||
(description "Nonfree firmware blobs for Atheros wireless cards. This
|
||||
package contains nonfree firmware for the following chips:
|
||||
|
@ -614,12 +636,12 @@ WLAN.TF.2.1-00021-QCARMSWP-1 (ath10k/QCA9377/hw1.0/firmware-6.bin)
|
|||
(inherit linux-firmware)
|
||||
(name "ibt-hw-firmware")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICENCE.ibt_firmware"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware "^intel/ibt-")))))))
|
||||
(cons* #:license-file-regexp "LICENCE.ibt_firmware"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^intel/ibt-")))))))
|
||||
(home-page "http://www.intel.com/support/wireless/wlan/sb/CS-016675.htm")
|
||||
(synopsis "Non-free firmware for Intel bluetooth chips")
|
||||
(description "This firmware is required by the btintel kernel module to
|
||||
|
@ -635,12 +657,12 @@ laptops).")
|
|||
(inherit linux-firmware)
|
||||
(name "iwlwifi-firmware")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICENCE.iwlwifi_firmware"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware "^iwlwifi-")))))))
|
||||
(cons* #:license-file-regexp "LICENCE.iwlwifi_firmware"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^iwlwifi-")))))))
|
||||
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi")
|
||||
(synopsis "Nonfree firmware for Intel wifi chips")
|
||||
(description "The proprietary iwlwifi kernel module is required by many
|
||||
|
@ -656,12 +678,12 @@ support for 5GHz and 802.11ac, among others.")
|
|||
(inherit linux-firmware)
|
||||
(name "i915-firmware")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICENCE.i915"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware "^i915/")))))))
|
||||
(cons* #:license-file-regexp "LICENCE.i915"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^i915/")))))))
|
||||
(home-page "https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html")
|
||||
(synopsis "Nonfree firmware for Intel integrated graphics")
|
||||
(description "This package contains the various firmware for Intel
|
||||
|
@ -671,18 +693,124 @@ integrated graphics chipsets, including GuC, HuC and DMC.")
|
|||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware"
|
||||
"/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
|
||||
(package
|
||||
(inherit linux-firmware)
|
||||
(name "realtek-firmware")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICENCE.rtlwifi_firmware.txt"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware
|
||||
"^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/")))))))
|
||||
(cons* #:license-file-regexp "LICENCE.rtlwifi_firmware.txt"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/")))))))
|
||||
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/rtl819x")
|
||||
(synopsis "Nonfree firmware for Realtek ethernet, wifi, and bluetooth chips")
|
||||
(description
|
||||
|
@ -772,8 +900,8 @@ package contains nonfree firmware for the following chips:
|
|||
(deprecated-package "rtl-bt-firmware" realtek-firmware))
|
||||
|
||||
(define-public rtl8192eu-linux-module
|
||||
(let ((commit "a928f08c1dd4f9a1e84d85811a543e974551bc4f")
|
||||
(revision "6"))
|
||||
(let ((commit "3af9a868a0ca622d830966ac83aea2bf17cd0d65")
|
||||
(revision "7"))
|
||||
(package
|
||||
(name "rtl8192eu-linux-module")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -786,7 +914,7 @@ package contains nonfree firmware for the following chips:
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1q26kyic4glmgy0hbaq46r067m6cqf7d41chgivyxn8y32rf1fgc"))))
|
||||
"0d2qzf7xbipjdp1zm2ffqhnda8wasqriqnv6dkl0mhqn2f8za3i8"))))
|
||||
(build-system linux-module-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
|
@ -809,8 +937,8 @@ network adapters.")
|
|||
(license gpl2))))
|
||||
|
||||
(define-public rtl8821ce-linux-module
|
||||
(let ((commit "a478095a45d8aa957b45be4f9173c414efcacc6f")
|
||||
(revision "10"))
|
||||
(let ((commit "f119398d868b1a3395f40c1df2e08b57b2c882cd")
|
||||
(revision "12"))
|
||||
(package
|
||||
(name "rtl8821ce-linux-module")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -823,7 +951,7 @@ network adapters.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"00cn87jjrcxjqr3n8jv4w3n64zksmzz05fdr1gdvnbx1ab5739f6"))))
|
||||
"03336fzhcyfkxa32rx0calzlyzamvinql5f19wwm61aijrmlmyhi"))))
|
||||
(build-system linux-module-build-system)
|
||||
(arguments
|
||||
(list #:make-flags
|
||||
|
@ -852,8 +980,8 @@ network adapters.")
|
|||
(license gpl2))))
|
||||
|
||||
(define-public rtl8821cu-linux-module
|
||||
(let ((commit "a41ef7cabd1aa36fa2b4eb63a71cf719bff11b72")
|
||||
(revision "1"))
|
||||
(let ((commit "4f6004af4c4171882f37e2e5d8fb3609fe260617")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "rtl8821cu-linux-module")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -865,7 +993,7 @@ network adapters.")
|
|||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0fnv4gm4adnf8gbjzc2lljh2a3i111159qira3w0qm1zhyqadaq0"))))
|
||||
(base32 "09ig0rrkkn00i3d1n6p62n1610kcjgb2h9kbcqdsrmpnlnw5kfl2"))))
|
||||
(build-system linux-module-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -906,8 +1034,8 @@ to disable the conflicting rtw88 driver:
|
|||
"https://github.com/morrownr/8821cu-20210916/blob/main/LICENSE")))))
|
||||
|
||||
(define-public rtl8812au-aircrack-ng-linux-module
|
||||
(let ((commit "35308f4dd73e77fa572c48867cce737449dd8548")
|
||||
(revision "11"))
|
||||
(let ((commit "63cf0b4584aa8878b0fe8ab38017f31c319bde3d")
|
||||
(revision "13"))
|
||||
(package
|
||||
(inherit rtl8821ce-linux-module)
|
||||
(name "rtl8812au-aircrack-ng-linux-module")
|
||||
|
@ -920,7 +1048,7 @@ to disable the conflicting rtw88 driver:
|
|||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1clqrgmq5fhzybbiapmdbhg5qfx9k21r0hqa9pqmyinaqhvfnhfj"))
|
||||
(base32 "103pn6qlj116dm244ygf1wic9dq2qn80lafiyxynyhpckkyhhfxl"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
|
@ -969,9 +1097,9 @@ giving you trouble, you can try this module.")
|
|||
(define (broadcom-sta-patch name commit hash)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/NixOS/nixpkgs/"
|
||||
(uri (string-append "https://raw.githubusercontent.com/rpmfusion/wl-kmod/"
|
||||
commit
|
||||
"/pkgs/os-specific/linux/broadcom-sta/"
|
||||
"wl-kmod-"
|
||||
name
|
||||
".patch"))
|
||||
(sha256
|
||||
|
@ -986,12 +1114,12 @@ giving you trouble, you can try this module.")
|
|||
(string-replace-substring broadcom-sta-version "." "_")
|
||||
".tar.gz"))
|
||||
(patches
|
||||
;; Keep these in sync with the list at
|
||||
;; https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/broadcom-sta.
|
||||
;; Nixpkgs is good about keeping broadcom patches up to date so updating
|
||||
;; Keep these in sync with the patches at
|
||||
;; https://github.com/rpmfusion/wl-kmod
|
||||
;; They seem to be good about keeping broadcom patches up to date so updating
|
||||
;; for a new kernel release should be as simple as chaging the commit to
|
||||
;; the newest available and adding any new patches.
|
||||
(let ((commit "355042e2ff5933b245e804c5eaff4ec3f340e71b"))
|
||||
(let ((commit "cb67598cbf5d8c5260b750d6f7e5c6a6599b7b85"))
|
||||
(list
|
||||
(broadcom-sta-patch "i686-build-failure" commit "1522w2gb698svlkb2b4lijbd740agvs2ibpz4g0jlv8v31cybkf4")
|
||||
(broadcom-sta-patch "license" commit "0rwlhafcmpp97cknqwv8gwf8sbxgqavgci1ywfkdxiylh4mhcvhr")
|
||||
|
@ -1009,7 +1137,9 @@ giving you trouble, you can try this module.")
|
|||
(broadcom-sta-patch "linux-6.1" commit "1pvx1h7iimcbfqdc13n1980ngxk9q6iyip8svn293x4h7jn472kf")
|
||||
(broadcom-sta-patch "pedantic-fix" commit "1kxmw1iyxnfwad75h981sak5qk16p81xy1f2qxss2d0v97vkfkl5")
|
||||
(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
|
||||
(base32
|
||||
"1gj485qqr190idilacpxwgqyw21il03zph2rddizgj7fbd6pfyaz"))))
|
||||
|
@ -1154,7 +1284,7 @@ chipsets from Broadcom:
|
|||
(define-public facetimehd
|
||||
(package
|
||||
(name "facetimehd")
|
||||
(version "0.6.8")
|
||||
(version "0.6.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1164,7 +1294,7 @@ chipsets from Broadcom:
|
|||
(file-name (git-file-name "facetimehd" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g0ky9w5klkjndf30mjymq78r6yls9gri9x702nn8qkmgkjbqdsg"))))
|
||||
"1mk9zw100258khc3510jzgm8rci3l26ad0lx4fcqrd8ksq8k03kp"))))
|
||||
(build-system linux-module-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f))
|
||||
|
@ -1188,7 +1318,7 @@ driver:
|
|||
(define-public intel-microcode
|
||||
(package
|
||||
(name "intel-microcode")
|
||||
(version "20231114")
|
||||
(version "20241112")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1199,7 +1329,7 @@ driver:
|
|||
(commit (string-append "microcode-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "07c7hkwpvb9056s73s55sg04cxr1d9n1sd9r1g7sm3gh70yc17ki"))))
|
||||
(base32 "1i2pfw1vfnws76dpdik5x9kn3rysq8ggb4c16c2lmxzz4phyvxbn"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list #:install-plan
|
||||
|
@ -1223,12 +1353,12 @@ your CPU.")
|
|||
(inherit linux-firmware)
|
||||
(name "amd-microcode")
|
||||
(arguments
|
||||
`(#:license-file-regexp "LICENSE.amd-ucode"
|
||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
,(select-firmware "^amd-ucode/")))))))
|
||||
(cons* #:license-file-regexp "LICENSE.amd-ucode"
|
||||
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'select-firmware
|
||||
#$(select-firmware "^amd-ucode/")))))))
|
||||
(synopsis "Processor microcode firmware for AMD CPUs")
|
||||
(description "Updated system processor microcode for AMD x86-64
|
||||
processors. AMD releases microcode updates to correct processor behavior as
|
||||
|
@ -1241,20 +1371,23 @@ documented in the respective processor revision guides.")
|
|||
(define-public sof-firmware
|
||||
(package
|
||||
(name "sof-firmware")
|
||||
(version "2.2.6")
|
||||
(version "2024.09")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/thesofproject/sof-bin/releases/download/v"
|
||||
version "/sof-bin-v" version ".tar.gz"))
|
||||
version "/sof-bin-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"018901g5hshrqf2d0rn7yhzxcy4gmdc4v6167df880kdcfkw48lk"))))
|
||||
"0866rg40gzlal90ykgs0x622vy3qrw1s3g0qfv80i41mh6gxjiza"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:install-plan
|
||||
(list (list (string-append "sof-v" ,version) "lib/firmware/intel/sof")
|
||||
(list (string-append "sof-tplg-v" ,version) "lib/firmware/intel/sof-tplg"))))
|
||||
'(("sof" "lib/firmware/intel/sof")
|
||||
("sof-ace-tplg" "lib/firmware/intel/sof-ace-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")
|
||||
(synopsis "Sound Open Firmware")
|
||||
(description "This package contains Linux firmwares and topology files for
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2023 André A. Gomes <andremegafone@gmail.com>
|
||||
;;; Copyright © 2023, 2024 André A. Gomes <andremegafone@gmail.com>
|
||||
|
||||
(define-module (nongnu packages lisp)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages node)
|
||||
#:use-module (gnu packages lisp)
|
||||
#:use-module (gnu packages lisp-xyz)
|
||||
;; #:use-module (gnu packages lisp-check)
|
||||
#:use-module (nongnu packages electron)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
|
@ -125,8 +123,8 @@ then open a browser at http://localhost:PORT, where PORT is the indicated port."
|
|||
"https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf"))))
|
||||
|
||||
(define-public sbcl-cl-electron
|
||||
(let ((commit "458a60d8c9baae71906294ffae891c3d0686c672")
|
||||
(revision "2"))
|
||||
(let ((commit "f2245dc1450a6ad416984cf932be50e00957390a")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "sbcl-cl-electron")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -138,13 +136,22 @@ then open a browser at http://localhost:PORT, where PORT is the indicated port."
|
|||
(commit commit)))
|
||||
(file-name (git-file-name "cl-electron" version))
|
||||
(sha256
|
||||
(base32 "1ya6y55kv0g3h19ifnmwbc752p00s9mj1b1n4ljw4n7ycxmdpb24"))))
|
||||
(base32 "0c18xbwwnjaiwzd01dprdrwzp27nwihaf7pmkql1f5yk43x3ajs0"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(native-inputs (list ;; sbcl-lisp-unit2
|
||||
sbcl))
|
||||
(inputs (list electron node
|
||||
(inputs (list electron
|
||||
sbcl-cl-json sbcl-iolib sbcl-cl-str sbcl-nclasses
|
||||
sbcl-parenscript sbcl-bordeaux-threads))
|
||||
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
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2021, 2022 PantherX OS Team <team@pantherx.org>
|
||||
;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2022, 2023, 2024, 2025 John Kehayias <john.kehayias@protonmail.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)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -36,7 +37,7 @@
|
|||
(define-public element-desktop
|
||||
(package
|
||||
(name "element-desktop")
|
||||
(version "1.11.57")
|
||||
(version "1.11.89")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -45,13 +46,13 @@
|
|||
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
|
||||
"_amd64.deb"))
|
||||
(sha256
|
||||
(base32 "05318i6z5kkzi01ygr77g5ij0hs4xmy0j23hznkqc4zia02q1vgx"))))
|
||||
(base32 "0riavl8qq59s45xxdk0s1n6i1wymsx1zfdz5dp3ccr8xpzw77abq"))))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:wrapper-plan
|
||||
#~'("lib/Element/element-desktop")
|
||||
#~'(("lib/Element/element-desktop" (("out" "/lib/Element"))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'setup-cwd
|
||||
|
@ -69,15 +70,7 @@
|
|||
(lambda _
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink (string-append #$output "/lib/Element/element-desktop")
|
||||
(string-append #$output "/bin/element-desktop"))))
|
||||
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
|
||||
(lambda _
|
||||
(wrap-program (string-append #$output "/lib/Element/element-desktop")
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$output "/lib/Element"))
|
||||
":")))))))))
|
||||
(string-append #$output "/bin/element-desktop")))))))
|
||||
(home-page "https://github.com/vector-im/element-desktop")
|
||||
(synopsis "Matrix collaboration client for desktop")
|
||||
(description "Element Desktop is a Matrix client for desktop with Element Web at
|
||||
|
@ -90,7 +83,7 @@ its core.")
|
|||
(define-public signal-desktop
|
||||
(package
|
||||
(name "signal-desktop")
|
||||
(version "6.46.0")
|
||||
(version "7.41.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -99,13 +92,13 @@ its core.")
|
|||
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
|
||||
"_amd64.deb"))
|
||||
(sha256
|
||||
(base32 "1pjv8v1hhycwbvqvih83axv41jkyksq6d9152fqic9d61lbb1kpa"))))
|
||||
(base32 "1ainlhhzf427f0jqdh83m8519ywihnxyiw505n4msgyhpwgwj5n0"))))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:wrapper-plan
|
||||
#~'("lib/Signal/signal-desktop")
|
||||
#~'(("lib/Signal/signal-desktop" (("out" "/lib/Signal"))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'setup-cwd
|
||||
|
@ -123,15 +116,7 @@ its core.")
|
|||
(lambda _
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink (string-append #$output "/lib/Signal/signal-desktop")
|
||||
(string-append #$output "/bin/signal-desktop"))))
|
||||
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
|
||||
(lambda _
|
||||
(wrap-program (string-append #$output "/lib/Signal/signal-desktop")
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$output "/lib/Signal"))
|
||||
":")))))))))
|
||||
(string-append #$output "/bin/signal-desktop")))))))
|
||||
(home-page "https://signal.org/")
|
||||
(synopsis "Private messenger using the Signal protocol")
|
||||
(description "Signal Desktop is an Electron application that links with Signal on Android
|
||||
|
@ -204,8 +189,8 @@ or iOS.")
|
|||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(invoke "tar" "xvf" #$source)
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(invoke "tar" "xvf" source)
|
||||
;; Use the more standard lib directory for everything.
|
||||
(mkdir-p "lib")
|
||||
(rename-file "zoom/" "lib/zoom")))
|
||||
|
|
|
@ -14,15 +14,17 @@
|
|||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;; Copyright © 2019, 2020 Adrian Malacoda <malacoda@monarch-pass.net>
|
||||
;;; Copyright © 2020-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2020-2025 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
||||
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
|
||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2021, 2024 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2023 Tomas Volf <wolf@wolfsden.cz>
|
||||
|
||||
(define-module (nongnu packages mozilla)
|
||||
#:use-module (srfi srfi-26)
|
||||
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system trivial)
|
||||
|
@ -72,44 +74,39 @@
|
|||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
;; Define the versions of rust needed to build firefox, trying to match
|
||||
;; upstream. See the file taskcluster/ci/toolchain/rust.yml at
|
||||
;; https://searchfox.org under the particular firefox release, like
|
||||
;; mozilla-esr102.
|
||||
(define-public rust-firefox-esr rust) ; 1.60 is the default in Guix
|
||||
(define-public rust-firefox rust) ; 1.65 is the minimum
|
||||
|
||||
(define icu4c-73
|
||||
(package
|
||||
(inherit icu4c)
|
||||
(version "73.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
|
||||
"0iccpdvc0kvpww5a31k9gjkqigyz016i7v80r9zamd34w4fl6mx4"))))))
|
||||
;;; Define the versions of rust needed to build firefox, trying to match
|
||||
;;; upstream. See table at [0], `Uses' column for the specific version.
|
||||
;;; Using `rust' will likely lead to a newer version then listed in the table,
|
||||
;;; but since in Guix only the latest packaged Rust is officially supported,
|
||||
;;; it is a tradeoff worth making.
|
||||
;;; 0: https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html
|
||||
;; 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.
|
||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
||||
(define %firefox-esr-build-id "20240219101823")
|
||||
(define %firefox-esr-build-id "20250203132125")
|
||||
|
||||
(define-public firefox-esr
|
||||
(package
|
||||
(name "firefox-esr")
|
||||
(version "115.8.0esr")
|
||||
(version "128.7.0esr")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
||||
version "/source/firefox-" version ".source.tar.xz"))
|
||||
(sha256
|
||||
(base32 "1slmp2v1q3my81z8kiym9rpxw5d9n4sn07v7hv99517w7vr8d05g"))))
|
||||
(base32 "1xwl6z8ax3dw5hjb5lwpl5641rmlizmfqs3xg74cnczsvm7bz9z0"))
|
||||
(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)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -141,6 +138,11 @@
|
|||
"--with-distribution-id=org.nonguix"
|
||||
"--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
|
||||
"--disable-tests"
|
||||
"--disable-updater"
|
||||
|
@ -164,7 +166,7 @@
|
|||
(rnrs io ports)
|
||||
(guix elf)
|
||||
(guix build gremlin)
|
||||
,@%gnu-build-system-modules)
|
||||
,@%default-gnu-imported-modules)
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-preferences
|
||||
|
@ -183,6 +185,11 @@
|
|||
|
||||
;; XDG settings should be managed by Guix.
|
||||
(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))))
|
||||
(add-after 'fix-preferences 'fix-ffmpeg-runtime-linker
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
@ -231,7 +238,7 @@
|
|||
;; complain that it's not able to change Cargo.lock.
|
||||
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
|
||||
(substitute* "build/RunCbindgen.py"
|
||||
(("\"--frozen\",") ""))))
|
||||
(("args.append\\(\"--frozen\"\\)") "pass"))))
|
||||
(delete 'bootstrap)
|
||||
(add-before 'configure 'patch-SpeechDispatcherService.cpp
|
||||
(lambda _
|
||||
|
@ -284,6 +291,9 @@
|
|||
|
||||
(setenv "MOZ_NOSPAM" "1")
|
||||
|
||||
;; WM_CLASS (default is "$MOZ_APP_NAME-$MOZ_UPDATE_CHANNEL").
|
||||
(setenv "MOZ_APP_REMOTINGNAME" "Firefox")
|
||||
|
||||
(setenv "MOZBUILD_STATE_PATH" (getcwd))
|
||||
|
||||
(let* ((mozconfig (string-append (getcwd) "/mozconfig"))
|
||||
|
@ -378,13 +388,17 @@
|
|||
'("mesa" "ffmpeg")))))
|
||||
(pulseaudio-lib (string-append (assoc-ref inputs "pulseaudio")
|
||||
"/lib"))
|
||||
;; For sharing on Wayland
|
||||
(pipewire-lib (string-append (assoc-ref inputs "pipewire")
|
||||
"/lib"))
|
||||
;; For U2F and WebAuthn
|
||||
(eudev-lib (string-append (assoc-ref inputs "eudev") "/lib"))
|
||||
(gtk-share (string-append (assoc-ref inputs "gtk+")
|
||||
"/share")))
|
||||
(wrap-program (car (find-files lib "^firefox$"))
|
||||
`("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))
|
||||
`("MOZ_LEGACY_PROFILES" = ("1"))
|
||||
`("MOZ_ALLOW_DOWNGRADE" = ("1"))))))
|
||||
|
@ -398,7 +412,7 @@
|
|||
(("NewWindow") "new-window")
|
||||
(("NewPrivateWindow") "new-private-window")
|
||||
(("StartupNotify=true")
|
||||
"StartupNotify=true\nStartupWMClass=Navigator"))
|
||||
"StartupNotify=true\nStartupWMClass=Firefox"))
|
||||
(install-file desktop-file applications))))
|
||||
(add-after 'install-desktop-entry 'install-icons
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
@ -473,7 +487,7 @@
|
|||
alsa-lib
|
||||
autoconf-2.13
|
||||
`(,rust-firefox-esr "cargo")
|
||||
clang
|
||||
clang-18
|
||||
llvm
|
||||
wasm32-wasi-clang-toolchain
|
||||
m4
|
||||
|
@ -483,9 +497,14 @@
|
|||
pkg-config
|
||||
python
|
||||
rust-firefox-esr
|
||||
rust-cbindgen-0.24
|
||||
rust-cbindgen-0.26
|
||||
which
|
||||
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/")
|
||||
(synopsis "Trademarkless version of Firefox")
|
||||
(description
|
||||
|
@ -532,20 +551,29 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
|||
|
||||
;; Update this id with every firefox update to its release date.
|
||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
||||
(define %firefox-build-id "20240219104035")
|
||||
(define %firefox-build-id "20250203132324")
|
||||
|
||||
(define-public firefox
|
||||
(package
|
||||
(inherit firefox-esr)
|
||||
(name "firefox")
|
||||
(version "123.0")
|
||||
(version "135.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
||||
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
|
||||
(base32 "1dscgn1ymqi4zr29fpj43y8gaspc5wl7a59w657ws56vmnymm24y"))))
|
||||
(base32 "0q5r2q6q56kyzl5pknrir9bzlhmzbvv9hi5gi4852izgcali4zl2"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments firefox-esr)
|
||||
((#:phases phases)
|
||||
|
@ -553,16 +581,18 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
|||
(replace 'set-build-id
|
||||
(lambda _
|
||||
(setenv "MOZ_BUILD_DATE" #$%firefox-build-id)))))))
|
||||
(inputs
|
||||
(modify-inputs (package-inputs firefox-esr)
|
||||
(replace "icu4c" icu4c-75)))
|
||||
(native-inputs
|
||||
(modify-inputs (package-native-inputs firefox-esr)
|
||||
(replace "rust" rust-firefox)
|
||||
(replace "rust:cargo" `(,rust-firefox "cargo"))
|
||||
(replace "rust-cbindgen" rust-cbindgen-0.26)))
|
||||
(replace "rust:cargo" `(,rust-firefox "cargo"))))
|
||||
(description
|
||||
"Full-featured browser client built from Firefox source tree, without
|
||||
the official icon and the name \"firefox\".")))
|
||||
|
||||
;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no longer need a seperate package
|
||||
;; for Firefox on Wayland.
|
||||
;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no
|
||||
;; longer need a seperate package for Firefox on Wayland.
|
||||
(define-public firefox-wayland
|
||||
(deprecated-package "firefox-wayland" firefox))
|
||||
|
|
|
@ -34,7 +34,9 @@
|
|||
("x86_64-linux" "linux_x86_64")
|
||||
("i686-linux" "linux_i686")
|
||||
("aarch64-linux" "linux_aarch64")
|
||||
("armhf-linux" "linux_armv7l"))
|
||||
("armhf-linux" "linux_armv7l")
|
||||
;; We need a default case
|
||||
(_ "unsupported"))
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -42,7 +44,9 @@
|
|||
("x86_64-linux" "1hd7fbk0px45fxhqa7nqcnij8ls2fhpjp60v840vy2zqs9fkcr52")
|
||||
("i686-linux" "11vk32mxyda9xl08pp2ivd1vsahnw6w7d08in4syz6iannfwp19b")
|
||||
("aarch64-linux" "0zpkaiwwxn8yh3s1d22qswshbgaxx5d8iy17hb3w256zgb722yjw")
|
||||
("armhf-linux" "18174b1lgsk73gxhala471ppzbrpa1cs953b5par998yqgh74znk"))))))
|
||||
("armhf-linux" "18174b1lgsk73gxhala471ppzbrpa1cs953b5par998yqgh74znk")
|
||||
;; We need a valid base32 default case
|
||||
(_ "0000000000000000000000000000000000000000000000000000"))))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list #:strip-binaries? #f ;allocated section `.dynsym' not in segment
|
||||
|
|
File diff suppressed because it is too large
Load Diff
23
nongnu/packages/patches/firefox-esr-compare-paths.patch
Normal file
23
nongnu/packages/patches/firefox-esr-compare-paths.patch
Normal file
|
@ -0,0 +1,23 @@
|
|||
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,
|
|
@ -0,0 +1,38 @@
|
|||
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);
|
917
nongnu/packages/patches/firefox-restore-desktop-files.patch
Normal file
917
nongnu/packages/patches/firefox-restore-desktop-files.patch
Normal file
|
@ -0,0 +1,917 @@
|
|||
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)
|
||||
|
37
nongnu/packages/patches/firefox-use-system-wide-dir.patch
Normal file
37
nongnu/packages/patches/firefox-use-system-wide-dir.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
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,11 +1,13 @@
|
|||
;;; 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)
|
||||
|
@ -19,22 +21,23 @@
|
|||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module ((nonguix licenses) #:prefix license:))
|
||||
#:use-module ((nonguix licenses) #:prefix license:)
|
||||
#:use-module ((guix licenses) #:prefix free-license:))
|
||||
|
||||
(define-public anytype
|
||||
(package
|
||||
(name "anytype")
|
||||
(version "0.38")
|
||||
(version "0.44.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://download.anytype.io?action=download"
|
||||
"&key=desktop&id=148487107"))
|
||||
(string-append "https://anytype-release.fra1.cdn.digitaloceanspaces.com/"
|
||||
name "_" version "_amd64.deb"))
|
||||
(file-name (string-append "anytype-" version ".deb"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xc57ppk3l16mq2a53scf79m8hx43x21kac96ws66awlkz14swc7"))))
|
||||
"0djyvz6y4pk277xa2mc4w6w029i3f7zd2d1pniyrpayhnna6f670"))))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -52,12 +55,23 @@
|
|||
"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/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
|
||||
|
@ -105,3 +119,118 @@ 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)))
|
||||
|
|
|
@ -1,21 +1,54 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; 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)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#: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
|
||||
(package
|
||||
(name "gmmlib")
|
||||
(version "22.3.9")
|
||||
(version "22.3.19")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -24,7 +57,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0m88lxlqqs5wdk4icf2ahbigr0q87j1c0damq7q0r55h72pf6zyv"))))
|
||||
"0p3wp6xcvpb4jzw4fsf6554qy91iblmq9y50ph3iy29m19q6nznb"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
;; Tests are run as part of the normal build step
|
||||
|
@ -40,7 +73,7 @@ for VAAPI.")
|
|||
(define-public intel-media-driver
|
||||
(package
|
||||
(name "intel-media-driver")
|
||||
(version "23.3.0")
|
||||
(version "24.1.5")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -49,7 +82,7 @@ for VAAPI.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zh6zgfyp14zlnd6jvhqz9q5rlyk7cb3nam791slh0h7r5f0iimm"))))
|
||||
"1jm4imld48scj0j499wq5zbdjv4gg7hg2sawljqnjvy09dmp09bs"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs (list libva gmmlib))
|
||||
(native-inputs (list pkg-config))
|
||||
|
@ -92,3 +125,110 @@ graphics hardware.")
|
|||
(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
|
||||
(package
|
||||
(name "zerotier")
|
||||
(version "1.8.4")
|
||||
(version "1.12.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -21,16 +21,17 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"101b1k9f3cpbgj0l87ya1cbqs9dv0qiayjap4m29fxyjra8hbkb8"))))
|
||||
"0p5rpvh137gf5y9ylip7kxfl4argv34sr4wiiygvfk670rifnk57"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
`(#:make-flags (list "ZT_SSO_SUPPORTED=0") ; We don't need SSO/OIDC
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; There is no ./configure
|
||||
(delete 'configure)
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "make" "selftest")
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke "make" "selftest" make-flags)
|
||||
(invoke "./zerotier-selftest")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
|
@ -33,45 +34,44 @@
|
|||
"15glm6ws0zihcks93l39mli8wf5b5vkijb0vaid9cqra6x0zppd5"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("cabextract" ,cabextract)
|
||||
("p7zip" ,p7zip)
|
||||
("perl" ,perl)
|
||||
;; ("unrar" ,unrar) ; TODO: Include unrar? It is referenced in the source.
|
||||
("unzip" ,unzip)
|
||||
("wget" ,wget)
|
||||
("zenity" ,zenity)))
|
||||
(list cabextract
|
||||
p7zip
|
||||
perl
|
||||
;; unrar ; TODO: Include unrar? It is referenced in the source.
|
||||
unzip
|
||||
wget
|
||||
zenity))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
;; TODO: Checks need bashate, shellcheck (in Guix), and checkbashisms.
|
||||
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))
|
||||
"PREFIX=")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'install 'wrap-program
|
||||
;; The script relies on WINETRICKS_GUI being exactly "zenity", so
|
||||
;; we can't patch the path directly. Probably same for other dependencies.
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((zenity-bin (string-append (assoc-ref inputs "zenity") "/bin/"))
|
||||
(perl-bin (string-append (assoc-ref inputs "perl") "/bin/"))
|
||||
(winetricks (string-append (assoc-ref outputs "out")
|
||||
"/bin/winetricks")))
|
||||
(wrap-program winetricks
|
||||
`("PATH" prefix (,@(map (lambda (in)
|
||||
(string-append (assoc-ref inputs in) "/bin/"))
|
||||
'("cabextract"
|
||||
"p7zip"
|
||||
"perl"
|
||||
"unzip"
|
||||
"wget"
|
||||
"zenity"))))))))
|
||||
(add-after 'install 'patch-perl-path
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((perl (string-append (assoc-ref inputs "perl") "/bin/perl"))
|
||||
(winetricks (string-append (assoc-ref outputs "out")
|
||||
"/bin/winetricks")))
|
||||
(substitute* winetricks
|
||||
(("#!/usr/bin/env perl") (string-append "#!" perl)))))))))
|
||||
(list
|
||||
#:tests? #f
|
||||
;; TODO: Checks need bashate, shellcheck (in Guix), and checkbashisms.
|
||||
#:make-flags #~(list (string-append "DESTDIR=" #$output)
|
||||
"PREFIX=")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'install 'wrap-program
|
||||
;; The script relies on WINETRICKS_GUI being exactly "zenity", so
|
||||
;; we can't patch the path directly. Probably same for other dependencies.
|
||||
(lambda _
|
||||
(let* ((winetricks (string-append #$output "/bin/winetricks"))
|
||||
(paths (map
|
||||
(lambda (p) (string-append p "/bin"))
|
||||
(list #$(this-package-input "cabextract")
|
||||
#$(this-package-input "p7zip")
|
||||
#$(this-package-input "perl")
|
||||
#$(this-package-input "unzip")
|
||||
#$(this-package-input "wget")
|
||||
#$(this-package-input "zenity")))))
|
||||
(wrap-program winetricks
|
||||
`("PATH" prefix ,paths)))))
|
||||
(add-after 'install 'patch-perl-path
|
||||
(lambda _
|
||||
(let* ((perl (string-append #$(this-package-input "perl")
|
||||
"/bin/perl"))
|
||||
(winetricks (string-append #$output "/bin/winetricks")))
|
||||
(substitute* winetricks
|
||||
(("#!/usr/bin/env perl") (string-append "#!" perl)))))))))
|
||||
(home-page "https://github.com/Winetricks/winetricks")
|
||||
(synopsis "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
|
||||
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
|
||||
;;; Copyright © 2022, 2024 Hilton Chain <hako@ultrarare.space>
|
||||
|
||||
(define-module (nongnu services nvidia)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services base)
|
||||
#:use-module (gnu services linux)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:use-module (nongnu packages nvidia)
|
||||
#:export (nvidia-configuration
|
||||
nvidia-configuration?
|
||||
|
@ -19,24 +19,32 @@
|
|||
(define-record-type* <nvidia-configuration>
|
||||
nvidia-configuration make-nvidia-configuration
|
||||
nvidia-configuration?
|
||||
(nvidia-driver nvidia-configuration-nvidia-driver
|
||||
(default (list nvidia-driver))) ; list of file-like
|
||||
(nvidia-firmware nvidia-configuration-nvidia-firmware
|
||||
(default (list nvidia-firmware))) ; list of file-like
|
||||
(nvidia-module nvidia-configuration-nvidia-module
|
||||
(default (list nvidia-module))) ; list of file-like
|
||||
(modules nvidia-configuration-modules
|
||||
(default (list "nvidia-uvm")))) ; list of string
|
||||
(driver nvidia-configuration-driver
|
||||
(default nvda)) ; file-like
|
||||
(firmware nvidia-configuration-firmware
|
||||
(default nvidia-firmware)) ; file-like
|
||||
(module nvidia-configuration-module
|
||||
(default nvidia-module))) ; file-like
|
||||
|
||||
(define (nvidia-shepherd-service config)
|
||||
(list (shepherd-service
|
||||
(documentation "Unload nvidia-uvm module on powering off.")
|
||||
(provision '(nvidia))
|
||||
(requirement '(user-processes))
|
||||
(start #~(const #t))
|
||||
(stop #~(lambda _
|
||||
(let ((rmmod #$(file-append kmod "/bin/rmmod")))
|
||||
(zero? (system* rmmod "nvidia-uvm"))))))))
|
||||
(let* ((nvidia-driver (nvidia-configuration-driver config))
|
||||
(nvidia-smi (file-append nvidia-driver "/bin/nvidia-smi")))
|
||||
(list (shepherd-service
|
||||
(documentation "Prepare system environment for NVIDIA driver.")
|
||||
(provision '(nvidia))
|
||||
(requirement '(udev))
|
||||
(one-shot? #t)
|
||||
(modules '(((guix build utils) #:select (invoke/quiet))
|
||||
((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
|
||||
(service-type
|
||||
|
@ -44,13 +52,13 @@
|
|||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
nvidia-shepherd-service)
|
||||
(service-extension profile-service-type
|
||||
(compose list nvidia-configuration-driver))
|
||||
(service-extension udev-service-type
|
||||
nvidia-configuration-nvidia-driver)
|
||||
(compose list nvidia-configuration-driver))
|
||||
(service-extension firmware-service-type
|
||||
nvidia-configuration-nvidia-firmware)
|
||||
(compose list nvidia-configuration-firmware))
|
||||
(service-extension linux-loadable-module-service-type
|
||||
nvidia-configuration-nvidia-module)
|
||||
(service-extension kernel-module-loader-service-type
|
||||
nvidia-configuration-modules)))
|
||||
(compose list nvidia-configuration-module))))
|
||||
(default-value (nvidia-configuration))
|
||||
(description "Load NVIDIA modules.")))
|
||||
(description "Prepare system environment for NVIDIA driver.")))
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
|
||||
;;; Copyright © 2025 James Kalyan <mjkalyan@proton.me>
|
||||
|
||||
(define-module (nongnu services vpn)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (nongnu packages vpn)
|
||||
#:export (zerotier-one-service))
|
||||
#:export (zerotier-service-type
|
||||
zerotier-one-service))
|
||||
|
||||
(define %zerotier-action-join
|
||||
(shepherd-action
|
||||
|
@ -47,12 +50,18 @@
|
|||
(list (string-append #$zerotier "/sbin/zerotier-one"))))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define zerotier-one-service-type
|
||||
(service-type (name 'zerotier-one)
|
||||
(define zerotier-service-type
|
||||
(service-type (name 'zerotier)
|
||||
(description "ZeroTier One daemon.")
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
zerotier-one-shepherd-service)))))
|
||||
zerotier-one-shepherd-service)))
|
||||
(default-value '())))
|
||||
|
||||
(define* (zerotier-one-service #:key (config (list)))
|
||||
(define-deprecated/alias
|
||||
zerotier-one-service-type
|
||||
zerotier-service-type)
|
||||
|
||||
(define-deprecated (zerotier-one-service #:key (config '()))
|
||||
zerotier-service-type
|
||||
(service zerotier-one-service-type config))
|
||||
|
|
|
@ -2,20 +2,46 @@
|
|||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; 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:
|
||||
;; $ guix system disk-image nongnu/system/install.scm
|
||||
;; $ guix system image --image-type=iso9660 nongnu/system/install.scm
|
||||
|
||||
(define-module (nongnu system install)
|
||||
#:use-module (guix channels)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages vim)
|
||||
#:use-module (gnu packages zile)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services base)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system install)
|
||||
#:use-module (nongnu packages linux)
|
||||
#: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
|
||||
(operating-system
|
||||
(inherit installation-os)
|
||||
|
@ -27,6 +53,19 @@
|
|||
git
|
||||
neovim
|
||||
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
|
||||
|
|
|
@ -41,7 +41,11 @@
|
|||
|
||||
;; Do not use `@' to avoid introducing circular dependencies.
|
||||
(let ((module (resolve-interface '(gnu packages elf))))
|
||||
(module-ref module 'patchelf)))
|
||||
;; Use the older 0.16 version due to an upstream bug which can segfault
|
||||
;; 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)
|
||||
"Return the default glibc package."
|
||||
|
|
|
@ -54,7 +54,12 @@
|
|||
#~(let ((patchelf-inputs
|
||||
(list #$@(map car inputs))))
|
||||
(map (lambda (file)
|
||||
(cons file (list patchelf-inputs)))
|
||||
;; 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
|
||||
|
@ -136,7 +141,7 @@
|
|||
(build chromium-binary-build)
|
||||
(arguments (append
|
||||
(strip-keyword-arguments private-keywords arguments)
|
||||
(list #:wrap-inputs host-inputs))))))
|
||||
(list #:wrap-inputs (alist-delete "source" host-inputs)))))))
|
||||
|
||||
(define* (chromium-binary-build name inputs
|
||||
#:key
|
||||
|
@ -163,7 +168,13 @@
|
|||
(substitutable? #t)
|
||||
allowed-references
|
||||
disallowed-references)
|
||||
"Build SOURCE using binary-build-system."
|
||||
"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
|
||||
|
|
|
@ -2,12 +2,14 @@
|
|||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; 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)
|
||||
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||
#:use-module (nonguix build utils)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (%standard-phases
|
||||
binary-build))
|
||||
|
||||
|
@ -114,6 +116,10 @@ The inputs are optional when the file is an executable."
|
|||
(invoke "patchelf" "--set-rpath" rpath binary)))
|
||||
#t)
|
||||
|
||||
(display "Using patchelf version: ")
|
||||
(force-output)
|
||||
(invoke "patchelf" "--version")
|
||||
|
||||
(when (and patchelf-plan
|
||||
(not (null? patchelf-plan)))
|
||||
(let ((interpreter (car (find-files (assoc-ref inputs "libc") "ld-linux.*\\.so")))
|
||||
|
@ -139,11 +145,14 @@ The inputs are optional when the file is an executable."
|
|||
|
||||
(define (unpack-deb deb-file)
|
||||
(invoke "ar" "x" deb-file)
|
||||
(invoke "tar" "xvf" "data.tar.xz")
|
||||
(invoke "rm" "-rfv" "control.tar.gz"
|
||||
"data.tar.xz"
|
||||
deb-file
|
||||
"debian-binary"))
|
||||
(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)
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
(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 (nonguix build utils)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -24,9 +23,9 @@
|
|||
(nss (assoc-ref inputs "nss"))
|
||||
(wrap-inputs (map cdr inputs))
|
||||
(lib-directories
|
||||
(build-paths-from-inputs '("lib") wrap-inputs))
|
||||
(search-path-as-list '("lib") wrap-inputs))
|
||||
(bin-directories
|
||||
(build-paths-from-inputs
|
||||
(search-path-as-list
|
||||
'("bin" "sbin" "libexec")
|
||||
wrap-inputs)))
|
||||
(for-each
|
||||
|
@ -53,7 +52,12 @@
|
|||
(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
|
||||
|
|
|
@ -97,23 +97,3 @@ contents:
|
|||
(call-with-output-file result
|
||||
(lambda (port)
|
||||
(for-each (cut dump <> port) files))))
|
||||
|
||||
(define build-paths-for-input
|
||||
(lambda (dirs input)
|
||||
(filter-map
|
||||
(lambda (sub-directory)
|
||||
(let ((directory
|
||||
(string-append
|
||||
input "/" sub-directory)))
|
||||
(and
|
||||
(directory-exists? directory)
|
||||
directory)))
|
||||
dirs)))
|
||||
|
||||
(define build-paths-from-inputs
|
||||
(lambda (dirs inputs)
|
||||
(reduce append '()
|
||||
(map
|
||||
(lambda (input)
|
||||
(build-paths-for-input dirs input))
|
||||
inputs))))
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
(define-module (nonguix multiarch-container)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
|
@ -260,8 +259,9 @@ in a sandboxed FHS environment."
|
|||
(home (getenv "HOME"))
|
||||
(sandbox-home (or (getenv "GUIX_SANDBOX_HOME")
|
||||
(string-append home "/" #$(ngc-sandbox-home container))))
|
||||
(wayland-display (or (getenv "WAYLAND_DISPLAY")
|
||||
"wayland-0"))
|
||||
(preserved-env '("^DBUS_"
|
||||
"^DISPLAY$"
|
||||
"^DRI_PRIME$"
|
||||
"^GDK_SCALE$" ; For UI scaling.
|
||||
"^GUIX_LOCPATH$" ; For pressure-vessel locales.
|
||||
|
@ -276,6 +276,7 @@ in a sandboxed FHS environment."
|
|||
;; 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.
|
||||
"_PROXY$"
|
||||
|
@ -289,12 +290,15 @@ in a sandboxed FHS environment."
|
|||
"^SDL_"
|
||||
"^STEAM_"
|
||||
"^SSL_" ; SSL certificate environment, needed by curl for Heroic.
|
||||
"^VDPAU_DRIVER_PATH$" ; For VDPAU drivers.
|
||||
"^TZ" ; For setting time zone.
|
||||
"^XAUTHORITY$"
|
||||
;; Matching all ^XDG_ vars causes issues
|
||||
;; discussed in 80decf05.
|
||||
"^XDG_CURRENT_DESKTOP$"
|
||||
"^XDG_DATA_HOME$"
|
||||
"^XDG_RUNTIME_DIR$"
|
||||
"^XDG_SESSION_(CLASS|TYPE)$"
|
||||
"^(WAYLAND_)?DISPLAY$"
|
||||
#$@(ngc-preserved-env container) ; Environment from container.
|
||||
;; The following are useful for debugging.
|
||||
"^CAPSULE_DEBUG$"
|
||||
|
@ -310,6 +314,7 @@ in a sandboxed FHS environment."
|
|||
,@(exists-> "/dev/nvidia-modeset")
|
||||
,@(exists-> "/etc/machine-id")
|
||||
"/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/hwmon" ; Needed for hw monitoring like MangoHud.
|
||||
"/sys/class/hidraw" ; Needed for devices like the Valve Index.
|
||||
|
@ -333,11 +338,15 @@ in a sandboxed FHS environment."
|
|||
,@(exists-> (string-append home "/.config/pulse"))
|
||||
,@(exists-> (string-append xdg-runtime "/pulse"))
|
||||
,@(exists-> (string-append xdg-runtime "/bus"))
|
||||
,@(exists-> (string-append xdg-runtime "/" wayland-display))
|
||||
,@(exists-> (getenv "XAUTHORITY"))
|
||||
#$@(ngc-shared container)))
|
||||
(DEBUG (equal? (getenv "DEBUG") "1"))
|
||||
(extra-shares (if (getenv "GUIX_SANDBOX_EXTRA_SHARES")
|
||||
(string-split (getenv "GUIX_SANDBOX_EXTRA_SHARES") #\:)
|
||||
;; 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)))
|
||||
(command (if DEBUG '()
|
||||
|
@ -347,19 +356,16 @@ in a sandboxed FHS environment."
|
|||
;; the "usual" path, probably so they are included in the
|
||||
;; pressure-vessel container.
|
||||
(setenv "GUIX_LOCPATH" "/usr/lib/locale")
|
||||
;; By default VDPAU drivers are searched for in libvdpau's store
|
||||
;; path, so set this path to where the drivers will actually be
|
||||
;; located in the container.
|
||||
(setenv "VDPAU_DRIVER_PATH" "/lib64/vdpau")
|
||||
;; By default VA-API drivers are searched for in mesa's store path,
|
||||
;; so set this path to where the drivers will actually be located in
|
||||
;; the container.
|
||||
(setenv "LIBVA_DRIVERS_PATH" "/lib64/dri:/lib/dri")
|
||||
(format #t "\n* Launching ~a in sandbox: ~a.\n\n"
|
||||
#$(package-name (ngc-wrap-package container)) sandbox-home)
|
||||
(when DEBUG
|
||||
(format #t "* DEBUG set to 1: Starting shell. Launch application manually with: ~a.\n\n"
|
||||
#$(ngc-internal-name container)))
|
||||
(mkdir-p sandbox-home)
|
||||
(invoke #$(file-append pulseaudio "/bin/pulseaudio")
|
||||
"--start"
|
||||
"--exit-idle-time=60")
|
||||
(apply invoke
|
||||
`("guix" "shell"
|
||||
"--container" "--no-cwd" "--network"
|
||||
|
@ -455,7 +461,9 @@ application."
|
|||
`((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 getopt-long))
|
||||
(ice-9 getopt-long)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
(define (path->str path)
|
||||
(if (list? path)
|
||||
(string-join path "/")
|
||||
|
@ -465,9 +473,13 @@ application."
|
|||
(dest (path->str (cdr pair))))
|
||||
(unless (file-exists? dest)
|
||||
(symlink target dest))))
|
||||
(define (icd-symlink file)
|
||||
(define (file-symlink file dir)
|
||||
(mkdir-p dir)
|
||||
(new-symlink
|
||||
`(,file . ("/usr/share/vulkan/icd.d" ,(basename file)))))
|
||||
`(,file . (,dir ,(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
|
||||
'((asound32 (value #f))))
|
||||
(let* ((guix-env (getenv "GUIX_ENVIRONMENT"))
|
||||
|
@ -488,14 +500,11 @@ application."
|
|||
"/run/current-system/profile/share"
|
||||
"/sbin"
|
||||
"/usr/lib"
|
||||
"/usr/share/vulkan/icd.d"))
|
||||
"/usr/share"))
|
||||
(for-each
|
||||
new-symlink
|
||||
`((,ld.so.cache . "/etc/ld.so.cache")
|
||||
(,ld.so.conf . "/etc/ld.so.conf") ;; needed?
|
||||
;; For MangoHud implicit layers.
|
||||
((,guix-env "share/vulkan/implicit_layer.d") .
|
||||
"/usr/share/vulkan/implicit_layer.d")
|
||||
((,guix-env "etc/ssl") . "/etc/ssl")
|
||||
((,guix-env "etc/ssl") . "/run/current-system/profile/etc/ssl")
|
||||
((,union32 "lib") . "/lib")
|
||||
|
@ -512,17 +521,41 @@ application."
|
|||
((,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/fonts") . "/usr/share/fonts")
|
||||
((,union64 "share/fonts") . "/run/current-system/profile/share/fonts")
|
||||
((,union64 "etc/fonts") . "/etc/fonts")
|
||||
((,union64 "share/vulkan/explicit_layer.d") .
|
||||
"/usr/share/vulkan/explicit_layer.d")))
|
||||
((,union64 "etc/fonts") . "/etc/fonts")))
|
||||
(for-each
|
||||
icd-symlink
|
||||
;; Use stat to follow links from packages like MangoHud.
|
||||
`(,@(find-files (string-append union32 "/share/vulkan/icd.d")
|
||||
#:directories? #t #:stat stat)
|
||||
,@(find-files (string-append union64 "/share/vulkan/icd.d")
|
||||
#:directories? #t #:stat stat)))
|
||||
(cut file-symlink <> "/usr/share/egl/egl_external_platform.d")
|
||||
(append-map
|
||||
get-files
|
||||
`((,union32 "share/egl/egl_external_platform.d")
|
||||
(,union64 "share/egl/egl_external_platform.d"))))
|
||||
(for-each
|
||||
(cut file-symlink <> "/usr/share/glvnd/egl_vendor.d")
|
||||
(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
|
||||
;; (previous would output this error but continue).
|
||||
|
@ -537,7 +570,9 @@ application."
|
|||
;; 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" "/lib64:/lib")
|
||||
(setenv "LD_LIBRARY_PATH"
|
||||
(string-append "/lib64:/lib:/lib64/nss:/lib/nss:"
|
||||
"/lib64/vdpau:/lib/vdpau"))
|
||||
|
||||
;; Process FHS-specific command line options.
|
||||
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
|
||||
(define-module (nonguix utils)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-43)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 textual-ports)
|
||||
#:use-module (ice-9 popen)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu services)
|
||||
#:export (with-transformation))
|
||||
|
||||
(define-public (to32 package64)
|
||||
"Build package for i686-linux.
|
||||
|
@ -22,3 +25,45 @@ Only x86_64-linux and i686-linux are supported.
|
|||
(arguments `(#:system "i686-linux"
|
||||
,@(package-arguments 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