everything else

This commit is contained in:
2025-08-08 01:06:03 -05:00
parent 493ae9bc08
commit adbc6ada24
27 changed files with 3305 additions and 0 deletions

0
NEWS Normal file
View File

53
README.md Normal file
View File

@@ -0,0 +1,53 @@
My *personal* channel where I build packages and service I use for GNU/Guix.
Channel declaration:
```
(channel
(name 'gunit)
(url "https://codeberg.org/Gigia/gunit.git")
(branch "channel")
(make-channel-introduction
"efaf0735519c85579b04baa0fb07d727aa55b128"
(openpgp-fingerprint
"AE6F 7F0F 6E0D AFB9 6E84 8994 C3A7 E8D7 2261 8435")))
```
## Packages
- **Browsers**
- Microsoft Edge
- Vivaldi
- Floorp
- **Game Launchers**
- Bolt Launcher
- Technically the runescape-launcher is still not functional, however, you can use a flatpak for the actual GAME binary and replace the binary bolt launcher references with a small C program that simply launches the flatpak (which I've included in this repo). I'll attempt to package runescape-launcher (which installs the game client itself) later when I get Ghidra packaged correctly.
- Deskflow
- Currently, many display managers lack proper xdg-desktop-portal support whether as a result of just not being updated on Guix (KDE) or in Hyprland's case the features aren't completed and aren't added. I currently have a custom package for pulling in the PR branches to make it functional.
It does, however, work fine on Gnome.
- **Editors**
- Code server
- In addition to code server I have a custom package that extends this and adds custom fonts. Not sure on how to elegantly make it modular, but it both allows you to simply install it and provides easy direction for adding your own fonts. Code server is a bit more nuanced than VS Code as it runs through your browser as far as fonts go.
---
These are more experimental ones thrown together either for specific behavior or to update without waiting on upstream.
- **Non-functional/Not added**
- Runescape Launcher
- PIA (Private Internet Access)
- Ghidra
- Nextcloud client on QT6
- Discord
- **Hyprland w/ Input Capture Portal**
- xdg-desktop-portal-hyprland
- xdg-desktop-portal
- hyprland-protocols
- hyprland
- libp11
- libportal
## Services
- Code server
---
Credits to [Look](https://codeberg.org/look/saayix) for such a clear repo layout.

View File

@@ -0,0 +1,176 @@
(define-module (gunit packages 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.11.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 eudev libarchive glib glibc gtk xdg-utils hicolor-icon-theme nss fmt spng mesa vulkan-loader vscodium wayland))
(arguments
(list
#:tests? #f ; no check target
#:configure-flags
#~(list
;; Can probably clean this up
(string-append "-D " "CMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "out"))
;;(string-append "-D " "BOLT_DEV_SHOW_DEVTOOLS=" "1")
(string-append "-DBOLT_BINDIR=" "./bin")
(string-append "-DBOLT_SHAREDIR=" "./share")
(string-append "-DBOLT_LIBDIR=" "./lib")
(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 _
(map (lambda (entry)
(let* ((source (car entry)) (file (cdr entry)))
(symlink (string-append (assoc-ref %build-inputs source) file)
(string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/" (basename file)))))
(append
(map (lambda (file) (cons "chromium-embedded-framework" file))
'("/lib/libcef.so" "/share/cef/icudtl.dat" "/share/cef/v8_context_snapshot.bin"))
(map (lambda (file) (cons "vscodium" file))
'("/opt/vscodium/libGLESv2.so" "/opt/vscodium/libEGL.so"
"/opt/vscodium/libvulkan.so.1" "/opt/vscodium/libvk_swiftshader.so"))))
(wrap-program (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/bolt")
`("LD_LIBRARY_PATH" ":" prefix (
,(string-append #$(this-package-input "mesa") "/lib")
,(string-append #$(this-package-input "eudev") "/lib")
,(string-append #$(this-package-input "nss") "/lib/nss")))
`("XDG_DATA_DIRS" ":" prefix (
,(string-append #$(this-package-input "gtk") "/share")))
`("PATH" ":" prefix (
,(string-append #$(this-package-input "xdg-utils") "/bin"))))
(invoke "mv" (string-append (assoc-ref %outputs "out") "/opt/bolt-launcher/bolt") (string-append (assoc-ref %outputs "out") "/bin/bolt"))
#t)))))
(native-inputs (list cmake git wayland))
(synopsis "An alternative third-party open-source launcher for RuneScape or Old School RuneScape.")
(home-page "https://bolt.adamcake.com/")
(description "Free open-source third-party implementation of the Jagex Launcher.")
(license license:agpl3)))

View File

@@ -0,0 +1,58 @@
(define-module (gunit packages code-server)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages commencement)
#:use-module (gnu packages curl)
#:use-module (gnu packages version-control)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages elf)
#:use-module (selected-guix-works packages fonts)
#:use-module (guix build-system copy)
#:use-module (guix build copy-build-system))
(define-public code-server
(package
(name "code-server")
(version "4.102.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/coder/code-server/releases/download/v" version "/code-server-" version "-linux-amd64.tar.gz"))
(sha256
(base32 "1s33d8821hcpkv10643dc58m177nrsy4238fyx2qbkh3smx98p25"))))
(build-system copy-build-system)
(inputs
(list
gcc-toolchain
glibc
))
(arguments
(list
#:tests? #f ; no check target
#:phases
#~(modify-phases %standard-phases
(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/node")))
(invoke "patchelf" "--set-interpreter" interpreter binary))))
(add-after 'patch-interpreter 'wrap
(lambda _
(wrap-program (string-append (assoc-ref %outputs "out") "/lib/node")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append #$(this-package-input "gcc-toolchain") "/lib"))))))
(delete 'validate-runpath))))
(native-inputs
(list git curl patchelf))
(synopsis "Code server used for accessing VS Code in the browser.")
(home-page "https://coder.com/")
(description "Free open source code server. Use a VS Code in any browser wherever you are.")
(license license:expat)))
code-server

View File

@@ -0,0 +1,65 @@
(define-module (gunit packages custom-code-server)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix build utils)
#:use-module (guix utils)
#:use-module (gnu packages base)
#:use-module (gnu packages)
#:use-module (guix build-system copy)
#:use-module (guix build copy-build-system)
#:use-module (ice-9 ftw)
#:use-module (srfi srfi-1)
#:use-module (gunit packages code-server)
#:use-module (selected-guix-works packages fonts)
#:use-module (gnu packages fontutils))
(define-public code-server-with-fonts
(package/inherit code-server
(name "code-server-with-fonts")
(inputs
(append (package-inputs code-server)
;; (list font-nerd-fonts-jetbrains-mono)
))
(native-inputs
(append (package-native-inputs code-server)
;; (list woff-tools)
))
(arguments
(substitute-keyword-arguments (package-arguments code-server)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'wrap 'enable-font-magic
(lambda _
(let ((font-package "font-nerd-fonts-jetbrains-mono")
(font-path "/share/fonts/truetype/")
(font-prefix "JetBrainsMonoNerdFontMono-"))
(use-modules (ice-9 ftw)
(srfi srfi-1)) ; For list processing
(define (collect-files-with-prefix directory prefix)
(filter (lambda (str) (string-prefix? prefix str)) (cddr (scandir directory))))
(map (lambda (entry)
(let* ((source (car entry)) (file (cdr entry)))
(symlink (string-append (assoc-ref %build-inputs source) font-path file)
(string-append (assoc-ref %outputs "out") "/src/browser/pages/" (basename file)))
(system* "sfnt2woff" (string-append (assoc-ref %outputs "out") "/src/browser/pages/" (basename file)))
))
(append
(map (lambda (file) (cons font-package file))
(collect-files-with-prefix (string-append (assoc-ref %build-inputs font-package) font-path) font-prefix)
)))
(let ((font-files (string-join
(map
(lambda (x)
(string-append "url('_static/src/browser/pages/" (substring x 0 (- (string-length x) 4)) ".woff') format('woff')" ))
(collect-files-with-prefix (string-append (assoc-ref %build-inputs font-package) font-path) font-prefix))
","
)))
(system* "sed" "-i" (string-append "s|</head>|<style> @font-face {font-family: 'Personal';font-style: normal;src:" font-files ";}\\</style></head>|g") (string-append #$output "/lib/vscode/out/vs/code/browser/workbench/workbench.html"))
))))
)))))
)
code-server-with-fonts

View File

@@ -0,0 +1,161 @@
;;; 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 (gunit 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"))

View File

@@ -0,0 +1,159 @@
(define-module (gchannel packages extra-cmake-modules)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
#:use-module (gnu packages aspell)
#:use-module (gnu packages attr)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages calendar)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages docbook)
#:use-module (gnu packages ebook)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hunspell)
#:use-module (gnu packages image)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-plasma)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
#:use-module (gnu packages mp3)
#:use-module (gnu packages openbox)
#:use-module (gnu packages pdf)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages text-editors)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public extra-cmake-modules
(package
(name "extra-cmake-modules")
(version "6.14.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://kde/stable/frameworks/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"04scg1hqffys9593y5slqmq8ai4glr5z3xmbhh46hfcv4srvnb6h"))))
(build-system cmake-build-system)
(native-inputs
;; Add test dependency, except on armhf where building it is too
;; expensive.
(if (and (not (%current-target-system))
(string=? (%current-system) "armhf-linux"))
'()
(list qtbase-5))) ;for tests (needs qmake)
(arguments
(list
#:tests? (and (not (%current-target-system))
(not (null? (package-native-inputs this-package))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-lib-and-libexec-path
(lambda _
(substitute* "kde-modules/KDEInstallDirsCommon.cmake"
;; Always install into /lib and not into /lib64.
(("\"lib64\"") "\"lib\"")
;; Install into /libexec and not into /lib/libexec.
(("LIBDIR \"libexec\"") "EXECROOTDIR \"libexec\""))
;; Determine the install path by the major version of Qt.
;; TODO: Base the following on values taken from Qt
;; Install plugins into lib/qt5/plugins
;; TODO: Check if this is okay for Android, too
;; (see comment in KDEInstallDirs.cmake)
(substitute* '("kde-modules/KDEInstallDirs5.cmake"
"kde-modules/KDEInstallDirs6.cmake")
;; Fix the installation path of Qt plugins.
(("_define_relative\\(QTPLUGINDIR \"\\$\\{_pluginsDirParent}\" \"plugins\"")
"_define_relative(QTPLUGINDIR \"${_pluginsDirParent}\" \"qt${QT_MAJOR_VERSION}/plugins\"")
;; Fix the installation path of QML files.
(("_define_relative\\(QMLDIR LIBDIR \"qml\"")
"_define_relative(QMLDIR LIBDIR \"qt${QT_MAJOR_VERSION}/qml\""))
;; Qt Quick Control 1 is no longer available in Qt 6.
(substitute* '("kde-modules/KDEInstallDirs5.cmake")
(("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"")
"_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\""))
(substitute* "modules/ECMGeneratePriFile.cmake"
;; Install pri-files into lib/qt${QT_MAJOR_VERSION}/mkspecs
(("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules")
"set(ECM_MKSPECS_INSTALL_DIR lib/qt${QT_MAJOR_VERSION}/mkspecs/modules"))))
;; Work around for the failed test KDEFetchTranslations.
;; It complains that the cmake project name is not
;; ".*/extra-cmake-modules".
;; TODO: Fix it upstream.
(add-after 'unpack 'fix-test
(lambda _
(substitute* "tests/KDEFetchTranslations/CMakeLists.txt"
(("\\.\\*/extra-cmake-modules") "extra-cmake-modules"))))
;; install and check phase are swapped to prevent install from failing
;; after testsuire has run
(add-after 'install 'check-post-install
(assoc-ref %standard-phases 'check))
(delete 'check))))
;; optional dependencies - to save space, we do not add these inputs.
;; Sphinx > 1.2:
;; Required to build Extra CMake Modules documentation in Qt Help format.
;; Qt5LinguistTools , Qt5 linguist tools. , <http://www.qt.io/>
;; Required to run tests for the ECMPoQmTools module.
;; Qt5Core
;; Required to run tests for the ECMQtDeclareLoggingCategory module,
;; and for some tests of the KDEInstallDirs module.
(home-page "https://community.kde.org/Frameworks")
(synopsis "CMake module files for common software used by KDE")
(description "The Extra CMake Modules package, or ECM, adds to the
modules provided by CMake to find common software. In addition, it provides
common build settings used in software produced by the KDE community.")
(license license:bsd-3)))
extra-cmake-modules

View File

@@ -0,0 +1,243 @@
(define-module (gunit packages floorp)
#:use-module ((nonguix 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.16")
(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)
(Icon . ,icon-path)
(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 "A highly customizable Firefox-based (Gecko) browser")
(home-page "https://floorp.app/")
(description "Floorp is the first Firefox-based browser to enable UI customization, designed so that anyone can easily
adjust their browsing experience to their preferences and access the web with ease.")
(license (license:nonfree "https://github.com/Floorp-Projects/Floorp-private-components/blob/main/LICENSE"))
))

View File

@@ -0,0 +1,181 @@
(define-module (gchannel packages hyprland-input-capture)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gchannel packages libinput-input-capture)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system asdf)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (gchannel packages hyprland-protocols-input-capture)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages calendar)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages engineering)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-web)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp-check)
#:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpd)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages music)
#:use-module (gnu packages pantheon)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages suckless)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages time)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public hyprland-input-capture
(package
(name "hyprland-input-capture")
(version "0.49.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/3l0w/Hyprland")
(commit "821497bc2379b8bef091c455bbfbfeec19f5ae4b")))
(sha256
(base32 "03qayx0xwcrcb0haxvlq8pasnlfvqc1xzhnlmjbizg70dda9iyxp"))))
;; The project's native build system is Meson.
(build-system meson-build-system)
(arguments
(list
#:tests? #f
#:configure-flags
#~'("-Dhyprpm=disabled")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/xwayland/Server.cpp"
(("Xwayland( \\{\\})" _ suffix)
(string-append
(search-input-file inputs "bin/Xwayland")
suffix)))
(substitute* (find-files "src" "\\.cpp$")
(("/usr/local(/bin/Hyprland)" _ path)
(string-append #$output path))
(("/usr") #$output)
(("\\<(addr2line|cat|lspci|nm)\\>" cmd)
(search-input-file
inputs (string-append "bin/" cmd))))
(substitute* '("src/Compositor.cpp"
"src/xwayland/XWayland.cpp"
"src/managers/VersionKeeperManager.cpp")
(("!NFsUtils::executableExistsInPath.*\".") "false")
(("hyprland-update-screen" cmd)
(search-input-file inputs (in-vicinity "bin" cmd)))))))))
(native-inputs
(list gcc-15
hyprwayland-scanner
(module-ref (resolve-interface
'(gnu packages commencement))
'ld-wrapper)
pkg-config))
(inputs
(list aquamarine
binutils
cairo
hyprcursor
hyprgraphics
hyprland-protocols-input-capture
hyprland-qtutils
hyprlang
hyprutils
libxcursor
libxkbcommon
mesa
pango
pciutils
re2-next
udis86
wayland
libinput-input-capture
wayland-protocols
linux-libre-headers-6.14
xcb-util-errors
xcb-util-wm
xorg-server-xwayland))
(home-page "https://hyprland.org/")
(synopsis "Dynamic tiling Wayland compositor")
(description
"Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on
its looks.")
(license license:bsd-3)))
hyprland-input-capture

View File

@@ -0,0 +1,117 @@
(define-module (gchannel packages hyprland-protocols-input-capture)
#:use-module (guix bzr-download)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages cran)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages disk)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fcitx)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) ;intltool
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hunspell)
#:use-module (gnu packages ibus)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages kde)
#:use-module (gnu packages language)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages man)
#:use-module (gnu packages m4)
#:use-module (gnu packages networking)
#:use-module (gnu packages nss)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages rsync)
#:use-module (gnu packages samba)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages w3m)
#:use-module (gnu packages web)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public hyprland-protocols-input-capture
(package
(name "hyprland-protocols-input-capture")
(version "0.6.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/3l0w/hyprland-protocols.git")
(commit "5433c38e9755e83905376ed0faf5c624869e24b9")))
(file-name (git-file-name "hyprland-protocols" "0.6.4"))
(sha256
(base32
"0ybs6nkihk19cxbqccfkj23m884x78l54nx5wpbf0nr3s34s6xws"))))
(build-system meson-build-system)
(home-page "https://github.com/hyprwm/hyprland-protocols")
(synopsis "Wayland protocol extensions for Hyprland")
(description
"This package provides Wayland protocol extensions for Hyprland.")
(license license:bsd-3)))
hyprland-protocols-input-capture

View File

@@ -0,0 +1,172 @@
(define-module (gchannel packages jupyter)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages aidc)
#:use-module (gnu packages algebra)
#:use-module (gnu packages attr)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages certs)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
#:use-module (gnu packages digest)
#:use-module (gnu packages django)
#:use-module (gnu packages djvu)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages emulators)
#:use-module (gnu packages enchant)
#:use-module (gnu packages file)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gdb)
#:use-module (gnu packages geo)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gsasl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages java)
#:use-module (gnu packages jupyter)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages maths)
#:use-module (gnu packages messaging)
#:use-module (gnu packages monitoring)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages node)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gchannel packages python-xyz)
#:use-module ((gnu packages python-xyz) #:hide (python-jupyter-console))
#:use-module (gnu packages qt)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages scanner)
#:use-module (gnu packages search)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages statistics)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages tree-sitter)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (guix packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix hg-download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
(define-public jupyter
(package
(name "jupyter")
(version "1.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jupyter" version))
(sha256
(base32
"0pwf3pminkzyzgx5kcplvvbvwrrzd3baa7lmh96f647k30rlpp6r"))))
(build-system python-build-system)
(arguments
(list
#:tests? #f ;there are none.
#:phases
;; Because python-jsonschema has an old python-webcolor. Remove this
;; when python-team branch is merged.
'(modify-phases %standard-phases
(delete 'sanity-check))))
(propagated-inputs
(list python-ipykernel
python-ipywidgets
python-jupyter-console
python-nbconvert
python-notebook
python-qtconsole))
(home-page "https://jupyter.org")
(synopsis "Web application for interactive documents")
(description
"The Jupyter Notebook is a web application that allows you to create and
share documents that contain live code, equations, visualizations and
explanatory text. Uses include: data cleaning and transformation, numerical
simulation, statistical modeling, machine learning and much more.")
(license license:bsd-3)))
jupyter

View File

@@ -0,0 +1,110 @@
(define-module (gchannel packages kwayland)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
#:use-module (gnu packages aspell)
#:use-module (gnu packages attr)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages calendar)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages docbook)
#:use-module (gnu packages ebook)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hunspell)
#:use-module (gnu packages image)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages kde-plasma)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
#:use-module (gnu packages mp3)
#:use-module (gnu packages openbox)
#:use-module (gnu packages pdf)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages text-editors)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public kwayland
(package
(name "kwayland")
(version "6.1.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kde/stable/plasma/"
version "/kwayland" "-"
version ".tar.xz"))
(sha256
(base32
"1acdgylx3j90h0mimv5ybwhby9zf3b1bs8h4ydrn18xx61by38v7"))))
(build-system qt-build-system)
(native-inputs
(list extra-cmake-modules pkg-config
;; for wayland-scanner
wayland))
(inputs
(list libxkbcommon
plasma-wayland-protocols
qtwayland
wayland
wayland-protocols))
(arguments
(list #:qtbase qtbase))
(home-page "https://invent.kde.org/plasma/kwayland")
(synopsis "Qt-style API to interact with the wayland client and server")
(description "As the names suggest they implement a Client respectively a
Server API for the Wayland protocol. The API is Qt-styled removing the needs to
interact with a for a Qt developer uncomfortable low-level C-API. For example
the callback mechanism from the Wayland API is replaced by signals, data types
are adjusted to be what a Qt developer expects - two arguments of int are
represented by a QPoint or a QSize.")
(license license:lgpl2.1+)))
kwayland

View File

@@ -0,0 +1,142 @@
(define-module (gchannel packages libinput-input-capture)
#:use-module (guix bzr-download)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages disk)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fcitx)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) ;intltool
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hunspell)
#:use-module (gnu packages ibus)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages kde)
#:use-module (gnu packages language)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages man)
#:use-module (gnu packages m4)
#:use-module (gnu packages networking)
#:use-module (gnu packages nss)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages rsync)
#:use-module (gnu packages samba)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages w3m)
#:use-module (gnu packages web)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public libinput-input-capture
;; Updating this will rebuild over 700 packages through libinput-minimal.
(package
(name "libinput-input-capture")
(version "1.28.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/libinput/libinput.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1kgdjxgx5dbrx21kp4x2azfffd96lhcry77pbddbpkw4643vkmwj"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Ddocumentation=false")
;; XXX: Using 'debug' or 'debugoptimized' pulls in an additional test that
;; hangs, and the comments around it suggests that we should be using this
;; Meson target anyway.
#:build-type "release"))
(native-inputs
(append (list check pkg-config python-minimal-wrapper python-pytest)
(if (%current-target-system)
(list pkg-config-for-build)
'())))
(inputs
(append (list cairo
glib
gtk+
libevdev
libwacom
mtdev)
(if (%current-target-system)
(list check)
'())))
(propagated-inputs
;; libinput.h requires <libudev.h>, so propagate it.
(list eudev))
(home-page "https://www.freedesktop.org/wiki/Software/libinput/")
(synopsis "Input devices handling library")
(description
"Libinput is a library to handle input devices for display servers and
other applications that need to directly deal with input devices.")
(license license:x11)))
libinput-input-capture

View File

@@ -0,0 +1,99 @@
(define-module (gchannel packages libp11)
#:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages curl)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages dns)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages networking)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages popt)
#:use-module (gnu packages readline)
#:use-module (gnu packages rsync)
#:use-module (gnu packages qt)
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages swig)
#:use-module (gnu packages suckless)
#:use-module (gnu packages security-token)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml))
(define-public libp11
(package
(name "libp11")
(version "0.4.13")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/OpenSC/libp11/releases/download/libp11-"
version "/libp11-" version ".tar.gz"))
(sha256
(base32
"11khasljs7ylk5ygb9n94lnmhqv0w80c3lmna4ny28xny77xjpfj"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'move
(lambda _
(invoke "rsync" "-a" (string-append #$output #$output "/") (string-append #$output))
(invoke "rm" "-rf" (string-append #$output "/gnu"))
)
)
)
#:tests? #f ; there are no tests for the runtime library
#:make-flags
#~(list
(string-append "DESTDIR=" #$output)
(string-append "PREFIX=")
)))
(inputs
(list openssl-1.1))
(native-inputs
(list libxslt rsync pkg-config))
(home-page "https://github.com/OpenSC/libp11/wiki")
(synopsis "Tools and libraries related to smart cards")
(description
"something")
(license license:lgpl2.1+)))
libp11

View File

@@ -0,0 +1,61 @@
(define-module (gchannel packages libportal)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system meson)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages qt)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages docbook)
#:use-module (gnu packages xml)
#:use-module ((guix licenses) #:prefix license:)
)
(define-public libportal
(package
(name "libportal")
(version "0.9.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/flatpak/libportal")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1rbqkmvvfig98ig8gsf93waiizrminj7gywxbza15hzx3an3hwh9"))))
(build-system meson-build-system)
(arguments
(list
#:configure-flags
#~(list "-Ddocs=false") ; requires unpackaged gi-docgen
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'set-qt-environment-variables
(lambda* (#:key inputs #:allow-other-keys)
;; Required for tests
(setenv "QT_QPA_PLATFORM" "offscreen"))))))
(native-inputs
(list pkg-config
docbook-xsl
docbook-xml
`(,glib "bin")
gobject-introspection
libxml2
vala))
(inputs
(list gtk
gtk+
qtbase-5
qtx11extras))
(propagated-inputs
(list glib))
(home-page "https://github.com/flatpak/libportal")
(synopsis "Flatpak portal library")
(description
"libportal provides GIO-style async APIs for most Flatpak portals.")
(license license:lgpl2.1+)))
libportal

View File

@@ -0,0 +1,82 @@
(define-module (guint packages linux)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (gnu packages linux)
#:use-module (srfi srfi-1)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (nongnu packages linux))
(define-public linux-t2-patches
(package
(name "linux-t2-patches")
(version "6.12")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/t2linux/linux-t2-patches.git")
(commit "54606b8797c539da9782dcbb16456fdf92d74f12")))
(file-name (git-file-name name version))
(sha256
(base32 "1ig7373xl5vqfpblh0sh4z8vgks4hq761j58lyns5cw2n648xl61"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; Disable the 'check' phase
#:phases
(modify-phases %standard-phases
(replace 'configure (lambda _ #t))
(replace 'build (lambda _ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(mkdir-p out)
(copy-recursively "." out))
#t)))))
(synopsis "Patch set for running Linux on T2-based Macs")
(description "This package provides a set of patches from the t2linux project
to enable support for the Apple T2 security chip and related hardware.")
(home-page "https://github.com/t2linux/linux-t2-patches")
(license license:gpl2+)))
(define (mbp-t2-extra-options)
'(("CONFIG_SPI_APPLE" . y)
("CONFIG_APPLE_BCE" . y)
("CONFIG_APPLE_DCP" . y)
("CONFIG_PINCTRL_APPLE_GPIO" . y)))
(define-public linux-kernel-mbp-t2
(package
(inherit linux-6.12)
(name "linux-kernel-mbp-t2")
(synopsis "Linux kernel for Macs with the T2 chip")
(description "This package provides a Linux kernel with patches applied to support hardware found in Apple T2-based MacBooks.")
(license license:gpl2+)
(native-inputs
(append (package-native-inputs linux-6.12)
`(("t2-patches" ,linux-t2-patches))))
(arguments
(substitute-keyword-arguments (package-arguments linux-6.12)
((#:native-inputs native-inputs)
#~(cons* (list "t2-patches" ,linux-t2-patches)
#$native-inputs))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'apply-t2-patches
(lambda* (#:key inputs #:allow-other-keys)
(use-modules (guix build utils))
(let ((patch-dir (assoc-ref inputs "t2-patches")))
(let ((patch-files (find-files patch-dir "\\.patch$")))
(format #t "Applying ~a T2 patches...~%" (length patch-files))
(for-each
(lambda (patch)
(invoke "patch" "-p1" "-i" patch))
(sort patch-files string<))
#t))))))
((#:kernel-config config)
#~(kernel-config-union #$config
(kernel-config #:configs (mbp-t2-extra-options))))))))

View File

@@ -0,0 +1,121 @@
(define-module (gchannel packages neovim)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (gnu packages)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages serialization)
#:use-module (gnu packages terminals)
#:use-module (gchannel packages tree-sitter)
#:use-module (gnu packages pkg-config)
#:use-module (guix build-system cmake)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gperf)
#:use-module (guix build cmake-build-system)
)
(define-public neovim
(package
(name "neovim")
(version "0.10.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/neovim/neovim")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1xmncdj6nxa45m0qk3wmnp7b5d0iqqapy1m2vqzv316rr2snxrg4"))))
(build-system cmake-build-system)
(arguments
(list #:modules
'((srfi srfi-26) (guix build cmake-build-system)
(guix build utils))
#:configure-flags
#~(list #$@(if (member (if (%current-target-system)
(gnu-triplet->nix-system (%current-target-system))
(%current-system))
(package-supported-systems luajit))
'()
'("-DPREFER_LUA:BOOL=YES")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-lua-paths
(lambda* _
(let* ((lua-version "5.1")
(lua-cpath-spec (lambda (prefix)
(let ((path (string-append
prefix
"/lib/lua/"
lua-version)))
(string-append
path
"/?.so;"
path
"/?/?.so"))))
(lua-path-spec (lambda (prefix)
(let ((path (string-append prefix
"/share/lua/"
lua-version)))
(string-append path "/?.lua;"
path "/?/?.lua"))))
(lua-inputs (list (or #$(this-package-input "lua")
#$(this-package-input "luajit"))
#$lua5.1-luv
#$lua5.1-lpeg
#$lua5.1-bitop
#$lua5.1-libmpack)))
(setenv "LUA_PATH"
(string-join (map lua-path-spec lua-inputs) ";"))
(setenv "LUA_CPATH"
(string-join (map lua-cpath-spec lua-inputs) ";"))
#t)))
(add-after 'unpack 'prevent-embedding-gcc-store-path
(lambda _
;; nvim remembers its build options, including the compiler with
;; its complete path. This adds gcc to the closure of nvim, which
;; doubles its size. We remove the reference here.
(substitute* "cmake.config/versiondef.h.in"
(("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc"))
#t)))))
(inputs (list libuv-for-luv
msgpack
libtermkey
libvterm
unibilium
jemalloc
(if (member (if (%current-target-system)
(gnu-triplet->nix-system (%current-target-system))
(%current-system))
(package-supported-systems luajit))
luajit
lua-5.1)
lua5.1-luv
lua5.1-lpeg
lua5.1-bitop
lua5.1-libmpack
tree-sitter))
(native-inputs (list pkg-config gettext-minimal gperf))
(home-page "https://neovim.io")
(synopsis "Fork of vim focused on extensibility and agility")
(description
"Neovim is a project that seeks to aggressively
refactor Vim in order to:
@itemize
@item Simplify maintenance and encourage contributions
@item Split the work between multiple developers
@item Enable advanced external UIs without modifications to the core
@item Improve extensibility with a new plugin architecture
@end itemize
")
;; Neovim is licensed under the terms of the Apache 2.0 license,
;; except for parts that were contributed under the Vim license.
(license (list license:asl2.0 license:vim))))
neovim

View File

@@ -0,0 +1,218 @@
(define-module (gchannel packages nextcloud-client)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system qt)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gchannel packages libp11)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages base)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages dlang)
#:use-module (gnu packages documentation)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libevent)
#:use-module (gnu packages gl)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages markup)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages rsync)
#:use-module (gnu packages ruby)
#:use-module (gnu packages security-token)
#:use-module (gnu packages selinux)
#:use-module (gnu packages shells)
#:use-module (gnu packages version-control)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages tls))
(define-public nextcloud-client
(package
(name "nextcloud-client")
(version "3.13.3")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/nextcloud/desktop")
(commit (string-append "v" version))))
(file-name
(git-file-name name version))
(sha256
(base32 "1qd2jckk47kym08r8hjjy5iadbz71633i72ixy6zmdwh9wv9s54b"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
(snippet
'(begin
;; Not available in Guix.
(let* ((keep '("QProgressIndicator" "qtokenizer" "kirigami")))
(with-directory-excursion "src/3rdparty"
(for-each delete-file-recursively
(lset-difference string=?
(scandir ".")
(cons* "." ".." keep)))))
(with-directory-excursion "src/gui"
(substitute* "CMakeLists.txt"
;; Remove references of deleted 3rdparties.
(("[ \t]*\\.\\./3rdparty/qtlockedfile/?.*\\.(cpp|h)")
"")
(("[ \t]*\\.\\./3rdparty/qtsingleapplication/?.*\\.(cpp|h)")
"")
(("[ \t]*\\.\\./3rdparty/kmessagewidget/?.*\\.(cpp|h)")
"")
(("[ \t]*list\\(APPEND 3rdparty_SRC \\.\\./3rdparty/?.*\\)")
"")
(("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtlockedfile")
"")
(("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtsingleapplication")
"")
(("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagewidget")
;; For this, we rely on build inputs, so let's just replace
;; them by an autoconf-style variable.
"@kwidgetsaddons@")
;; Expand libraries, that used to be statically linked, but
;; no longer are post-vendoring.
(("KF5::Archive")
(string-append "KF5::Archive "
"QtSolutions_LockedFile "
"QtSolutions_SingleApplication "
"KF5WidgetsAddons")))
;; Fix compatibility with QtSingleApplication from QtSolutions.
(substitute* '("application.h" "application.cpp")
(("SharedTools::QtSingleApplication")
"QtSingleApplication")
(("slotParseMessage\\(const QString &(msg)?.*\\)")
"slotParseMessage(const QString &msg)")))
#t))))
(build-system qt-build-system)
(arguments
`(#:configure-flags
(list
"-DUNIT_TESTING=ON" "-DBUILD_UPDATER=OFF")
#:imported-modules
((guix build glib-or-gtk-build-system)
,@%qt-build-system-modules)
#:modules
(((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build qt-build-system)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-cmake
(lambda* (#:key inputs #:allow-other-keys)
;; Patch install directory for dbus service files.
(substitute* "shell_integration/libcloudproviders/CMakeLists.txt"
(("pkg_get_variable\\(_install_dir dbus-1 .*\\)")
(string-append "set(_install_dir \"${CMAKE_INSTALL_PREFIX}"
"/share/dbus-1/services\")")))
(substitute* "shell_integration/dolphin/CMakeLists.txt"
;; Make sure, that Qt modules are installed under $prefix.
(("ON CACHE") "OFF CACHE"))
(substitute* "src/gui/CMakeLists.txt"
(("@kwidgetsaddons@")
(search-input-directory inputs
"/include/KF5/KWidgetsAddons/")))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "QT_QPA_PLATFORM" "offscreen")
(invoke "ctest" "-E" "SyncXAttrTest"))))
(add-before 'check 'pre-check
(lambda _
;; Tests write to $HOME.
(setenv "HOME" (getcwd))
#t))
(delete 'check) ;; Check requires some networking capabilities that aren't granted in a builder sandbox
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
(add-after 'qt-wrap 'qpa-platform
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(system* "sed" "-i"
"/^export XDG_DATA_DIRS=/i export QT_QPA_PLATFORM=xcb"
(string-append out "/bin/nextcloud"))
#t)))
)))
(native-inputs
`(("cmocka" ,cmocka)
("dot" ,graphviz)
("doxygen" ,doxygen)
("extra-cmake-modules" ,extra-cmake-modules)
("glib:bin" ,glib "bin")
("librsvg" ,(librsvg-for-system))
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("qttools-5" ,qttools-5)
("ruby" ,ruby)))
(inputs
(list appstream
dbus
desktop-file-utils
glib
karchive-5
kconfig-5
kcoreaddons-5
kio-5
kjs
kwidgetsaddons-5
libcloudproviders
libzip
openssl
qtbase-5
qtdeclarative-5
qtgraphicaleffects
qtkeychain
qtquickcontrols2-5
qtsolutions
qtsvg-5
qtwebchannel-5
qtwebsockets-5
sqlite
xdg-utils
zlib))
(propagated-inputs
(list qtwebengine-5))
(synopsis "Desktop sync client for Nextcloud")
(description "Nextcloud-Desktop is a tool to synchronize files from
Nextcloud Server with your computer.")
(home-page "https://nextcloud.com")
(license (list license:expat ; QProgressIndicator
license:lgpl2.1+ ; qtokenizer
license:gpl2+))))
nextcloud-client

View File

@@ -0,0 +1,61 @@
(define-module (guint packages obs-plugins)
#: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 video)
#:use-module (gnu packages libusb)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages version-control)
#:use-module (gnu packages image)
#:use-module (guix build-system gnu))
(define-public obs-droidcam
(package
(name "obs-droidcam")
(version "2.3.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dev47apps/droidcam-obs-plugin")
(commit version)
(recursive? #t)))
(sha256
(base32 "0q4nbfd7xly44psmv2hb3bimcx5mp20vw8z10dqsvrsasy2hnqr9"))))
(build-system gnu-build-system)
(inputs
(list
obs libusbmuxd libjpeg-turbo libimobiledevice ffmpeg))
(arguments
(list
#:tests? #f ; no check target
#:make-flags
#~(list
(string-append "LIBUSBMUXD=" "libusbmuxd-2.0") ;;(assoc-ref %outputs "out")
(string-append "LIBIMOBILEDEV=" "libimobiledevice-1.0")
(string-append "LIBOBS_INCLUDES=" #$(this-package-input "obs") "/include/obs")
(string-append "FFMPEG_INCLUDES=" #$(this-package-input "ffmpeg") "/include")
(string-append "ALLOWSTATIC=" "no"))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'configure-directory
(lambda _
(mkdir-p "build")))
(replace 'install
(lambda _
(mkdir-p (string-append (assoc-ref %outputs "out") "/lib/obs-plugins"))
(mkdir-p (string-append (assoc-ref %outputs "out") "/share/obs/obs-plugins"))
(invoke "cp" "./build/droidcam-obs.so" (string-append (assoc-ref %outputs "out") "/lib/obs-plugins/droidcam-obs.so"))
(invoke "cp" "-r" "./data/locale" (string-append (assoc-ref %outputs "out") "/share/obs/obs-plugins/droidcam-obs")) #t)))))
(native-inputs
(list git pkg-config))
(synopsis "Droidcam OBS plugin")
(home-page "https://dev47apps.com/obs/")
(description "A plugin for OBS to enable droidcam which allows you to use your phone as a webcam (and even a mic). Supports iOS and Android.")
(license license:gpl2)))

View File

@@ -0,0 +1,163 @@
(define-module (gchannel packages python-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages aidc)
#:use-module (gnu packages algebra)
#:use-module (gnu packages attr)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages certs)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
#:use-module (gnu packages digest)
#:use-module (gnu packages django)
#:use-module (gnu packages djvu)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages emulators)
#:use-module (gnu packages enchant)
#:use-module (gnu packages file)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gdb)
#:use-module (gnu packages geo)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gsasl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages java)
#:use-module (gnu packages jupyter)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages maths)
#:use-module (gnu packages messaging)
#:use-module (gnu packages monitoring)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages node)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#: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 rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages scanner)
#:use-module (gnu packages search)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages statistics)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages tree-sitter)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (guix packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix hg-download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
(define-public python-jupyter-console
(package
(name "python-jupyter-console")
(version "6.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jupyter_console" version))
(sha256
(base32
"1sirmvx0dlmz217p6145kwv7j1pc8daxsinqivvzdhvbl4fqzrk7"))))
(build-system python-build-system)
(propagated-inputs
(list python-ipykernel python-jupyter-client python-prompt-toolkit
python-pygments))
(native-inputs
(list python-nose python-pytest))
(home-page "https://jupyter.org")
(synopsis "Jupyter terminal console")
(description "This package provides a terminal-based console frontend for
Jupyter kernels. It also allows for console-based interaction with non-Python
Jupyter kernels such as IJulia and IRKernel.")
(license license:bsd-3)))
python-jupyter-console

View File

@@ -0,0 +1,244 @@
(define-module (gunit packages 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 (gnu packages nss)
#:use-module (nongnu packages nvidia)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages pretty-print)
#: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 xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xml)
#: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 "1b4lspdipm0irb3x9ia8g6d1n16qc4y7j8lprm7z3llmkhhdhqlg"))))
(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 "A client for RuneScape")
(home-page "https://www.runescape.com/")
(description "RuneScape Game Client (NXT)")
(license
(license:nonfree "https://www.jagex.com/en-GB/terms")
)))
(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.
("expat" ,expat) ; Needed for RS3
("fontconfig" ,fontconfig) ; Required for steam client.
("file" ,file) ; Used for steam installation.
("find" ,findutils) ; Required at least for some logging.
("fmt" ,fmt) ; Needed for RS3
("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)
("glibc" ,glibc)
("grep" ,grep)
("gtk+" ,gtk+)
("gtk" ,gtk+-2)
("libbsd" ,libbsd)
("libcap" ,libcap) ; Required for SteamVR, but needs pkexec too.
("libdrm" ,libdrm) ; Needed for RS3
("libglvnd" ,libglvnd)
("libusb" ,libusb) ; Required for SteamVR.
("libsm" ,libsm)
("libxcb" ,libxcb) ; Needed for RS3
("libxcomposite" ,libxcomposite) ; Needed for RS3
("libxext" ,libxext) ; Needed for RS3
("libxkbcommon" ,libxkbcommon) ; Needed for RS3
("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)
("libxdamage" ,libxdamage) ; Needed for RS3
("libxfixes" ,libxfixes) ; Needed for RS3
("libxxf86vm" ,libxxf86vm)
("llvm" ,llvm-for-mesa) ; Required for mesa.
("lsof" ,lsof) ; Required for some friend's list actions.
("mesa" ,mesa) ; Required for steam startup.
("nspr" ,nspr) ; Required for RS3
("nss-certs" ,nss-certs) ; Required for steam login.
("nss" ,nss) ; Needed for RS3
("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))

View File

@@ -0,0 +1,60 @@
(define-module (gchannel packages tree-sitter)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (gnu packages)
#:use-module (gnu packages icu4c)
#:use-module (guix build gnu-build-system)
#:use-module (guix build-system gnu)
)
(define-public tree-sitter
(package
(name "tree-sitter")
(version "0.25.3") ;untagged
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tree-sitter/tree-sitter")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0cck2wa17figxww7lb508sgwy9sbyqj89vxci07hiscr5sgdx9y5"))
(modules '((guix build utils)))
(snippet #~(begin
;; Remove bundled ICU parts
(delete-file-recursively "lib/src/unicode")))))
(build-system gnu-build-system)
(inputs (list icu4c))
(arguments
(list #:phases
#~(modify-phases %standard-phases
(delete 'configure))
#:tests? #f ; there are no tests for the runtime library
#:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target)))))
(home-page "https://tree-sitter.github.io/tree-sitter/")
(synopsis "Incremental parsing system for programming tools")
(description
"Tree-sitter is a parser generator tool and an incremental parsing
library. It can build a concrete syntax tree for a source file and
efficiently update the syntax tree as the source file is edited.
Tree-sitter aims to be:
@itemize
@item General enough to parse any programming language
@item Fast enough to parse on every keystroke in a text editor
@item Robust enough to provide useful results even in the presence of syntax errors
@item Dependency-free so that the runtime library (which is written in pure C)
can be embedded in any application
@end itemize
This package includes the @code{libtree-sitter} runtime library.")
(license license:expat)))
tree-sitter

View File

@@ -0,0 +1,147 @@
;;; 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 (gunit 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 "Customizable chromium 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"))

View File

@@ -0,0 +1,143 @@
(define-module (gchannel packages xdg-desktop-portal-hyprland-input-capture)
#:use-module (guix bzr-download)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system qt)
#:use-module (gchannel packages hyprland-protocols-input-capture)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages cran)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages disk)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fcitx)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) ;intltool
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hunspell)
#:use-module (gnu packages ibus)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages kde)
#:use-module (gnu packages language)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages man)
#:use-module (gnu packages m4)
#:use-module (gnu packages networking)
#:use-module (gnu packages nss)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages rsync)
#:use-module (gnu packages samba)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages w3m)
#:use-module (gnu packages web)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public xdg-desktop-portal-hyprland-input-capture
(package
(name "xdg-desktop-portal-hyprland-input-capture")
(version "1.3.11")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/3l0w/xdg-desktop-portal-hyprland")
(commit "55afeb19c5833f9805fd383bd3525e2d8547e883")))
(file-name (git-file-name "xdg-desktop-portal-hyprland" version))
(sha256
(base32 "1bkyhz6nslksj6hbd9i3fgkvkcfga4n4nnm4dhk612cnma6b58pj"))))
(build-system qt-build-system)
(arguments
(list #:tests? #f ;No tests.
#:qtbase qtbase))
(native-inputs
`(("util-linux" ,util-linux "lib")
("gcc-14" ,gcc-14)
("wayland-scanner" ,hyprwayland-scanner)
("pkg-config" ,pkg-config)))
(inputs
(list bash-minimal
grim
hyprland
hyprland-protocols-input-capture
hyprlang
hyprutils
mesa
pipewire
qtwayland
sdbus-c++
;; hyprwayland-scanner
slurp
libei
wayland
wayland-protocols))
(home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland")
(synopsis "Hyprland implementation of @code{xdg-desktop-portal} backend")
(description
"This package provides an @code{xdg-desktop-portal} backend for Hyprland.")
(license license:bsd-3)))
xdg-desktop-portal-hyprland-input-capture

View File

@@ -0,0 +1,168 @@
(define-module (gchannel packages xdg-desktop-portal)
#:use-module (guix bzr-download)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gchannel packages extra-cmake-modules)
#:use-module (gchannel packages libportal)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages disk)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fcitx)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
#:use-module ((gnu packages freedesktop) #:hide (libportal))
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) ;intltool
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hunspell)
#:use-module (gnu packages ibus)
#:use-module (gnu packages image)
#:use-module ((gnu packages kde-frameworks) #:hide (extra-cmake-modules))
#:use-module (gnu packages kde)
#:use-module (gnu packages language)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages man)
#:use-module (gnu packages m4)
#:use-module (gnu packages networking)
#:use-module (gnu packages nss)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages rsync)
#:use-module (gnu packages samba)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages w3m)
#:use-module (gnu packages web)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public xdg-desktop-portal
(package
(name "xdg-desktop-portal")
(version "1.20.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/flatpak/xdg-desktop-portal/releases/download/"
version "/xdg-desktop-portal-" version ".tar.xz"))
(sha256
(base32
"1pn0q7nn9xzd2wva9zpxn1dd2kqxwjm2a68yv9gaaa4alh9cvkb6"))
))
(build-system meson-build-system)
(arguments
`(#:configure-flags
(list "-Dsystemd=disabled" "-Dtests=disabled")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'po-chmod
(lambda _
;; Make sure 'msgmerge' can modify the PO files.
(for-each (lambda (po)
(chmod po #o666))
(find-files "po" "\\.po$"))))
(add-after 'unpack 'set-home-directory
(lambda _ (setenv "HOME" "/tmp"))))))
(native-inputs
(list gettext-minimal
`(,glib "bin")
pkg-config
python
python-dbusmock
python-pytest
python-pytest-xdist))
(inputs
(list bubblewrap
dbus
flatpak
fontconfig
fuse
gdk-pixbuf
geoclue
glib
json-glib
gst-plugins-base
libportal
umockdev
pipewire))
(native-search-paths
(list (search-path-specification
(variable "XDG_DESKTOP_PORTAL_DIR")
(separator #f)
(files '("share/xdg-desktop-portal/portals")))))
(home-page "https://github.com/flatpak/xdg-desktop-portal")
(synopsis "Desktop integration portal for sandboxed apps")
(description
"xdg-desktop-portal is a @dfn{portal front-end service} for Flatpak and
possibly other desktop containment frameworks. It works by exposing a series
of D-Bus interfaces known as portals under a well-known
name (@code{org.freedesktop.portal.Desktop}) and object
path (@code{/org/freedesktop/portal/desktop}).
The portal interfaces include APIs for file access, opening URIs, printing
and others.")
(license license:lgpl2.1+)))
xdg-desktop-portal

View File

@@ -0,0 +1,62 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
(define-module (gchannel packages yarn)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages node)
#:use-module (guix build-system copy)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module ((guix licenses) :prefix license:))
(define-public yarn
(package
(name "yarn")
(version "1.22.22")
(source (origin
(method url-fetch/tarbomb)
(uri (string-append "https://github.com/yarnpkg/yarn/releases/download/v"
version
"/yarn-v"
version
".tar.gz"))
(sha256
(base32
"181nvynhhrbga3c209v8cd9psk6lqjkc1s9wyzy125lx35j889l8"))))
(build-system copy-build-system)
(inputs (list coreutils bash-minimal node-lts sed))
(arguments
(list #:install-plan
#~`((,(string-append "yarn-v" #$version "/bin") "bin")
(,(string-append "yarn-v" #$version "/lib") "lib")
(,(string-append "yarn-v" #$version "/package.json")
"lib/package.json"))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'delete-powershell-entrypoints
(lambda _
(delete-file (string-append #$output "/bin/yarn.cmd"))
(delete-file (string-append #$output "/bin/yarnpkg.cmd"))))
(add-after 'delete-powershell-entrypoints 'wrap-entrypoints
(lambda _
(for-each
(lambda (entrypoint)
(wrap-program (string-append #$output "/bin/" entrypoint)
`("PATH" = (,(string-append
#$output "/bin:"
#$(this-package-input "bash-minimal") "/bin:"
#$(this-package-input "coreutils") "/bin:"
#$(this-package-input "sed") "/bin:"
#$(this-package-input "node") "/bin")))))
'("yarn" "yarnpkg")))))))
(home-page "https://yarnpkg.com/")
(synopsis "Dependency management tool for JavaScript")
(description
"Yarn is a dependency management tool for JavaScript. It acts as a
drop-in replacement for @code{node}'s @command{npm}.")
(license license:bsd-2)))

View File

@@ -0,0 +1,39 @@
(define-module (services code-server)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu services)
#:use-module (gnu services home)
#:use-module (shepherd support)
#:export (home-code-server-service-type))
(define (code-server-service config)
;; This procedure defines a Shepherd service to run and manage code-server,
;; which provides a web-based instance of VS Code. The service ensures
;; code-server starts automatically and restarts if it crashes.
(list
(shepherd-service
(documentation "Run the code-server backend.")
(provision '(code-server)) ;; Ensure the code-server package is available.
(modules '((shepherd support)))
;; Start the service by directly executing the binary from its package path.
;; All output is redirected to a dedicated log file in the user's home directory.
(start #~(make-forkexec-constructor
(list #$(file-append (specification->package "code-server") "/bin/code-server"))
#:log-file (string-append %user-log-dir "/code-server.log")))
;; To stop the service, simply send a kill signal to the process.
(stop #~(make-kill-destructor))
;; Automatically respawn the service if it terminates unexpectedly.
(respawn? #t))))
(define code-server-service-type
(service-type
(name 'code-server)
;; This links our custom 'code-server-service' implementation to the main user Shepherd service.
(extensions (list (service-extension home-shepherd-service-type code-server-service)))
;; The #t default value means the service will be active unless explicitly disabled.
(default-value #t)
(description "A user service to run a VS Code instance in the browser.")))