Merge branch nonguix:master into qby-master-patch-anonsurf-parrot

This commit is contained in:
qby 2024-03-19 20:56:28 +00:00
commit 12a3f2f1bf
21 changed files with 700 additions and 450 deletions

View File

@ -1,4 +1,5 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
;; Per-directory local variables for GNU Emacs 23 and later. ;; Per-directory local variables for GNU Emacs 23 and later.
((nil ((nil
@ -9,7 +10,9 @@
;; For use with 'bug-reference-prog-mode'. ;; For use with 'bug-reference-prog-mode'.
(bug-reference-url-format . "https://gitlab.com/nonguix/nonguix/issues/%s") (bug-reference-url-format . "https://gitlab.com/nonguix/nonguix/issues/%s")
(bug-reference-bug-regexp (bug-reference-bug-regexp
. "\\(#\\([0-9]+\\)\\)"))) . "\\(#\\([0-9]+\\)\\)")
(geiser-insert-actual-lambda . nil)))
(c-mode . ((c-file-style . "gnu"))) (c-mode . ((c-file-style . "gnu")))
(scheme-mode (scheme-mode
. .

View File

@ -9,6 +9,34 @@
(channel-news (channel-news
(version 0) (version 0)
(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") (entry (commit "9456c59cfa580399ab450ca0057321e2d81f3319")
(title (title
(en "Linux LTS kernel updated to 6.1") (en "Linux LTS kernel updated to 6.1")

View File

@ -15,6 +15,7 @@
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages pciutils) #:use-module (gnu packages pciutils)
#:use-module (gnu packages photo) #:use-module (gnu packages photo)
#:use-module (gnu packages qt)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (gnu packages wget) #:use-module (gnu packages wget)
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
@ -55,24 +56,19 @@
'("chrome" '("chrome"
"chrome-sandbox" "chrome-sandbox"
"chrome_crashpad_handler" "chrome_crashpad_handler"
"nacl_helper"
"libEGL.so" "libEGL.so"
"libGLESv2.so"))) "libGLESv2.so"
"liboptimization_guide_internal.so"
"libqt5_shim.so"
"libqt6_shim.so"
"libvk_swiftshader.so"
"libvulkan.so.1"
"WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))
#:install-plan #:install-plan
#~'(("opt/" "/share") #~'(("opt/" "/share")
("usr/share/" "/share")) ("usr/share/" "/share"))
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'unpack-deb
(lambda* (#:key inputs #:allow-other-keys)
(invoke "ar" "x" #$source)
(invoke "rm" "-v" "control.tar.xz"
"debian-binary"
(string-append "google-chrome-" #$repo "_"
#$version
"-1_amd64.deb"))
(invoke "tar" "xf" "data.tar.xz")
(invoke "rm" "-vrf" "data.tar.xz" "etc")))
(add-before 'install 'patch-assets (add-before 'install 'patch-assets
;; Many thanks to ;; Many thanks to
;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/google-chrome/default.nix ;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/google-chrome/default.nix
@ -119,7 +115,6 @@
(symlink chrome-target exe) (symlink chrome-target exe)
(wrap-program exe (wrap-program exe
'("CHROME_WRAPPER" = (#$appname))))))))) '("CHROME_WRAPPER" = (#$appname)))))))))
(native-inputs (list tar))
(inputs (inputs
(list bzip2 (list bzip2
curl curl
@ -135,6 +130,8 @@
opus opus
pciutils pciutils
pipewire pipewire
qtbase-5
qtbase
snappy snappy
util-linux util-linux
xdg-utils xdg-utils
@ -146,10 +143,10 @@
(license (nonfree "https://www.google.com/intl/en/chrome/terms/"))))) (license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
(define-public google-chrome-stable (define-public google-chrome-stable
(make-google-chrome "stable" "118.0.5993.70" "1bq170l0g9yq17x6xlg6fjar6gv3hdi0zijwmx4s02pmw6727484")) (make-google-chrome "stable" "121.0.6167.139" "1b08wqflp1j5yqpw2g9z2s239gs8bzqbxigcxk93aqwf5c21ijkh"))
(define-public google-chrome-beta (define-public google-chrome-beta
(make-google-chrome "beta" "117.0.5938.22" "11w1di146mjb9ql30df9yk9x4b9amc6514jzyfbf09mqsrw88dvr")) (make-google-chrome "beta" "122.0.6261.6" "1b12bjcg99f6bjfhm311hdx9s1a4i13mcgxbvf1gpzq8989c1g96"))
(define-public google-chrome-unstable (define-public google-chrome-unstable
(make-google-chrome "unstable" "119.0.6034.6" "156rsklyi1z014pyximwyjsnc2rhdky1kck9g63738vnhcv398b0")) (make-google-chrome "unstable" "123.0.6262.5" "04mf9nysdn77371fxa3z0wbvy2k09vw49s3lrcynlwgiwrz89a3m"))

View File

@ -26,15 +26,15 @@
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public chromium-embedded-framework (define-public chromium-embedded-framework
(let ((git-revision "d0bbcbb") (let ((git-revision "5053a95")
(chromium-version "103.0.5060.114") (chromium-version "117.0.5938.150")
(arch (match (or (%current-target-system) (%current-system)) (arch (match (or (%current-target-system) (%current-system))
("aarch64-linux" "linuxarm64") ("aarch64-linux" "linuxarm64")
("armhf-linux" "linuxarm") ("armhf-linux" "linuxarm")
(_ "linux64")))) (_ "linux64"))))
(package (package
(name "chromium-embedded-framework") (name "chromium-embedded-framework")
(version "103.0.9") (version "117.2.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -45,7 +45,7 @@
"_" arch "_minimal.tar.bz2")) "_" arch "_minimal.tar.bz2"))
(sha256 (sha256
(base32 (base32
"143x0jmasl4z16bkxlrbz874chd9x9xpc5qylb9h7j80gfcrzlsi")))) "0vzzwq1k6bv9d209yg3samvfnfwj7s58y9r3p3pd98wxa9iyzf4j"))))
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
`(#:patchelf-plan `(#:patchelf-plan

View File

@ -2,6 +2,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2020 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(define-module (nongnu packages clojure) (define-module (nongnu packages clojure)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -11,6 +12,7 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (nonguix build-system binary) #:use-module (nonguix build-system binary)
@ -85,7 +87,7 @@ lets you focus on your code.")
(define-public clj-kondo (define-public clj-kondo
(package (package
(name "clj-kondo") (name "clj-kondo")
(version "2023.01.20") (version "2023.10.20")
(source (origin (source (origin
(method url-fetch/zipbomb) (method url-fetch/zipbomb)
(uri (string-append (uri (string-append
@ -93,23 +95,20 @@ lets you focus on your code.")
version "/clj-kondo-" version "-linux-amd64.zip")) version "/clj-kondo-" version "-linux-amd64.zip"))
(sha256 (sha256
(base32 (base32
"0i91qaqjnrg7ad0rs1r4rjwi77pr16dhck9bflb4kiyggcbs4dds")))) "1zb4bkmhv5mh18z8h82qa1a0m95pd5dwdxg31pqgs6lnlca3vsph"))))
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
`(#:patchelf-plan (list #:patchelf-plan `'(("clj-kondo" ("gcc" "zlib")))
'(("clj-kondo" ("gcc:lib" "zlib"))) #:install-plan `'(("clj-kondo" "/bin/"))
#:install-plan #:phases #~(modify-phases %standard-phases
'(("clj-kondo" "/bin/"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chmod (add-after 'unpack 'chmod
(lambda _ (lambda _
(chmod "clj-kondo" #o755)))))) (chmod "clj-kondo" #o755))))))
(native-inputs (native-inputs
`(("unzip" ,unzip))) (list unzip))
(inputs (inputs
`(("gcc:lib" ,gcc "lib") (list `(,gcc "lib")
("zlib" ,zlib))) zlib))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(home-page "https://github.com/clj-kondo/clj-kondo") (home-page "https://github.com/clj-kondo/clj-kondo")
(synopsis "Linter for Clojure code") (synopsis "Linter for Clojure code")

View File

@ -8,21 +8,26 @@
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix licenses) :prefix license:) #:use-module ((guix licenses) :prefix license:)
#:use-module (nonguix build-system chromium-binary)) #:use-module (nonguix build-system chromium-binary)
#:use-module (ice-9 match))
(define-public vscodium (define-public vscodium
(package (package
(name "vscodium") (name "vscodium")
(version "1.81.1.23222") (version "1.87.0.24060")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (uri
(let ((arch (match (or (%current-target-system) (%current-system))
("aarch64-linux" "arm64")
("armhf-linux" "armhf")
(_ "x64"))))
(string-append (string-append
"https://github.com/VSCodium/vscodium/releases/download/" version "https://github.com/VSCodium/vscodium/releases/download/" version
"/VSCodium-linux-x64-" version ".tar.gz")) "/VSCodium-linux-" arch "-" version ".tar.gz")))
(sha256 (sha256
(base32 "0wx53ajjwil82s3nl6wvpdf01mh33yqasf1ia54s1rfzz10fa1m6")))) (base32 "1lw7j8h0i96mg8si8dmi55ldbz5j63zb93qf1g59siavx84f1zpd"))))
(build-system chromium-binary-build-system) (build-system chromium-binary-build-system)
(arguments (arguments
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files (list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
@ -80,6 +85,7 @@
(,(string-join (,(string-join
(list (string-append #$output "/opt/vscodium")) (list (string-append #$output "/opt/vscodium"))
":"))))))))) ":")))))))))
(supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
(native-inputs (native-inputs
(list tar)) (list tar))
(inputs (inputs

View File

@ -1,6 +1,8 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2023 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2023 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; 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) (define-module (nongnu packages electron)
#:use-module (nonguix build-system chromium-binary) #:use-module (nonguix build-system chromium-binary)
@ -13,11 +15,8 @@
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages video)) #:use-module (gnu packages video))
(define-public electron (define (electron-source version hash)
(package (origin
(name "electron")
(version "27.1.0")
(source (origin
(method url-fetch/zipbomb) (method url-fetch/zipbomb)
(uri (uri
(string-append (string-append
@ -29,7 +28,14 @@
("aarch64-linux" "linux-arm64") ("aarch64-linux" "linux-arm64")
("armhf-linux" "linux-armv7l")) ("armhf-linux" "linux-armv7l"))
".zip")) ".zip"))
(sha256 (base32 "08illknzcikzzsb6i7z1p2xgb20jjc5cx9hynll25f44q9pg48b6")))) (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) (build-system chromium-binary-build-system)
(arguments (arguments
`(#:wrapper-plan `(#:wrapper-plan
@ -81,3 +87,18 @@ Chromium and is used by the Atom editor and many other apps.")
(license (license:nonfree (license (license:nonfree
(string-append "https://github.com/electron/electron/blob/v" (string-append "https://github.com/electron/electron/blob/v"
version "/LICENSE"))))) 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"))))

View File

@ -35,28 +35,22 @@
#~'("lib/LycheeSlicer/lycheeslicer") #~'("lib/LycheeSlicer/lycheeslicer")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(replace 'unpack (add-after 'binary-unpack 'setup-cwd
(lambda _ (lambda _
(invoke "ar" "x" #$source)
(invoke "tar" "xvf" "data.tar.xz")
;; Use the more standard lib directory for everything. ;; Use the more standard lib directory for everything.
(rename-file "opt/" "lib") (rename-file "opt/" "lib")
(mkdir-p "share") (mkdir-p "share")
(copy-recursively "usr/share" "share") (copy-recursively "usr/share" "share")
;; Remove unneeded files. ;; Remove unneeded files.
(delete-file-recursively "usr") (delete-file-recursively "usr")))
(delete-file "control.tar.gz") (add-after 'setup-cwd 'fix-desktop-file
(delete-file "data.tar.xz")
(delete-file "debian-binary")))
(add-after 'unpack 'fix-desktop-file
(lambda _ (lambda _
;; Fix the .desktop file binary location. ;; Fix the .desktop file binary location.
(substitute* '("share/applications/lycheeslicer.desktop") (substitute* '("share/applications/lycheeslicer.desktop")
(("/opt/LycheeSlicer") (("/opt/LycheeSlicer")
(string-append #$output "/lib/LycheeSlicer"))))) (string-append #$output "/lib/LycheeSlicer")))))
(add-before 'install-wrapper 'symlink-binary-file-and-cleanup (add-before 'install-wrapper 'symlink-binary-file
(lambda _ (lambda _
(delete-file (string-append #$output "/environment-variables"))
(mkdir-p (string-append #$output "/bin")) (mkdir-p (string-append #$output "/bin"))
(symlink (string-append #$output "/lib/LycheeSlicer/lycheeslicer") (symlink (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
(string-append #$output "/bin/lycheeslicer")))) (string-append #$output "/bin/lycheeslicer"))))
@ -68,7 +62,6 @@
(list (list
(string-append #$output "/lib/LycheeSlicer")) (string-append #$output "/lib/LycheeSlicer"))
":"))))))))) ":")))))))))
(native-inputs (list tar))
(inputs (inputs
(list libxscrnsaver)) (list libxscrnsaver))
(home-page "https://mango3d.io") (home-page "https://mango3d.io")

View File

@ -2,6 +2,7 @@
;;; Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2022-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com> ;;; Copyright © 2023 Krzysztof Baranowski <pharcosyle@gmail.com>
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
(define-module (nongnu packages firmware) (define-module (nongnu packages firmware)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -134,16 +135,18 @@ HDMI to USB Type-C Bridge in the PinePhone.")
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
`(#:substitutable? #f `(#:substitutable? #f
#:install-plan '( ;Bluetooth firmware #:install-plan '(;;Bluetooth firmware
("BCM4345C5.hcd" "usr/lib/firmware/brcm/") ("BCM4345C5.hcd" "/lib/firmware/brcm/")
;; WiFi firmware ;; WiFi firmware
("fw_bcm43456c5_ag.bin" "usr/lib/firmware/brcm/") ("fw_bcm43456c5_ag.bin" "/lib/firmware/brcm/")
("fw_bcm43456c5_ag.bin"
"/lib/firmware/brcm/brcmfmac43456-sdio.bin")
("brcmfmac43456-sdio.clm_blob" ("brcmfmac43456-sdio.clm_blob"
"usr/lib/firmware/brcm/") "/lib/firmware/brcm/")
("brcmfmac43456-sdio.AP6256.txt" ("brcmfmac43456-sdio.AP6256.txt"
"usr/lib/firmware/brcm/") "/lib/firmware/brcm/")
("brcmfmac43456-sdio.AP6256.txt" ("brcmfmac43456-sdio.AP6256.txt"
"usr/lib/firmware/brcm/brcmfmac43456-sdio.pine64,pinebook-pro.txt")))) "/lib/firmware/brcm/brcmfmac43456-sdio.pine64,pinebook-pro.txt"))))
(synopsis "Firmware for the wifi/bt module AP6256") (synopsis "Firmware for the wifi/bt module AP6256")
(description (description
"This package provides Firmware for the wifi/bt module AP6256, "This package provides Firmware for the wifi/bt module AP6256,

View File

@ -4,16 +4,18 @@
;;; Copyright © 2021 pineapples ;;; Copyright © 2021 pineapples
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me> ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
;;; Copyright © 2021 Kozo <kozodev@runbox.com> ;;; Copyright © 2021 Kozo <kozodev@runbox.com>
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2021, 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2023 Elijah Malaby ;;; Copyright © 2023 Elijah Malaby
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
(define-module (nongnu packages steam-client) (define-module (nongnu packages game-client)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module ((nonguix licenses) #:prefix license:) #:use-module ((nonguix licenses) #:prefix license:)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages audio) #:use-module (gnu packages audio)
@ -21,6 +23,7 @@
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages certs) #:use-module (gnu packages certs)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages elf) #:use-module (gnu packages elf)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages fonts) #:use-module (gnu packages fonts)
@ -48,13 +51,72 @@
#:use-module (gnu packages toolkits) #:use-module (gnu packages toolkits)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (nonguix build-system chromium-binary)
#:use-module (nonguix multiarch-container) #:use-module (nonguix multiarch-container)
#:use-module (nonguix utils)) #:use-module (nonguix utils))
(define heroic-client
(package
(name "heroic-client")
(version "2.12.0")
(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
"0ikb9r72n7xknns81mibipfwqh0r9hqnm5a3k4xsk8my1gajc60c"))))
(build-system chromium-binary-build-system)
(arguments
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
#:wrapper-plan
#~'("lib/Heroic/heroic"
"lib/Heroic/libEGL.so"
"lib/Heroic/libGLESv2.so"
"lib/Heroic/libvk_swiftshader.so"
"lib/Heroic/libvulkan.so.1"
"lib/Heroic/chrome-sandbox"
"lib/Heroic/chrome_crashpad_handler"
"lib/Heroic/libffmpeg.so")
#: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 binary location.
(substitute* '("share/applications/heroic.desktop")
(("/opt/Heroic/")
(string-append #$output "/bin/")))))
(add-after 'install 'symlink-binary-file
(lambda _
(mkdir-p (string-append #$output "/bin"))
(symlink (string-append #$output "/lib/Heroic/heroic")
(string-append #$output "/bin/heroic"))))
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
(lambda _
(wrap-program (string-append #$output "/lib/Heroic/heroic")
`("LD_LIBRARY_PATH" ":" prefix
(,(string-join
(list
(string-append #$output "/lib/Heroic"))
":")))))))))
(home-page "https://heroicgameslauncher.com")
(synopsis "A 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 (define steam-client
(package (package
(name "steam-client") (name "steam-client")
(version "1.0.0.75") (version "1.0.0.78")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -62,7 +124,7 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"19rn29slsxv7b5fisr1jzn79bskzifbj5hmxqn2436ivwfjna9g5")) "0390qy8vy7sx35hxl51yrbk6mvdz1vvpy96v07qva4bjbmsmjhhh"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -156,6 +218,11 @@
("python" ,python) ; Required for KillingFloor2 and Wreckfest. ("python" ,python) ; Required for KillingFloor2 and Wreckfest.
("spdlog" ,spdlog))) ; Required for MangoHud. ("spdlog" ,spdlog))) ; Required for MangoHud.
(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 (define steam-ld.so.conf
(packages->ld.so.conf (packages->ld.so.conf
(list (fhs-union `(,@steam-client-libs (list (fhs-union `(,@steam-client-libs
@ -189,8 +256,7 @@
,@fhs-min-libs) ,@fhs-min-libs)
#:name "fhs-union-32" #:name "fhs-union-32"
#:system "i686-linux")) #:system "i686-linux"))
(link-files '("share/applications/steam.desktop" (link-files '("share"))
"share/applications/steam-asound32.desktop"))
(description "Steam is a digital software distribution platform created by (description "Steam is a digital software distribution platform created by
Valve. This package provides a script for launching Steam in a Guix container 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 which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
@ -200,12 +266,58 @@ all games will be installed.")))
(nonguix-container (nonguix-container
(inherit steam-container) (inherit steam-container)
(name "steam-nvidia") (name "steam-nvidia")
;; Steam's .desktop files expect a "steam" executable, so provide that.
(binary-name "steam")
(union64 (replace-mesa (ngc-union64 steam-container))) (union64 (replace-mesa (ngc-union64 steam-container)))
(union32 (replace-mesa (ngc-union32 steam-container))))) (union32 (replace-mesa (ngc-union32 steam-container)))))
(define-public steam (nonguix-container->package steam-container)) (define-public steam (nonguix-container->package steam-container))
(define-public steam-nvidia (nonguix-container->package steam-nvidia-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-client-libs
,@steam-gameruntime-libs
,@fhs-min-libs)
#:name "fhs-union-64"))
;; Don't include heroic-client-libs as they are not needed in 32-bit.
(union32
(fhs-union `(,@steam-client-libs
,@steam-gameruntime-libs
,@fhs-min-libs)
#: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")
(union64 (replace-mesa (ngc-union64 heroic-container)))
(union32 (replace-mesa (ngc-union32 heroic-container)))))
(define-public heroic (nonguix-container->package heroic-container))
(define-public heroic-nvidia (nonguix-container->package heroic-nvidia-container))
(define-public protonup-ng (define-public protonup-ng
(package (package
(name "protonup-ng") (name "protonup-ng")

View File

@ -22,7 +22,7 @@
(define-public lgogdownloader (define-public lgogdownloader
(package (package
(name "lgogdownloader") (name "lgogdownloader")
(version "3.11") (version "3.12")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -31,7 +31,7 @@
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0mcwl6vfyy91sq1816j4v3lhf06dz1rr58hsq8hqx217z102s86d")))) (base32 "0kmz5zsbci7iilbqdvql9c1vk2b1q2flsdr6psnkln07xp664di2"))))
(build-system qt-build-system) (build-system qt-build-system)
(arguments (arguments
`(#:configure-flags '("-DUSE_QT_GUI=ON") `(#:configure-flags '("-DUSE_QT_GUI=ON")

View File

@ -4,7 +4,7 @@
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020, 2021 James Smith <jsubuntuxp@disroot.org> ;;; Copyright © 2020, 2021 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2020, 2021, 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020-2024 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021, 2022 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020, 2021, 2022 Zhu Zihao <all_but_last@163.com>
@ -13,7 +13,7 @@
;;; Copyright © 2021 Risto Stevcev <me@risto.codes> ;;; Copyright © 2021 Risto Stevcev <me@risto.codes>
;;; Copyright © 2021 aerique <aerique@xs4all.nl> ;;; Copyright © 2021 aerique <aerique@xs4all.nl>
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz> ;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net> ;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com> ;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
@ -24,6 +24,8 @@
;;; Copyright © 2023 Adam Kandur <rndd@tuta.io> ;;; Copyright © 2023 Adam Kandur <rndd@tuta.io>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Ada Stevenson <adanskana@gmail.com> ;;; Copyright © 2023 Ada Stevenson <adanskana@gmail.com>
;;; Copyright © 2023 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2023 PRESFIL <presfil@protonmail.com>
(define-module (nongnu packages linux) (define-module (nongnu packages linux)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -46,22 +48,48 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:export (corrupt-linux)) #:export (corrupt-linux))
(define %default-extra-linux-options
(@@ (gnu packages linux) %default-extra-linux-options))
(define config->string
(@@ (gnu packages linux) config->string))
(define (linux-url version) (define (linux-url version)
"Return a URL for Linux VERSION." "Return a URL for Linux VERSION."
(string-append "mirror://kernel.org" (string-append "mirror://kernel.org"
"/linux/kernel/v" (version-major version) ".x" "/linux/kernel/v" (version-major version) ".x"
"/linux-" version ".tar.xz")) "/linux-" version ".tar.xz"))
;;; If you are corrupting the kernel on your own, consider using output of
;;; this procedure as a base for your options:
;;; (corrupt-linux linux-libre-lts
;;; #:configs (cons* "CONFIG_FOO=y"
;;; (nonguix-extra-linux-options linux-libre-lts)
(define-public (nonguix-extra-linux-options linux-or-version)
"Return a list containing additional options that nonguix sets by default
for a corrupted linux package of specified version. linux-or-version can be
some freedo package or an output of package-version procedure."
(define linux-version
(if (package? linux-or-version)
(package-version linux-or-version)
linux-or-version))
(reverse (fold (lambda (opt opts)
(if (version>=? linux-version (car opt))
(cons* (cdr opt) opts)
opts))
'()
;; List of additional options for nonguix corrupted linux.
;; Each member is a pair of a minimal version (>=) and the
;; option itself. Option has to be in a format suitable for
;; (@ (guix build kconfig) modify-defconfig) procedure.
;;
;; Do note that this list is intended for enabling use of
;; hardware requiring non-free firmware. If a configuration
;; option does work under linux-libre, it should go into Guix
;; actual.
'(
;; Driver for MediaTek mt7921e wireless chipset
("5.15" . "CONFIG_MT7921E=m")))))
(define* (corrupt-linux freedo (define* (corrupt-linux freedo
#:key #:key
(name "linux") (name "linux")
(configs '()) (configs (nonguix-extra-linux-options freedo))
(defconfig #f)) (defconfig #f))
;; TODO: This very directly depends on guix internals. ;; TODO: This very directly depends on guix internals.
@ -90,6 +118,7 @@
(inherit (inherit
(customize-linux (customize-linux
#:name name #:name name
#:linux freedo
#:source (origin #:source (origin
(method url-fetch) (method url-fetch)
(uri url) (uri url)
@ -103,12 +132,12 @@
"The unmodified Linux kernel, including nonfree blobs, for running Guix System "The unmodified Linux kernel, including nonfree blobs, for running Guix System
on hardware which requires nonfree software to function.")))) on hardware which requires nonfree software to function."))))
(define-public linux-6.7
(corrupt-linux linux-libre-6.7))
(define-public linux-6.6 (define-public linux-6.6
(corrupt-linux linux-libre-6.6)) (corrupt-linux linux-libre-6.6))
(define-public linux-6.5
(corrupt-linux linux-libre-6.5))
(define-public linux-6.1 (define-public linux-6.1
(corrupt-linux linux-libre-6.1)) (corrupt-linux linux-libre-6.1))
@ -124,10 +153,7 @@ on hardware which requires nonfree software to function."))))
(define-public linux-4.19 (define-public linux-4.19
(corrupt-linux linux-libre-4.19)) (corrupt-linux linux-libre-4.19))
(define-public linux-4.14 (define-public linux linux-6.7)
(corrupt-linux linux-libre-4.14))
(define-public linux linux-6.6)
;; linux-lts points to the *newest* released long-term support version. ;; linux-lts points to the *newest* released long-term support version.
(define-public linux-lts linux-6.1) (define-public linux-lts linux-6.1)
@ -145,41 +171,79 @@ on hardware which requires nonfree software to function."))))
;;; Linux-XanMod ;;; Linux-XanMod
;;; ;;;
(define (make-linux-xanmod-source version xanmod-revision hash-string) (define* (make-linux-xanmod-source version xanmod-revision
#:key xanmod-branch kernel-hash xanmod-hash)
(define %upstream-linux-source
(@@ (gnu packages linux) %upstream-linux-source))
(define kernel-source
(%upstream-linux-source (version-major+minor version) kernel-hash))
(define xanmod-patch
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gitlab.com/xanmod/linux/-/archive/" (uri (string-append
version "-" xanmod-revision ".tar.bz2")) "mirror://sourceforge/xanmod/releases/" xanmod-branch "/"
(sha256 hash-string))) version "-" xanmod-revision "/patch-"
version "-" xanmod-revision ".xz"))
(sha256 xanmod-hash)))
(origin
(inherit kernel-source)
(modules '((guix build utils)))
(snippet
#~(begin
(let* ((xz-name (basename #+xanmod-patch))
(patch-xz-name (string-append (string-drop-right xz-name 3)
".patch.xz"))
(patch-name (string-drop-right patch-xz-name 3)))
(copy-file #+xanmod-patch patch-xz-name)
(invoke #+(file-append xz "/bin/unxz") patch-xz-name)
(invoke #+(file-append patch "/bin/patch")
"--force" "--no-backup-if-mismatch"
#+@(origin-patch-flags kernel-source)
"--input" patch-name)
(for-each delete-file
(list patch-name
;; EXTRAVERSION is used instead.
"localversion")))))))
(define* (make-linux-xanmod version xanmod-revision source (define* (make-linux-xanmod version xanmod-revision source
#:key #:key
(name "linux-xanmod") (name "linux-xanmod")
(xanmod-defconfig "config_x86-64-v1")) (xanmod-defconfig "config_x86-64-v1"))
(let ((defconfig xanmod-defconfig) ;to be used in phases.
(base (customize-linux #:name name (define %default-extra-linux-options
(@@ (gnu packages linux) %default-extra-linux-options))
(define config->string
(@@ (gnu packages linux) config->string))
(define base-kernel
(customize-linux
#:name name
#:source source #:source source
#:defconfig xanmod-defconfig #:defconfig xanmod-defconfig
;; EXTRAVERSION is used instead. ;; EXTRAVERSION is used instead.
#:configs (config->string #:configs (config->string
'(("CONFIG_LOCALVERSION" . ""))) '(("CONFIG_LOCALVERSION" . "")))
#:extra-version xanmod-revision))) #:extra-version xanmod-revision))
(package (package
(inherit base) (inherit base-kernel)
(version version) (version version)
(arguments (arguments
(substitute-keyword-arguments (package-arguments base) (substitute-keyword-arguments (package-arguments base-kernel)
((#:phases phases) ((#:phases phases)
#~(modify-phases #$phases #~(modify-phases #$phases
;; EXTRAVERSION is used instead. ;; Since `customize-linux' replaces the configure phase, we add
(add-after 'unpack 'remove-localversion ;; XanMod defconfig beforehand to ensure compatibility of the
(lambda _ ;; resulting package with `customize-linux'.
(when (file-exists? "localversion")
(delete-file "localversion"))))
(add-before 'configure 'add-xanmod-defconfig (add-before 'configure 'add-xanmod-defconfig
(lambda _ (lambda _
(rename-file (rename-file
(string-append "CONFIGS/xanmod/gcc/" #$defconfig) (string-append "CONFIGS/xanmod/gcc/" #$xanmod-defconfig)
".config") ".config")
;; Adapted from `make-linux-libre*'. ;; Adapted from `make-linux-libre*'.
@ -187,47 +251,51 @@ on hardware which requires nonfree software to function."))))
(let ((port (open-file ".config" "a")) (let ((port (open-file ".config" "a"))
(extra-configuration (extra-configuration
#$(config->string #$(config->string
;; FIXME: There might be other support missing. (append %default-extra-linux-options
(append '(("CONFIG_BLK_DEV_NVME" . #t) ;; NOTE: These are configs expected by Guix
;; but missing from XanMod defconfig.
'(("CONFIG_BLK_DEV_NVME" . #t)
("CONFIG_CRYPTO_XTS" . m) ("CONFIG_CRYPTO_XTS" . m)
("CONFIG_VIRTIO_CONSOLE" . m)) ("CONFIG_VIRTIO_CONSOLE" . m))))))
%default-extra-linux-options))))
(display extra-configuration port) (display extra-configuration port)
(close-port port)) (close-port port))
(invoke "make" "oldconfig") (invoke "make" "oldconfig")
(rename-file (rename-file
".config" ".config"
(string-append "arch/x86/configs/" #$defconfig)))))))) (string-append "arch/x86/configs/" #$xanmod-defconfig))))))))
(native-inputs (native-inputs
(modify-inputs (package-native-inputs base) (modify-inputs (package-native-inputs base-kernel)
;; cpio is needed for CONFIG_IKHEADERS. ;; cpio is needed for CONFIG_IKHEADERS.
(append cpio zstd))) (prepend cpio zstd)))
(home-page "https://xanmod.org/") (home-page "https://xanmod.org/")
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(synopsis (synopsis "Linux kernel distribution with custom settings and new features")
"Linux kernel distribution with custom settings and new features")
(description (description
"This package provides XanMod kernel, a general-purpose Linux kernel "This package provides XanMod kernel, a general-purpose Linux kernel
distribution with custom settings and new features. It's built to provide a distribution with custom settings and new features. It's built to provide a
stable, responsive and smooth desktop experience.")))) stable, responsive and smooth desktop experience.")))
;; Linux-XanMod sources ;; Linux-XanMod sources
(define-public linux-xanmod-version "6.5.10") (define-public linux-xanmod-version "6.7.6")
(define-public linux-xanmod-revision "xanmod1") (define-public linux-xanmod-revision "xanmod1")
(define-public linux-xanmod-source (define-public linux-xanmod-source
(make-linux-xanmod-source (make-linux-xanmod-source
linux-xanmod-version linux-xanmod-version
linux-xanmod-revision linux-xanmod-revision
(base32 "020f97pd45lg9nw38j4hz4kqd2ch81fqdp3qkpnzpxf8kihzn2li"))) #:xanmod-branch "main"
#:kernel-hash (base32 "0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg")
#:xanmod-hash (base32 "0hv76dj9z17w6zcy25v1ndlmdw593wlbmnw5x903vidb3c6a1dfi")))
(define-public linux-xanmod-lts-version "6.1.61") (define-public linux-xanmod-lts-version "6.6.18")
(define-public linux-xanmod-lts-revision "xanmod1") (define-public linux-xanmod-lts-revision "xanmod1")
(define-public linux-xanmod-lts-source (define-public linux-xanmod-lts-source
(make-linux-xanmod-source (make-linux-xanmod-source
linux-xanmod-lts-version linux-xanmod-lts-version
linux-xanmod-lts-revision linux-xanmod-lts-revision
(base32 "1rp9g9qdrr2l0wwxx4myz6kr3agznama2r6q8an505l8mwdgwll8"))) #:xanmod-branch "lts"
#:kernel-hash (base32 "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr")
#:xanmod-hash (base32 "1q33bd4a65l46333l2m7vjn46b0xhdbz508bq7q0bphbmy0bf35m")))
;; Linux-XanMod packages ;; Linux-XanMod packages
(define-public linux-xanmod (define-public linux-xanmod
@ -248,22 +316,23 @@ stable, responsive and smooth desktop experience."))))
(define-public linux-firmware (define-public linux-firmware
(package (package
(name "linux-firmware") (name "linux-firmware")
(version "20231111") (version "20240115")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/firmware/" (uri (string-append "mirror://kernel.org/linux/kernel/firmware/"
"linux-firmware-" version ".tar.xz")) "linux-firmware-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"165hrdwfvkqngmdf5s759wzfk8wpa8h6bln31bjady1z570mjjcd")) "13b75kd075famc58pvx4r9268pxn69nyihx7p3i6i7mvkgqayz5b"))))
(patches
(search-patches "nongnu/packages/patches/copy-firmware-rdfind.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'install
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(apply invoke "make" "install-nodedup" make-flags)))
(delete 'validate-runpath)))) (delete 'validate-runpath))))
(home-page (home-page
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git") "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git")
@ -703,8 +772,8 @@ package contains nonfree firmware for the following chips:
(deprecated-package "rtl-bt-firmware" realtek-firmware)) (deprecated-package "rtl-bt-firmware" realtek-firmware))
(define-public rtl8192eu-linux-module (define-public rtl8192eu-linux-module
(let ((commit "865656c3a1d1aee8c4ba459ce7608756d17c712f") (let ((commit "a928f08c1dd4f9a1e84d85811a543e974551bc4f")
(revision "5")) (revision "6"))
(package (package
(name "rtl8192eu-linux-module") (name "rtl8192eu-linux-module")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
@ -717,7 +786,7 @@ package contains nonfree firmware for the following chips:
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"08nq0wlrpzm8n2g14c4jlxs0crr6s5ls1n14bc17zmpy9vlarhfx")))) "1q26kyic4glmgy0hbaq46r067m6cqf7d41chgivyxn8y32rf1fgc"))))
(build-system linux-module-build-system) (build-system linux-module-build-system)
(arguments (arguments
`(#:make-flags `(#:make-flags
@ -740,8 +809,8 @@ network adapters.")
(license gpl2)))) (license gpl2))))
(define-public rtl8821ce-linux-module (define-public rtl8821ce-linux-module
(let ((commit "a478095a45d8aa957b45be4f9173c414efcacc6f") (let ((commit "66983b69120a13699acf40a12979317f29012111")
(revision "10")) (revision "11"))
(package (package
(name "rtl8821ce-linux-module") (name "rtl8821ce-linux-module")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
@ -754,7 +823,7 @@ network adapters.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"00cn87jjrcxjqr3n8jv4w3n64zksmzz05fdr1gdvnbx1ab5739f6")))) "0kj12jll0df1h4z6kzv3vylh22xlniki5kg414fv9sqgx1qgs5k7"))))
(build-system linux-module-build-system) (build-system linux-module-build-system)
(arguments (arguments
(list #:make-flags (list #:make-flags
@ -782,9 +851,63 @@ network adapters.")
;; hal/rtl8821c/hal8821c_fw.c ;; hal/rtl8821c/hal8821c_fw.c
(license gpl2)))) (license gpl2))))
(define-public rtl8821cu-linux-module
(let ((commit "a41ef7cabd1aa36fa2b4eb63a71cf719bff11b72")
(revision "1"))
(package
(name "rtl8821cu-linux-module")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/morrownr/8821cu-20210916")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0fnv4gm4adnf8gbjzc2lljh2a3i111159qira3w0qm1zhyqadaq0"))))
(build-system linux-module-build-system)
(arguments
(list
#:make-flags #~(list (string-append "CC="
#$(cc-for-target))
(string-append "KSRC="
(assoc-ref %build-inputs
"linux-module-builder")
"/lib/modules/build"))
#:phases #~(modify-phases %standard-phases
(replace 'build
(lambda* (#:key (make-flags '())
(parallel-build? #t) #:allow-other-keys)
(apply invoke "make"
`(,@(if parallel-build?
`("-j" ,(number->string (parallel-job-count)))
'()) ,@make-flags)))))
#:tests? #f))
(home-page "https://github.com/morrownr/8821cu-20210916")
(synopsis "Linux driver for Realtek USB WiFi adapters")
(description
"Linux driver for USB WiFi adapters that are based on the
Realtek RTL8811CU, RTL8821CU, RTL8821CUH and RTL8731AU chipsets.
To work, in addition to installing the driver, you need
to disable the conflicting rtw88 driver:
@example
(operating-system
;; ...
;; Blacklist conflicting kernel modules.
(kernel-arguments '(\"modprobe.blacklist=rtw88_8821cu\"))
(kernel-loadable-modules (list rtl8821cu-linux-module)))
@end example")
;; Rejected by Guix beause it contains a binary blob in:
;; hal/rtl8821c/hal8821c_fw.c
(license (nonfree
"https://github.com/morrownr/8821cu-20210916/blob/main/LICENSE")))))
(define-public rtl8812au-aircrack-ng-linux-module (define-public rtl8812au-aircrack-ng-linux-module
(let ((commit "35308f4dd73e77fa572c48867cce737449dd8548") (let ((commit "a3e0c0b6d54546418f046db0dbf1d20e454c9ec2")
(revision "11")) (revision "12"))
(package (package
(inherit rtl8821ce-linux-module) (inherit rtl8821ce-linux-module)
(name "rtl8812au-aircrack-ng-linux-module") (name "rtl8812au-aircrack-ng-linux-module")
@ -797,7 +920,7 @@ network adapters.")
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1clqrgmq5fhzybbiapmdbhg5qfx9k21r0hqa9pqmyinaqhvfnhfj")) (base32 "1hwzsy62h7ik5s54paikcj5ips7mrnfacprciiq412mz5ag28cdn"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin
@ -821,7 +944,7 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
(define-public r8168-linux-module (define-public r8168-linux-module
(package (package
(name "r8168-linux-module") (name "r8168-linux-module")
(version "8.051.02") (version "8.052.01")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -830,19 +953,9 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"16mpr0np6xbmzdnwg4p3q6yli2gh032k98g4vplya33hrn50vh52")))) "01mi7hh92nc7jaxkfrpz7j0ci78djrhgmq0im4k1270mwmvr0yzj"))))
(arguments (arguments
(list #:tests? #f (list #:tests? #f))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'enter-src-directory
(lambda _
(chdir "src")))
;; Needed to compile module for linux >= 6.1
(add-before 'build 'fix-build
(lambda _
(substitute* "r8168.h"
(("netif_napi_add\\(ndev, &priv->napi, function, weight\\)")
"netif_napi_add(ndev, &priv->napi, function)")))))))
(build-system linux-module-build-system) (build-system linux-module-build-system)
(home-page "https://github.com/mtorromeo/r8168") (home-page "https://github.com/mtorromeo/r8168")
(synopsis "Linux driver for Realtek PCIe network adapters") (synopsis "Linux driver for Realtek PCIe network adapters")
@ -1041,7 +1154,7 @@ chipsets from Broadcom:
(define-public facetimehd (define-public facetimehd
(package (package
(name "facetimehd") (name "facetimehd")
(version "0.5.18") (version "0.6.8")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1051,7 +1164,7 @@ chipsets from Broadcom:
(file-name (git-file-name "facetimehd" version)) (file-name (git-file-name "facetimehd" version))
(sha256 (sha256
(base32 (base32
"1598pzjnbij3knvqmk2yslj26wmqiqjqgqgcw9p9jx6z7bdjvvsh")))) "1g0ky9w5klkjndf30mjymq78r6yls9gri9x702nn8qkmgkjbqdsg"))))
(build-system linux-module-build-system) (build-system linux-module-build-system)
(arguments (arguments
'(#:tests? #f)) '(#:tests? #f))
@ -1075,7 +1188,7 @@ driver:
(define-public intel-microcode (define-public intel-microcode
(package (package
(name "intel-microcode") (name "intel-microcode")
(version "20231114") (version "20240312")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1086,7 +1199,7 @@ driver:
(commit (string-append "microcode-" version)))) (commit (string-append "microcode-" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "07c7hkwpvb9056s73s55sg04cxr1d9n1sd9r1g7sm3gh70yc17ki")))) (base32 "1j1krkmp9kxmpq8bbbld8bm3y9rqhmlj5qfm43czikawnpw81571"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan

View File

@ -1,16 +1,14 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2023 André A. Gomes <andremegafone@gmail.com> ;;; Copyright © 2023, 2024 André A. Gomes <andremegafone@gmail.com>
(define-module (nongnu packages lisp) (define-module (nongnu packages lisp)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages node)
#:use-module (gnu packages lisp) #:use-module (gnu packages lisp)
#:use-module (gnu packages lisp-xyz) #:use-module (gnu packages lisp-xyz)
;; #:use-module (gnu packages lisp-check)
#:use-module (nongnu packages electron) #:use-module (nongnu packages electron)
#:use-module (guix build-system copy) #:use-module (guix build-system copy)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -125,8 +123,8 @@ then open a browser at http://localhost:PORT, where PORT is the indicated port."
"https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf")))) "https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf"))))
(define-public sbcl-cl-electron (define-public sbcl-cl-electron
(let ((commit "458a60d8c9baae71906294ffae891c3d0686c672") (let ((commit "f2245dc1450a6ad416984cf932be50e00957390a")
(revision "2")) (revision "3"))
(package (package
(name "sbcl-cl-electron") (name "sbcl-cl-electron")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
@ -138,13 +136,22 @@ then open a browser at http://localhost:PORT, where PORT is the indicated port."
(commit commit))) (commit commit)))
(file-name (git-file-name "cl-electron" version)) (file-name (git-file-name "cl-electron" version))
(sha256 (sha256
(base32 "1ya6y55kv0g3h19ifnmwbc752p00s9mj1b1n4ljw4n7ycxmdpb24")))) (base32 "0c18xbwwnjaiwzd01dprdrwzp27nwihaf7pmkql1f5yk43x3ajs0"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(native-inputs (list ;; sbcl-lisp-unit2 (inputs (list electron
sbcl))
(inputs (list electron node
sbcl-cl-json sbcl-iolib sbcl-cl-str sbcl-nclasses sbcl-cl-json sbcl-iolib sbcl-cl-str sbcl-nclasses
sbcl-parenscript sbcl-bordeaux-threads)) sbcl-cl-ppcre sbcl-bordeaux-threads sbcl-lparallel
sbcl-parenscript sbcl-spinneret))
(arguments
'(#:tests? #f
#:asd-systems '("cl-electron" "cl-electron/demos")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "source/core.lisp"
(("\"electron\"")
(string-append "\"" (assoc-ref inputs "electron") "/bin/electron\""))))))))
(synopsis "Common Lisp interface to Electron") (synopsis "Common Lisp interface to Electron")
(home-page "https://github.com/atlas-engineer/cl-electron") (home-page "https://github.com/atlas-engineer/cl-electron")
(description "@command{cl-electron} is a binding to Electron for (description "@command{cl-electron} is a binding to Electron for

View File

@ -1,6 +1,6 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2021, 2022 PantherX OS Team <team@pantherx.org> ;;; Copyright © 2021, 2022 PantherX OS Team <team@pantherx.org>
;;; Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Evgenii Lepikhin <johnlepikhin@gmail.com> ;;; Copyright © 2022 Evgenii Lepikhin <johnlepikhin@gmail.com>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2023 Raven Hallsby <karl@hallsby.org> ;;; Copyright © 2023 Raven Hallsby <karl@hallsby.org>
@ -36,7 +36,7 @@
(define-public element-desktop (define-public element-desktop
(package (package
(name "element-desktop") (name "element-desktop")
(version "1.11.41") (version "1.11.57")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -45,7 +45,7 @@
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version "https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
"_amd64.deb")) "_amd64.deb"))
(sha256 (sha256
(base32 "1m07b1ykmxly16irca171z4f718as7hqsccp1q7qrqj9b5lkmv64")))) (base32 "05318i6z5kkzi01ygr77g5ij0hs4xmy0j23hznkqc4zia02q1vgx"))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(build-system chromium-binary-build-system) (build-system chromium-binary-build-system)
(arguments (arguments
@ -54,25 +54,19 @@
#~'("lib/Element/element-desktop") #~'("lib/Element/element-desktop")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(replace 'unpack (add-after 'binary-unpack 'setup-cwd
(lambda _ (lambda _
(invoke "ar" "x" #$source)
(invoke "tar" "xvf" "data.tar.xz")
(copy-recursively "usr/" ".") (copy-recursively "usr/" ".")
;; Use the more standard lib directory for everything. ;; Use the more standard lib directory for everything.
(rename-file "opt/" "lib") (rename-file "opt/" "lib")
;; Remove unneeded files. ;; Remove unneeded files.
(delete-file-recursively "usr") (delete-file-recursively "usr")
(delete-file "control.tar.gz")
(delete-file "data.tar.xz")
(delete-file "debian-binary")
;; Fix the .desktop file binary location. ;; Fix the .desktop file binary location.
(substitute* '("share/applications/element-desktop.desktop") (substitute* '("share/applications/element-desktop.desktop")
(("/opt/Element/") (("/opt/Element/")
(string-append #$output "/bin/"))))) (string-append #$output "/bin/")))))
(add-after 'install 'symlink-binary-file-and-cleanup (add-after 'install 'symlink-binary-file
(lambda _ (lambda _
(delete-file (string-append #$output "/environment-variables"))
(mkdir-p (string-append #$output "/bin")) (mkdir-p (string-append #$output "/bin"))
(symlink (string-append #$output "/lib/Element/element-desktop") (symlink (string-append #$output "/lib/Element/element-desktop")
(string-append #$output "/bin/element-desktop")))) (string-append #$output "/bin/element-desktop"))))
@ -84,8 +78,6 @@
(list (list
(string-append #$output "/lib/Element")) (string-append #$output "/lib/Element"))
":"))))))))) ":")))))))))
(native-inputs (list tar))
(home-page "https://github.com/vector-im/element-desktop") (home-page "https://github.com/vector-im/element-desktop")
(synopsis "Matrix collaboration client for desktop") (synopsis "Matrix collaboration client for desktop")
(description "Element Desktop is a Matrix client for desktop with Element Web at (description "Element Desktop is a Matrix client for desktop with Element Web at
@ -98,7 +90,7 @@ its core.")
(define-public signal-desktop (define-public signal-desktop
(package (package
(name "signal-desktop") (name "signal-desktop")
(version "6.39.1") (version "6.46.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -107,7 +99,7 @@ its core.")
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version "https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
"_amd64.deb")) "_amd64.deb"))
(sha256 (sha256
(base32 "0rlcn3fyzc69x52g634nd7wryfkkrmykp62wl590shp92nkx8dkl")))) (base32 "1pjv8v1hhycwbvqvih83axv41jkyksq6d9152fqic9d61lbb1kpa"))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(build-system chromium-binary-build-system) (build-system chromium-binary-build-system)
(arguments (arguments
@ -116,26 +108,19 @@ its core.")
#~'("lib/Signal/signal-desktop") #~'("lib/Signal/signal-desktop")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(replace 'unpack (add-after 'binary-unpack 'setup-cwd
(lambda _ (lambda _
(invoke "ar" "x" #$source)
(invoke "tar" "xvf" "data.tar.xz")
(copy-recursively "usr/" ".") (copy-recursively "usr/" ".")
;; Use the more standard lib directory for everything. ;; Use the more standard lib directory for everything.
(rename-file "opt/" "lib") (rename-file "opt/" "lib")
;; Remove unneeded files. ;; Remove unneeded files.
(delete-file-recursively "usr") (delete-file-recursively "usr")
(delete-file "control.tar.gz")
(delete-file "data.tar.xz")
(delete-file "debian-binary")
(delete-file "environment-variables")
;; Fix the .desktop file binary location. ;; Fix the .desktop file binary location.
(substitute* '("share/applications/signal-desktop.desktop") (substitute* '("share/applications/signal-desktop.desktop")
(("/opt/Signal/") (("/opt/Signal/")
(string-append #$output "/bin/"))))) (string-append #$output "/bin/")))))
(add-after 'install 'symlink-binary-file-and-cleanup (add-after 'install 'symlink-binary-file
(lambda _ (lambda _
(delete-file (string-append #$output "/environment-variables"))
(mkdir-p (string-append #$output "/bin")) (mkdir-p (string-append #$output "/bin"))
(symlink (string-append #$output "/lib/Signal/signal-desktop") (symlink (string-append #$output "/lib/Signal/signal-desktop")
(string-append #$output "/bin/signal-desktop")))) (string-append #$output "/bin/signal-desktop"))))
@ -147,7 +132,6 @@ its core.")
(list (list
(string-append #$output "/lib/Signal")) (string-append #$output "/lib/Signal"))
":"))))))))) ":")))))))))
(native-inputs (list tar))
(home-page "https://signal.org/") (home-page "https://signal.org/")
(synopsis "Private messenger using the Signal protocol") (synopsis "Private messenger using the Signal protocol")
(description "Signal Desktop is an Electron application that links with Signal on Android (description "Signal Desktop is an Electron application that links with Signal on Android
@ -160,14 +144,14 @@ or iOS.")
(define-public zoom (define-public zoom
(package (package
(name "zoom") (name "zoom")
(version "5.15.12.7665") (version "5.17.5.2543")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://cdn.zoom.us/prod/" version "/zoom_x86_64.tar.xz")) (uri (string-append "https://cdn.zoom.us/prod/" version "/zoom_x86_64.tar.xz"))
(file-name (string-append name "-" version "-x86_64.tar.xz")) (file-name (string-append name "-" version "-x86_64.tar.xz"))
(sha256 (sha256
(base32 "1pmxgfafwlxnrcw1fay91krjqbf1kaf5ng4f3na0p6liyd5c6fhq")))) (base32 "06m53d3jrpiq1z5wd7m61lb3w8m8g72iaqx5sixnzn290gyyzgim"))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
@ -243,6 +227,9 @@ or iOS.")
"libxrender" "libxrender"
"zlib"))))) "zlib")))))
(wrap-program (string-append #$output "/lib/zoom/zoom") (wrap-program (string-append #$output "/lib/zoom/zoom")
'("QML2_IMPORT_PATH" = ())
'("QT_PLUGIN_PATH" = ())
'("QT_SCREEN_SCALE_FACTORS" = ())
`("FONTCONFIG_PATH" ":" prefix `("FONTCONFIG_PATH" ":" prefix
(,(string-join (,(string-join
(list (list

View File

@ -97,19 +97,19 @@
;; Update this id with every firefox update to its release date. ;; Update this id with every firefox update to its release date.
;; It's used for cache validation and therefore can lead to strange bugs. ;; It's used for cache validation and therefore can lead to strange bugs.
(define %firefox-esr-build-id "20231120132923") (define %firefox-esr-build-id "20240219101823")
(define-public firefox-esr (define-public firefox-esr
(package (package
(name "firefox-esr") (name "firefox-esr")
(version "115.5.0esr") (version "115.8.0esr")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
version "/source/firefox-" version ".source.tar.xz")) version "/source/firefox-" version ".source.tar.xz"))
(sha256 (sha256
(base32 "0a578r4kri7jdw8pkkzp7f1mm9idlk7sjxjghcb08k5p14172gyv")))) (base32 "1slmp2v1q3my81z8kiym9rpxw5d9n4sn07v7hv99517w7vr8d05g"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -241,7 +241,7 @@
(substitute (substitute
file file
`((,(format #f "~s" lib) `((,(format #f "~s" lib)
. ,(λ (line _) . ,(lambda (line _)
(string-replace-substring (string-replace-substring
line line
lib lib
@ -532,20 +532,20 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
;; Update this id with every firefox update to its release date. ;; Update this id with every firefox update to its release date.
;; It's used for cache validation and therefore can lead to strange bugs. ;; It's used for cache validation and therefore can lead to strange bugs.
(define %firefox-build-id "20231129224408") (define %firefox-build-id "20240304165820")
(define-public firefox (define-public firefox
(package (package
(inherit firefox-esr) (inherit firefox-esr)
(name "firefox") (name "firefox")
(version "120.0.1") (version "123.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
version "/source/firefox-" version ".source.tar.xz")) version "/source/firefox-" version ".source.tar.xz"))
(sha256 (sha256
(base32 "1qlsjpiwgr17bd0dphshs6dj23889m7h3sfq8j21b0282hmbprvn")))) (base32 "073lbl2gs7c08kr9h6r2jvl3cvj84h3pdh6aj151c3synravkp6m"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments firefox-esr) (substitute-keyword-arguments (package-arguments firefox-esr)
((#:phases phases) ((#:phases phases)
@ -562,38 +562,7 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
"Full-featured browser client built from Firefox source tree, without "Full-featured browser client built from Firefox source tree, without
the official icon and the name \"firefox\"."))) the official icon and the name \"firefox\".")))
(define-public firefox/wayland ;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no longer need a seperate package
(package ;; for Firefox on Wayland.
(inherit firefox) (define-public firefox-wayland
(name "firefox-wayland") (deprecated-package "firefox-wayland" firefox))
(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))))))

View File

@ -1,31 +0,0 @@
diff --git a/copy-firmware.sh b/copy-firmware.sh
index f9b1f0ff..de28e882 100755
--- a/copy-firmware.sh
+++ b/copy-firmware.sh
@@ -69,11 +69,6 @@ if [ -z "$destdir" ]; then
exit 1
fi
-if ! which rdfind 2>/dev/null >/dev/null; then
- echo "ERROR: rdfind is not installed"
- exit 1
-fi
-
# shellcheck disable=SC2162 # file/folder name can include escaped symbols
grep -E '^(RawFile|File):' WHENCE | sed -E -e 's/^(RawFile|File): */\1 /;s/"//g' | while read k f; do
test -f "$f" || continue
@@ -87,14 +82,6 @@ grep -E '^(RawFile|File):' WHENCE | sed -E -e 's/^(RawFile|File): */\1 /;s/"//g'
fi
done
-$verbose "Finding duplicate files"
-rdfind -makesymlinks true -makeresultsfile false "$destdir" >/dev/null
-find "$destdir" -type l | while read -r l; do
- target="$(realpath "$l")"
- $verbose "Correcting path for $l"
- ln -fs "$(realpath --relative-to="$(dirname "$(realpath -s "$l")")" "$target")" "$l"
-done
-
# shellcheck disable=SC2162 # file/folder name can include escaped symbols
grep -E '^Link:' WHENCE | sed -e 's/^Link: *//g;s/-> //g' | while read f d; do
if test -L "$f$compext"; then

View File

@ -1,7 +1,7 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Kahka F ;;; Copyright © 2021 Kahka F
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2021, 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(define-module (nongnu packages printers) (define-module (nongnu packages printers)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -40,7 +40,7 @@
;; hplip is updated in Guix. ;; hplip is updated in Guix.
(sha256 (sha256
(base32 (base32
"09kixd9pb0p94bw3xyqy9h62gwqnbwcjjsvb2g3wvl6zxp4j1fvy"))))) "0zq66hm7ni6w1c3cxy1gxrxzvyvfn0lhjnia8p4azvz2r309j9s0")))))
(package-native-inputs hplip))) (package-native-inputs hplip)))
(arguments (arguments
(substitute-keyword-arguments (package-arguments hplip) (substitute-keyword-arguments (package-arguments hplip)

View File

@ -24,17 +24,17 @@
(define-public anytype (define-public anytype
(package (package
(name "anytype") (name "anytype")
(version "0.36.0") (version "0.39.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://download.anytype.io?action=download" (string-append "https://anytype-release.fra1.cdn.digitaloceanspaces.com/"
"&key=desktop&id=136705969")) name "_" version "_amd64.deb"))
(file-name (string-append "anytype-" version ".deb")) (file-name (string-append "anytype-" version ".deb"))
(sha256 (sha256
(base32 (base32
"17cs4w3k7nmjav873wwzpxb2dz4mp2zgkpz1karp3x2mxan0x2i3")))) "10y037qwm6k28min2sgpshrlpirc1p0zn3b4syxrrz494x5g2ivi"))))
(build-system chromium-binary-build-system) (build-system chromium-binary-build-system)
(arguments (arguments
(list (list
@ -52,29 +52,25 @@
"libGLESv2.so" "libGLESv2.so"
"libvk_swiftshader.so" "libvk_swiftshader.so"
"libvulkan.so.1" "libvulkan.so.1"
"resources/app.asar.unpacked/dist/nativeMessagingHost"
"resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node")) "resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node"))
#:install-plan #:install-plan
#~'(("opt/" "/share") #~'(("opt/" "/share")
("usr/share/" "/share")) ("usr/share/" "/share"))
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'unpack-deb (add-after 'binary-unpack 'strip-python
(lambda* (#:key inputs #:allow-other-keys) (lambda _
(invoke "ar" "x" #$source) (delete-file
(invoke "rm" "-v" "control.tar.gz" (string-append "opt/Anytype/resources/app.asar.unpacked/"
"debian-binary" "node_modules/keytar/build/node_gyp_bins/python3"))))
(string-append "anytype-" #$version ".deb"))
(invoke "tar" "xvf" "data.tar.xz")
(invoke "rm" "-vrf" "data.tar.xz")))
(add-before 'install 'patch-assets (add-before 'install 'patch-assets
(lambda _ (lambda _
(let* ((bin (string-append #$output "/bin")) (let* ((bin (string-append #$output "/bin"))
(icon (string-append #$output "/share/icons/hicolor/0x0/apps/anytype.png"))
(usr/share "./usr/share") (usr/share "./usr/share")
(old-exe "/opt/Anytype/anytype") (old-exe "/opt/Anytype/anytype")
(exe (string-append bin "/anytype"))) (exe (string-append bin "/anytype")))
(substitute* (string-append usr/share "/applications/anytype.desktop") (substitute* (string-append usr/share "/applications/anytype.desktop")
(("^Icon=anytype") (string-append "Icon=" icon))
(((string-append "^Exec=" old-exe)) (string-append "Exec=" exe)))))) (((string-append "^Exec=" old-exe)) (string-append "Exec=" exe))))))
(add-before 'install-wrapper 'symlink-entrypoint (add-before 'install-wrapper 'symlink-entrypoint
(lambda _ (lambda _
@ -86,7 +82,6 @@
(symlink target exe) (symlink target exe)
(wrap-program exe (wrap-program exe
`("LD_LIBRARY_PATH" = (,share))))))))) `("LD_LIBRARY_PATH" = (,share)))))))))
(native-inputs (list tar))
(inputs (inputs
(list bzip2 (list bzip2
flac flac

View File

@ -13,7 +13,7 @@
(define-public helix-core (define-public helix-core
(package (package
(name "helix-core") (name "helix-core")
(version "r22.1") (version "r23.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ftp.perforce.com/perforce/" version (uri (string-append "https://ftp.perforce.com/perforce/" version
@ -28,7 +28,7 @@
("i686-linux" ("i686-linux"
"0f5qs55rspw86axnmml3nxx551lwbxwz1cgi9kmy2f9g5rrplnkn") "0f5qs55rspw86axnmml3nxx551lwbxwz1cgi9kmy2f9g5rrplnkn")
(_ (_
"077rfbjgyhdgv76i2727s3yk3p52y75nml8n9wv8g7mvhfs9ypa9")))))) "1vqfkhgbx6ch7710w8mmm7hydl6jmd9qgzs0gfjg8gvd5gnh1csr"))))))
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
`(#:strip-binaries? #f `(#:strip-binaries? #f

View File

@ -1,6 +1,7 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name> ;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
(define-module (nonguix build binary-build-system) (define-module (nonguix build binary-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:) #:use-module ((guix build gnu-build-system) #:prefix gnu:)
@ -133,10 +134,39 @@ The inputs are optional when the file is an executable."
patchelf-plan))) patchelf-plan)))
#t) #t)
(define (deb-file? binary-file)
(string-suffix? ".deb" binary-file))
(define (unpack-deb deb-file)
(invoke "ar" "x" deb-file)
(invoke "tar" "xvf" "data.tar.xz")
(invoke "rm" "-rfv" "control.tar.gz"
"data.tar.xz"
deb-file
"debian-binary"))
(define* (binary-unpack #:key source #:allow-other-keys)
(let* ((files (filter (lambda (f)
(not (string=? (basename f) "environment-variables")))
(find-files (getcwd))))
(binary-file (car files)))
(when (= 1 (length files))
(mkdir "binary")
(chdir "binary")
(match binary-file
((? deb-file?) (unpack-deb binary-file))
(_
(begin
(format #t "Unknown file type: ~a~%" (basename binary-file))
;; Cleanup after ourselves
(chdir "..")
(rmdir "binary")))))))
(define %standard-phases (define %standard-phases
;; Everything is as with the GNU Build System except for the `configure' ;; Everything is as with the GNU Build System except for the `binary-unpack',
;; , `build', `check' and `install' phases. ;; `configure', `build', `check' and `install' phases.
(modify-phases gnu:%standard-phases (modify-phases gnu:%standard-phases
(add-after 'unpack 'binary-unpack binary-unpack)
(delete 'bootstrap) (delete 'bootstrap)
(delete 'configure) (delete 'configure)
(delete 'build) (delete 'build)

View File

@ -8,6 +8,7 @@
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name> ;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023 Elijah Malaby ;;; Copyright © 2023 Elijah Malaby
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; The script provided by this package may optionally be started as ;;; The script provided by this package may optionally be started as
;;; a shell instead of automatically launching the wrapped entrypoint by setting ;;; a shell instead of automatically launching the wrapped entrypoint by setting
@ -50,6 +51,7 @@
#:export (nonguix-container #:export (nonguix-container
nonguix-container? nonguix-container?
ngc-name ngc-name
ngc-binary-name
ngc-version ngc-version
ngc-wrap-package ngc-wrap-package
ngc-run ngc-run
@ -82,6 +84,7 @@
nonguix-container make-nonguix-container nonguix-container make-nonguix-container
nonguix-container? this-nonguix-container nonguix-container? this-nonguix-container
(name ngc-name) (name ngc-name)
(binary-name ngc-binary-name (default (ngc-name this-nonguix-container)) (thunked))
(version ngc-version (default #f)) (version ngc-version (default #f))
(wrap-package ngc-wrap-package) (wrap-package ngc-wrap-package)
(run ngc-run) (run ngc-run)
@ -207,7 +210,7 @@ in a sandboxed FHS environment."
(manifest-target (assoc-ref %build-inputs "fhs-manifest")) (manifest-target (assoc-ref %build-inputs "fhs-manifest"))
(manifest-dest (string-append out "/etc/" ,(ngc-manifest-name container))) (manifest-dest (string-append out "/etc/" ,(ngc-manifest-name container)))
(wrapper-target (assoc-ref %build-inputs "fhs-wrapper")) (wrapper-target (assoc-ref %build-inputs "fhs-wrapper"))
(wrapper-dest (string-append out "/bin/" ,(ngc-name container))) (wrapper-dest (string-append out "/bin/" ,(ngc-binary-name container)))
(link-files ',(ngc-link-files container))) (link-files ',(ngc-link-files container)))
(mkdir-p (string-append out "/sbin")) (mkdir-p (string-append out "/sbin"))
(mkdir-p (string-append out "/etc")) (mkdir-p (string-append out "/etc"))
@ -236,6 +239,7 @@ in a sandboxed FHS environment."
in a sandboxed FHS environment." in a sandboxed FHS environment."
(program-file (program-file
(ngc-wrapper-name container) (ngc-wrapper-name container)
(with-imported-modules '((guix build utils))
#~(begin #~(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
(define (preserve-var var) (define (preserve-var var)
@ -284,12 +288,14 @@ in a sandboxed FHS environment."
"^QT_X11_NO_MITSHM$" "^QT_X11_NO_MITSHM$"
"^SDL_" "^SDL_"
"^STEAM_" "^STEAM_"
"^SSL_" ; SSL certificate environment, needed by curl for Heroic.
"^VDPAU_DRIVER_PATH$" ; For VDPAU drivers. "^VDPAU_DRIVER_PATH$" ; For VDPAU drivers.
"^XAUTHORITY$" "^XAUTHORITY$"
;; Matching all ^XDG_ vars causes issues ;; Matching all ^XDG_ vars causes issues
;; discussed in 80decf05. ;; discussed in 80decf05.
"^XDG_DATA_HOME$" "^XDG_DATA_HOME$"
"^XDG_RUNTIME_DIR$" "^XDG_RUNTIME_DIR$"
#$@(ngc-preserved-env container) ; Environment from container.
;; The following are useful for debugging. ;; The following are useful for debugging.
"^CAPSULE_DEBUG$" "^CAPSULE_DEBUG$"
"^G_MESSAGES_DEBUG$" "^G_MESSAGES_DEBUG$"
@ -330,13 +336,12 @@ in a sandboxed FHS environment."
,@(exists-> (getenv "XAUTHORITY")) ,@(exists-> (getenv "XAUTHORITY"))
#$@(ngc-shared container))) #$@(ngc-shared container)))
(DEBUG (equal? (getenv "DEBUG") "1")) (DEBUG (equal? (getenv "DEBUG") "1"))
(extra-shares (if (getenv "GUIX_SANDBOX_EXTRA_SHARES")
(string-split (getenv "GUIX_SANDBOX_EXTRA_SHARES") #\:)
#f))
(args (cdr (command-line))) (args (cdr (command-line)))
(command (if DEBUG '() (command (if DEBUG '()
`("--" ,run ,@args)))) `("--" ,run ,@args))))
;; 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).
(setenv "LD_LIBRARY_PATH" "/lib64:/lib")
;; Set this so Steam's pressure-vessel container does not need to ;; Set this so Steam's pressure-vessel container does not need to
;; generate locales, improving startup time. This needs to be set to ;; generate locales, improving startup time. This needs to be set to
;; the "usual" path, probably so they are included in the ;; the "usual" path, probably so they are included in the
@ -362,9 +367,11 @@ in a sandboxed FHS environment."
,@(map add-path expose) ,@(map add-path expose)
,@(map (lambda (item) ,@(map (lambda (item)
(add-path item #:writable? #t)) (add-path item #:writable? #t))
share) (if extra-shares
(append share extra-shares)
share))
"-m" ,manifest-file "-m" ,manifest-file
,@command)))))) ,@command)))))))
(define (make-container-manifest container fhs-internal) (define (make-container-manifest container fhs-internal)
"Return a scheme file-like object to be used as package manifest for FHS "Return a scheme file-like object to be used as package manifest for FHS
@ -503,6 +510,7 @@ application."
((,union64 "lib/locale") . "/usr/lib/locale") ((,union64 "lib/locale") . "/usr/lib/locale")
((,union64 "sbin/ldconfig") . "/sbin/ldconfig") ((,union64 "sbin/ldconfig") . "/sbin/ldconfig")
((,union64 "share/mime") . "/usr/share/mime") ; Steam tray icon. ((,union64 "share/mime") . "/usr/share/mime") ; Steam tray icon.
((,union64 "share/glib-2.0") . "/usr/share/glib-2.0") ; Heroic interface.
((,union64 "share/drirc.d") . "/usr/share/drirc.d") ((,union64 "share/drirc.d") . "/usr/share/drirc.d")
((,union64 "share/fonts") . "/run/current-system/profile/share/fonts") ((,union64 "share/fonts") . "/run/current-system/profile/share/fonts")
((,union64 "etc/fonts") . "/etc/fonts") ((,union64 "etc/fonts") . "/etc/fonts")
@ -520,6 +528,16 @@ application."
;; (previous would output this error but continue). ;; (previous would output this error but continue).
(if (file-exists? ".steam/root/bootstrap.tar.xz") (if (file-exists? ".steam/root/bootstrap.tar.xz")
(chmod ".steam/root/bootstrap.tar.xz" #o644)) (chmod ".steam/root/bootstrap.tar.xz" #o644))
;; TODO: Should other environment setup also happen inside the
;; container rather than before container is launched?
;;
;; Set this so that e.g. non-Steam games added to Steam will
;; launch properly. It seems otherwise they don't make it to
;; launching Steam's pressure-vessel container (for Proton
;; games). Wait to set this inside the container to not cause
;; issues on foreign distros, see
;; <https://gitlab.com/nonguix/nonguix/-/issues/303>
(setenv "LD_LIBRARY_PATH" "/lib64:/lib")
;; Process FHS-specific command line options. ;; Process FHS-specific command line options.
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec)) (let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
@ -528,7 +546,7 @@ application."
(if asound32-opt (if asound32-opt
(display "\n\n/etc/asound.conf configured for 32-bit.\n\n\n") (display "\n\n/etc/asound.conf configured for 32-bit.\n\n\n")
(display (string-append "\n\n/etc/asound.conf configured for 64-bit.\nLaunch " (display (string-append "\n\n/etc/asound.conf configured for 64-bit.\nLaunch "
#$(ngc-name container) #$(ngc-binary-name container)
" with \"" " with \""
(basename #$(ngc-run container)) (basename #$(ngc-run container))
" -- --asound32\" to use 32-bit instead.\n\n\n"))) " -- --asound32\" to use 32-bit instead.\n\n\n")))