Compare commits
1 Commits
master
...
firefox-sa
Author | SHA1 | Date | |
---|---|---|---|
|
e5cc8b2c7b |
|
@ -1,5 +1,3 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
|
||||
;; Per-directory local variables for GNU Emacs 23 and later.
|
||||
|
||||
((nil
|
||||
|
@ -10,17 +8,11 @@
|
|||
;; For use with 'bug-reference-prog-mode'.
|
||||
(bug-reference-url-format . "https://gitlab.com/nonguix/nonguix/issues/%s")
|
||||
(bug-reference-bug-regexp
|
||||
. "\\(#\\([0-9]+\\)\\)")
|
||||
|
||||
(geiser-insert-actual-lambda . nil)))
|
||||
. "#[0-9]+")))
|
||||
(c-mode . ((c-file-style . "gnu")))
|
||||
(scheme-mode
|
||||
.
|
||||
;; Note this next setting will use the current guix as the geiser binary;
|
||||
;; one working with a local guix checkout may want something different.
|
||||
((geiser-guile-binary . ("guix" "repl"))
|
||||
|
||||
(indent-tabs-mode . nil)
|
||||
((indent-tabs-mode . nil)
|
||||
(eval . (put 'eval-when 'scheme-indent-function 1))
|
||||
(eval . (put 'call-with-prompt 'scheme-indent-function 1))
|
||||
(eval . (put 'test-assert 'scheme-indent-function 1))
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;; This is the list of OpenPGP keys currently authorized to sign commits in
|
||||
;; this repository.
|
||||
|
||||
|
@ -9,9 +8,6 @@
|
|||
(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"
|
||||
|
@ -21,8 +17,7 @@
|
|||
(name "jonsger"))
|
||||
("D319 C7A9 8F2C 3A11 D9C0 0E30 F369 0CBE 3152 EF58"
|
||||
(name "pineapples"))
|
||||
(;; primary: "7E9F 5BF6 1680 4367 127B 7A87 F9E6 9FB8 5A75 54F1"
|
||||
"A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9"
|
||||
("A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9"
|
||||
(name "podiki"))
|
||||
("1EFB 0909 1F17 D28C CBF9 B13A 53D4 57B2 D636 EE82"
|
||||
(name "roptat"))))
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;; -*- mode: scheme; -*-
|
||||
|
||||
(channel
|
||||
|
|
21
NEWS
21
NEWS
|
@ -1,21 +0,0 @@
|
|||
-*- org -*-
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
# Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
# Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
|
||||
#+TITLE: NEWS about user visible changes of nonguix
|
||||
|
||||
* Unreleased
|
||||
*** New `chromium-binary-build-system`
|
||||
|
||||
* Changes in 1.4.0 (since 2022-05-21 (Guix 1.3.0))
|
||||
** Distribution
|
||||
*** Nvidia driver now available as service
|
||||
*** Enable WebAssembly sandboxed libraries in firefox
|
||||
*** Update binary build system to return a monadic procedure
|
||||
** New services
|
||||
nvidia
|
||||
** package updates including:
|
||||
firefox 108.0.1, firefox-esr 102.6.0esr, linux 6.0.12, nvidia-driver 515.76
|
||||
steam 1.0.0.75
|
||||
*** steam updates
|
||||
Steam now supports Proton versions 5.13 and newer, including support for SteamVR.
|
132
README.org
132
README.org
|
@ -94,20 +94,19 @@ your configuration.
|
|||
** Installation image
|
||||
|
||||
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]] (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:
|
||||
(e.g. unsupported wifi). You can generate an installation image running the
|
||||
nonfree Linux kernel and nonfree firmware 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. Alternatively, a writable image can
|
||||
be created with the following command:
|
||||
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:
|
||||
|
||||
#+begin_src sh
|
||||
guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
|
||||
|
@ -124,14 +123,11 @@ Either type of image can be written to a USB thumbdrive with:
|
|||
dd if=/path/to/disk-image of=/dev/sdb bs=4M status=progress oflag=sync
|
||||
#+END_SRC
|
||||
|
||||
*** 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.
|
||||
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.
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(use-modules (ice-9 pretty-print))
|
||||
|
@ -177,19 +173,18 @@ is exactly equivalent to:
|
|||
rest)))
|
||||
#+END_SRC
|
||||
|
||||
** Broadcom
|
||||
|
||||
*** Wireless
|
||||
** Broadcom Wireless
|
||||
|
||||
Some Broadcom wireless hardware requires a proprietary kernel module in
|
||||
addition to firmware. To use such hardware you will also need to add a service
|
||||
to load that module on boot and blacklist conflicting kernel modules:
|
||||
to load that module on boot, blacklist conflicting kernel modules, and while not
|
||||
required, it is recommended to stay with Linux LTS releases:
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(use-modules (nongnu packages linux))
|
||||
|
||||
(operating-system
|
||||
(kernel linux)
|
||||
(kernel linux-lts)
|
||||
;; Blacklist conflicting kernel modules.
|
||||
(kernel-arguments '("modprobe.blacklist=b43,b43legacy,ssb,bcm43xx,brcm80211,brcmfmac,brcmsmac,bcma"))
|
||||
(kernel-loadable-modules (list broadcom-sta))
|
||||
|
@ -198,98 +193,6 @@ to load that module on boot and blacklist conflicting kernel modules:
|
|||
...)
|
||||
#+END_SRC
|
||||
|
||||
*** Webcam
|
||||
|
||||
Like Broadcom wireless hardware, the Broadcom 1570 PCIe webcam (better known as
|
||||
FacetimeHD and found in recent Macbooks) also requires a kernel module,
|
||||
firmware, and blacklisting of conflicting modules:
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(use-modules (nongnu packages linux))
|
||||
(use-modules (nongnu packages firmware))
|
||||
|
||||
(operating-system
|
||||
(kernel-arguments '("modprobe.blacklist=bdc_pci"))
|
||||
(kernel-loadable-modules (list facetimehd))
|
||||
(firmware (cons* facetimehd-firmware
|
||||
facetimehd-calibration ; Optional but make the colors look better.
|
||||
%base-firmware))
|
||||
(services
|
||||
(cons* (simple-service 'facetimehd
|
||||
kernel-module-loader-service-type
|
||||
'("facetimehd"))
|
||||
...))
|
||||
...)
|
||||
#+END_SRC
|
||||
|
||||
** NVIDIA graphics card
|
||||
|
||||
NVIDIA graphics card support in Nonguix consists of a system service =nvidia-service-type= and a package =nvda= for application setup.
|
||||
|
||||
The following code serves as an example for system setup:
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(use-modules (gnu services gnome)
|
||||
(gnu services xorg)
|
||||
(nongnu packages nvidia)
|
||||
(nongnu services nvidia))
|
||||
|
||||
(operating-system
|
||||
(kernel-arguments '("modprobe.blacklist=nouveau"
|
||||
;; Set this if the card is not used for displaying or
|
||||
;; you're using Wayland:
|
||||
"nvidia_drm.modeset=1"))
|
||||
(services
|
||||
(cons* (service nvidia-service-type)
|
||||
;; Configure desktop environment, GNOME for example.
|
||||
(service gnome-desktop-service-type
|
||||
;; Enable NVIDIA support, only do this when the card is
|
||||
;; used for displaying.
|
||||
(gnome-desktop-configuration
|
||||
(gnome (replace-mesa gnome))))
|
||||
;; Configure Xorg server, only do this when the card is used for
|
||||
;; displaying.
|
||||
(set-xorg-configuration
|
||||
(xorg-configuration
|
||||
(modules (cons nvda %default-xorg-modules))
|
||||
(drivers '("nvidia"))))
|
||||
...))
|
||||
...)
|
||||
#+END_SRC
|
||||
|
||||
For application setup, =mesa= has to be replaced with =nvda= for every individual package that requires the NVIDIA driver, this can be done with grafting (which doesn't rebuild packages) or rewriting inputs (which rebuilds packages) (see [[https://guix.gnu.org/manual/devel/en/guix.html#Package-Transformation-Options][Package Transformation Options]] in GNU Guix Reference Manual). For example:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
guix build mesa-utils --with-graft=mesa=nvda
|
||||
guix build mesa-utils --with-input=mesa=nvda
|
||||
#+END_SRC
|
||||
|
||||
The above transformation can be used within an one-off software environment spawned by =guix shell= as well, for correct environment variables, the =nvda= package may be added into the environment:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
guix shell mesa-utils nvda --with-graft=mesa=nvda \
|
||||
-- glxinfo
|
||||
#+END_SRC
|
||||
|
||||
To graft mesa with nvda programmatically, use =replace-mesa= defined in =(nongnu packages nvidia)=:
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(use-modules (nongnu packages nvidia))
|
||||
|
||||
;; Replace mesa with nvda for a single package.
|
||||
(replace-mesa <some-package>)
|
||||
|
||||
;; Replace mesa with nvda for a package list.
|
||||
(map replace-mesa (list <some-package> ...))
|
||||
|
||||
;; A package with mesa replaced is still a package, it can be part of a
|
||||
;; package list.
|
||||
(list (replace-mesa <some-package>)
|
||||
...)
|
||||
#+END_SRC
|
||||
|
||||
When the card is not used for displaying, environment variables =__GLX_VENDOR_LIBRARY_NAME=nvidia= and =__NV_PRIME_RENDER_OFFLOAD=1= may be set.
|
||||
|
||||
** Substitutes for nonguix
|
||||
|
||||
A Nonguix substitute server is available at [[https://substitutes.nonguix.org]].
|
||||
|
@ -329,9 +232,6 @@ sudo guix archive --authorize < signing-key.pub
|
|||
sudo guix system reconfigure /etc/config.scm --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
|
||||
#+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,121 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||
|
||||
;;; This file is not part of GNU Guix but requires this naming scheme
|
||||
;;; so that the %nvidia-updater is properly read when using
|
||||
;;; `guix refresh -L$(pwd) nvidia-driver' in nonguix root.
|
||||
|
||||
(define-module (guix import nvidia)
|
||||
#:use-module (web client)
|
||||
#:use-module (sxml match)
|
||||
#:use-module (sxml simple)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix upstream)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-71)
|
||||
#:export (%nvidia-updater))
|
||||
|
||||
(define nvidia-latest-url "https://www.nvidia.com/en-us/drivers/unix/")
|
||||
|
||||
(define (archive->guix-arch system)
|
||||
(match system
|
||||
("https://www.nvidia.com/object/linux-amd64-display-archive.html"
|
||||
"x86_64-linux")
|
||||
("https://www.nvidia.com/en-us/drivers/unix/linux-aarch64-archive/"
|
||||
"aarch64-linux")
|
||||
(_ #f)))
|
||||
|
||||
(define (archive? cand)
|
||||
(or (string= cand (string-append nvidia-latest-url "linux-aarch64-archive/"))
|
||||
(and (string-prefix? "https://www.nvidia.com/object/" cand)
|
||||
(string-suffix? "-archive.html" cand))))
|
||||
|
||||
(define nvidia-versions
|
||||
(memoize
|
||||
(lambda _
|
||||
(let* ((response content (http-get nvidia-latest-url))
|
||||
(match-str (string-match "<div id=\"rightContent\".*</div>"
|
||||
content))
|
||||
(greedy-right-content (match:substring match-str))
|
||||
(match-str (string-match "</div>" greedy-right-content))
|
||||
(right-content
|
||||
(string-append (match:prefix match-str) "</div>"))
|
||||
;; xml->sxml is not flexible enough for html.
|
||||
;; For instance, <br> tags don't have closing </br>.
|
||||
;; This trick preprocesses html to extract all <a> tags in
|
||||
;; a <body> wrapper, which sxml-match can handle well.
|
||||
(xml (xml->sxml
|
||||
(string-append
|
||||
"<body><"
|
||||
(string-join
|
||||
(filter (cute string-prefix? "a " <>)
|
||||
(string-split right-content #\<))
|
||||
"</a><")
|
||||
"</a></body>")
|
||||
#:trim-whitespace? #t))
|
||||
(link-alist
|
||||
(sxml-match
|
||||
xml
|
||||
((*TOP*
|
||||
(body
|
||||
(a (@ (href ,url)) ,version) ...))
|
||||
(fold acons
|
||||
'()
|
||||
(list (or (string= version "Archive")
|
||||
(string-trim version))
|
||||
...)
|
||||
(list (if (archive? url)
|
||||
(archive->guix-arch url)
|
||||
url)
|
||||
...)))))
|
||||
(system #f)
|
||||
(versions
|
||||
(fold
|
||||
(lambda (el rest)
|
||||
(match el
|
||||
(`(#t . ,s)
|
||||
(set! system s)
|
||||
rest)
|
||||
(`(,version . ,address)
|
||||
;; aarch64 seems to follow the same driver versions than x86_64
|
||||
;; KISS: use only an alist of versions
|
||||
;; go for an alist of alists insted if they diverge
|
||||
(if (and (string? system) (string= system "x86_64-linux"))
|
||||
(cons version rest)
|
||||
rest))
|
||||
(_ rest)))
|
||||
'()
|
||||
link-alist)))
|
||||
(fold acons '() (list "main" "latest" "beta") (take versions 3))))))
|
||||
|
||||
(define* (latest-release package #:key (version #f))
|
||||
"Return an <upstream-source> for the latest-release of PACKAGE."
|
||||
(let* ((name (package-name package))
|
||||
(kind (match name
|
||||
("nvidia-driver" "main")
|
||||
("nvidia-driver-beta" "beta")))
|
||||
(version (or version (assoc-ref (nvidia-versions) kind))))
|
||||
(upstream-source
|
||||
(package name)
|
||||
(version version)
|
||||
(urls (list (string-append
|
||||
"https://us.download.nvidia.com/XFree86/Linux-x86_64/"
|
||||
version "/NVIDIA-Linux-x86_64-" version ".run"))))))
|
||||
|
||||
(define (nvidia-package? package)
|
||||
"Return true if PACKAGE is Nvidia."
|
||||
(member (package-name package)
|
||||
(list "nvidia-driver" "nvidia-driver-beta")))
|
||||
|
||||
(define %nvidia-updater
|
||||
(upstream-updater
|
||||
(name 'nvidia)
|
||||
(description "Updater for Nvidia packages")
|
||||
(pred nvidia-package?)
|
||||
(import latest-release)))
|
||||
|
||||
;; nvidia.scm ends here.
|
64
news.txt
64
news.txt
|
@ -1,6 +1,4 @@
|
|||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2023 Wolf <wolf@wolfsden.cz>
|
||||
;;
|
||||
;; Copying and distribution of this file, with or without modification, are
|
||||
;; permitted in any medium without royalty provided the copyright notice and
|
||||
|
@ -9,68 +7,6 @@
|
|||
(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)"))
|
||||
(body
|
||||
(en "The nonguix container has a new environment variable
|
||||
@code{GUIX_SANDBOX_EXTRA_SHARES} which is a @code{:} delimited list of
|
||||
directories to share with the container. These directories will be available
|
||||
at the same path as the host. For instance, you can set this to another drive
|
||||
you want to have a Steam library in by either setting this variable in your
|
||||
environment or launching Steam with:
|
||||
|
||||
@example
|
||||
GUIX_SANDBOX_EXTRA_SHARES=/some/other/drive steam
|
||||
@end example
|
||||
|
||||
This should allow you to select @code{/some/other/drive} in Steam for a game
|
||||
library. This is an experimental feature and just provides a basic way to add
|
||||
shares to the container, so please test and report any difficulties or
|
||||
suggestions to improve.")))
|
||||
|
||||
(entry (commit "1591c3d1d10b2884da29ab7d1252304f2ce1514b")
|
||||
(title
|
||||
(en "(nongnu packages steam-client) module renamed"))
|
||||
(body
|
||||
(en "The (nongnu packages steam-client) module has been renamed to (nongnu packages
|
||||
game-client). This is to better reflect the contents with the addition of the
|
||||
Heroic client in a following commit.")))
|
||||
|
||||
(entry (commit "9456c59cfa580399ab450ca0057321e2d81f3319")
|
||||
(title
|
||||
(en "Linux LTS kernel updated to 6.1")
|
||||
(de "Linux LTS Kernel wird auf 6.1 aktualisiert"))
|
||||
(body
|
||||
(en "The default version of the @code{linux-lts} kernel has been
|
||||
updated to the 6.1 longterm release series.")
|
||||
(de "Der standardmäßig verwendete @code{linux-lts}-Kernel basiert
|
||||
jetzt auf der 6.1-Versionsreihe (Langzeitunterstützung).")))
|
||||
|
||||
(entry (commit "7d4c49eace0d3f074aa34ebbbf880236b6b0fab1")
|
||||
(title
|
||||
(en "Nvidia driver configuration refactored")
|
||||
(de "Nvidia Treiberkonfiguration überarbeitet"))
|
||||
(body
|
||||
(en "The configuration of the Nvidia driver was completly over-worked.
|
||||
In the system definition @code{nvidia-driver} needs to be replaced by
|
||||
@code{nvidia-module} in the @code{kernel-loadable-module} list. Further add
|
||||
the service @code{nvidia-service-type}.")
|
||||
(de "Die Konfiguration der Nvidia Treiber wurde komplett überarbeitet.
|
||||
Dazu muss in der Systemkonfiguration @code{nvidia-driver} mit @code{nvidia-module}
|
||||
in der @code{kernel-loadable-module} Liste ersetzt werden. Sowie der Dienst
|
||||
@code{nvidia-service-type} hinzugefügt werden.")))
|
||||
|
||||
(entry (commit "1ac29b33f3ca19134fcbedd6dc22deb45c15229f")
|
||||
(title (en "Nonguix authenticated updates"))
|
||||
(body
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2021 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu ci)
|
||||
#:use-module (gnu ci)
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
|
||||
(define-module (nongnu packages)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix diagnostics)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:replace (%patch-path
|
||||
search-patch)
|
||||
#:export (nongnu-patches))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This module refines the default value of some parameters from (gnu
|
||||
;;; packages) and the syntax/procedures using those. This allows
|
||||
;;; 'search-paths' and friends to work without any user intervention.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define %nongnu-root-directory
|
||||
;; This is like %distro-root-directory from (gnu packages), with adjusted
|
||||
;; paths.
|
||||
(letrec-syntax ((dirname* (syntax-rules ()
|
||||
((_ file)
|
||||
(dirname file))
|
||||
((_ file head tail ...)
|
||||
(dirname (dirname* file tail ...)))))
|
||||
(try (syntax-rules ()
|
||||
((_ (file things ...) rest ...)
|
||||
(match (search-path %load-path file)
|
||||
(#f
|
||||
(try rest ...))
|
||||
(absolute
|
||||
(dirname* absolute things ...))))
|
||||
((_)
|
||||
#f))))
|
||||
(try ("nongnu/packages/firmware.scm" nongnu/ packages/)
|
||||
("nongnu/ci.scm" nongnu/))))
|
||||
|
||||
(define %patch-path
|
||||
;; Define it after '%package-module-path' so that '%load-path' contains user
|
||||
;; directories, allowing patches in $GUIX_PACKAGE_PATH to be found.
|
||||
(make-parameter
|
||||
(map (lambda (directory)
|
||||
(if (string=? directory %nongnu-root-directory)
|
||||
(string-append directory "/nongnu/packages/patches")
|
||||
directory))
|
||||
%load-path)))
|
||||
|
||||
;;; XXX: The following must be redefined to make use of the overridden
|
||||
;;; %patch-path parameter above.
|
||||
(define (search-patch file-name)
|
||||
"Search the patch FILE-NAME. Raise an error if not found."
|
||||
(or (search-path (%patch-path) file-name)
|
||||
(raise (formatted-message (G_ "~a: patch not found")
|
||||
file-name))))
|
||||
|
||||
;;; XXX: `search-patches' being syntax, it can't be overridden by the module
|
||||
;;; system, or so it seems, so we simply rename it.
|
||||
(define-syntax-rule (nongnu-patches file-name ...)
|
||||
"Return the list of absolute file names corresponding to each
|
||||
FILE-NAME found in %PATCH-PATH."
|
||||
(list (search-patch file-name) ...))
|
|
@ -1,6 +1,21 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021 Korytov Pavel <thexcloud@gmail.com>
|
||||
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages anydesk)
|
||||
#:use-module (gnu packages compression)
|
||||
|
@ -21,20 +36,20 @@
|
|||
(define-public anydesk
|
||||
(package
|
||||
(name "anydesk")
|
||||
(version "6.3.2-1")
|
||||
(version "6.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.anydesk.com/linux/anydesk_"
|
||||
version "_amd64.deb"))
|
||||
(uri (string-append "https://download.anydesk.com/linux/anydesk-"
|
||||
version "-amd64.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13b5ab4a889vz39d36f45mhv3mlaxb305wsh3plk3dbjcrkkkirb"))))
|
||||
"1ai58fsivb8al1279bayl800qavy0kfj40rjhf87g902ap3p4bhh"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:validate-runpath? #f
|
||||
#:strip-binaries? #f ;; For some reason it breaks the program
|
||||
#:patchelf-plan
|
||||
`(("usr/bin/anydesk" ("atk"
|
||||
`(("anydesk" ("atk"
|
||||
"cairo"
|
||||
"fontconfig"
|
||||
"freetype"
|
||||
|
@ -66,29 +81,17 @@
|
|||
"polkit-gnome"
|
||||
"pulseaudio")))
|
||||
#:install-plan
|
||||
`(("usr/bin/anydesk" "/bin/")
|
||||
("usr/share/polkit-1/actions/com.anydesk.anydesk.policy" "/etc/polkit-1/actions/")
|
||||
("usr/share/icons" "/share/icons/"))
|
||||
`(("anydesk" "/bin/")
|
||||
("polkit-1/com.anydesk.anydesk.policy" "/etc/polkit-1/actions/")
|
||||
("icons/" "/share/icons/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(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")))))
|
||||
(replace 'unpack
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(invoke "tar" "-xvzf" (assoc-ref inputs "source") "--strip-components" "1")))
|
||||
(add-after 'wrap-program 'install-desktop-entry
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((desktop-file "usr/share/applications/anydesk.desktop")
|
||||
(let* ((desktop-file "anydesk.desktop")
|
||||
(out (assoc-ref outputs "out"))
|
||||
(applications (string-append out "/share/applications")))
|
||||
(substitute* desktop-file
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2021-2022 Petr Hodina <phodina@protonmail.com>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages benchmark)
|
||||
#:use-module (guix packages)
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2021-2022 Petr Hodina <phodina@protonmail.com>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages cad)
|
||||
#:use-module (guix packages)
|
||||
|
@ -146,7 +158,7 @@
|
|||
openlibm
|
||||
pulseaudio
|
||||
qtbase-5
|
||||
qtserialport-5
|
||||
qtserialport
|
||||
qtmultimedia-5
|
||||
zlib))
|
||||
(synopsis "Layout, editing, and control software for your laser cutter")
|
||||
|
|
|
@ -1,30 +1,44 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022, 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2022 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages chrome)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages cups)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages wget)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module (nonguix licenses)
|
||||
#:use-module (ice-9 string-fun))
|
||||
|
||||
|
@ -44,31 +58,43 @@
|
|||
name "/" name "_" version "-1_amd64.deb"))
|
||||
(sha256
|
||||
(base32 hash))))
|
||||
(build-system chromium-binary-build-system)
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; almost 300MB, faster to download and build from Google servers
|
||||
#:substitutable? #f
|
||||
#:wrapper-plan
|
||||
#~(let ((path (string-append "opt/google/" #$appname "/")))
|
||||
#:patchelf-plan
|
||||
#~(let ((patchelf-inputs
|
||||
'("alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups"
|
||||
"dbus" "expat" "fontconfig-minimal" "gcc" "gdk-pixbuf" "glib"
|
||||
"gtk" "libdrm" "libnotify" "libsecret" "libx11" "libxcb"
|
||||
"libxcomposite" "libxcursor" "libxdamage" "libxext" "libxfixes"
|
||||
"libxi" "libxkbcommon" "libxkbfile" "libxrandr" "libxrender"
|
||||
"libxtst" "mesa" "nspr" "pango" "zlib"))
|
||||
(path (string-append "opt/google/" #$appname "/")))
|
||||
(map (lambda (file)
|
||||
(string-append path file))
|
||||
(cons (string-append path file) (list patchelf-inputs)))
|
||||
'("chrome"
|
||||
"chrome-sandbox"
|
||||
"chrome_crashpad_handler"
|
||||
"nacl_helper"
|
||||
"libEGL.so"
|
||||
"libGLESv2.so"
|
||||
"liboptimization_guide_internal.so"
|
||||
"libqt5_shim.so"
|
||||
"libqt6_shim.so"
|
||||
"libvk_swiftshader.so"
|
||||
"libvulkan.so.1"
|
||||
"WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))
|
||||
"libGLESv2.so")))
|
||||
#:install-plan
|
||||
#~'(("opt/" "/share")
|
||||
("usr/share/" "/share"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'unpack-deb
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(invoke "ar" "x" #$source)
|
||||
(invoke "rm" "-v" "control.tar.xz"
|
||||
"debian-binary"
|
||||
(string-append "google-chrome-" #$repo "_"
|
||||
#$version
|
||||
"-1_amd64.deb"))
|
||||
(invoke "tar" "xf" "data.tar.xz")
|
||||
(invoke "rm" "-vrf" "data.tar.xz" "etc")))
|
||||
(add-before 'install 'patch-assets
|
||||
;; Many thanks to
|
||||
;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/google-chrome/default.nix
|
||||
|
@ -88,24 +114,9 @@
|
|||
((old-exe) exe))
|
||||
(substitute* (string-append usr/share "/menu/google-" #$appname ".menu")
|
||||
(("/opt") share)
|
||||
((old-exe) exe)))))
|
||||
(add-after 'install 'install-icons
|
||||
(lambda _
|
||||
(define (format-icon-size name)
|
||||
(car
|
||||
(string-split
|
||||
(string-drop-right (string-drop name 13) 4)
|
||||
#\_)))
|
||||
(let ((icons (string-append #$output "/share/icons/hicolor"))
|
||||
(share (string-append #$output "/share/google/" #$appname)))
|
||||
(for-each (lambda (icon)
|
||||
(let* ((icon-name (basename icon))
|
||||
(icon-size (format-icon-size icon-name))
|
||||
(target (string-append icons "/" icon-size "x" icon-size "/apps/google-" #$appname ".png")))
|
||||
(mkdir-p (dirname target))
|
||||
(rename-file icon target)))
|
||||
(find-files share "product_logo_.*\\.png")))))
|
||||
(add-before 'install-wrapper 'install-exe
|
||||
((old-exe) exe))
|
||||
#t)))
|
||||
(add-after 'install 'install-wrapper
|
||||
(lambda _
|
||||
(let* ((bin (string-append #$output "/bin"))
|
||||
(exe (string-append bin "/google-" #$appname))
|
||||
|
@ -114,29 +125,68 @@
|
|||
(mkdir-p bin)
|
||||
(symlink chrome-target exe)
|
||||
(wrap-program exe
|
||||
`("FONTCONFIG_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||
#$output)
|
||||
":")))
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$(this-package-input "nss") "/lib/nss")
|
||||
(string-append #$(this-package-input "eudev") "/lib")
|
||||
(string-append #$(this-package-input "gcc") "/lib")
|
||||
(string-append #$(this-package-input "mesa") "/lib")
|
||||
(string-append #$(this-package-input "libxkbfile") "/lib")
|
||||
(string-append #$(this-package-input "zlib") "/lib")
|
||||
(string-append #$(this-package-input "libsecret") "/lib")
|
||||
(string-append #$(this-package-input "sqlcipher") "/lib")
|
||||
(string-append #$(this-package-input "libnotify") "/lib")
|
||||
(string-append #$(this-package-input "libdrm") "/lib")
|
||||
(string-append #$(this-package-input "pipewire") "/lib")
|
||||
#$output)
|
||||
":")))
|
||||
'("CHROME_WRAPPER" = (#$appname)))))))))
|
||||
(native-inputs (list tar))
|
||||
(inputs
|
||||
(list bzip2
|
||||
curl
|
||||
flac
|
||||
font-liberation
|
||||
gdk-pixbuf
|
||||
(list alsa-lib
|
||||
at-spi2-atk
|
||||
at-spi2-core
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
dbus
|
||||
eudev
|
||||
expat
|
||||
fontconfig
|
||||
`(,gcc "lib")
|
||||
glib
|
||||
gtk
|
||||
harfbuzz
|
||||
libexif
|
||||
libglvnd
|
||||
libpng
|
||||
libva
|
||||
libxscrnsaver
|
||||
opus
|
||||
pciutils
|
||||
pipewire
|
||||
qtbase-5
|
||||
qtbase
|
||||
snappy
|
||||
util-linux
|
||||
xdg-utils
|
||||
wget))
|
||||
libdrm
|
||||
libnotify
|
||||
librsvg
|
||||
libsecret
|
||||
libx11
|
||||
libxcb
|
||||
libxcomposite
|
||||
libxcursor
|
||||
libxdamage
|
||||
libxext
|
||||
libxfixes
|
||||
libxi
|
||||
libxkbcommon
|
||||
libxkbfile
|
||||
libxrandr
|
||||
libxrender
|
||||
libxtst
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
pipewire-0.3
|
||||
sqlcipher
|
||||
zlib))
|
||||
(synopsis "Freeware web browser")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(description "Google Chrome is a cross-platform web browser developed by Google.")
|
||||
|
@ -144,10 +194,10 @@
|
|||
(license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
|
||||
|
||||
(define-public google-chrome-stable
|
||||
(make-google-chrome "stable" "131.0.6778.108" "0b8a3dmn7n4kyjzyirxcy6xihnasmp3rcy2ly4zh7vp7r5l6lkqd"))
|
||||
(make-google-chrome "stable" "107.0.5304.68" "1x9svz5s8fm2zhnpzjpqckzfp37hjni3nf3pm63rwnvbd06y48ja"))
|
||||
|
||||
(define-public google-chrome-beta
|
||||
(make-google-chrome "beta" "132.0.6834.32" "0ncjyg3vxsjspb0i1nsflcry9sfsffnqiwa2y7cgh46xamdq6f2c"))
|
||||
(make-google-chrome "beta" "108.0.5359.40" "1zd8dbs5w2vdnck91pqiymwa2bnz53jgjbg89cr96y6jwab3i4b0"))
|
||||
|
||||
(define-public google-chrome-unstable
|
||||
(make-google-chrome "unstable" "133.0.6847.2" "1z15maqs1g8lhi7dm9hn4r272nl0g967a11igmw2sj14zl3n9j6g"))
|
||||
(make-google-chrome "unstable" "109.0.5410.0" "0ljhc5lqdy01apzyj96xzl931d904i37x62257s1h35w0j78mps0"))
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages chromium)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
|
@ -26,15 +41,15 @@
|
|||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public chromium-embedded-framework
|
||||
(let ((git-revision "5053a95")
|
||||
(chromium-version "117.0.5938.150")
|
||||
(let ((git-revision "d0bbcbb")
|
||||
(chromium-version "103.0.5060.114")
|
||||
(arch (match (or (%current-target-system) (%current-system))
|
||||
("aarch64-linux" "linuxarm64")
|
||||
("armhf-linux" "linuxarm")
|
||||
(_ "linux64"))))
|
||||
(package
|
||||
(name "chromium-embedded-framework")
|
||||
(version "117.2.4")
|
||||
(version "103.0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -45,7 +60,7 @@
|
|||
"_" arch "_minimal.tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vzzwq1k6bv9d209yg3samvfnfwj7s58y9r3p3pd98wxa9iyzf4j"))))
|
||||
"143x0jmasl4z16bkxlrbz874chd9x9xpc5qylb9h7j80gfcrzlsi"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:patchelf-plan
|
||||
|
|
|
@ -1,8 +1,22 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2020 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages clojure)
|
||||
#:use-module (gnu packages compression)
|
||||
|
@ -12,7 +26,6 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (nonguix build-system binary)
|
||||
|
@ -22,14 +35,14 @@
|
|||
(define leiningen-jar
|
||||
(package
|
||||
(name "leiningen-jar")
|
||||
(version "2.10.0")
|
||||
(version "2.9.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri "https://codeberg.org/attachments/43cebda5-a7c2-405b-b641-5143a00051b5")
|
||||
(uri "https://codeberg.org/attachments/895a0a0d-f20d-4580-a277-e06b5eec3b6b")
|
||||
(file-name "leiningen-standalone.jar")
|
||||
(sha256
|
||||
(base32
|
||||
"0d5vmpyp9ddxpj1s5c60fv2f5iimz1chbgfhchlaqxa0sfx9jwnj"))))
|
||||
"1ja9q8lav83h5qhayjgc39f6yyvk1n5f6gfwznn561xm007m6a52"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
|
@ -51,7 +64,7 @@ lets you focus on your code.")
|
|||
(package
|
||||
(inherit leiningen-jar)
|
||||
(name "leiningen")
|
||||
(version "2.10.0")
|
||||
(version "2.9.10")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -60,7 +73,7 @@ lets you focus on your code.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xvniav6iy1yrbamvbg8i3dq8issiczv3rbig2yc3nm08d2q0rig"))))
|
||||
"1hl62ykq7sckfpgg5l3wpzq5smh6s572xnadr988vpl97l2x1g4y"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
|
@ -87,7 +100,7 @@ lets you focus on your code.")
|
|||
(define-public clj-kondo
|
||||
(package
|
||||
(name "clj-kondo")
|
||||
(version "2025.01.16")
|
||||
(version "2022.06.22")
|
||||
(source (origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri (string-append
|
||||
|
@ -95,87 +108,26 @@ lets you focus on your code.")
|
|||
version "/clj-kondo-" version "-linux-amd64.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0w9a2lz9xr5446bav2fp70jfinlm9zrl0iv9s0h0b6jczqx2f977"))))
|
||||
"057h48kf14pdnnyvgmbqkga1bspbr4ag22q2279s14c2c9bcinzz"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list #:patchelf-plan `'(("clj-kondo" ("gcc" "zlib")))
|
||||
#:install-plan `'(("./clj-kondo" "/bin/"))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chmod
|
||||
(lambda _
|
||||
(chmod "clj-kondo" #o755))))))
|
||||
`(#:patchelf-plan
|
||||
'(("clj-kondo" ("gcc:lib" "zlib")))
|
||||
#:install-plan
|
||||
'(("clj-kondo" "/bin/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chmod
|
||||
(lambda _
|
||||
(chmod "clj-kondo" #o755))))))
|
||||
(native-inputs
|
||||
(list unzip))
|
||||
`(("unzip" ,unzip)))
|
||||
(inputs
|
||||
(list `(,gcc "lib")
|
||||
zlib))
|
||||
`(("gcc:lib" ,gcc "lib")
|
||||
("zlib" ,zlib)))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(home-page "https://github.com/clj-kondo/clj-kondo")
|
||||
(synopsis "Linter for Clojure 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)))
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages compression)
|
||||
#:use-module (guix packages)
|
||||
|
@ -10,14 +25,14 @@
|
|||
(define-public unrar
|
||||
(package
|
||||
(name "unrar")
|
||||
(version "7.0.9")
|
||||
(version "6.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.rarlab.com/rar/unrarsrc-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09l336li4q7yrpjq22q6da2vrynpqbyb4a9fdxa02k65wkwi6p2h"))))
|
||||
"1lzdsfb4d00silyk04lkvaklmxaiyqksyxx4h1krg77q6f1iigw1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; No tests.
|
||||
|
|
|
@ -1,7 +1,22 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2021 Isaac Young <isyoung@pm.me>
|
||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages coq)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -15,7 +30,7 @@
|
|||
(define-public compcert
|
||||
(package
|
||||
(name "compcert")
|
||||
(version "3.14")
|
||||
(version "3.11")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -24,11 +39,15 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"030fsg0qr9aasmwk0ahp78sw8rbjmf6pl1w9ws5ghs61kyk4qwj1"))))
|
||||
"183b1fn7vhb9ykxax11x0bb2q6z5jnd874nzlxqnnm89j3ysr134"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'allow-newer-coq-version
|
||||
(lambda _
|
||||
(substitute* "configure"
|
||||
(("8.14.0") "8.16.0"))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((system ,(match (or (%current-target-system) (%current-system))
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com>
|
||||
|
||||
(define-module (nongnu packages databases)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module ((guix licenses) #:prefix license:))
|
||||
|
||||
(define-public datomic-cli-tools
|
||||
(package
|
||||
(name "datomic-cli-tools")
|
||||
(version "1.0.91")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://datomic-releases-1fc2183a.s3.amazonaws.com"
|
||||
"/tools/datomic-cli/datomic-cli-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xicmbsig8f1p5r9rxkhndi0f9l9w421zf49rbx44yc6v0db523b"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:install-plan
|
||||
'(("." "bin" #:include-regexp ("^\\./datomic"))
|
||||
("README.txt" "share/doc/datomic/"))
|
||||
#:phases
|
||||
,#~(modify-phases %standard-phases
|
||||
(add-after 'install 'make-scripts-executable
|
||||
(lambda _
|
||||
(for-each (lambda (f) (chmod f #o555))
|
||||
(find-files (string-append #$output "/bin"))))))))
|
||||
(native-inputs
|
||||
(list unzip))
|
||||
(home-page "https://docs.datomic.com/cloud/index.html")
|
||||
(synopsis "Command-line tools for Datomic Cloud")
|
||||
(description "View and Manage analytics, logs, and access control gateways
|
||||
for a Datomic Cloud instance on AWS.")
|
||||
(license license:asl2.0)
|
||||
(properties
|
||||
`((release-monitoring-url
|
||||
. "https://docs.datomic.com/cloud/releases.html")
|
||||
(upstream-name . "datomic-cli")))))
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021 Jelle Licht <jlicht@fsfe.org>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages dotnet)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -67,25 +82,25 @@ various IDEs and plugins.")
|
|||
(license license:expat)))
|
||||
|
||||
(define-public dotnet
|
||||
(let ((dotnet-sdk-version "8.0.8"))
|
||||
(let ((dotnet-sdk-version "6.0.9"))
|
||||
(package
|
||||
(name "dotnet")
|
||||
(version "8.0.401")
|
||||
(version "6.0.401")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch/tarbomb)
|
||||
(uri
|
||||
(string-append "https://download.visualstudio.microsoft.com/"
|
||||
"download/pr/db901b0a-3144-4d07-b8ab-6e7a43e7a791/"
|
||||
"4d9d1b39b879ad969c6c0ceb6d052381/dotnet-sdk-"
|
||||
version "-linux-x64.tar.gz"))
|
||||
(string-append "https://download.visualstudio.microsoft.com/download/pr/8159607a-e686-4ead-ac99-b4c97290a5fd/ec6070b1b2cc0651ebe57cf1bd411315/dotnet-sdk-"
|
||||
version
|
||||
"-linux-x64.tar.gz"))
|
||||
(sha256
|
||||
(base32 "1ygr563apl2776yjabn0plsvx5fcmb5wb0fnldrqwb9b5n8d6cb2"))))
|
||||
(base32
|
||||
"05yr64ffcaf48ripxzcv9nwlzp7r83cy9hz17dm5c0317lhksqch"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:patchelf-plan
|
||||
;; TODO: Make this a more compact procedure.
|
||||
`(("dotnet" ("gcc:lib" "zlib"))
|
||||
`(("dotnet"
|
||||
("gcc:lib" "zlib"))
|
||||
(,,(string-append "shared/Microsoft.NETCore.App/"
|
||||
dotnet-sdk-version
|
||||
"/libSystem.Net.Security.Native.so")
|
||||
|
@ -94,18 +109,6 @@ 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")
|
||||
|
@ -120,12 +123,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"))
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 B. Wilson <x@wilsonb.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages dyalog)
|
||||
#:use-module (gnu packages autotools)
|
||||
|
@ -83,7 +98,7 @@
|
|||
((guix elf) #:select (elf-segments parse-elf PT_INTERP))
|
||||
((ice-9 binary-ports) #:select (get-bytevector-n))
|
||||
((srfi srfi-1) #:select (last))
|
||||
,@%default-gnu-imported-modules)
|
||||
,@%gnu-build-system-modules)
|
||||
#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
|
|
@ -1,96 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023, 2024 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
|
||||
(define-module (nongnu packages editors)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) :prefix license:)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public vscodium
|
||||
(package
|
||||
(name "vscodium")
|
||||
(version "1.92.1.24225")
|
||||
(source
|
||||
(let ((arch (match (or (%current-target-system) (%current-system))
|
||||
("aarch64-linux" "arm64")
|
||||
("armhf-linux" "armhf")
|
||||
(_ "x64")))
|
||||
(hash (match (or (%current-target-system) (%current-system))
|
||||
("aarch64-linux"
|
||||
"0m5x9v577h8n16ypzb1y2066alc59v5bw7jiqp2xr7g20s9kb0vy")
|
||||
("armhf-linux"
|
||||
"047gz12gx8pa5aglykd0785l6i9ivsn4kkgfhi5l0y4jh8hjys8c")
|
||||
(_
|
||||
"1w1rhbbk177yz85csck3sax51qnvgaip9w238dmzb4a50ikfnp23"))))
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://github.com/VSCodium/vscodium/releases/download/" version
|
||||
"/VSCodium-linux-" arch "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 hash)))))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:substitutable? #f
|
||||
#:wrapper-plan
|
||||
#~'(("opt/vscodium/codium" (("out" "/opt/vscodium"))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(mkdir-p "opt/vscodium")
|
||||
(invoke "tar" "-xvf" source "-C" "opt/vscodium")))
|
||||
(add-before 'install-wrapper 'install-entrypoint
|
||||
(lambda _
|
||||
(let* ((bin (string-append #$output "/bin")))
|
||||
(delete-file (string-append #$output "/environment-variables"))
|
||||
(mkdir-p bin)
|
||||
(symlink (string-append #$output "/opt/vscodium/codium")
|
||||
(string-append bin "/codium")))))
|
||||
(add-after 'install-entrypoint 'install-resources
|
||||
(lambda _
|
||||
(let* ((icons
|
||||
(string-append #$output
|
||||
"/share/icons/hicolor/512x512/apps"))
|
||||
(icon.png
|
||||
(string-append #$output
|
||||
"/opt/vscodium/resources/app/"
|
||||
"resources/linux/code.png"))
|
||||
(apps (string-append #$output "/share/applications")))
|
||||
(mkdir-p icons)
|
||||
(symlink icon.png
|
||||
(string-append icons "/code.png"))
|
||||
(mkdir-p apps)
|
||||
(make-desktop-entry-file
|
||||
(string-append apps "/" #$name ".desktop")
|
||||
#:name "VSCodium"
|
||||
#:generic-name "Text Editor"
|
||||
#:exec (string-append #$output "/bin/codium --ozone-platform-hint=auto")
|
||||
#:icon "code"
|
||||
#:type "Application"
|
||||
#:actions '("new-empty-window")
|
||||
#:keywords '("vscode")
|
||||
#:categories '("TextEditor" "Development"
|
||||
"IDE")
|
||||
#:startup-notify #t
|
||||
#:startup-w-m-class "Code"
|
||||
#:comment
|
||||
'(("en" "Code Editing. Redefined.")
|
||||
(#f "Code Editing. Redefined.")))))))))
|
||||
(supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
|
||||
(native-inputs
|
||||
(list tar))
|
||||
(inputs
|
||||
(list gdk-pixbuf))
|
||||
(home-page "https://vscodium.com/")
|
||||
(synopsis "Community-driven, freely-licensed binary distribution of VSCode")
|
||||
(description "VSCodium is a community-driven, freely-licensed binary
|
||||
distribution of Microsoft’s editor VSCode.")
|
||||
(license license:expat)))
|
|
@ -1,106 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2024 Andre A. Gomes <andremegafone@gmail.com>
|
||||
;;; Copyright © 2024 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
|
||||
(define-module (nongnu packages electron)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module ((nonguix licenses) :prefix license:)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages video))
|
||||
|
||||
(define (electron-source version hash)
|
||||
(origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri
|
||||
(string-append
|
||||
"https://github.com/electron/electron/releases/download/v"
|
||||
version "/electron-v" version "-"
|
||||
(match (or (%current-system) (%current-target-system))
|
||||
("x86_64-linux" "linux-x64")
|
||||
("i686-linux" "linux-ia32")
|
||||
("aarch64-linux" "linux-arm64")
|
||||
("armhf-linux" "linux-armv7l")
|
||||
;; We need a default case
|
||||
(_ "unsupported"))
|
||||
".zip"))
|
||||
(sha256 (base32 hash))))
|
||||
|
||||
(define-public electron-27
|
||||
(package
|
||||
(name "electron")
|
||||
(version "27.3.6")
|
||||
(source (electron-source version
|
||||
"12hjn1bfk8c25f54kk561mkjl7hsk8b16rj7a7gczswjdpx6fpi0"))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
`(#:wrapper-plan
|
||||
`("electron"
|
||||
"libffmpeg.so"
|
||||
"libGLESv2.so"
|
||||
"libEGL.so")
|
||||
#:install-plan
|
||||
`(("." "share/electron/" #:include
|
||||
("electron"
|
||||
"chrome-sandbox"
|
||||
"chrome_100_percent.pak"
|
||||
"chrome_200_percent.pak"
|
||||
"chrome_crashpad_handler"
|
||||
"icudtl.dat"
|
||||
"resources.pak"
|
||||
"v8_context_snapshot.bin"
|
||||
"version"
|
||||
"libffmpeg.so"
|
||||
;; electron seems to force-load these from its directory.
|
||||
"libEGL.so"
|
||||
"libGLESv2.so"))
|
||||
("resources" "share/electron/")
|
||||
("locales" "share/electron/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install-wrapper 'wrap-where-patchelf-does-not-work
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/share/electron/electron"))
|
||||
(wrapper (string-append out "/bin/electron")))
|
||||
(mkdir-p (dirname wrapper))
|
||||
(make-wrapper wrapper bin
|
||||
`("LD_LIBRARY_PATH" ":"
|
||||
prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append out "/share/electron"))
|
||||
":")))))
|
||||
#t)))))
|
||||
(native-inputs `(("unzip" ,unzip)))
|
||||
(inputs `(("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("ffmpeg" ,ffmpeg)))
|
||||
(home-page "https://www.electronjs.org/")
|
||||
(synopsis "Cross platform desktop application shell")
|
||||
(description "The Electron framework lets you write cross-platform desktop
|
||||
applications using JavaScript, HTML and CSS. It is based on Node.js and
|
||||
Chromium and is used by the Atom editor and many other apps.")
|
||||
(license (license:nonfree
|
||||
(string-append "https://github.com/electron/electron/blob/v"
|
||||
version "/LICENSE")))))
|
||||
|
||||
(define-public electron electron-27)
|
||||
|
||||
(define-public electron-28
|
||||
(package
|
||||
(inherit electron-27)
|
||||
(version "28.2.7")
|
||||
(source (electron-source version
|
||||
"0sw8nn1jr9x0p4s2g5yp5lrpy8mzq0sjd099x7axbg6cm1c80iff"))))
|
||||
(define-public electron-29
|
||||
(package
|
||||
(inherit electron-27)
|
||||
(version "29.1.4")
|
||||
(source (electron-source version
|
||||
"1d96nhx9j9mzc3q3ald1imqdxdgq9by1qm4q703sjy3knq1p38w3"))))
|
|
@ -1,8 +1,23 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
||||
;;; Copyright © 2022 Fredrik Salomonsson <plattfot@posteo.net>
|
||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages emacs)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages emulators)
|
||||
#:use-module (gnu packages backup)
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022 Demis Balbach <db@minikn.xyz>
|
||||
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
|
||||
(define-module (nongnu packages engineering)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix licenses) :prefix license:)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module ((nonguix licenses) :prefix license:)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public lycheeslicer
|
||||
(package
|
||||
(name "lycheeslicer")
|
||||
(version "4.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://mango-lychee.nyc3.cdn.digitaloceanspaces.com/LycheeSlicer-" version ".deb"))
|
||||
(sha256
|
||||
(base32 "1rv3f8d1sb5irn4y8hjzk2m7c9irw71ls8p1mqambxg79q9ffj9m"))))
|
||||
(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/LycheeSlicer/lycheeslicer")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'setup-cwd
|
||||
(lambda _
|
||||
;; Use the more standard lib directory for everything.
|
||||
(rename-file "opt/" "lib")
|
||||
(mkdir-p "share")
|
||||
(copy-recursively "usr/share" "share")
|
||||
;; Remove unneeded files.
|
||||
(delete-file-recursively "usr")))
|
||||
(add-after 'setup-cwd 'fix-desktop-file
|
||||
(lambda _
|
||||
;; Fix the .desktop file binary location.
|
||||
(substitute* '("share/applications/lycheeslicer.desktop")
|
||||
(("/opt/LycheeSlicer")
|
||||
(string-append #$output "/lib/LycheeSlicer")))))
|
||||
(add-before 'install-wrapper 'symlink-binary-file
|
||||
(lambda _
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
|
||||
(string-append #$output "/bin/lycheeslicer"))))
|
||||
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
|
||||
(lambda _
|
||||
(wrap-program (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$output "/lib/LycheeSlicer"))
|
||||
":")))))))))
|
||||
(inputs
|
||||
(list libxscrnsaver))
|
||||
(home-page "https://mango3d.io")
|
||||
(synopsis "Slicer for resin 3d printers of different manufacturers")
|
||||
(description "A user-friendly slicing software for resin 3d printers. It
|
||||
supports printers and resins of different manufacturers alongside
|
||||
community-created profiles as well. It offers a paid- and free version with a
|
||||
reduced feature set.")
|
||||
(license (license:nonfree "https://mango3d.io/terms-and-conditions"))))
|
|
@ -1,24 +1,25 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2022 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>
|
||||
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages firmware)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpio)
|
||||
#:use-module (gnu packages efi)
|
||||
#:use-module (gnu packages firmware)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix guix-license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (nonguix licenses)
|
||||
#:use-module (nongnu packages compression))
|
||||
#:use-module (guix utils))
|
||||
|
||||
;; fwupd with LVFS nonfree repositories enabled
|
||||
(define-public fwupd-nonfree
|
||||
|
@ -40,270 +41,3 @@
|
|||
(string-append "--libexecdir="
|
||||
#$output "/libexec")
|
||||
"-Dsupported_build=true"))))))
|
||||
|
||||
(define-public ov5640-firmware
|
||||
(let ((commit "6e8e591e17e207644dfe747e51026967bb1edab5")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "ov5640-firmware")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://megous.com/git/linux-firmware")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"19xmkdvlkczc6zgigy8jdbgnp37i6pc03m2cm3gilvzg8m7v18ad"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:substitutable? #f
|
||||
#:install-plan '(("ov5640_af.bin" "lib/firmware/"))))
|
||||
(synopsis "Firmware for the OV5640 sensor in the PinePhone")
|
||||
(description "This package provides binary firmware for the 0V5640 sensor
|
||||
in the PinePhone.")
|
||||
(home-page "https://megous.com/git/linux-firmware")
|
||||
(license (nonfree (string-append "unknown"))))))
|
||||
|
||||
(define-public rtl8723bt-firmware
|
||||
(let ((commit "6e8e591e17e207644dfe747e51026967bb1edab5")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "rtl8723bt-firmware")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://megous.com/git/linux-firmware")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"19xmkdvlkczc6zgigy8jdbgnp37i6pc03m2cm3gilvzg8m7v18ad"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:substitutable? #f
|
||||
#:install-plan '(("rtl_bt/rtl8723cs_xx_fw.bin" "lib/firmware/"))))
|
||||
(synopsis "Firmware for the RTL8723BS/CS")
|
||||
(description "This package provides binary firmware for the RTL8723BS/CS
|
||||
WiFi/Bluetooth chip in the PinePhone.")
|
||||
(home-page "https://megous.com/git/linux-firmware")
|
||||
(license (nonfree (string-append "unknown"))))))
|
||||
|
||||
(define-public anx7688-firmware
|
||||
(let ((commit "6e8e591e17e207644dfe747e51026967bb1edab5")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "anx7688-firmware")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://megous.com/git/linux-firmware")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"19xmkdvlkczc6zgigy8jdbgnp37i6pc03m2cm3gilvzg8m7v18ad"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:substitutable? #f
|
||||
#:install-plan '(("anx7688-fw.bin" "lib/firmware/"))))
|
||||
(synopsis "Firmware for the ANX7688")
|
||||
(description "This package provides binary firmware for the ANX7688
|
||||
HDMI to USB Type-C Bridge in the PinePhone.")
|
||||
(home-page "https://megous.com/git/linux-firmware")
|
||||
(license (nonfree (string-append "unknown"))))))
|
||||
|
||||
(define-public ap6256-firmware
|
||||
(let ((commit "056d5f6776e515f90bbbbead1be06857aaef17d0")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "ap6256-firmware")
|
||||
(version (git-version "2020.02" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url
|
||||
"https://gitlab.manjaro.org/manjaro-arm/packages/community/ap6256-firmware")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1s52rpikw0gysph5lq7vr6b3nsxczg4ikgil9zdgmcknjnxk9kbv"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:substitutable? #f
|
||||
#:install-plan '(;;Bluetooth firmware
|
||||
("BCM4345C5.hcd" "/lib/firmware/brcm/")
|
||||
;; WiFi firmware
|
||||
("fw_bcm43456c5_ag.bin" "/lib/firmware/brcm/")
|
||||
("fw_bcm43456c5_ag.bin"
|
||||
"/lib/firmware/brcm/brcmfmac43456-sdio.bin")
|
||||
("brcmfmac43456-sdio.clm_blob"
|
||||
"/lib/firmware/brcm/")
|
||||
("brcmfmac43456-sdio.AP6256.txt"
|
||||
"/lib/firmware/brcm/")
|
||||
("brcmfmac43456-sdio.AP6256.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,
|
||||
found in Pinebook Pro.")
|
||||
(home-page "https://gitlab.manjaro.org/manjaro-arm/packages/community/ap6256-firmware")
|
||||
(license (nonfree (string-append "unknown"))))))
|
||||
|
||||
(define-public bluez-firmware
|
||||
(package
|
||||
(name "bluez-firmware")
|
||||
(version "1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://bluez.sf.net/download/" name "-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1v4yv6gvlvvwslpb0lj1nsp4r900zxpvxz2ab0sbvimbiw8rw4dn"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:phases #~(modify-phases %standard-phases
|
||||
(add-after 'install-license-files 'relocate-copyright
|
||||
(lambda* _
|
||||
(install-file (string-append #$output
|
||||
"/lib/firmware/BCM-LEGAL.txt")
|
||||
(string-append #$output
|
||||
"/share/doc/bluez-firmware-"
|
||||
#$(package-version bluez-firmware)
|
||||
"/BCM-LEGAL.txt")))))))
|
||||
(synopsis "Firmware for Broadcom BCM203x and STLC2300 Bluetooth chips")
|
||||
(description "This package provides firmware for Broadcom BCM203x
|
||||
and STLC2300 Bluetooth chips.")
|
||||
(home-page "https://github.com/RPi-Distro/bluez-firmware")
|
||||
(license (list guix-license:gpl2+
|
||||
(nonfree
|
||||
"file:///share/doc/bluez-firmware-1.2/BCM-LEGAL.txt")))))
|
||||
|
||||
(define dump-file-chunk
|
||||
#~(lambda (in out count start)
|
||||
(use-modules (rnrs io ports))
|
||||
(call-with-output-file out
|
||||
(lambda (out-port)
|
||||
(put-bytevector
|
||||
out-port
|
||||
(call-with-input-file in
|
||||
(lambda (in-port)
|
||||
(seek in-port start SEEK_SET)
|
||||
(get-bytevector-n in-port count))))))))
|
||||
|
||||
(define-public facetimehd-firmware
|
||||
(package
|
||||
(name "facetimehd-firmware")
|
||||
(version "1.43")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://updates.cdn-apple.com/2019/cert"
|
||||
"/041-88431-20191011-e7ee7d98-2878-4cd9-bc0a-d98b3a1e24b1"
|
||||
"/OSXUpd10.11.5.dmg"))
|
||||
(sha256
|
||||
(base32
|
||||
"009kfk1nrrialgp69c5smzgbmd5xpvk35xmqr2fzb15h6pp33ka6"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:substitutable? #f
|
||||
#:install-plan #~'(("firmware.bin" "/lib/firmware/facetimehd/"))
|
||||
#:phases
|
||||
(let ((dmg-subset-size 207733123)
|
||||
(dmg-subset-offset 204909802)
|
||||
(firmware-size 603715)
|
||||
(firmware-offset 81920))
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'install 'extract
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((firmware-in
|
||||
(string-append
|
||||
"System/Library/Extensions/AppleCameraInterface.kext"
|
||||
"/Contents/MacOS/AppleCameraInterface")))
|
||||
(let ((dmg-subset "dmg-subset"))
|
||||
(#$dump-file-chunk #$source
|
||||
dmg-subset
|
||||
#$dmg-subset-size
|
||||
#$dmg-subset-offset)
|
||||
(system
|
||||
(string-join
|
||||
(list (search-input-file inputs "/bin/xz")
|
||||
"--decompress"
|
||||
"--stdout"
|
||||
dmg-subset
|
||||
"|"
|
||||
(search-input-file inputs "/bin/cpio")
|
||||
"--format=odc"
|
||||
"--extract"
|
||||
"--make-directories"
|
||||
(string-append "./" firmware-in)))))
|
||||
(let ((firmware-out "firmware.bin.gz"))
|
||||
(#$dump-file-chunk firmware-in
|
||||
firmware-out
|
||||
#$firmware-size
|
||||
#$firmware-offset)
|
||||
(invoke
|
||||
(search-input-file inputs "/bin/gzip")
|
||||
"--decompress"
|
||||
(string-append firmware-out))))))))))
|
||||
(native-inputs
|
||||
(list cpio gzip xz))
|
||||
(synopsis "Firmware for the FacetimeHD (Broadcom 1570) PCIe webcam")
|
||||
(description "Firmware for the FacetimeHD webcam. See
|
||||
@uref{https://github.com/patjak/facetimehd/wiki/Get-Started#firmware-extraction,
|
||||
patjak's facetimehd wiki} for more information.")
|
||||
(home-page "https://support.apple.com")
|
||||
(license (nonfree "https://www.apple.com/legal"))
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))))
|
||||
|
||||
(define-public facetimehd-calibration
|
||||
(package
|
||||
(name "facetimehd-calibration")
|
||||
(version "5.1.5769")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri (string-append
|
||||
"https://download.info.apple.com/Mac_OS_X"
|
||||
"/031-30890-20150812-ea191174-4130-11e5-a125-930911ba098f"
|
||||
"/bootcamp" version".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"07jbh6d0djcvcgj5hhkkw7d6mvcl228yb8rp0a2qqw20ya72rpjf"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan #~'(("." "/lib/firmware/facetimehd/"
|
||||
#:include-regexp ("[0-9]{4}_01XX\\.dat")))
|
||||
#:phases
|
||||
(let ((calibration-files
|
||||
'(("1771_01XX.dat" 19040 1644880)
|
||||
("1871_01XX.dat" 19040 1606800)
|
||||
("1874_01XX.dat" 19040 1625840)
|
||||
("9112_01XX.dat" 33060 1663920))))
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'install 'extract
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(invoke (search-input-file inputs "/bin/unrar")
|
||||
"x"
|
||||
"BootCamp/Drivers/Apple/AppleCamera64.exe")
|
||||
(for-each (lambda (spec)
|
||||
(apply #$dump-file-chunk "AppleCamera.sys" spec))
|
||||
'#$calibration-files)))))))
|
||||
(native-inputs
|
||||
(list unrar unzip))
|
||||
(synopsis "Calibration files for the FacetimeHD (Broadcom 1570) PCIe webcam")
|
||||
(description "Calibration files for the FacetimeHD webcam. These are
|
||||
optional but make the colors look much better. See
|
||||
@uref{https://github.com/patjak/facetimehd/wiki/Extracting-the-sensor-calibration-files,
|
||||
patjak's facetimehd wiki} for more information.")
|
||||
(home-page "https://support.apple.com/kb/DL1837")
|
||||
(license (nonfree "https://www.apple.com/legal"))
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))))
|
||||
|
|
|
@ -1,14 +1,26 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021 Korytov Pavel <thexcloud@gmail.com>
|
||||
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages fonts)
|
||||
#:use-module (ice-9 string-fun)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system font)
|
||||
#:use-module (guix build-system copy)
|
||||
|
@ -78,16 +90,13 @@ font from the pack of Microsoft core fonts for the web."))
|
|||
#:font-name "Comic Sans MS"
|
||||
#:hash "0ki0rljjc1pxkbsxg515fwx15yc95bdyaksa3pjd89nyxzzg6vcw"))
|
||||
|
||||
(define-public font-microsoft-courier-new
|
||||
(define-public font-microsoft-couirer-new
|
||||
(mscorefont
|
||||
"courie32"
|
||||
#:version "2.82"
|
||||
#:font-name "Courier New"
|
||||
#:hash "111k3waxki9yyxpjwl2qrdkswvsd2dmvhbjmmrwyipam2s31sldv"))
|
||||
|
||||
(define-public font-microsoft-couirer-new
|
||||
(deprecated-package "font-microsoft-couirer-new" font-microsoft-courier-new))
|
||||
|
||||
(define-public font-microsoft-georgia
|
||||
(mscorefont
|
||||
"georgi32"
|
||||
|
@ -165,163 +174,3 @@ Included fonts:
|
|||
("font-microsoft-trebuchet-ms" ,font-microsoft-trebuchet-ms)
|
||||
("font-microsoft-verdana" ,font-microsoft-verdana)
|
||||
("font-microsoft-webdings" ,font-microsoft-webdings)))))
|
||||
|
||||
(define* (apple-font #:key
|
||||
font-name
|
||||
archive-timestamp
|
||||
version
|
||||
file
|
||||
hash
|
||||
synopsis
|
||||
description)
|
||||
(package
|
||||
(name (string-append "font-apple-"
|
||||
(string-replace-substring
|
||||
(string-downcase font-name)
|
||||
" " "-")))
|
||||
(version version)
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
;; Download link is unversioned, use a stable snapshot.
|
||||
"https://web.archive.org/web/" archive-timestamp "/"
|
||||
"https://devimages-cdn.apple.com/design/resources/download/"
|
||||
file ".dmg"))
|
||||
(sha256
|
||||
(base32 hash))))
|
||||
(build-system font-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source inputs #:allow-other-keys)
|
||||
(let ((7z-exe (search-input-file inputs "/bin/7z")))
|
||||
(invoke 7z-exe "x" source)
|
||||
(invoke 7z-exe "x" (car (find-files "." "\\.pkg$")))
|
||||
(invoke 7z-exe "x" "Payload~")))))))
|
||||
(native-inputs (list p7zip))
|
||||
(home-page "https://developer.apple.com/fonts")
|
||||
(synopsis (string-append font-name " typeface by Apple."))
|
||||
(description description)
|
||||
(license
|
||||
(nonfree
|
||||
"https://www.apple.com"
|
||||
"Specific license information is embedded in the font files."))))
|
||||
|
||||
(define-public font-apple-sf-pro
|
||||
(apple-font
|
||||
#:font-name "SF Pro"
|
||||
#:archive-timestamp "20240527221252"
|
||||
#:file "SF-Pro"
|
||||
#:version "20.0d8e1"
|
||||
#:hash "153k3q8h5mpd358b1lsa8ha32qxv7vc2q661k20j4nnf3ndjkv9j"
|
||||
#:description "This neutral, flexible, sans-serif typeface is the system
|
||||
font for iOS, iPad OS, macOS and tvOS. SF Pro features nine weights, variable
|
||||
optical sizes for optimal legibility, four widths, and includes a rounded
|
||||
variant. SF Pro supports over 150 languages across Latin, Greek, and Cyrillic
|
||||
scripts."))
|
||||
|
||||
(define-public font-apple-sf-compact
|
||||
(apple-font
|
||||
#:font-name "SF Compact"
|
||||
#:archive-timestamp "20240527221317"
|
||||
#:file "SF-Compact"
|
||||
#:version "20.0d8e1"
|
||||
#:hash "01j7k95rnmg667hyhj88fxqrgsah2mnk2ws7fmclif92mqcgwirj"
|
||||
#:description "Sharing many features with SF Pro, SF Compact features an
|
||||
efficient, compact design that is optimized for small sizes and narrow columns.
|
||||
SF Compact is the system font for watchOS and includes a rounded variant."))
|
||||
|
||||
(define-public font-apple-sf-mono
|
||||
(apple-font
|
||||
#:font-name "SF Mono"
|
||||
#:archive-timestamp "20240527221346"
|
||||
#:file "SF-Mono"
|
||||
#:version "20.0d8e1"
|
||||
#:hash "0cxj1wk6nbz1ysi0cg1w79b7ja48n00dypxkrsc3mvrn1vmdb4dm"
|
||||
#:description "This monospaced variant of San Francisco enables alignment
|
||||
between rows and columns of text, and is used in coding environments like Xcode.
|
||||
SF Mono features six weights and supports Latin, Greek, and Cyrillic scripts."))
|
||||
|
||||
(define-public font-apple-sf-arabic
|
||||
(apple-font
|
||||
#:font-name "SF Arabic"
|
||||
#:archive-timestamp "20240527221359"
|
||||
#:file "SF-Arabic"
|
||||
#:version "20.0d8e1"
|
||||
#:hash "0sm7w5i19n3jdj6d04344nxizqacg264rladjiwhxhwa3ksfbxsn"
|
||||
#:description "A contemporary interpretation of the Naskh style with a
|
||||
rational and flexible design, this extension of San Francisco is the Arabic
|
||||
system font on Apple platforms. Like San Francisco, SF Arabic features nine
|
||||
weights, variable optical sizes that automatically adjust spacing and contrast
|
||||
based on the point size, and includes a rounded variant."))
|
||||
|
||||
(define-public font-apple-new-york
|
||||
(apple-font
|
||||
#:font-name "New York"
|
||||
#:archive-timestamp "20240527221356"
|
||||
#:file "NY"
|
||||
#:version "17.0d5e1"
|
||||
#:hash "06d8pnfp4z5nb82mh7g7pnz5m4njph3zy17ww1m8x0m34hn50zdn"
|
||||
#:description "A companion to San Francisco, this serif typeface is based on
|
||||
essential aspects of historical type styles. New York features six weights,
|
||||
supports Latin, Greek and Cyrillic scripts, and features variable optical sizes
|
||||
allowing it to perform as a traditional reading face at small sizes and a
|
||||
graphic display face at larger sizes."))
|
||||
|
||||
;; At the time of this writing, `sf-symbols' is just `sf-pro' and `sf-compact'
|
||||
;; together plus one extra file, SFSymbolsFallback.otf. This package is
|
||||
;; probably of limited use on non-macOS but we'll include it for completeness
|
||||
;; and in case the situation changes in the future.
|
||||
(define-public font-apple-sf-symbols
|
||||
(apple-font
|
||||
#:font-name "SF Symbols"
|
||||
#:archive-timestamp "20240701100406"
|
||||
#:file "SF-Symbols-6"
|
||||
#:version "6"
|
||||
#:hash "1hyghp03zpsiks2p6kmghnmg28kkjj3qqk2hgwva855kly6r4hv8"
|
||||
#:description "With over 5,000 symbols, SF Symbols is a library of
|
||||
iconography designed to integrate seamlessly with San Francisco, the system
|
||||
font for Apple platforms. Symbols come in nine weights and three scales, and
|
||||
automatically align with text labels."))
|
||||
|
||||
(define-public font-apple-color-emoji
|
||||
(package
|
||||
(name "font-apple-color-emoji")
|
||||
(version "18.0d4e1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/pharcosyle/apple-fonts"
|
||||
"/releases/download"
|
||||
"/Apple-Color-Emoji-" version "/Apple.Color.Emoji.ttc"))
|
||||
(sha256
|
||||
(base32 "06i1ady7b2g1i2hl3f8yxn64g2i82c2ni9vdw25gpdqdj28vyqw3"))))
|
||||
(build-system font-build-system)
|
||||
(home-page "https://www.apple.com")
|
||||
(synopsis "Apple Color Emoji typeface by Apple.")
|
||||
(description "Color and black-and-white Apple emoji fonts.")
|
||||
(license (nonfree "https://www.apple.com"))))
|
||||
|
||||
(define-public font-apple-symbols
|
||||
(package
|
||||
(name "font-apple-symbols")
|
||||
(version "17.0d1e2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/pharcosyle/apple-fonts"
|
||||
"/releases/download"
|
||||
"/Apple-Symbols-" version "/Apple.Symbols.ttf"))
|
||||
(sha256
|
||||
(base32 "14ivhsiszmy1ql69kpr1f33n07qgpaj7w43w2p5qnmlwcrvs3ccr"))))
|
||||
(build-system font-build-system)
|
||||
(home-page "https://www.apple.com")
|
||||
(synopsis "Apple Symbols typeface by Apple.")
|
||||
(description "An Apple system font intended to provide coverage for
|
||||
characters defined as symbols in the Unicode Standard.")
|
||||
(license (nonfree "https://www.apple.com"))))
|
||||
|
|
|
@ -1,366 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2020 pkill-9
|
||||
;;; Copyright © 2020, 2021 ison <ison@airmail.cc>
|
||||
;;; Copyright © 2021 pineapples
|
||||
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
|
||||
;;; Copyright © 2021 Kozo <kozodev@runbox.com>
|
||||
;;; Copyright © 2021, 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2023 Elijah Malaby
|
||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
||||
|
||||
(define-module (nongnu packages game-client)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module ((nonguix licenses) #:prefix license:)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages certs)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages libbsd)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages logging)
|
||||
#:use-module (gnu packages lsof)
|
||||
#:use-module (nongnu packages nvidia)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages toolkits)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module (nonguix multiarch-container)
|
||||
#:use-module (nonguix utils))
|
||||
|
||||
(define heroic-client
|
||||
(package
|
||||
(name "heroic-client")
|
||||
(version "2.15.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/Heroic-Games-Launcher/"
|
||||
"HeroicGamesLauncher/releases/download/v"
|
||||
version "/heroic_" version "_amd64.deb"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bzdb9nqmr9w092c22n57ldykm00n98d78rhqzypf430lrl0kzcj"))))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:wrapper-plan
|
||||
#~'(("lib/Heroic/heroic" (("out" "/lib/Heroic"))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'setup-cwd
|
||||
(lambda _
|
||||
(copy-recursively "usr/" ".")
|
||||
;; Use the more standard lib directory for everything.
|
||||
(rename-file "opt/" "lib")
|
||||
;; Remove unneeded files.
|
||||
(delete-file-recursively "usr")))
|
||||
;; Fix the .desktop file "Exec" line to just be "heroic" in
|
||||
;; order for this desktop file to be useful to launch heroic in
|
||||
;; the container (heroic package) as well.
|
||||
(add-after 'patch-dot-desktop-files 'fix-desktop-file
|
||||
(lambda _
|
||||
(substitute*
|
||||
(string-append #$output "/share/applications/heroic.desktop")
|
||||
(("Exec=.*/heroic") "Exec=heroic"))))
|
||||
(delete 'patch-dot-desktop-files)
|
||||
(add-after 'install 'symlink-binary-file
|
||||
(lambda _
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink (string-append #$output "/lib/Heroic/heroic")
|
||||
(string-append #$output "/bin/heroic")))))))
|
||||
(home-page "https://heroicgameslauncher.com")
|
||||
(synopsis "Native GOG, Amazon and Epic Games Launcher")
|
||||
(description "Heroic is an Open Source Game Launcher. Right now it supports launching
|
||||
games from the Epic Games Store using Legendary, GOG Games using our custom
|
||||
implementation with gogdl and Amazon Games using Nile.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define steam-client
|
||||
(package
|
||||
(name "steam-client")
|
||||
(version "1.0.0.78")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://repo.steampowered.com/steam/archive/precise/steam_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0390qy8vy7sx35hxl51yrbk6mvdz1vvpy96v07qva4bjbmsmjhhh"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; There are no tests.
|
||||
#:validate-runpath? #f ; Looks for bin/steam which doesn't exist.
|
||||
#:make-flags
|
||||
(list "PREFIX=" (string-append "DESTDIR=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
;; Patch Makefile so it creates links to the store rather than /lib.
|
||||
(add-after 'unpack 'patch-makefile
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("-fns ")
|
||||
"-fns $(DESTDIR)"))))
|
||||
(add-after 'unpack 'patch-startscript
|
||||
(lambda _
|
||||
(substitute* "bin_steam.sh"
|
||||
(("/usr") (assoc-ref %outputs "out")))))
|
||||
(add-after 'patch-dot-desktop-files 'patch-desktop-file
|
||||
(lambda _
|
||||
(let ((path (string-append (assoc-ref %outputs "out")
|
||||
"/share/applications/")))
|
||||
(substitute* (string-append path "steam.desktop")
|
||||
(("Exec=.*/steam") "Exec=steam"))
|
||||
(copy-file (string-append path "steam.desktop")
|
||||
(string-append path "steam-asound32.desktop"))
|
||||
(substitute* (string-append path "steam-asound32.desktop")
|
||||
(("Exec=steam %U") "Exec=steam %U -- --asound32")
|
||||
(("Name=Steam") "Name=Steam (32-bit ALSA)")))))
|
||||
(delete 'patch-dot-desktop-files)
|
||||
;; Steamdeps installs missing packages, which doesn't work with Guix.
|
||||
(add-after 'install 'post-install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(delete-file (string-append out "/lib/steam/bin_steamdeps.py"))
|
||||
(delete-file (string-append out "/bin/steamdeps"))))))))
|
||||
(home-page "https://store.steampowered.com")
|
||||
(synopsis "Digital distribution platform for managing and playing games")
|
||||
(description "Steam is a digital software distribution platform created by Valve.")
|
||||
(license (license:nonfree "file:///share/doc/steam/steam_subscriber_agreement.txt"))))
|
||||
|
||||
(define steam-client-libs
|
||||
`(("at-spi2-core" ,at-spi2-core) ; Required (often) for SteamVR interface.
|
||||
("bash" ,bash) ; Required for steam startup.
|
||||
("coreutils" ,coreutils)
|
||||
("diffutils" ,diffutils)
|
||||
("dbus-glib" ,dbus-glib) ; Required for steam browser.
|
||||
("elfutils" ,elfutils) ; Required for capturing library dependencies in pv.
|
||||
("eudev" ,eudev) ; Required for steamwebhelper/heavy runtime.
|
||||
("fontconfig" ,fontconfig) ; Required for steam client.
|
||||
("file" ,file) ; Used for steam installation.
|
||||
("find" ,findutils) ; Required at least for some logging.
|
||||
("font-google-noto" ,font-google-noto) ; Not required but to match following fonts.
|
||||
;; These next three fonts are to cover emoji and Chinese/Japanese/Korean
|
||||
;; and related scripts.
|
||||
("font-google-noto-emoji" ,font-google-noto-emoji)
|
||||
("font-google-noto-sans-cjk" ,font-google-noto-sans-cjk)
|
||||
("font-google-noto-serif-cjk" ,font-google-noto-serif-cjk)
|
||||
("freetype" ,freetype) ; Required for steam login.
|
||||
("gawk" ,gawk)
|
||||
("gdk-pixbuf" ,gdk-pixbuf) ; Required for steam tray icon.
|
||||
;; Required for steam startup; use newer version for better compatibility
|
||||
;; with some games like Dwarf Fortress.
|
||||
("gcc:lib" ,gcc-14 "lib")
|
||||
("grep" ,grep)
|
||||
("libbsd" ,libbsd)
|
||||
("libcap" ,libcap) ; Required for SteamVR, but needs pkexec too.
|
||||
("libusb" ,libusb) ; Required for SteamVR.
|
||||
("libva" ,libva) ; Required for hardware video encoding/decoding.
|
||||
("libvdpau" ,libvdpau) ; Required for hardware video encoding/decoding.
|
||||
("libvdpau-va-gl" ,libvdpau-va-gl) ; Additional VDPAU support.
|
||||
("llvm" ,llvm-for-mesa) ; Required for mesa.
|
||||
("lsof" ,lsof) ; Required for some friend's list actions.
|
||||
("mesa" ,mesa) ; Required for steam startup.
|
||||
("nss-certs" ,nss-certs) ; Required for steam login.
|
||||
("pciutils" ,pciutils) ; Tries to run lspci at steam startup.
|
||||
("procps" ,procps)
|
||||
("sed" ,sed)
|
||||
("tar" ,tar)
|
||||
("usbutils" ,usbutils) ; Required for SteamVR.
|
||||
("util-linux" ,util-linux) ; Required for steam login.
|
||||
("wayland" ,wayland) ; Required for mesa vulkan (e.g. libvulkan_radeon).
|
||||
("xdg-user-dirs" ,xdg-user-dirs) ; Suppress warning of missing xdg-user-dir.
|
||||
("flatpak-xdg-utils" ,flatpak-xdg-utils)
|
||||
("xz" ,xz)
|
||||
("zenity" ,zenity))) ; Required for progress dialogs.
|
||||
|
||||
(define steam-gameruntime-libs
|
||||
`(("alsa-lib" ,alsa-lib) ; Required for audio in most games.
|
||||
("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio") ; Required for audio in most games.
|
||||
("font-dejavu" ,font-dejavu)
|
||||
("font-liberation" ,font-liberation)
|
||||
("imgui" ,imgui-1.86) ; Required for MangoHud.
|
||||
("mangohud" ,mangohud)
|
||||
("openal" ,openal) ; Prevents corrupt audio in Crypt of the Necrodancer.
|
||||
("pulseaudio" ,pulseaudio) ; Prevents corrupt audio in Sven Coop.
|
||||
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
|
||||
("spdlog" ,spdlog))) ; Required for MangoHud.
|
||||
|
||||
(define steam-container-libs
|
||||
(append steam-client-libs
|
||||
steam-gameruntime-libs
|
||||
fhs-min-libs))
|
||||
|
||||
(define steam-nvidia-container-libs
|
||||
(modify-inputs steam-container-libs
|
||||
(replace "mesa" nvda)))
|
||||
|
||||
(define heroic-extra-client-libs
|
||||
`(("curl" ,curl) ; Required for Heroic to download e.g. Wine.
|
||||
("which" ,which) ; Heroic complains about trying to use which (though works).
|
||||
("gtk+" ,gtk+))) ; Required for Heroic interface (gtk filechooser schema).
|
||||
|
||||
(define steam-ld.so.conf
|
||||
(packages->ld.so.conf
|
||||
(list (fhs-union steam-container-libs
|
||||
#:name "fhs-union-64")
|
||||
(fhs-union steam-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))))
|
||||
|
||||
(define steam-ld.so.cache
|
||||
(ld.so.conf->ld.so.cache steam-ld.so.conf))
|
||||
|
||||
(define steam-nvidia-ld.so.conf
|
||||
(packages->ld.so.conf
|
||||
(list (fhs-union steam-nvidia-container-libs
|
||||
#:name "fhs-union-64")
|
||||
(fhs-union steam-nvidia-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))))
|
||||
|
||||
(define steam-nvidia-ld.so.cache
|
||||
(ld.so.conf->ld.so.cache steam-nvidia-ld.so.conf))
|
||||
|
||||
(define-public steam-container
|
||||
(nonguix-container
|
||||
(name "steam")
|
||||
(wrap-package steam-client)
|
||||
(run "/bin/steam")
|
||||
(ld.so.conf steam-ld.so.conf)
|
||||
(ld.so.cache steam-ld.so.cache)
|
||||
(union64
|
||||
(fhs-union steam-container-libs
|
||||
#:name "fhs-union-64"))
|
||||
(union32
|
||||
(fhs-union steam-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(link-files '("share"))
|
||||
(description "Steam is a digital software distribution platform created by
|
||||
Valve. This package provides a script for launching Steam in a Guix container
|
||||
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
||||
all games will be installed.")))
|
||||
|
||||
(define-public steam-nvidia-container
|
||||
(nonguix-container
|
||||
(inherit steam-container)
|
||||
(name "steam-nvidia")
|
||||
;; Steam's .desktop files expect a "steam" executable, so provide that.
|
||||
(binary-name "steam")
|
||||
(ld.so.conf steam-nvidia-ld.so.conf)
|
||||
(ld.so.cache steam-nvidia-ld.so.cache)
|
||||
(union64
|
||||
(fhs-union steam-nvidia-container-libs
|
||||
#:name "fhs-union-64"))
|
||||
(union32
|
||||
(fhs-union steam-nvidia-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(preserved-env %nvidia-environment-variable-regexps)))
|
||||
|
||||
(define-public steam (nonguix-container->package steam-container))
|
||||
(define-public steam-nvidia (nonguix-container->package steam-nvidia-container))
|
||||
|
||||
(define-public heroic-container
|
||||
(nonguix-container
|
||||
(name "heroic")
|
||||
(wrap-package heroic-client)
|
||||
(run "/bin/heroic")
|
||||
(ld.so.conf steam-ld.so.conf)
|
||||
(ld.so.cache steam-ld.so.cache)
|
||||
;; TODO: Probably can remove some of the packages from these lists, at
|
||||
;; least changing the client libraries as Heroic is rather different from
|
||||
;; Steam. However, a good number will be needed to run games anyway. A
|
||||
;; better separation and testing in Steam as well would be helpful to
|
||||
;; differentiate what packages are needed for what in general. For now,
|
||||
;; this is easier and works.
|
||||
(union64
|
||||
(fhs-union `(,@heroic-extra-client-libs
|
||||
,@steam-container-libs)
|
||||
#:name "fhs-union-64"))
|
||||
;; Don't include heroic-client-libs as they are not needed in 32-bit.
|
||||
(union32
|
||||
(fhs-union steam-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(link-files '("share"))
|
||||
(description "Heroic is an Open Source Game Launcher. Right now it supports launching
|
||||
games from the Epic Games Store using Legendary, GOG Games using our custom
|
||||
implementation with gogdl and Amazon Games using Nile. This package provides
|
||||
a script for launching Heroic in a Guix container which will use the directory
|
||||
@file{$HOME/.local/share/guix-sandbox-home} where all games will be
|
||||
installed.")))
|
||||
|
||||
(define-public heroic-nvidia-container
|
||||
(nonguix-container
|
||||
(inherit heroic-container)
|
||||
(name "heroic-nvidia")
|
||||
(ld.so.conf steam-nvidia-ld.so.conf)
|
||||
(ld.so.cache steam-nvidia-ld.so.cache)
|
||||
(union64
|
||||
(fhs-union `(,@heroic-extra-client-libs
|
||||
,@steam-nvidia-container-libs)
|
||||
#:name "fhs-union-64"))
|
||||
(union32
|
||||
(fhs-union steam-nvidia-container-libs
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(preserved-env %nvidia-environment-variable-regexps)))
|
||||
|
||||
(define-public heroic (nonguix-container->package heroic-container))
|
||||
(define-public heroic-nvidia (nonguix-container->package heroic-nvidia-container))
|
||||
|
||||
(define-public protonup-ng
|
||||
(package
|
||||
(name "protonup-ng")
|
||||
(version "0.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/cloudishBenne/protonup-ng")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0yd2mhhqxzarqxk85zf42s931jzc94f1cssn1hblsqghr79laa45"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f)) ; there are no tests
|
||||
(inputs
|
||||
(list python-configparser python-requests))
|
||||
(home-page "https://github.com/cloudishBenne/protonup-ng")
|
||||
(synopsis "Manage Proton-GE Installations")
|
||||
(description "ProtonUp-ng is a CLI program and API to automate the installation
|
||||
and update of GloriousEggroll's Proton-GE.")
|
||||
(license license:gpl3)))
|
|
@ -1,20 +1,31 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
||||
;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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)
|
||||
|
@ -163,95 +174,128 @@ development should opt for GLSL rather than Cg.")
|
|||
"https://raw.githubusercontent.com/ValveSoftware/source-sdk-2013/master/LICENSE"))))
|
||||
|
||||
(define-public eduke32
|
||||
(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.
|
||||
;; 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.
|
||||
|
||||
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
|
||||
(list license:gpl2
|
||||
(license:nonfree "file://package/common/buildlic.txt")))))
|
||||
(home-page "https://eduke32.com/")
|
||||
(license (license:nonfree
|
||||
"https://eduke32.com/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
|
||||
(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)))
|
||||
((#: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))))))
|
||||
(synopsis "Game engine for the first-person shooter Ion Fury")
|
||||
(description
|
||||
"This is the @code{eduke32} engine built with support for the Ion Fury
|
||||
(string-append
|
||||
"This is the @code{eduke32} engine built with support for the Ion Fury
|
||||
game. Game data is not provided. Run @command{fury} with the option
|
||||
@option{-j} to specify the directory containing @file{fury.grp}.")))
|
||||
@option{-j} to specify the directory containing @file{fury.grp}."))))
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2021-2022 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages gog)
|
||||
#:use-module (gnu packages boost)
|
||||
|
@ -22,7 +33,7 @@
|
|||
(define-public lgogdownloader
|
||||
(package
|
||||
(name "lgogdownloader")
|
||||
(version "3.15")
|
||||
(version "3.9")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -31,7 +42,7 @@
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0bjjn2wam4f2lzmk0hkdxxc7k0wk3f0lyszl0birsr9h3jjpjqw7"))))
|
||||
(base32 "1hbwgwdm1vn7lkz366q9q8f44sk1pvhgjffndwx49lh3md66xps2"))))
|
||||
(build-system qt-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DUSE_QT_GUI=ON")
|
||||
|
@ -39,11 +50,15 @@
|
|||
(inputs
|
||||
(list boost
|
||||
curl
|
||||
htmlcxx
|
||||
jsoncpp
|
||||
qtwebengine
|
||||
liboauth
|
||||
qtbase-5
|
||||
qtdeclarative-5
|
||||
qtwebchannel-5
|
||||
qtwebengine-5
|
||||
rhash
|
||||
tinyxml2
|
||||
tidy-html
|
||||
zlib))
|
||||
(native-inputs
|
||||
(list help2man
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2024 Romain Garbage <romain.garbage@inria.fr>
|
||||
|
||||
(define-module (nongnu packages hugo)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module (guix download)
|
||||
#:use-module ((guix licenses)
|
||||
#:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public hugo
|
||||
(package
|
||||
(name "hugo")
|
||||
(version "0.140.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/gohugoio/hugo/releases/download/v" version
|
||||
"/" name "_" version "_linux-" (cond ((target-aarch64?)
|
||||
"arm64")
|
||||
((target-arm32?)
|
||||
"arm")
|
||||
((target-x86-64?)
|
||||
"amd64")) ".tar.gz"))
|
||||
(sha256
|
||||
(base32 (cond ((target-aarch64?)
|
||||
"1dv2k9j3i3294bl94jhwi645pf5r2143hizxd3xpc3fz8w8cfyy8")
|
||||
((target-arm32?)
|
||||
"0f3mirqn3x2lrj7gzjyqklj081y7jfyxww2zkccg9f6jq0vcfcxd")
|
||||
((target-x86-64?)
|
||||
"0hs4b3nrr1qajrh7f64ibwjrfipqllvifp526kf2gfxnhpkr67l8"))))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan ''(("hugo" "/bin/hugo"))))
|
||||
(supported-systems (list "aarch64-linux"
|
||||
"armhf-linux"
|
||||
"x86_64-linux"))
|
||||
(home-page "https://gohugo.io/")
|
||||
(synopsis "Static site generator written in Go")
|
||||
(description
|
||||
"Hugo is a static site generator written in Go, optimized for speed and
|
||||
designed for flexibility. With its advanced templating system and fast asset
|
||||
pipelines, Hugo renders a complete site in seconds, often less.")
|
||||
(license license:asl2.0)))
|
|
@ -1,217 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
|
||||
(define-module (nongnu packages k8s)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) :prefix license:))
|
||||
|
||||
(define-public k9s
|
||||
(package
|
||||
(name "k9s")
|
||||
(version "0.32.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/derailed/k9s/releases/download/v"
|
||||
version "/k9s_Linux_amd64.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18yf4vr4pgdl5ssijmpf45amdasjrd3mbgnsp1cjnadszvsiphrk"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:substitutable? #f
|
||||
#:install-plan
|
||||
#~'(("k9s" "bin/"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(invoke "tar" "-xvf" source))))))
|
||||
(home-page "https://k9scli.io")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(synopsis "Kubernetes CLI To Manage Your Clusters In Style")
|
||||
(description
|
||||
"K9s provides a terminal UI to interact with your Kubernetes clusters. The
|
||||
aim of this project is to make it easier to navigate, observe and manage your
|
||||
applications in the wild. K9s continually watches Kubernetes for changes and
|
||||
offers subsequent commands to interact with your observed resources.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public katenary
|
||||
(package
|
||||
(name "katenary")
|
||||
(version "2.0.0-beta2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/metal3d/katenary/releases/download/"
|
||||
version "/katenary-linux-amd64"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vk5c82bf5aasrgz2b7qdjlbmlcjha0r3swmrbs9y5mms18y7m3i"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:substitutable? #f
|
||||
#:install-plan
|
||||
#~'(("katenary" "bin/"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./katenary")
|
||||
(chmod "katenary" #o644)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
(chmod "katenary" #o555))))))
|
||||
(home-page "https://github.com/metal3d/katenary")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(synopsis "Convert docker-compose to a configurable helm chart")
|
||||
(description
|
||||
"Katenary is a tool to help to transform docker-compose files to a working
|
||||
Helm Chart for Kubernetes.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public kubectl
|
||||
(package
|
||||
(name "kubectl")
|
||||
(version "1.31.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://dl.k8s.io/release/v" version "/bin/linux/amd64/kubectl"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dr40ckdj65ka6ndp8knyprh1k0nx6vg8yyg7p6c1lc49b3as9vw"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:substitutable? #f
|
||||
#:install-plan
|
||||
#~'(("kubectl" "bin/"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./kubectl")
|
||||
(chmod "kubectl" #o644)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
(chmod "kubectl" #o555))))))
|
||||
(home-page "https://github.com/kubernetes/kubectl")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(synopsis "Kubernetes command line tool")
|
||||
(description
|
||||
"kubectl allows you to run commands against Kubernetes clusters. You can
|
||||
use kubectl to deploy applications, inspect and manage cluster resources, and
|
||||
view logs.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public kompose
|
||||
(package
|
||||
(name "kompose")
|
||||
(version "1.34.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/kubernetes/kompose/releases/download/v"
|
||||
version "/kompose-linux-amd64"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wg1ks3flb5rbpazich7v052s3zm8fwja044r67sky3bxxihx3f5"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:substitutable? #f
|
||||
#:install-plan
|
||||
#~'(("kompose" "bin/"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./kompose")))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
(chmod "kompose" #o555))))))
|
||||
(home-page "https://kompose.io")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(synopsis "Go from Docker Compose to Kubernetes")
|
||||
(description
|
||||
"Kompose is a conversion tool for Docker Compose to container orchestrators
|
||||
such as Kubernetes (or OpenShift).")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public helm-kubernetes
|
||||
(package
|
||||
(name "helm-kubernetes")
|
||||
(version "3.15.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://get.helm.sh/helm-v" version "-linux-amd64.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1afgf08z6hgy07kjk8fj7xkr8ma4qk2f1r33901nzz87zkn0yh0i"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:substitutable? #f
|
||||
#:install-plan
|
||||
#~'(("linux-amd64/helm" "bin/"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(invoke "tar" "-xvf" source)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
(chmod "linux-amd64/helm" #o555))))))
|
||||
(home-page "https://helm.sh")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(synopsis "The package manager for Kubernetes")
|
||||
(description
|
||||
"Helm helps you manage Kubernetes applications - Helm Charts help you
|
||||
define, install, and upgrade Kubernetes applications.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public kind
|
||||
(package
|
||||
(name "kind")
|
||||
(version "0.24.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://kind.sigs.k8s.io/dl/v" version "/kind-linux-amd64"))
|
||||
(sha256
|
||||
(base32
|
||||
"03b0idcb11knqyx2ryakvlkqk1cdyavkar6izjihsqlxlfjsv6mq"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:substitutable? #f
|
||||
#:install-plan
|
||||
#~'(("kind" "bin/"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(copy-file source "./kind")
|
||||
(chmod "kind" #o644)))
|
||||
(add-before 'install 'chmod
|
||||
(lambda _
|
||||
(chmod "kind" #o555))))))
|
||||
(home-page "https://kind.sigs.k8s.io")
|
||||
(synopsis "Tool for running local Kubernetes clusters using Docker containers")
|
||||
(description "kind (Kubernetes in Docker) is designed for creating and managing
|
||||
local Kubernetes clusters using Docker containers as nodes. It provides
|
||||
a fast and straightforward way to run Kubernetes for development and
|
||||
testing tasks.
|
||||
|
||||
Supporting multi-node cluster configurations, kind is ideal for testing
|
||||
more complex, real-world scenarios without demanding extensive resources.
|
||||
It’s a lightweight, portable, and configurable solution useful in
|
||||
continuous integration (CI) workflows.")
|
||||
(license license:asl2.0)))
|
File diff suppressed because it is too large
Load Diff
|
@ -1,23 +1,31 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2023, 2024 André A. Gomes <andremegafone@gmail.com>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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 lisp)
|
||||
#:use-module (gnu packages lisp-xyz)
|
||||
#:use-module (nongnu packages electron)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system asdf)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module ((nonguix licenses) #:prefix license:))
|
||||
|
||||
;; TODO: Split into differents outputs:
|
||||
|
@ -45,7 +53,7 @@
|
|||
"/acl" version "express-" arch2 ".tbz2")))
|
||||
(sha256
|
||||
(base32
|
||||
"1zxajn238aibsv0qknm5kiqjiplb4ggynjsxar390rwznh57qc46"))))
|
||||
"0ir1irpq5hhcmy0yp5p2jpnq5if1gr1fgxybqyvppx1j1jdfkcsp"))))
|
||||
(build-system binary-build-system)
|
||||
(inputs (list bash-minimal zlib openssl))
|
||||
(arguments
|
||||
|
@ -67,16 +75,6 @@
|
|||
"--directory=source" "-xvf" (assoc-ref inputs "source")
|
||||
"--strip-components" "1")
|
||||
(chdir "source")))
|
||||
(add-after 'install 'update-license
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute*
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/share/allegro-cl/devel.lic")
|
||||
((";; License created on January 25, 2021, 8:32:19\\.")
|
||||
";; License created on January 17, 2023, 10:42:54.")
|
||||
((";; Expiration date: 2023-1-31 00:00:00")
|
||||
";; Expiration date: 2024-1-31 00:00:00"))
|
||||
#t))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
@ -121,45 +119,3 @@ then open a browser at http://localhost:PORT, where PORT is the indicated port."
|
|||
(home-page "https://franz.com/products/allegrocl/")
|
||||
(license (license:nonfree
|
||||
"https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf"))))
|
||||
|
||||
(define-public sbcl-cl-electron
|
||||
(let ((commit "f2245dc1450a6ad416984cf932be50e00957390a")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "sbcl-cl-electron")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/atlas-engineer/cl-electron")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-electron" version))
|
||||
(sha256
|
||||
(base32 "0c18xbwwnjaiwzd01dprdrwzp27nwihaf7pmkql1f5yk43x3ajs0"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs (list electron
|
||||
sbcl-cl-json sbcl-iolib sbcl-cl-str sbcl-nclasses
|
||||
sbcl-cl-ppcre sbcl-bordeaux-threads sbcl-lparallel
|
||||
sbcl-parenscript sbcl-spinneret))
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
#:asd-systems '("cl-electron" "cl-electron/demos")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "source/core.lisp"
|
||||
(("\"electron\"")
|
||||
(string-append "\"" (assoc-ref inputs "electron") "/bin/electron\""))))))))
|
||||
(synopsis "Common Lisp interface to Electron")
|
||||
(home-page "https://github.com/atlas-engineer/cl-electron")
|
||||
(description "@command{cl-electron} is a binding to Electron for
|
||||
Common Lisp.")
|
||||
(license license:bsd-3))))
|
||||
|
||||
(define-public cl-electron
|
||||
(sbcl-package->cl-source-package sbcl-cl-electron))
|
||||
|
||||
(define-public ecl-cl-electron
|
||||
(sbcl-package->ecl-package sbcl-cl-electron))
|
||||
|
|
|
@ -1,26 +1,40 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021, 2022 PantherX OS Team <team@pantherx.org>
|
||||
;;; Copyright © 2022, 2023, 2024, 2025 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2022 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>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
(define-module (nongnu packages messaging)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cups)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
|
@ -30,14 +44,13 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module ((guix licenses) :prefix license:)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module ((nonguix licenses) :prefix license:)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public element-desktop
|
||||
(package
|
||||
(name "element-desktop")
|
||||
(version "1.11.89")
|
||||
(version "1.11.15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -46,31 +59,105 @@
|
|||
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
|
||||
"_amd64.deb"))
|
||||
(sha256
|
||||
(base32 "0riavl8qq59s45xxdk0s1n6i1wymsx1zfdz5dp3ccr8xpzw77abq"))))
|
||||
(base32 "0hpvmfncsmxlvhk6vjwkghw5lypmryzg21zih215nn1faqx2iy3a"))))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(build-system chromium-binary-build-system)
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:wrapper-plan
|
||||
#~'(("lib/Element/element-desktop" (("out" "/lib/Element"))))
|
||||
#:patchelf-plan
|
||||
#~'(("lib/Element/element-desktop"
|
||||
("alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups"
|
||||
"dbus" "expat" "fontconfig-minimal" "gcc" "gdk-pixbuf" "glib"
|
||||
"gtk+" "libdrm" "libnotify" "libsecret" "libx11" "libxcb"
|
||||
"libxcomposite" "libxcursor" "libxdamage" "libxext" "libxfixes"
|
||||
"libxi" "libxkbcommon" "libxkbfile" "libxrandr" "libxrender"
|
||||
"libxtst" "mesa" "nspr" "pango" "zlib")))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'setup-cwd
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(invoke "ar" "x" #$source)
|
||||
(invoke "tar" "xvf" "data.tar.xz")
|
||||
(copy-recursively "usr/" ".")
|
||||
;; Use the more standard lib directory for everything.
|
||||
(rename-file "opt/" "lib")
|
||||
;; Remove unneeded files.
|
||||
(delete-file-recursively "usr")
|
||||
(delete-file "control.tar.gz")
|
||||
(delete-file "data.tar.xz")
|
||||
(delete-file "debian-binary")
|
||||
;; Fix the .desktop file binary location.
|
||||
(substitute* '("share/applications/element-desktop.desktop")
|
||||
(("/opt/Element/")
|
||||
(string-append #$output "/bin/")))))
|
||||
(add-after 'install 'symlink-binary-file
|
||||
(string-append #$output "/lib/Element/")))))
|
||||
(add-after 'install 'symlink-binary-file-and-cleanup
|
||||
(lambda _
|
||||
(delete-file (string-append #$output "/environment-variables"))
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink (string-append #$output "/lib/Element/element-desktop")
|
||||
(string-append #$output "/bin/element-desktop")))))))
|
||||
(string-append #$output "/bin/element-desktop"))))
|
||||
(add-after 'install 'wrap-where-patchelf-does-not-work
|
||||
(lambda _
|
||||
(wrap-program (string-append #$output "/lib/Element/element-desktop")
|
||||
`("FONTCONFIG_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||
#$output)
|
||||
":")))
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$(this-package-input "nss") "/lib/nss")
|
||||
(string-append #$(this-package-input "eudev") "/lib")
|
||||
(string-append #$(this-package-input "gcc") "/lib")
|
||||
(string-append #$(this-package-input "mesa") "/lib")
|
||||
(string-append #$(this-package-input "libxkbfile") "/lib")
|
||||
(string-append #$(this-package-input "zlib") "/lib")
|
||||
(string-append #$(this-package-input "libsecret") "/lib")
|
||||
(string-append #$(this-package-input "sqlcipher") "/lib")
|
||||
(string-append #$(this-package-input "libnotify") "/lib")
|
||||
(string-append #$output "/lib/Element")
|
||||
#$output)
|
||||
":")))))))))
|
||||
(native-inputs (list tar))
|
||||
(inputs
|
||||
(list alsa-lib
|
||||
at-spi2-atk
|
||||
at-spi2-core
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
dbus
|
||||
eudev
|
||||
expat
|
||||
fontconfig
|
||||
`(,gcc "lib")
|
||||
glib
|
||||
gtk+
|
||||
libdrm
|
||||
libnotify
|
||||
librsvg
|
||||
libsecret
|
||||
libx11
|
||||
libxcb
|
||||
libxcomposite
|
||||
libxcursor
|
||||
libxdamage
|
||||
libxext
|
||||
libxfixes
|
||||
libxi
|
||||
libxkbcommon
|
||||
libxkbfile
|
||||
libxrandr
|
||||
libxrender
|
||||
libxtst
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
sqlcipher
|
||||
zlib))
|
||||
(home-page "https://github.com/vector-im/element-desktop")
|
||||
(synopsis "Matrix collaboration client for desktop")
|
||||
(description "Element Desktop is a Matrix client for desktop with Element Web at
|
||||
|
@ -83,40 +170,109 @@ its core.")
|
|||
(define-public signal-desktop
|
||||
(package
|
||||
(name "signal-desktop")
|
||||
(version "7.41.0")
|
||||
(version "5.63.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
|
||||
"https://updates.signal.org/desktop/apt/pool/main/s/" name "/" name "_" version
|
||||
"_amd64.deb"))
|
||||
(sha256
|
||||
(base32 "1ainlhhzf427f0jqdh83m8519ywihnxyiw505n4msgyhpwgwj5n0"))))
|
||||
(base32 "1y94iikm6ckbs28vpcx4alriypjk14vzaf3sgwyqs4a5cj6rhdzv"))))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(build-system chromium-binary-build-system)
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:wrapper-plan
|
||||
#~'(("lib/Signal/signal-desktop" (("out" "/lib/Signal"))))
|
||||
#:patchelf-plan
|
||||
#~'(("lib/Signal/signal-desktop"
|
||||
("alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups"
|
||||
"dbus" "expat" "fontconfig-minimal" "gcc" "gdk-pixbuf" "glib"
|
||||
"gtk+" "libdrm" "libsecret" "libx11" "libxcb" "libxcomposite"
|
||||
"libxcursor" "libxdamage" "libxext" "libxfixes" "libxi"
|
||||
"libxkbcommon" "libxkbfile" "libxrandr" "libxshmfence" "libxtst"
|
||||
"mesa" "nspr" "pango" "pulseaudio" "zlib")))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'setup-cwd
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(invoke "ar" "x" #$source)
|
||||
(invoke "tar" "xvf" "data.tar.xz")
|
||||
(copy-recursively "usr/" ".")
|
||||
;; Use the more standard lib directory for everything.
|
||||
(rename-file "opt/" "lib")
|
||||
;; Remove unneeded files.
|
||||
(delete-file-recursively "usr")
|
||||
(delete-file "control.tar.gz")
|
||||
(delete-file "data.tar.xz")
|
||||
(delete-file "debian-binary")
|
||||
(delete-file "environment-variables")
|
||||
;; Fix the .desktop file binary location.
|
||||
(substitute* '("share/applications/signal-desktop.desktop")
|
||||
(("/opt/Signal/")
|
||||
(string-append #$output "/bin/")))))
|
||||
(add-after 'install 'symlink-binary-file
|
||||
(string-append #$output "/lib/Signal/")))))
|
||||
(add-after 'install 'symlink-binary-file-and-cleanup
|
||||
(lambda _
|
||||
(delete-file (string-append #$output "/environment-variables"))
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink (string-append #$output "/lib/Signal/signal-desktop")
|
||||
(string-append #$output "/bin/signal-desktop")))))))
|
||||
(string-append #$output "/bin/signal-desktop"))))
|
||||
(add-after 'install 'wrap-where-patchelf-does-not-work
|
||||
(lambda _
|
||||
(wrap-program (string-append #$output "/lib/Signal/signal-desktop")
|
||||
`("FONTCONFIG_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||
#$output)
|
||||
":")))
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$(this-package-input "nss") "/lib/nss")
|
||||
(string-append #$(this-package-input "eudev") "/lib")
|
||||
(string-append #$(this-package-input "gcc") "/lib")
|
||||
(string-append #$(this-package-input "mesa") "/lib")
|
||||
(string-append #$(this-package-input "libxkbfile") "/lib")
|
||||
(string-append #$(this-package-input "pulseaudio") "/lib")
|
||||
(string-append #$(this-package-input "zlib") "/lib")
|
||||
(string-append #$(this-package-input "libsecret") "/lib")
|
||||
(string-append #$output "/lib/Signal")
|
||||
#$output)
|
||||
":")))))))))
|
||||
(native-inputs (list tar))
|
||||
(inputs (list alsa-lib
|
||||
at-spi2-atk
|
||||
at-spi2-core
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
dbus
|
||||
eudev
|
||||
expat
|
||||
fontconfig
|
||||
`(,gcc "lib")
|
||||
glib
|
||||
gtk+
|
||||
libdrm
|
||||
librsvg
|
||||
libsecret
|
||||
libx11
|
||||
libxcb
|
||||
libxcomposite
|
||||
libxdamage
|
||||
libxext
|
||||
libxfixes
|
||||
libxkbcommon
|
||||
libxkbfile
|
||||
libxrandr
|
||||
libxshmfence
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
pulseaudio
|
||||
zlib))
|
||||
(home-page "https://signal.org/")
|
||||
(synopsis "Private messenger using the Signal protocol")
|
||||
(description "Signal Desktop is an Electron application that links with Signal on Android
|
||||
|
@ -129,21 +285,19 @@ or iOS.")
|
|||
(define-public zoom
|
||||
(package
|
||||
(name "zoom")
|
||||
(version "5.17.5.2543")
|
||||
(version "5.12.9.367")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://cdn.zoom.us/prod/" version "/zoom_x86_64.tar.xz"))
|
||||
(file-name (string-append name "-" version "-x86_64.tar.xz"))
|
||||
(sha256
|
||||
(base32 "06m53d3jrpiq1z5wd7m61lb3w8m8g72iaqx5sixnzn290gyyzgim"))))
|
||||
(base32 "0yxyc7zr1h4czwywfjcj02x6bbsrdrm1gjcgnldk56dsrz0v6vx8"))))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:patchelf-plan
|
||||
;; Note: it seems like some (all?) of these only do anything in
|
||||
;; LD_LIBRARY_PATH, or at least needed there as well.
|
||||
#~(let ((libs '("alsa-lib"
|
||||
"at-spi2-atk"
|
||||
"at-spi2-core"
|
||||
|
@ -183,14 +337,12 @@ or iOS.")
|
|||
("lib/zoom/zoom"
|
||||
,libs)
|
||||
("lib/zoom/zopen"
|
||||
,libs)
|
||||
("lib/zoom/aomhost"
|
||||
,libs)))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(invoke "tar" "xvf" source)
|
||||
(lambda _
|
||||
(invoke "tar" "xvf" #$source)
|
||||
;; Use the more standard lib directory for everything.
|
||||
(mkdir-p "lib")
|
||||
(rename-file "zoom/" "lib/zoom")))
|
||||
|
@ -212,54 +364,6 @@ or iOS.")
|
|||
"libxrender"
|
||||
"zlib")))))
|
||||
(wrap-program (string-append #$output "/lib/zoom/zoom")
|
||||
'("QML2_IMPORT_PATH" = ())
|
||||
'("QT_PLUGIN_PATH" = ())
|
||||
'("QT_SCREEN_SCALE_FACTORS" = ())
|
||||
`("FONTCONFIG_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||
#$output)
|
||||
":")))
|
||||
`("LD_LIBRARY_PATH" prefix
|
||||
,(list (string-append #$(this-package-input "nss") "/lib/nss")
|
||||
#$@(map (lambda (pkg)
|
||||
(file-append (this-package-input pkg) "/lib"))
|
||||
;; TODO: Reuse this long list as it is
|
||||
;; needed for aomhost. Or perhaps
|
||||
;; aomhost has a shorter needed list,
|
||||
;; but untested.
|
||||
'("alsa-lib"
|
||||
"atk"
|
||||
"at-spi2-atk"
|
||||
"at-spi2-core"
|
||||
"cairo"
|
||||
"cups"
|
||||
"dbus"
|
||||
"eudev"
|
||||
"expat"
|
||||
"gcc"
|
||||
"glib"
|
||||
"mesa"
|
||||
"mit-krb5"
|
||||
"nspr"
|
||||
"libxcb"
|
||||
"libxcomposite"
|
||||
"libxdamage"
|
||||
"libxext"
|
||||
"libxkbcommon"
|
||||
"libxkbfile"
|
||||
"libxrandr"
|
||||
"libxshmfence"
|
||||
"pango"
|
||||
"pulseaudio"
|
||||
"xcb-util"
|
||||
"xcb-util-image"
|
||||
"xcb-util-keysyms"
|
||||
"xcb-util-wm"
|
||||
"xcb-util-renderutil"
|
||||
"zlib")))))
|
||||
(wrap-program (string-append #$output "/lib/zoom/aomhost")
|
||||
`("FONTCONFIG_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
|
@ -282,23 +386,15 @@ or iOS.")
|
|||
"gcc"
|
||||
"glib"
|
||||
"mesa"
|
||||
"mit-krb5"
|
||||
"nspr"
|
||||
"libxcb"
|
||||
"libxcomposite"
|
||||
"libxdamage"
|
||||
"libxext"
|
||||
"libxkbcommon"
|
||||
"libxkbfile"
|
||||
"libxrandr"
|
||||
"libxshmfence"
|
||||
"pango"
|
||||
"pulseaudio"
|
||||
"xcb-util"
|
||||
"xcb-util-image"
|
||||
"xcb-util-keysyms"
|
||||
"xcb-util-wm"
|
||||
"xcb-util-renderutil"
|
||||
"zlib")))))))
|
||||
(add-after 'wrap-where-patchelf-does-not-work 'rename-binary
|
||||
;; IPC (for single sign-on and handling links) fails if the
|
||||
|
@ -314,8 +410,6 @@ or iOS.")
|
|||
(lambda _
|
||||
(delete-file (string-append #$output "/environment-variables"))
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink (string-append #$output "/lib/zoom/aomhost")
|
||||
(string-append #$output "/bin/aomhost"))
|
||||
(symlink (string-append #$output "/lib/zoom/zoom")
|
||||
(string-append #$output "/bin/zoom"))
|
||||
(symlink (string-append #$output "/lib/zoom/zopen")
|
||||
|
@ -374,16 +468,13 @@ or iOS.")
|
|||
libxrender
|
||||
libxshmfence
|
||||
mesa
|
||||
mit-krb5
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
pulseaudio
|
||||
xcb-util
|
||||
qtmultimedia
|
||||
xcb-util-image
|
||||
xcb-util-keysyms
|
||||
xcb-util-renderutil
|
||||
xcb-util-wm
|
||||
zlib))
|
||||
(home-page "https://zoom.us/")
|
||||
(synopsis "Video conference client")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
|
||||
|
@ -14,17 +14,29 @@
|
|||
;;; 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-2025 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2020-2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
||||
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
|
||||
;;; Copyright © 2021, 2024 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2023 Tomas Volf <wolf@wolfsden.cz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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)
|
||||
|
@ -48,7 +60,6 @@
|
|||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages hunspell)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
|
@ -56,6 +67,7 @@
|
|||
#:use-module (gnu packages libcanberra)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages libreoffice) ;for hunspell
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages m4)
|
||||
|
@ -67,46 +79,188 @@
|
|||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages rust)
|
||||
#:use-module (gnu packages rust-apps)
|
||||
#:use-module (gnu packages speech)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (nongnu packages wasm)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
;;; 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)
|
||||
;; 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 (@@ (gnu packages rust) rust-1.61)) ; 1.63 is also listed, but 1.61 is the minimum needed
|
||||
|
||||
;; 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 "20250203132125")
|
||||
;; rust-cbindgen-0.23/0.24 dependencies
|
||||
(define-public rust-unicode-ident-1
|
||||
(package
|
||||
(name "rust-unicode-ident")
|
||||
(version "1.0.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "unicode-ident" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bqswc96ws8l6k7xx56dg521a3l5imi3mhlcz7rsi6a92mxb7xf4"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:skip-build? #t))
|
||||
(home-page "https://github.com/dtolnay/unicode-ident")
|
||||
(synopsis
|
||||
"Better optimized implementation of the older unicode-xid crate")
|
||||
(description
|
||||
"Determine whether characters have the XID_Start or XID_Continue properties
|
||||
according to Unicode Standard Annex #31")
|
||||
(license (list license:unicode license:expat))))
|
||||
|
||||
(define-public rust-textwrap-0.15
|
||||
(package
|
||||
(inherit rust-textwrap-0.12)
|
||||
(name "rust-textwrap")
|
||||
(version "0.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "textwrap" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yw513k61lfiwgqrfvsjw1a5wpvm0azhpjr2kr0jhnq9c56is55i"))))
|
||||
(arguments
|
||||
`(#:skip-build? #t
|
||||
#:cargo-inputs (("rust-hyphenation" ,rust-hyphenation-0.8)
|
||||
("rust-smawk" ,rust-smawk-0.3)
|
||||
("rust-terminal-size" ,rust-terminal-size-0.1)
|
||||
("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1)
|
||||
("rust-unicode-width" ,rust-unicode-width-0.1))))))
|
||||
|
||||
(define-public rust-clap-lex-0.2
|
||||
(package
|
||||
(name "rust-clap-lex")
|
||||
(version "0.2.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "clap_lex" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:skip-build? #t
|
||||
#:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6))))
|
||||
(home-page "https://github.com/clap-rs/clap/tree/master/clap_lex")
|
||||
(synopsis "Minimal, flexible command line parser")
|
||||
(description "Minimal, flexible command line parser")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-clap-derive-3.2.15
|
||||
(package
|
||||
(inherit rust-clap-derive-3)
|
||||
(name "rust-clap-derive")
|
||||
(version "3.2.15")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "clap_derive" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d2c4vs345fwihkd8cc7m6acbiydcwramkd5mnp36p0a7g6jm9cv"))))
|
||||
(arguments
|
||||
`(#:skip-build? #t
|
||||
#:cargo-inputs (("rust-heck" ,rust-heck-0.4)
|
||||
("rust-proc-macro-error" ,rust-proc-macro-error-1)
|
||||
("rust-proc-macro2" ,rust-proc-macro2-1)
|
||||
("rust-quote" ,rust-quote-1)
|
||||
("rust-syn" ,rust-syn-1))))))
|
||||
|
||||
(define-public rust-clap-3.2.16
|
||||
(package
|
||||
(inherit rust-clap-3)
|
||||
(name "rust-clap")
|
||||
(version "3.2.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "clap" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1af06z8z7m3327yz1xvzxfjanclgpvvy3lssb745rig7adkbpnx3"))))
|
||||
(arguments
|
||||
`(#:skip-build? #t
|
||||
#:cargo-inputs (("rust-atty" ,rust-atty-0.2)
|
||||
("rust-backtrace" ,rust-backtrace-0.3)
|
||||
("rust-bitflags" ,rust-bitflags-1)
|
||||
("rust-clap-derive" ,rust-clap-derive-3.2.15)
|
||||
("rust-clap-lex" ,rust-clap-lex-0.2)
|
||||
("rust-indexmap" ,rust-indexmap-1)
|
||||
("rust-once-cell" ,rust-once-cell-1)
|
||||
("rust-regex" ,rust-regex-1)
|
||||
("rust-strsim" ,rust-strsim-0.10)
|
||||
("rust-termcolor" ,rust-termcolor-1)
|
||||
("rust-terminal-size" ,rust-terminal-size-0.1)
|
||||
("rust-textwrap" ,rust-textwrap-0.15)
|
||||
("rust-unicase" ,rust-unicase-2)
|
||||
("rust-yaml-rust" ,rust-yaml-rust-0.4))))))
|
||||
|
||||
(define-public rust-cbindgen-0.24
|
||||
(package
|
||||
(inherit rust-cbindgen-0.19)
|
||||
(name "rust-cbindgen")
|
||||
(version "0.24.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "cbindgen" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yqxqsz2d0cppd8zwihk2139g5gy38wqgl9snj6rnk8gyvnqsdd6"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs (("rust-clap" ,rust-clap-3.2.16)
|
||||
("rust-heck" ,rust-heck-0.4)
|
||||
("rust-indexmap" ,rust-indexmap-1)
|
||||
("rust-log" ,rust-log-0.4)
|
||||
("rust-proc-macro2" ,rust-proc-macro2-1)
|
||||
("rust-quote" ,rust-quote-1)
|
||||
("rust-serde" ,rust-serde-1)
|
||||
("rust-serde-json" ,rust-serde-json-1)
|
||||
("rust-syn" ,rust-syn-1)
|
||||
("rust-tempfile" ,rust-tempfile-3)
|
||||
("rust-toml" ,rust-toml-0.5))
|
||||
#:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.5))))))
|
||||
|
||||
;; Bug with firefox build (v101-102) with cbindgen-0.24, see
|
||||
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1773259#c5 for possible patch
|
||||
;; (untested)
|
||||
(define-public rust-cbindgen-0.23
|
||||
(package
|
||||
(inherit rust-cbindgen-0.24)
|
||||
(name "rust-cbindgen")
|
||||
(version "0.23.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "cbindgen" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))
|
||||
|
||||
;; Update this id with every firefox update to it's release date.
|
||||
;; It's used for cache validation and therefor can lead to strange bugs.
|
||||
(define %firefox-esr-build-id "20221115000000")
|
||||
|
||||
(define-public firefox-esr
|
||||
(package
|
||||
(name "firefox-esr")
|
||||
(version "128.7.0esr")
|
||||
(version "102.5.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 "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")))))
|
||||
(base32 "1n2pq165fxmvgcr5mv3hhaid2vn7lh3jg03lf13kz4c5295x8z81"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -138,11 +292,6 @@
|
|||
"--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"
|
||||
|
@ -158,7 +307,6 @@
|
|||
"--disable-elf-hack"))
|
||||
#:imported-modules %cargo-utils-modules
|
||||
#:modules `((ice-9 regex)
|
||||
(ice-9 string-fun)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
|
@ -166,7 +314,7 @@
|
|||
(rnrs io ports)
|
||||
(guix elf)
|
||||
(guix build gremlin)
|
||||
,@%default-gnu-imported-modules)
|
||||
,@%gnu-build-system-modules)
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-preferences
|
||||
|
@ -185,12 +333,12 @@
|
|||
|
||||
;; 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-store-permissions
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Piggyback off of (and overwrite) the existing NixOS sandbox policy
|
||||
(substitute* "security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp"
|
||||
(("/nix/store") "/gnu/store"))))
|
||||
(add-after 'fix-preferences 'fix-ffmpeg-runtime-linker
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((ffmpeg (assoc-ref inputs "ffmpeg"))
|
||||
|
@ -238,24 +386,8 @@
|
|||
;; complain that it's not able to change Cargo.lock.
|
||||
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
|
||||
(substitute* "build/RunCbindgen.py"
|
||||
(("args.append\\(\"--frozen\"\\)") "pass"))))
|
||||
(("\"--frozen\",") ""))))
|
||||
(delete 'bootstrap)
|
||||
(add-before 'configure 'patch-SpeechDispatcherService.cpp
|
||||
(lambda _
|
||||
(let* ((lib "libspeechd.so.2")
|
||||
(file "dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp")
|
||||
(old-content (call-with-input-file file get-string-all)))
|
||||
(substitute
|
||||
file
|
||||
`((,(format #f "~s" lib)
|
||||
. ,(lambda (line _)
|
||||
(string-replace-substring
|
||||
line
|
||||
lib
|
||||
(string-append #$speech-dispatcher "/lib/" lib))))))
|
||||
(if (string=? old-content
|
||||
(call-with-input-file file get-string-all))
|
||||
(error "substitute did nothing, phase requires an update")))))
|
||||
(add-before 'configure 'set-build-id
|
||||
;; Firefox will write the timestamp to output, which is harmful
|
||||
;; for reproducibility, so change it to a fixed date. Use a
|
||||
|
@ -291,9 +423,6 @@
|
|||
|
||||
(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"))
|
||||
|
@ -388,17 +517,13 @@
|
|||
'("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
|
||||
,pipewire-lib))
|
||||
,pulseaudio-lib ,eudev-lib ,@rdd-whitelist))
|
||||
`("XDG_DATA_DIRS" prefix (,gtk-share))
|
||||
`("MOZ_LEGACY_PROFILES" = ("1"))
|
||||
`("MOZ_ALLOW_DOWNGRADE" = ("1"))))))
|
||||
|
@ -412,7 +537,7 @@
|
|||
(("NewWindow") "new-window")
|
||||
(("NewPrivateWindow") "new-private-window")
|
||||
(("StartupNotify=true")
|
||||
"StartupNotify=true\nStartupWMClass=Firefox"))
|
||||
"StartupNotify=true\nStartupWMClass=Navigator"))
|
||||
(install-file desktop-file applications))))
|
||||
(add-after 'install-desktop-entry 'install-icons
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
@ -451,7 +576,7 @@
|
|||
gtk+
|
||||
gtk+-2
|
||||
hunspell
|
||||
icu4c-73
|
||||
icu4c-71
|
||||
jemalloc
|
||||
libcanberra
|
||||
libevent
|
||||
|
@ -475,9 +600,8 @@
|
|||
pipewire
|
||||
pixman
|
||||
pulseaudio
|
||||
speech-dispatcher
|
||||
sqlite
|
||||
startup-notification
|
||||
sqlite
|
||||
eudev
|
||||
unzip
|
||||
zip
|
||||
|
@ -487,24 +611,19 @@
|
|||
alsa-lib
|
||||
autoconf-2.13
|
||||
`(,rust-firefox-esr "cargo")
|
||||
clang-18
|
||||
clang
|
||||
llvm
|
||||
wasm32-wasi-clang-toolchain
|
||||
m4
|
||||
nasm
|
||||
node-lts
|
||||
node
|
||||
perl
|
||||
pkg-config
|
||||
python
|
||||
rust-firefox-esr
|
||||
rust-cbindgen-0.26
|
||||
rust-cbindgen-0.23
|
||||
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
|
||||
|
@ -549,31 +668,22 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
|||
((firefox) out))
|
||||
#t))))))
|
||||
|
||||
;; 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 "20250203132324")
|
||||
;; Update this id with every firefox update to it's release date.
|
||||
;; It's used for cache validation and therefor can lead to strange bugs.
|
||||
(define %firefox-build-id "20221129000000")
|
||||
|
||||
(define-public firefox
|
||||
(package
|
||||
(inherit firefox-esr)
|
||||
(name "firefox")
|
||||
(version "135.0")
|
||||
(version "107.0.1")
|
||||
(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 "0q5r2q6q56kyzl5pknrir9bzlhmzbvv9hi5gi4852izgcali4zl2"))))
|
||||
(base32 "0iq67r9ik6zng9m8zzrsaf1d1fvhpsdpf66whgbb0hwipawm16g2"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments firefox-esr)
|
||||
((#:phases phases)
|
||||
|
@ -581,18 +691,48 @@ 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:cargo" `(,rust-firefox "cargo"))
|
||||
(replace "node" node-lts)
|
||||
(replace "rust-cbindgen" rust-cbindgen-0.24)))
|
||||
(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.
|
||||
(define-public firefox-wayland
|
||||
(deprecated-package "firefox-wayland" firefox))
|
||||
(define-public firefox/wayland
|
||||
(package
|
||||
(inherit firefox)
|
||||
(name "firefox-wayland")
|
||||
(native-inputs '())
|
||||
(inputs
|
||||
`(("bash" ,bash-minimal)
|
||||
("firefox" ,firefox)))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let* ((bash (assoc-ref %build-inputs "bash"))
|
||||
(firefox (assoc-ref %build-inputs "firefox"))
|
||||
(out (assoc-ref %outputs "out"))
|
||||
(exe (string-append out "/bin/firefox")))
|
||||
(mkdir-p (dirname exe))
|
||||
|
||||
(call-with-output-file exe
|
||||
(lambda (port)
|
||||
(format port "#!~a
|
||||
MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
||||
(string-append bash "/bin/bash")
|
||||
(string-append firefox "/bin/firefox"))))
|
||||
(chmod exe #o555)
|
||||
|
||||
;; Provide the manual and .desktop file.
|
||||
(copy-recursively (string-append firefox "/share")
|
||||
(string-append out "/share"))
|
||||
(substitute* (string-append
|
||||
out "/share/applications/firefox.desktop")
|
||||
((firefox) out))
|
||||
#t))))))
|
||||
|
|
|
@ -1,107 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022 Sughosha <sughosha@proton.me>
|
||||
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
|
||||
(define-module (nongnu packages music)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module ((nonguix licenses) #:prefix license:)
|
||||
#:use-module (nonguix build-system binary))
|
||||
|
||||
(define-public reaper
|
||||
(package
|
||||
(name "reaper")
|
||||
(version "6.73")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.reaper.fm/files/"
|
||||
(version-major version)
|
||||
".x/reaper"
|
||||
(string-replace-substring version "." "")
|
||||
"_"
|
||||
(match (%current-system)
|
||||
("x86_64-linux" "linux_x86_64")
|
||||
("i686-linux" "linux_i686")
|
||||
("aarch64-linux" "linux_aarch64")
|
||||
("armhf-linux" "linux_armv7l")
|
||||
;; We need a default case
|
||||
(_ "unsupported"))
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
(match (%current-system)
|
||||
("x86_64-linux" "1hd7fbk0px45fxhqa7nqcnij8ls2fhpjp60v840vy2zqs9fkcr52")
|
||||
("i686-linux" "11vk32mxyda9xl08pp2ivd1vsahnw6w7d08in4syz6iannfwp19b")
|
||||
("aarch64-linux" "0zpkaiwwxn8yh3s1d22qswshbgaxx5d8iy17hb3w256zgb722yjw")
|
||||
("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
|
||||
#:patchelf-plan #~`(("REAPER/reaper" ("libc" "gcc" "alsa-lib"))
|
||||
("REAPER/reamote-server" ("libc" "gcc"))
|
||||
("REAPER/Plugins/reaper_host_x86_64" ("libc" "gcc")))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(let* ((target (string-append #$output "/opt"))
|
||||
(bin (string-append #$output "/bin"))
|
||||
(libexec (string-append #$output "/libexec"))
|
||||
(data (string-append #$output "/share"))
|
||||
(doc (string-append data "/doc/reaper-"
|
||||
#$version)))
|
||||
(setenv "HOME" "/tmp")
|
||||
(setenv "XDG_DATA_HOME" data)
|
||||
(invoke "sh" "./install-reaper.sh" "--install"
|
||||
target "--integrate-user-desktop")
|
||||
(delete-file (string-append target
|
||||
"/REAPER/uninstall-reaper.sh"))
|
||||
(delete-file (string-append target
|
||||
"/REAPER/libSwell.so"))
|
||||
(symlink (search-input-file inputs
|
||||
"/lib/libSwell.so")
|
||||
(string-append target
|
||||
"/REAPER/libSwell.so"))
|
||||
(mkdir-p bin)
|
||||
(symlink (string-append target "/REAPER/reaper")
|
||||
(string-append bin "/reaper"))
|
||||
(mkdir-p libexec)
|
||||
(symlink (string-append target
|
||||
"/REAPER/Plugins/reaper_host_x86_64")
|
||||
(string-append libexec
|
||||
"/reaper_host_x86_64"))
|
||||
(mkdir-p doc)
|
||||
(symlink (string-append target
|
||||
"/REAPER/EULA.txt")
|
||||
(string-append doc "/LICENSE"))))))))
|
||||
(native-inputs
|
||||
(list
|
||||
which
|
||||
xdg-utils))
|
||||
(inputs
|
||||
(list
|
||||
alsa-lib
|
||||
`(,gcc "lib")
|
||||
wdl))
|
||||
(supported-systems '("x86_64-linux" "i686-linux" "aarch64-linux"
|
||||
"armhf-linux"))
|
||||
(home-page "https://www.reaper.fm")
|
||||
(synopsis "Digital audio workstation")
|
||||
(description
|
||||
"REAPER is a digital audio production application offering multitrack
|
||||
audio and MIDI recording, editing, processing, mixing and mastering toolset.
|
||||
It supports a vast range of hardware, digital formats and plugins, and can be
|
||||
comprehensively extended, scripted and modified.")
|
||||
(license (license:nonfree "file:///opt/REAPER/EULA.txt"))))
|
|
@ -1,4 +1,4 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
|
||||
|
@ -8,13 +8,26 @@
|
|||
;;; Copyright © 2017, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||
;;; Copyright © 2022-2023 B. Wilson <x@wilsonb.com>
|
||||
;;; Copyright © 2022 B. Wilson <x@wilsonb.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages ncurses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
|
@ -27,17 +40,6 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define ncurses-rollup-patch
|
||||
(mlambda (version hash)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (match (string-split (version-major+minor+point version) #\.)
|
||||
((major minor point)
|
||||
(string-append "https://invisible-mirror.net/archives"
|
||||
"/ncurses/" major "." minor "/ncurses-"
|
||||
major "." minor "-" point "-patch.sh.bz2"))))
|
||||
(sha256 (base32 hash)))))
|
||||
|
||||
(define-public ncurses-5
|
||||
(package
|
||||
(name "ncurses")
|
||||
|
@ -55,157 +57,172 @@
|
|||
"doc")) ;1 MiB of man pages
|
||||
(arguments
|
||||
(let ((patch-makefile-phase
|
||||
#~(lambda _
|
||||
(for-each patch-makefile-SHELL
|
||||
(find-files "." "Makefile.in"))))
|
||||
'(lambda _
|
||||
(for-each patch-makefile-SHELL
|
||||
(find-files "." "Makefile.in"))))
|
||||
(configure-phase
|
||||
;; The 'configure' script does not understand '--docdir', so we must
|
||||
;; override that and use '--mandir' instead.
|
||||
#~(lambda* (#:key build target outputs configure-flags
|
||||
#:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc")))
|
||||
(apply invoke "./configure"
|
||||
(string-append "SHELL=" (which "sh"))
|
||||
(string-append "--build=" build)
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--mandir=" doc "/share/man")
|
||||
(if target
|
||||
(cons (string-append "--host=" target)
|
||||
configure-flags)
|
||||
configure-flags)))))
|
||||
'(lambda* (#:key build target outputs configure-flags
|
||||
#:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc")))
|
||||
(apply invoke "./configure"
|
||||
(string-append "SHELL=" (which "sh"))
|
||||
(string-append "--build=" build)
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--mandir=" doc "/share/man")
|
||||
(if target
|
||||
(cons (string-append "--host=" target)
|
||||
configure-flags)
|
||||
configure-flags)))))
|
||||
(apply-rollup-patch-phase
|
||||
;; Ncurses distributes "stable" patchsets to be applied on top
|
||||
;; of the release tarball. These are only available as shell
|
||||
;; scripts(!) so we decompress and apply them in a phase.
|
||||
;; See <https://invisible-mirror.net/archives/ncurses/6.1/README>.
|
||||
#~(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
(let ((rollup-patch #$(ncurses-rollup-patch
|
||||
(package-version this-package)
|
||||
"16ny892yhimy6r4mmsgw3rcl0i15570ifn9c54g1ndyrk7kpmlgs")))
|
||||
(copy-file rollup-patch
|
||||
(string-append (getcwd) "/rollup-patch.sh.bz2"))
|
||||
(invoke "bzip2" "-d" "rollup-patch.sh.bz2")
|
||||
(invoke "sh" "rollup-patch.sh"))))
|
||||
'(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
(let ((rollup-patch (assoc-ref (or native-inputs inputs)
|
||||
"rollup-patch")))
|
||||
(when rollup-patch
|
||||
(copy-file rollup-patch
|
||||
(string-append (getcwd) "/rollup-patch.sh.bz2"))
|
||||
(invoke "bzip2" "-d" "rollup-patch.sh.bz2")
|
||||
(invoke "sh" "rollup-patch.sh")))))
|
||||
(remove-shebang-phase
|
||||
#~(lambda _
|
||||
;; To avoid retaining a reference to the bootstrap Bash via the
|
||||
;; shebang of the 'ncursesw6-config' script, simply remove that
|
||||
;; shebang: it'll work just as well without it. Likewise, do not
|
||||
;; retain a reference to the "doc" output.
|
||||
(substitute* "misc/ncurses-config.in"
|
||||
(("#!@SHELL@")
|
||||
"# No shebang here, use /bin/sh!\n")
|
||||
(("@SHELL@ \\$0")
|
||||
"$0")
|
||||
(("mandir=.*$")
|
||||
"mandir=share/man"))))
|
||||
'(lambda _
|
||||
;; To avoid retaining a reference to the bootstrap Bash via the
|
||||
;; shebang of the 'ncursesw6-config' script, simply remove that
|
||||
;; shebang: it'll work just as well without it. Likewise, do not
|
||||
;; retain a reference to the "doc" output.
|
||||
(substitute* "misc/ncurses-config.in"
|
||||
(("#!@SHELL@")
|
||||
"# No shebang here, use /bin/sh!\n")
|
||||
(("@SHELL@ \\$0")
|
||||
"$0")
|
||||
(("mandir=.*$")
|
||||
"mandir=share/man"))))
|
||||
(post-install-phase
|
||||
#~(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; When building a wide-character (Unicode) build, create backward
|
||||
;; compatibility links from the the "normal" libraries to the
|
||||
;; wide-character ones (e.g. libncurses.so to libncursesw.so).
|
||||
#$@(if (target-mingw?)
|
||||
`( ;; TODO: create .la files to link to the .dll?
|
||||
(with-directory-excursion (string-append out "/bin")
|
||||
(for-each
|
||||
(lambda (lib)
|
||||
(define lib.dll
|
||||
(string-append "lib" lib ".dll"))
|
||||
(define libwx.dll
|
||||
(string-append "lib" lib "w"
|
||||
,(version-major version) ".dll"))
|
||||
`(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; When building a wide-character (Unicode) build, create backward
|
||||
;; compatibility links from the the "normal" libraries to the
|
||||
;; wide-character ones (e.g. libncurses.so to libncursesw.so).
|
||||
,@(if (target-mingw?)
|
||||
'( ;; TODO: create .la files to link to the .dll?
|
||||
(with-directory-excursion (string-append out "/bin")
|
||||
(for-each
|
||||
(lambda (lib)
|
||||
(define lib.dll
|
||||
(string-append "lib" lib ".dll"))
|
||||
(define libw6.dll
|
||||
(string-append "lib" lib "w6.dll"))
|
||||
|
||||
(when (file-exists? libwx.dll)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw6.dll lib.dll)))
|
||||
'("curses" "ncurses" "form" "panel" "menu"))))
|
||||
#~())
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(for-each (lambda (lib)
|
||||
(define libw.a
|
||||
(string-append "lib" lib "w.a"))
|
||||
(define lib.a
|
||||
(string-append "lib" lib ".a"))
|
||||
(when (file-exists? libw6.dll)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw6.dll lib.dll)))
|
||||
'("curses" "ncurses" "form" "panel" "menu"))))
|
||||
'())
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(for-each (lambda (lib)
|
||||
(define libw.a
|
||||
(string-append "lib" lib "w.a"))
|
||||
(define lib.a
|
||||
(string-append "lib" lib ".a"))
|
||||
|
||||
#$@(if (not (target-mingw?))
|
||||
#~((define libw.so.x
|
||||
(string-append "lib" lib "w.so."
|
||||
#$(version-major version)))
|
||||
(define lib.so.x
|
||||
(string-append "lib" lib ".so."
|
||||
#$(version-major version)))
|
||||
(define lib.so
|
||||
(string-append "lib" lib ".so"))
|
||||
(define packagew.pc
|
||||
(string-append lib "w.pc"))
|
||||
(define package.pc
|
||||
(string-append lib ".pc")))
|
||||
#~())
|
||||
,@(if (not (target-mingw?))
|
||||
`((define libw.so.x
|
||||
(string-append "lib" lib "w.so."
|
||||
,(version-major version)))
|
||||
(define lib.so.x
|
||||
(string-append "lib" lib ".so."
|
||||
,(version-major version)))
|
||||
(define lib.so
|
||||
(string-append "lib" lib ".so"))
|
||||
(define packagew.pc
|
||||
(string-append lib "w.pc"))
|
||||
(define package.pc
|
||||
(string-append lib ".pc")))
|
||||
'())
|
||||
|
||||
(when (file-exists? libw.a)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw.a lib.a)
|
||||
#$@(if (not (target-mingw?))
|
||||
'((symlink libw.so.x lib.so.x)
|
||||
(false-if-exception (delete-file lib.so))
|
||||
(call-with-output-file lib.so
|
||||
(lambda (p)
|
||||
(format p "INPUT (-l~aw)~%" lib)))
|
||||
(with-directory-excursion "pkgconfig"
|
||||
(format #t "creating symlink for `~a'~%"
|
||||
package.pc)
|
||||
(when (file-exists? packagew.pc)
|
||||
(symlink packagew.pc package.pc))))
|
||||
#~())))
|
||||
'("curses" "ncurses" "form" "panel" "menu")))))))
|
||||
(list #:configure-flags
|
||||
#~`("--with-shared" "--without-debug" "--enable-widec"
|
||||
(when (file-exists? libw.a)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw.a lib.a)
|
||||
,@(if (not (target-mingw?))
|
||||
'((symlink libw.so.x lib.so.x)
|
||||
(false-if-exception (delete-file lib.so))
|
||||
(call-with-output-file lib.so
|
||||
(lambda (p)
|
||||
(format p "INPUT (-l~aw)~%" lib)))
|
||||
(with-directory-excursion "pkgconfig"
|
||||
(format #t "creating symlink for `~a'~%"
|
||||
package.pc)
|
||||
(when (file-exists? packagew.pc)
|
||||
(symlink packagew.pc package.pc))))
|
||||
'())))
|
||||
'("curses" "ncurses" "form" "panel" "menu")))))))
|
||||
`(#:configure-flags
|
||||
,(cons*
|
||||
'quasiquote
|
||||
`(("--with-shared" "--without-debug" "--enable-widec"
|
||||
|
||||
"--enable-pc-files" "--with-versioned-syms=yes"
|
||||
,(string-append "--with-pkg-config-libdir="
|
||||
#$output "/lib/pkgconfig")
|
||||
"--enable-pc-files" "--with-versioned-syms=yes"
|
||||
,(list 'unquote '(string-append "--with-pkg-config-libdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/pkgconfig"))
|
||||
|
||||
;; By default headers land in an `ncursesw' subdir, which is not
|
||||
;; what users expect.
|
||||
,(string-append "--includedir=" #$output "/include")
|
||||
"--enable-overwrite" ;really honor --includedir
|
||||
;; By default headers land in an `ncursesw' subdir, which is not
|
||||
;; what users expect.
|
||||
,(list 'unquote '(string-append "--includedir=" (assoc-ref %outputs "out")
|
||||
"/include"))
|
||||
"--enable-overwrite" ;really honor --includedir
|
||||
|
||||
;; Make sure programs like 'tic', 'reset', and 'clear' have a
|
||||
;; correct RUNPATH.
|
||||
,(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
|
||||
;; Make sure programs like 'tic', 'reset', and 'clear' have a
|
||||
;; correct RUNPATH.
|
||||
,(list 'unquote '(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
|
||||
"/lib"))
|
||||
|
||||
;; Starting from ncurses 6.1, "make install" runs "install -s"
|
||||
;; by default, which doesn't work for cross-compiled binaries
|
||||
;; because it invokes 'strip' instead of 'TRIPLET-strip'. Work
|
||||
;; around this.
|
||||
#$@(if (%current-target-system) #~("--disable-stripping") #~())
|
||||
;; Starting from ncurses 6.1, "make install" runs "install -s"
|
||||
;; by default, which doesn't work for cross-compiled binaries
|
||||
;; because it invokes 'strip' instead of 'TRIPLET-strip'. Work
|
||||
;; around this.
|
||||
,@(if (%current-target-system) '("--disable-stripping") '())
|
||||
|
||||
;; Do not assume a default search path in ld, even if it is only to
|
||||
;; filter it out in ncurses-config. Mainly because otherwise it ends
|
||||
;; up using the libdir from binutils, which makes little sense and
|
||||
;; causes an unnecessary runtime dependency.
|
||||
"cf_cv_ld_searchpath=/no-ld-searchpath"
|
||||
;; Do not assume a default search path in ld, even if it is only to
|
||||
;; filter it out in ncurses-config. Mainly because otherwise it ends
|
||||
;; up using the libdir from binutils, which makes little sense and
|
||||
;; causes an unnecessary runtime dependency.
|
||||
"cf_cv_ld_searchpath=/no-ld-searchpath"
|
||||
|
||||
;; MinGW: Use term-driver created for the MinGW port.
|
||||
#$@(if (target-mingw?) #~("--enable-term-driver") #~())
|
||||
"CXXFLAGS=-std=c++11")
|
||||
#:tests? #f ; no "check" target
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'apply-rollup-patch
|
||||
#$apply-rollup-patch-phase)
|
||||
(replace 'configure #$configure-phase)
|
||||
(add-after 'install 'post-install
|
||||
#$post-install-phase)
|
||||
(add-before 'configure 'patch-makefile-SHELL
|
||||
#$patch-makefile-phase)
|
||||
(add-before 'patch-source-shebangs 'remove-unneeded-shebang
|
||||
#$remove-shebang-phase)))))
|
||||
;; MinGW: Use term-driver created for the MinGW port.
|
||||
,@(if (target-mingw?) '("--enable-term-driver") '()))))
|
||||
#:tests? #f ; no "check" target
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'apply-rollup-patch
|
||||
,apply-rollup-patch-phase)
|
||||
(replace 'configure ,configure-phase)
|
||||
(add-after 'install 'post-install
|
||||
,post-install-phase)
|
||||
(add-before 'configure 'patch-makefile-SHELL
|
||||
,patch-makefile-phase)
|
||||
(add-before 'patch-source-shebangs 'remove-unneeded-shebang
|
||||
,remove-shebang-phase)))))
|
||||
(native-inputs
|
||||
(if (%current-target-system)
|
||||
(list pkg-config this-package) ;for 'tic'
|
||||
(list pkg-config)))
|
||||
`(,@(if (%current-target-system)
|
||||
`(("self" ,this-package)) ;for `tic'
|
||||
'())
|
||||
("rollup-patch"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (match (string-split (version-major+minor+point version) #\.)
|
||||
((major minor point)
|
||||
(string-append "https://invisible-mirror.net/archives"
|
||||
"/ncurses/" major "." minor "/ncurses-"
|
||||
major "." minor "-" point "-patch.sh.bz2"))))
|
||||
(sha256
|
||||
(base32
|
||||
"16ny892yhimy6r4mmsgw3rcl0i15570ifn9c54g1ndyrk7kpmlgs"))))
|
||||
("pkg-config" ,pkg-config)))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "TERMINFO_DIRS")
|
||||
|
@ -220,10 +237,13 @@ ncursesw library provides wide character support.")
|
|||
(license x11)
|
||||
(home-page "https://www.gnu.org/software/ncurses/")))
|
||||
|
||||
;; Needed by u-boot 2022.04+
|
||||
;; Consider merging into ncurses for next core-updates cycle.
|
||||
(define-public ncurses/tinfo-5
|
||||
(package/inherit ncurses-5
|
||||
(name "ncurses-with-tinfo")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments ncurses-5)
|
||||
((#:configure-flags cf)
|
||||
#~(cons "--with-termlib=tinfo" #$cf))))))
|
||||
`(cons "--with-termlib=tinfo"
|
||||
,cf))))))
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,161 @@
|
|||
--- a/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -1968,7 +1968,7 @@
|
||||
|
||||
if (dtoh32(bi->length) > WL_BSS_INFO_MAX) {
|
||||
WL_DBG(("Beacon is larger than buffer. Discarding\n"));
|
||||
- return err;
|
||||
+ return -E2BIG;
|
||||
}
|
||||
notif_bss_info = kzalloc(sizeof(*notif_bss_info) + sizeof(*mgmt) - sizeof(u8) +
|
||||
WL_BSS_INFO_MAX, GFP_KERNEL);
|
||||
@@ -1992,9 +1992,15 @@
|
||||
beacon_proberesp->capab_info = cpu_to_le16(bi->capability);
|
||||
wl_rst_ie(wl);
|
||||
|
||||
- wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length);
|
||||
- wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX -
|
||||
+ err = wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length);
|
||||
+ if (err)
|
||||
+ goto inform_single_bss_out;
|
||||
+
|
||||
+ err = wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX -
|
||||
offsetof(struct wl_cfg80211_bss_info, frame_buf));
|
||||
+ if (err)
|
||||
+ goto inform_single_bss_out;
|
||||
+
|
||||
notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) +
|
||||
wl_get_ielen(wl);
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
|
||||
@@ -2006,14 +2012,14 @@
|
||||
#endif
|
||||
if (freq == 0) {
|
||||
WL_ERR(("Invalid channel, fail to chcnage channel to freq\n"));
|
||||
- kfree(notif_bss_info);
|
||||
- return -EINVAL;
|
||||
+ err = -EINVAL;
|
||||
+ goto inform_single_bss_out;
|
||||
}
|
||||
channel = ieee80211_get_channel(wiphy, freq);
|
||||
if (unlikely(!channel)) {
|
||||
WL_ERR(("ieee80211_get_channel error\n"));
|
||||
- kfree(notif_bss_info);
|
||||
- return -EINVAL;
|
||||
+ err = -EINVAL;
|
||||
+ goto inform_single_bss_out;
|
||||
}
|
||||
|
||||
WL_DBG(("SSID : \"%s\", rssi %d, channel %d, capability : 0x04%x, bssid %pM\n",
|
||||
@@ -2021,28 +2027,37 @@
|
||||
mgmt->u.beacon.capab_info, &bi->BSSID));
|
||||
|
||||
signal = notif_bss_info->rssi * 100;
|
||||
- cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt,
|
||||
- le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL);
|
||||
- if (unlikely(!cbss)) {
|
||||
- WL_ERR(("cfg80211_inform_bss_frame error\n"));
|
||||
- kfree(notif_bss_info);
|
||||
- return -EINVAL;
|
||||
- }
|
||||
|
||||
- notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
|
||||
- notify_ielen = le32_to_cpu(bi->ie_length);
|
||||
+ if (!wl->scan_request) {
|
||||
+ cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt,
|
||||
+ le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL);
|
||||
+ if (unlikely(!cbss)) {
|
||||
+ WL_ERR(("cfg80211_inform_bss_frame error\n"));
|
||||
+ err = -ENOMEM;
|
||||
+ goto inform_single_bss_out;
|
||||
+ }
|
||||
+ } else {
|
||||
+ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
|
||||
+ notify_ielen = le32_to_cpu(bi->ie_length);
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
|
||||
- cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
|
||||
- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
|
||||
- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
|
||||
+ cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
|
||||
+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
|
||||
+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
|
||||
#else
|
||||
- cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),
|
||||
- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
|
||||
- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
|
||||
+ cbss = cfg80211_inform_bss(wiphy, channel,
|
||||
+ wl->active_scan ?
|
||||
+ CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON,
|
||||
+ (const u8 *)(bi->BSSID.octet), 0,
|
||||
+ beacon_proberesp->capab_info,
|
||||
+ beacon_proberesp->beacon_int,
|
||||
+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
|
||||
#endif
|
||||
-
|
||||
- if (unlikely(!cbss))
|
||||
- return -ENOMEM;
|
||||
+ if (unlikely(!cbss)) {
|
||||
+ WL_ERR(("cfg80211_inform_bss error\n"));
|
||||
+ err = -ENOMEM;
|
||||
+ goto inform_single_bss_out;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)
|
||||
cfg80211_put_bss(wiphy, cbss);
|
||||
@@ -2050,6 +2065,7 @@
|
||||
cfg80211_put_bss(cbss);
|
||||
#endif
|
||||
|
||||
+inform_single_bss_out:
|
||||
kfree(notif_bss_info);
|
||||
|
||||
return err;
|
||||
@@ -2316,6 +2332,9 @@
|
||||
if (err)
|
||||
goto update_bss_info_out;
|
||||
|
||||
+ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
|
||||
+ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS);
|
||||
+
|
||||
ie = ((u8 *)bi) + bi->ie_offset;
|
||||
ie_len = bi->ie_length;
|
||||
} else {
|
||||
@@ -2328,11 +2347,18 @@
|
||||
ie_len = bss->len_information_elements;
|
||||
#endif
|
||||
wl->conf->channel = *bss->channel;
|
||||
+ }
|
||||
+
|
||||
+ if (bss) {
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)
|
||||
cfg80211_put_bss(wiphy, bss);
|
||||
#else
|
||||
cfg80211_put_bss(bss);
|
||||
#endif
|
||||
+ } else {
|
||||
+ WL_DBG(("Could not update BSS\n"));
|
||||
+ err = -EINVAL;
|
||||
+ goto update_bss_info_out;
|
||||
}
|
||||
|
||||
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
|
||||
@@ -2360,10 +2386,17 @@
|
||||
struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl);
|
||||
s32 err = 0;
|
||||
|
||||
- wl_get_assoc_ies(wl);
|
||||
+ err = wl_get_assoc_ies(wl);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
- wl_update_bss_info(wl);
|
||||
+
|
||||
+ err = wl_update_bss_info(wl);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
cfg80211_roamed(ndev,
|
||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
|
||||
&wl->conf->channel,
|
|
@ -0,0 +1,16 @@
|
|||
https://bugs.archlinux.org/task/61090
|
||||
|
||||
--- a/src/wl/sys/wl_cfg80211_hybrid.c 2015-09-19 00:47:30.000000000 +0200
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2018-11-14 14:06:03.313487995 +0100
|
||||
@@ -1444,11 +1444,10 @@
|
||||
s32 rate;
|
||||
s32 err = 0;
|
||||
|
||||
if (memcmp(mac, wl->profile->bssid, ETHER_ADDR_LEN)) {
|
||||
WL_ERR(("Wrong Mac address, mac = %pM profile =%pM\n", mac, wl->profile->bssid));
|
||||
- return -ENOENT;
|
||||
}
|
||||
|
||||
err = wl_dev_ioctl(dev, WLC_GET_RATE, &rate, sizeof(rate));
|
||||
if (err) {
|
||||
WL_DBG(("Could not get rate (%d)\n", err));
|
11
nongnu/packages/patches/broadcom-sta-gcc.patch
Normal file
11
nongnu/packages/patches/broadcom-sta-gcc.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- a/Makefile 2014-06-26 10:42:08.000000000 +0000
|
||||
+++ b/Makefile 2014-07-17 22:44:01.662297228 +0000
|
||||
@@ -126,6 +126,8 @@
|
||||
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
|
||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
|
||||
|
||||
+EXTRA_CFLAGS += -Wno-date-time
|
||||
+
|
||||
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||
|
||||
KBASE ?= /lib/modules/`uname -r`
|
13
nongnu/packages/patches/broadcom-sta-license.patch
Normal file
13
nongnu/packages/patches/broadcom-sta-license.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c
|
||||
--- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c 2009-04-23 02:48:59.000000000 +0900
|
||||
+++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c 2009-05-08 00:48:20.000000000 +0900
|
||||
@@ -171,6 +171,8 @@
|
||||
static void wl_free_if(wl_info_t *wl, wl_if_t *wlif);
|
||||
static void wl_get_driver_info(struct net_device *dev, struct ethtool_drvinfo *info);
|
||||
|
||||
+MODULE_LICENSE("MIXED/Proprietary");
|
||||
+
|
||||
#if defined(WL_CONFIG_RFKILL)
|
||||
#include <linux/rfkill.h>
|
||||
static int wl_init_rfkill(wl_info_t *wl);
|
||||
|
52
nongnu/packages/patches/broadcom-sta-linux-4.11.patch
Normal file
52
nongnu/packages/patches/broadcom-sta-linux-4.11.patch
Normal file
|
@ -0,0 +1,52 @@
|
|||
diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index a9671e2..da36405 100644
|
||||
--- a/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -30,6 +30,9 @@
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/ieee80211.h>
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
+#include <linux/sched/signal.h>
|
||||
+#endif
|
||||
#include <net/cfg80211.h>
|
||||
#include <linux/nl80211.h>
|
||||
#include <net/rtnetlink.h>
|
||||
diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
|
||||
index 489c9f5..f8278ad 100644
|
||||
--- a/src/wl/sys/wl_linux.c
|
||||
+++ b/src/wl/sys/wl_linux.c
|
||||
@@ -117,6 +117,9 @@ int wl_found = 0;
|
||||
|
||||
typedef struct priv_link {
|
||||
wl_if_t *wlif;
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
+ unsigned long last_rx;
|
||||
+#endif
|
||||
} priv_link_t;
|
||||
|
||||
#define WL_DEV_IF(dev) ((wl_if_t*)((priv_link_t*)DEV_PRIV(dev))->wlif)
|
||||
@@ -2450,6 +2453,9 @@ wl_monitor(wl_info_t *wl, wl_rxsts_t *rxsts, void *p)
|
||||
{
|
||||
struct sk_buff *oskb = (struct sk_buff *)p;
|
||||
struct sk_buff *skb;
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
+ priv_link_t *priv_link;
|
||||
+#endif
|
||||
uchar *pdata;
|
||||
uint len;
|
||||
|
||||
@@ -2916,7 +2922,13 @@ wl_monitor(wl_info_t *wl, wl_rxsts_t *rxsts, void *p)
|
||||
if (skb == NULL) return;
|
||||
|
||||
skb->dev = wl->monitor_dev;
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
+ priv_link = MALLOC(wl->osh, sizeof(priv_link_t));
|
||||
+ priv_link = netdev_priv(skb->dev);
|
||||
+ priv_link->last_rx = jiffies;
|
||||
+#else
|
||||
skb->dev->last_rx = jiffies;
|
||||
+#endif
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
|
||||
skb_reset_mac_header(skb);
|
||||
#else
|
68
nongnu/packages/patches/broadcom-sta-linux-4.12.patch
Normal file
68
nongnu/packages/patches/broadcom-sta-linux-4.12.patch
Normal file
|
@ -0,0 +1,68 @@
|
|||
diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index da36405..d3741eb 100644
|
||||
--- a/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -53,7 +53,11 @@ u32 wl_dbg_level = WL_DBG_ERR;
|
||||
#endif
|
||||
|
||||
static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
+ enum nl80211_iftype type, struct vif_params *params);
|
||||
+#else
|
||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
||||
+#endif
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
||||
static s32
|
||||
wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
@@ -466,7 +470,11 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len)
|
||||
|
||||
static s32
|
||||
wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
+ enum nl80211_iftype type,
|
||||
+#else
|
||||
enum nl80211_iftype type, u32 *flags,
|
||||
+#endif
|
||||
struct vif_params *params)
|
||||
{
|
||||
struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
|
||||
@@ -2361,6 +2369,20 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev,
|
||||
const wl_event_msg_t *e, void *data)
|
||||
{
|
||||
struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
+ struct cfg80211_bss *bss;
|
||||
+ struct wlc_ssid *ssid;
|
||||
+ ssid = &wl->profile->ssid;
|
||||
+ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
|
||||
+ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS);
|
||||
+ struct cfg80211_roam_info roam_info = {
|
||||
+ .bss = bss,
|
||||
+ .req_ie = conn_info->req_ie,
|
||||
+ .req_ie_len = conn_info->req_ie_len,
|
||||
+ .resp_ie = conn_info->resp_ie,
|
||||
+ .resp_ie_len = conn_info->resp_ie_len,
|
||||
+ };
|
||||
+#endif
|
||||
s32 err = 0;
|
||||
|
||||
wl_get_assoc_ies(wl);
|
||||
@@ -2368,12 +2390,17 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev,
|
||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
wl_update_bss_info(wl);
|
||||
cfg80211_roamed(ndev,
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
+ &roam_info,
|
||||
+#else
|
||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
|
||||
&wl->conf->channel,
|
||||
#endif
|
||||
(u8 *)&wl->bssid,
|
||||
conn_info->req_ie, conn_info->req_ie_len,
|
||||
- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL);
|
||||
+ conn_info->resp_ie, conn_info->resp_ie_len,
|
||||
+#endif
|
||||
+ GFP_KERNEL);
|
||||
WL_DBG(("Report roaming result\n"));
|
||||
|
||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
47
nongnu/packages/patches/broadcom-sta-linux-4.15.patch
Normal file
47
nongnu/packages/patches/broadcom-sta-linux-4.15.patch
Normal file
|
@ -0,0 +1,47 @@
|
|||
See: https://lkml.org/lkml/2017/11/25/90
|
||||
|
||||
diff -urNZ a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
|
||||
--- a/src/wl/sys/wl_linux.c 2015-09-18 22:47:30.000000000 +0000
|
||||
+++ b/src/wl/sys/wl_linux.c 2018-01-31 22:52:10.859856221 +0000
|
||||
@@ -93,7 +93,11 @@
|
||||
|
||||
#include <wlc_wowl.h>
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
||||
+static void wl_timer(struct timer_list *tl);
|
||||
+#else
|
||||
static void wl_timer(ulong data);
|
||||
+#endif
|
||||
static void _wl_timer(wl_timer_t *t);
|
||||
static struct net_device *wl_alloc_linux_if(wl_if_t *wlif);
|
||||
|
||||
@@ -2298,9 +2302,15 @@
|
||||
}
|
||||
|
||||
static void
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
||||
+wl_timer(struct timer_list *tl)
|
||||
+{
|
||||
+ wl_timer_t *t = from_timer(t, tl, timer);
|
||||
+#else
|
||||
wl_timer(ulong data)
|
||||
{
|
||||
wl_timer_t *t = (wl_timer_t *)data;
|
||||
+#endif
|
||||
|
||||
if (!WL_ALL_PASSIVE_ENAB(t->wl))
|
||||
_wl_timer(t);
|
||||
@@ -2352,9 +2362,13 @@
|
||||
|
||||
bzero(t, sizeof(wl_timer_t));
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
||||
+ timer_setup(&t->timer, wl_timer, 0);
|
||||
+#else
|
||||
init_timer(&t->timer);
|
||||
t->timer.data = (ulong) t;
|
||||
t->timer.function = wl_timer;
|
||||
+#endif
|
||||
t->wl = wl;
|
||||
t->fn = fn;
|
||||
t->arg = arg;
|
109
nongnu/packages/patches/broadcom-sta-linux-4.7.patch
Normal file
109
nongnu/packages/patches/broadcom-sta-linux-4.7.patch
Normal file
|
@ -0,0 +1,109 @@
|
|||
Since Linux 4.7, the enum ieee80211_band is no longer used
|
||||
|
||||
This shall cause no problem's since both enums ieee80211_band
|
||||
and nl80211_band were added in the same commit:
|
||||
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=13ae75b103e07304a34ab40c9136e9f53e06475c
|
||||
|
||||
This patch refactors the references of IEEE80211_BAND_* to NL80211_BAND_*
|
||||
|
||||
Reference:
|
||||
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=57fbcce37be7c1d2622b56587c10ade00e96afa3
|
||||
|
||||
--- a/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:57:36.159340297 -0500
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:58:18.442323435 -0500
|
||||
@@ -236,7 +236,7 @@
|
||||
#endif
|
||||
|
||||
#define CHAN2G(_channel, _freq, _flags) { \
|
||||
- .band = IEEE80211_BAND_2GHZ, \
|
||||
+ .band = NL80211_BAND_2GHZ, \
|
||||
.center_freq = (_freq), \
|
||||
.hw_value = (_channel), \
|
||||
.flags = (_flags), \
|
||||
@@ -245,7 +245,7 @@
|
||||
}
|
||||
|
||||
#define CHAN5G(_channel, _flags) { \
|
||||
- .band = IEEE80211_BAND_5GHZ, \
|
||||
+ .band = NL80211_BAND_5GHZ, \
|
||||
.center_freq = 5000 + (5 * (_channel)), \
|
||||
.hw_value = (_channel), \
|
||||
.flags = (_flags), \
|
||||
@@ -379,7 +379,7 @@
|
||||
};
|
||||
|
||||
static struct ieee80211_supported_band __wl_band_2ghz = {
|
||||
- .band = IEEE80211_BAND_2GHZ,
|
||||
+ .band = NL80211_BAND_2GHZ,
|
||||
.channels = __wl_2ghz_channels,
|
||||
.n_channels = ARRAY_SIZE(__wl_2ghz_channels),
|
||||
.bitrates = wl_g_rates,
|
||||
@@ -387,7 +387,7 @@
|
||||
};
|
||||
|
||||
static struct ieee80211_supported_band __wl_band_5ghz_a = {
|
||||
- .band = IEEE80211_BAND_5GHZ,
|
||||
+ .band = NL80211_BAND_5GHZ,
|
||||
.channels = __wl_5ghz_a_channels,
|
||||
.n_channels = ARRAY_SIZE(__wl_5ghz_a_channels),
|
||||
.bitrates = wl_a_rates,
|
||||
@@ -395,7 +395,7 @@
|
||||
};
|
||||
|
||||
static struct ieee80211_supported_band __wl_band_5ghz_n = {
|
||||
- .band = IEEE80211_BAND_5GHZ,
|
||||
+ .band = NL80211_BAND_5GHZ,
|
||||
.channels = __wl_5ghz_n_channels,
|
||||
.n_channels = ARRAY_SIZE(__wl_5ghz_n_channels),
|
||||
.bitrates = wl_a_rates,
|
||||
@@ -1876,8 +1876,8 @@
|
||||
wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX;
|
||||
#endif
|
||||
wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
|
||||
- wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz;
|
||||
- wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a;
|
||||
+ wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz;
|
||||
+ wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a;
|
||||
wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
|
||||
wdev->wiphy->cipher_suites = __wl_cipher_suites;
|
||||
wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites);
|
||||
@@ -2000,7 +2000,7 @@
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
|
||||
freq = ieee80211_channel_to_frequency(notif_bss_info->channel,
|
||||
(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ?
|
||||
- IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||
+ NL80211_BAND_2GHZ : NL80211_BAND_5GHZ);
|
||||
#else
|
||||
freq = ieee80211_channel_to_frequency(notif_bss_info->channel);
|
||||
#endif
|
||||
@@ -2116,7 +2116,7 @@
|
||||
return err;
|
||||
}
|
||||
chan = wf_chspec_ctlchan(chanspec);
|
||||
- band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ;
|
||||
+ band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ;
|
||||
freq = ieee80211_channel_to_frequency(chan, band);
|
||||
channel = ieee80211_get_channel(wiphy, freq);
|
||||
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||
@@ -2250,10 +2250,10 @@
|
||||
join_params->params.chanspec_list[0] =
|
||||
ieee80211_frequency_to_channel(chan->center_freq);
|
||||
|
||||
- if (chan->band == IEEE80211_BAND_2GHZ) {
|
||||
+ if (chan->band == NL80211_BAND_2GHZ) {
|
||||
chanspec |= WL_CHANSPEC_BAND_2G;
|
||||
}
|
||||
- else if (chan->band == IEEE80211_BAND_5GHZ) {
|
||||
+ else if (chan->band == NL80211_BAND_5GHZ) {
|
||||
chanspec |= WL_CHANSPEC_BAND_5G;
|
||||
}
|
||||
else {
|
||||
@@ -2885,7 +2885,7 @@
|
||||
|
||||
if (phy == 'n' || phy == 'a' || phy == 'v') {
|
||||
wiphy = wl_to_wiphy(wl);
|
||||
- wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n;
|
||||
+ wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n;
|
||||
}
|
||||
|
||||
return err;
|
64
nongnu/packages/patches/broadcom-sta-linux-4.8.patch
Normal file
64
nongnu/packages/patches/broadcom-sta-linux-4.8.patch
Normal file
|
@ -0,0 +1,64 @@
|
|||
From d3f93542326a06d920c6eb89b703384290d37b8b Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Milone <alberto.milone@canonical.com>
|
||||
Date: Fri, 2 Sep 2016 17:35:34 +0200
|
||||
Subject: [PATCH 1/1] Add support for Linux 4.8
|
||||
|
||||
Orginal author: Krzysztof Kolasa
|
||||
---
|
||||
src/wl/sys/wl_cfg80211_hybrid.c | 22 ++++++++++++++++++++++
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index 2fc71fe..ec5e472 100644
|
||||
--- a/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -2388,8 +2388,16 @@ wl_bss_connect_done(struct wl_cfg80211_priv *wl, struct net_device *ndev,
|
||||
s32 err = 0;
|
||||
|
||||
if (wl->scan_request) {
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
|
||||
+ struct cfg80211_scan_info info = {
|
||||
+ .aborted = true,
|
||||
+ };
|
||||
+ WL_DBG(("%s: Aborting scan\n", __FUNCTION__));
|
||||
+ cfg80211_scan_done(wl->scan_request, &info);
|
||||
+#else
|
||||
WL_DBG(("%s: Aborting scan\n", __FUNCTION__));
|
||||
cfg80211_scan_done(wl->scan_request, true);
|
||||
+#endif
|
||||
wl->scan_request = NULL;
|
||||
}
|
||||
|
||||
@@ -2490,7 +2498,14 @@ wl_notify_scan_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
|
||||
|
||||
scan_done_out:
|
||||
if (wl->scan_request) {
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
|
||||
+ struct cfg80211_scan_info info = {
|
||||
+ .aborted = false,
|
||||
+ };
|
||||
+ cfg80211_scan_done(wl->scan_request, &info);
|
||||
+#else
|
||||
cfg80211_scan_done(wl->scan_request, false);
|
||||
+#endif
|
||||
wl->scan_request = NULL;
|
||||
}
|
||||
rtnl_unlock();
|
||||
@@ -2909,7 +2924,14 @@ s32 wl_cfg80211_down(struct net_device *ndev)
|
||||
s32 err = 0;
|
||||
|
||||
if (wl->scan_request) {
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
|
||||
+ struct cfg80211_scan_info info = {
|
||||
+ .aborted = true,
|
||||
+ };
|
||||
+ cfg80211_scan_done(wl->scan_request, &info);
|
||||
+#else
|
||||
cfg80211_scan_done(wl->scan_request, true);
|
||||
+#endif
|
||||
wl->scan_request = NULL;
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
32
nongnu/packages/patches/broadcom-sta-linux-5.1.patch
Normal file
32
nongnu/packages/patches/broadcom-sta-linux-5.1.patch
Normal file
|
@ -0,0 +1,32 @@
|
|||
commit bcb06af629a36eb84f9a35ac599ec7e51e2d39fb
|
||||
Author: georgewhewell <georgerw@gmail.com>
|
||||
Date: Sat May 18 21:22:37 2019 +0100
|
||||
|
||||
find src -type f -name \'*.c\' -exec sed -i "s/get_ds()/KERNEL_DS/g" {} \;
|
||||
|
||||
diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index 7b606e0..51c81bc 100644
|
||||
--- a/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -450,7 +450,7 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len)
|
||||
ifr.ifr_data = (caddr_t)&ioc;
|
||||
|
||||
fs = get_fs();
|
||||
- set_fs(get_ds());
|
||||
+ set_fs(KERNEL_DS);
|
||||
#if defined(WL_USE_NETDEV_OPS)
|
||||
err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
|
||||
#else
|
||||
diff --git a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c
|
||||
index c4c610b..9c3c74e 100644
|
||||
--- a/src/wl/sys/wl_iw.c
|
||||
+++ b/src/wl/sys/wl_iw.c
|
||||
@@ -117,7 +117,7 @@ dev_wlc_ioctl(
|
||||
ifr.ifr_data = (caddr_t) &ioc;
|
||||
|
||||
fs = get_fs();
|
||||
- set_fs(get_ds());
|
||||
+ set_fs(KERNEL_DS);
|
||||
#if defined(WL_USE_NETDEV_OPS)
|
||||
ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
|
||||
#else
|
211
nongnu/packages/patches/broadcom-sta-linux-5.10.patch
Normal file
211
nongnu/packages/patches/broadcom-sta-linux-5.10.patch
Normal file
|
@ -0,0 +1,211 @@
|
|||
From f3d652840f8dd959395065a1cf67ca40b04ec69b Mon Sep 17 00:00:00 2001
|
||||
From: Joan Bruguera <joanbrugueram@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 19:35:55 +0200
|
||||
Subject: [PATCH] Get rid of get_fs/set_fs calls in Broadcom WL driver.
|
||||
|
||||
Tentative patch for broadcom-wl 6.30.223.271 driver for Linux 5.10 (tested -rc1 up to 5.10.1)
|
||||
|
||||
Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-23 on Arch Linux.
|
||||
|
||||
NB: Some checks in wlc_ioctl_internal are likely superfluous,
|
||||
but I'm not familiar enough with the driver to remove them with confidence.
|
||||
|
||||
See also: https://lwn.net/Articles/722267/
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=47058bb54b57962b3958a936ddbc59355e4c5504
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5e6e9852d6f76e01b2e6803c74258afa5b432bc5
|
||||
|
||||
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
|
||||
---
|
||||
src/wl/sys/wl_cfg80211_hybrid.c | 25 ++-------------------
|
||||
src/wl/sys/wl_iw.c | 25 ++-------------------
|
||||
src/wl/sys/wl_linux.c | 40 ++++++++++++++++++++++++++++-----
|
||||
src/wl/sys/wl_linux.h | 2 ++
|
||||
src/wl/sys/wlc_pub.h | 1 +
|
||||
5 files changed, 42 insertions(+), 51 deletions(-)
|
||||
|
||||
diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index 73c4b82..2e6df32 100644
|
||||
--- a/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <wlioctl.h>
|
||||
#include <proto/802.11.h>
|
||||
#include <wl_cfg80211_hybrid.h>
|
||||
+#include <wl_linux.h>
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
#include <linux/sched/signal.h>
|
||||
@@ -443,30 +444,8 @@ static void key_endian_to_host(struct wl_wsec_key *key)
|
||||
static s32
|
||||
wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len)
|
||||
{
|
||||
- struct ifreq ifr;
|
||||
- struct wl_ioctl ioc;
|
||||
- mm_segment_t fs;
|
||||
- s32 err = 0;
|
||||
-
|
||||
BUG_ON(len < sizeof(int));
|
||||
-
|
||||
- memset(&ioc, 0, sizeof(ioc));
|
||||
- ioc.cmd = cmd;
|
||||
- ioc.buf = arg;
|
||||
- ioc.len = len;
|
||||
- strcpy(ifr.ifr_name, dev->name);
|
||||
- ifr.ifr_data = (caddr_t)&ioc;
|
||||
-
|
||||
- fs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
-#if defined(WL_USE_NETDEV_OPS)
|
||||
- err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
|
||||
-#else
|
||||
- err = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
|
||||
-#endif
|
||||
- set_fs(fs);
|
||||
-
|
||||
- return err;
|
||||
+ return wlc_ioctl_internal(dev, cmd, arg, len);
|
||||
}
|
||||
|
||||
static s32
|
||||
diff --git a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c
|
||||
index 9c3c74e..e346b15 100644
|
||||
--- a/src/wl/sys/wl_iw.c
|
||||
+++ b/src/wl/sys/wl_iw.c
|
||||
@@ -37,6 +37,7 @@ typedef const struct si_pub si_t;
|
||||
|
||||
#include <wl_dbg.h>
|
||||
#include <wl_iw.h>
|
||||
+#include <wl_linux.h>
|
||||
|
||||
extern bool wl_iw_conn_status_str(uint32 event_type, uint32 status,
|
||||
uint32 reason, char* stringBuf, uint buflen);
|
||||
@@ -103,29 +104,7 @@ dev_wlc_ioctl(
|
||||
int len
|
||||
)
|
||||
{
|
||||
- struct ifreq ifr;
|
||||
- wl_ioctl_t ioc;
|
||||
- mm_segment_t fs;
|
||||
- int ret;
|
||||
-
|
||||
- memset(&ioc, 0, sizeof(ioc));
|
||||
- ioc.cmd = cmd;
|
||||
- ioc.buf = arg;
|
||||
- ioc.len = len;
|
||||
-
|
||||
- strcpy(ifr.ifr_name, dev->name);
|
||||
- ifr.ifr_data = (caddr_t) &ioc;
|
||||
-
|
||||
- fs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
-#if defined(WL_USE_NETDEV_OPS)
|
||||
- ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
|
||||
-#else
|
||||
- ret = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
|
||||
-#endif
|
||||
- set_fs(fs);
|
||||
-
|
||||
- return ret;
|
||||
+ return wlc_ioctl_internal(dev, cmd, arg, len);
|
||||
}
|
||||
|
||||
static int
|
||||
diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
|
||||
index cca7ee1..e491df7 100644
|
||||
--- a/src/wl/sys/wl_linux.c
|
||||
+++ b/src/wl/sys/wl_linux.c
|
||||
@@ -1647,10 +1647,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||
goto done2;
|
||||
}
|
||||
|
||||
- if (get_fs().seg == KERNEL_DS.seg)
|
||||
- buf = ioc.buf;
|
||||
-
|
||||
- else if (ioc.buf) {
|
||||
+ if (ioc.buf) {
|
||||
if (!(buf = (void *) MALLOC(wl->osh, MAX(ioc.len, WLC_IOCTL_MAXLEN)))) {
|
||||
bcmerror = BCME_NORESOURCE;
|
||||
goto done2;
|
||||
@@ -1671,7 +1668,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||
WL_UNLOCK(wl);
|
||||
|
||||
done1:
|
||||
- if (ioc.buf && (ioc.buf != buf)) {
|
||||
+ if (ioc.buf) {
|
||||
if (copy_to_user(ioc.buf, buf, ioc.len))
|
||||
bcmerror = BCME_BADADDR;
|
||||
MFREE(wl->osh, buf, MAX(ioc.len, WLC_IOCTL_MAXLEN));
|
||||
@@ -1684,6 +1681,39 @@ done2:
|
||||
return (OSL_ERROR(bcmerror));
|
||||
}
|
||||
|
||||
+int
|
||||
+wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len)
|
||||
+{
|
||||
+ wl_info_t *wl;
|
||||
+ wl_if_t *wlif;
|
||||
+ int bcmerror;
|
||||
+
|
||||
+ if (!dev)
|
||||
+ return -ENETDOWN;
|
||||
+
|
||||
+ wl = WL_INFO(dev);
|
||||
+ wlif = WL_DEV_IF(dev);
|
||||
+ if (wlif == NULL || wl == NULL || wl->dev == NULL)
|
||||
+ return -ENETDOWN;
|
||||
+
|
||||
+ bcmerror = 0;
|
||||
+
|
||||
+ WL_TRACE(("wl%d: wlc_ioctl_internal: cmd 0x%x\n", wl->pub->unit, cmd));
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ if (!capable(CAP_NET_ADMIN)) {
|
||||
+ bcmerror = BCME_EPERM;
|
||||
+ } else {
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, cmd, buf, len, wlif->wlcif);
|
||||
+ }
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ ASSERT(VALID_BCMERROR(bcmerror));
|
||||
+ if (bcmerror != 0)
|
||||
+ wl->pub->bcmerror = bcmerror;
|
||||
+ return (OSL_ERROR(bcmerror));
|
||||
+}
|
||||
+
|
||||
static struct net_device_stats*
|
||||
wl_get_stats(struct net_device *dev)
|
||||
{
|
||||
diff --git a/src/wl/sys/wl_linux.h b/src/wl/sys/wl_linux.h
|
||||
index 5b1048e..c8c1f41 100644
|
||||
--- a/src/wl/sys/wl_linux.h
|
||||
+++ b/src/wl/sys/wl_linux.h
|
||||
@@ -22,6 +22,7 @@
|
||||
#define _wl_linux_h_
|
||||
|
||||
#include <wlc_types.h>
|
||||
+#include <wlc_pub.h>
|
||||
|
||||
typedef struct wl_timer {
|
||||
struct timer_list timer;
|
||||
@@ -187,6 +188,7 @@ extern irqreturn_t wl_isr(int irq, void *dev_id, struct pt_regs *ptregs);
|
||||
extern int __devinit wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
extern void wl_free(wl_info_t *wl);
|
||||
extern int wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
|
||||
+extern int wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len);
|
||||
extern struct net_device * wl_netdev_get(wl_info_t *wl);
|
||||
|
||||
#endif
|
||||
diff --git a/src/wl/sys/wlc_pub.h b/src/wl/sys/wlc_pub.h
|
||||
index 53a98b8..2b5a029 100644
|
||||
--- a/src/wl/sys/wlc_pub.h
|
||||
+++ b/src/wl/sys/wlc_pub.h
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <wlc_types.h>
|
||||
#include <wlc_utils.h>
|
||||
+#include <siutils.h>
|
||||
#include "proto/802.11.h"
|
||||
#include "proto/bcmevent.h"
|
||||
|
||||
--
|
||||
2.28.0
|
87
nongnu/packages/patches/broadcom-sta-linux-5.6.patch
Normal file
87
nongnu/packages/patches/broadcom-sta-linux-5.6.patch
Normal file
|
@ -0,0 +1,87 @@
|
|||
From dd057e40a167f4febb1a7c77dd32b7d36056952c Mon Sep 17 00:00:00 2001
|
||||
From: Herman van Hazendonk <github.com@herrie.org>
|
||||
Date: Tue, 31 Mar 2020 17:09:55 +0200
|
||||
Subject: [PATCH] Add fixes for 5.6 kernel
|
||||
|
||||
Use ioremap instead of ioremap_nocache and proc_ops instead of file_operations on Linux kernel 5.6 and above.
|
||||
|
||||
Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
|
||||
---
|
||||
src/shared/linux_osl.c | 6 +++++-
|
||||
src/wl/sys/wl_linux.c | 21 ++++++++++++++++++++-
|
||||
2 files changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c
|
||||
index 6157d18..dcfc075 100644
|
||||
--- a/src/shared/linux_osl.c
|
||||
+++ b/src/shared/linux_osl.c
|
||||
@@ -942,7 +942,11 @@ osl_getcycles(void)
|
||||
void *
|
||||
osl_reg_map(uint32 pa, uint size)
|
||||
{
|
||||
- return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
|
||||
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
|
||||
+ return (ioremap((unsigned long)pa, (unsigned long)size));
|
||||
+ #else
|
||||
+ return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
|
||||
+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
|
||||
}
|
||||
|
||||
void
|
||||
diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
|
||||
index 0d05100..6d9dd0d 100644
|
||||
--- a/src/wl/sys/wl_linux.c
|
||||
+++ b/src/wl/sys/wl_linux.c
|
||||
@@ -582,10 +582,17 @@ wl_attach(uint16 vendor, uint16 device, ulong regs,
|
||||
}
|
||||
wl->bcm_bustype = bustype;
|
||||
|
||||
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
|
||||
+ if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
|
||||
+ WL_ERROR(("wl%d: ioremap() failed\n", unit));
|
||||
+ goto fail;
|
||||
+ }
|
||||
+ #else
|
||||
if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
|
||||
WL_ERROR(("wl%d: ioremap() failed\n", unit));
|
||||
goto fail;
|
||||
}
|
||||
+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
|
||||
|
||||
wl->bar1_addr = bar1_addr;
|
||||
wl->bar1_size = bar1_size;
|
||||
@@ -772,8 +779,13 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
if ((val & 0x0000ff00) != 0)
|
||||
pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
|
||||
bar1_size = pci_resource_len(pdev, 2);
|
||||
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
|
||||
+ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2),
|
||||
+ bar1_size);
|
||||
+ #else
|
||||
bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2),
|
||||
bar1_size);
|
||||
+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
|
||||
wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev,
|
||||
pdev->irq, bar1_addr, bar1_size);
|
||||
|
||||
@@ -3335,12 +3347,19 @@ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
|
||||
+static const struct proc_ops wl_fops = {
|
||||
+ .proc_read = wl_proc_read,
|
||||
+ .proc_write = wl_proc_write,
|
||||
+};
|
||||
+#else
|
||||
static const struct file_operations wl_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.read = wl_proc_read,
|
||||
.write = wl_proc_write,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
|
||||
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */
|
||||
|
||||
static int
|
||||
wl_reg_proc_entry(wl_info_t *wl)
|
12
nongnu/packages/patches/broadcom-sta-linux-5.9.patch
Normal file
12
nongnu/packages/patches/broadcom-sta-linux-5.9.patch
Normal file
|
@ -0,0 +1,12 @@
|
|||
diff -u -r a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
|
||||
--- a/src/wl/sys/wl_linux.c 2020-10-12 21:19:15.256305165 +0000
|
||||
+++ b/src/wl/sys/wl_linux.c 2020-10-12 21:20:38.687530895 +0000
|
||||
@@ -1643,7 +1643,7 @@
|
||||
goto done2;
|
||||
}
|
||||
|
||||
- if (segment_eq(get_fs(), KERNEL_DS))
|
||||
+ if (get_fs().seg == KERNEL_DS.seg)
|
||||
buf = ioc.buf;
|
||||
|
||||
else if (ioc.buf) {
|
27
nongnu/packages/patches/broadcom-sta-null-pointer-fix.patch
Normal file
27
nongnu/packages/patches/broadcom-sta-null-pointer-fix.patch
Normal file
|
@ -0,0 +1,27 @@
|
|||
Description: Fixing null pointer crash
|
||||
|
||||
Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773713
|
||||
Bug-Ubuntu: https://launchpad.net/bugs/1415880
|
||||
Last-Update: 2015-08-18
|
||||
|
||||
---
|
||||
src/wl/sys/wl_linux.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
|
||||
index 860b935..295156f 100644
|
||||
--- a/src/wl/sys/wl_linux.c
|
||||
+++ b/src/wl/sys/wl_linux.c
|
||||
@@ -2157,8 +2157,8 @@ wl_start(struct sk_buff *skb, struct net_device *dev)
|
||||
wlif = WL_DEV_IF(dev);
|
||||
wl = WL_INFO(dev);
|
||||
|
||||
+ skb->prev = NULL;
|
||||
if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
|
||||
- skb->prev = NULL;
|
||||
|
||||
TXQ_LOCK(wl);
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
22
nongnu/packages/patches/broadcom-sta-rdtscl.patch
Normal file
22
nongnu/packages/patches/broadcom-sta-rdtscl.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
Since Linux 4.3, rdtscl() is no longer available and native_read_tsc()
|
||||
is renamed to rdtsc(). Move the macro contents in-line and call the
|
||||
new function. References:
|
||||
|
||||
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=fe47ae6e1a5005b2e82f7eab57b5c3820453293a
|
||||
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=4ea1636b04dbd66536fa387bae2eea463efc705b
|
||||
|
||||
diff -ru a/src/shared/linux_osl.c b/src/shared/linux_osl.c
|
||||
--- a/src/shared/linux_osl.c 2015-09-19 01:47:15.000000000 +0300
|
||||
+++ b/src/shared/linux_osl.c 2015-11-21 15:20:30.585902518 +0200
|
||||
@@ -932,7 +932,11 @@
|
||||
uint cycles;
|
||||
|
||||
#if defined(__i386__)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
|
||||
+ cycles = (u32)rdtsc();
|
||||
+#else
|
||||
rdtscl(cycles);
|
||||
+#endif
|
||||
#else
|
||||
cycles = 0;
|
||||
#endif
|
|
@ -1,23 +0,0 @@
|
|||
See comment in gnu/build/icecat-extension.scm.
|
||||
|
||||
diff --git a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
||||
index 0b885f6..0bbfbee 100644
|
||||
--- a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
||||
+++ b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
||||
@@ -3607,6 +3607,7 @@ export const XPIDatabaseReconcile = {
|
||||
if (
|
||||
newAddon ||
|
||||
oldAddon.updateDate != xpiState.mtime ||
|
||||
+ oldAddon.path != xpiState.path ||
|
||||
(aUpdateCompatibility && this.isAppBundledLocation(installLocation))
|
||||
) {
|
||||
newAddon = this.updateMetadata(
|
||||
@@ -3615,8 +3616,6 @@ export const XPIDatabaseReconcile = {
|
||||
xpiState,
|
||||
newAddon
|
||||
);
|
||||
- } else if (oldAddon.path != xpiState.path) {
|
||||
- newAddon = this.updatePath(installLocation, oldAddon, xpiState);
|
||||
} else if (aUpdateCompatibility || aSchemaChange) {
|
||||
newAddon = this.updateCompatibility(
|
||||
installLocation,
|
|
@ -1,38 +0,0 @@
|
|||
Replace "/usr/lib/mozilla" (the system-wide directory for extensions and
|
||||
native manifests) with "$ICECAT_SYSTEM_DIR".
|
||||
|
||||
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
||||
index d3af49b495..4beef0aa7e 100644
|
||||
--- a/toolkit/xre/nsXREDirProvider.cpp
|
||||
+++ b/toolkit/xre/nsXREDirProvider.cpp
|
||||
@@ -296,24 +296,12 @@ nsresult nsXREDirProvider::GetBackgroundTasksProfilesRootDir(
|
||||
static nsresult GetSystemParentDirectory(nsIFile** aFile) {
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIFile> localDir;
|
||||
-# if defined(XP_MACOSX)
|
||||
- rv = GetOSXFolderType(kOnSystemDisk, kApplicationSupportFolderType,
|
||||
- getter_AddRefs(localDir));
|
||||
- if (NS_SUCCEEDED(rv)) {
|
||||
- rv = localDir->AppendNative("Mozilla"_ns);
|
||||
- }
|
||||
-# else
|
||||
- constexpr auto dirname =
|
||||
-# ifdef HAVE_USR_LIB64_DIR
|
||||
- "/usr/lib64/mozilla"_ns
|
||||
-# elif defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||
- "/usr/local/lib/mozilla"_ns
|
||||
-# else
|
||||
- "/usr/lib/mozilla"_ns
|
||||
-# endif
|
||||
- ;
|
||||
- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir));
|
||||
-# endif
|
||||
+
|
||||
+ const char* systemParentDir = getenv("ICECAT_SYSTEM_DIR");
|
||||
+ if (!systemParentDir || !*systemParentDir) return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ rv = NS_NewNativeLocalFile(nsDependentCString(systemParentDir), false,
|
||||
+ getter_AddRefs(localDir));
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
localDir.forget(aFile);
|
|
@ -1,917 +0,0 @@
|
|||
From: John Kehayias
|
||||
Date: Fri, 18 Oct 2024 20:33:02 -0400
|
||||
Subject: [PATCH] Revert "Bug 1907512 - Remove duplicated desktop files
|
||||
r=stransky"
|
||||
|
||||
This reverts commit 7ac2001cd0d4e1f44f104d9b17a427a009935e20 which removed the desktop files in favor of generating them. See upstream discussion at <https://bugzilla.mozilla.org/show_bug.cgi?id=1901703>.
|
||||
|
||||
|
||||
---
|
||||
.../search-provider-files/firefox.desktop | 274 +++++++++++++
|
||||
.../org.mozilla.firefox.desktop | 386 ++++++++++++++++++
|
||||
.../docker/firefox-snap/firefox.desktop | 219 ++++++++++
|
||||
3 files changed, 879 insertions(+)
|
||||
create mode 100644 browser/components/shell/search-provider-files/firefox.desktop
|
||||
create mode 100644 taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop
|
||||
create mode 100644 taskcluster/docker/firefox-snap/firefox.desktop
|
||||
|
||||
diff --git a/browser/components/shell/search-provider-files/firefox.desktop b/browser/components/shell/search-provider-files/firefox.desktop
|
||||
new file mode 100644
|
||||
index 000000000000..575290acddc3
|
||||
--- /dev/null
|
||||
+++ b/browser/components/shell/search-provider-files/firefox.desktop
|
||||
@@ -0,0 +1,274 @@
|
||||
+[Desktop Entry]
|
||||
+Version=1.0
|
||||
+Name=Firefox
|
||||
+GenericName=Web Browser
|
||||
+GenericName[ca]=Navegador web
|
||||
+GenericName[cs]=Webový prohlížeč
|
||||
+GenericName[es]=Navegador web
|
||||
+GenericName[fa]=مرورگر اینترنتی
|
||||
+GenericName[fi]=WWW-selain
|
||||
+GenericName[fr]=Navigateur Web
|
||||
+GenericName[hu]=Webböngésző
|
||||
+GenericName[it]=Browser Web
|
||||
+GenericName[ja]=ウェブ・ブラウザ
|
||||
+GenericName[ko]=웹 브라우저
|
||||
+GenericName[nb]=Nettleser
|
||||
+GenericName[nl]=Webbrowser
|
||||
+GenericName[nn]=Nettlesar
|
||||
+GenericName[no]=Nettleser
|
||||
+GenericName[pl]=Przeglądarka WWW
|
||||
+GenericName[pt]=Navegador Web
|
||||
+GenericName[pt_BR]=Navegador Web
|
||||
+GenericName[sk]=Internetový prehliadač
|
||||
+GenericName[sv]=Webbläsare
|
||||
+Comment=Browse the Web
|
||||
+Comment[ca]=Navegueu per el web
|
||||
+Comment[cs]=Prohlížení stránek World Wide Webu
|
||||
+Comment[de]=Im Internet surfen
|
||||
+Comment[es]=Navegue por la web
|
||||
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
||||
+Comment[fi]=Selaa Internetin WWW-sivuja
|
||||
+Comment[fr]=Navigue sur Internet
|
||||
+Comment[hu]=A világháló böngészése
|
||||
+Comment[it]=Esplora il web
|
||||
+Comment[ja]=ウェブを閲覧します
|
||||
+Comment[ko]=웹을 돌아 다닙니다
|
||||
+Comment[nb]=Surf på nettet
|
||||
+Comment[nl]=Verken het internet
|
||||
+Comment[nn]=Surf på nettet
|
||||
+Comment[no]=Surf på nettet
|
||||
+Comment[pl]=Przeglądanie stron WWW
|
||||
+Comment[pt]=Navegue na Internet
|
||||
+Comment[pt_BR]=Navegue na Internet
|
||||
+Comment[sk]=Prehliadanie internetu
|
||||
+Comment[sv]=Surfa på webben
|
||||
+Exec=firefox %u
|
||||
+Icon=firefox
|
||||
+Terminal=false
|
||||
+Type=Application
|
||||
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||
+StartupNotify=true
|
||||
+Categories=Network;WebBrowser;
|
||||
+Keywords=web;browser;internet;
|
||||
+Actions=new-window;new-private-window;
|
||||
+DBusActivatable=true
|
||||
+
|
||||
+X-Desktop-File-Install-Version=0.24
|
||||
+
|
||||
+[Desktop Action new-window]
|
||||
+Name=Open a New Window
|
||||
+Name[ach]=Dirica manyen
|
||||
+Name[af]=Nuwe venster
|
||||
+Name[an]=Nueva finestra
|
||||
+Name[ar]=نافذة جديدة
|
||||
+Name[as]=নতুন উইন্ডো
|
||||
+Name[ast]=Ventana nueva
|
||||
+Name[az]=Yeni Pəncərə
|
||||
+Name[be]=Новае акно
|
||||
+Name[bg]=Нов прозорец
|
||||
+Name[bn_BD]=নতুন উইন্ডো (N)
|
||||
+Name[bn_IN]=নতুন উইন্ডো
|
||||
+Name[br]=Prenestr nevez
|
||||
+Name[brx]=गोदान उइन्ड'(N)
|
||||
+Name[bs]=Novi prozor
|
||||
+Name[ca]=Finestra nova
|
||||
+Name[cak]=K'ak'a' tzuwäch
|
||||
+Name[cs]=Nové okno
|
||||
+Name[cy]=Ffenestr Newydd
|
||||
+Name[da]=Nyt vindue
|
||||
+Name[de]=Neues Fenster
|
||||
+Name[dsb]=Nowe wokno
|
||||
+Name[el]=Νέο παράθυρο
|
||||
+Name[en_GB]=New Window
|
||||
+Name[en_US]=New Window
|
||||
+Name[en_ZA]=New Window
|
||||
+Name[eo]=Nova fenestro
|
||||
+Name[es_AR]=Nueva ventana
|
||||
+Name[es_CL]=Nueva ventana
|
||||
+Name[es_ES]=Nueva ventana
|
||||
+Name[es_MX]=Nueva ventana
|
||||
+Name[et]=Uus aken
|
||||
+Name[eu]=Leiho berria
|
||||
+Name[fa]=پنجره جدید
|
||||
+Name[ff]=Henorde Hesere
|
||||
+Name[fi]=Uusi ikkuna
|
||||
+Name[fr]=Nouvelle fenêtre
|
||||
+Name[fy_NL]=Nij finster
|
||||
+Name[ga_IE]=Fuinneog Nua
|
||||
+Name[gd]=Uinneag ùr
|
||||
+Name[gl]=Nova xanela
|
||||
+Name[gn]=Ovetã pyahu
|
||||
+Name[gu_IN]=નવી વિન્ડો
|
||||
+Name[he]=חלון חדש
|
||||
+Name[hi_IN]=नया विंडो
|
||||
+Name[hr]=Novi prozor
|
||||
+Name[hsb]=Nowe wokno
|
||||
+Name[hu]=Új ablak
|
||||
+Name[hy_AM]=Նոր Պատուհան
|
||||
+Name[id]=Jendela Baru
|
||||
+Name[is]=Nýr gluggi
|
||||
+Name[it]=Nuova finestra
|
||||
+Name[ja]=新しいウィンドウ
|
||||
+Name[ja_JP-mac]=新規ウインドウ
|
||||
+Name[ka]=ახალი ფანჯარა
|
||||
+Name[kk]=Жаңа терезе
|
||||
+Name[km]=បង្អួចថ្មី
|
||||
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
||||
+Name[ko]=새 창
|
||||
+Name[kok]=नवें जनेल
|
||||
+Name[ks]=نئئ وِنڈو
|
||||
+Name[lij]=Neuvo barcon
|
||||
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
||||
+Name[lt]=Naujas langas
|
||||
+Name[ltg]=Jauns lūgs
|
||||
+Name[lv]=Jauns logs
|
||||
+Name[mai]=नव विंडो
|
||||
+Name[mk]=Нов прозорец
|
||||
+Name[ml]=പുതിയ ജാലകം
|
||||
+Name[mr]=नवीन पटल
|
||||
+Name[ms]=Tetingkap Baru
|
||||
+Name[my]=ဝင်းဒိုးအသစ်
|
||||
+Name[nb_NO]=Nytt vindu
|
||||
+Name[ne_NP]=नयाँ सञ्झ्याल
|
||||
+Name[nl]=Nieuw venster
|
||||
+Name[nn_NO]=Nytt vindauge
|
||||
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||
+Name[pl]=Nowe okno
|
||||
+Name[pt_BR]=Nova janela
|
||||
+Name[pt_PT]=Nova janela
|
||||
+Name[rm]=Nova fanestra
|
||||
+Name[ro]=Fereastră nouă
|
||||
+Name[ru]=Новое окно
|
||||
+Name[sat]=नावा विंडो (N)
|
||||
+Name[si]=නව කවුළුවක්
|
||||
+Name[sk]=Nové okno
|
||||
+Name[sl]=Novo okno
|
||||
+Name[son]=Zanfun taaga
|
||||
+Name[sq]=Dritare e Re
|
||||
+Name[sr]=Нови прозор
|
||||
+Name[sv_SE]=Nytt fönster
|
||||
+Name[ta]=புதிய சாளரம்
|
||||
+Name[te]=కొత్త విండో
|
||||
+Name[th]=หน้าต่างใหม่
|
||||
+Name[tr]=Yeni pencere
|
||||
+Name[tsz]=Eraatarakua jimpani
|
||||
+Name[uk]=Нове вікно
|
||||
+Name[ur]=نیا دریچہ
|
||||
+Name[uz]=Yangi oyna
|
||||
+Name[vi]=Cửa sổ mới
|
||||
+Name[wo]=Palanteer bu bees
|
||||
+Name[xh]=Ifestile entsha
|
||||
+Name[zh_CN]=新建窗口
|
||||
+Name[zh_TW]=開新視窗
|
||||
+
|
||||
+
|
||||
+Exec=firefox --new-window %u
|
||||
+
|
||||
+[Desktop Action new-private-window]
|
||||
+Name=Open a New Private Window
|
||||
+Name[ach]=Dirica manyen me mung
|
||||
+Name[af]=Nuwe privaatvenster
|
||||
+Name[an]=Nueva finestra privada
|
||||
+Name[ar]=نافذة خاصة جديدة
|
||||
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||
+Name[ast]=Ventana privada nueva
|
||||
+Name[az]=Yeni Məxfi Pəncərə
|
||||
+Name[be]=Новае акно адасаблення
|
||||
+Name[bg]=Нов прозорец за поверително сърфиране
|
||||
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
||||
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
||||
+Name[br]=Prenestr merdeiñ prevez nevez
|
||||
+Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||
+Name[bs]=Novi privatni prozor
|
||||
+Name[ca]=Finestra privada nova
|
||||
+Name[cak]=K'ak'a' ichinan tzuwäch
|
||||
+Name[cs]=Nové anonymní okno
|
||||
+Name[cy]=Ffenestr Breifat Newydd
|
||||
+Name[da]=Nyt privat vindue
|
||||
+Name[de]=Neues privates Fenster
|
||||
+Name[dsb]=Nowe priwatne wokno
|
||||
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||
+Name[en_GB]=New Private Window
|
||||
+Name[en_US]=New Private Window
|
||||
+Name[en_ZA]=New Private Window
|
||||
+Name[eo]=Nova privata fenestro
|
||||
+Name[es_AR]=Nueva ventana privada
|
||||
+Name[es_CL]=Nueva ventana privada
|
||||
+Name[es_ES]=Nueva ventana privada
|
||||
+Name[es_MX]=Nueva ventana privada
|
||||
+Name[et]=Uus privaatne aken
|
||||
+Name[eu]=Leiho pribatu berria
|
||||
+Name[fa]=پنجره ناشناس جدید
|
||||
+Name[ff]=Henorde Suturo Hesere
|
||||
+Name[fi]=Uusi yksityinen ikkuna
|
||||
+Name[fr]=Nouvelle fenêtre de navigation privée
|
||||
+Name[fy_NL]=Nij priveefinster
|
||||
+Name[ga_IE]=Fuinneog Nua Phríobháideach
|
||||
+Name[gd]=Uinneag phrìobhaideach ùr
|
||||
+Name[gl]=Nova xanela privada
|
||||
+Name[gn]=Ovetã ñemi pyahu
|
||||
+Name[gu_IN]=નવી ખાનગી વિન્ડો
|
||||
+Name[he]=חלון פרטי חדש
|
||||
+Name[hi_IN]=नयी निजी विंडो
|
||||
+Name[hr]=Novi privatni prozor
|
||||
+Name[hsb]=Nowe priwatne wokno
|
||||
+Name[hu]=Új privát ablak
|
||||
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
||||
+Name[id]=Jendela Mode Pribadi Baru
|
||||
+Name[is]=Nýr huliðsgluggi
|
||||
+Name[it]=Nuova finestra anonima
|
||||
+Name[ja]=新しいプライベートウィンドウ
|
||||
+Name[ja_JP-mac]=新規プライベートウインドウ
|
||||
+Name[ka]=ახალი პირადი ფანჯარა
|
||||
+Name[kk]=Жаңа жекелік терезе
|
||||
+Name[km]=បង្អួចឯកជនថ្មី
|
||||
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
||||
+Name[ko]=새 사생활 보호 모드
|
||||
+Name[kok]=नवो खाजगी विंडो
|
||||
+Name[ks]=نْو پرایوٹ وینڈو&
|
||||
+Name[lij]=Neuvo barcon privou
|
||||
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
||||
+Name[lt]=Naujas privataus naršymo langas
|
||||
+Name[ltg]=Jauns privatais lūgs
|
||||
+Name[lv]=Jauns privātais logs
|
||||
+Name[mai]=नया निज विंडो (W)
|
||||
+Name[mk]=Нов приватен прозорец
|
||||
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||
+Name[mr]=नवीन वैयक्तिक पटल
|
||||
+Name[ms]=Tetingkap Persendirian Baharu
|
||||
+Name[my]=New Private Window
|
||||
+Name[nb_NO]=Nytt privat vindu
|
||||
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
||||
+Name[nl]=Nieuw privévenster
|
||||
+Name[nn_NO]=Nytt privat vindauge
|
||||
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||
+Name[pl]=Nowe okno prywatne
|
||||
+Name[pt_BR]=Nova janela privativa
|
||||
+Name[pt_PT]=Nova janela privada
|
||||
+Name[rm]=Nova fanestra privata
|
||||
+Name[ro]=Fereastră privată nouă
|
||||
+Name[ru]=Новое приватное окно
|
||||
+Name[sat]=नावा निजेराक् विंडो (W )
|
||||
+Name[si]=නව පුද්ගලික කවුළුව (W)
|
||||
+Name[sk]=Nové okno v režime Súkromné prehliadanie
|
||||
+Name[sl]=Novo zasebno okno
|
||||
+Name[son]=Sutura zanfun taaga
|
||||
+Name[sq]=Dritare e Re Private
|
||||
+Name[sr]=Нови приватан прозор
|
||||
+Name[sv_SE]=Nytt privat fönster
|
||||
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||
+Name[te]=కొత్త ఆంతరంగిక విండో
|
||||
+Name[th]=หน้าต่างส่วนตัวใหม่
|
||||
+Name[tr]=Yeni gizli pencere
|
||||
+Name[tsz]=Juchiiti eraatarakua jimpani
|
||||
+Name[uk]=Приватне вікно
|
||||
+Name[ur]=نیا نجی دریچہ
|
||||
+Name[uz]=Yangi maxfiy oyna
|
||||
+Name[vi]=Cửa sổ riêng tư mới
|
||||
+Name[wo]=Panlanteeru biir bu bees
|
||||
+Name[xh]=Ifestile yangasese entsha
|
||||
+Name[zh_CN]=新建隐私浏览窗口
|
||||
+Name[zh_TW]=新增隱私視窗
|
||||
+Exec=firefox --private-window %u
|
||||
diff --git a/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop b/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop
|
||||
new file mode 100644
|
||||
index 000000000000..21c3e7aec0f4
|
||||
--- /dev/null
|
||||
+++ b/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.desktop
|
||||
@@ -0,0 +1,386 @@
|
||||
+[Desktop Entry]
|
||||
+Version=1.0
|
||||
+Name=Firefox Web Browser
|
||||
+Name[ar]=متصفح الويب فَيَرفُكْس
|
||||
+Name[ast]=Restolador web Firefox
|
||||
+Name[bn]=ফায়ারফক্স ওয়েব ব্রাউজার
|
||||
+Name[ca]=Navegador web Firefox
|
||||
+Name[cs]=Firefox Webový prohlížeč
|
||||
+Name[da]=Firefox - internetbrowser
|
||||
+Name[el]=Περιηγητής Firefox
|
||||
+Name[es]=Navegador web Firefox
|
||||
+Name[et]=Firefoxi veebibrauser
|
||||
+Name[fa]=مرورگر اینترنتی Firefox
|
||||
+Name[fi]=Firefox-selain
|
||||
+Name[fr]=Navigateur Web Firefox
|
||||
+Name[gl]=Navegador web Firefox
|
||||
+Name[he]=דפדפן האינטרנט Firefox
|
||||
+Name[hr]=Firefox web preglednik
|
||||
+Name[hu]=Firefox webböngésző
|
||||
+Name[it]=Firefox Browser Web
|
||||
+Name[ja]=Firefox ウェブ・ブラウザ
|
||||
+Name[ko]=Firefox 웹 브라우저
|
||||
+Name[ku]=Geroka torê Firefox
|
||||
+Name[lt]=Firefox interneto naršyklė
|
||||
+Name[nb]=Firefox Nettleser
|
||||
+Name[nl]=Firefox webbrowser
|
||||
+Name[nn]=Firefox Nettlesar
|
||||
+Name[no]=Firefox Nettleser
|
||||
+Name[pl]=Przeglądarka WWW Firefox
|
||||
+Name[pt]=Firefox Navegador Web
|
||||
+Name[pt_BR]=Navegador Web Firefox
|
||||
+Name[ro]=Firefox – Navigator Internet
|
||||
+Name[ru]=Веб-браузер Firefox
|
||||
+Name[sk]=Firefox - internetový prehliadač
|
||||
+Name[sl]=Firefox spletni brskalnik
|
||||
+Name[sv]=Firefox webbläsare
|
||||
+Name[tr]=Firefox Web Tarayıcısı
|
||||
+Name[ug]=Firefox توركۆرگۈ
|
||||
+Name[uk]=Веб-браузер Firefox
|
||||
+Name[vi]=Trình duyệt web Firefox
|
||||
+Name[zh_CN]=Firefox 网络浏览器
|
||||
+Name[zh_TW]=Firefox 網路瀏覽器
|
||||
+Comment=Browse the World Wide Web
|
||||
+Comment[ar]=تصفح الشبكة العنكبوتية العالمية
|
||||
+Comment[ast]=Restola pela Rede
|
||||
+Comment[bn]=ইন্টারনেট ব্রাউজ করুন
|
||||
+Comment[ca]=Navegueu per la web
|
||||
+Comment[cs]=Prohlížení stránek World Wide Webu
|
||||
+Comment[da]=Surf på internettet
|
||||
+Comment[de]=Im Internet surfen
|
||||
+Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
|
||||
+Comment[es]=Navegue por la web
|
||||
+Comment[et]=Lehitse veebi
|
||||
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
||||
+Comment[fi]=Selaa Internetin WWW-sivuja
|
||||
+Comment[fr]=Naviguer sur le Web
|
||||
+Comment[gl]=Navegar pola rede
|
||||
+Comment[he]=גלישה ברחבי האינטרנט
|
||||
+Comment[hr]=Pretražite web
|
||||
+Comment[hu]=A világháló böngészése
|
||||
+Comment[it]=Esplora il web
|
||||
+Comment[ja]=ウェブを閲覧します
|
||||
+Comment[ko]=웹을 돌아 다닙니다
|
||||
+Comment[ku]=Li torê bigere
|
||||
+Comment[lt]=Naršykite internete
|
||||
+Comment[nb]=Surf på nettet
|
||||
+Comment[nl]=Verken het internet
|
||||
+Comment[nn]=Surf på nettet
|
||||
+Comment[no]=Surf på nettet
|
||||
+Comment[pl]=Przeglądanie stron WWW
|
||||
+Comment[pt]=Navegue na Internet
|
||||
+Comment[pt_BR]=Navegue na Internet
|
||||
+Comment[ro]=Navigați pe Internet
|
||||
+Comment[ru]=Доступ в Интернет
|
||||
+Comment[sk]=Prehliadanie internetu
|
||||
+Comment[sl]=Brskajte po spletu
|
||||
+Comment[sv]=Surfa på webben
|
||||
+Comment[tr]=İnternet'te Gezinin
|
||||
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
|
||||
+Comment[uk]=Перегляд сторінок Інтернету
|
||||
+Comment[vi]=Để duyệt các trang web
|
||||
+Comment[zh_CN]=浏览互联网
|
||||
+Comment[zh_TW]=瀏覽網際網路
|
||||
+GenericName=Web Browser
|
||||
+GenericName[ar]=متصفح ويب
|
||||
+GenericName[ast]=Restolador Web
|
||||
+GenericName[bn]=ওয়েব ব্রাউজার
|
||||
+GenericName[ca]=Navegador web
|
||||
+GenericName[cs]=Webový prohlížeč
|
||||
+GenericName[da]=Webbrowser
|
||||
+GenericName[el]=Περιηγητής διαδικτύου
|
||||
+GenericName[es]=Navegador web
|
||||
+GenericName[et]=Veebibrauser
|
||||
+GenericName[fa]=مرورگر اینترنتی
|
||||
+GenericName[fi]=WWW-selain
|
||||
+GenericName[fr]=Navigateur Web
|
||||
+GenericName[gl]=Navegador Web
|
||||
+GenericName[he]=דפדפן אינטרנט
|
||||
+GenericName[hr]=Web preglednik
|
||||
+GenericName[hu]=Webböngésző
|
||||
+GenericName[it]=Browser web
|
||||
+GenericName[ja]=ウェブ・ブラウザ
|
||||
+GenericName[ko]=웹 브라우저
|
||||
+GenericName[ku]=Geroka torê
|
||||
+GenericName[lt]=Interneto naršyklė
|
||||
+GenericName[nb]=Nettleser
|
||||
+GenericName[nl]=Webbrowser
|
||||
+GenericName[nn]=Nettlesar
|
||||
+GenericName[no]=Nettleser
|
||||
+GenericName[pl]=Przeglądarka WWW
|
||||
+GenericName[pt]=Navegador Web
|
||||
+GenericName[pt_BR]=Navegador Web
|
||||
+GenericName[ro]=Navigator Internet
|
||||
+GenericName[ru]=Веб-браузер
|
||||
+GenericName[sk]=Internetový prehliadač
|
||||
+GenericName[sl]=Spletni brskalnik
|
||||
+GenericName[sv]=Webbläsare
|
||||
+GenericName[tr]=Web Tarayıcı
|
||||
+GenericName[ug]=توركۆرگۈ
|
||||
+GenericName[uk]=Веб-браузер
|
||||
+GenericName[vi]=Trình duyệt Web
|
||||
+GenericName[zh_CN]=网络浏览器
|
||||
+GenericName[zh_TW]=網路瀏覽器
|
||||
+Keywords=Internet;WWW;Browser;Web;Explorer
|
||||
+Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب
|
||||
+Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
|
||||
+Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
|
||||
+Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer
|
||||
+Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
|
||||
+Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
|
||||
+Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;Firefox;Φιρεφοχ;Ιντερνετ
|
||||
+Keywords[es]=Explorador;Internet;WWW
|
||||
+Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
|
||||
+Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
|
||||
+Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
|
||||
+Keywords[hr]=Internet;WWW;preglednik;Web
|
||||
+Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
|
||||
+Keywords[it]=Internet;WWW;Browser;Web;Navigatore
|
||||
+Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
|
||||
+Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ
|
||||
+Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
|
||||
+Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
|
||||
+Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
|
||||
+Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
|
||||
+Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис
|
||||
+Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer
|
||||
+Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
|
||||
+Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
|
||||
+Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд
|
||||
+Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web
|
||||
+Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;Firefox;ff;互联网;网站;
|
||||
+Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐
|
||||
+Exec=firefox %u
|
||||
+Icon=org.mozilla.firefox
|
||||
+Terminal=false
|
||||
+Type=Application
|
||||
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||
+StartupNotify=true
|
||||
+Categories=Network;WebBrowser;
|
||||
+Actions=new-window;new-private-window;profile-manager-window;
|
||||
+StartupWMClass=firefox
|
||||
+
|
||||
+
|
||||
+[Desktop Action new-window]
|
||||
+Name=Open a New Window
|
||||
+Name[ach]=Dirica manyen
|
||||
+Name[af]=Nuwe venster
|
||||
+Name[an]=Nueva finestra
|
||||
+Name[ar]=نافذة جديدة
|
||||
+Name[as]=নতুন উইন্ডো
|
||||
+Name[ast]=Ventana nueva
|
||||
+Name[az]=Yeni Pəncərə
|
||||
+Name[be]=Новае акно
|
||||
+Name[bg]=Нов прозорец
|
||||
+Name[bn_BD]=নতুন উইন্ডো (N)
|
||||
+Name[bn_IN]=নতুন উইন্ডো
|
||||
+Name[br]=Prenestr nevez
|
||||
+Name[brx]=गोदान उइन्ड'(N)
|
||||
+Name[bs]=Novi prozor
|
||||
+Name[ca]=Finestra nova
|
||||
+Name[cak]=K'ak'a' tzuwäch
|
||||
+Name[cs]=Nové okno
|
||||
+Name[cy]=Ffenestr Newydd
|
||||
+Name[da]=Nyt vindue
|
||||
+Name[de]=Neues Fenster
|
||||
+Name[dsb]=Nowe wokno
|
||||
+Name[el]=Νέο παράθυρο
|
||||
+Name[en_GB]=New Window
|
||||
+Name[en_US]=New Window
|
||||
+Name[en_ZA]=New Window
|
||||
+Name[eo]=Nova fenestro
|
||||
+Name[es_AR]=Nueva ventana
|
||||
+Name[es_CL]=Nueva ventana
|
||||
+Name[es_ES]=Nueva ventana
|
||||
+Name[es_MX]=Nueva ventana
|
||||
+Name[et]=Uus aken
|
||||
+Name[eu]=Leiho berria
|
||||
+Name[fa]=پنجره جدید
|
||||
+Name[ff]=Henorde Hesere
|
||||
+Name[fi]=Uusi ikkuna
|
||||
+Name[fr]=Nouvelle fenêtre
|
||||
+Name[fy_NL]=Nij finster
|
||||
+Name[ga_IE]=Fuinneog Nua
|
||||
+Name[gd]=Uinneag ùr
|
||||
+Name[gl]=Nova xanela
|
||||
+Name[gn]=Ovetã pyahu
|
||||
+Name[gu_IN]=નવી વિન્ડો
|
||||
+Name[he]=חלון חדש
|
||||
+Name[hi_IN]=नया विंडो
|
||||
+Name[hr]=Novi prozor
|
||||
+Name[hsb]=Nowe wokno
|
||||
+Name[hu]=Új ablak
|
||||
+Name[hy_AM]=Նոր Պատուհան
|
||||
+Name[id]=Jendela Baru
|
||||
+Name[is]=Nýr gluggi
|
||||
+Name[it]=Nuova finestra
|
||||
+Name[ja]=新しいウィンドウ
|
||||
+Name[ja_JP]=新規ウインドウ
|
||||
+Name[ka]=ახალი ფანჯარა
|
||||
+Name[kk]=Жаңа терезе
|
||||
+Name[km]=បង្អួចថ្មី
|
||||
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
||||
+Name[ko]=새 창
|
||||
+Name[kok]=नवें जनेल
|
||||
+Name[ks]=نئئ وِنڈو
|
||||
+Name[lij]=Neuvo barcon
|
||||
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
||||
+Name[lt]=Naujas langas
|
||||
+Name[ltg]=Jauns lūgs
|
||||
+Name[lv]=Jauns logs
|
||||
+Name[mai]=नव विंडो
|
||||
+Name[mk]=Нов прозорец
|
||||
+Name[ml]=പുതിയ ജാലകം
|
||||
+Name[mr]=नवीन पटल
|
||||
+Name[ms]=Tetingkap Baru
|
||||
+Name[my]=ဝင်းဒိုးအသစ်
|
||||
+Name[nb_NO]=Nytt vindu
|
||||
+Name[ne_NP]=नयाँ सञ्झ्याल
|
||||
+Name[nl]=Nieuw venster
|
||||
+Name[nn_NO]=Nytt vindauge
|
||||
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||
+Name[pl]=Nowe okno
|
||||
+Name[pt_BR]=Nova janela
|
||||
+Name[pt_PT]=Nova janela
|
||||
+Name[rm]=Nova fanestra
|
||||
+Name[ro]=Fereastră nouă
|
||||
+Name[ru]=Новое окно
|
||||
+Name[sat]=नावा विंडो (N)
|
||||
+Name[si]=නව කවුළුවක්
|
||||
+Name[sk]=Nové okno
|
||||
+Name[sl]=Novo okno
|
||||
+Name[son]=Zanfun taaga
|
||||
+Name[sq]=Dritare e Re
|
||||
+Name[sr]=Нови прозор
|
||||
+Name[sv_SE]=Nytt fönster
|
||||
+Name[ta]=புதிய சாளரம்
|
||||
+Name[te]=కొత్త విండో
|
||||
+Name[th]=หน้าต่างใหม่
|
||||
+Name[tr]=Yeni pencere
|
||||
+Name[tsz]=Eraatarakua jimpani
|
||||
+Name[uk]=Нове вікно
|
||||
+Name[ur]=نیا دریچہ
|
||||
+Name[uz]=Yangi oyna
|
||||
+Name[vi]=Cửa sổ mới
|
||||
+Name[wo]=Palanteer bu bees
|
||||
+Name[xh]=Ifestile entsha
|
||||
+Name[zh_CN]=新建窗口
|
||||
+Name[zh_TW]=開新視窗
|
||||
+Exec=firefox --new-window %u
|
||||
+
|
||||
+[Desktop Action new-private-window]
|
||||
+Name=Open a New Private Window
|
||||
+Name[ach]=Dirica manyen me mung
|
||||
+Name[af]=Nuwe privaatvenster
|
||||
+Name[an]=Nueva finestra privada
|
||||
+Name[ar]=نافذة خاصة جديدة
|
||||
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||
+Name[ast]=Ventana privada nueva
|
||||
+Name[az]=Yeni Məxfi Pəncərə
|
||||
+Name[be]=Новае акно адасаблення
|
||||
+Name[bg]=Нов прозорец за поверително сърфиране
|
||||
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
||||
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
||||
+Name[br]=Prenestr merdeiñ prevez nevez
|
||||
+Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||
+Name[bs]=Novi privatni prozor
|
||||
+Name[ca]=Finestra privada nova
|
||||
+Name[cak]=K'ak'a' ichinan tzuwäch
|
||||
+Name[cs]=Nové anonymní okno
|
||||
+Name[cy]=Ffenestr Breifat Newydd
|
||||
+Name[da]=Nyt privat vindue
|
||||
+Name[de]=Neues privates Fenster
|
||||
+Name[dsb]=Nowe priwatne wokno
|
||||
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||
+Name[en_GB]=New Private Window
|
||||
+Name[en_US]=New Private Window
|
||||
+Name[en_ZA]=New Private Window
|
||||
+Name[eo]=Nova privata fenestro
|
||||
+Name[es_AR]=Nueva ventana privada
|
||||
+Name[es_CL]=Nueva ventana privada
|
||||
+Name[es_ES]=Nueva ventana privada
|
||||
+Name[es_MX]=Nueva ventana privada
|
||||
+Name[et]=Uus privaatne aken
|
||||
+Name[eu]=Leiho pribatu berria
|
||||
+Name[fa]=پنجره ناشناس جدید
|
||||
+Name[ff]=Henorde Suturo Hesere
|
||||
+Name[fi]=Uusi yksityinen ikkuna
|
||||
+Name[fr]=Nouvelle fenêtre de navigation privée
|
||||
+Name[fy_NL]=Nij priveefinster
|
||||
+Name[ga_IE]=Fuinneog Nua Phríobháideach
|
||||
+Name[gd]=Uinneag phrìobhaideach ùr
|
||||
+Name[gl]=Nova xanela privada
|
||||
+Name[gn]=Ovetã ñemi pyahu
|
||||
+Name[gu_IN]=નવી ખાનગી વિન્ડો
|
||||
+Name[he]=חלון פרטי חדש
|
||||
+Name[hi_IN]=नयी निजी विंडो
|
||||
+Name[hr]=Novi privatni prozor
|
||||
+Name[hsb]=Nowe priwatne wokno
|
||||
+Name[hu]=Új privát ablak
|
||||
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
||||
+Name[id]=Jendela Mode Pribadi Baru
|
||||
+Name[is]=Nýr huliðsgluggi
|
||||
+Name[it]=Nuova finestra anonima
|
||||
+Name[ja]=新しいプライベートウィンドウ
|
||||
+Name[ja_JP]=新規プライベートウインドウ
|
||||
+Name[ka]=ახალი პირადი ფანჯარა
|
||||
+Name[kk]=Жаңа жекелік терезе
|
||||
+Name[km]=បង្អួចឯកជនថ្មី
|
||||
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
||||
+Name[ko]=새 사생활 보호 모드
|
||||
+Name[kok]=नवो खाजगी विंडो
|
||||
+Name[ks]=نْو پرایوٹ وینڈو&
|
||||
+Name[lij]=Neuvo barcon privou
|
||||
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
||||
+Name[lt]=Naujas privataus naršymo langas
|
||||
+Name[ltg]=Jauns privatais lūgs
|
||||
+Name[lv]=Jauns privātais logs
|
||||
+Name[mai]=नया निज विंडो (W)
|
||||
+Name[mk]=Нов приватен прозорец
|
||||
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||
+Name[mr]=नवीन वैयक्तिक पटल
|
||||
+Name[ms]=Tetingkap Persendirian Baharu
|
||||
+Name[my]=New Private Window
|
||||
+Name[nb_NO]=Nytt privat vindu
|
||||
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
||||
+Name[nl]=Nieuw privévenster
|
||||
+Name[nn_NO]=Nytt privat vindauge
|
||||
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||
+Name[pl]=Nowe okno prywatne
|
||||
+Name[pt_BR]=Nova janela privativa
|
||||
+Name[pt_PT]=Nova janela privada
|
||||
+Name[rm]=Nova fanestra privata
|
||||
+Name[ro]=Fereastră privată nouă
|
||||
+Name[ru]=Новое приватное окно
|
||||
+Name[sat]=नावा निजेराक् विंडो (W )
|
||||
+Name[si]=නව පුද්ගලික කවුළුව (W)
|
||||
+Name[sk]=Nové okno v režime Súkromné prehliadanie
|
||||
+Name[sl]=Novo zasebno okno
|
||||
+Name[son]=Sutura zanfun taaga
|
||||
+Name[sq]=Dritare e Re Private
|
||||
+Name[sr]=Нови приватан прозор
|
||||
+Name[sv_SE]=Nytt privat fönster
|
||||
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||
+Name[te]=కొత్త ఆంతరంగిక విండో
|
||||
+Name[th]=หน้าต่างส่วนตัวใหม่
|
||||
+Name[tr]=Yeni gizli pencere
|
||||
+Name[tsz]=Juchiiti eraatarakua jimpani
|
||||
+Name[uk]=Приватне вікно
|
||||
+Name[ur]=نیا نجی دریچہ
|
||||
+Name[uz]=Yangi maxfiy oyna
|
||||
+Name[vi]=Cửa sổ riêng tư mới
|
||||
+Name[wo]=Panlanteeru biir bu bees
|
||||
+Name[xh]=Ifestile yangasese entsha
|
||||
+Name[zh_CN]=新建隐私浏览窗口
|
||||
+Name[zh_TW]=新增隱私視窗
|
||||
+Exec=firefox --private-window %u
|
||||
+
|
||||
+[Desktop Action profile-manager-window]
|
||||
+Name=Open the Profile Manager
|
||||
+Name[cs]=Správa profilů
|
||||
+Name[de]=Profilverwaltung öffnen
|
||||
+Name[es]=Abrir el Gestor de Perfiles
|
||||
+Name[fr]=Ouvrir le gestionnaire de profils
|
||||
+Exec=firefox --ProfileManager
|
||||
diff --git a/taskcluster/docker/firefox-snap/firefox.desktop b/taskcluster/docker/firefox-snap/firefox.desktop
|
||||
new file mode 100644
|
||||
index 000000000000..73e36e8d83de
|
||||
--- /dev/null
|
||||
+++ b/taskcluster/docker/firefox-snap/firefox.desktop
|
||||
@@ -0,0 +1,219 @@
|
||||
+[Desktop Entry]
|
||||
+Version=1.0
|
||||
+Name=Firefox Web Browser
|
||||
+Name[ar]=متصفح الويب فَيَرفُكْس
|
||||
+Name[ast]=Restolador web Firefox
|
||||
+Name[bn]=ফায়ারফক্স ওয়েব ব্রাউজার
|
||||
+Name[ca]=Navegador web Firefox
|
||||
+Name[cs]=Firefox Webový prohlížeč
|
||||
+Name[da]=Firefox - internetbrowser
|
||||
+Name[el]=Περιηγητής Firefox
|
||||
+Name[es]=Navegador web Firefox
|
||||
+Name[et]=Firefoxi veebibrauser
|
||||
+Name[fa]=مرورگر اینترنتی Firefox
|
||||
+Name[fi]=Firefox-selain
|
||||
+Name[fr]=Navigateur Web Firefox
|
||||
+Name[gl]=Navegador web Firefox
|
||||
+Name[he]=דפדפן האינטרנט Firefox
|
||||
+Name[hr]=Firefox web preglednik
|
||||
+Name[hu]=Firefox webböngésző
|
||||
+Name[it]=Firefox Browser Web
|
||||
+Name[ja]=Firefox ウェブ・ブラウザ
|
||||
+Name[ko]=Firefox 웹 브라우저
|
||||
+Name[ku]=Geroka torê Firefox
|
||||
+Name[lt]=Firefox interneto naršyklė
|
||||
+Name[nb]=Firefox Nettleser
|
||||
+Name[nl]=Firefox webbrowser
|
||||
+Name[nn]=Firefox Nettlesar
|
||||
+Name[no]=Firefox Nettleser
|
||||
+Name[pl]=Przeglądarka WWW Firefox
|
||||
+Name[pt]=Firefox Navegador Web
|
||||
+Name[pt_BR]=Navegador Web Firefox
|
||||
+Name[ro]=Firefox – Navigator Internet
|
||||
+Name[ru]=Веб-браузер Firefox
|
||||
+Name[sk]=Firefox - internetový prehliadač
|
||||
+Name[sl]=Firefox spletni brskalnik
|
||||
+Name[sv]=Firefox webbläsare
|
||||
+Name[tr]=Firefox Web Tarayıcısı
|
||||
+Name[ug]=Firefox توركۆرگۈ
|
||||
+Name[uk]=Веб-браузер Firefox
|
||||
+Name[vi]=Trình duyệt web Firefox
|
||||
+Name[zh_CN]=Firefox 网络浏览器
|
||||
+Name[zh_TW]=Firefox 網路瀏覽器
|
||||
+Comment=Browse the World Wide Web
|
||||
+Comment[ar]=تصفح الشبكة العنكبوتية العالمية
|
||||
+Comment[ast]=Restola pela Rede
|
||||
+Comment[bn]=ইন্টারনেট ব্রাউজ করুন
|
||||
+Comment[ca]=Navegueu per la web
|
||||
+Comment[cs]=Prohlížení stránek World Wide Webu
|
||||
+Comment[da]=Surf på internettet
|
||||
+Comment[de]=Im Internet surfen
|
||||
+Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
|
||||
+Comment[es]=Navegue por la web
|
||||
+Comment[et]=Lehitse veebi
|
||||
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
||||
+Comment[fi]=Selaa Internetin WWW-sivuja
|
||||
+Comment[fr]=Naviguer sur le Web
|
||||
+Comment[gl]=Navegar pola rede
|
||||
+Comment[he]=גלישה ברחבי האינטרנט
|
||||
+Comment[hr]=Pretražite web
|
||||
+Comment[hu]=A világháló böngészése
|
||||
+Comment[it]=Esplora il web
|
||||
+Comment[ja]=ウェブを閲覧します
|
||||
+Comment[ko]=웹을 돌아 다닙니다
|
||||
+Comment[ku]=Li torê bigere
|
||||
+Comment[lt]=Naršykite internete
|
||||
+Comment[nb]=Surf på nettet
|
||||
+Comment[nl]=Verken het internet
|
||||
+Comment[nn]=Surf på nettet
|
||||
+Comment[no]=Surf på nettet
|
||||
+Comment[pl]=Przeglądanie stron WWW
|
||||
+Comment[pt]=Navegue na Internet
|
||||
+Comment[pt_BR]=Navegue na Internet
|
||||
+Comment[ro]=Navigați pe Internet
|
||||
+Comment[ru]=Доступ в Интернет
|
||||
+Comment[sk]=Prehliadanie internetu
|
||||
+Comment[sl]=Brskajte po spletu
|
||||
+Comment[sv]=Surfa på webben
|
||||
+Comment[tr]=İnternet'te Gezinin
|
||||
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
|
||||
+Comment[uk]=Перегляд сторінок Інтернету
|
||||
+Comment[vi]=Để duyệt các trang web
|
||||
+Comment[zh_CN]=浏览互联网
|
||||
+Comment[zh_TW]=瀏覽網際網路
|
||||
+GenericName=Web Browser
|
||||
+GenericName[ar]=متصفح ويب
|
||||
+GenericName[ast]=Restolador Web
|
||||
+GenericName[bn]=ওয়েব ব্রাউজার
|
||||
+GenericName[ca]=Navegador web
|
||||
+GenericName[cs]=Webový prohlížeč
|
||||
+GenericName[da]=Webbrowser
|
||||
+GenericName[el]=Περιηγητής διαδικτύου
|
||||
+GenericName[es]=Navegador web
|
||||
+GenericName[et]=Veebibrauser
|
||||
+GenericName[fa]=مرورگر اینترنتی
|
||||
+GenericName[fi]=WWW-selain
|
||||
+GenericName[fr]=Navigateur Web
|
||||
+GenericName[gl]=Navegador Web
|
||||
+GenericName[he]=דפדפן אינטרנט
|
||||
+GenericName[hr]=Web preglednik
|
||||
+GenericName[hu]=Webböngésző
|
||||
+GenericName[it]=Browser web
|
||||
+GenericName[ja]=ウェブ・ブラウザ
|
||||
+GenericName[ko]=웹 브라우저
|
||||
+GenericName[ku]=Geroka torê
|
||||
+GenericName[lt]=Interneto naršyklė
|
||||
+GenericName[nb]=Nettleser
|
||||
+GenericName[nl]=Webbrowser
|
||||
+GenericName[nn]=Nettlesar
|
||||
+GenericName[no]=Nettleser
|
||||
+GenericName[pl]=Przeglądarka WWW
|
||||
+GenericName[pt]=Navegador Web
|
||||
+GenericName[pt_BR]=Navegador Web
|
||||
+GenericName[ro]=Navigator Internet
|
||||
+GenericName[ru]=Веб-браузер
|
||||
+GenericName[sk]=Internetový prehliadač
|
||||
+GenericName[sl]=Spletni brskalnik
|
||||
+GenericName[sv]=Webbläsare
|
||||
+GenericName[tr]=Web Tarayıcı
|
||||
+GenericName[ug]=توركۆرگۈ
|
||||
+GenericName[uk]=Веб-браузер
|
||||
+GenericName[vi]=Trình duyệt Web
|
||||
+GenericName[zh_CN]=网络浏览器
|
||||
+GenericName[zh_TW]=網路瀏覽器
|
||||
+Keywords=Internet;WWW;Browser;Web;Explorer
|
||||
+Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب
|
||||
+Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
|
||||
+Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
|
||||
+Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer
|
||||
+Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
|
||||
+Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
|
||||
+Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;Firefox;Φιρεφοχ;Ιντερνετ
|
||||
+Keywords[es]=Explorador;Internet;WWW
|
||||
+Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
|
||||
+Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
|
||||
+Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
|
||||
+Keywords[hr]=Internet;WWW;preglednik;Web
|
||||
+Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
|
||||
+Keywords[it]=Internet;WWW;Browser;Web;Navigatore
|
||||
+Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
|
||||
+Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ
|
||||
+Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
|
||||
+Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
|
||||
+Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
|
||||
+Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
|
||||
+Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис
|
||||
+Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer
|
||||
+Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
|
||||
+Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
|
||||
+Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд
|
||||
+Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web
|
||||
+Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;Firefox;ff;互联网;网站;
|
||||
+Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐
|
||||
+Exec=firefox %u
|
||||
+Terminal=false
|
||||
+X-MultipleArgs=false
|
||||
+Type=Application
|
||||
+Icon=/browser/chrome/icons/default/default128.png
|
||||
+Categories=GNOME;GTK;Network;WebBrowser;
|
||||
+MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
|
||||
+StartupNotify=true
|
||||
+Actions=NewWindow;NewPrivateWindow;
|
||||
+
|
||||
+[Desktop Action NewWindow]
|
||||
+Name=Open a New Window
|
||||
+Name[ar]=افتح نافذة جديدة
|
||||
+Name[ast]=Abrir una ventana nueva
|
||||
+Name[bn]=Abrir una ventana nueva
|
||||
+Name[ca]=Obre una finestra nova
|
||||
+Name[cs]=Otevřít nové okno
|
||||
+Name[da]=Åbn et nyt vindue
|
||||
+Name[de]=Ein neues Fenster öffnen
|
||||
+Name[el]=Άνοιγμα νέου παραθύρου
|
||||
+Name[es]=Abrir una ventana nueva
|
||||
+Name[fi]=Avaa uusi ikkuna
|
||||
+Name[fr]=Ouvrir une nouvelle fenêtre
|
||||
+Name[gl]=Abrir unha nova xanela
|
||||
+Name[he]=פתיחת חלון חדש
|
||||
+Name[hr]=Otvori novi prozor
|
||||
+Name[hu]=Új ablak nyitása
|
||||
+Name[it]=Apri una nuova finestra
|
||||
+Name[ja]=新しいウィンドウを開く
|
||||
+Name[ko]=새 창 열기
|
||||
+Name[ku]=Paceyeke nû veke
|
||||
+Name[lt]=Atverti naują langą
|
||||
+Name[nb]=Åpne et nytt vindu
|
||||
+Name[nl]=Nieuw venster openen
|
||||
+Name[pt]=Abrir nova janela
|
||||
+Name[pt_BR]=Abrir nova janela
|
||||
+Name[ro]=Deschide o fereastră nouă
|
||||
+Name[ru]=Новое окно
|
||||
+Name[sk]=Otvoriť nové okno
|
||||
+Name[sl]=Odpri novo okno
|
||||
+Name[sv]=Öppna ett nytt fönster
|
||||
+Name[tr]=Yeni pencere aç
|
||||
+Name[ug]=يېڭى كۆزنەك ئېچىش
|
||||
+Name[uk]=Відкрити нове вікно
|
||||
+Name[vi]=Mở cửa sổ mới
|
||||
+Name[zh_CN]=新建窗口
|
||||
+Name[zh_TW]=開啟新視窗
|
||||
+Exec=firefox -new-window
|
||||
+
|
||||
+[Desktop Action NewPrivateWindow]
|
||||
+Name=Open a New Private Window
|
||||
+Name[ar]=افتح نافذة جديدة للتصفح الخاص
|
||||
+Name[ca]=Obre una finestra nova en mode d'incògnit
|
||||
+Name[de]=Ein neues privates Fenster öffnen
|
||||
+Name[es]=Abrir una ventana privada nueva
|
||||
+Name[fi]=Avaa uusi yksityinen ikkuna
|
||||
+Name[fr]=Ouvrir une nouvelle fenêtre de navigation privée
|
||||
+Name[he]=פתיחת חלון גלישה פרטית חדש
|
||||
+Name[hu]=Új privát ablak nyitása
|
||||
+Name[it]=Apri una nuova finestra anonima
|
||||
+Name[nb]=Åpne et nytt privat vindu
|
||||
+Name[ru]=Новое приватное окно
|
||||
+Name[sl]=Odpri novo okno zasebnega brskanja
|
||||
+Name[tr]=Yeni bir pencere aç
|
||||
+Name[uk]=Відкрити нове вікно у потайливому режимі
|
||||
+Name[zh_TW]=開啟新隱私瀏覽視窗
|
||||
+Exec=firefox -private-window
|
||||
--
|
||||
2.39.5 (Apple Git-154)
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
Replace "/usr/lib/mozilla" (the system-wide directory for extensions and
|
||||
native manifests) with "$ICECAT_SYSTEM_DIR".
|
||||
|
||||
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
||||
index e3be04e70c..a3501c4f44 100644
|
||||
--- a/toolkit/xre/nsXREDirProvider.cpp
|
||||
+++ b/toolkit/xre/nsXREDirProvider.cpp
|
||||
@@ -280,24 +280,11 @@ nsresult nsXREDirProvider::GetBackgroundTasksProfilesRootDir(
|
||||
static nsresult GetSystemParentDirectory(nsIFile** aFile) {
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIFile> localDir;
|
||||
-# if defined(XP_MACOSX)
|
||||
- rv = GetOSXFolderType(kOnSystemDisk, kApplicationSupportFolderType,
|
||||
- getter_AddRefs(localDir));
|
||||
- if (NS_SUCCEEDED(rv)) {
|
||||
- rv = localDir->AppendNative("Mozilla"_ns);
|
||||
- }
|
||||
-# else
|
||||
- constexpr auto dirname =
|
||||
-# ifdef HAVE_USR_LIB64_DIR
|
||||
- "/usr/lib64/mozilla"_ns
|
||||
-# elif defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||
- "/usr/local/lib/mozilla"_ns
|
||||
-# else
|
||||
- "/usr/lib/mozilla"_ns
|
||||
-# endif
|
||||
- ;
|
||||
- rv = NS_NewNativeLocalFile(dirname, getter_AddRefs(localDir));
|
||||
-# endif
|
||||
+ const char* systemParentDir = getenv("ICECAT_SYSTEM_DIR");
|
||||
+ if (!systemParentDir || !*systemParentDir) return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ rv = NS_NewNativeLocalFile(nsDependentCString(systemParentDir),
|
||||
+ getter_AddRefs(localDir));
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
localDir.forget(aFile);
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages playonlinux)
|
||||
#:use-module ((guix licenses) :prefix license:)
|
||||
|
|
|
@ -1,12 +1,26 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
|
||||
;;; Copyright © 2021 Kahka F
|
||||
;;; Copyright © 2021, 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages printers)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages cups)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -15,147 +29,149 @@
|
|||
|
||||
(define-public hplip-plugin
|
||||
(package
|
||||
(inherit hplip)
|
||||
(name "hplip-plugin")
|
||||
(description "Hewlett-Packard printer drivers with nonfree plugin.")
|
||||
(source (origin
|
||||
(inherit (package-source hplip))
|
||||
(snippet
|
||||
(delete '(for-each
|
||||
delete-file
|
||||
(find-files "." (lambda (file stat)
|
||||
(elf-file? file))))
|
||||
(origin-snippet (package-source hplip))))))
|
||||
(inputs (alist-delete "python-pyqt" (package-inputs hplip)))
|
||||
(native-inputs
|
||||
(append
|
||||
`(("hplip-plugin"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://developers.hp.com/sites/default/files/hplip-"
|
||||
(package-version hplip) "-plugin.run"))
|
||||
;; TODO: Since this needs to be updated on every update to Guix's
|
||||
;; hplip in order to build, might be better to decouple this
|
||||
;; package from hplip. In the meantime, update this hash when
|
||||
;; hplip is updated in Guix.
|
||||
(sha256
|
||||
(base32
|
||||
"0zq66hm7ni6w1c3cxy1gxrxzvyvfn0lhjnia8p4azvz2r309j9s0")))))
|
||||
(package-native-inputs hplip)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments hplip)
|
||||
((#:configure-flags cf)
|
||||
#~(delete "--enable-qt5" #$cf))
|
||||
((#:phases ph)
|
||||
#~(modify-phases #$ph
|
||||
(replace 'fix-hard-coded-file-names
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
;; FIXME: use merged ppds (I think actually only
|
||||
;; drvs need to be merged).
|
||||
(cupsdir (assoc-ref inputs "cups-minimal")))
|
||||
(substitute* "base/g.py"
|
||||
(("'/usr/share;[^']*'")
|
||||
(string-append "'" cupsdir "/share'"))
|
||||
(("'/etc/hp/hplip.conf'")
|
||||
(string-append "'" out
|
||||
"/etc/hp/hplip.conf" "'"))
|
||||
(("/var/lib/hp")
|
||||
(string-append
|
||||
out
|
||||
"/var/lib/hp")))
|
||||
(inherit hplip)
|
||||
(name "hplip-plugin")
|
||||
(description "Hewlett-Packard printer drivers with nonfree plugin.")
|
||||
(source (origin (inherit (package-source hplip))
|
||||
(snippet
|
||||
(delete '(for-each
|
||||
delete-file
|
||||
(find-files "." (lambda
|
||||
(file stat)
|
||||
(elf-file? file))))
|
||||
(origin-snippet (package-source hplip))))))
|
||||
(inputs (alist-delete "python-pyqt" (package-inputs hplip)))
|
||||
(native-inputs
|
||||
(append
|
||||
`(("hplip-plugin"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://developers.hp.com/sites/default/files/hplip-"
|
||||
(package-version hplip) "-plugin.run"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ffqnmmghxqclv66qq14wypfha2xalcrbrjw0dqkmpvbnzwbn49g")))))
|
||||
(package-native-inputs hplip)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
(package-arguments hplip)
|
||||
((#:configure-flags cf)
|
||||
`(delete "--enable-qt5" ,cf))
|
||||
((#:phases ph)
|
||||
`(modify-phases
|
||||
,ph
|
||||
(replace
|
||||
'fix-hard-coded-file-names
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
;; FIXME: use merged ppds (I think actually only
|
||||
;; drvs need to be merged).
|
||||
(cupsdir (assoc-ref inputs "cups-minimal")))
|
||||
(substitute* "base/g.py"
|
||||
(("'/usr/share;[^']*'")
|
||||
(string-append "'" cupsdir "/share'"))
|
||||
(("'/etc/hp/hplip.conf'")
|
||||
(string-append "'" out
|
||||
"/etc/hp/hplip.conf" "'"))
|
||||
(("/var/lib/hp")
|
||||
(string-append
|
||||
out
|
||||
"/var/lib/hp")))
|
||||
|
||||
(substitute* "Makefile.in"
|
||||
(("[[:blank:]]check-plugin\\.py[[:blank:]]") " ")
|
||||
;; FIXME Use beginning-of-word in regexp.
|
||||
(("[[:blank:]]plugin\\.py[[:blank:]]") " ")
|
||||
(("/usr/include/libusb-1.0")
|
||||
(string-append (assoc-ref inputs "libusb")
|
||||
"/include/libusb-1.0"))
|
||||
(("hplip_statedir =.*$")
|
||||
;; Don't bail out while trying to create
|
||||
;; /var/lib/hplip. We can safely change its value
|
||||
;; here because it's hard-coded in the code anyway.
|
||||
"hplip_statedir = $(prefix)/var/lib/hp\n")
|
||||
(("hplip_confdir = /etc/hp")
|
||||
;; This is only used for installing the default config.
|
||||
(string-append "hplip_confdir = " out
|
||||
"/etc/hp"))
|
||||
(("halpredir = /usr/share/hal/fdi/preprobe/10osvendor")
|
||||
;; We don't use hal.
|
||||
(string-append "halpredir = " out
|
||||
"/share/hal/fdi/preprobe/10osvendor"))
|
||||
(("rulesdir = /etc/udev/rules.d")
|
||||
;; udev rules will be merged by base service.
|
||||
(string-append "rulesdir = " out
|
||||
"/lib/udev/rules.d"))
|
||||
(("rulessystemdir = /usr/lib/systemd/system")
|
||||
;; We don't use systemd.
|
||||
(string-append "rulessystemdir = " out
|
||||
"/lib/systemd/system"))
|
||||
(("/etc/sane.d")
|
||||
(string-append out "/etc/sane.d")))
|
||||
(substitute* "Makefile.in"
|
||||
(("[[:blank:]]check-plugin\\.py[[:blank:]]") " ")
|
||||
;; FIXME Use beginning-of-word in regexp.
|
||||
(("[[:blank:]]plugin\\.py[[:blank:]]") " ")
|
||||
(("/usr/include/libusb-1.0")
|
||||
(string-append (assoc-ref inputs "libusb")
|
||||
"/include/libusb-1.0"))
|
||||
(("hplip_statedir =.*$")
|
||||
;; Don't bail out while trying to create
|
||||
;; /var/lib/hplip. We can safely change its value
|
||||
;; here because it's hard-coded in the code anyway.
|
||||
"hplip_statedir = $(prefix)/var/lib/hp\n")
|
||||
(("hplip_confdir = /etc/hp")
|
||||
;; This is only used for installing the default config.
|
||||
(string-append "hplip_confdir = " out
|
||||
"/etc/hp"))
|
||||
(("halpredir = /usr/share/hal/fdi/preprobe/10osvendor")
|
||||
;; We don't use hal.
|
||||
(string-append "halpredir = " out
|
||||
"/share/hal/fdi/preprobe/10osvendor"))
|
||||
(("rulesdir = /etc/udev/rules.d")
|
||||
;; udev rules will be merged by base service.
|
||||
(string-append "rulesdir = " out
|
||||
"/lib/udev/rules.d"))
|
||||
(("rulessystemdir = /usr/lib/systemd/system")
|
||||
;; We don't use systemd.
|
||||
(string-append "rulessystemdir = " out
|
||||
"/lib/systemd/system"))
|
||||
(("/etc/sane.d")
|
||||
(string-append out "/etc/sane.d")))
|
||||
|
||||
(substitute* "common/utils.h"
|
||||
(("/var/lib/hp")
|
||||
(string-append
|
||||
out
|
||||
"/var/lib/hp"))))))
|
||||
(add-after 'install-models-dat 'install-plugins
|
||||
(lambda* (#:key outputs system inputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(state-dir (string-append out "/var/lib/hp"))
|
||||
(hp-arch (assoc-ref
|
||||
'(("i686-linux" . "x86_32")
|
||||
("x86_64-linux" . "x86_64")
|
||||
("armhf-linux" . "arm32")
|
||||
("aarch64-linux" . "aarch64"))
|
||||
system)))
|
||||
(unless hp-arch
|
||||
(error (string-append
|
||||
"HPLIP plugin not supported on "
|
||||
system)))
|
||||
(invoke "sh" (assoc-ref inputs "hplip-plugin")
|
||||
"--noexec" "--keep")
|
||||
(chdir "plugin_tmp")
|
||||
(install-file "plugin.spec"
|
||||
(string-append out "/share/hplip/"))
|
||||
(substitute* "common/utils.h"
|
||||
(("/var/lib/hp")
|
||||
(string-append
|
||||
out
|
||||
"/var/lib/hp")))
|
||||
#t)))
|
||||
(add-after
|
||||
'install-models-dat 'install-plugins
|
||||
(lambda* (#:key outputs system inputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(state-dir (string-append out "/var/lib/hp"))
|
||||
(hp-arch (assoc-ref
|
||||
'(("i686-linux" . "x86_32")
|
||||
("x86_64-linux" . "x86_64")
|
||||
("armhf-linux" . "arm32")
|
||||
("aarch64-linux" . "aarch64"))
|
||||
system)))
|
||||
(unless hp-arch
|
||||
(error (string-append
|
||||
"HPLIP plugin not supported on "
|
||||
system)))
|
||||
(invoke "sh" (assoc-ref inputs "hplip-plugin")
|
||||
"--noexec" "--keep")
|
||||
(chdir "plugin_tmp")
|
||||
(install-file "plugin.spec"
|
||||
(string-append out "/share/hplip/"))
|
||||
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(install-file
|
||||
file
|
||||
(string-append out "/share/hplip/data/firmware")))
|
||||
(find-files "." "\\.fw.gz$"))
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(install-file
|
||||
file
|
||||
(string-append out "/share/hplip/data/firmware")))
|
||||
(find-files "." "\\.fw.gz$"))
|
||||
|
||||
(install-file "license.txt"
|
||||
(string-append out "/share/hplip/data/plugins"))
|
||||
(mkdir-p
|
||||
(string-append out "/share/hplip/prnt/plugins"))
|
||||
(for-each
|
||||
(lambda (type plugins)
|
||||
(for-each
|
||||
(lambda (plugin)
|
||||
(let ((file (string-append plugin "-" hp-arch ".so"))
|
||||
(dir (string-append out "/share/hplip/"
|
||||
type "/plugins")))
|
||||
(install-file file dir)
|
||||
(chmod (string-append dir "/" file) #o755)
|
||||
(symlink (string-append dir "/" file)
|
||||
(string-append dir "/" plugin ".so"))))
|
||||
plugins))
|
||||
'("prnt" "scan")
|
||||
'(("lj" "hbpl1")
|
||||
("bb_soap" "bb_marvell" "bb_soapht" "bb_escl")))
|
||||
(mkdir-p state-dir)
|
||||
(call-with-output-file
|
||||
(string-append state-dir "/hplip.state")
|
||||
(lambda (port)
|
||||
(simple-format port "[plugin]
|
||||
(install-file "license.txt"
|
||||
(string-append out "/share/hplip/data/plugins"))
|
||||
(mkdir-p
|
||||
(string-append out "/share/hplip/prnt/plugins"))
|
||||
(for-each
|
||||
(lambda (type plugins)
|
||||
(for-each
|
||||
(lambda (plugin)
|
||||
(let ((file (string-append plugin "-" hp-arch ".so"))
|
||||
(dir (string-append out "/share/hplip/"
|
||||
type "/plugins")))
|
||||
(install-file file dir)
|
||||
(chmod (string-append dir "/" file) #o755)
|
||||
(symlink (string-append dir "/" file)
|
||||
(string-append dir "/" plugin ".so"))))
|
||||
plugins))
|
||||
'("prnt" "scan")
|
||||
'(("lj" "hbpl1")
|
||||
("bb_soap" "bb_marvell" "bb_soapht" "bb_escl")))
|
||||
(mkdir-p state-dir)
|
||||
(call-with-output-file
|
||||
(string-append state-dir "/hplip.state")
|
||||
(lambda (port)
|
||||
(simple-format port "[plugin]
|
||||
installed=1
|
||||
eula=1
|
||||
version=~A
|
||||
" #$(package-version hplip))))
|
||||
" ,(package-version hplip))))
|
||||
|
||||
(substitute* (string-append out "/etc/hp/hplip.conf")
|
||||
(("/usr") out)))))))))))
|
||||
(substitute* (string-append out "/etc/hp/hplip.conf")
|
||||
(("/usr") out))
|
||||
#t)))))))))
|
||||
|
|
|
@ -1,236 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2024 Karl Hallsby <karl@hallsby.com
|
||||
|
||||
(define-module (nongnu packages productivity)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages wget)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module ((nonguix licenses) #:prefix license:)
|
||||
#:use-module ((guix licenses) #:prefix free-license:))
|
||||
|
||||
(define-public anytype
|
||||
(package
|
||||
(name "anytype")
|
||||
(version "0.44.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://anytype-release.fra1.cdn.digitaloceanspaces.com/"
|
||||
name "_" version "_amd64.deb"))
|
||||
(file-name (string-append "anytype-" version ".deb"))
|
||||
(sha256
|
||||
(base32
|
||||
"0djyvz6y4pk277xa2mc4w6w029i3f7zd2d1pniyrpayhnna6f670"))))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; almost 300MB
|
||||
#:substitutable? #f
|
||||
#:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
|
||||
#:wrapper-plan
|
||||
#~(map (lambda (file)
|
||||
(string-append "opt/Anytype/" file))
|
||||
'("anytype"
|
||||
"chrome-sandbox"
|
||||
"chrome_crashpad_handler"
|
||||
"libEGL.so"
|
||||
"libffmpeg.so"
|
||||
"libGLESv2.so"
|
||||
"libvk_swiftshader.so"
|
||||
"libvulkan.so.1"
|
||||
"resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node"
|
||||
"resources/app.asar.unpacked/node_modules/keytar/build/Release/obj.target/keytar.node"))
|
||||
#:install-plan
|
||||
#~'(("opt/" "/share")
|
||||
("usr/share/" "/share"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'binary-unpack 'disable-auto-updates
|
||||
(lambda _
|
||||
(delete-file "opt/Anytype/resources/app-update.yml")))
|
||||
;; We don't need regedit, a node library to interact with Windows
|
||||
;; hosts.
|
||||
(add-after 'binary-unpack 'strip-regedit
|
||||
(lambda _
|
||||
(delete-file-recursively
|
||||
(string-append "opt/Anytype/resources/app.asar.unpacked/"
|
||||
"node_modules/regedit"))))
|
||||
(add-after 'binary-unpack 'strip-python
|
||||
(lambda _
|
||||
(delete-file
|
||||
(string-append "opt/Anytype/resources/app.asar.unpacked/"
|
||||
"node_modules/keytar/build/node_gyp_bins/python3"))))
|
||||
(add-before 'install 'patch-assets
|
||||
(lambda _
|
||||
(let* ((bin (string-append #$output "/bin"))
|
||||
(usr/share "./usr/share")
|
||||
(old-exe "/opt/Anytype/anytype")
|
||||
(exe (string-append bin "/anytype")))
|
||||
(substitute* (string-append usr/share "/applications/anytype.desktop")
|
||||
(((string-append "^Exec=" old-exe)) (string-append "Exec=" exe))))))
|
||||
(add-before 'install-wrapper 'symlink-entrypoint
|
||||
(lambda _
|
||||
(let* ((bin (string-append #$output "/bin"))
|
||||
(exe (string-append bin "/anytype"))
|
||||
(share (string-append #$output "/share/Anytype"))
|
||||
(target (string-append share "/anytype")))
|
||||
(mkdir-p bin)
|
||||
(symlink target exe)
|
||||
(wrap-program exe
|
||||
`("LD_LIBRARY_PATH" = (,share)))))))))
|
||||
(inputs
|
||||
(list bzip2
|
||||
flac
|
||||
gdk-pixbuf
|
||||
harfbuzz
|
||||
libexif
|
||||
libglvnd
|
||||
libpng
|
||||
libva
|
||||
libxscrnsaver
|
||||
opus
|
||||
pciutils
|
||||
snappy
|
||||
util-linux
|
||||
xdg-utils
|
||||
wget))
|
||||
(synopsis "Productivity and note-taking app")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(description "Anytype is an E2E encrypted, cross-platform, productivity and
|
||||
note taking app. It stores all the data locally and allows for peer-to-peer
|
||||
synchronization.")
|
||||
(home-page "https://anytype.io")
|
||||
(license (license:nonfree
|
||||
"https://github.com/anyproto/anytype-ts/blob/main/LICENSE.md"))))
|
||||
|
||||
(define-public zotero
|
||||
(package
|
||||
(name "zotero")
|
||||
(version "6.0.35")
|
||||
(source
|
||||
(origin
|
||||
;; Can switch to git-fetch from Github too!
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://download.zotero.org/client/release/"
|
||||
version "/Zotero-" version "_linux-x86_64.tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"17f9an43jwnqpcslbvnhg7hrzkvs2whzwg4ysdgy2gl4m6cln18w"))
|
||||
(snippet
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
;; Disable Zotero's automatic update feature.
|
||||
(substitute* "defaults/preferences/prefs.js"
|
||||
(("pref\\(\"app.update.enabled\", true\\)")
|
||||
"pref(\"app.update.enabled\", false)")
|
||||
(("pref\\(\"app.update.auto\", true\\)")
|
||||
"pref(\"app.update.auto\", false)"))))))
|
||||
(build-system chromium-binary-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; ~70 MiB
|
||||
#:substitutable? #f
|
||||
#:validate-runpath? #t
|
||||
#:wrapper-plan
|
||||
#~'("zotero-bin")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'install-wrapper 'install-entrypoint
|
||||
(lambda _
|
||||
(let* ((bin (string-append #$output "/bin")))
|
||||
(mkdir-p bin)
|
||||
(symlink (string-append #$output "/zotero")
|
||||
(string-append bin "/zotero")))))
|
||||
(add-after 'install 'create-desktop-file
|
||||
(lambda _
|
||||
(make-desktop-entry-file
|
||||
(string-append #$output "/share/applications/zotero.desktop")
|
||||
#:name "Zotero"
|
||||
#:type "Application"
|
||||
#:generic-name "Reference Management"
|
||||
#:exec (string-append #$output "/bin/zotero -url %U")
|
||||
#:icon "zotero"
|
||||
#:keywords '("zotero")
|
||||
#:categories '("Office" "Database")
|
||||
#:terminal #f
|
||||
#:startup-notify #t
|
||||
#:startup-w-m-class "zotero"
|
||||
;; MIME-type list taken from Zotero's shipped .desktop file
|
||||
#:mime-type '("x-scheme-handler/zotero" "text/plain"
|
||||
"application/x-research-info-systems"
|
||||
"text/x-research-info-systems"
|
||||
"text/ris"
|
||||
"application/x-endnote-refer"
|
||||
"application/x-inst-for-Scientific-info"
|
||||
"application/mods+xml"
|
||||
"application/rdf+xml"
|
||||
"application/x-bibtex"
|
||||
"text/x-bibtex"
|
||||
"application/marc"
|
||||
"application/vnd.citationstyles.style+xml")
|
||||
#:comment
|
||||
'(("en" "Collect, organize, cite, and share your research sources")
|
||||
(#f "Collect, organize, cite, and share your research sources")))))
|
||||
(add-after 'install 'install-icons
|
||||
(lambda _
|
||||
(let ((icon-sizes (list 16 32 48 256)))
|
||||
(for-each
|
||||
(lambda (size)
|
||||
(mkdir-p (string-append #$output "/share/icons/hicolor/"
|
||||
size "x" size "/apps"))
|
||||
(copy-file
|
||||
(string-append "chrome/icons/default/default" size ".png")
|
||||
(string-append #$output "/share/icons/hicolor/"
|
||||
size "x" size "/apps/zotero.png")))
|
||||
(map number->string icon-sizes))))))))
|
||||
;; The zotero script that we wrap (which produces .zotero-real), has
|
||||
;; this open file limit step done for us. If that script ever goes
|
||||
;; away, then we can just uncomment this one.
|
||||
;; (add-after 'install-wrapper 'raise-open-file-limit
|
||||
;; (lambda _
|
||||
;; (let ((file (string-append #$output "/bin/zotero")))
|
||||
;; (with-output-to-file file
|
||||
;; (lambda _
|
||||
;; (display
|
||||
;; (string-append
|
||||
;; "#!/bin/sh\n"
|
||||
;; ;; Raise the open files limit because Mozilla file
|
||||
;; ;; functions leave files open for a tiny bit longer than
|
||||
;; ;; necessary, so an installation with many translators and
|
||||
;; ;; styles can exceed the default 1024 file limit. ulimit
|
||||
;; ;; is a shell built-in, so we cannot use Guix's
|
||||
;; ;; program-file function.
|
||||
;; "ulimit -n 4096\n"
|
||||
;; #$output "/bin/zotero-bin" " -app " #$output "/application.ini" " \"$@\""))))
|
||||
;; (chmod file #o755))))
|
||||
(inputs (list dbus-glib libxt))
|
||||
(synopsis "Collect, organize, cite, and share your research sources")
|
||||
;; If we build from source, then we may be able to support more
|
||||
;; architectures. But Zotero is a Firefox/Electron app that uses a lot of
|
||||
;; JavaScript, which may be problematic when packaging using Guix.
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(description "Zotero is a research reference and bibliography tool.
|
||||
Zotero helps you organize your research any way you want. You can sort items
|
||||
into collections and tag them with keywords. Zotero instantly creates
|
||||
references and bibliographies for any text editor, and directly inside Word,
|
||||
LibreOffice, and Google Docs for over 10,000 citation styles.")
|
||||
(home-page "https://www.zotero.org")
|
||||
(license free-license:agpl3)))
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages radio)
|
||||
#:use-module (gnu packages gcc)
|
||||
|
@ -85,27 +97,25 @@ package. E.g.: @code{(udev-rules-service 'sdrplay sdrplay)}")
|
|||
"/license.txt")))))
|
||||
|
||||
(define-public soapysdrplay3
|
||||
(let ((commit "9e5c80c45454db56b8b10bb997369f37e750631b")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "soapysdrplay3")
|
||||
(version (git-version "0.4.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pothosware/SoapySDRPlay3")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1sl3i1id0fily7qfm0yihxsaqy4f4gr85vl5ip05azhhbrnmnayx"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
(list sdrplay soapysdr))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; No test suite
|
||||
(home-page "https://github.com/pothosware/SoapySDRPlay3/wiki")
|
||||
(synopsis "SoapySDR SDRplay module")
|
||||
(description "This package provides SDRplay devices support to the
|
||||
(package
|
||||
(name "soapysdrplay3")
|
||||
(version "0.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pothosware/SoapySDRPlay3")
|
||||
(commit (string-append "soapy-sdrplay3-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0kp5gz03c29kxclaqijpyqknaijlbldrhy04mn98vnli9g1h1isq"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
(list sdrplay soapysdr))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; No test suite
|
||||
(home-page "https://github.com/pothosware/SoapySDRPlay3/wiki")
|
||||
(synopsis "SoapySDR SDRplay module")
|
||||
(description "This package provides SDRplay devices support to the
|
||||
SoapySDR library.")
|
||||
(license expat))))
|
||||
(license expat)))
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages scanner)
|
||||
#:use-module (ice-9 match)
|
||||
|
|
|
@ -1,23 +1,34 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 pkill-9
|
||||
;;; Copyright © 2020, 2021 ison <ison@airmail.cc>
|
||||
;;; Copyright © 2021 pineapples
|
||||
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
|
||||
;;; Copyright © 2021 Kozo <kozodev@runbox.com>
|
||||
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
|
||||
;;; Copyright © 2023 Elijah Malaby
|
||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; The script provided by this package may optionally be started as
|
||||
;;; a shell instead of automatically launching the wrapped entrypoint by setting
|
||||
;;; the environment variable DEBUG=1. If the sandbox is started this way then
|
||||
;;; the package should subsequently be launched via fhs-internal.
|
||||
;;; The steam script provided by this package may optionally be started as
|
||||
;;; a shell instead of automatically launching Steam by setting the
|
||||
;;; environment variable DEBUG=1. If the sandbox is started this way then
|
||||
;;; Steam should subsequently be launched via fhs-internal.
|
||||
|
||||
;;; The sandbox shell aids in debugging missing container elements. For
|
||||
;;; example a missing symlink may be created manually before launching the
|
||||
;;; package to verify that the fix works before filing a bug report.
|
||||
;;; example a missing symlink may be created manually before launching Steam
|
||||
;;; to verify that the fix works before filing a bug report.
|
||||
|
||||
;;; A container wrapper creates the following store items:
|
||||
;;; * Main container package [nonguix-container->package] (basically a dummy
|
||||
|
@ -32,58 +43,62 @@
|
|||
;;; (script run in-container which performs additional setup before
|
||||
;;; launching the desired application)
|
||||
;;; References:
|
||||
;;; -> Wrapped package {inside container}.
|
||||
;;; -> Wrapped package {inside container} (in this case Steam).
|
||||
|
||||
;;; Note: The extra container-internal package is necessary because there is no
|
||||
;;; way to add the container package's own store path to its own manifest unless
|
||||
;;; the manifest is printed inside the build phases. However, the (guix gexp)
|
||||
;;; module is apparently disallowed inside build phases.
|
||||
|
||||
(define-module (nonguix multiarch-container)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (guix build-system trivial)
|
||||
(define-module (nongnu packages steam-client)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module ((nonguix licenses) #:prefix license:)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
|
||||
#:export (nonguix-container
|
||||
nonguix-container?
|
||||
ngc-name
|
||||
ngc-binary-name
|
||||
ngc-version
|
||||
ngc-wrap-package
|
||||
ngc-run
|
||||
ngc-wrapper-name
|
||||
ngc-manifest-name
|
||||
ngc-internal-name
|
||||
ngc-sandbox-home
|
||||
ngc-ld.so.conf
|
||||
ngc-ld.so.cache
|
||||
ngc-union64
|
||||
ngc-union32
|
||||
ngc-preserved-env
|
||||
ngc-exposed
|
||||
ngc-shared
|
||||
ngc-modules
|
||||
ngc-packages
|
||||
ngc-link-files
|
||||
ngc-home-page
|
||||
ngc-synopsis
|
||||
ngc-description
|
||||
ngc-license
|
||||
|
||||
fhs-min-libs
|
||||
fhs-union
|
||||
ld.so.conf->ld.so.cache
|
||||
packages->ld.so.conf
|
||||
nonguix-container->package))
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix transformations)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages certs)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages libbsd)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages logging)
|
||||
#:use-module (nongnu packages nvidia)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages toolkits)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (nonguix utils))
|
||||
|
||||
(define-record-type* <nonguix-container>
|
||||
nonguix-container make-nonguix-container
|
||||
nonguix-container? this-nonguix-container
|
||||
(name ngc-name)
|
||||
(binary-name ngc-binary-name (default (ngc-name this-nonguix-container)) (thunked))
|
||||
(version ngc-version (default #f))
|
||||
(wrap-package ngc-wrap-package)
|
||||
(run ngc-run)
|
||||
|
@ -91,8 +106,6 @@
|
|||
(manifest-name ngc-manifest-name (default "nonguix-container-manifest.scm"))
|
||||
(internal-name ngc-internal-name (default "fhs-internal"))
|
||||
(sandbox-home ngc-sandbox-home (default ".local/share/guix-sandbox-home"))
|
||||
(ld.so.conf ngc-ld.so.conf)
|
||||
(ld.so.cache ngc-ld.so.cache)
|
||||
(union64 ngc-union64 (default '()))
|
||||
(union32 ngc-union32 (default '()))
|
||||
(preserved-env ngc-preserved-env (default '()))
|
||||
|
@ -106,10 +119,137 @@
|
|||
(description ngc-description (default #f))
|
||||
(license ngc-license (default #f)))
|
||||
|
||||
(define steam-client
|
||||
(package
|
||||
(name "steam-client")
|
||||
(version "1.0.0.75")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://repo.steampowered.com/steam/archive/precise/steam_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19rn29slsxv7b5fisr1jzn79bskzifbj5hmxqn2436ivwfjna9g5"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; There are no tests.
|
||||
#:validate-runpath? #f ; Looks for bin/steam which doesn't exist.
|
||||
#:make-flags
|
||||
(list "PREFIX=" (string-append "DESTDIR=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
;; Patch Makefile so it creates links to the store rather than /lib.
|
||||
(add-after 'unpack 'patch-makefile
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("-fns ")
|
||||
"-fns $(DESTDIR)"))))
|
||||
(delete 'patch-dot-desktop-files)
|
||||
(add-after 'unpack 'patch-startscript
|
||||
(lambda _
|
||||
(substitute* "bin_steam.sh"
|
||||
(("/usr") (assoc-ref %outputs "out")))))
|
||||
(add-after 'patch-dot-desktop-files 'patch-desktop-file
|
||||
(lambda _
|
||||
(let ((path (string-append (assoc-ref %outputs "out")
|
||||
"/share/applications/")))
|
||||
(substitute* (string-append path "steam.desktop")
|
||||
(("Exec=.*/steam") "Exec=steam"))
|
||||
(copy-file (string-append path "steam.desktop")
|
||||
(string-append path "steam-asound32.desktop"))
|
||||
(substitute* (string-append path "steam-asound32.desktop")
|
||||
(("Exec=steam %U") "Exec=steam %U -- --asound32")
|
||||
(("Name=Steam") "Name=Steam (32-bit ALSA)")))))
|
||||
;; Steamdeps installs missing packages, which doesn't work with Guix.
|
||||
(add-after 'install-binaries 'post-install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(delete-file (string-append out "/lib/steam/bin_steamdeps.py"))
|
||||
(delete-file (string-append out "/bin/steamdeps"))))))))
|
||||
(home-page "https://store.steampowered.com")
|
||||
(synopsis "Digital distribution platform for managing and playing games")
|
||||
(description "Steam is a digital software distribution platform created by Valve.")
|
||||
(license (license:nonfree "file:///share/doc/steam/steam_subscriber_agreement.txt"))))
|
||||
|
||||
(define glibc-for-fhs
|
||||
(package
|
||||
(inherit glibc)
|
||||
(name "glibc-for-fhs")
|
||||
(source (origin (inherit (package-source glibc))
|
||||
;; Remove Guix's patch to read ld.so.cache from /gnu/store
|
||||
;; directories, re-enabling the default /etc/ld.so.cache
|
||||
;; behavior.
|
||||
(patches (delete (car (search-patches "glibc-dl-cache.patch"))
|
||||
(origin-patches (package-source glibc))))))))
|
||||
|
||||
;; After guix commit to add a replacement for expat (security fixes),
|
||||
;; https://git.savannah.gnu.org/cgit/guix.git/commit/?id=2045852b096131a714409aa0cc4fe17938f60b15
|
||||
;; a profile collision happens with the propagated expat (now grafted) from
|
||||
;; fontconfig. See upstream report https://issues.guix.gnu.org/53406
|
||||
;; So we define a fontconfig variation that explicitly does the expat replacement
|
||||
;; which works around this bug for now, at the cost of building fontconfig.
|
||||
;; TODO: remove once upstream bug is fixed
|
||||
(define fontconfig-fixed
|
||||
(package
|
||||
(inherit fontconfig)
|
||||
(propagated-inputs
|
||||
(modify-inputs (package-propagated-inputs fontconfig)
|
||||
(replace "expat" (@@ (gnu packages xml) expat/fixed))))))
|
||||
|
||||
(define fhs-min-libs
|
||||
`(("glibc" ,(@@ (gnu packages base) glibc-for-fhs))
|
||||
`(("glibc" ,glibc-for-fhs)
|
||||
("glibc-locales" ,glibc-locales)))
|
||||
|
||||
(define steam-client-libs
|
||||
`(("bash" ,bash) ; Required for steam startup.
|
||||
("coreutils" ,coreutils)
|
||||
("diffutils" ,diffutils)
|
||||
("dbus-glib" ,dbus-glib) ; Required for steam browser.
|
||||
("elfutils" ,elfutils) ; Required for capturing library dependencies in pv.
|
||||
("eudev" ,eudev) ; Required for steamwebhelper/heavy runtime.
|
||||
;; TODO: set back to ,fontconfig once https://issues.guix.gnu.org/53406 is fixed
|
||||
("fontconfig" ,fontconfig-fixed) ; Required for steam client.
|
||||
("file" ,file) ; Used for steam installation.
|
||||
("find" ,findutils) ; Required at least for some logging.
|
||||
("freetype" ,freetype) ; Required for steam login.
|
||||
("gawk" ,gawk)
|
||||
("gcc:lib" ,gcc "lib") ; Required for steam startup.
|
||||
("grep" ,grep)
|
||||
("libbsd" ,libbsd)
|
||||
("libcap" ,libcap) ; Required for SteamVR, but needs pkexec too.
|
||||
("libusb" ,libusb) ; Required for SteamVR.
|
||||
("libva" ,libva) ; Required for hardware video encoding/decoding.
|
||||
("libvdpau" ,libvdpau) ; Required for hardware video encoding/decoding.
|
||||
("libvdpau-va-gl" ,libvdpau-va-gl) ; Additional VDPAU support.
|
||||
("llvm" ,llvm-11) ; Required for mesa.
|
||||
("mesa" ,mesa) ; Required for steam startup.
|
||||
("nss-certs" ,nss-certs) ; Required for steam login.
|
||||
("pciutils" ,pciutils) ; Tries to run lspci at steam startup.
|
||||
("procps" ,procps)
|
||||
("sed" ,sed)
|
||||
("tar" ,tar)
|
||||
("usbutils" ,usbutils) ; Required for SteamVR.
|
||||
("util-linux" ,util-linux) ; Required for steam login.
|
||||
("wayland" ,wayland) ; Required for mesa vulkan (e.g. libvulkan_radeon).
|
||||
("xdg-utils" ,xdg-utils)
|
||||
("xz" ,xz)
|
||||
("zenity" ,zenity))) ; Required for progress dialogs.
|
||||
|
||||
(define steam-gameruntime-libs
|
||||
`(("alsa-lib" ,alsa-lib) ; Required for audio in most games.
|
||||
("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio") ; Required for audio in most games.
|
||||
("font-dejavu" ,font-dejavu)
|
||||
("font-liberation" ,font-liberation)
|
||||
("imgui" ,imgui-1.86) ; Required for MangoHud.
|
||||
("mangohud" ,mangohud)
|
||||
("openal" ,openal) ; Prevents corrupt audio in Crypt of the Necrodancer.
|
||||
("pulseaudio" ,pulseaudio) ; Prevents corrupt audio in Sven Coop.
|
||||
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
|
||||
("spdlog" ,spdlog))) ; Required for MangoHud.
|
||||
|
||||
(define* (fhs-union inputs #:key (name "fhs-union") (version "0.0") (system "x86_64-linux"))
|
||||
"Create a package housing the union of inputs."
|
||||
(package
|
||||
|
@ -154,25 +294,45 @@
|
|||
in the Guix store"
|
||||
(computed-file
|
||||
"ld.so.conf"
|
||||
#~(begin
|
||||
;; Need to quote "#$packages" as #$packages tries to "apply" the first item to the rest, like a procedure.
|
||||
(let* ((packages '#$packages)
|
||||
;; Add "/lib" to each package.
|
||||
;; TODO Make this more general for other needed directories.
|
||||
(dirs-lib
|
||||
(lambda (packages)
|
||||
(map (lambda (package)
|
||||
(string-append package "/lib"))
|
||||
packages)))
|
||||
(fhs-lib-dirs
|
||||
(dirs-lib packages)))
|
||||
(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(for-each (lambda (directory)
|
||||
(display directory port)
|
||||
(newline port))
|
||||
fhs-lib-dirs)))
|
||||
#$output))))
|
||||
(with-imported-modules
|
||||
`((guix build union)
|
||||
(guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build union)
|
||||
(guix build utils))
|
||||
;; Need to quote "#$packages" as #$packages tries to "apply" the first item to the rest, like a procedure.
|
||||
(let* ((packages '#$packages)
|
||||
;; Add "/lib" to each package.
|
||||
;; TODO Make this more general for other needed directories.
|
||||
(dirs-lib
|
||||
(lambda (packages)
|
||||
(map (lambda (package)
|
||||
(string-append package "/lib"))
|
||||
packages)))
|
||||
(fhs-lib-dirs
|
||||
(dirs-lib packages)))
|
||||
(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(for-each (lambda (directory)
|
||||
(display directory port)
|
||||
(newline port))
|
||||
fhs-lib-dirs)))
|
||||
#$output)))))
|
||||
|
||||
(define steam-ld.so.conf
|
||||
(packages->ld.so.conf
|
||||
(list (fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-64")
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))))
|
||||
|
||||
(define steam-ld.so.cache
|
||||
(ld.so.conf->ld.so.cache steam-ld.so.conf))
|
||||
|
||||
(define (nonguix-container->package container)
|
||||
"Return a package with wrapper script to launch the supplied container object
|
||||
|
@ -209,7 +369,7 @@ in a sandboxed FHS environment."
|
|||
(manifest-target (assoc-ref %build-inputs "fhs-manifest"))
|
||||
(manifest-dest (string-append out "/etc/" ,(ngc-manifest-name container)))
|
||||
(wrapper-target (assoc-ref %build-inputs "fhs-wrapper"))
|
||||
(wrapper-dest (string-append out "/bin/" ,(ngc-binary-name container)))
|
||||
(wrapper-dest (string-append out "/bin/" ,(ngc-name container)))
|
||||
(link-files ',(ngc-link-files container)))
|
||||
(mkdir-p (string-append out "/sbin"))
|
||||
(mkdir-p (string-append out "/etc"))
|
||||
|
@ -238,7 +398,8 @@ in a sandboxed FHS environment."
|
|||
in a sandboxed FHS environment."
|
||||
(program-file
|
||||
(ngc-wrapper-name container)
|
||||
(with-imported-modules '((guix build utils))
|
||||
(with-imported-modules
|
||||
`((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(define (preserve-var var)
|
||||
|
@ -259,47 +420,20 @@ 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.
|
||||
;; For startup of added non-Steam games as it
|
||||
;; seems they start in an early environment
|
||||
;; before our additional settings. (Likely
|
||||
;; this can be removed when rewritten to use
|
||||
;; --emulate-fhs from upstream.) Note that
|
||||
;; this is explicitly set below. We could
|
||||
;; preserve what is set before launching the
|
||||
;; container, but any such directories would
|
||||
;; need to be shared with the container as
|
||||
;; well; this is not needed currently.
|
||||
"^LD_LIBRARY_PATH$"
|
||||
"^LIBVA_DRIVERS_PATH$" ; For VA-API drivers.
|
||||
"^MANGOHUD" ; For MangoHud configuration.
|
||||
"^PRESSURE_VESSEL_" ; For pressure vessel options.
|
||||
"_PROXY$"
|
||||
"_proxy$"
|
||||
;; To allow workaround for upstream bug
|
||||
;; <https://github.com/ValveSoftware/steam-for-linux/issues/9306>
|
||||
;; and tracked on our end as
|
||||
;; <https://gitlab.com/nonguix/nonguix/-/issues/267>.
|
||||
;; TODO: Remove once upstream fixes this bug.
|
||||
"^QT_X11_NO_MITSHM$"
|
||||
"^SDL_"
|
||||
"^STEAM_"
|
||||
"^SSL_" ; SSL certificate environment, needed by curl for Heroic.
|
||||
"^TZ" ; For setting time zone.
|
||||
"^VDPAU_DRIVER_PATH$" ; For VDPAU drivers.
|
||||
"^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$"
|
||||
"^G_MESSAGES_DEBUG$"
|
||||
|
@ -314,7 +448,6 @@ 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.
|
||||
|
@ -323,8 +456,7 @@ in a sandboxed FHS environment."
|
|||
,@(exists-> "/sys/class/powercap") ; Needed for power monitoring like MangoHud.
|
||||
"/sys/dev"
|
||||
"/sys/devices"
|
||||
,@(exists-> "/var/run/dbus")
|
||||
#$@(ngc-exposed container)))
|
||||
,@(exists-> "/var/run/dbus")))
|
||||
;; /dev/hidraw is needed for SteamVR to access the HMD, although here we
|
||||
;; share all hidraw devices. Instead we could filter to only share specific
|
||||
;; device. See, for example, this script:
|
||||
|
@ -338,34 +470,29 @@ 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)))
|
||||
,@(exists-> (getenv "XAUTHORITY"))))
|
||||
(DEBUG (equal? (getenv "DEBUG") "1"))
|
||||
;; Make sure this environment variable is not set to the
|
||||
;; emptry string or else guix shell will fail to start.
|
||||
(extra-shares-env (getenv "GUIX_SANDBOX_EXTRA_SHARES"))
|
||||
(extra-shares (if (and extra-shares-env (not (string= extra-shares-env "")))
|
||||
(string-split extra-shares-env #\:)
|
||||
#f))
|
||||
(args (cdr (command-line)))
|
||||
(command (if DEBUG '()
|
||||
`("--" ,run ,@args))))
|
||||
;; Set this so Steam's pressure-vessel container does not need to
|
||||
;; generate locales, improving startup time. This needs to be set to
|
||||
;; the "usual" path, probably so they are included in the
|
||||
;; pressure-vessel container.
|
||||
(setenv "GUIX_LOCPATH" "/usr/lib/locale")
|
||||
;; 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")
|
||||
;; TODO: Remove once upstream change is merged and in stable pressure-vessel
|
||||
;; (although may want to hold off for anyone using older pressure-vessel versions
|
||||
;; for whatever reason), see:
|
||||
;; https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/merge_requests/406
|
||||
(setenv "PRESSURE_VESSEL_FILESYSTEMS_RO" "/gnu/store")
|
||||
;; 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")
|
||||
(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"
|
||||
|
@ -373,9 +500,7 @@ in a sandboxed FHS environment."
|
|||
,@(map add-path expose)
|
||||
,@(map (lambda (item)
|
||||
(add-path item #:writable? #t))
|
||||
(if extra-shares
|
||||
(append share extra-shares)
|
||||
share))
|
||||
share)
|
||||
"-m" ,manifest-file
|
||||
,@command)))))))
|
||||
|
||||
|
@ -424,8 +549,7 @@ the exact path for the fhs-internal package."
|
|||
(version (or (ngc-version container)
|
||||
(package-version (ngc-wrap-package container))))
|
||||
(source #f)
|
||||
(inputs `(("fhs-internal-script"
|
||||
,(make-internal-script container))))
|
||||
(inputs `(("fhs-internal-script" ,(make-internal-script container))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
|
@ -451,8 +575,8 @@ application."
|
|||
;; contains are directly to /gnu/store/. Instead, it could be generated with
|
||||
;; a generic ld.so.conf and result in paths more typical in an FHS distro,
|
||||
;; like /lib within the container. This may be useful for future compatibility.
|
||||
(let* ((ld.so.conf (ngc-ld.so.conf container))
|
||||
(ld.so.cache (ngc-ld.so.cache container))
|
||||
(let* ((ld.so.conf steam-ld.so.conf)
|
||||
(ld.so.cache steam-ld.so.cache)
|
||||
(pkg (ngc-wrap-package container))
|
||||
(run (ngc-run container)))
|
||||
(program-file
|
||||
|
@ -461,9 +585,7 @@ application."
|
|||
`((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 getopt-long)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
(ice-9 getopt-long))
|
||||
(define (path->str path)
|
||||
(if (list? path)
|
||||
(string-join path "/")
|
||||
|
@ -473,13 +595,9 @@ application."
|
|||
(dest (path->str (cdr pair))))
|
||||
(unless (file-exists? dest)
|
||||
(symlink target dest))))
|
||||
(define (file-symlink file dir)
|
||||
(mkdir-p dir)
|
||||
(define (icd-symlink file)
|
||||
(new-symlink
|
||||
`(,file . (,dir ,(basename file)))))
|
||||
;; Use stat to follow links from packages like MangoHud.
|
||||
(define (get-files dir)
|
||||
(find-files (path->str dir) #:stat stat))
|
||||
`(,file . ("/usr/share/vulkan/icd.d" ,(basename file)))))
|
||||
(define fhs-option-spec
|
||||
'((asound32 (value #f))))
|
||||
(let* ((guix-env (getenv "GUIX_ENVIRONMENT"))
|
||||
|
@ -489,9 +607,9 @@ application."
|
|||
(ld.so.cache #$(file-append ld.so.cache))
|
||||
(all-args (cdr (command-line)))
|
||||
(fhs-args (member "--" all-args))
|
||||
(package-args (if fhs-args
|
||||
(reverse (cdr (member "--" (reverse all-args))))
|
||||
all-args)))
|
||||
(steam-args (if fhs-args
|
||||
(reverse (cdr (member "--" (reverse all-args))))
|
||||
all-args)))
|
||||
(delete-file "/bin/sh")
|
||||
(rmdir "/bin")
|
||||
(for-each
|
||||
|
@ -499,8 +617,8 @@ application."
|
|||
'("/run/current-system/profile/etc"
|
||||
"/run/current-system/profile/share"
|
||||
"/sbin"
|
||||
"/usr/lib"
|
||||
"/usr/share"))
|
||||
"/usr/share/vulkan/icd.d"
|
||||
"/usr/share/vulkan/implicit_layer.d")) ; Implicit layers like MangoHud
|
||||
(for-each
|
||||
new-symlink
|
||||
`((,ld.so.cache . "/etc/ld.so.cache")
|
||||
|
@ -514,65 +632,30 @@ application."
|
|||
((,union64 "lib") . "/lib64")
|
||||
((,union64 "lib") . "/run/current-system/profile/lib64")
|
||||
((,union64 "lib/locale") . "/run/current-system/locale")
|
||||
;; Despite using GUIX_LOCPATH, stil need locales in their
|
||||
;; expected location for pressure-vessel to use them.
|
||||
((,union64 "lib/locale") . "/usr/lib/locale")
|
||||
((,union64 "sbin/ldconfig") . "/sbin/ldconfig")
|
||||
((,union64 "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 "etc/fonts") . "/etc/fonts")
|
||||
((,union64 "share/vulkan/explicit_layer.d") .
|
||||
"/usr/share/vulkan/explicit_layer.d")
|
||||
;; The MangoHud layer has the same file name for 64- and 32-bit,
|
||||
;; so create links with different names.
|
||||
((,union64 "share/vulkan/implicit_layer.d/MangoHud.json") .
|
||||
"/usr/share/vulkan/implicit_layer.d/MangoHud.json")
|
||||
((,union32 "share/vulkan/implicit_layer.d/MangoHud.json") .
|
||||
"/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json")))
|
||||
(for-each
|
||||
(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.
|
||||
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)))
|
||||
;; TODO: Is this 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).
|
||||
(if (file-exists? ".steam/root/bootstrap.tar.xz")
|
||||
(chmod ".steam/root/bootstrap.tar.xz" #o644))
|
||||
;; TODO: Should other environment setup also happen inside the
|
||||
;; container rather than before container is launched?
|
||||
;;
|
||||
;; Set this so that e.g. non-Steam games added to Steam will
|
||||
;; launch properly. It seems otherwise they don't make it to
|
||||
;; launching Steam's pressure-vessel container (for Proton
|
||||
;; games). Wait to set this inside the container to not cause
|
||||
;; issues on foreign distros, see
|
||||
;; <https://gitlab.com/nonguix/nonguix/-/issues/303>
|
||||
(setenv "LD_LIBRARY_PATH"
|
||||
(string-append "/lib64:/lib:/lib64/nss:/lib/nss:"
|
||||
"/lib64/vdpau:/lib/vdpau"))
|
||||
|
||||
;; Process FHS-specific command line options.
|
||||
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
|
||||
|
@ -580,13 +663,9 @@ application."
|
|||
(asound-lib (if asound32-opt "lib" "lib64")))
|
||||
(if asound32-opt
|
||||
(display "\n\n/etc/asound.conf configured for 32-bit.\n\n\n")
|
||||
(display (string-append "\n\n/etc/asound.conf configured for 64-bit.\nLaunch "
|
||||
#$(ngc-binary-name container)
|
||||
" with \""
|
||||
(basename #$(ngc-run container))
|
||||
" -- --asound32\" to use 32-bit instead.\n\n\n")))
|
||||
(display "\n\n/etc/asound.conf configured for 64-bit.\nLaunch steam with \"steam -- --asound32\" to use 32-bit instead.\n\n\n"))
|
||||
(with-output-to-file "/etc/asound.conf"
|
||||
(lambda _ (format (current-output-port) "# Generated by nonguix's internal script
|
||||
(lambda _ (format (current-output-port) "# Generated by steam-client
|
||||
|
||||
# Use PulseAudio by default
|
||||
pcm_type.pulse {
|
||||
|
@ -611,4 +690,78 @@ ctl.!default {
|
|||
fallback \"sysdefault\"
|
||||
}\n\n" asound-lib asound-lib))))
|
||||
|
||||
(apply system* `(#$(file-append pkg run) ,@package-args))))))))
|
||||
(apply system* `(#$(file-append pkg run) ,@steam-args))))))))
|
||||
|
||||
(define-public steam
|
||||
(nonguix-container->package
|
||||
(nonguix-container
|
||||
(name "steam")
|
||||
(wrap-package steam-client)
|
||||
(run "/bin/steam")
|
||||
(union64
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-64"))
|
||||
(union32
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(link-files '("share/applications/steam.desktop"
|
||||
"share/applications/steam-asound32.desktop"))
|
||||
(description "Steam is a digital software distribution platform created by
|
||||
Valve. This package provides a script for launching Steam in a Guix container
|
||||
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
||||
all games will be installed."))))
|
||||
|
||||
(define-public steam-nvidia
|
||||
(nonguix-container->package
|
||||
(nonguix-container
|
||||
(name "steam-nvidia")
|
||||
(wrap-package steam-client)
|
||||
(run "/bin/steam")
|
||||
(union64
|
||||
(replace-mesa
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-64")))
|
||||
(union32
|
||||
(replace-mesa
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux")))
|
||||
(link-files '("share/applications/steam.desktop"
|
||||
"share/applications/steam-asound32.desktop"))
|
||||
(description "Steam is a digital software distribution platform created by
|
||||
Valve. This package provides a script for launching Steam in a Guix container
|
||||
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
||||
all games will be installed."))))
|
||||
|
||||
(define-public protonup-ng
|
||||
(package
|
||||
(name "protonup-ng")
|
||||
(version "0.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/cloudishBenne/protonup-ng")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0yd2mhhqxzarqxk85zf42s931jzc94f1cssn1hblsqghr79laa45"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f)) ; there are no tests
|
||||
(inputs
|
||||
(list python-configparser python-requests))
|
||||
(home-page "https://github.com/cloudishBenne/protonup-ng")
|
||||
(synopsis "Manage Proton-GE Installations")
|
||||
(description "ProtonUp-ng is a CLI program and API to automate the installation
|
||||
and update of GloriousEggroll's Proton-GE.")
|
||||
(license license:gpl3)))
|
|
@ -1,6 +1,18 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022 dan <i@dan.games>
|
||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages version-control)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -13,7 +25,7 @@
|
|||
(define-public helix-core
|
||||
(package
|
||||
(name "helix-core")
|
||||
(version "r23.1")
|
||||
(version "r22.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.perforce.com/perforce/" version
|
||||
|
@ -28,7 +40,7 @@
|
|||
("i686-linux"
|
||||
"0f5qs55rspw86axnmml3nxx551lwbxwz1cgi9kmy2f9g5rrplnkn")
|
||||
(_
|
||||
"1vqfkhgbx6ch7710w8mmm7hydl6jmd9qgzs0gfjg8gvd5gnh1csr"))))))
|
||||
"077rfbjgyhdgv76i2727s3yk3p52y75nml8n9wv8g7mvhfs9ypa9"))))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:strip-binaries? #f
|
||||
|
|
|
@ -1,54 +1,34 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2024 Murilo <murilo@disroot.org>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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 (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))))
|
||||
#:use-module ((guix licenses) #:prefix license:))
|
||||
|
||||
(define-public gmmlib
|
||||
(package
|
||||
(name "gmmlib")
|
||||
(version "22.3.19")
|
||||
(version "22.2.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -57,7 +37,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0p3wp6xcvpb4jzw4fsf6554qy91iblmq9y50ph3iy29m19q6nznb"))))
|
||||
"0cn8pkb7ahmdmj4m6nd0l8s91pz43snnjjp7vhzbmqa8hsp8wbav"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
;; Tests are run as part of the normal build step
|
||||
|
@ -73,7 +53,7 @@ for VAAPI.")
|
|||
(define-public intel-media-driver
|
||||
(package
|
||||
(name "intel-media-driver")
|
||||
(version "24.1.5")
|
||||
(version "22.5.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -82,16 +62,16 @@ for VAAPI.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1jm4imld48scj0j499wq5zbdjv4gg7hg2sawljqnjvy09dmp09bs"))))
|
||||
"0pdmw5357yl9qjw5i9112v5ny19ymi85kl03jd882qcygna3sf8q"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs (list libva gmmlib))
|
||||
(native-inputs (list pkg-config))
|
||||
(arguments
|
||||
(list #:tests? #f ;Tests are run as part of the normal build step
|
||||
#:configure-flags
|
||||
#~(list "-DENABLE_NONFREE_KERNELS=OFF"
|
||||
(string-append "-DLIBVA_DRIVERS_PATH="
|
||||
#$output "/lib/dri"))))
|
||||
'(#:tests? #f ;Tests are run as part of the normal build step
|
||||
#:configure-flags
|
||||
(list "-DENABLE_NONFREE_KERNELS=OFF"
|
||||
(string-append "-DLIBVA_DRIVERS_PATH="
|
||||
(assoc-ref %outputs "out") "/lib/dri"))))
|
||||
;; XXX Because of <https://issues.guix.gnu.org/issue/22138>, we need to add
|
||||
;; this to all VA-API back ends instead of once to libva.
|
||||
(native-search-paths
|
||||
|
@ -107,128 +87,4 @@ accelerated decoding, encoding, and video post processing for the GEN based
|
|||
graphics hardware.")
|
||||
(license (list license:expat license:bsd-3))))
|
||||
|
||||
(define-public intel-media-driver/nonfree
|
||||
(package
|
||||
(inherit intel-media-driver)
|
||||
(name "intel-media-driver-nonfree")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments intel-media-driver)
|
||||
((#:configure-flags flags #~'())
|
||||
#~(cons "-DENABLE_NONFREE_KERNELS=ON"
|
||||
(delete "-DENABLE_NONFREE_KERNELS=OFF" #$flags)))))
|
||||
(synopsis
|
||||
(string-append
|
||||
(package-synopsis intel-media-driver)
|
||||
" with nonfree kernels"))
|
||||
(description
|
||||
(string-append
|
||||
(package-description intel-media-driver)
|
||||
" This build of intel-media-driver includes nonfree blobs to fully enable the
|
||||
video decode capabilities of supported Intel GPUs."))))
|
||||
|
||||
(define-public nv-codec-headers
|
||||
(package
|
||||
(name "nv-codec-headers")
|
||||
(version "12.1.14.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git")
|
||||
(commit (string-append "n" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0sp4giwbhai9blgd2k7sb571xwmz2yx17w32vy0nyj86ccb2x5jq"))))
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; No tests.
|
||||
#:make-flags #~(list (string-append "PREFIX=" #$output))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'fix-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "include/ffnvcodec/dynlink_loader.h"
|
||||
(("lib.*\\.so\\.." lib)
|
||||
(search-input-file
|
||||
inputs (string-append "lib/" lib)))))))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs (list nvidia-driver))
|
||||
(home-page "https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git")
|
||||
(synopsis
|
||||
"FFmpeg version of headers required to interface with NVIDIA's codec APIs")
|
||||
(description
|
||||
"This package provides the necessary headers for interfacing with NVIDIA's
|
||||
codec APIs.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public obs-with-cef
|
||||
(package
|
||||
(inherit obs)
|
||||
(name "obs-with-cef")
|
||||
(inputs
|
||||
(append (package-inputs obs)
|
||||
`(("chromium-embedded-framework" ,chromium-embedded-framework))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments obs)
|
||||
((#:configure-flags flags)
|
||||
#~(append #$flags
|
||||
'("-DBUILD_BROWSER=ON"
|
||||
"-DCEF_ROOT_DIR=../source/cef")))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-before 'configure 'add-cef
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((chromium-embedded-framework
|
||||
#$(this-package-input "chromium-embedded-framework")))
|
||||
(mkdir-p "cef/Release")
|
||||
(mkdir-p "cef/Resources")
|
||||
(for-each (lambda (file)
|
||||
(symlink file (string-append "cef/Release/"
|
||||
(basename file)))
|
||||
(symlink file (string-append "cef/Resources/"
|
||||
(basename file))))
|
||||
(filter
|
||||
(lambda (file)
|
||||
(not (string= (basename (dirname file))
|
||||
"locales")))
|
||||
(find-files
|
||||
(string-append chromium-embedded-framework
|
||||
"/share/cef"))))
|
||||
(symlink (string-append chromium-embedded-framework
|
||||
"/lib/libcef.so")
|
||||
"cef/Release/libcef.so")
|
||||
(mkdir-p "cef/libcef_dll_wrapper")
|
||||
(symlink (string-append chromium-embedded-framework
|
||||
"/lib/libcef_dll_wrapper.a")
|
||||
"cef/libcef_dll_wrapper/libcef_dll_wrapper.a")
|
||||
(symlink (string-append chromium-embedded-framework
|
||||
"/include")
|
||||
"cef/include"))))
|
||||
(add-after 'install 'symlink-obs-browser
|
||||
;; Required for lib/obs-plugins/obs-browser.so file.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(symlink
|
||||
(string-append #$output
|
||||
"/lib/libobs-frontend-api.so.0")
|
||||
(string-append #$output
|
||||
"/lib/obs-plugins/libobs-frontend-api.so.0"))
|
||||
(symlink
|
||||
(string-append #$output
|
||||
"/lib/libobs.so.0")
|
||||
(string-append #$output
|
||||
"/lib/obs-plugins/libobs.so.0"))))))))
|
||||
(description
|
||||
(string-append
|
||||
(package-description obs)
|
||||
" This build of OBS includes embeded Chromium-based browser to enable
|
||||
Browser source."))))
|
||||
|
||||
(define-public obs-nvenc
|
||||
(let ((obs-ffmpeg-nvenc (replace-ffmpeg-nvenc obs)))
|
||||
(package/inherit obs-ffmpeg-nvenc
|
||||
(name "obs-nvenc")
|
||||
(description
|
||||
(string-append
|
||||
(package-description obs)
|
||||
" This build of OBS includes the nonfree NVIDIA encoder for FFmpeg
|
||||
@code{h264_nvenc} and @code{hevc_nvenc} hardware encoding on NVIDIA GPUs.")))))
|
||||
intel-media-driver
|
||||
|
|
|
@ -1,5 +1,21 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
(define-module (nongnu packages vpn)
|
||||
#:use-module (guix build utils)
|
||||
|
@ -12,7 +28,7 @@
|
|||
(define-public zerotier
|
||||
(package
|
||||
(name "zerotier")
|
||||
(version "1.12.2")
|
||||
(version "1.8.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -21,17 +37,16 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0p5rpvh137gf5y9ylip7kxfl4argv34sr4wiiygvfk670rifnk57"))))
|
||||
"101b1k9f3cpbgj0l87ya1cbqs9dv0qiayjap4m29fxyjra8hbkb8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list "ZT_SSO_SUPPORTED=0") ; We don't need SSO/OIDC
|
||||
#:phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; There is no ./configure
|
||||
(delete 'configure)
|
||||
(replace 'check
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke "make" "selftest" make-flags)
|
||||
(lambda _
|
||||
(invoke "make" "selftest")
|
||||
(invoke "./zerotier-selftest")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2022-2023 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages wasm)
|
||||
#:use-module (guix base32)
|
||||
|
@ -16,62 +31,60 @@
|
|||
#:use-module (gnu packages python))
|
||||
|
||||
(define-public wasi-libc
|
||||
(package
|
||||
(name "wasi-libc")
|
||||
(version "sdk-19")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/WebAssembly/wasi-libc")
|
||||
(commit (string-append "wasi-" version))
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bnpz8wk9wiic938296gxp4vz820bvpi1w41jksjzz5552hql169"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list clang-15))
|
||||
(arguments
|
||||
(list #:tests? #f ;No test suite
|
||||
;; Firefox uses wasm2c to compile WebAssembly to C code, and it
|
||||
;; does not support the memory.copy opcode.
|
||||
;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1773200#c4
|
||||
#:make-flags ''("BULK_MEMORY_SOURCES=")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'set-sysroot-include
|
||||
(lambda _
|
||||
(setenv "C_INCLUDE_PATH"
|
||||
(string-append (getcwd) "/sysroot/include"))))
|
||||
(add-before 'install 'set-install-dir
|
||||
(lambda _
|
||||
(setenv "INSTALL_DIR"
|
||||
(string-append #$output "/wasm32-wasi")))))))
|
||||
(home-page "https://wasi.dev")
|
||||
(synopsis "WASI libc implementation for WebAssembly")
|
||||
(description
|
||||
"WASI Libc is a libc for WebAssembly programs built on top of WASI
|
||||
(let ((commit "ad5133410f66b93a2381db5b542aad5e0964db96")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "wasi-libc")
|
||||
(version (git-version "0.1-alpha" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/WebAssembly/wasi-libc")
|
||||
(commit commit)
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"146jamq2q24vxjfpcwlqj84wzc80cbpbg0ns2wimyvzbanah48j6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list clang-13))
|
||||
(arguments
|
||||
(list #:tests? #f ;No test suite
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'set-sysroot-include
|
||||
(lambda _
|
||||
(setenv "C_INCLUDE_PATH"
|
||||
(string-append (getcwd) "/sysroot/include"))))
|
||||
(add-before 'install 'set-install-dir
|
||||
(lambda _
|
||||
(setenv "INSTALL_DIR"
|
||||
(string-append #$output "/wasm32-wasi")))))))
|
||||
(home-page "https://wasi.dev")
|
||||
(synopsis "WASI libc implementation for WebAssembly")
|
||||
(description
|
||||
"WASI Libc is a libc for WebAssembly programs built on top of WASI
|
||||
system calls. It provides a wide array of POSIX-compatible C APIs, including
|
||||
support for standard I/O, file I/O, filesystem manipulation, memory
|
||||
management, time, string, environment variables, program startup, and many
|
||||
other APIs.")
|
||||
(license (list
|
||||
;; For wasi-libc, with LLVM exceptions
|
||||
license:asl2.0
|
||||
;; For malloc.c.
|
||||
license:cc0
|
||||
;; For cloudlibc.
|
||||
license:bsd-2
|
||||
;; For wasi-libc and musl-libc.
|
||||
license:expat))))
|
||||
(license (list
|
||||
;; For wasi-libc, with LLVM exceptions
|
||||
license:asl2.0
|
||||
;; For malloc.c.
|
||||
license:cc0
|
||||
;; For cloudlibc.
|
||||
license:bsd-2
|
||||
;; For wasi-libc and musl-libc.
|
||||
license:expat)))))
|
||||
|
||||
(define-public wasm32-wasi-clang-runtime
|
||||
(package (inherit clang-runtime-15)
|
||||
(package (inherit clang-runtime-13)
|
||||
(native-inputs
|
||||
(list clang-15
|
||||
(list clang-13
|
||||
wasi-libc))
|
||||
(inputs (list llvm-15))
|
||||
(inputs (list llvm-13))
|
||||
(arguments
|
||||
(list
|
||||
#:build-type "Release"
|
||||
|
@ -94,7 +107,9 @@ other APIs.")
|
|||
|
||||
;; WASM only needs libclang_rt.builtins-wasm32.a from
|
||||
;; compiler-rt.
|
||||
"../source/compiler-rt/lib/builtins")))))
|
||||
(string-append "../compiler-rt-"
|
||||
#$(package-version clang-runtime-13)
|
||||
".src/lib/builtins"))))))
|
||||
|
||||
;; FIXME: Ideally we wouldn't need to build a separate compiler because clang
|
||||
;; can support multiple targets at runtime. However Guix patches the default
|
||||
|
@ -102,10 +117,12 @@ other APIs.")
|
|||
;; upstream Guix's support for cross-compiling with clang.
|
||||
|
||||
(define clang-from-llvm (@@ (gnu packages llvm) clang-from-llvm))
|
||||
(define llvm-monorepo (@@ (gnu packages llvm) llvm-monorepo))
|
||||
|
||||
(define-public wasm32-wasi-clang
|
||||
(let ((base (clang-from-llvm llvm-15 wasm32-wasi-clang-runtime)))
|
||||
(let ((base (clang-from-llvm llvm-13 wasm32-wasi-clang-runtime
|
||||
(bytevector->nix-base32-string
|
||||
(content-hash-value
|
||||
(origin-hash (package-source clang-13)))))))
|
||||
(package (inherit base)
|
||||
(name "wasm32-wasi-clang")
|
||||
(inputs
|
||||
|
@ -126,8 +143,17 @@ other APIs.")
|
|||
(define-public wasm32-wasi-libcxx
|
||||
(package
|
||||
(name "wasm32-wasi-libcxx")
|
||||
(version (package-version llvm-15))
|
||||
(source (llvm-monorepo version))
|
||||
(version "13.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/llvm/llvm-project")
|
||||
(commit (string-append "llvmorg-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cjl0vssi4y2g4nfr710fb6cdhxmn5r0vis15sf088zsc5zydfhw"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu packages wine)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -9,7 +24,6 @@
|
|||
#: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)
|
||||
|
@ -22,7 +36,7 @@
|
|||
(define-public winetricks
|
||||
(package
|
||||
(name "winetricks")
|
||||
(version "20230212")
|
||||
(version "20220411")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -31,47 +45,48 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"15glm6ws0zihcks93l39mli8wf5b5vkijb0vaid9cqra6x0zppd5"))))
|
||||
"09bv6wsm3y9p6jhlcmnjlnczdyr996b2mvxg4fbvlqa3fv9gac8n"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list cabextract
|
||||
p7zip
|
||||
perl
|
||||
;; unrar ; TODO: Include unrar? It is referenced in the source.
|
||||
unzip
|
||||
wget
|
||||
zenity))
|
||||
`(("cabextract" ,cabextract)
|
||||
("p7zip" ,p7zip)
|
||||
("perl" ,perl)
|
||||
;; ("unrar" ,unrar) ; TODO: Include unrar? It is referenced in the source.
|
||||
("unzip" ,unzip)
|
||||
("wget" ,wget)
|
||||
("zenity" ,zenity)))
|
||||
(arguments
|
||||
(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)))))))))
|
||||
`(#: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)))))))))
|
||||
(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,64 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; 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 (nongnu packages nvidia)
|
||||
#:export (nvidia-configuration
|
||||
nvidia-configuration?
|
||||
nvidia-configuration-record?
|
||||
nvidia-service-type))
|
||||
|
||||
(define-record-type* <nvidia-configuration>
|
||||
nvidia-configuration make-nvidia-configuration
|
||||
nvidia-configuration?
|
||||
(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)
|
||||
(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
|
||||
(name 'nvidia)
|
||||
(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
|
||||
(compose list nvidia-configuration-driver))
|
||||
(service-extension firmware-service-type
|
||||
(compose list nvidia-configuration-firmware))
|
||||
(service-extension linux-loadable-module-service-type
|
||||
(compose list nvidia-configuration-module))))
|
||||
(default-value (nvidia-configuration))
|
||||
(description "Prepare system environment for NVIDIA driver.")))
|
|
@ -1,16 +1,28 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
|
||||
;;; Copyright © 2025 James Kalyan <mjkalyan@proton.me>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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-service-type
|
||||
zerotier-one-service))
|
||||
#:export (zerotier-one-service))
|
||||
|
||||
(define %zerotier-action-join
|
||||
(shepherd-action
|
||||
|
@ -50,18 +62,12 @@
|
|||
(list (string-append #$zerotier "/sbin/zerotier-one"))))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define zerotier-service-type
|
||||
(service-type (name 'zerotier)
|
||||
(define zerotier-one-service-type
|
||||
(service-type (name 'zerotier-one)
|
||||
(description "ZeroTier One daemon.")
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
zerotier-one-shepherd-service)))
|
||||
(default-value '())))
|
||||
zerotier-one-shepherd-service)))))
|
||||
|
||||
(define-deprecated/alias
|
||||
zerotier-one-service-type
|
||||
zerotier-service-type)
|
||||
|
||||
(define-deprecated (zerotier-one-service #:key (config '()))
|
||||
zerotier-service-type
|
||||
(define* (zerotier-one-service #:key (config (list)))
|
||||
(service zerotier-one-service-type config))
|
||||
|
|
|
@ -1,47 +1,33 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;; Generate a bootable image (e.g. for USB sticks, etc.) with:
|
||||
;; $ guix system image --image-type=iso9660 nongnu/system/install.scm
|
||||
;; $ guix system disk-image nongnu/system/install.scm
|
||||
|
||||
(define-module (nongnu system install)
|
||||
#: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)
|
||||
|
@ -53,19 +39,6 @@
|
|||
git
|
||||
neovim
|
||||
zile)
|
||||
(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)))))))
|
||||
(operating-system-packages installation-os)))))
|
||||
|
||||
installation-os-nonfree
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nongnu system linux-initrd)
|
||||
#:use-module (gnu system linux-initrd)
|
||||
|
@ -67,9 +79,7 @@ MICROCODE-PACKAGES, in the format expected by the kernel."
|
|||
"/initrd.cpio"))
|
||||
|
||||
(define (combined-initrd . initrds)
|
||||
"Return a combined initrd, the result of concatenating INITRDS. This relies
|
||||
on the kernel ability to detect and load multiple initrds archives from a
|
||||
single file."
|
||||
"Return a combined initrd, the result of concatenating INITRDS."
|
||||
(define builder
|
||||
(with-imported-modules (source-module-closure
|
||||
'((guix build utils)
|
||||
|
@ -77,28 +87,13 @@ single file."
|
|||
#:select? import-nonguix-module?)
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(nonguix build utils)
|
||||
(srfi srfi-1))
|
||||
(nonguix build utils))
|
||||
|
||||
;; Use .img suffix since the result is no longer easily inspected by
|
||||
;; standard tools like cpio and gzip.
|
||||
;;
|
||||
;; The initrds may contain "references" files to keep some items
|
||||
;; such as the static guile alive. Concatenate them in a single,
|
||||
;; top-level references file.
|
||||
(let ((initrd (string-append #$output "/initrd.img"))
|
||||
(references
|
||||
(filter-map
|
||||
(lambda (initrd)
|
||||
(let ((ref (string-append (dirname initrd)
|
||||
"/references")))
|
||||
(and (file-exists? ref) ref)))
|
||||
'#$initrds))
|
||||
(new-references
|
||||
(string-append #$output "/references")))
|
||||
(let ((initrd (string-append #$output "/initrd.img")))
|
||||
(mkdir-p #$output)
|
||||
(concatenate-files '#$initrds initrd)
|
||||
(concatenate-files references new-references)))))
|
||||
(concatenate-files '#$initrds initrd)))))
|
||||
|
||||
(file-append (computed-file "combined-initrd" builder)
|
||||
"/initrd.img"))
|
||||
|
|
|
@ -1,6 +1,21 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2021 Josselin Poiret <dev@jpoiret.xyz>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nonguix build-system binary)
|
||||
#:use-module (guix store)
|
||||
|
@ -41,11 +56,7 @@
|
|||
|
||||
;; Do not use `@' to avoid introducing circular dependencies.
|
||||
(let ((module (resolve-interface '(gnu packages elf))))
|
||||
;; 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)))
|
||||
(module-ref module 'patchelf)))
|
||||
|
||||
(define (default-glibc)
|
||||
"Return the default glibc package."
|
||||
|
|
|
@ -1,220 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
|
||||
(define-module (nonguix build-system chromium-binary)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cups)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix search-paths)
|
||||
#:use-module (guix build-system)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module (nonguix utils)
|
||||
#:export (%chromium-binary-build-system-modules
|
||||
lower
|
||||
chromium-binary-build
|
||||
chromium-binary-build-system))
|
||||
|
||||
;; Commentary:
|
||||
;;
|
||||
;; Standard build procedure for Chromium based binary packages. This is
|
||||
;; implemented as an extension of `binary-build-system'.
|
||||
;;
|
||||
;; Code:
|
||||
|
||||
(define %chromium-binary-build-system-modules
|
||||
;; Build-side modules imported by default.
|
||||
`((nonguix build chromium-binary-build-system)
|
||||
(nonguix build utils)
|
||||
,@%binary-build-system-modules))
|
||||
|
||||
(define (build-patchelf-plan wrapper-plan inputs)
|
||||
#~(let ((patchelf-inputs
|
||||
(list #$@(map car inputs))))
|
||||
(map (lambda (file)
|
||||
;; Either an entry in WRAPPER-PLAN is just a string which can be
|
||||
;; used directly, or it is a list where the second element is a
|
||||
;; list of additional inputs for patchelf-plan.
|
||||
(if (list? file)
|
||||
(cons (car file) (list (append patchelf-inputs (cadr file))))
|
||||
(cons file (list patchelf-inputs))))
|
||||
#$wrapper-plan)))
|
||||
|
||||
(define* (lower name
|
||||
#:key source inputs native-inputs outputs system target
|
||||
(patchelf (default-patchelf))
|
||||
(glibc (default-glibc))
|
||||
#:allow-other-keys
|
||||
#:rest arguments)
|
||||
"Return a bag for NAME."
|
||||
(define private-keywords
|
||||
'(#:target #:patchelf #:inputs #:native-inputs))
|
||||
(define host-inputs
|
||||
`(,@(if source
|
||||
`(("source" ,source))
|
||||
'())
|
||||
|
||||
("alsa-lib" ,alsa-lib)
|
||||
("atk" ,atk)
|
||||
("at-spi2-atk" ,at-spi2-atk)
|
||||
("at-spi2-core" ,at-spi2-core)
|
||||
("bash-minimal" ,bash-minimal)
|
||||
("cairo" ,cairo)
|
||||
("cups" ,cups)
|
||||
("dbus" ,dbus)
|
||||
("eudev" ,eudev)
|
||||
("expat" ,expat)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("gcc:lib" ,gcc "lib")
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("libdrm" ,libdrm)
|
||||
("libnotify" ,libnotify)
|
||||
("librsvg" ,librsvg)
|
||||
("libsecret" ,libsecret)
|
||||
("libx11" ,libx11)
|
||||
("libxcb" ,libxcb)
|
||||
("libxcomposite" ,libxcomposite)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxdamage" ,libxdamage)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxi" ,libxi)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("libxkbfile" ,libxkbfile)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxrender" ,libxrender)
|
||||
("libxshmfence" ,libxshmfence)
|
||||
("libxtst" ,libxtst)
|
||||
("mesa" ,mesa)
|
||||
("mit-krb5" ,mit-krb5)
|
||||
("nspr" ,nspr)
|
||||
("nss" ,nss)
|
||||
("pango" ,pango)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("sqlcipher" ,sqlcipher)
|
||||
("xcb-util" ,xcb-util)
|
||||
("xcb-util-image" ,xcb-util-image)
|
||||
("xcb-util-keysyms" ,xcb-util-keysyms)
|
||||
("xcb-util-renderutil" ,xcb-util-renderutil)
|
||||
("xcb-util-wm" ,xcb-util-wm)
|
||||
("zlib" ,zlib)
|
||||
|
||||
,@inputs
|
||||
;; Keep the standard inputs of 'gnu-build-system'.
|
||||
,@(standard-packages)))
|
||||
|
||||
(and (not target) ;XXX: no cross-compilation
|
||||
(bag
|
||||
(name name)
|
||||
(system system)
|
||||
(host-inputs host-inputs)
|
||||
(build-inputs `(("patchelf" ,patchelf)
|
||||
,@native-inputs
|
||||
;; If current system is i686, the *32 packages will be the
|
||||
;; same as the non-32, but that's OK.
|
||||
("libc32" ,(to32 glibc))))
|
||||
(outputs outputs)
|
||||
(build chromium-binary-build)
|
||||
(arguments (append
|
||||
(strip-keyword-arguments private-keywords arguments)
|
||||
(list #:wrap-inputs (alist-delete "source" host-inputs)))))))
|
||||
|
||||
(define* (chromium-binary-build name inputs
|
||||
#:key
|
||||
guile source wrap-inputs
|
||||
(outputs '("out"))
|
||||
(wrapper-plan ''())
|
||||
(patchelf-plan ''())
|
||||
(install-plan ''(("." "./")))
|
||||
(search-paths '())
|
||||
(out-of-source? #t)
|
||||
(validate-runpath? #t)
|
||||
(patch-shebangs? #t)
|
||||
(strip-binaries? #t)
|
||||
(strip-flags ''("--strip-debug"))
|
||||
(strip-directories ''("lib" "lib64" "libexec"
|
||||
"bin" "sbin"))
|
||||
(phases '(@ (nonguix build chromium-binary-build-system)
|
||||
%standard-phases))
|
||||
(system (%current-system))
|
||||
(imported-modules %chromium-binary-build-system-modules)
|
||||
(modules '((nonguix build chromium-binary-build-system)
|
||||
(guix build utils)
|
||||
(nonguix build utils)))
|
||||
(substitutable? #t)
|
||||
allowed-references
|
||||
disallowed-references)
|
||||
"Build SOURCE using binary-build-system. WRAPPER-PLAN is a list of strings for
|
||||
files which patchelf will add the INPUTS (which implicitly includes the base
|
||||
packages needed for chromium-based binaries) to RPATH and wrap with needed
|
||||
environment variables. Optionally, an entry can be a list with the first
|
||||
entry the file to be patched and the second a list of additional inputs for
|
||||
patchelf, like PATCHELF-PLAN in binary-build-system. PATCHELF-PLAN itself is
|
||||
ignored if WRAPPER-PLAN is not '()."
|
||||
(define builder
|
||||
(with-imported-modules imported-modules
|
||||
#~(begin
|
||||
(use-modules #$@modules)
|
||||
|
||||
#$(with-build-variables inputs outputs
|
||||
#~(chromium-binary-build #:source #+source
|
||||
#:system #$system
|
||||
#:outputs %outputs
|
||||
#:inputs %build-inputs
|
||||
#:patchelf-plan
|
||||
#$(if (equal? wrapper-plan ''())
|
||||
patchelf-plan
|
||||
(build-patchelf-plan wrapper-plan
|
||||
wrap-inputs))
|
||||
#:install-plan #$install-plan
|
||||
#:search-paths '#$(map search-path-specification->sexp
|
||||
search-paths)
|
||||
#:phases #$phases
|
||||
#:out-of-source? #$out-of-source?
|
||||
#:validate-runpath? #$validate-runpath?
|
||||
#:patch-shebangs? #$patch-shebangs?
|
||||
#:strip-binaries? #$strip-binaries?
|
||||
#:strip-flags #$strip-flags
|
||||
#:strip-directories #$strip-directories)))))
|
||||
|
||||
(mlet %store-monad ((guile (package->derivation (or guile (default-guile))
|
||||
system #:graft? #f)))
|
||||
(gexp->derivation name builder
|
||||
#:system system
|
||||
#:target #f
|
||||
#:substitutable? substitutable?
|
||||
#:allowed-references allowed-references
|
||||
#:disallowed-references disallowed-references
|
||||
#:guile-for-build guile)))
|
||||
|
||||
(define chromium-binary-build-system
|
||||
(build-system
|
||||
(name 'chromium-binary)
|
||||
(description "The Chromium based binary build system")
|
||||
(lower lower)))
|
||||
|
||||
;;; chromium-binary.scm ends here
|
|
@ -1,15 +1,27 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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))
|
||||
|
||||
|
@ -116,10 +128,6 @@ 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")))
|
||||
|
@ -140,42 +148,10 @@ The inputs are optional when the file is an executable."
|
|||
patchelf-plan)))
|
||||
#t)
|
||||
|
||||
(define (deb-file? binary-file)
|
||||
(string-suffix? ".deb" binary-file))
|
||||
|
||||
(define (unpack-deb deb-file)
|
||||
(invoke "ar" "x" deb-file)
|
||||
(let ((data-file (find file-exists?
|
||||
(list "data.tar.xz" "data.tar.gz"
|
||||
"data.tar.bz2"))))
|
||||
(invoke "tar" "xvf" data-file)
|
||||
(invoke "rm" "-rfv" "control.tar.gz"
|
||||
data-file
|
||||
deb-file
|
||||
"debian-binary")))
|
||||
|
||||
(define* (binary-unpack #:key source #:allow-other-keys)
|
||||
(let* ((files (filter (lambda (f)
|
||||
(not (string=? (basename f) "environment-variables")))
|
||||
(find-files (getcwd))))
|
||||
(binary-file (car files)))
|
||||
(when (= 1 (length files))
|
||||
(mkdir "binary")
|
||||
(chdir "binary")
|
||||
(match binary-file
|
||||
((? deb-file?) (unpack-deb binary-file))
|
||||
(_
|
||||
(begin
|
||||
(format #t "Unknown file type: ~a~%" (basename binary-file))
|
||||
;; Cleanup after ourselves
|
||||
(chdir "..")
|
||||
(rmdir "binary")))))))
|
||||
|
||||
(define %standard-phases
|
||||
;; Everything is as with the GNU Build System except for the `binary-unpack',
|
||||
;; `configure', `build', `check' and `install' phases.
|
||||
;; Everything is as with the GNU Build System except for the `configure'
|
||||
;; , `build', `check' and `install' phases.
|
||||
(modify-phases gnu:%standard-phases
|
||||
(add-after 'unpack 'binary-unpack binary-unpack)
|
||||
(delete 'bootstrap)
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
|
||||
(define-module (nonguix build chromium-binary-build-system)
|
||||
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||
#:use-module ((nonguix build binary-build-system) #:prefix binary:)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (%standard-phases
|
||||
chromium-binary-build))
|
||||
|
||||
;; Commentary:
|
||||
;;
|
||||
;; Builder-side code of the Chromium binary build procedure.
|
||||
;;
|
||||
;; Code:
|
||||
|
||||
(define* (install-wrapper #:key inputs outputs #:allow-other-keys)
|
||||
(let* ((output (assoc-ref outputs "out"))
|
||||
(bin (string-append output "/bin"))
|
||||
(fontconfig-minimal (assoc-ref inputs "fontconfig"))
|
||||
(nss (assoc-ref inputs "nss"))
|
||||
(wrap-inputs (map cdr inputs))
|
||||
(lib-directories
|
||||
(search-path-as-list '("lib") wrap-inputs))
|
||||
(bin-directories
|
||||
(search-path-as-list
|
||||
'("bin" "sbin" "libexec")
|
||||
wrap-inputs)))
|
||||
(for-each
|
||||
(lambda (exe)
|
||||
(display (string-append "Wrapping " exe "\n"))
|
||||
(wrap-program exe
|
||||
`("FONTCONFIG_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(list
|
||||
(string-append fontconfig-minimal "/etc/fonts")
|
||||
output)
|
||||
":")))
|
||||
`("PATH" ":" prefix
|
||||
(,(string-join
|
||||
(append
|
||||
bin-directories
|
||||
(list
|
||||
bin))
|
||||
":")))
|
||||
`("LD_LIBRARY_PATH" ":" prefix
|
||||
(,(string-join
|
||||
(append
|
||||
lib-directories
|
||||
(list
|
||||
(string-append nss "/lib/nss")
|
||||
output))
|
||||
":")))
|
||||
;; Give a hint to Electron-based apps to detect if Wayland or X11 should
|
||||
;; be used.
|
||||
;; NOTE: The env-var version of this CLI arg was added in Electron >=28
|
||||
`("ELECTRON_OZONE_PLATFORM_HINT" ":" =
|
||||
("auto"))))
|
||||
(map
|
||||
(lambda (exe) (string-append bin "/" exe))
|
||||
(filter
|
||||
(lambda (exe) (not (string-prefix? "." exe)))
|
||||
(scandir bin))))
|
||||
#t))
|
||||
|
||||
(define %standard-phases
|
||||
;; Everything is as with the binary-build-system except for the
|
||||
;; `install-wrapper' phase.
|
||||
(modify-phases binary:%standard-phases
|
||||
(add-after 'install 'install-wrapper install-wrapper)))
|
||||
|
||||
(define* (chromium-binary-build #:key inputs (phases %standard-phases)
|
||||
#:allow-other-keys #:rest args)
|
||||
"Build the given package, applying all of PHASES in order."
|
||||
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
|
||||
|
||||
;;; chromium-binary-build-system.scm ends here
|
|
@ -1,18 +1,30 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nonguix build utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (64-bit?
|
||||
make-wrapper
|
||||
concatenate-files
|
||||
build-paths-from-inputs))
|
||||
concatenate-files))
|
||||
|
||||
(define (64-bit? file)
|
||||
"Return true if ELF file is in 64-bit format, false otherwise.
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nonguix download)
|
||||
#:use-module (guix derivations)
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nonguix licenses)
|
||||
#:use-module (guix licenses)
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation, either version 3 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (nonguix modules)
|
||||
#:use-module (ice-9 match)
|
||||
|
|
|
@ -1,17 +1,28 @@
|
|||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is not part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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 (gnu services)
|
||||
#:export (with-transformation))
|
||||
#:use-module (guix packages))
|
||||
|
||||
(define-public (to32 package64)
|
||||
"Build package for i686-linux.
|
||||
|
@ -25,45 +36,3 @@ 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