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

View File

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

View File

@ -15,6 +15,7 @@
#: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)
@ -55,24 +56,19 @@
'("chrome"
"chrome-sandbox"
"chrome_crashpad_handler"
"nacl_helper"
"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
#~'(("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
@ -119,7 +115,6 @@
(symlink chrome-target exe)
(wrap-program exe
'("CHROME_WRAPPER" = (#$appname)))))))))
(native-inputs (list tar))
(inputs
(list bzip2
curl
@ -135,6 +130,8 @@
opus
pciutils
pipewire
qtbase-5
qtbase
snappy
util-linux
xdg-utils
@ -146,10 +143,10 @@
(license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
(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
(make-google-chrome "beta" "117.0.5938.22" "11w1di146mjb9ql30df9yk9x4b9amc6514jzyfbf09mqsrw88dvr"))
(make-google-chrome "beta" "122.0.6261.6" "1b12bjcg99f6bjfhm311hdx9s1a4i13mcgxbvf1gpzq8989c1g96"))
(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))
(define-public chromium-embedded-framework
(let ((git-revision "d0bbcbb")
(chromium-version "103.0.5060.114")
(let ((git-revision "5053a95")
(chromium-version "117.0.5938.150")
(arch (match (or (%current-target-system) (%current-system))
("aarch64-linux" "linuxarm64")
("armhf-linux" "linuxarm")
(_ "linux64"))))
(package
(name "chromium-embedded-framework")
(version "103.0.9")
(version "117.2.4")
(source (origin
(method url-fetch)
(uri (string-append
@ -45,7 +45,7 @@
"_" arch "_minimal.tar.bz2"))
(sha256
(base32
"143x0jmasl4z16bkxlrbz874chd9x9xpc5qylb9h7j80gfcrzlsi"))))
"0vzzwq1k6bv9d209yg3samvfnfwj7s58y9r3p3pd98wxa9iyzf4j"))))
(build-system binary-build-system)
(arguments
`(#:patchelf-plan

View File

@ -2,6 +2,7 @@
;;; 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>
(define-module (nongnu packages clojure)
#:use-module (gnu packages compression)
@ -11,6 +12,7 @@
#: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)
@ -85,7 +87,7 @@ lets you focus on your code.")
(define-public clj-kondo
(package
(name "clj-kondo")
(version "2023.01.20")
(version "2023.10.20")
(source (origin
(method url-fetch/zipbomb)
(uri (string-append
@ -93,23 +95,20 @@ lets you focus on your code.")
version "/clj-kondo-" version "-linux-amd64.zip"))
(sha256
(base32
"0i91qaqjnrg7ad0rs1r4rjwi77pr16dhck9bflb4kiyggcbs4dds"))))
"1zb4bkmhv5mh18z8h82qa1a0m95pd5dwdxg31pqgs6lnlca3vsph"))))
(build-system binary-build-system)
(arguments
`(#:patchelf-plan
'(("clj-kondo" ("gcc:lib" "zlib")))
#:install-plan
'(("clj-kondo" "/bin/"))
#:phases
(modify-phases %standard-phases
(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))))))
(native-inputs
`(("unzip" ,unzip)))
(list unzip))
(inputs
`(("gcc:lib" ,gcc "lib")
("zlib" ,zlib)))
(list `(,gcc "lib")
zlib))
(supported-systems '("x86_64-linux"))
(home-page "https://github.com/clj-kondo/clj-kondo")
(synopsis "Linter for Clojure code")

View File

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

View File

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

View File

@ -35,28 +35,22 @@
#~'("lib/LycheeSlicer/lycheeslicer")
#:phases
#~(modify-phases %standard-phases
(replace 'unpack
(add-after 'binary-unpack 'setup-cwd
(lambda _
(invoke "ar" "x" #$source)
(invoke "tar" "xvf" "data.tar.xz")
;; 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")
(delete-file "control.tar.gz")
(delete-file "data.tar.xz")
(delete-file "debian-binary")))
(add-after 'unpack 'fix-desktop-file
(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-and-cleanup
(add-before 'install-wrapper 'symlink-binary-file
(lambda _
(delete-file (string-append #$output "/environment-variables"))
(mkdir-p (string-append #$output "/bin"))
(symlink (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
(string-append #$output "/bin/lycheeslicer"))))
@ -68,7 +62,6 @@
(list
(string-append #$output "/lib/LycheeSlicer"))
":")))))))))
(native-inputs (list tar))
(inputs
(list libxscrnsaver))
(home-page "https://mango3d.io")

View File

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

View File

@ -4,16 +4,18 @@
;;; 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 © 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 steam-client)
(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)
@ -21,6 +23,7 @@
#: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)
@ -48,13 +51,72 @@
#: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.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
(package
(name "steam-client")
(version "1.0.0.75")
(version "1.0.0.78")
(source
(origin
(method url-fetch)
@ -62,7 +124,7 @@
version ".tar.gz"))
(sha256
(base32
"19rn29slsxv7b5fisr1jzn79bskzifbj5hmxqn2436ivwfjna9g5"))
"0390qy8vy7sx35hxl51yrbk6mvdz1vvpy96v07qva4bjbmsmjhhh"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(arguments
@ -156,6 +218,11 @@
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
("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
(packages->ld.so.conf
(list (fhs-union `(,@steam-client-libs
@ -189,8 +256,7 @@
,@fhs-min-libs)
#:name "fhs-union-32"
#:system "i686-linux"))
(link-files '("share/applications/steam.desktop"
"share/applications/steam-asound32.desktop"))
(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
@ -200,12 +266,58 @@ all games will be installed.")))
(nonguix-container
(inherit steam-container)
(name "steam-nvidia")
;; Steam's .desktop files expect a "steam" executable, so provide that.
(binary-name "steam")
(union64 (replace-mesa (ngc-union64 steam-container)))
(union32 (replace-mesa (ngc-union32 steam-container)))))
(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-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
(package
(name "protonup-ng")

View File

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

View File

@ -4,7 +4,7 @@
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020, 2021 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2020, 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, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021, 2022 Zhu Zihao <all_but_last@163.com>
@ -13,7 +13,7 @@
;;; Copyright © 2021 Risto Stevcev <me@risto.codes>
;;; Copyright © 2021 aerique <aerique@xs4all.nl>
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
@ -24,6 +24,8 @@
;;; Copyright © 2023 Adam Kandur <rndd@tuta.io>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Ada Stevenson <adanskana@gmail.com>
;;; Copyright © 2023 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2023 PRESFIL <presfil@protonmail.com>
(define-module (nongnu packages linux)
#:use-module (gnu packages)
@ -46,22 +48,48 @@
#:use-module (srfi srfi-1)
#: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)
"Return a URL for Linux VERSION."
(string-append "mirror://kernel.org"
"/linux/kernel/v" (version-major version) ".x"
"/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
#:key
(name "linux")
(configs '())
(configs (nonguix-extra-linux-options freedo))
(defconfig #f))
;; TODO: This very directly depends on guix internals.
@ -90,6 +118,7 @@
(inherit
(customize-linux
#:name name
#:linux freedo
#:source (origin
(method url-fetch)
(uri url)
@ -103,12 +132,12 @@
"The unmodified Linux kernel, including nonfree blobs, for running Guix System
on hardware which requires nonfree software to function."))))
(define-public linux-6.7
(corrupt-linux linux-libre-6.7))
(define-public linux-6.6
(corrupt-linux linux-libre-6.6))
(define-public linux-6.5
(corrupt-linux linux-libre-6.5))
(define-public linux-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
(corrupt-linux linux-libre-4.19))
(define-public linux-4.14
(corrupt-linux linux-libre-4.14))
(define-public linux linux-6.6)
(define-public linux linux-6.7)
;; linux-lts points to the *newest* released long-term support version.
(define-public linux-lts linux-6.1)
@ -145,41 +171,79 @@ on hardware which requires nonfree software to function."))))
;;; 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
(method url-fetch)
(uri (string-append "https://gitlab.com/xanmod/linux/-/archive/"
version "-" xanmod-revision ".tar.bz2"))
(sha256 hash-string)))
(uri (string-append
"mirror://sourceforge/xanmod/releases/" xanmod-branch "/"
version "-" xanmod-revision "/patch-"
version "-" xanmod-revision ".xz"))
(sha256 xanmod-hash)))
(origin
(inherit kernel-source)
(modules '((guix build utils)))
(snippet
#~(begin
(let* ((xz-name (basename #+xanmod-patch))
(patch-xz-name (string-append (string-drop-right xz-name 3)
".patch.xz"))
(patch-name (string-drop-right patch-xz-name 3)))
(copy-file #+xanmod-patch patch-xz-name)
(invoke #+(file-append xz "/bin/unxz") patch-xz-name)
(invoke #+(file-append patch "/bin/patch")
"--force" "--no-backup-if-mismatch"
#+@(origin-patch-flags kernel-source)
"--input" patch-name)
(for-each delete-file
(list patch-name
;; EXTRAVERSION is used instead.
"localversion")))))))
(define* (make-linux-xanmod version xanmod-revision source
#:key
(name "linux-xanmod")
(xanmod-defconfig "config_x86-64-v1"))
(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
#:defconfig xanmod-defconfig
;; EXTRAVERSION is used instead.
#:configs (config->string
'(("CONFIG_LOCALVERSION" . "")))
#:extra-version xanmod-revision)))
#:extra-version xanmod-revision))
(package
(inherit base)
(inherit base-kernel)
(version version)
(arguments
(substitute-keyword-arguments (package-arguments base)
(substitute-keyword-arguments (package-arguments base-kernel)
((#:phases phases)
#~(modify-phases #$phases
;; EXTRAVERSION is used instead.
(add-after 'unpack 'remove-localversion
(lambda _
(when (file-exists? "localversion")
(delete-file "localversion"))))
;; Since `customize-linux' replaces the configure phase, we add
;; XanMod defconfig beforehand to ensure compatibility of the
;; resulting package with `customize-linux'.
(add-before 'configure 'add-xanmod-defconfig
(lambda _
(rename-file
(string-append "CONFIGS/xanmod/gcc/" #$defconfig)
(string-append "CONFIGS/xanmod/gcc/" #$xanmod-defconfig)
".config")
;; Adapted from `make-linux-libre*'.
@ -187,47 +251,51 @@ on hardware which requires nonfree software to function."))))
(let ((port (open-file ".config" "a"))
(extra-configuration
#$(config->string
;; FIXME: There might be other support missing.
(append '(("CONFIG_BLK_DEV_NVME" . #t)
(append %default-extra-linux-options
;; NOTE: These are configs expected by Guix
;; but missing from XanMod defconfig.
'(("CONFIG_BLK_DEV_NVME" . #t)
("CONFIG_CRYPTO_XTS" . m)
("CONFIG_VIRTIO_CONSOLE" . m))
%default-extra-linux-options))))
("CONFIG_VIRTIO_CONSOLE" . m))))))
(display extra-configuration port)
(close-port port))
(invoke "make" "oldconfig")
(rename-file
".config"
(string-append "arch/x86/configs/" #$defconfig))))))))
(string-append "arch/x86/configs/" #$xanmod-defconfig))))))))
(native-inputs
(modify-inputs (package-native-inputs base)
(modify-inputs (package-native-inputs base-kernel)
;; cpio is needed for CONFIG_IKHEADERS.
(append cpio zstd)))
(prepend cpio zstd)))
(home-page "https://xanmod.org/")
(supported-systems '("x86_64-linux"))
(synopsis
"Linux kernel distribution with custom settings and new features")
(synopsis "Linux kernel distribution with custom settings and new features")
(description
"This package provides XanMod kernel, a general-purpose Linux kernel
distribution with custom settings and new features. It's built to provide a
stable, responsive and smooth desktop experience."))))
stable, responsive and smooth desktop experience.")))
;; 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-source
(make-linux-xanmod-source
linux-xanmod-version
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-source
(make-linux-xanmod-source
linux-xanmod-lts-version
linux-xanmod-lts-revision
(base32 "1rp9g9qdrr2l0wwxx4myz6kr3agznama2r6q8an505l8mwdgwll8")))
#:xanmod-branch "lts"
#:kernel-hash (base32 "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr")
#:xanmod-hash (base32 "1q33bd4a65l46333l2m7vjn46b0xhdbz508bq7q0bphbmy0bf35m")))
;; Linux-XanMod packages
(define-public linux-xanmod
@ -248,22 +316,23 @@ stable, responsive and smooth desktop experience."))))
(define-public linux-firmware
(package
(name "linux-firmware")
(version "20231111")
(version "20240115")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/firmware/"
"linux-firmware-" version ".tar.xz"))
(sha256
(base32
"165hrdwfvkqngmdf5s759wzfk8wpa8h6bln31bjady1z570mjjcd"))
(patches
(search-patches "nongnu/packages/patches/copy-firmware-rdfind.patch"))))
"13b75kd075famc58pvx4r9268pxn69nyihx7p3i6i7mvkgqayz5b"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(replace 'install
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(apply invoke "make" "install-nodedup" make-flags)))
(delete 'validate-runpath))))
(home-page
"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))
(define-public rtl8192eu-linux-module
(let ((commit "865656c3a1d1aee8c4ba459ce7608756d17c712f")
(revision "5"))
(let ((commit "a928f08c1dd4f9a1e84d85811a543e974551bc4f")
(revision "6"))
(package
(name "rtl8192eu-linux-module")
(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))
(sha256
(base32
"08nq0wlrpzm8n2g14c4jlxs0crr6s5ls1n14bc17zmpy9vlarhfx"))))
"1q26kyic4glmgy0hbaq46r067m6cqf7d41chgivyxn8y32rf1fgc"))))
(build-system linux-module-build-system)
(arguments
`(#:make-flags
@ -740,8 +809,8 @@ network adapters.")
(license gpl2))))
(define-public rtl8821ce-linux-module
(let ((commit "a478095a45d8aa957b45be4f9173c414efcacc6f")
(revision "10"))
(let ((commit "66983b69120a13699acf40a12979317f29012111")
(revision "11"))
(package
(name "rtl8821ce-linux-module")
(version (git-version "0.0.0" revision commit))
@ -754,7 +823,7 @@ network adapters.")
(file-name (git-file-name name version))
(sha256
(base32
"00cn87jjrcxjqr3n8jv4w3n64zksmzz05fdr1gdvnbx1ab5739f6"))))
"0kj12jll0df1h4z6kzv3vylh22xlniki5kg414fv9sqgx1qgs5k7"))))
(build-system linux-module-build-system)
(arguments
(list #:make-flags
@ -782,9 +851,63 @@ network adapters.")
;; hal/rtl8821c/hal8821c_fw.c
(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
(let ((commit "35308f4dd73e77fa572c48867cce737449dd8548")
(revision "11"))
(let ((commit "a3e0c0b6d54546418f046db0dbf1d20e454c9ec2")
(revision "12"))
(package
(inherit rtl8821ce-linux-module)
(name "rtl8812au-aircrack-ng-linux-module")
@ -797,7 +920,7 @@ network adapters.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1clqrgmq5fhzybbiapmdbhg5qfx9k21r0hqa9pqmyinaqhvfnhfj"))
(base32 "1hwzsy62h7ik5s54paikcj5ips7mrnfacprciiq412mz5ag28cdn"))
(modules '((guix build utils)))
(snippet
#~(begin
@ -821,7 +944,7 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
(define-public r8168-linux-module
(package
(name "r8168-linux-module")
(version "8.051.02")
(version "8.052.01")
(source (origin
(method git-fetch)
(uri (git-reference
@ -830,19 +953,9 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
(file-name (git-file-name name version))
(sha256
(base32
"16mpr0np6xbmzdnwg4p3q6yli2gh032k98g4vplya33hrn50vh52"))))
"01mi7hh92nc7jaxkfrpz7j0ci78djrhgmq0im4k1270mwmvr0yzj"))))
(arguments
(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)")))))))
(list #:tests? #f))
(build-system linux-module-build-system)
(home-page "https://github.com/mtorromeo/r8168")
(synopsis "Linux driver for Realtek PCIe network adapters")
@ -1041,7 +1154,7 @@ chipsets from Broadcom:
(define-public facetimehd
(package
(name "facetimehd")
(version "0.5.18")
(version "0.6.8")
(source
(origin
(method git-fetch)
@ -1051,7 +1164,7 @@ chipsets from Broadcom:
(file-name (git-file-name "facetimehd" version))
(sha256
(base32
"1598pzjnbij3knvqmk2yslj26wmqiqjqgqgcw9p9jx6z7bdjvvsh"))))
"1g0ky9w5klkjndf30mjymq78r6yls9gri9x702nn8qkmgkjbqdsg"))))
(build-system linux-module-build-system)
(arguments
'(#:tests? #f))
@ -1075,7 +1188,7 @@ driver:
(define-public intel-microcode
(package
(name "intel-microcode")
(version "20231114")
(version "20240312")
(source
(origin
(method git-fetch)
@ -1086,7 +1199,7 @@ driver:
(commit (string-append "microcode-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "07c7hkwpvb9056s73s55sg04cxr1d9n1sd9r1g7sm3gh70yc17ki"))))
(base32 "1j1krkmp9kxmpq8bbbld8bm3y9rqhmlj5qfm43czikawnpw81571"))))
(build-system copy-build-system)
(arguments
(list #:install-plan

View File

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

View File

@ -1,6 +1,6 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; 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 © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2023 Raven Hallsby <karl@hallsby.org>
@ -36,7 +36,7 @@
(define-public element-desktop
(package
(name "element-desktop")
(version "1.11.41")
(version "1.11.57")
(source
(origin
(method url-fetch)
@ -45,7 +45,7 @@
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
"_amd64.deb"))
(sha256
(base32 "1m07b1ykmxly16irca171z4f718as7hqsccp1q7qrqj9b5lkmv64"))))
(base32 "05318i6z5kkzi01ygr77g5ij0hs4xmy0j23hznkqc4zia02q1vgx"))))
(supported-systems '("x86_64-linux"))
(build-system chromium-binary-build-system)
(arguments
@ -54,25 +54,19 @@
#~'("lib/Element/element-desktop")
#:phases
#~(modify-phases %standard-phases
(replace 'unpack
(add-after 'binary-unpack 'setup-cwd
(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-and-cleanup
(add-after 'install 'symlink-binary-file
(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"))))
@ -84,8 +78,6 @@
(list
(string-append #$output "/lib/Element"))
":")))))))))
(native-inputs (list tar))
(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
@ -98,7 +90,7 @@ its core.")
(define-public signal-desktop
(package
(name "signal-desktop")
(version "6.39.1")
(version "6.46.0")
(source
(origin
(method url-fetch)
@ -107,7 +99,7 @@ its core.")
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
"_amd64.deb"))
(sha256
(base32 "0rlcn3fyzc69x52g634nd7wryfkkrmykp62wl590shp92nkx8dkl"))))
(base32 "1pjv8v1hhycwbvqvih83axv41jkyksq6d9152fqic9d61lbb1kpa"))))
(supported-systems '("x86_64-linux"))
(build-system chromium-binary-build-system)
(arguments
@ -116,26 +108,19 @@ its core.")
#~'("lib/Signal/signal-desktop")
#:phases
#~(modify-phases %standard-phases
(replace 'unpack
(add-after 'binary-unpack 'setup-cwd
(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-and-cleanup
(add-after 'install 'symlink-binary-file
(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"))))
@ -147,7 +132,6 @@ its core.")
(list
(string-append #$output "/lib/Signal"))
":")))))))))
(native-inputs (list tar))
(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
@ -160,14 +144,14 @@ or iOS.")
(define-public zoom
(package
(name "zoom")
(version "5.15.12.7665")
(version "5.17.5.2543")
(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 "1pmxgfafwlxnrcw1fay91krjqbf1kaf5ng4f3na0p6liyd5c6fhq"))))
(base32 "06m53d3jrpiq1z5wd7m61lb3w8m8g72iaqx5sixnzn290gyyzgim"))))
(supported-systems '("x86_64-linux"))
(build-system binary-build-system)
(arguments
@ -243,6 +227,9 @@ 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

View File

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

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
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; 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)
#:use-module (gnu packages)
@ -40,7 +40,7 @@
;; hplip is updated in Guix.
(sha256
(base32
"09kixd9pb0p94bw3xyqy9h62gwqnbwcjjsvb2g3wvl6zxp4j1fvy")))))
"0zq66hm7ni6w1c3cxy1gxrxzvyvfn0lhjnia8p4azvz2r309j9s0")))))
(package-native-inputs hplip)))
(arguments
(substitute-keyword-arguments (package-arguments hplip)

View File

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

View File

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

View File

@ -1,6 +1,7 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
(define-module (nonguix build binary-build-system)
#: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)))
#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
;; Everything is as with the GNU Build System except for the `configure'
;; , `build', `check' and `install' phases.
;; Everything is as with the GNU Build System except for the `binary-unpack',
;; `configure', `build', `check' and `install' phases.
(modify-phases gnu:%standard-phases
(add-after 'unpack 'binary-unpack binary-unpack)
(delete 'bootstrap)
(delete 'configure)
(delete 'build)

View File

@ -8,6 +8,7 @@
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023 Elijah Malaby
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; The script provided by this package may optionally be started as
;;; a shell instead of automatically launching the wrapped entrypoint by setting
@ -50,6 +51,7 @@
#:export (nonguix-container
nonguix-container?
ngc-name
ngc-binary-name
ngc-version
ngc-wrap-package
ngc-run
@ -82,6 +84,7 @@
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)
@ -207,7 +210,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-name container)))
(wrapper-dest (string-append out "/bin/" ,(ngc-binary-name container)))
(link-files ',(ngc-link-files container)))
(mkdir-p (string-append out "/sbin"))
(mkdir-p (string-append out "/etc"))
@ -236,6 +239,7 @@ in a sandboxed FHS environment."
in a sandboxed FHS environment."
(program-file
(ngc-wrapper-name container)
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(define (preserve-var var)
@ -284,12 +288,14 @@ in a sandboxed FHS environment."
"^QT_X11_NO_MITSHM$"
"^SDL_"
"^STEAM_"
"^SSL_" ; SSL certificate environment, needed by curl for Heroic.
"^VDPAU_DRIVER_PATH$" ; For VDPAU drivers.
"^XAUTHORITY$"
;; Matching all ^XDG_ vars causes issues
;; discussed in 80decf05.
"^XDG_DATA_HOME$"
"^XDG_RUNTIME_DIR$"
#$@(ngc-preserved-env container) ; Environment from container.
;; The following are useful for debugging.
"^CAPSULE_DEBUG$"
"^G_MESSAGES_DEBUG$"
@ -330,13 +336,12 @@ in a sandboxed FHS environment."
,@(exists-> (getenv "XAUTHORITY"))
#$@(ngc-shared container)))
(DEBUG (equal? (getenv "DEBUG") "1"))
(extra-shares (if (getenv "GUIX_SANDBOX_EXTRA_SHARES")
(string-split (getenv "GUIX_SANDBOX_EXTRA_SHARES") #\:)
#f))
(args (cdr (command-line)))
(command (if DEBUG '()
`("--" ,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
;; generate locales, improving startup time. This needs to be set to
;; the "usual" path, probably so they are included in the
@ -362,9 +367,11 @@ in a sandboxed FHS environment."
,@(map add-path expose)
,@(map (lambda (item)
(add-path item #:writable? #t))
share)
(if extra-shares
(append share extra-shares)
share))
"-m" ,manifest-file
,@command))))))
,@command)))))))
(define (make-container-manifest container fhs-internal)
"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 "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") . "/run/current-system/profile/share/fonts")
((,union64 "etc/fonts") . "/etc/fonts")
@ -520,6 +528,16 @@ application."
;; (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" "/lib64:/lib")
;; Process FHS-specific command line options.
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
@ -528,7 +546,7 @@ application."
(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-name container)
#$(ngc-binary-name container)
" with \""
(basename #$(ngc-run container))
" -- --asound32\" to use 32-bit instead.\n\n\n")))