move files around

This commit is contained in:
G
2025-02-23 09:04:34 -06:00
committed by GigiaJ
parent 39e4178025
commit 205eb54c34
7 changed files with 16 additions and 7 deletions

16
gchannel/channels.scm Normal file
View File

@@ -0,0 +1,16 @@
;; channel.scm
(use-modules (guix git))
(channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
(channel
(name 'gchannel)
(url "https://github.com/GigiaJ/Guix-Personal-Packages.git")
(branch "main"))

View File

@@ -0,0 +1,168 @@
(define-module (bolt-launcher)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages algebra)
#:use-module (gnu packages assembly)
#:use-module (gnu packages astronomy)
#:use-module (gnu packages audio)
#:use-module (gnu packages avahi)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages backup)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages chromium)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages engineering)
#:use-module (gnu packages fltk)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages geo)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gps)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages javascript)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages nss)
#:use-module (gnu packages openstack)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages toolkits)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages version-control)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build utils)
#:use-module (guix build gnu-build-system)
#:use-module (guix base16)
#:use-module (nongnu packages chromium)
#:use-module (nongnu packages editors)
)
(define-public bolt-launcher
(package
(name "bolt-launcher")
(version "0.10.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Adamcake/Bolt")
(commit "1720eb0758221d9cd79abddf613d7335ed05e032")
(recursive? #t)))
(sha256
(base32 "075dbjsy4nkbsnd1w57l85gpqk9sg2q75gp07xykl5g3j0qgwhcx"))))
(build-system cmake-build-system)
(inputs
(list
chromium-embedded-framework libarchive glib glibc gtk hicolor-icon-theme fmt spng mesa vulkan-loader vscodium ungoogled-chromium wayland))
(arguments
(list
#:tests? #f ; no check target
#:configure-flags
#~(list
(string-append "-D " "CMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "out"))
;;(string-append "-D " "BOLT_DEV_SHOW_DEVTOOLS=" "1")
(string-append "-DCEF_DIR=" (assoc-ref %build-inputs "chromium-embedded-framework"))
(string-append "-DCEF_ROOT=" (assoc-ref %build-inputs "chromium-embedded-framework"))
(string-append "-DBOLT_CEF_RESOURCEDIR_OVERRIDE=" (assoc-ref %build-inputs "chromium-embedded-framework") "/share/cef")
(string-append "-DBOLT_LIBCEF_DIRECTORY=" (assoc-ref %build-inputs "chromium-embedded-framework") "/lib")
(string-append "-DBOLT_CEF_INCLUDEPATH=" (assoc-ref %build-inputs "chromium-embedded-framework"))
(string-append "-DBOLT_CEF_DLLWRAPPER=" (assoc-ref %build-inputs "chromium-embedded-framework") "/lib/libcef_dll_wrapper.a")
"-D BOLT_META_NAME=bolt-launcher"
"-D BOLT_SKIP_LIBRARIES=1")
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'link-cef
(lambda _
(display (assoc-ref %outputs "out"))
(symlink (string-append (assoc-ref %build-inputs "chromium-embedded-framework") "/lib/libcef.so") (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/libcef.so"))
(symlink (string-append (assoc-ref %build-inputs "chromium-embedded-framework") "/share/cef/icudtl.dat") (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/icudtl.dat"))
(symlink (string-append (assoc-ref %build-inputs "chromium-embedded-framework") "/share/cef/v8_context_snapshot.bin") (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/v8_context_snapshot.bin"))
(symlink (string-append (assoc-ref %build-inputs "vscodium") "/opt/vscodium/libGLESv2.so") (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/libGLESv2.so"))
(symlink (string-append (assoc-ref %build-inputs "vscodium") "/opt/vscodium/libEGL.so") (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/libEGL.so"))
(symlink (string-append (assoc-ref %build-inputs "vscodium") "/opt/vscodium/libvulkan.so.1") (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/libvulkan.so.1"))
(symlink (string-append (assoc-ref %build-inputs "vscodium") "/opt/vscodium/libvk_swiftshader.so") (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/libvk_swiftshader.so"))
(display "Do nothing.") #t)
)
)
))
(native-inputs
(list cmake git wayland))
(synopsis "Soup")
(home-page "https://bolt.adamcake.com/")
(description "Free open-source third-party implementation of the Jagex Launcher")
(license license:agpl3)))
bolt-launcher

View File

@@ -0,0 +1,149 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2022, 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2022 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(define-module (nongnu packages edge)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages photo)
#:use-module (gnu packages qt)
#:use-module (gnu packages video)
#:use-module (gnu packages wget)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (nonguix build-system chromium-binary)
#:use-module (nonguix licenses)
#:use-module (ice-9 string-fun))
(define-public (make-discord repo version hash)
(let* ((name (string-append "discord-" repo))
(appname "discord"))
(package
(name name)
(version version)
(source (origin
(method url-fetch)
(uri
(string-append
"https://stable.dl2.discordapp.net/apps/linux/"
version "/" name version ".deb"))
(sha256
(base32 hash))))
(build-system chromium-binary-build-system)
(arguments
(list
;; almost 300MB, faster to download and build from Google servers
#:substitutable? #f
#:wrapper-plan
#~(let ((path (string-append "usr/share/discord/")))
(map (lambda (file)
(string-append path file))
'("Discord"
"chrome-sandbox"
"chrome_crashpad_handler"
"libEGL.so"
"libGLESv2.so"
"libffmpeg.so"
"libvk_swiftshader.so"
"libvulkan.so.1"
;;"WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
)))
#:install-plan
#~'(("usr/" "/share")
("usr/share/" "/share"))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'patch-assets
;; Many thanks to
;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/discord/default.nix
(lambda _
(let* ((bin (string-append #$output "/bin"))
(share (string-append #$output "/share"))
(usr "./usr")
(usr/share "./usr/share")
(old-exe (string-append "/usr/discord/" #$appname "/discord-" #$appname))
(exe (string-append bin "/discord-" #$appname)))
;; This allows us to override CHROME_WRAPPER later.
(substitute* (string-append usr "/discord/" #$appname "/discord-" #$appname)
(("CHROME_WRAPPER") "WRAPPER"))
(substitute* (string-append usr/share "/applications/discord-" #$appname ".desktop")
(("^Exec=.*") (string-append "Exec=" exe "\n")))
(substitute* (string-append usr/share "/gnome-control-center/default-apps/discord-" #$appname ".xml")
((old-exe) exe))
(substitute* (string-append usr/share "/menu/discord-" #$appname ".menu")
(("/usr") share)
((old-exe) exe)))))
#!(add-after 'install 'install-icons
(lambda _
(define (format-icon-size name)
(car
(string-split
(string-drop-right (string-drop name 13) 4)
#\_)))
(let ((icons (string-append #$output "/usr/share/icons/hicolor"))
(share (string-append #$output "/usr/share/discord/" #$appname)))
(for-each (lambda (icon)
(let* ((icon-name (basename icon))
(icon-size (format-icon-size icon-name))
(target (string-append icons "/" icon-size "x" icon-size "/apps/discord-" #$appname ".png")))
(mkdir-p (dirname target))
(rename-file icon target)))
(find-files share "product_logo_.*\\.png")))))
(add-before 'install-wrapper 'install-exe
(lambda _
(let* ((bin (string-append #$output "/usr/bin"))
(exe (string-append bin "/discord-" #$appname "-stable"))
(share (string-append #$output "/usr/share"))
(edge-target (string-append share "/discord/" #$appname "/discord-" #$appname)))
(mkdir-p bin)
(symlink edge-target exe)
(wrap-program exe
'("CHROME_WRAPPER" = (#$appname))))))
!#
(delete 'patch-assets)
(delete 'install-wrapper))))
(inputs
(list bzip2
curl
flac
font-liberation
gdk-pixbuf
gtk
harfbuzz
libexif
libglvnd
libpng
libva
libxscrnsaver
opus
pciutils
pipewire
qtbase-5
qtbase
snappy
util-linux
xdg-utils
wget))
(synopsis "Freeware web browser")
(supported-systems '("x86_64-linux"))
(description "Vivaldi is a highly customizable browser developed by Vivaldi.")
(home-page "https://discord.com/")
(license (nonfree "https://discord.com/privacy/browser/")))))
(define-public discord-stable
(make-discord "" "0.0.86" "0agwhl8nvj3203fk9i3hscljvc6zzmbivdqwpflabliamkxyarsk"))
discord-stable

166
gchannel/packages/Edge.scm Normal file
View File

@@ -0,0 +1,166 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2022, 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2022 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(define-module (nongnu packages edge)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages photo)
#:use-module (gnu packages qt)
#:use-module (gnu packages video)
#:use-module (gnu packages wget)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (nonguix build-system chromium-binary)
#:use-module (nonguix licenses)
#:use-module (ice-9 string-fun))
(define-public (make-microsoft-edge repo version hash)
(let* ((name (string-append "microsoft-edge-" repo))
(appname (if (string=? repo "stable")
"edge"
(string-replace-substring name "microsoft-" ""))))
(package
(name name)
(version version)
(source (origin
(method url-fetch)
(uri
(string-append
"https://packages.microsoft.com/repos/edge/pool/main/m/"
name "/" name "_" version "-1_amd64.deb"))
(sha256
(base32 hash))))
(build-system chromium-binary-build-system)
(arguments
(list
;; almost 300MB, faster to download and build from Google servers
#:substitutable? #f
#:wrapper-plan
#~(let ((path (string-append "opt/microsoft/" "ms" #$appname "/")))
(map (lambda (file)
(string-append path file))
'("msedge"
"msedge-sandbox"
"msedge_crashpad_handler"
"libEGL.so"
"libGLESv2.so"
;;"libaugloop_client.so"
"liblearning_tools.so"
;;"libmicrosoft-apis.so"
"libmip_core.so"
"libmip_protection_sdk.so"
"liboneauth.so"
"liboneds.so"
"libqt5_shim.so"
"libqt6_shim.so"
;; "libsmartscreenn.so"
"libtelclient.so"
"libvk_swiftshader.so"
"libvulkan.so.1"
"libwns_push_client.so"
"WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))
#:install-plan
#~'(("opt/" "/share")
("usr/share/" "/share"))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'patch-assets
;; Many thanks to
;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/microsoft-edge/default.nix
(lambda _
(let* ((bin (string-append #$output "/bin"))
(share (string-append #$output "/share"))
(opt "./opt")
(usr/share "./usr/share")
(old-exe (string-append "/opt/microsoft/msedge/microsoft-" #$appname))
(exe (string-append bin "/microsoft-" #$appname)))
;; This allows us to override CHROME_WRAPPER later.
(substitute* (string-append opt "/microsoft/msedge/microsoft-" #$appname)
(("CHROME_WRAPPER") "WRAPPER"))
(substitute* (string-append usr/share "/applications/microsoft-" #$appname ".desktop")
(("^Exec=.*") (string-append "Exec=" exe "\n")))
(substitute* (string-append usr/share "/gnome-control-center/default-apps/microsoft-" #$appname ".xml")
((old-exe) exe))
(substitute* (string-append usr/share "/menu/microsoft-" #$appname ".menu")
(("/opt") share)
((old-exe) exe)))))
(add-after 'install 'install-icons
(lambda _
(define (format-icon-size name)
(car
(string-split
(string-drop-right (string-drop name 13) 4)
#\_)))
(let ((icons (string-append #$output "/share/icons/hicolor"))
(share (string-append #$output "/share/microsoft/msedge")))
(for-each (lambda (icon)
(let* ((icon-name (basename icon))
(icon-size (format-icon-size icon-name))
(target (string-append icons "/" icon-size "x" icon-size "/apps/microsoft-" #$appname ".png")))
(mkdir-p (dirname target))
(rename-file icon target)))
(find-files share "product_logo_.*\\.png")))))
(add-before 'install-wrapper 'install-exe
(lambda _
(let* ((bin (string-append #$output "/bin"))
(exe (string-append bin "/microsoft-edge"))
(share (string-append #$output "/share"))
(edge-target (string-append share "/microsoft/msedge/microsoft-edge")))
(mkdir-p bin)
(symlink edge-target exe)
(wrap-program exe
'("CHROME_WRAPPER" = (#$appname))))))
)))
(inputs
(list bzip2
curl
flac
font-liberation
gdk-pixbuf
gtk
harfbuzz
libexif
libglvnd
libpng
libva
libxscrnsaver
opus
pciutils
pipewire
qtbase-5
qtbase
snappy
util-linux
xdg-utils
wget))
(synopsis "Freeware web browser")
(supported-systems '("x86_64-linux"))
(description "Microsoft Edge is a cross-platform web browser developed by Microsoft using Chromium.")
(home-page "https://www.microsoft.com/edge/")
(license (nonfree "https://www.microsoft.com/intl/en/edge/terms/")))))
(define-public microsoft-edge-stable
(make-microsoft-edge "stable" "133.0.3065.69" "05vx3lvwk0nyj8yyfq0cnc15mcpsic4npqm1b553jdx0m2d05cr2"))
(define-public microsoft-edge-beta
(make-microsoft-edge "beta" "132.0.6834.32" "0ncjyg3vxsjspb0i1nsflcry9sfsffnqiwa2y7cgh46xamdq6f2c"))
(define-public microsoft-edge-unstable
(make-microsoft-edge "unstable" "133.0.6847.2" "1z15maqs1g8lhi7dm9hn4r272nl0g967a11igmw2sj14zl3n9j6g"))
microsoft-edge-stable

230
gchannel/packages/RS3.scm Normal file
View File

@@ -0,0 +1,230 @@
(define-module (runescape-launcher)
#: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 (guix build-system copy)
#:use-module (gnu packages audio)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages certs)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages debian)
#:use-module (gnu packages elf)
#:use-module (gnu packages file)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages logging)
#:use-module (gnu packages lsof)
#:use-module (gnu packages networking)
#:use-module (nongnu packages nvidia)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages toolkits)
#:use-module (gnu packages tls)
#:use-module (gnu packages sdl)
#: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 runescape-launcher
(package
(name "runescape-launcher")
(version "2.2.11")
(source
(origin
(method url-fetch)
(uri (string-append "https://content.runescape.com/downloads/ubuntu/pool/non-free/r/" name "/" name "_" version "_amd64.deb"))
(sha256
(base32 "00krw818s15bc38v9qv4ggk32704czjlw9c7vggg3vxxdhxvvscq"))))
(build-system copy-build-system)
(inputs
(list
cairo gcc glib glibc gtk libcap libglvnd libsm libx11 libxxf86vm openssl pango sdl2 zlib))
(arguments
(list
#:tests? #f ; no check target
#:phases
#~(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(invoke "dpkg-deb" "-x" source ".")
#t))
(delete 'configure)
(delete `build)
(add-before 'install 'patch-elf-interpreter
(lambda _
(display (invoke "ls" "-a" "./usr/share/games/runescape-launcher"))
;;(invoke "setcap" "cap_net_raw+ep" "./usr/share/games/runescape-launcher/runescape")
(substitute* "./usr/bin/runescape-launcher"
(("unset XMODIFIERS") (string-append "$envVarsWithXmodifiers"))
(("/usr/share/games/runescape-launcher/runescape")
(string-append (assoc-ref %outputs "out") "/usr/share/games/runescape-launcher/runescape")))
(display "catssss")
(let ((glibc (assoc-ref %build-inputs "glibc"))
(elf-file "./usr/share/games/runescape-launcher/runescape"))
(invoke "patchelf" "--set-interpreter" (string-append glibc "/lib/ld-linux-x86-64.so.2") elf-file))
#t))
;; (delete 'install)
)
)
)
(native-inputs
(list unzip dpkg patchelf iputils))
(synopsis "Soup")
(home-page "https://www.runescape.com/")
(description "RuneScape Game Client (NXT)")
(license license:agpl3))) ;; Update license as this is a placeholder
(define steam-client-libs
`(("at-spi2-core" ,at-spi2-core) ; Required (often) for SteamVR interface.
("bash" ,bash) ; Required for steam startup.
("cairo", cairo)
("coreutils" ,coreutils)
("diffutils" ,diffutils)
("dbus-glib" ,dbus-glib) ; Required for steam browser.
("elfutils" ,elfutils) ; Required for capturing library dependencies in pv.
("eudev" ,eudev) ; Required for steamwebhelper/heavy runtime.
("fontconfig" ,fontconfig) ; Required for steam client.
("file" ,file) ; Used for steam installation.
("find" ,findutils) ; Required at least for some logging.
("font-google-noto" ,font-google-noto) ; Not required but to match following fonts.
;; These next three fonts are to cover emoji and Chinese/Japanese/Korean
;; and related scripts.
("font-google-noto-emoji" ,font-google-noto-emoji)
("font-google-noto-sans-cjk" ,font-google-noto-sans-cjk)
("font-google-noto-serif-cjk" ,font-google-noto-serif-cjk)
("freetype" ,freetype) ; Required for steam login.
("gawk" ,gawk)
("gdk-pixbuf" ,gdk-pixbuf) ; Required for steam tray icon.
;; Required for steam startup; use newer version for better compatibility
;; with some games like Dwarf Fortress.
("gcc:lib" ,gcc-14 "lib")
("glib" ,glib)
("grep" ,grep)
("gtk+" ,gtk+)
("gtk" ,gtk+-2)
("libbsd" ,libbsd)
("libcap" ,libcap) ; Required for SteamVR, but needs pkexec too.
("libglvnd" ,libglvnd)
("libusb" ,libusb) ; Required for SteamVR.
("libsm" ,libsm)
("libva" ,libva) ; Required for hardware video encoding/decoding.
("libvdpau" ,libvdpau) ; Required for hardware video encoding/decoding.
("libvdpau-va-gl" ,libvdpau-va-gl) ; Additional VDPAU support.
("libx11" ,libx11)
("libxxf86vm" ,libxxf86vm)
("llvm" ,llvm-for-mesa) ; Required for mesa.
("lsof" ,lsof) ; Required for some friend's list actions.
("mesa" ,mesa) ; Required for steam startup.
("nss-certs" ,nss-certs) ; Required for steam login.
("pango" ,pango)
("pciutils" ,pciutils) ; Tries to run lspci at steam startup.
("procps" ,procps)
("openssl" ,openssl-1.1)
("sed" ,sed)
("sdl2" ,sdl2)
("tar" ,tar)
("usbutils" ,usbutils) ; Required for SteamVR.
("util-linux" ,util-linux) ; Required for steam login.
("wayland" ,wayland) ; Required for mesa vulkan (e.g. libvulkan_radeon).
("xdg-user-dirs" ,xdg-user-dirs) ; Suppress warning of missing xdg-user-dir.
("flatpak-xdg-utils" ,flatpak-xdg-utils)
("xz" ,xz)
("zenity" ,zenity)
("zlib" ,zlib)
)) ; Required for progress dialogs.
(define steam-gameruntime-libs
`(("alsa-lib" ,alsa-lib) ; Required for audio in most games.
("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio") ; Required for audio in most games.
("font-dejavu" ,font-dejavu)
("font-liberation" ,font-liberation)
("imgui" ,imgui-1.86) ; Required for MangoHud.
("mangohud" ,mangohud)
("openal" ,openal) ; Prevents corrupt audio in Crypt of the Necrodancer.
("pulseaudio" ,pulseaudio) ; Prevents corrupt audio in Sven Coop.
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
("spdlog" ,spdlog))) ; Required for MangoHud.
(define steam-container-libs
(append steam-client-libs
steam-gameruntime-libs
fhs-min-libs))
(define steam-nvidia-container-libs
(modify-inputs steam-container-libs
(replace "mesa" nvda)))
(define steam-ld.so.conf
(packages->ld.so.conf
(list (fhs-union steam-container-libs
#:name "fhs-union-64")
(fhs-union steam-container-libs
#:name "fhs-union-32"
#:system "i686-linux"))))
(define steam-ld.so.cache
(ld.so.conf->ld.so.cache steam-ld.so.conf))
(define steam-nvidia-ld.so.conf
(packages->ld.so.conf
(list (fhs-union steam-nvidia-container-libs
#:name "fhs-union-64")
(fhs-union steam-nvidia-container-libs
#:name "fhs-union-32"
#:system "i686-linux"))))
(define steam-nvidia-ld.so.cache
(ld.so.conf->ld.so.cache steam-nvidia-ld.so.conf))
(define-public runescape-container
(nonguix-container
(name "runescape")
(wrap-package runescape-launcher)
(run "/usr/bin/runescape-launcher")
(ld.so.conf steam-ld.so.conf)
(ld.so.cache steam-ld.so.cache)
(union64
(fhs-union steam-container-libs
#:name "fhs-union-64"))
(union32
(fhs-union steam-container-libs
#:name "fhs-union-32"
#:system "i686-linux"))
(link-files '("usr"))
(description "Runescape.")))
(define-public runescape (nonguix-container->package runescape-container))
runescape

View File

@@ -0,0 +1,151 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2022, 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2022 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(define-module (nongnu packages edge)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages photo)
#:use-module (gnu packages qt)
#:use-module (gnu packages video)
#:use-module (gnu packages wget)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (nonguix build-system chromium-binary)
#:use-module (nonguix licenses)
#:use-module (ice-9 string-fun))
(define-public (make-vivaldi repo version hash)
(let* ((name (string-append "vivaldi" "-" repo))
(appname "vivaldi"))
(package
(name name)
(version version)
(source (origin
(method url-fetch)
(uri
(string-append
"https://downloads.vivaldi.com/stable/"
name "_" version "-1_amd64.deb"))
(sha256
(base32 hash))))
(build-system chromium-binary-build-system)
(arguments
(list
#:substitutable? #f
#:wrapper-plan
#~(let ((path (string-append "opt/vivaldi/")))
(map (lambda (file)
(string-append path file))
'("vivaldi-bin"
"vivaldi-sandbox"
"chrome_crashpad_handler"
"libEGL.so"
"libGLESv2.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-before 'install 'patch-assets
;; Many thanks to
;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/vivaldi/default.nix
(lambda _
(let* ((bin (string-append #$output "/bin"))
(share (string-append #$output "/share"))
(opt "./opt")
(usr/share "./usr/share")
(old-exe (string-append "/opt/vivaldi/" #$appname))
(exe (string-append bin "/vivaldi")))
;; This allows us to override CHROME_WRAPPER later.
(substitute* (string-append opt "/vivaldi/vivaldi")
(("CHROME_WRAPPER") "WRAPPER"))
(substitute* (string-append usr/share "/applications/vivaldi-stable.desktop")
(("^Exec=.*") (string-append "Exec=" exe "\n")))
(rename-file (string-append usr/share "/applications/vivaldi-stable.desktop") (string-append usr/share "/applications/vivaldi.desktop"))
;;(substitute* (string-append usr/share "/gnome-control-center/default-apps/vivaldi.xml")
;; ((old-exe) exe))
(substitute* (string-append usr/share "/menu/vivaldi" ".menu")
(("/opt") share)
((old-exe) exe)))))
(add-after 'install 'install-icons
(lambda _
(define (format-icon-size name)
(car
(string-split
(string-drop-right (string-drop name 13) 4)
#\_)))
(let ((icons (string-append #$output "/share/icons/hicolor"))
(share (string-append #$output "/share/vivaldi")))
(for-each (lambda (icon)
(let* ((icon-name (basename icon))
(icon-size (format-icon-size icon-name))
(target (string-append icons "/" icon-size "x" icon-size "/apps/" #$appname ".png")))
(mkdir-p (dirname target))
(rename-file icon target)))
(find-files share "product_logo_.*\\.png")))))
(add-before 'install-wrapper 'install-exe
(lambda _
(let* ((bin (string-append #$output "/bin"))
(exe (string-append bin "/" #$appname))
(share (string-append #$output "/share"))
(chromium-target (string-append #$output "/share/vivaldi/" #$appname )))
(mkdir-p bin)
(symlink chromium-target exe)
(wrap-program exe
'("CHROME_WRAPPER" = (#$appname))
))))
)))
(inputs
(list bzip2
curl
flac
font-liberation
gdk-pixbuf
gtk
harfbuzz
libexif
libglvnd
libpng
libva
libxscrnsaver
opus
pciutils
pipewire
qtbase-5
qtbase
snappy
util-linux
xdg-utils
wget))
(synopsis "Freeware web browser")
(supported-systems '("x86_64-linux"))
(description "Vivaldi is a highly customizable browser developed by Vivaldi.")
(home-page "https://vivaldi.com/")
(license (nonfree "https://vivaldi.com/privacy/browser/")))))
(define-public vivaldi-stable
(make-vivaldi "stable" "7.1.3570.54" "1jslsckrv8xwnc4xlrxjiqqpkb74fz51r4yp92p5lr5zj0iayvkh"))
vivaldi-stable