This commit is contained in:
2025-08-07 16:14:12 -05:00
parent 58b618a229
commit 2c2abb6f2f
16 changed files with 885 additions and 59 deletions

View File

@@ -56,8 +56,7 @@
(lambda _
(let ((font-package "font-nerd-fonts-jetbrains-mono")
(font-path "/share/fonts/truetype/")
(font-prefix "JetBrainsMonoNerdFontMono-")
)
(font-prefix "JetBrainsMonoNerdFontMono-"))
(use-modules (ice-9 ftw)
(srfi srfi-1)) ; For list processing
(define (collect-files-with-prefix directory prefix)

View File

@@ -1,163 +0,0 @@
;;; 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 (gchannel 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" "137.0.3296.93" "0x1hr3a6dmcv6al7ns945qmkjanlhb4nd005jmcywy9z8klj2bs8"))
(define-public microsoft-edge-beta
(make-microsoft-edge "beta" "138.0.3351.42" "0d4m38xbnpbb98y5xz9h5rzzcfshl01c2l3f794jg6al20yc2jj7"))
microsoft-edge-stable

View File

@@ -1,245 +0,0 @@
(define-module (gchannel packages floorp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages)
#:use-module (guix build-system copy)
#:use-module (guix build copy-build-system)
#:use-module (gnu packages)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages cups)
#:use-module (gnu packages elf)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hunspell)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages m4)
#:use-module (gnu packages mp3)
#:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages speech)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages sdl)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages vulkan)
)
(define-public floorp
(package
(name "floorp")
(version "12.0.15")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/Floorp-Projects/Floorp/releases/download/v" version "/floorp-linux-amd64.tar.xz"))
(sha256
(base32 "000a8yh0jabs1phsw56qknxh9ap1gm5asb7q5nnx4gwiyqnaig3s"))))
(build-system copy-build-system)
(inputs
(list
alsa-lib
gcc-toolchain
bash-minimal
eudev
libnotify
libpng-apng
libva
mesa
pipewire
pulseaudio
glibc
gtk+
libdrm
llvm-for-mesa
expat
zlib
zstd
spirv-tools
libxcb
libxshmfence
elfutils
libx11
wayland
libxext
libxxf86vm
ffmpeg
libvpx
libwebp
xz
dav1d
libaom
lame
opus
rav1e
speex
svt-av1
libtheora
libogg
twolame
libvorbis
libx264
x265
xvid
soxr
libvdpau
sdl2
openal
libcdio-paranoia
libcdio
libcaca
libass
vidstab
fontconfig
freetype
bzip2
libbluray
gnutls
pciutils
))
(arguments
(list
#:install-plan #~'(("." "lib/floorp"))
#:phases
#~(modify-phases %standard-phases
(delete 'validate-runpath) ;; Technically we could patch the shared libs, but it isn't needed.
(add-after 'install 'patch-interpreter
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(interpreter (string-append (assoc-ref inputs "glibc")
"/lib/ld-linux-x86-64.so.2"))
(binary (string-append out "/lib/floorp/floorp")))
(invoke "patchelf" "--set-interpreter" interpreter binary))))
(add-after 'patch-interpreter 'create
(lambda _
(mkdir-p (string-append #$output "/bin"))
;;(mkdir-p (string-append #$output "/share/icons/hicolor"))
)
)
(add-after 'create 'install-icons
(lambda _
(let ((icons (string-append #$output "/share/icons/hicolor"))
(share (string-append #$output "/lib/floorp/browser/chrome/icons")))
(for-each (lambda (icon)
(let* ((icon-name (basename icon))
(icon-size (string-drop-right (string-drop icon-name 7) 4))
(target (string-append icons "/" icon-size "x" icon-size "/apps/" "floorp" ".png")))
(mkdir-p (dirname target))
(rename-file icon target)))
(find-files share "default.*\\.png")))
)
)
(add-after 'install-icons 'install-share
(lambda _
(display "cat")
(let* ((exec-path (string-append #$output "/bin/floorp %u"))
(icon-path (string-append #$output "/share/icons/hicolor/128x128/apps/floorp.png")))
(define desktop-entry
`((Version . "1.0")
(Name . "Floorp")
(GenericName . "Web Browser")
(Comment . "Your web, the way you like it")
(Exec . ,exec-path) ;; Precomputed value
(Icon . ,icon-path) ;; Precomputed value
(Terminal . false)
(Type . "Application")
(StartupWMClass . "Floorp")
(MimeType . "text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;")
(Startup-Notify . true)
(X-MultipleArgs . false)
(X-Desktop-File-Install-Version . "0.16")
(Categories . "Network;WebBrowser;")
(Encoding . "UTF-8")))
(define (write-desktop-entry file-name entry)
(call-with-output-file file-name
(lambda (port)
(format port "[Desktop Entry]~%")
(for-each
(lambda (field)
(format port "~a=~a~%" (car field) (cdr field)))
entry))))
(mkdir-p (string-append #$output "/share/applications"))
(write-desktop-entry (string-append #$output "/share/applications/" "floorp.desktop") desktop-entry))
)
)
(add-after 'create 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib/floorp"))
(libs (map
(lambda (lib-name)
(string-append (assoc-ref inputs
lib-name)
"/lib"))
'(
"alsa-lib" "libpng-apng" "libva" "mesa" "pipewire" "pulseaudio" "glibc"
"gcc-toolchain" "libdrm" "llvm-for-mesa" "expat" "zlib" "zstd" "spirv-tools"
"libxcb" "libxshmfence" "elfutils" "libx11" "wayland" "libxext" "libxxf86vm"
"ffmpeg" "libvpx" "libwebp" "xz" "dav1d" "libaom" "lame" "opus" "rav1e"
"speex" "svt-av1" "libtheora" "libogg" "twolame" "libvorbis" "libx264"
"x265" "xvid" "soxr" "libvdpau" "sdl2" "openal" "libcdio-paranoia"
"libcdio" "libcaca" "libass" "vidstab" "fontconfig-minimal" "freetype"
"bzip2" "libbluray" "gnutls" "gtk+" "pciutils"
)))
(gtk-share (string-append (assoc-ref inputs "gtk+") "/share")))
(display libs)
(wrap-program (car (find-files lib "^glxtest$"))
`("LD_LIBRARY_PATH" prefix ,libs))
(wrap-program (car (find-files lib "^floorp$"))
`("LD_LIBRARY_PATH" prefix (,@libs))
`("XDG_DATA_DIRS" prefix (,gtk-share))
`("MOZ_LEGACY_PROFILES" = ("1"))
`("MOZ_ALLOW_DOWNGRADE" = ("1")))
)
(invoke "mv" (string-append #$output "/lib/floorp/floorp") (string-append #$output "/bin/floorp"))
))
)))
(native-inputs
(list git patchelf))
(synopsis "Soup")
(home-page "https://coder.com/")
(description "Free open source code server")
(license license:agpl3)))
floorp

View File

@@ -64,6 +64,6 @@
(synopsis "Soup")
(home-page "https://dev47apps.com/obs/")
(description "plugin for droidcam obs")
(license license:agpl3)))
(license (license:gpl2))))
obs-droidcam

View File

@@ -223,7 +223,6 @@
(ld.so.conf->ld.so.cache steam-nvidia-ld.so.conf))
(define-public runescape-container
(nonguix-container
(name "runescape")

View File

@@ -1,151 +0,0 @@
;;; 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 (gchannel packages vivaldi)
#: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