├── .gitignore ├── .guix-authorizations ├── .guix-channel ├── COPYING ├── README.md ├── dfsg ├── contrib │ ├── b43-fwcutter.scm │ ├── keybase.scm │ ├── services │ │ └── tailscale.scm │ └── tailscale.scm ├── main │ ├── adblock.scm │ ├── brendan_gregg.scm │ ├── cpuid2cpuflags.scm │ ├── gawk.scm │ ├── girst.scm │ ├── golang.scm │ ├── guix-send-email.scm │ ├── hfsutils.scm │ ├── honk.scm │ ├── hspell.scm │ ├── ih.scm │ ├── mac-fdisk.scm │ ├── mainframe.scm │ ├── minitube.scm │ ├── moreutils.scm │ ├── mptcp.scm │ ├── mpv.scm │ ├── openblas.scm │ ├── parcimonie.scm │ ├── pdfjs.scm │ ├── pgzero.scm │ ├── pifs.scm │ ├── pipx.scm │ ├── python-numpy.scm │ ├── qt.scm │ ├── quassel.scm │ ├── qutebrowser.scm │ ├── rdrview.scm │ ├── s3fs.scm │ ├── seashells.scm │ ├── sigil.scm │ ├── syncthing.scm │ ├── tokodon.scm │ ├── ueberzug.scm │ └── vim.scm └── non-free │ ├── b43-firmware.scm │ ├── hfs.scm │ ├── ravkav.scm │ └── widevine.scm ├── gitea-patch-makefile.patch └── wip ├── ada.scm ├── box86.scm ├── busybox.scm ├── clangen.scm ├── epr.scm ├── gotosocial.scm ├── infinitime.scm ├── ly.scm ├── mars.scm ├── microblog-pub.scm └── pkgsrc.scm /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.go 3 | *swp 4 | -------------------------------------------------------------------------------- /.guix-authorizations: -------------------------------------------------------------------------------- 1 | (authorizations 2 | (version 0) 3 | (("A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351" 4 | (name "efraim")))) 5 | 6 | /* vim: set ft=scheme : */ 7 | -------------------------------------------------------------------------------- /.guix-channel: -------------------------------------------------------------------------------- 1 | (channel 2 | (version 0) 3 | ;(news-file "news.txt") 4 | (url "https://git.sr.ht/~efraim/my-guix")) 5 | 6 | /* vim: set ft=scheme : */ 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Efraim's Guix Channel 2 | ===================== 3 | 4 | A collection of custom Guix packages that aren't (yet) suitable 5 | for submission upstream. 6 | 7 | Usage 8 | ----- 9 | 10 | This channel can be installed as a 11 | [Guix channel](https://www.gnu.org/software/guix/manual/en/html_node/Channels.html). 12 | To do so, add it to '~/.config/guix/channels.scm': 13 | 14 | ``` 15 | (cons* (channel 16 | (name 'efraim-dfsg) 17 | (url "https://git.sr.ht/~efraim/my-guix") 18 | ;; Enable signature verification: 19 | (introduction 20 | (make-channel-introduction 21 | "61c9f87404fcb97e20477ec379b643099e45f1db" 22 | (openpgp-fingerprint 23 | "A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351")))) 24 | %default-channels) 25 | ``` 26 | 27 | Then run 'guix pull'. 28 | 29 | The packages in this repo will take precedence over those in the 30 | official distribution. 31 | -------------------------------------------------------------------------------- /dfsg/contrib/b43-fwcutter.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg contrib b43-fwcutter) 19 | #:use-module (guix download) 20 | #:use-module (guix packages) 21 | #:use-module ((guix licenses) #:prefix license:) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system gnu)) 25 | 26 | (define-public b43-fwcutter 27 | (package 28 | (name "b43-fwcutter") 29 | (version "019") 30 | (source 31 | (origin 32 | (method url-fetch) 33 | (uri (string-append "https://bues.ch/b43/fwcutter/" 34 | "b43-fwcutter-" version ".tar.bz2")) 35 | (sha256 36 | (base32 37 | "1ki1f5fy3yrw843r697f8mqqdz0pbsbqnvg4yzkhibpn1lqqbsnn")))) 38 | (build-system gnu-build-system) 39 | (arguments 40 | (list 41 | #:make-flags 42 | #~(list (string-append "CC=" #$(cc-for-target)) 43 | (string-append "PREFIX=" #$output)) 44 | #:tests? #f ; No tests. 45 | #:phases 46 | #~(modify-phases %standard-phases 47 | (delete 'configure) ; No configure script 48 | (replace 'install 49 | (lambda _ 50 | (install-file "b43-fwcutter" (string-append #$output "/bin")) 51 | (install-file "b43-fwcutter.1" 52 | (string-append #$output "/share/man/man1"))))))) 53 | (home-page "https://wireless.wiki.kernel.org/en/users/Drivers/b43") 54 | (synopsis "Tool to extract firmware from binary Broadcom 43xx driver files") 55 | (description "@code{b43-fwcutter} can extract the firmware for your 56 | Broadcom 43xx hardware from different closed source drivers. The b43 driver 57 | depends on these firmware files and can't work without them. Currently 58 | b43-fwcutter supports Apple MacOS X, Microsoft Windows and Linux drivers, but 59 | keep in mind that b43-fwcutter doesn't support all driver versions.") 60 | (license license:bsd-2))) 61 | -------------------------------------------------------------------------------- /dfsg/contrib/keybase.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020, 2021, 2023, 2025 Efraim Flashner 2 | ;;; Copyright © 2024 umanwizard 3 | ;;; 4 | ;;; This file is an addendum to GNU Guix. 5 | ;;; 6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 7 | ;;; under the terms of the GNU General Public License as published by 8 | ;;; the Free Software Foundation; either version 3 of the License, or (at 9 | ;;; your option) any later version. 10 | ;;; 11 | ;;; GNU Guix is distributed in the hope that it will be useful, but 12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | ;;; GNU General Public License for more details. 15 | ;;; 16 | ;;; You should have received a copy of the GNU General Public License 17 | ;;; along with GNU Guix. If not, see . 18 | 19 | (define-module (dfsg contrib keybase) 20 | #:use-module ((guix licenses) #:prefix license:) 21 | #:use-module (guix build utils) 22 | #:use-module (guix git-download) 23 | #:use-module (guix gexp) 24 | #:use-module (guix packages) 25 | #:use-module (guix records) 26 | #:use-module (guix utils) 27 | #:use-module (guix build-system gnu) 28 | #:use-module (guix build-system go) 29 | #:use-module (gnu packages base) 30 | #:use-module (gnu packages certs) 31 | #:use-module (gnu packages compression) 32 | #:use-module (gnu packages golang) 33 | #:use-module (ice-9 match)) 34 | 35 | (define-record-type* 36 | go-git-reference make-go-git-reference 37 | go-git-reference? 38 | (url go-git-reference-url) 39 | (commit go-git-reference-commit) 40 | (hash go-git-reference-sha256)) 41 | 42 | (define-record-type* 43 | go-url-reference make-go-url-reference 44 | go-url-reference? 45 | (url go-url-reference-url) 46 | (hash go-url-reference-hash)) 47 | 48 | (define* (go-fetch-vendored uri hash-algorithm hash-value name #:key system) 49 | (let ((src 50 | (match uri 51 | (($ url commit hash) 52 | (origin 53 | (method git-fetch) 54 | (uri (git-reference 55 | (url url) 56 | (commit commit))) 57 | (sha256 hash))) 58 | (($ url commit hash) 59 | (origin 60 | (method url-fetch) 61 | (uri url) 62 | (sha256 hash))))) 63 | (name (or name "go-git-checkout"))) 64 | (gexp->derivation 65 | (string-append name "-vendored.tar.gz") 66 | (with-imported-modules (append '((guix build utils)) 67 | %default-gnu-imported-modules) 68 | #~(begin 69 | (use-modules ((guix build gnu-build-system) #:prefix gnu:) 70 | (guix build utils)) 71 | (let ((inputs (list 72 | #+go 73 | #+tar 74 | #+bzip2 75 | #+gzip))) 76 | (set-path-environment-variable "PATH" '("/bin") inputs)) 77 | ((assoc-ref gnu:%standard-phases 'unpack) #:source #$src) 78 | 79 | (setenv "GOCACHE" "/tmp/gc") 80 | (setenv "GOMODCACHE" "/tmp/gmc") 81 | (setenv "SSL_CERT_DIR" #+(file-append nss-certs "/etc/ssl/certs/")) 82 | 83 | (with-directory-excursion "go" 84 | (invoke "go" "mod" "vendor")) 85 | 86 | (invoke "tar" "czvf" #$output 87 | ;; Avoid non-determinism in the archive. 88 | "--mtime=@0" 89 | "--owner=root:0" 90 | "--group=root:0" 91 | "--sort=name" 92 | "--hard-dereference" 93 | "../"))) 94 | #:hash hash-value 95 | #:hash-algo hash-algorithm))) 96 | 97 | (define-public keybase 98 | (package 99 | (name "keybase") 100 | (version "6.4.0") 101 | (source (origin 102 | (method go-fetch-vendored) 103 | (uri (go-git-reference 104 | (url "https://github.com/keybase/client") 105 | (commit (string-append "v" version)) 106 | (hash 107 | (base32 108 | "0s0ppic97gm2cskkgvs1k9xklcbyv43w4hrzdw55abqgd01v26l5")))) 109 | (file-name (git-file-name name version)) 110 | (sha256 111 | (base32 112 | "1vay0i02zwqn9bi35wdhbkpr2gqja0123zdb3f3lbyc7rx6vryr5")) 113 | (snippet 114 | #~(begin 115 | (use-modules (guix build utils)) 116 | (for-each delete-file-recursively 117 | (list "osx" 118 | "shared" 119 | "browser" ; GUI 120 | "protocol" ; protocol generator and tester 121 | "pvl-tools" 122 | "media" 123 | "packaging")))))) 124 | (build-system go-build-system) 125 | (arguments 126 | (list 127 | #:install-source? #f 128 | #:import-path "github.com/keybase/client/go/keybase" 129 | #:unpack-path "github.com/keybase/client" 130 | #:build-flags #~(list "-tags" "production") 131 | #:phases 132 | #~(modify-phases %standard-phases 133 | (replace 'build 134 | (lambda* (#:key import-path build-flags #:allow-other-keys) 135 | (for-each 136 | (lambda (directory) 137 | ((assoc-ref %standard-phases 'build) 138 | #:build-flags build-flags 139 | #:import-path directory)) 140 | (list import-path 141 | "github.com/keybase/client/go/kbfs/kbfsfuse" 142 | "github.com/keybase/client/go/kbfs/kbfsgit/git-remote-keybase" 143 | "github.com/keybase/client/go/kbfs/redirector" 144 | "github.com/keybase/client/go/kbnm")))) 145 | (replace 'check 146 | (lambda* (#:key import-path tests? #:allow-other-keys) 147 | (when tests? 148 | (with-directory-excursion (string-append "src/" import-path) 149 | (invoke "go" "test" "-v" "go/..."))))) 150 | (add-after 'install 'install-license 151 | (lambda _ 152 | (install-file "src/github.com/keybase/client/LICENSE" 153 | (string-append #$output "/share/doc/" 154 | #$name "-" #$version "/"))))))) 155 | (home-page "https://keybase.io") 156 | (synopsis "Secure messaging and file-sharing") 157 | (description "Keybase is a key directory that maps social media identities 158 | to encryption keys (including, but not limited to PGP keys) in a publicly 159 | auditable manner. Additionally it offers an end-to-end encrypted chat and 160 | cloud storage system, called Keybase Chat and the Keybase Filesystem 161 | respectively. Files placed in the public portion of the filesystem are served 162 | from a public endpoint, as well as locally from a filesystem union-mounted by 163 | the Keybase client.") 164 | ;; Release-monitoring-url doesn't work with go-git-reference. 165 | ;(properties 166 | ; '((release-monitoring-url . "https://github.com/keybase/client/releases"))) 167 | (license license:bsd-3))) 168 | -------------------------------------------------------------------------------- /dfsg/contrib/services/tailscale.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Sam Lockart 2 | ;;; Copyright © 2023 Efraim Flashner 3 | ;;; 4 | ;;; This file is an addendum to GNU Guix. 5 | ;;; 6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 7 | ;;; under the terms of the GNU General Public License as published by 8 | ;;; the Free Software Foundation; either version 3 of the License, or (at 9 | ;;; your option) any later version. 10 | ;;; 11 | ;;; GNU Guix is distributed in the hope that it will be useful, but 12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | ;;; GNU General Public License for more details. 15 | ;;; 16 | ;;; You should have received a copy of the GNU General Public License 17 | ;;; along with GNU Guix. If not, see . 18 | 19 | (define-module (dfsg contrib services tailscale) 20 | #:use-module (gnu services) 21 | #:use-module (gnu services admin) 22 | #:use-module (gnu services configuration) 23 | #:use-module (gnu services shepherd) 24 | #:use-module (guix records) 25 | #:use-module (guix gexp) 26 | #:use-module (dfsg contrib tailscale) 27 | #:export (tailscaled-service-type 28 | tailscaled-configuration)) 29 | 30 | (define-record-type* 31 | tailscaled-configuration make-tailscaled-configuration 32 | tailscaled-configuration? 33 | (package tailscaled-configuration-package 34 | (default tailscale)) ; package 35 | (listen-port tailscaled-configuration-listen-port 36 | (default 41641)) ; number 37 | (state-file tailscaled-configuration-state-file 38 | (default "/var/lib/tailscale/tailscaled.state")) ; path 39 | (socket-file tailscaled-configuration-socket-file 40 | (default "/var/run/tailscale/tailscaled.sock")) ; path 41 | (no-logs? tailscaled-configuration-no-logs 42 | (default #f)) 43 | (dev-net-tun? tailscaled-configuration-dev-net-tun 44 | (default #t)) 45 | (verbosity tailscaled-configuration-verbosity 46 | (default 0))) ; number 47 | 48 | (define (tailscaled-activation config) 49 | "Create the necessary directories for tailscale and run 'tailscaled 50 | --cleanup' at startup, as recommended." 51 | (with-imported-modules '((guix build utils)) 52 | #~(begin 53 | (use-modules (guix build utils)) 54 | (mkdir-p (dirname #$(tailscaled-configuration-state-file config))) 55 | (mkdir-p (dirname #$(tailscaled-configuration-socket-file config))) 56 | (system* #$(file-append (tailscaled-configuration-package config) 57 | "/bin/tailscaled") "--cleanup")))) 58 | 59 | ;; Can this service be limited to /var/lib/tailscale, /var/run/tailscale and /var/log? 60 | (define (tailscaled-shepherd-service config) 61 | "Return a for Tailscaled with CONFIG" 62 | (match-record config 63 | (package listen-port state-file socket-file no-logs? dev-net-tun? verbosity) 64 | (list 65 | (shepherd-service 66 | (provision '(tailscaled)) 67 | (documentation "Tailscaled networking daemon") 68 | (requirement '(networking)) 69 | (start #~(make-forkexec-constructor 70 | (list #$(file-append package "/bin/tailscaled") 71 | #$@(if dev-net-tun? 72 | '() 73 | '("--tun=userspace-networking")) 74 | "-state" #$state-file 75 | "-socket" #$socket-file 76 | "-port" (number->string #$listen-port) 77 | #$@(if no-logs? 78 | '("-no-logs-no-support") 79 | '()) 80 | "-verbose" (number->string #$verbosity)) 81 | #:log-file "/var/log/tailscaled.log")) 82 | (stop #~(make-kill-destructor)))))) 83 | 84 | (define %tailscaled-log-rotation 85 | (list (log-rotation 86 | (files '("/var/log/tailscaled.log")) 87 | (options `("rotate 4" 88 | ,@%default-log-rotation-options))))) 89 | 90 | (define tailscaled-service-type 91 | (service-type 92 | (name 'tailscaled) 93 | (extensions 94 | (list (service-extension shepherd-root-service-type 95 | tailscaled-shepherd-service) 96 | (service-extension activation-service-type 97 | tailscaled-activation) 98 | #; 99 | (service-extension log-rotation-service-type 100 | (const %tailscaled-log-rotation)) 101 | (service-extension profile-service-type 102 | (compose list tailscaled-configuration-package)))) 103 | (default-value (tailscaled-configuration)) 104 | (description "Launch tailscaled."))) 105 | -------------------------------------------------------------------------------- /dfsg/main/adblock.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main adblock) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (gnu packages) 21 | #:use-module (guix git-download) 22 | #:use-module (guix packages) 23 | #:use-module (guix utils) 24 | #:use-module (guix gexp) 25 | #:use-module (guix build-system cargo) 26 | #:use-module (guix build-system pyproject) 27 | #:use-module (gnu packages check) 28 | #:use-module (gnu packages crates-io) 29 | #:use-module (gnu packages python) 30 | #:use-module (gnu packages python-build) 31 | #:use-module (gnu packages rust-apps)) 32 | 33 | (define-public python-adblock 34 | ;; A few commits after the 0.6.0 release to fix build issues. 35 | (let ((commit "a340dfcb37b402b0427b2dd7ac3c64cfe7edb38b") 36 | (revision "1")) 37 | (package 38 | (name "python-adblock") 39 | (version (git-version "0.6.0" revision commit)) 40 | (source (origin 41 | (method git-fetch) 42 | (uri (git-reference 43 | (url "https://github.com/ArniDagur/python-adblock") 44 | (commit commit))) 45 | (file-name (git-file-name name version)) 46 | (sha256 47 | (base32 48 | "129q3wljhm12s9im9lvvs1n52sjbz21rkb38qhchd2nc66a0mjp5")) 49 | (snippet 50 | #~(begin 51 | (use-modules (guix build utils)) 52 | (substitute* "Cargo.toml" 53 | (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version) 54 | (string-append "\"^" version)) 55 | ;; Only make the cdylib. 56 | (("\"rlib\",") "")))))) 57 | (build-system cargo-build-system) 58 | (arguments 59 | (list 60 | #:imported-modules `(,@%cargo-build-system-modules 61 | ,@%pyproject-build-system-modules) 62 | #:modules '((guix build cargo-build-system) 63 | ((guix build pyproject-build-system) #:prefix py:) 64 | (guix build utils)) 65 | #:install-source? #f 66 | #:cargo-inputs 67 | `(("rust-adblock" ,rust-adblock-0.5) 68 | ("rust-pyo3" ,rust-pyo3-0.16)) 69 | #:phases 70 | #~(modify-phases %standard-phases 71 | (add-after 'build 'build-wheel 72 | (lambda _ 73 | (invoke "maturin" "build" "--release" "--out" "dist/"))) 74 | (replace 'install 75 | (assoc-ref py:%standard-phases 'install)) 76 | ;; Move 'check after 'install like with the pyproject-build-system. 77 | (add-after 'install 'check 78 | (lambda* (#:key inputs outputs tests? #:allow-other-keys) 79 | (py:add-installed-pythonpath inputs outputs) 80 | (when tests? 81 | (invoke "pytest" "-vv" "tests" "--color=yes"))))))) 82 | (native-inputs 83 | (list maturin 84 | python-pytest 85 | python-toml 86 | python-wrapper)) 87 | (home-page "https://github.com/ArniDagur/python-adblock") 88 | (synopsis "Adblock library in Python") 89 | (description 90 | "Python wrapper for Brave's adblocking library, which is written in Rust.") 91 | (license (list license:expat license:asl2.0))))) 92 | -------------------------------------------------------------------------------- /dfsg/main/cpuid2cpuflags.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2018, 2020, 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main cpuid2cpuflags) 19 | #:use-module (guix packages) 20 | #:use-module (guix download) 21 | #:use-module (guix build-system gnu) 22 | #:use-module ((guix licenses) #:prefix license:)) 23 | 24 | (define-public cpuid2cpuflags 25 | (package 26 | (name "cpuid2cpuflags") 27 | (version "12") 28 | (source 29 | (origin 30 | (method url-fetch) 31 | (uri (string-append "https://github.com/mgorny/cpuid2cpuflags/releases/" 32 | "download/v" version "/" 33 | "cpuid2cpuflags-" version ".tar.bz2")) 34 | (sha256 35 | (base32 36 | "1llkhzaf863swvkxsqx0bzy7n08jvfwnv7jbl5m02dka642gldwx")))) 37 | (build-system gnu-build-system) 38 | (home-page "https://github.com/mgorny/cpuid2cpuflags") 39 | (synopsis "Tool to generate CPU_FLAGS_* for your CPU") 40 | (description "This program attempts to obtain the identification and 41 | capabilities of the currently used CPU, and print the matching set of 42 | CPU_FLAGS_* flags for Gentoo.") 43 | (supported-systems '("x86_64-linux" "i686-linux" 44 | "armhf-linux" "aarch64-linux" 45 | "powerpc-linux" "powerpc64le-linux")) 46 | (license license:bsd-2))) 47 | -------------------------------------------------------------------------------- /dfsg/main/girst.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2018, 2019, 2020, 2021 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main girst) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix utils) 22 | #:use-module (guix packages) 23 | #:use-module (guix build-system gnu)) 24 | 25 | (define-public minesviiper 26 | (let ((commit "9c828b69056ef0ce84d929a52fe8bdf2bcdebc15") 27 | (revision "2")) 28 | (package 29 | (name "minesviiper") 30 | (version (git-version "0.0.0" revision commit)) 31 | (source 32 | (origin 33 | (method git-fetch) 34 | (uri (git-reference 35 | (url "https://git.gir.st/minesVIiper.git") 36 | (commit commit))) 37 | (file-name (git-file-name name version)) 38 | (sha256 39 | (base32 40 | "1i85a3z71zh9pixq6mbf6bncdl3s8hsx6zild2w30zgwsx1vr7il")))) 41 | (build-system gnu-build-system) 42 | (arguments 43 | `(#:test-target "test" 44 | #:make-flags (list (string-append "CC=" ,(cc-for-target))) 45 | #:phases 46 | (modify-phases %standard-phases 47 | (delete 'configure) ; no configure script 48 | (replace 'install 49 | (lambda* (#:key outputs #:allow-other-keys) 50 | (let* ((out (assoc-ref outputs "out")) 51 | (bin (string-append out "/bin"))) 52 | (install-file "mines" bin)) 53 | #t))))) 54 | (home-page "https://gir.st/mines.html") 55 | (synopsis "Minesweeper clone with vi keybindings") 56 | (description 57 | "minesVIiper is a clone of Minesweeper, which runs in the terminal and 58 | can be controlled by either @code{vi} style keybindings, or the mouse.") 59 | (license license:gpl3)))) 60 | 61 | (define-public solvitaire 62 | (let ((commit "d040dc4d2832058e6289257528f6b9972313af8b") 63 | (revision "4")) 64 | (package 65 | (name "solvitaire") 66 | (version (git-version "0.0.0" revision commit)) 67 | (source 68 | (origin 69 | (method git-fetch) 70 | (uri (git-reference 71 | (url "https://git.gir.st/solVItaire.git") 72 | (commit commit))) 73 | (file-name (git-file-name name version)) 74 | (sha256 75 | (base32 76 | "01jmnwi9xwwhfzakha5jwfkxvgky7dyrwx9kpgypkycp1nqsikb8")))) 77 | (build-system gnu-build-system) 78 | (arguments 79 | `(#:test-target "longtest" 80 | #:make-flags (list (string-append "CC=" ,(cc-for-target))) 81 | #:phases 82 | (modify-phases %standard-phases 83 | (delete 'configure) ; no configure script 84 | (replace 'install 85 | (lambda* (#:key outputs #:allow-other-keys) 86 | (let* ((out (assoc-ref outputs "out")) 87 | (bin (string-append out "/bin"))) 88 | (install-file "sol" bin) 89 | (install-file "spider" bin) 90 | (install-file "freecell" bin)) 91 | #t))))) 92 | (home-page "https://gir.st/sol.html") 93 | (synopsis "Solitaire in your terminal") 94 | (description 95 | "Play klondike, spider solitaire and freecell in your unicode terminal. 96 | 97 | Supports @code{vi} style keybindings, cursor keys and the mouse.") 98 | (license license:gpl3)))) 99 | 100 | (define-public viper 101 | (let ((commit "edd02980f70019b1d01508467c671282561ed778") 102 | (revision "2")) 103 | (package 104 | (name "viper") 105 | (version (git-version "0.0.0" revision commit)) 106 | (source 107 | (origin 108 | (method git-fetch) 109 | (uri (git-reference 110 | (url "https://git.gir.st/VIper.git") 111 | (commit commit))) 112 | (file-name (git-file-name name version)) 113 | (sha256 114 | (base32 115 | "0lf2ba3grl3i5m6k1hsamwz288sslhy7ydnrwc6gqjc7yl0jm5ab")))) 116 | (build-system gnu-build-system) 117 | (arguments 118 | `(#:tests? #f ; no test target 119 | #:make-flags (list (string-append "CC=" ,(cc-for-target))) 120 | #:phases 121 | (modify-phases %standard-phases 122 | (delete 'configure) ; no configure script 123 | (replace 'install 124 | (lambda* (#:key outputs #:allow-other-keys) 125 | (let* ((out (assoc-ref outputs "out")) 126 | (bin (string-append out "/bin"))) 127 | (install-file "viper" bin)) 128 | #t))))) 129 | (home-page "https://gir.st/viper.html") 130 | (synopsis "Terminal + emoji = snek") 131 | (description 132 | "VIper - a snake clone for unicode-compatible terminals.") 133 | (license license:gpl3)))) 134 | 135 | (define-public viiper 136 | (deprecated-package "viiper" viper)) 137 | -------------------------------------------------------------------------------- /dfsg/main/guix-send-email.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main guix-send-email) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix gexp) 21 | #:use-module (guix packages) 22 | #:use-module (guix build-system trivial) 23 | #:use-module (gnu packages version-control)) 24 | 25 | (define-public guix-send-email 26 | (package 27 | (name "guix-send-email") 28 | (version "0") 29 | (source #f) 30 | (build-system trivial-build-system) 31 | (arguments 32 | (list 33 | #:modules '((guix build utils)) 34 | #:builder 35 | #~(begin 36 | (use-modules (guix build utils)) 37 | (let ((dest (string-append #$output 38 | "/share/guix/extensions/send-email.scm")) 39 | (git #$(this-package-input "git")) 40 | (git-send-email (assoc-ref %build-inputs "git:send-email"))) 41 | (mkdir-p (dirname dest)) 42 | (with-output-to-file dest 43 | (lambda () 44 | (format #t 45 | "(define-module (guix extensions send-email)~@ 46 | #:use-module (guix scripts)~@ 47 | #:export (guix-send-email))~@ 48 | ~@ 49 | (define-command (guix-send-email . args)~@ 50 | (category extension)~@ 51 | (synopsis \"Replace 'guix send-email' with 'git send-email'\")~@ 52 | (setenv \"GIT_EXEC_PATH\" \"~a/libexec/git-core\")~@ 53 | (apply system* \"~a/bin/git\" \"send-email\" args))~%" 54 | git-send-email git))))))) 55 | (home-page "") ; Should be documentation location for GUIX_EXTENSIONS_PATH 56 | (inputs 57 | `(("git" ,git) 58 | ("git:send-email" ,git "send-email"))) 59 | (synopsis "Replace @code{guix send-email} with @code{git send-email}") 60 | (description "This Guix extension provides a shell redirect from @code{guix 61 | send-email} to @code{git send-email}.") 62 | ;; The package definition is longer than the code; 63 | ;; let this serve as the declaration of the license. 64 | (license license:gpl3+))) 65 | -------------------------------------------------------------------------------- /dfsg/main/hfsutils.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main hfsutils) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system gnu) 25 | #:use-module (gnu packages autotools)) 26 | 27 | (define-public hfsutils 28 | (package 29 | (name "hfsutils") 30 | (version "3.2.6") 31 | (source 32 | (origin 33 | (method url-fetch) 34 | (uri (string-append "ftp://ftp.mars.org/pub/hfs/" 35 | "hfsutils-" version ".tar.gz")) 36 | (sha256 37 | (base32 38 | "0h4q51bjj5dvsmc2xx1l7ydii9jmfq5y066zkkn21fajsbb257dw")))) 39 | (build-system gnu-build-system) 40 | (arguments 41 | (list 42 | #:phases 43 | #~(modify-phases %standard-phases 44 | (add-before 'bootstrap 'force-bootstrap 45 | (lambda _ 46 | (delete-file "configure"))) 47 | (add-before 'install 'pre-install 48 | (lambda _ 49 | (mkdir-p (string-append #$output "/bin")) 50 | (mkdir-p (string-append #$output "/share/man/man1"))))))) 51 | (native-inputs 52 | (list autoconf automake)) 53 | (home-page "https://www.mars.org/home/rob/proj/hfs/") 54 | (synopsis "Tools for reading and writing Macintosh volumes") 55 | (description "This package contains several command-line utilities for 56 | reading and writing Macintosh HFS-formatted media such as floppy disks, 57 | CD-ROMs, and hard disks.") 58 | (license license:gpl2+))) 59 | -------------------------------------------------------------------------------- /dfsg/main/honk.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main honk) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix gexp) 21 | #:use-module (guix utils) 22 | #:use-module (guix packages) 23 | #:use-module (guix download) 24 | #:use-module (guix hg-download) 25 | #:use-module (guix build-system go) 26 | #:use-module (gnu packages) 27 | #:use-module (gnu packages golang) 28 | #:use-module (gnu packages golang-build) 29 | #:use-module (gnu packages golang-web) 30 | #:use-module (gnu packages golang-xyz) 31 | #:use-module (gnu packages man) 32 | #:use-module (gnu packages sqlite)) 33 | 34 | ;;; 35 | ;;; 36 | ;;; 37 | 38 | (define-public honk 39 | (package 40 | (name "honk") 41 | (version "1.1.1") 42 | (source (origin 43 | (method url-fetch) 44 | (uri (string-append "https://humungus.tedunangst.com/" 45 | "r/honk/d/honk-" version ".tgz")) 46 | (sha256 47 | (base32 "18017qiib63l9f1kxxll53z002nc22p8rbr51risah5md5a15yli")) 48 | (snippet 49 | #~(begin 50 | (use-modules (guix build utils)) 51 | (for-each delete-file (find-files "docs" "\\.html$")) 52 | (delete-file-recursively "vendor"))))) 53 | (build-system go-build-system) 54 | (arguments 55 | (list 56 | #:install-source? #f 57 | #:import-path "humungus.tedunangst.com/r/honk" 58 | #:phases 59 | #~(modify-phases %standard-phases 60 | (add-after 'unpack 'set-default-viewdir 61 | (lambda* (#:key outputs import-path #:allow-other-keys) 62 | (with-directory-excursion 63 | (string-append "src/" import-path) 64 | (substitute* "main.go" 65 | (("viewDir = \\\"\\.\\\"") 66 | (string-append "viewDir = \"" #$output "/share/honk\"")))))) 67 | (add-after 'install 'install-more 68 | (lambda* (#:key outputs import-path #:allow-other-keys) 69 | (let ((man (string-append #$output "/share/man"))) 70 | (with-directory-excursion 71 | (string-append "src/" import-path) 72 | (for-each (lambda (file) 73 | (install-file file 74 | (string-append 75 | man "/man" 76 | (string-take-right file 1)))) 77 | (find-files "docs" "\\.[[:digit:]]$")) 78 | (copy-recursively "views" 79 | (string-append #$output 80 | "/share/honk/views"))))))))) 81 | (inputs 82 | (list sqlite 83 | go-github-com-andybalholm-cascadia ; 1.3.1 84 | go-github-com-gorilla-mux ; 1.8.0 85 | go-github-com-mattn-go-runewidth ; 0.0.13 86 | go-golang-org-x-crypto ; 0.12.0 87 | go-golang-org-x-net ; 0.14.0 88 | go-humungus-tedunangst-com-r-go-sqlite3 ; 1.1.3 89 | go-humungus-tedunangst-com-r-webs)) ; 0.7.9 90 | (native-inputs 91 | (list mandoc)) 92 | (home-page "https://humungus.tedunangst.com/r/honk") 93 | (synopsis "Minimal ActivityPub server") 94 | (description 95 | "Take control of your honks and join the federation. An ActivityPub server 96 | with minimal setup and support costs. Spend more time using the software and 97 | less time operating it.") 98 | (license license:isc))) 99 | 100 | (define-public go-humungus-tedunangst-com-r-go-sqlite3 101 | (package 102 | (name "go-humungus-tedunangst-com-r-go-sqlite3") 103 | (version "1.1.3") 104 | (source 105 | (origin 106 | (method hg-fetch) 107 | (uri (hg-reference (url "https://humungus.tedunangst.com/r/go-sqlite3") 108 | (changeset (string-append "v" version)))) 109 | (file-name (string-append name "-" version "-checkout")) 110 | (sha256 111 | (base32 "1xkx0ijljricbqyf98dgqcc2lx65a1h19ab8rx7vrimhyp7dw5c6")))) 112 | (build-system go-build-system) 113 | (arguments 114 | (list #:import-path "humungus.tedunangst.com/r/go-sqlite3")) 115 | (inputs 116 | (list sqlite)) 117 | (home-page "https://humungus.tedunangst.com/r/go-sqlite3") 118 | (synopsis "go-sqlite3") 119 | (description "Package sqlite3 provides interface to SQLite3 databases.") 120 | (license license:expat))) 121 | 122 | (define-public go-humungus-tedunangst-com-r-webs 123 | (package 124 | (name "go-humungus-tedunangst-com-r-webs") 125 | (version "0.7.9") 126 | (source 127 | (origin 128 | (method hg-fetch) 129 | (uri (hg-reference (url "https://humungus.tedunangst.com/r/webs") 130 | (changeset (string-append "v" version)))) 131 | (file-name (string-append name "-" version "-checkout")) 132 | (sha256 133 | (base32 "1xhmb7d3p201ps4bfcy5czgjzlv8ngnqf7aismcpvgik01ff36kl")))) 134 | (build-system go-build-system) 135 | (arguments 136 | (list 137 | #:import-path "humungus.tedunangst.com/r/webs" 138 | #:unpack-path "humungus.tedunangst.com/r/webs" 139 | #:phases 140 | #~(modify-phases %standard-phases 141 | (replace 'build 142 | (lambda* (#:key import-path build-flags #:allow-other-keys) 143 | (for-each 144 | (lambda (directory) 145 | ((assoc-ref %standard-phases 'build) 146 | #:build-flags build-flags 147 | #:import-path 148 | (string-append "humungus.tedunangst.com/r/webs/" directory))) 149 | (list "cache" 150 | "gate" 151 | ;"gencache" ; This one fails with gccgo 152 | "htfilter" 153 | "httpsig" 154 | "image" 155 | "junk" 156 | "log" 157 | "login" 158 | "mz" 159 | "rss" 160 | "synlight" 161 | "templates")))) 162 | (replace 'check 163 | (lambda* (#:key tests? import-path #:allow-other-keys) 164 | (for-each 165 | (lambda (directory) 166 | ((assoc-ref %standard-phases 'check) 167 | #:tests? tests? 168 | #:import-path 169 | (string-append "humungus.tedunangst.com/r/webs/" directory))) 170 | (list "cache" 171 | "gate" 172 | ;"gencache" ; This one fails with gccgo 173 | "htfilter" 174 | "httpsig" 175 | "image" 176 | "junk" 177 | "log" 178 | "login" 179 | "mz" 180 | "rss" 181 | "synlight" 182 | "templates"))))))) 183 | (propagated-inputs 184 | (list go-golang-org-x-net ; 0.14.0 185 | go-golang-org-x-image ; 0.11.0 186 | go-golang-org-x-crypto)) ; 0.12.0 187 | (home-page "https://humungus.tedunangst.com/r/webs") 188 | (synopsis "Web utilities") 189 | (description "This package contains a collection of web utilities.") 190 | (license license:isc))) 191 | -------------------------------------------------------------------------------- /dfsg/main/hspell.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2017, 2019, 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main hspell) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix build utils) 21 | #:use-module (guix download) 22 | #:use-module (guix packages) 23 | #:use-module (guix build-system gnu) 24 | #:use-module (gnu packages aspell) 25 | #:use-module (gnu packages compression) 26 | #:use-module (gnu packages hunspell) 27 | #:use-module (gnu packages perl)) 28 | 29 | ;; This package probably works as intended, and passes all the tests, but I 30 | ;; haven't been able to verify it outside of the 'check phase since I have no 31 | ;; ISO-8859-8 files. 32 | (define-public hspell 33 | (package 34 | (name "hspell") 35 | (version "1.4") 36 | (source 37 | (origin 38 | (method url-fetch) 39 | (uri (string-append 40 | "http://hspell.ivrix.org.il/hspell-" version ".tar.gz")) 41 | (sha256 42 | (base32 43 | "18xymabvwr47gi4w2sw1galpvvq2hrjpj4aw45nivlj0hzaza43k")))) 44 | (build-system gnu-build-system) 45 | (arguments 46 | '(#:configure-flags (list "--enable-fatverb" 47 | "--enable-linginfo" 48 | "--enable-shared" 49 | (string-append "LDFLAGS=-Wl,-rpath=" 50 | (assoc-ref %outputs "out") 51 | "/lib")) 52 | #:parallel-build? #f ; Race condition at 24 cores 53 | #:test-target "test" 54 | #:phases 55 | (modify-phases %standard-phases 56 | (add-after 'unpack 'adjust-aspell-invocations 57 | ;; he.dat is in aspell-dict-he, not aspell itself. 58 | (lambda* (#:key inputs #:allow-other-keys) 59 | (substitute* "Makefile.in" 60 | (("--lang=he") 61 | (string-append "--local-data-dir=" 62 | (dirname (search-input-file 63 | inputs "/lib/aspell/he.dat")) 64 | " --lang=he"))) 65 | (substitute* "test/test1" 66 | (("--dict-dir") 67 | (string-append "--local-data-dir=" 68 | (dirname (search-input-file 69 | inputs "/lib/aspell/he.dat")) 70 | " --dict-dir"))))) 71 | (add-after 'unpack 'set-perl-path 72 | (lambda _ 73 | (setenv "PERL5LIB" 74 | (string-append (getcwd) ":" (getenv "PERL5LIB"))))) 75 | ;; This way the binaries can find their libraries. 76 | ;; If we didn't build the shared library we wouldn't need this. 77 | (delete 'check) 78 | (add-after 'install 'check-after-install 79 | (lambda* args 80 | (apply (assoc-ref %standard-phases 'check) args)))))) 81 | (native-inputs 82 | (list aspell aspell-dict-he hunspell)) 83 | (inputs 84 | (list perl zlib)) 85 | (home-page "http://hspell.ivrix.org.il/") 86 | (synopsis "Hebrew linguistic tool") 87 | (description 88 | "Hspell's primary goal is to create a free Hebrew spell-checker. In 89 | addition to a spell-checker, the project also produced a Hebrew morphological 90 | analyzer, which for every valid Hebrew word lists all of its possible readings 91 | (valid combinations of prefix and inflected base word), and for each reading 92 | describe its part-of-speech, gender, tense, and other attributes.") 93 | (license license:agpl3))) 94 | -------------------------------------------------------------------------------- /dfsg/main/ih.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2021 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main ih) 19 | #:use-module (guix packages) 20 | #:use-module ((guix licenses) #:prefix license:) 21 | #:use-module (guix git-download) 22 | #:use-module (guix build-system python) 23 | #:use-module ((guix licenses) #:prefix license:) 24 | #:use-module (gnu packages check) 25 | #:use-module (gnu packages python-science) 26 | #:use-module (gnu packages python-xyz)) 27 | 28 | (define-public ih 29 | (package 30 | (name "ih") 31 | (version "0.6.0") 32 | (source 33 | (origin 34 | (method git-fetch) 35 | ;; Tests not included in pypi release. 36 | (uri (git-reference 37 | (url "https://github.com/glasnt/ih") 38 | (commit (string-append "v" version)))) 39 | (file-name (git-file-name name version)) 40 | (sha256 41 | (base32 "16f472yjih9j4s53pvsd2gysj5sncfb47w0svw9km4pg9k0rckr0")) 42 | (modules '((guix build utils))) 43 | (snippet 44 | '(begin 45 | ;; Remove non-free images 46 | (delete-file-recursively "demo") 47 | (delete-file "test/images/aurora.jpg") 48 | (substitute* "test/test_cli.py" 49 | ((".*aurora.jpg.*") "") 50 | (("runner.*TEST_JPG\\)") "") 51 | (("def test_term_render") "def skip_test_term_render")) 52 | #t)))) 53 | (build-system python-build-system) 54 | (arguments 55 | `(#:phases 56 | (modify-phases %standard-phases 57 | (replace 'check 58 | (lambda* (#:key inputs outputs tests? #:allow-other-keys) 59 | (when tests? 60 | (add-installed-pythonpath inputs outputs) 61 | (invoke "pytest" "-s")) 62 | #t))))) 63 | (inputs 64 | `(("python-click" ,python-click) 65 | ("python-pillow" ,python-pillow) 66 | ("python-scipy" ,python-scipy) 67 | ("python-tabulate" ,python-tabulate))) 68 | (native-inputs 69 | `(("python-beautifulsoup4" ,python-beautifulsoup4) 70 | ("python-pytest" ,python-pytest))) 71 | (home-page "https://github.com/glasnt/ih") 72 | (synopsis "Package for creating embroidery patterns") 73 | (description 74 | "@code{ih} is a Python command-line tool for generating cross-stitch 75 | patterns from source images.") 76 | (license license:bsd-3))) 77 | -------------------------------------------------------------------------------- /dfsg/main/mac-fdisk.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main mac-fdisk) 19 | #:use-module (guix packages) 20 | #:use-module (guix download) 21 | #:use-module (guix utils) 22 | #:use-module (guix gexp) 23 | #:use-module (guix build-system gnu) 24 | #:use-module ((guix licenses) #:prefix license:)) 25 | 26 | (define-public mac-fdisk 27 | (let ((debian-patch-level "18.1")) 28 | (package 29 | (name "mac-fdisk") 30 | (version "0.1") 31 | (source 32 | (origin 33 | (method url-fetch) 34 | (uri (string-append "mirror://debian/pool/main/m/mac-fdisk/" 35 | "mac-fdisk_" version ".orig.tar.gz")) 36 | (sha256 37 | (base32 "0rkaqp82l47pg0ymqys07mljf3widv2yk4hhgs2yz8hwli5zqnbh")) 38 | (patches 39 | (list 40 | (origin (method url-fetch) 41 | (uri (string-append "https://sources.debian.org/data/main/m/" 42 | "mac-fdisk/" version "-" debian-patch-level 43 | "/debian/patches/debian.patch")) 44 | (file-name (string-append name "-debian-" version "-" 45 | debian-patch-level ".patch")) 46 | (sha256 47 | (base32 48 | "1r38nh4d0l88n5jqvcyqcwpka2krycbzz6df6a21i3ph0awd8nza"))))) 49 | (snippet 50 | #~(begin (use-modules (guix build utils)) 51 | (substitute* "errors.c" 52 | (("#ifndef __linux__") "#ifndef __foo__") 53 | (("#ifdef __linux__") "#ifdef __foo__")) 54 | ;; Enable support for x86_64-linux. 55 | (substitute* '("fdisklabel.c" 56 | "fdisklabel.h") 57 | (("#if defined \\(i386\\)") 58 | "#if defined (i386) || defined (__amd64)")))))) 59 | (build-system gnu-build-system) 60 | (arguments 61 | `(#:make-flags '("CFLAGS=-O2 -g") 62 | #:phases 63 | (modify-phases %standard-phases 64 | (delete 'configure) ; no configure script. 65 | (replace 'install 66 | (lambda* (#:key inputs outputs #:allow-other-keys) 67 | (let* ((out (assoc-ref outputs "out")) 68 | (mac-fdisk.8 (assoc-ref inputs "mac-fdisk.8")) 69 | (pmac-fdisk.8 (assoc-ref inputs "pmac-fdisk.8")) 70 | (sbin (string-append out "/sbin")) 71 | (man8 (string-append out "/share/man/man8"))) 72 | (mkdir-p sbin) 73 | (mkdir-p man8) 74 | (copy-file "fdisk" (string-append sbin "/mac-fdisk")) 75 | (copy-file "pdisk" (string-append sbin "/pmac-fdisk")) 76 | (copy-file mac-fdisk.8 (string-append man8 "/mac-fdisk.8")) 77 | (copy-file pmac-fdisk.8 (string-append man8 "/pmac-fdisk.8")))))) 78 | #:make-flags (list (string-append "CC=" ,(cc-for-target))) 79 | #:tests? #f)) ; no tests 80 | (inputs 81 | `(("mac-fdisk.8" 82 | ,(origin 83 | (method url-fetch) 84 | (uri (string-append "https://sources.debian.org/data/main/m/mac-fdisk/" 85 | version "-" debian-patch-level 86 | "/debian/mac-fdisk.8.in")) 87 | (sha256 88 | (base32 "0nn21ahsqadccmbixpxcpxi835lsh0iq0n04dpr5vac6pni6mn78")))) 89 | ("pmac-fdisk.8" 90 | ,(origin 91 | (method url-fetch) 92 | (uri (string-append "https://sources.debian.org/data/main/m/mac-fdisk/" 93 | version "-" debian-patch-level 94 | "/debian/pmac-fdisk.8.in")) 95 | (sha256 96 | (base32 "1rdmixidgwmgs95n65nvwlqkm9wfbsfj58qdan56vw8mbldns86x")))))) 97 | (home-page "https://tracker.debian.org/pkg/mac-fdisk") 98 | (synopsis "Apple disk partition manipulation tool") 99 | (description "The @code{fdisk} utilities from the MkLinux project, adopted 100 | for Linux/m68k. @code{mac-fdisk} allows you to create and edit the partition 101 | table of a disk. It supports only the Apple partition format used on Macintosh 102 | and PowerMac, use @code{pmac-fdisk} for PC partition format disks as used on 103 | PowerPC machines. @code{mac-fdisk} is an interactive tool with a menu similar 104 | to PC @code{fdisk}, supported options are somewhat different from PC 105 | @code{fdisk} due to the differences in partition format.") 106 | (supported-systems '("powerpc-linux" "powerpc64le-linux" 107 | "i686-linux" "x86_64-linux")) 108 | (license license:gpl2)))) 109 | -------------------------------------------------------------------------------- /dfsg/main/mainframe.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2021 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main mainframe) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix build-system gnu) 23 | #:use-module (gnu packages compression)) 24 | 25 | (define-public hercules 26 | (package 27 | (name "hercules") 28 | (version "3.13") 29 | (source 30 | (origin 31 | (method url-fetch) 32 | (uri (string-append "http://downloads.hercules-390.eu/hercules-" 33 | version ".tar.gz")) 34 | (sha256 35 | (base32 "0zg6rwz8ib4alibf8lygi8qn69xx8n92kbi8b3jhi1ymb32mf349")))) 36 | (build-system gnu-build-system) 37 | (arguments 38 | `(#:configure-flags (list "--enable-cckd-bzip2" 39 | "--enable-het-bzip2" 40 | "--enable-multi-cpu=128"))) 41 | (inputs 42 | `(("bzip2" ,bzip2) 43 | ("zlib" ,zlib))) 44 | (home-page "http://www.hercules-390.eu/") 45 | (synopsis "System/370, ESA/390 and z/Architecture Emulator") 46 | (description 47 | "Hercules is an open source software implementation of the mainframe 48 | System/370 and ESA/390 architectures, in addition to the new 64-bit 49 | z/Architecture. 50 | This means that your PC can emulate an IBM mainframe processor. The mainframe 51 | can range from a 360 to a z900 - running in \"System/370\" mode, \"ESA/390\" 52 | mode, or \"z/Architecture\" mode. Hercules executes S/370, ESA/390, and 53 | z/Architecture instructions and channel programs. It emulates mainframe I/O 54 | devices by using PC devices. For example, 3390 DASD devices are emulated by 55 | large files on your hard disk, and local 3270 screens are emulated by tn3270 56 | sessions. 57 | Hercules implements only the raw S/370, ESA/390, and z/Architecture instruction 58 | set; it does not provide any operating system facilities. This means that you 59 | need to provide an operating system or standalone program which Hercules can 60 | load from an emulated disk or tape device. You will have to use a free software 61 | operating system such as Linux, write the operating system or standalone program 62 | yourself, obtain a license from IBM to run one of their operating systems on 63 | your PC, or use IBM programs and operating systems which have been placed in the 64 | public domain. 65 | Virtual networking can be accomplished using the TUN/TAP driver in host Linux 66 | kernel.") 67 | (license license:qpl))) 68 | -------------------------------------------------------------------------------- /dfsg/main/minitube.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main minitube) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system qt) 25 | #:use-module (gnu packages qt) 26 | #:use-module (gnu packages video)) 27 | 28 | (define-public minitube 29 | (package 30 | (name "minitube") 31 | (version "3.9.3") 32 | (source 33 | (origin 34 | (method url-fetch) 35 | (uri (string-append "https://github.com/flaviotordini/minitube" 36 | "/releases/download/" version 37 | "/minitube-" version ".tar.bz2")) 38 | (sha256 39 | (base32 "13349a8ap3cgj7f8a9088w559vsxqqfgnj2s2hzka6326vzp0bhf")) 40 | (snippet 41 | #~(begin 42 | (use-modules ((guix build utils))) 43 | ;; https://github.com/flaviotordini/minitube/issues/217 44 | ;; https://github.com/mpc-qt/mpc-qt/commit/a880cb84511d18af26dcd136fac62932e775f475 45 | (substitute* "lib/media/src/mpv/mpvwidget.cpp" 46 | (("(mpv_opengl_init_params gl_init_params\\{get_proc_address, this), nullptr\\};" all first) 47 | (string-append "#if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0)\n" 48 | " " all "\n" 49 | "#else\n" 50 | " " first "};\n" 51 | "#endif\n"))))))) 52 | (build-system qt-build-system) 53 | (arguments 54 | `(#:tests? #f ; No tests? 55 | #:phases 56 | (modify-phases %standard-phases 57 | ;; Is this something we want to do? 58 | #;(add-after 'unpack 'remove-donate-screen 59 | (lambda _ 60 | (substitute* "src/mainwindow.cpp" 61 | (("!defined\\(APP_MAC\\) && !defined\\(APP_WIN\\)") 62 | "false")))) 63 | (add-after 'unpack 'disable-updater 64 | (lambda _ 65 | (substitute* "lib/updater/updater.pri" 66 | (("^DEFINES") "#DEFINES")))) 67 | (replace 'configure 68 | (lambda* (#:key outputs #:allow-other-keys) 69 | (invoke "qmake" 70 | (string-append "PREFIX=" (assoc-ref outputs "out")) 71 | "QMAKE_LRELEASE=lrelease" 72 | "QMAKE_LUPDATE=lupdate")))))) 73 | (native-inputs 74 | (list qttools-5)) 75 | (inputs 76 | (list mpv 77 | qtbase-5 78 | qtdeclarative-5 79 | qtx11extras)) 80 | (home-page "https://flavio.tordini.org/minitube") 81 | (synopsis "Native YouTube client") 82 | (description 83 | "Minitube is a native YouTube client. With it you can watch YouTube videos 84 | in a new way: you type a keyword, Minitube gives you an endless video stream.") 85 | (license license:gpl3+))) 86 | -------------------------------------------------------------------------------- /dfsg/main/moreutils.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020, 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main moreutils) 19 | #:use-module (guix packages) 20 | #:use-module (guix utils) 21 | #:use-module (guix gexp) 22 | #:use-module (gnu packages moreutils)) 23 | 24 | (define-public my-moreutils 25 | (package 26 | (inherit moreutils) 27 | (name "my-moreutils") 28 | (arguments 29 | (substitute-keyword-arguments (package-arguments moreutils) 30 | ((#:phases phases) 31 | #~(modify-phases #$phases 32 | (add-after 'unpack 'skip-parallel 33 | (lambda _ 34 | (substitute* "Makefile" 35 | (("parallel(.1)?") "")))))))) 36 | (properties 37 | `((upstream-name . "moreutils") 38 | ,@(package-properties moreutils))))) 39 | -------------------------------------------------------------------------------- /dfsg/main/mptcp.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main mptcp) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system gnu) 24 | #:use-module (gnu packages linux) 25 | #:use-module (gnu packages pkg-config)) 26 | 27 | (define-public mptcpd 28 | (package 29 | (name "mptcpd") 30 | (version "0.12") 31 | (source (origin 32 | (method url-fetch) 33 | (uri (string-append 34 | "https://github.com/multipath-tcp/mptcpd/releases/download/v" 35 | version "/mptcpd-" version ".tar.gz")) 36 | (sha256 37 | (base32 38 | "1ghwhgnjp3hah0cndjs1v7cgr50qnj04cpykihb3lxrv72bx81q5")))) 39 | (build-system gnu-build-system) 40 | (inputs 41 | (list ell)) 42 | (native-inputs 43 | (list pkg-config)) 44 | (home-page "https://www.mptcp.dev/") 45 | (synopsis "Multipath TCP Daemon") 46 | (description "The Multipath TCP Daemon is a daemon for Linux based operating 47 | systems that performs Multipath TCP path management related operations in the 48 | user space. It interacts with the Linux kernel through a generic netlink 49 | connection to track per-connection information (e.g. available remote addresses), 50 | available network interfaces, request new MPTCP subflows, handle requests for 51 | subflows, etc.") 52 | (license license:bsd-3))) 53 | -------------------------------------------------------------------------------- /dfsg/main/mpv.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2021-2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a trivial of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main mpv) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix gexp) 23 | #:use-module (guix utils) 24 | #:use-module (guix build-system gnu) 25 | #:use-module (guix build-system trivial) 26 | #:use-module (gnu packages curl) 27 | #:use-module (gnu packages lua)) 28 | 29 | (define-public mpv-sponsorblock-minimal 30 | (let ((commit "ca2844b8cf7674bfccd282d389a50427742251d3") ; 20230820 31 | (revision "8")) 32 | (package 33 | (name "mpv-sponsorblock-minimal") 34 | (version (git-version "0" revision commit)) 35 | (source 36 | (origin 37 | (method git-fetch) 38 | (uri (git-reference 39 | (url "https://codeberg.org/jouni/mpv_sponsorblock_minimal") 40 | (commit commit))) 41 | (file-name (git-file-name name version)) 42 | (sha256 43 | (base32 "010mvw9zz7mxnysa8f7xw5lprixispfx86lnzf2ai16fm5kxdhfv")))) 44 | (build-system trivial-build-system) 45 | (arguments 46 | (list 47 | #:modules '((guix build utils)) 48 | #:builder 49 | #~(begin 50 | (use-modules (guix build utils)) 51 | (let ((source (assoc-ref %build-inputs "source"))) 52 | (install-file (string-append source "/sponsorblock_minimal.lua") 53 | (string-append #$output "/lib")) 54 | (install-file (string-append source "/LICENSE") 55 | (string-append #$output "/share/doc/" 56 | #$name "-" #$version)) 57 | (substitute* (string-append #$output "/lib/sponsorblock_minimal.lua") 58 | (("\"curl\"") 59 | (string-append "\"" (search-input-file %build-inputs "/bin/curl") 60 | "\""))))))) 61 | (inputs 62 | (list curl)) 63 | (home-page "https://codeberg.org/jouni/mpv_sponsorblock_minimal") 64 | (synopsis "Skips sponsored segments of YouTube videos") 65 | (description "This package provides a plugin to @code{mpv} to skip 66 | sponsored segments of YouTube videos.") 67 | (license license:gpl3)))) 68 | 69 | (define-public mpv-twitch-chat 70 | (let ((commit "bb0c2e84675f4f1e0c221c8e1d3516b60242b985") ; 20240623 71 | (revision "6")) 72 | (package 73 | (name "mpv-twitch-chat") 74 | (version (git-version "0" revision commit)) 75 | (source 76 | (origin 77 | (method git-fetch) 78 | (uri (git-reference 79 | (url "https://github.com/CrendKing/mpv-twitch-chat") 80 | (commit commit))) 81 | (file-name (git-file-name name version)) 82 | (sha256 83 | (base32 "1b65b3kfdijwcypbjv6sva3k3ylim8604nrkmvplzr9c4194y8sv")))) 84 | (build-system trivial-build-system) 85 | (arguments 86 | (list 87 | #:modules '((guix build utils)) 88 | #:builder 89 | #~(begin 90 | (use-modules (guix build utils)) 91 | (let ((source (assoc-ref %build-inputs "source"))) 92 | (install-file (string-append source "/main.lua") 93 | (string-append #$output "/lib")) 94 | (install-file (string-append source "/LICENSE") 95 | (string-append #$output "/share/doc/" 96 | #$name "-" #$version)) 97 | (substitute* (string-append #$output "/lib/main.lua") 98 | (("'curl'") 99 | (string-append "'" (search-input-file %build-inputs "/bin/curl") 100 | "'"))))))) 101 | (inputs 102 | (list curl)) 103 | (home-page "https://github.com/CrendKing/mpv-twitch-chat/") 104 | (synopsis "Twitch chat messages as subtitles") 105 | (description "Show Twitch chat messages as subtitles when watching Twitch 106 | VOD with @code{mpv}. @code{mpv} internally uses @code{youtube-dl} to handle 107 | Twitch VOD URL. In addition to the regular video track, it also adds a 108 | \"rechat\" subtitle track. This track points to the Twitch API 109 | @code{videos//comments}, which contains the full transcript of a VOD's 110 | chat messages in JSON. Unfortunately, @code{mpv} can't directly consume the 111 | JSON as subtitle. This script converts it into a SubRip subtitle track so that 112 | @code{mpv} can directly display the chat messages.") 113 | (license license:expat)))) 114 | 115 | (define (make-lua-json name lua) 116 | (package 117 | (name name) 118 | (version "0.1.2") 119 | (source 120 | (origin 121 | (method git-fetch) 122 | (uri (git-reference 123 | (url "https://github.com/rxi/json.lua") 124 | (commit (string-append "v" version)))) 125 | (file-name (git-file-name "lua-json" version)) 126 | (sha256 127 | (base32 "0sgcf7x8nds3abn46p4fg687pk6nlvsi82x186vpaj2dbv28q8i5")))) 128 | (build-system gnu-build-system) 129 | (arguments 130 | `(#:phases 131 | (modify-phases %standard-phases 132 | (delete 'configure) 133 | (delete 'build) 134 | (replace 'check 135 | (lambda* (#:key tests? #:allow-other-keys) 136 | (when tests? 137 | (with-directory-excursion "test" 138 | (invoke "lua" "test.lua"))))) 139 | (replace 'install 140 | (lambda* (#:key outputs #:allow-other-keys) 141 | (let ((out (assoc-ref outputs "out")) 142 | (lua-version ,(version-major+minor (package-version lua)))) 143 | (install-file "json.lua" 144 | (string-append out "/share/lua/" lua-version)) 145 | #t)))))) 146 | (inputs 147 | `(("lua" ,lua))) 148 | (home-page "https://github.com/rxi/json.lua") 149 | (synopsis "JSON library for Lua") 150 | (description "This package provides a lightweight JSON library for Lua.") 151 | (license license:expat))) 152 | 153 | (define-public lua-json 154 | (make-lua-json "lua-json" lua)) 155 | 156 | (define-public lua5.1-json 157 | (make-lua-json "lua5.1-json" lua-5.1)) 158 | 159 | (define-public lua5.2-json 160 | (make-lua-json "lua5.2-json" lua-5.2)) 161 | -------------------------------------------------------------------------------- /dfsg/main/openblas.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main openblas) 19 | #:use-module (guix packages) 20 | #:use-module (guix utils) 21 | #:use-module (guix gexp) 22 | #:use-module (guix build-system gnu) 23 | #:use-module (gnu packages maths)) 24 | 25 | ;; Is this worth it? Build time should be much faster, and for my 3900XT 26 | ;; machine the library is 14MB instead of 39MB. On the other hand, the larger 27 | ;; library is good for all possible x86_64 sub-architectures. 28 | 29 | ;; It is not possible to combine support for different architectures 30 | ;; so no combined 32 and 64 bit or x86_64 and arm64 in the same library. 31 | 32 | ;; TARGET with DYNAMIC_ARCH selects the oldest CPU model to target. 33 | ;; DYNAMIC_ARCH supported by x86_64, i686, aarch64, ppc64le. 34 | 35 | ;; DYNAMIC_LIST with DYNAMIC_ARCH allows selecting specific CPUs to target, rather than all. 36 | ;; As of 0.3.14 only supported by x86_64 and aarch64. 37 | 38 | ;; And what about openblas-ilp64? 39 | 40 | ;; 3900XT -> TARGET=ZEN 41 | ;; pbp -> TARGET=CORTEXA53 42 | 43 | (define-public openblas-native 44 | (package 45 | (inherit openblas) 46 | (arguments 47 | (substitute-keyword-arguments (package-arguments openblas) 48 | ((#:substitutable? _ #t) #f) 49 | ((#:modules modules '((guix build gnu-build-system) 50 | (guix build utils))) 51 | `((ice-9 regex) 52 | (srfi srfi-1) 53 | (srfi srfi-26) 54 | ,@modules)) 55 | ((#:make-flags flags ''()) 56 | #~(remove (cut string-match "(DYNAMIC_|TARGET).*" <>) 57 | #$flags)))) 58 | ;; Hide the package so we don't have to override the name length. 59 | (properties `((hidden? . #t) 60 | ,@(package-properties openblas))))) 61 | 62 | (define-public openblas-zen 63 | (package 64 | (inherit openblas-native) 65 | (arguments 66 | (substitute-keyword-arguments (package-arguments openblas-native) 67 | ((#:make-flags flags ''()) 68 | #~(cons* 69 | "TARGET=ZEN" 70 | (remove (cut string-match "(DYNAMIC_|TARGET).*" <>) 71 | #$flags))))) 72 | (supported-systems '("x86_64-linux")))) 73 | 74 | (define-public openblas-cortexa53 75 | (package 76 | (inherit openblas-native) 77 | (arguments 78 | (substitute-keyword-arguments (package-arguments openblas-native) 79 | ((#:make-flags flags ''()) 80 | #~(cons* 81 | "TARGET=CORTEXA53" 82 | (remove (cut string-match "(DYNAMIC_|TARGET).*" <>) 83 | #$flags))))) 84 | (supported-systems '("aarch64-linux")))) 85 | 86 | (define-public openblas-cortexa53.a57 87 | (package 88 | (inherit openblas-native) 89 | (arguments 90 | (substitute-keyword-arguments (package-arguments openblas-native) 91 | ((#:make-flags flags ''()) 92 | #~(cons* 93 | "DYNAMIC_ARCH=1" 94 | "DYNAMIC_LIST=CORTEXA53 CORTEXA72" 95 | (remove (cut string-match "(DYNAMIC_|TARGET).*" <>) 96 | #$flags))))) 97 | (supported-systems '("aarch64-linux")))) 98 | 99 | (define-public openblas-ppcg4 100 | (package 101 | (inherit openblas-native) 102 | (arguments 103 | (substitute-keyword-arguments (package-arguments openblas-native) 104 | ((#:make-flags flags ''()) 105 | #~(cons* 106 | "TARGET=PPCG4" 107 | (remove (cut string-match "(DYNAMIC_|TARGET).*" <>) 108 | #$flags))))) 109 | (supported-systems '("powerpc-linux")))) 110 | 111 | (define-public openblas-ilp64-custom 112 | (package/inherit openblas 113 | (name "openblas-ilp64-custom") 114 | (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux" 115 | "powerpc64le-linux")) 116 | (arguments 117 | (substitute-keyword-arguments (package-arguments openblas) 118 | ((#:make-flags flags #~'()) 119 | #~(append (list "INTERFACE64=1" 120 | "SYMBOLSUFFIX=64_" 121 | "LIBPREFIX=libopenblas64_") 122 | #$flags)))) 123 | (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 version)"))) 124 | -------------------------------------------------------------------------------- /dfsg/main/parcimonie.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2019 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main parcimonie) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix build-system trivial) 23 | #:use-module (gnu packages bash) 24 | #:use-module (gnu packages gnupg) 25 | #:use-module (gnu packages tor)) 26 | 27 | (define-public parcimonie.sh 28 | (let ((commit "551999ca7480079b912b5a07f631b4fc1323ce49") 29 | (revision "1")) 30 | (package 31 | (name "parcimonie.sh") 32 | (version (git-version "0.0.0" revision commit)) 33 | (source 34 | (origin 35 | (method git-fetch) 36 | (uri (git-reference 37 | (url "https://github.com/EtiennePerot/parcimonie.sh") 38 | (commit commit))) 39 | (file-name (git-file-name name version)) 40 | (sha256 41 | (base32 42 | "0j3x61al99zfb4p2fbdkdydnrl6z7rjf5bc89bfmy2q4mmshkl4c")))) 43 | (build-system trivial-build-system) 44 | (arguments 45 | `(#:modules ((guix build utils)) 46 | #:builder 47 | (begin 48 | (use-modules (guix build utils)) 49 | (let* ((out (assoc-ref %outputs "out")) 50 | (bin (string-append out "/bin")) 51 | (dest (string-append bin "/parcimonie.sh")) 52 | (bash (assoc-ref %build-inputs "bash")) 53 | (source (assoc-ref %build-inputs "source"))) 54 | (setenv "PATH" (string-append bash "/bin/" ":" "$PATH")) 55 | (install-file (string-append source "/parcimonie.sh") bin) 56 | (install-file (string-append source "/LICENSE") 57 | (string-append out "/share/doc/" ,name "-" ,version)) 58 | (patch-shebang dest 59 | (list (string-append bash "/bin"))) 60 | (wrap-program dest 61 | `("PATH" ":" prefix 62 | ,(map (lambda (input) 63 | (string-append 64 | (assoc-ref %build-inputs input) "/bin")) 65 | (list "gnupg" "torsocks")))) 66 | #t)))) 67 | (native-inputs `(("source" ,source))) 68 | (inputs 69 | `(("bash" ,bash-minimal) 70 | ("gnupg" ,gnupg) 71 | ("torsocks" ,torsocks))) 72 | (home-page "https://github.com/EtiennePerot/parcimonie.sh") 73 | (synopsis "Incrementally refreshes a GnuPG keyring") 74 | (description "@code{parcimonie.sh} refreshes individual keys in your GnuPG 75 | keyring at randomized intervals. Each key is refreshed over a unique, 76 | single-use Tor circuit.") 77 | (license license:wtfpl2)))) 78 | -------------------------------------------------------------------------------- /dfsg/main/pdfjs.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023-2025 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main pdfjs) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system copy) 24 | #:use-module (gnu packages fonts)) 25 | 26 | (define-public pdfjs 27 | (package 28 | (name "pdfjs") 29 | (version "5.2.133") 30 | (source 31 | (origin 32 | (method url-fetch/zipbomb) 33 | (uri (string-append "https://github.com/mozilla/pdf.js/releases" 34 | "/download/v" version 35 | "/pdfjs-" version "-dist.zip")) 36 | (sha256 37 | (base32 "1p26yi7vsazy54n0xjbrnkdi1wp2nq5sajmpvwrifk82an4xxil2")))) 38 | (build-system copy-build-system) 39 | (arguments 40 | `(#:install-plan 41 | '(("." "share/pdfjs")) 42 | #:phases 43 | (modify-phases %standard-phases 44 | (add-after 'install 'install-fonts 45 | (lambda* (#:key inputs outputs #:allow-other-keys) 46 | (let ((out (assoc-ref outputs "out")) 47 | (liberation (string-append 48 | (assoc-ref inputs "font-liberation") 49 | "/share/fonts/truetype/"))) 50 | (with-directory-excursion 51 | (string-append out "/share/pdfjs/web/standard_fonts/") 52 | (for-each (lambda (file) 53 | (delete-file file) 54 | (symlink (string-append liberation file) file)) 55 | (find-files "." "LiberationSans-.*\\.ttf$")) 56 | (delete-file "LICENSE_LIBERATION")))))))) 57 | (inputs (list font-liberation)) 58 | (home-page "https://mozilla.github.io/pdf.js/") 59 | (synopsis "PDF reader in Javascript") 60 | (description 61 | "PDF.js is a Portable Document Format (PDF) viewer that is built with HTML5.") 62 | (properties 63 | '((release-monitoring-url . "https://github.com/mozilla/pdf.js/releases"))) 64 | (license license:asl2.0))) 65 | 66 | (define-public pdfjs-legacy 67 | (package 68 | (inherit pdfjs) 69 | (name "pdfjs-legacy") 70 | (version (package-version pdfjs)) 71 | (source 72 | (origin 73 | (method url-fetch/zipbomb) 74 | (uri (string-append "https://github.com/mozilla/pdf.js/releases" 75 | "/download/v" version 76 | "/pdfjs-" version "-legacy-dist.zip")) 77 | (sha256 78 | (base32 "108jhzgy94m7pg6r99m5b8xfk40in6nah6aj2bg65yrmkapd6910")))))) 79 | -------------------------------------------------------------------------------- /dfsg/main/pgzero.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2024 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main pgzero) 19 | #:use-module (guix packages) 20 | #:use-module ((guix licenses) #:prefix license:) 21 | #:use-module (guix download) 22 | #:use-module (guix build-system pyproject) 23 | #:use-module (guix build-system python) 24 | #:use-module ((guix licenses) #:prefix license:) 25 | #:use-module (gnu packages game-development) 26 | #:use-module (gnu packages python-xyz)) 27 | 28 | (define-public python-pgzero 29 | (package 30 | (name "python-pgzero") 31 | (version "1.2.1") 32 | (source 33 | (origin 34 | (method url-fetch) 35 | (uri (pypi-uri "pgzero" version)) 36 | (sha256 37 | (base32 "01k1iv1qdy9kyizr3iysxqfmy10w38qvjfxx1hzarjr8y0hc1bcc")))) 38 | (build-system pyproject-build-system) 39 | (propagated-inputs (list python-numpy python-pygame)) 40 | (home-page "http://pypi.python.org/pypi/pgzero") 41 | (synopsis "Zero-boilerplate 2D games framework") 42 | (description "This package provides a zero-boilerplate 2D games framework 43 | built around pygame.") 44 | ;; Not including the licenses of the files in the examples directory. 45 | (license license:lgpl3))) 46 | -------------------------------------------------------------------------------- /dfsg/main/pifs.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main pifs) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system gnu) 24 | #:use-module (gnu packages autotools) 25 | #:use-module (gnu packages linux) 26 | #:use-module (gnu packages pkg-config)) 27 | 28 | (define-public pifs 29 | (let ((commit "3d9cc9db6a01234833c3d77c0846e20485763639") 30 | (revision "1")) 31 | (package 32 | (name "pifs") 33 | (version (git-version "0.0.0" revision commit)) 34 | (source 35 | (origin 36 | (method git-fetch) 37 | (uri (git-reference 38 | (url "https://github.com/philipl/pifs") 39 | (commit commit))) 40 | (file-name (git-file-name name version)) 41 | (sha256 42 | (base32 43 | "15xkq9xqpsmanm57xs0vvpl9c5v2g63ywp4gd8l6lkz4gsw3ailp")))) 44 | (build-system gnu-build-system) 45 | (arguments 46 | '(#:phases 47 | (modify-phases %standard-phases 48 | (replace 'bootstrap 49 | (lambda _ 50 | (invoke "autoreconf" "-vfi")))))) 51 | (native-inputs 52 | `(("autoconf" ,autoconf) 53 | ("automake" ,automake) 54 | ("pkg-config" ,pkg-config))) 55 | (inputs 56 | `(("fuse" ,fuse))) 57 | (home-page "https://github.com/philipl/pifs/") 58 | (synopsis "πfs - the data-free filesystem") 59 | (description "πfs is a revolutionary new file system that, instead of 60 | wasting space storing your data on your hard drive, stores your data in π! 61 | You'll never run out of space again - π holds every file that could possibly 62 | exist! They said 100% compression was impossible? You're looking at it!") 63 | (license license:gpl3+)))) 64 | -------------------------------------------------------------------------------- /dfsg/main/pipx.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main pipx) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix build-system python) 23 | #:use-module (gnu packages check) 24 | #:use-module (gnu packages python-xyz)) 25 | 26 | (define-public pipx 27 | (package 28 | (name "pipx") 29 | (version "0.15.6.0") 30 | (source 31 | (origin 32 | (method url-fetch) 33 | (uri (pypi-uri "pipx" version)) 34 | (sha256 35 | (base32 36 | "07rbyimyc8mki262n6ya4y82n85d9w63sknb05b0xdinlaay480d")))) 37 | (build-system python-build-system) 38 | (arguments '(#:tests? #f)) ; tests not included 39 | (inputs 40 | `(("python-argcomplete" ,python-argcomplete) 41 | ("python-packaging" ,python-packaging) 42 | ("python-userpath" ,python-userpath))) 43 | (home-page "https://github.com/pipxproject/pipx") 44 | (synopsis 45 | "Install and run Python applications in isolated environments") 46 | (description 47 | "pipx allows you to... 48 | @itemize 49 | @item Run the latest version of a CLI application from a package in a temporary 50 | virtual environment, leaving your system untouched after it finishes. 51 | @item Install packages to isolated virtual environments, while globally exposing 52 | their CLI applications so you can run them from anywhere. 53 | @item Easily list, upgrade, and uninstall packages that were installed with pipx. 54 | @end itemize") 55 | (license (list license:bsd-3 56 | license:expat)))) 57 | -------------------------------------------------------------------------------- /dfsg/main/python-numpy.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main python-numpy) 19 | #:use-module (guix packages) 20 | #:use-module (guix utils) 21 | #:use-module (guix gexp) 22 | #:use-module (dfsg main openblas) 23 | #:use-module (gnu packages python-xyz)) 24 | 25 | (define-public python-numpy-ilp64 26 | (package 27 | (inherit python-numpy) 28 | (name "python-numpy-ilp64") 29 | (arguments 30 | (substitute-keyword-arguments (package-arguments python-numpy) 31 | ((#:phases phases) 32 | #~(modify-phases #$phases 33 | (replace 'configure-blas 34 | (lambda* (#:key inputs #:allow-other-keys) 35 | (setenv "NPY_USE_BLAS_ILP64" "1") 36 | (setenv "NPY_BLAS_ILP64_ORDER" "openblas64_") 37 | (setenv "NPY_LAPACK_ILP64_ORDER" "openblas64_") 38 | (call-with-output-file "site.cfg" 39 | (lambda (port) 40 | (format port 41 | "\ 42 | [openblas64_] 43 | libraries = openblas64_ 44 | library_dirs = ~a/lib 45 | include_dirs = ~:*~a/include~%" 46 | (dirname (dirname 47 | (search-input-file 48 | inputs "include/openblas_config.h"))))))))) 49 | ))) 50 | (inputs 51 | (modify-inputs (package-inputs python-numpy) 52 | (replace "openblas" openblas-ilp64-custom))) 53 | (supported-systems '("x86_64-linux" "aarch64-linux")))) 54 | -------------------------------------------------------------------------------- /dfsg/main/qt.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2024 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main qt) 19 | #:use-module (guix packages) 20 | #:use-module (guix build-system trivial) 21 | #:use-module (gnu packages qt) 22 | #:use-module (srfi srfi-1)) 23 | 24 | (define-public qtwayland-helper 25 | (package 26 | (name "qtwayland-helper") 27 | (version (package-version qtwayland)) 28 | (source #f) 29 | (build-system trivial-build-system) 30 | (arguments 31 | '(#:modules ((guix build utils) 32 | (srfi srfi-26)) 33 | #:builder 34 | (begin 35 | (use-modules (guix build utils) 36 | (srfi srfi-26)) 37 | (let ((out (assoc-ref %outputs "out")) 38 | (qtbase-5 (assoc-ref %build-inputs "qtbase-5")) 39 | (qtbase (assoc-ref %build-inputs "qtbase")) 40 | (qtwayland-5 (assoc-ref %build-inputs "qtwayland-5")) 41 | (qtwayland (assoc-ref %build-inputs "qtwayland"))) 42 | (for-each mkdir-p 43 | (list (string-append out "/lib/qt5") 44 | (string-append out "/lib/qt6") 45 | (string-append out "/share"))) 46 | ;; We use copy-recursively instead of union-build because the 47 | ;; union-build used for profile generation can't add other plugins 48 | ;; to an existing union-build. 49 | (for-each (cut copy-recursively <> (string-append out "/lib/qt5/plugins")) 50 | (list (string-append qtbase-5 "/lib/qt5/plugins") 51 | (string-append qtwayland-5 "/lib/qt5/plugins"))) 52 | (for-each (cut copy-recursively <> (string-append out "/lib/qt6/plugins")) 53 | (list (string-append qtbase "/lib/qt6/plugins") 54 | (string-append qtwayland "/lib/qt6/plugins"))) 55 | (for-each (cut copy-recursively <> (string-append out "/share/doc")) 56 | (list (string-append qtbase-5 "/share/doc") 57 | (string-append qtwayland-5 "/share/doc") 58 | (string-append qtbase "/share/doc") 59 | (string-append qtwayland "/share/doc"))) 60 | (copy-recursively (string-append qtwayland-5 "/lib/qt5/qml") 61 | (string-append out "/lib/qt5/qml")) 62 | (copy-recursively (string-append qtwayland "/lib/qt6/qml") 63 | (string-append out "/lib/qt6/qml")) 64 | (delete-file-recursively (string-append out "/share/doc/qt5")) 65 | (delete-file-recursively (string-append out "/share/doc/qt6")))))) 66 | (inputs 67 | `(("qtbase-5" ,qtbase-5) 68 | ("qtbase" ,qtbase) 69 | ("qtwayland-5" ,qtwayland-5) 70 | ("qtwayland" ,qtwayland))) 71 | (native-search-paths 72 | (delete-duplicates 73 | (append (package-native-search-paths qtbase-5) 74 | (package-native-search-paths qtbase)))) 75 | (home-page (package-home-page qtbase)) 76 | (synopsis "Helper package to display Qt applications in wayland") 77 | (description "This package provides a helper package which can be used to 78 | enable Qt (Qt5 and Qt6) packages to run under wayland.") 79 | (license (delete-duplicates 80 | (append (package-license qtbase-5) 81 | (package-license qtbase) 82 | (package-license qtwayland-5) 83 | (package-license qtwayland)))))) 84 | -------------------------------------------------------------------------------- /dfsg/main/quassel.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2022, 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main quassel) 19 | #:use-module (guix packages) 20 | #:use-module (guix utils) 21 | #:use-module (guix gexp) 22 | #:use-module (gnu packages irc) 23 | #:use-module (gnu packages qt)) 24 | 25 | (define-public quasselclient 26 | (package 27 | (inherit quassel) 28 | (name "quasselclient") 29 | (arguments 30 | (substitute-keyword-arguments (package-arguments quassel) 31 | ((#:configure-flags _) 32 | #~`("-DBUILD_TESTING=ON" 33 | "-DWANT_CORE=OFF" 34 | "-DWANT_MONO=OFF")))) 35 | (properties '((upstream-name . "quassel"))))) 36 | -------------------------------------------------------------------------------- /dfsg/main/qutebrowser.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023, 2024 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main qutebrowser) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (gnu packages qt) 25 | #:use-module (gnu packages web-browsers) 26 | #:use-module (gnu packages xdisorg) 27 | #:use-module (dfsg main adblock)) 28 | 29 | (define qtwebengine-with-widevine 30 | (package/inherit qtwebengine-5 31 | (arguments 32 | (substitute-keyword-arguments (package-arguments qtwebengine-5) 33 | ((#:phases phases) 34 | #~(modify-phases #$phases 35 | (add-before 'configure 'enable-widevine-support 36 | (lambda _ 37 | (substitute* "src/buildtools/config/common.pri" 38 | (("enable_widevine=false") 39 | "enable_widevine=true")))) 40 | (replace 'configure 41 | (lambda _ 42 | ;; Valid QT_BUILD_PARTS variables are: 43 | ;; libs tools tests examples demos docs translations 44 | (invoke "qmake" "QT_BUILD_PARTS = libs tools" "--" 45 | "--webengine-printing-and-pdf=no" 46 | "--webengine-ffmpeg=system" 47 | ;; FIXME: Building qtwebengine-5 5.12.2 with 48 | ;; icu4c >= 68 fails. 49 | ;;"--webengine-icu=system" 50 | "--webengine-pepper-plugins=yes" 51 | "--webengine-proprietary-codecs=yes"))))))))) 52 | 53 | (define-public qutebrowser-with-adblock 54 | (package/inherit qutebrowser 55 | (name "qutebrowser-with-adblock") 56 | (inputs (modify-inputs (package-inputs qutebrowser) 57 | (prepend python-adblock 58 | rofi-wayland 59 | ;; Can only add 1 in the manifest 60 | qtwayland))) 61 | (arguments 62 | (substitute-keyword-arguments (package-arguments qutebrowser) 63 | ((#:phases phases '%standard-phases) 64 | #~(modify-phases #$phases 65 | (add-after 'wrap-qt-process-path 'wrap-qutebrowser-binary 66 | (lambda* (#:key inputs outputs #:allow-other-keys) 67 | (wrap-program (search-input-file outputs "bin/qutebrowser") 68 | `("PATH" prefix 69 | (,(dirname (search-input-file inputs "bin/qmake6")) 70 | ,(dirname (search-input-file inputs "bin/rofi")))) 71 | `("QT_PLUGIN_PATH" prefix 72 | (,(dirname 73 | (search-input-directory 74 | inputs "lib/qt6/plugins/wayland-decoration-client"))))))))))))) 75 | 76 | (define-public qutebrowser-with-widevine 77 | (package/inherit qutebrowser 78 | (name "qutebrowser-with-widevine") 79 | (inputs 80 | (modify-inputs (package-inputs qutebrowser) 81 | (replace "qtwebengine" qtwebengine-with-widevine))))) 82 | -------------------------------------------------------------------------------- /dfsg/main/rdrview.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main rdrview) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system gnu) 24 | #:use-module (gnu packages curl) 25 | #:use-module (gnu packages linux) 26 | #:use-module (gnu packages xml)) 27 | 28 | (define-public rdrview 29 | (let ((commit "444ce3d6efd8989cd6ecfdc0560071b20e622636") ; May 30, 2021 30 | (revision "3")) 31 | (package 32 | (name "rdrview") 33 | (version (git-version "0.0.0" revision commit)) 34 | (source 35 | (origin 36 | (method git-fetch) 37 | (uri (git-reference 38 | (url "https://github.com/eafer/rdrview") 39 | (commit commit))) 40 | (file-name (git-file-name name version)) 41 | (sha256 42 | (base32 43 | "0fgv6lhrj4vfk4w0fbb9mdcnqy1ybgdzqx4064gw0x8gpzr44rfk")))) 44 | (build-system gnu-build-system) 45 | (arguments 46 | `(#:tests? #f ; Test suite needs work. 47 | #:make-flags (list (string-append "CC=" ,(cc-for-target)) 48 | (string-append "PREFIX=" (assoc-ref %outputs "out"))) 49 | #:phases 50 | (modify-phases %standard-phases 51 | (delete 'configure) ; no configure script. 52 | (add-before 'check 'pre-check 53 | (lambda _ 54 | (setenv "HOME" (getcwd)) 55 | (with-output-to-file ".mailcap" 56 | (lambda () 57 | (display "text/html; links -dump %s; copiousoutput\n"))) 58 | #t)) 59 | (replace 'check 60 | (lambda* (#:key tests? #:allow-other-keys) 61 | (if tests? 62 | (with-directory-excursion "tests" 63 | (invoke "./check" "-V")) 64 | #t)))))) 65 | (native-inputs 66 | `(("links" ,(@ (gnu packages web-browsers) links)) 67 | ("tidy" ,(@ (gnu packages web) tidy)) 68 | ("valgrind" ,(@ (gnu packages valgrind) valgrind)))) 69 | (inputs 70 | `(("curl" ,curl) 71 | ("libseccomp" ,libseccomp) 72 | ("libxml2" ,libxml2))) 73 | (home-page "https://github.com/eafer/rdrview") 74 | (synopsis "Extract the main content from a webpage") 75 | (description "Command line tool to extract the main content from a 76 | webpage, as done by the \"Reader View\" feature of most modern browsers. It's 77 | intended to be used with terminal RSS readers, to make the articles more 78 | readable on web browsers such as @code{lynx}. The code is closely adapted from 79 | the @url{https://github.com/mozilla/readability, Firefox version} and the 80 | output is expected to be mostly equivalent.") 81 | (license license:asl2.0)))) 82 | -------------------------------------------------------------------------------- /dfsg/main/s3fs.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2021 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main s3fs) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system gnu) 24 | #:use-module (gnu packages autotools) 25 | #:use-module (gnu packages curl) 26 | #:use-module (gnu packages gnupg) 27 | #:use-module (gnu packages linux) 28 | #:use-module (gnu packages nettle) 29 | #:use-module (gnu packages pkg-config) 30 | #:use-module (gnu packages python) 31 | #:use-module (gnu packages tls) 32 | #:use-module (gnu packages wget) 33 | #:use-module (gnu packages xml)) 34 | 35 | (define-public s3fs 36 | (package 37 | (name "s3fs") 38 | (version "1.90") 39 | (source 40 | (origin 41 | (method git-fetch) 42 | (uri (git-reference 43 | (url "https://github.com/s3fs-fuse/s3fs-fuse") 44 | (commit (string-append "v" version)))) 45 | (file-name (git-file-name name version)) 46 | (sha256 47 | (base32 "1iyjn7w4nrrii24icmp0zfk2bjr9d7byc42ks578fz0gv4shijmm")))) 48 | (build-system gnu-build-system) 49 | (arguments 50 | '(#:tests? #f ; Tests require /dev/fuse 51 | #:configure-flags '("--with-nettle" 52 | "--with-gnutls"))) 53 | (native-inputs 54 | `(("autoconf" ,autoconf) 55 | ("automake" ,automake) 56 | ("pkg-config" ,pkg-config) 57 | ("python" ,python-2) 58 | ("wget" ,wget))) 59 | (inputs 60 | `(("curl" ,curl) 61 | ("fuse" ,fuse) 62 | ("gnutls" ,gnutls) 63 | ("libgcrypt" ,libgcrypt) 64 | ("libxml2" ,libxml2) 65 | ("nettle" ,nettle))) 66 | (home-page "https://github.com/s3fs-fuse/s3fs-fuse") 67 | (synopsis "FUSE-based file system backed by Amazon S3") 68 | (description "@code{s3fs} allows one to mount an S3 bucket via FUSE. 69 | @code{s3fs} preserves the native object format for files, allowing use of other 70 | tools like AWS CLI.") 71 | (license license:gpl2+))) 72 | -------------------------------------------------------------------------------- /dfsg/main/seashells.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main seashells) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system python) 24 | #:use-module (gnu packages video)) 25 | 26 | (define-public seashells 27 | (let ((commit "119f3d7c897a3028e08a638f870d83ca0bddb8f3") ;2023-03-05 28 | (revision "1")) 29 | (package 30 | (name "seashells") 31 | (version (git-version "0.1.2" revision commit)) 32 | (source (origin 33 | (method git-fetch) 34 | (uri (git-reference 35 | (url "https://github.com/anishathalye/seashells") 36 | (commit commit))) 37 | (file-name (git-file-name name version)) 38 | (sha256 39 | (base32 40 | "019d0np7gb6k392q7jr73vlw8d1krdzlbwsr6hj5x6pagqdw1ncl")))) 41 | (build-system python-build-system) 42 | (arguments 43 | `(#:tests? #f)) ;No tests 44 | (home-page "https://seashells.io/") 45 | (synopsis "Official client for seashells.io") 46 | (description 47 | "Seashells lets you pipe output from command-line programs 48 | to the web in real-time, even without installing any new software on your 49 | machine. You can use it to monitor long-running processes like experiments 50 | that print progress to the console.") 51 | (license license:expat)))) 52 | -------------------------------------------------------------------------------- /dfsg/main/sigil.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020-2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main sigil) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix download) 22 | #:use-module (guix packages) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system qt) 25 | #:use-module (guix build-system minify) 26 | #:use-module (gnu packages bash) 27 | #:use-module (gnu packages compression) 28 | #:use-module (gnu packages javascript) 29 | #:use-module (gnu packages hunspell) 30 | #:use-module (gnu packages pcre) 31 | #:use-module (gnu packages pkg-config) 32 | #:use-module (gnu packages python) 33 | #:use-module (gnu packages python-xyz) 34 | #:use-module (gnu packages python-web) 35 | #:use-module (gnu packages qt) 36 | #:use-module (gnu packages xml)) 37 | 38 | (define-public sigil 39 | (package 40 | (name "sigil") 41 | (version "1.9.30") 42 | (source 43 | (origin 44 | (method git-fetch) 45 | (uri (git-reference 46 | (url "https://github.com/Sigil-Ebook/Sigil") 47 | (commit version))) 48 | (file-name (git-file-name name version)) 49 | (sha256 50 | (base32 "1byx8x4lx4lp8l1q6nmnx019zg5c9jvpf3sjmdwrcmngn7i9v8kx")) 51 | (snippet 52 | #~(begin 53 | (use-modules (guix build utils)) 54 | (with-directory-excursion "3rdparty" 55 | (for-each delete-file-recursively 56 | '("extra" "hunspell" "minizip" "pcre2" "zlib"))) 57 | (delete-file-recursively "src/Resource_Files/dictionaries") 58 | ;(delete-file "src/Resource_Files/polyfills/custom-mathjax.min.js") 59 | (with-directory-excursion "src/Resource_Files/javascript" 60 | (delete-file "jquery-2.2.4.min.js") 61 | (delete-file "jquery.scrollTo-2.1.2-min.js")))))) 62 | (build-system qt-build-system) 63 | (arguments 64 | (list 65 | #:tests? #f ; no tests 66 | #:configure-flags 67 | #~(list "-DUSE_SYSTEM_LIBS=1" 68 | "-DUSE_QT6=0" ; For now. 69 | "-DUSE_NEWER_FINDPYTHON3=1" 70 | "-DSYSTEM_LIBS_REQUIRED=1" 71 | "-DINSTALL_BUNDLED_DICTS=0" 72 | "-DINSTALL_HICOLOR_ICONS=1" 73 | "-DDISABLE_UPDATE_CHECK=1" 74 | ;(string-append "-DMATHJAX3_DIR=" #$output 75 | ; #$(this-package-input "js-mathjax-3") 76 | ; "/share/javascript/mathjax") 77 | ) 78 | #:phases 79 | #~(modify-phases %standard-phases 80 | (add-after 'unpack 'replace-javascript-libraries 81 | (lambda* (#:key inputs #:allow-other-keys) 82 | (symlink 83 | (search-input-file inputs 84 | "/share/javascript/jquery.min.js") 85 | "src/Resource_Files/javascript/jquery-2.2.4.min.js") 86 | (symlink 87 | (search-input-file inputs 88 | "/share/javascript/jquery.scrollTo.min.js") 89 | "src/Resource_Files/javascript/jquery.scrollTo-2.1.2-min.js"))) 90 | (add-after 'unpack 'find-python3 91 | (lambda _ 92 | (substitute* '("src/Dialogs/PluginRunner.cpp" 93 | "src/Dialogs/PreferenceWidgets/PluginWidget.cpp") 94 | (("python3\\.4") "python3")))) 95 | (add-after 'install 'wrap-binary 96 | (lambda* (#:key inputs outputs #:allow-other-keys) 97 | (let ((out (assoc-ref outputs "out"))) 98 | (wrap-program (string-append out "/bin/sigil") 99 | `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))) 100 | `("PATH" ":" prefix (,(which "python3"))))))) 101 | (add-after 'install 'compile-python-bytecode 102 | (lambda* (#:key outputs #:allow-other-keys) 103 | (let ((out (assoc-ref outputs "out"))) 104 | (invoke "python3" "-m" "compileall" 105 | (string-append out "/share/sigil/plugin_launchers/python/")) 106 | (invoke "python3" "-m" "compileall" 107 | (string-append out "/share/sigil/python3lib/")))))))) 108 | (native-inputs 109 | (list pkg-config 110 | qttools-5)) 111 | ;(propagated-inputs 112 | ; ;; Needed so when sigil is installed the mathjax addon will be in the correct folder. 113 | ; ;; Needs to be mathjax 3.22+ 114 | ; (list js-mathjax-3)) 115 | (inputs 116 | (list bash-minimal ; for wrap-program 117 | hunspell 118 | js-jquery 119 | js-jquery-scrollto 120 | minizip 121 | pcre2 122 | python 123 | (list python "tk") 124 | python-chardet 125 | python-css-parser 126 | python-cssselect 127 | python-dulwich 128 | python-html5lib 129 | python-lxml 130 | python-pillow 131 | python-pyqt 132 | python-pyqtwebengine 133 | python-regex 134 | python-six 135 | qtbase-5 136 | qtdeclarative-5 137 | qtwebchannel-5 138 | qtwebengine-5 139 | zlib)) 140 | (home-page "https://sigil-ebook.com/") 141 | (synopsis "EPUB ebook editor") 142 | (description "Sigil is an ebook editor that uses Qt. It is designed to edit 143 | books in ePub format (both ePub 2 and ePub 3).") 144 | (native-search-paths 145 | (list (search-path-specification 146 | (variable "SIGIL_DICTIONARIES") 147 | (files '("share/hunspell"))))) 148 | (license license:gpl3+))) 149 | 150 | (define-public js-jquery 151 | (package 152 | (name "js-jquery") 153 | (version "2.2.4") 154 | (source 155 | (origin 156 | (method git-fetch) 157 | (uri (git-reference 158 | (url "https://github.com/jquery/jquery") 159 | (commit version))) 160 | (file-name (git-file-name name version)) 161 | (sha256 162 | (base32 163 | "12x6k47kjbp3r8dipbjq70v32izxdakyr150pkxv5b29pp0p4sgx")) 164 | ;(snippet 165 | ; #~(begin 166 | ; (use-modules (guix build utils)) 167 | ; (delete-file-recursively "dist"))) 168 | )) 169 | (build-system minify-build-system) 170 | (arguments `(#:javascript-files '("dist/jquery.js"))) 171 | (home-page "https://jquery.com/") 172 | (synopsis "jQuery JavaScript Library") 173 | (description "jQuery is a fast, small, and feature-rich JavaScript library. 174 | It makes things like HTML document traversal and manipulation, event handling, 175 | animation, and Ajax much simpler with an easy-to-use API that works across a 176 | multitude of browsers.") 177 | (license license:expat))) 178 | 179 | (define-public js-jquery-scrollto 180 | (package 181 | (name "js-jquery-scrollto") 182 | (version "2.1.2") 183 | (source 184 | (origin 185 | (method git-fetch) 186 | (uri (git-reference 187 | (url "https://github.com/flesler/jquery.scrollTo") 188 | (commit version))) 189 | (file-name (git-file-name name version)) 190 | (sha256 191 | (base32 192 | "0viaazjcxpk15bhnrrp08r8nd0gicpbc128mmcc0c31rkwc61a4l")) 193 | (snippet 194 | #~(begin (delete-file "jquery.scrollTo.min.js"))))) 195 | (build-system minify-build-system) 196 | (arguments `(#:javascript-files '("jquery.scrollTo.js"))) 197 | (home-page "http://demos.flesler.com/jquery/scrollTo/") 198 | (synopsis "Customizable animated scrolling with jQuery") 199 | (description "@code{jQuery.ScrollTo} is a plug-in that lets you easily 200 | scroll the page wherever you want with some nice effects.") 201 | (license license:expat))) 202 | -------------------------------------------------------------------------------- /dfsg/main/syncthing.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main syncthing) 19 | #:use-module (guix packages) 20 | #:use-module (guix utils) 21 | #:use-module (gnu packages syncthing)) 22 | 23 | (define-public syncthing-goamdv3 24 | (package 25 | (inherit syncthing) 26 | (name "syncthing-goamdv3") ; To make it easy to search for. 27 | (arguments 28 | (substitute-keyword-arguments (package-arguments syncthing) 29 | ((#:tests? _ #t) #f) 30 | ((#:phases phases '%standard-phases) 31 | `(modify-phases ,phases 32 | (add-after 'setup-go-environment 'set-microarchitecture 33 | (lambda _ 34 | (setenv "GOAMD" "v3"))))))) 35 | ;; This is the only architecture which can build this package. 36 | ;; go: cannot install cross-compiled binaries when GOBIN is set 37 | (supported-systems '("x86_64-linux")))) 38 | 39 | (define-public syncthing-goarm5 40 | (package 41 | (inherit syncthing) 42 | (name "syncthing-goarm5") ; To make it easy to search for. 43 | (arguments 44 | (substitute-keyword-arguments (package-arguments syncthing) 45 | ((#:phases phases '%standard-phases) 46 | `(modify-phases ,phases 47 | (add-after 'setup-go-environment 'set-microarchitecture 48 | (lambda _ 49 | (setenv "GOARM" "5"))))))) 50 | ;; This is the only architecture which can build this package. 51 | ;; go: cannot install cross-compiled binaries when GOBIN is set 52 | (supported-systems '("armhf-linux")))) 53 | -------------------------------------------------------------------------------- /dfsg/main/tokodon.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main tokodon) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system qt) 24 | #:use-module (gnu packages kde) 25 | #:use-module (gnu packages kde-frameworks) 26 | #:use-module (gnu packages qt)) 27 | 28 | (define-public tokodon 29 | (package 30 | (name "tokodon") 31 | (version "23.04.2") 32 | (source (origin 33 | (method git-fetch) 34 | (uri (git-reference 35 | (url "https://invent.kde.org/network/tokodon") 36 | (commit (string-append "v" version)))) 37 | (file-name (git-file-name name version)) 38 | (sha256 39 | (base32 40 | "1abavpwg01npgywj0lvjmpspcab053s5fjc6c1nzllwb0d9gghq0")))) 41 | (build-system qt-build-system) 42 | (arguments 43 | `(#:phases (modify-phases %standard-phases 44 | (add-before 'check 'pre-check 45 | (lambda _ 46 | (setenv "QT_QPA_PLATFORM" "offscreen")))))) 47 | (native-inputs (list extra-cmake-modules ki18n qtdeclarative-5)) 48 | (inputs 49 | (list kconfig 50 | kconfigwidgets 51 | kcoreaddons 52 | kdbusaddons 53 | kio 54 | kirigami 55 | kirigami-addons 56 | kitemmodels ; Used at runtime. 57 | knotifications 58 | qqc2-desktop-style 59 | qtbase-5 60 | qtgraphicaleffects ; Needed at runtime. 61 | qtmultimedia-5 62 | qtsvg-5 63 | qtkeychain 64 | qtquickcontrols-5 ; QtQuick.Dialogs 65 | qtquickcontrols2-5 ; Needed at runtime. 66 | qtwebsockets-5 67 | sonnet)) ; Needed at runtime. 68 | (home-page "https://apps.kde.org/tokodon/") 69 | (synopsis "KDE Mastodon client") 70 | (description "Tokodon is a Mastodon Client. It allows you to interact with 71 | the Fediverse community.") 72 | (license license:gpl3))) 73 | -------------------------------------------------------------------------------- /dfsg/main/ueberzug.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main ueberzug) 19 | #:use-module (guix packages) 20 | #:use-module (gnu packages python-xyz)) 21 | 22 | (define-public ueberzug 23 | (package 24 | (inherit python-ueberzug) 25 | (name "ueberzug") 26 | (propagated-inputs '()) 27 | (inputs 28 | (append (package-inputs python-ueberzug) 29 | (package-propagated-inputs python-ueberzug))))) 30 | -------------------------------------------------------------------------------- /dfsg/main/vim.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2021 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg main vim) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix build-system copy) 24 | #:use-module (gnu packages web-browsers)) 25 | 26 | (define-public vim-commentary 27 | ;; Last tagged release was 2016. 28 | (let ((commit "349340debb34f6302931f0eb7139b2c11dfdf427") 29 | (revision "1")) 30 | (package 31 | (name "vim-commentary") 32 | (version (git-version "1.3" revision commit)) 33 | (source 34 | (origin 35 | (method git-fetch) 36 | (uri (git-reference 37 | (url "https://github.com/tpope/vim-commentary") 38 | (commit commit))) 39 | (file-name (git-file-name name version)) 40 | (sha256 41 | (base32 "01lpfcn2hmvxddcf97f4qx5vksxj1hwrxb0c8ri59z9lb9z2hgjd")))) 42 | (build-system copy-build-system) 43 | (arguments 44 | `(#:install-plan 45 | '(("doc" "share/vim/vimfiles/") 46 | ("plugin" "share/vim/vimfiles/")))) 47 | (home-page "https://www.vim.org/scripts/script.php?script_id=3695") 48 | (synopsis "Vim plugin to toggle comments in code") 49 | (description "This vim plugin helps with quickly commenting and 50 | uncommenting sections of text.") 51 | (license license:vim)))) 52 | 53 | (define-public vim-gemivim 54 | ;; No releases have been tagged. 55 | (let ((commit "a6a090918733cd6b58f360ad63c599f8e3f9727b") 56 | (revision "1")) 57 | (package 58 | (name "vim-gemivim") 59 | (version (git-version "0.0.0" revision commit)) 60 | (source 61 | (origin 62 | (method git-fetch) 63 | (uri (git-reference 64 | (url "https://git.sr.ht/~k1nkreet/gemivim") 65 | (commit commit))) 66 | (file-name (git-file-name name version)) 67 | (sha256 68 | (base32 "1jc9i1zl98j856v8dj4pqbfymx7rjkqzk68hzzfn71rjwlzxf7gy")))) 69 | (build-system copy-build-system) 70 | (arguments 71 | `(#:install-plan 72 | '(("autoload" "share/vim/vimfiles/") 73 | ("plugin" "share/vim/vimfiles/")) 74 | #:phases 75 | (modify-phases %standard-phases 76 | (add-after 'unpack 'hardcode-gmni 77 | (lambda* (#:key inputs #:allow-other-keys) 78 | (substitute* "autoload/gemivim.vim" 79 | (("'gmni") 80 | (string-append "'" (assoc-ref inputs "gmni") "/bin/gmni"))) 81 | #t))))) 82 | (inputs 83 | `(("gmni" ,gmni))) 84 | (home-page "https://sr.ht/~k1nkreet/gemivim") 85 | (synopsis "VIM plugin for browsing Gemini pages") 86 | (description "This is a simple VIM plugin for browsing Gemini pages. 87 | It uses @code{gmni} as a gemini client and supports: 88 | @itemize 89 | @item Get gemini content by given URL 90 | @item Netrw gx-like open gemini link under cursor 91 | @item Capturing input when gemini resource anticipates to 92 | @item Bookmarks management 93 | @end itemize 94 | Since plugin does nothing but storing content in temporary files and opening 95 | them in buffers, one could find quite convenient to use whole power of VIM with 96 | search, jumplists, tabs, whatever to browse efficiently.") 97 | (license license:gpl2)))) 98 | 99 | (define-public vim-gemini-vim-syntax 100 | ;; No releases have been tagged. 101 | (let ((commit "596d1f36b386e5b2cc1af4f2f8285134626878d1") 102 | (revision "1")) 103 | (package 104 | (name "vim-gemini-vim-syntax") 105 | (version (git-version "0.0.0" revision commit)) 106 | (source 107 | (origin 108 | (method git-fetch) 109 | (uri (git-reference 110 | (url "https://tildegit.org/sloum/gemini-vim-syntax") 111 | (commit commit))) 112 | (file-name (git-file-name name version)) 113 | (sha256 114 | (base32 "1h5cq9fbv53nsjj66xrqmdiv0i1gqcvd0mfks3sdlnj0lzhbpip0")))) 115 | (build-system copy-build-system) 116 | (arguments 117 | `(#:install-plan 118 | '(("ftdetect" "share/vim/vimfiles/") 119 | ("syntax" "share/vim/vimfiles/")))) 120 | (home-page "https://tildegit.org/sloum/gemini-vim-syntax") 121 | (synopsis "Vim syntax highlighting for text/gemini files") 122 | (description "This Vim plugin provides a basic syntax highlighting for the 123 | Gemini protocol's text/gemini format.") 124 | (license license:unlicense)))) 125 | -------------------------------------------------------------------------------- /dfsg/non-free/b43-firmware.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg non-free b43-firmware) 19 | #:use-module (guix download) 20 | #:use-module (guix packages) 21 | #:use-module (guix licenses) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system copy) 25 | #:use-module (dfsg contrib b43-fwcutter)) 26 | 27 | (define-public broadcom-wl 28 | (package 29 | (name "broadcom-wl") 30 | (version "6.30.163.46") 31 | (source 32 | (origin 33 | (method url-fetch) 34 | (uri (string-append "https://www.lwfinger.com/b43-firmware/" 35 | "broadcom-wl-" version ".tar.bz2")) 36 | (sha256 37 | (base32 38 | "0baw6gcnrhxbb447msv34xg6rmlcj0gm3ahxwvdwfcvq4xmknz50")))) 39 | (build-system copy-build-system) 40 | (arguments 41 | (list 42 | #:substitutable? #f ; Non-redistributable. 43 | #:strip-binaries? #f ; Pre-compiled firmware 44 | #:install-plan 45 | #~'(("b43" "lib/firmware/")) 46 | #:phases 47 | #~(modify-phases %standard-phases 48 | (add-before 'install 'build 49 | (lambda _ 50 | (let ((wl_apsta.o 51 | (string-append #$name "-" #$version ".wl_apsta.o"))) 52 | (invoke "b43-fwcutter" "-w" "." wl_apsta.o))))))) 53 | (inputs (list b43-fwcutter)) 54 | (home-page "https://wireless.wiki.kernel.org/en/users/Drivers/b43") 55 | (synopsis "Broadcom Wireless Driver") 56 | (description "This package provides the firmware needed by the b43 kernel 57 | driver for some Broadcom 43xx wireless network cards. 58 | Supported chipsets: 59 | @enumerate 60 | @item BCM4306/3 (chip revision 3 only); 61 | @item BCM4311 (NOT PCI Id 14e4:4313); 62 | @item BCM4312; 63 | @item BCM43131; 64 | @item BCM4318; 65 | @item BCM4321 (only partial support, not all versions tested); 66 | @item BCM43217; 67 | @item BCM4322 (only partial support for some versions, not all versions tested); 68 | @item BCM43222 (not all versions tested); 69 | @item BCM43224 (not all versions tested); 70 | @item BCM43225; 71 | @item BCM43227; 72 | @item BCM43228; 73 | @item BCM4331; 74 | @item BCM47xx (detection not reliable, may not support all versions) 75 | @end enumerate") 76 | (license ((@@ (guix licenses) license) 77 | "Nonfree" 78 | "https://wireless.wiki.kernel.org/en/users/Drivers/b43" 79 | "This package is non-free")))) 80 | 81 | (define-public broadcom-wl-5 82 | (package 83 | (inherit broadcom-wl) 84 | (name "broadcom-wl") 85 | (version "5.100.138") 86 | (source 87 | (origin 88 | (method url-fetch) 89 | (uri (string-append "https://www.lwfinger.com/b43-firmware/" 90 | "broadcom-wl-" version ".tar.bz2")) 91 | (sha256 92 | (base32 93 | "0vz4ka8gycf72gmnaq61k8rh8y17j1wm2k3fidxvcqjvmix0drzi")))) 94 | (arguments 95 | (substitute-keyword-arguments (package-arguments broadcom-wl) 96 | ((#:phases phases) 97 | #~(modify-phases #$phases 98 | (replace 'build 99 | (lambda _ 100 | (let ((wl_apsta.o "linux/wl_apsta.o")) 101 | (invoke "b43-fwcutter" "-w" "." wl_apsta.o)))))))))) 102 | 103 | (define-public broadcom-wl-legacy 104 | (package 105 | (inherit broadcom-wl) 106 | (name "broadcom-wl") 107 | (version "3.130.20.0") 108 | (source 109 | (origin 110 | (method url-fetch) 111 | (uri (string-append "https://sources.openwrt.org/" 112 | "wl_apsta-" version ".o")) 113 | (sha256 114 | (base32 115 | "147gqfkldp5nssq3a02wdynb3lgcsr6f3g5w07li9pcn3l5n3fkx")))) 116 | (arguments 117 | (substitute-keyword-arguments (package-arguments broadcom-wl) 118 | ((#:install-plan _ #~'()) 119 | #~'(("b43legacy" "lib/firmware/"))) 120 | ((#:phases phases) 121 | #~(modify-phases #$phases 122 | (delete 'unpack) ; Single file. 123 | (replace 'build 124 | (lambda _ 125 | (invoke "b43-fwcutter" "-w" "." #$source))))))) 126 | (description "This package provides the firmware needed by the b43legacy 127 | kernel driver for some Broadcom 43xx wireless network cards. 128 | Supported chipsets: 129 | @enumerate 130 | @item BCM4301; 131 | @item BCM4306/2; 132 | @item BCM4306 133 | @end enumerate"))) 134 | -------------------------------------------------------------------------------- /dfsg/non-free/hfs.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg non-free hfs) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system gnu) 25 | #:use-module (gnu packages libbsd) 26 | #:use-module (gnu packages linux) 27 | #:use-module (gnu packages tls)) 28 | 29 | (define-public hfs 30 | (let ((commit "a9496556b0a5fa805139ea20b44081d48aae912a") 31 | (revision "1")) 32 | (package 33 | (name "hfs") 34 | (version (git-version "627.40.1" revision commit)) 35 | (source 36 | (origin 37 | (method git-fetch) 38 | (uri (git-reference 39 | (url "https://github.com/glaubitz/hfs") 40 | (commit commit))) 41 | (file-name (git-file-name name version)) 42 | (sha256 43 | (base32 44 | "0ahjzq689a2g81f3pbaf5nmfk5ickkysr8nxa0mp3lylc4yxg9wb")))) 45 | (build-system gnu-build-system) 46 | (arguments 47 | (list 48 | #:tests? #f ; No tests 49 | #:make-flags 50 | #~(list (string-append "CC=" #$(cc-for-target))) 51 | #:phases 52 | #~(modify-phases %standard-phases 53 | (delete 'configure) ; No configure phase 54 | (add-before 'build 'pre-build 55 | (lambda _ 56 | (substitute* "Makefile" 57 | (("-I.*include") "-I../include -I../../include")))) 58 | (replace 'install 59 | (lambda _ 60 | (let ((sbin (string-append #$output "/sbin")) 61 | (man8 (string-append #$output "/share/man/man8"))) 62 | (install-file "newfs_hfs/newfs_hfs" sbin) 63 | (install-file "newfs_hfs/newfs_hfs.8" man8) 64 | (install-file "fsck_hfs/fsck_hfs" sbin) 65 | (install-file "fsck_hfs/fsck_hfs.8" man8)))) 66 | (add-after 'install 'create-symlinks 67 | (lambda* (#:key outputs #:allow-other-keys) 68 | (with-directory-excursion (string-append #$output "/sbin") 69 | (symlink "fsck_hfs" "fsck.hfsplus") 70 | (symlink "newfs_hfs" "mkfs.hfsplus")) 71 | (with-directory-excursion (string-append #$output "/share/man/man8") 72 | (symlink "fsck_hfs.8" "fsck.hfsplus.8") 73 | (symlink "newfs_hfs.8" "mkfs.hfsplus.8"))))))) 74 | (inputs 75 | (list libbsd 76 | openssl 77 | (list util-linux "lib"))) 78 | (home-page "https://opensource.apple.com/source/diskdev_cmds/") 79 | (synopsis "@code{mkfs} and @code{fsck} for HFS and HFS+ file systems") 80 | (description "The HFS+ file system used by Apple Computer for their Mac OS 81 | is supported by the Linux kernel. Apple provides mkfs and fsck for HFS+ with 82 | the Unix core of their operating system, Darwin. This package is a port of 83 | Apple's tools for HFS+ filesystems.") 84 | (license ((@@ (guix licenses) license) 85 | "Apple \"Open Source\" License 1.2" 86 | "file://APPLE_LICENSE" 87 | "This package is non-free"))))) 88 | -------------------------------------------------------------------------------- /dfsg/non-free/ravkav.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2017, 2018, 2020-2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (dfsg non-free ravkav) 19 | #:use-module (guix download) 20 | #:use-module (guix packages) 21 | #:use-module (guix licenses) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system gnu) 25 | #:use-module (gnu packages bootstrap) ; glibc-dynamic-linker 26 | #:use-module (gnu packages elf) 27 | #:use-module (gnu packages security-token)) 28 | 29 | ;; Check https://ravkavonline.s3.amazonaws.com/ for updates. 30 | (define-public ravkavonline 31 | (package 32 | (name "ravkavonline") 33 | (version "2.5.2") 34 | (source 35 | (origin 36 | (method url-fetch) 37 | (uri (string-append "https://ravkavonline.s3.amazonaws.com/linux/" 38 | "ravkavonline_" version "_amd64.deb")) 39 | (sha256 40 | (base32 41 | "035pjyp7y1pgi1zb1vcp9x97axq6wrnn9cax4m54abh1jk8h89q0")))) 42 | (build-system gnu-build-system) 43 | (arguments 44 | (list 45 | #:phases 46 | #~(modify-phases %standard-phases 47 | (delete 'configure) ; No configure script. 48 | (replace 'unpack 49 | (lambda _ 50 | (invoke "ar" "x" #$source "data.tar.gz") 51 | (invoke "tar" "xvf" "data.tar.gz"))) 52 | (replace 'build 53 | (lambda* (#:key inputs outputs #:allow-other-keys) 54 | (let ((ravkav "usr/bin/ravkavonline") 55 | (ld-so (search-input-file inputs #$(glibc-dynamic-linker))) 56 | (rpath (dirname 57 | (search-input-file inputs "/lib/libpcsclite.so")))) 58 | (invoke "patchelf" "--set-rpath" rpath ravkav) 59 | (invoke "patchelf" "--set-interpreter" ld-so ravkav) 60 | (substitute* "usr/share/applications/ravkavonline.desktop" 61 | (("/usr") #$output))))) 62 | (replace 'install 63 | (lambda* (#:key outputs #:allow-other-keys) 64 | (let ((out #$output)) 65 | (with-directory-excursion "usr" 66 | (install-file "bin/ravkavonline" (string-append out "/bin")) 67 | (install-file "share/applications/ravkavonline.desktop" 68 | (string-append out "/share/applications")) 69 | (install-file "share/doc/ravkavonline/LICENSE.txt" 70 | (string-append out "/share/doc/" 71 | #$name "-" #$version))))))) 72 | #:substitutable? #f ; Non-redistributable. 73 | #:strip-binaries? #f ; Causes seg faults. 74 | #:tests? #f)) ; No tests. 75 | (native-inputs (list patchelf)) 76 | (inputs (list pcsc-lite)) 77 | (home-page "https://ravkavonline.co.il/he/") 78 | (synopsis "Charge your ravkav at home") 79 | (description "Save time and charge your ravkav at home.") 80 | (supported-systems '("x86_64-linux")) 81 | (license ((@@ (guix licenses) license) 82 | "Nonfree" 83 | "https://ravkavonline.co.il/he/terms" 84 | "This package is non-free")))) 85 | -------------------------------------------------------------------------------- /gitea-patch-makefile.patch: -------------------------------------------------------------------------------- 1 | diff --git a/Makefile b/Makefile 2 | index bf3d93d3c..48f056189 100644 3 | --- a/Makefile 4 | +++ b/Makefile 5 | @@ -17,7 +17,7 @@ else 6 | DIST := dist 7 | DIST_DIRS := $(DIST)/binaries $(DIST)/release 8 | IMPORT := code.gitea.io/gitea 9 | -export GO111MODULE=on 10 | +export GO111MODULE=off 11 | 12 | GO ?= go 13 | SHASUM ?= shasum -a 256 14 | @@ -93,7 +93,7 @@ LDFLAGS := $(LDFLAGS) -X "main.MakeVersion=$(MAKE_VERSION)" -X "main.Version=$(G 15 | 16 | LINUX_ARCHS ?= linux/amd64,linux/386,linux/arm-5,linux/arm-6,linux/arm64 17 | 18 | -GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/models/migrations code.gitea.io/gitea/integrations/migration-test code.gitea.io/gitea/integrations,$(shell $(GO) list -mod=vendor ./... | grep -v /vendor/)) 19 | +GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/models/migrations code.gitea.io/gitea/integrations/migration-test code.gitea.io/gitea/integrations,$(shell $(GO) list ./...)) 20 | 21 | FOMANTIC_WORK_DIR := web_src/fomantic 22 | 23 | @@ -117,7 +117,7 @@ TEST_TAGS ?= sqlite sqlite_unlock_notify 24 | 25 | TAR_EXCLUDES := .git data indexers queues log node_modules $(EXECUTABLE) $(FOMANTIC_WORK_DIR)/node_modules $(DIST) $(MAKE_EVIDENCE_DIR) $(AIR_TMP_DIR) 26 | 27 | -GO_DIRS := cmd integrations models modules routers build services vendor tools 28 | +GO_DIRS := cmd integrations models modules routers build services tools 29 | 30 | GO_SOURCES := $(wildcard *.go) 31 | GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" -not -path modules/options/bindata.go -not -path modules/public/bindata.go -not -path modules/templates/bindata.go) 32 | @@ -126,7 +126,7 @@ ifeq ($(filter $(TAGS_SPLIT),bindata),bindata) 33 | GO_SOURCES += $(BINDATA_DEST) 34 | endif 35 | 36 | -GO_SOURCES_OWN := $(filter-out vendor/% %/bindata.go, $(GO_SOURCES)) 37 | +GO_SOURCES_OWN := $(filter-out %/bindata.go, $(GO_SOURCES)) 38 | 39 | #To update swagger use: GO111MODULE=on go get -u github.com/go-swagger/go-swagger/cmd/swagger 40 | SWAGGER := $(GO) run -mod=vendor github.com/go-swagger/go-swagger/cmd/swagger 41 | @@ -243,7 +243,7 @@ fmt: 42 | vet: 43 | @echo "Running go vet..." 44 | @$(GO) vet $(GO_PACKAGES) 45 | - @GOOS= GOARCH= $(GO) build -mod=vendor code.gitea.io/gitea-vet 46 | + @GOOS= GOARCH= $(GO) build code.gitea.io/gitea-vet 47 | @$(GO) vet -vettool=gitea-vet $(GO_PACKAGES) 48 | 49 | .PHONY: $(TAGS_EVIDENCE) 50 | @@ -360,7 +360,7 @@ test: test-frontend test-backend 51 | .PHONY: test-backend 52 | test-backend: 53 | @echo "Running go test with -tags '$(TEST_TAGS)'..." 54 | - @$(GO) test $(GOTESTFLAGS) -mod=vendor -tags='$(TEST_TAGS)' $(GO_PACKAGES) 55 | + @$(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' $(GO_PACKAGES) 56 | 57 | .PHONY: test-frontend 58 | test-frontend: node_modules 59 | @@ -381,16 +381,16 @@ test-check: 60 | .PHONY: test\#% 61 | test\#%: 62 | @echo "Running go test with -tags '$(TEST_TAGS)'..." 63 | - @$(GO) test -mod=vendor $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -run $(subst .,/,$*) $(GO_PACKAGES) 64 | + @$(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -run $(subst .,/,$*) $(GO_PACKAGES) 65 | 66 | .PHONY: coverage 67 | coverage: 68 | - GO111MODULE=on $(GO) run -mod=vendor build/gocovmerge.go integration.coverage.out $(shell find . -type f -name "coverage.out") > coverage.all 69 | + GO111MODULE=on $(GO) run build/gocovmerge.go integration.coverage.out $(shell find . -type f -name "coverage.out") > coverage.all 70 | 71 | .PHONY: unit-test-coverage 72 | unit-test-coverage: 73 | @echo "Running unit-test-coverage -tags '$(TEST_TAGS)'..." 74 | - @$(GO) test $(GOTESTFLAGS) -mod=vendor -tags='$(TEST_TAGS)' -cover -coverprofile coverage.out $(GO_PACKAGES) && echo "\n==>\033[32m Ok\033[m\n" || exit 1 75 | + @$(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -cover -coverprofile coverage.out $(GO_PACKAGES) && echo "\n==>\033[32m Ok\033[m\n" || exit 1 76 | 77 | .PHONY: vendor 78 | vendor: 79 | @@ -528,22 +528,22 @@ integration-test-coverage: integrations.cover.test generate-ini-mysql 80 | GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mysql.ini ./integrations.cover.test -test.coverprofile=integration.coverage.out 81 | 82 | integrations.mysql.test: git-check $(GO_SOURCES) 83 | - $(GO) test $(GOTESTFLAGS) -mod=vendor -c code.gitea.io/gitea/integrations -o integrations.mysql.test 84 | + $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/integrations -o integrations.mysql.test 85 | 86 | integrations.mysql8.test: git-check $(GO_SOURCES) 87 | - $(GO) test $(GOTESTFLAGS) -mod=vendor -c code.gitea.io/gitea/integrations -o integrations.mysql8.test 88 | + $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/integrations -o integrations.mysql8.test 89 | 90 | integrations.pgsql.test: git-check $(GO_SOURCES) 91 | - $(GO) test $(GOTESTFLAGS) -mod=vendor -c code.gitea.io/gitea/integrations -o integrations.pgsql.test 92 | + $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/integrations -o integrations.pgsql.test 93 | 94 | integrations.mssql.test: git-check $(GO_SOURCES) 95 | - $(GO) test $(GOTESTFLAGS) -mod=vendor -c code.gitea.io/gitea/integrations -o integrations.mssql.test 96 | + $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/integrations -o integrations.mssql.test 97 | 98 | integrations.sqlite.test: git-check $(GO_SOURCES) 99 | - $(GO) test $(GOTESTFLAGS) -mod=vendor -c code.gitea.io/gitea/integrations -o integrations.sqlite.test -tags '$(TEST_TAGS)' 100 | + $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/integrations -o integrations.sqlite.test -tags '$(TEST_TAGS)' 101 | 102 | integrations.cover.test: git-check $(GO_SOURCES) 103 | - $(GO) test $(GOTESTFLAGS) -mod=vendor -c code.gitea.io/gitea/integrations -coverpkg $(shell echo $(GO_PACKAGES) | tr ' ' ',') -o integrations.cover.test 104 | + $(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/integrations -coverpkg $(shell echo $(GO_PACKAGES) | tr ' ' ',') -o integrations.cover.test 105 | 106 | .PHONY: migrations.mysql.test 107 | migrations.mysql.test: $(GO_SOURCES) 108 | @@ -599,15 +599,15 @@ build: frontend backend 109 | frontend: $(WEBPACK_DEST) 110 | 111 | .PHONY: backend 112 | -backend: go-check generate $(EXECUTABLE) 113 | +backend: go-check $(EXECUTABLE) 114 | 115 | .PHONY: generate 116 | generate: $(TAGS_PREREQ) 117 | @echo "Running go generate..." 118 | - @CC= GOOS= GOARCH= $(GO) generate -mod=vendor -tags '$(TAGS)' $(GO_PACKAGES) 119 | + @CC= GOOS= GOARCH= $(GO) generate -tags '$(TAGS)' $(GO_PACKAGES) 120 | 121 | $(EXECUTABLE): $(GO_SOURCES) $(TAGS_PREREQ) 122 | - CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build -mod=vendor $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@ 123 | + CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@ 124 | 125 | .PHONY: release 126 | release: frontend generate release-windows release-linux release-darwin release-copy release-compress release-sources release-docs release-check 127 | -------------------------------------------------------------------------------- /wip/ada.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip ada) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (gnu packages base) 25 | #:use-module (gnu packages bootstrap) 26 | #:use-module (gnu packages gcc) 27 | #:use-module (gnu packages texinfo) 28 | #:use-module (srfi srfi-1) 29 | #:use-module (ice-9 match)) 30 | 31 | (define-public gcc-2.7 32 | (package 33 | (inherit gcc) 34 | (version "2.7.2.3") 35 | (source (origin 36 | (method url-fetch) 37 | (uri (string-append "mirror://gnu/gcc/gcc-" version ".tar.gz")) 38 | (sha256 39 | (base32 40 | "0g3pffmbkm45kfidfc93mrakivv5j1b50rki2hqvnr101w7nw5hn")) 41 | ;(snippet 42 | ; #~(begin 43 | ; ;; Need a bison older than 3.0.5. 44 | ; (delete-file "objc-parse.c") 45 | ; (delete-file "cexp.c") 46 | ; (delete-file "c-parse.c") 47 | ; (delete-file "bi-parser.c") 48 | ; (delete-file "cp/parse.c"))) 49 | )) 50 | (supported-systems (fold delete %supported-systems 51 | '("powerpc64le-linux" "riscv64-linux"))) 52 | (outputs '("out")) 53 | (arguments 54 | (let ((matching-system 55 | (match (%current-system) 56 | ;; This package predates our 64-bit architectures. 57 | ;; Force a 32-bit build targeting a similar architecture. 58 | ("aarch64-linux" 59 | "armhf-linux") 60 | ("x86_64-linux" 61 | "i686-linux") 62 | (_ 63 | (%current-system))))) 64 | (list #:system matching-system 65 | #:configure-flags #~'("--disable-werror") 66 | #:tests? #f ; There does not seem to be a test suite. 67 | #:parallel-build? #f 68 | #:make-flags 69 | #~(list (string-append "CC=" #$(cc-for-target)) 70 | ;; Despite objections to the contrary, OLDCC is still gcc. 71 | (string-append "OLDCC=" #$(cc-for-target)) 72 | ;; We need to add the -O1 when building with gcc-11. 73 | "CFLAGS = -O1 -g" 74 | ;; badly punctuated parameter list in `#define' 75 | ;; None of these seem to ignore it :/ 76 | ;"ENQUIRE_CFLAGS = -Wp,-std=c9x -DNO_MEM -DNO_LONG_DOUBLE_IO -O0" 77 | ;"ENQUIRE_CFLAGS = -w -DNO_MEM -DNO_LONG_DOUBLE_IO -O0" 78 | ;; Drop objc 79 | "LANGUAGES = c proto") 80 | #:phases 81 | #~(modify-phases %standard-phases 82 | (add-after 'unpack 'replace-deprecated-symbols 83 | (lambda _ 84 | ;; sys_nerr and sys_errlist removed in glibc-2.32. 85 | (substitute* '("protoize.c" 86 | "gcc.c" 87 | "cpplib.c" 88 | "collect2.c" 89 | "cccp.c" 90 | "cp/g++.c") 91 | (("sys_nerr") "strerrorname_np") 92 | (("sys_errlist") "strerrordesc_np")) 93 | ;; At some point gcc stops implementing varargs.h 94 | ;; and it moved to glibc. 95 | (substitute* (find-files "." "\\.c$") 96 | (("#include ") 97 | "#include ")) 98 | (substitute* "protoize.c" 99 | (("#include ") 100 | "#include \n#include ")))) 101 | (add-before 'configure 'set-dynamic-linker-file-name 102 | (lambda* (#:key inputs #:allow-other-keys) 103 | ;; Tell GCC what the real loader file name is. 104 | (substitute* "config/m68k/linux.h" 105 | (("/lib/ld\\.so\\.1") 106 | (search-input-file 107 | inputs #$(glibc-dynamic-linker matching-system)))) 108 | (substitute* "config/i386/gnu.h" 109 | (("/lib/ld\\.so") 110 | (search-input-file 111 | inputs #$(glibc-dynamic-linker matching-system)))) 112 | (substitute* '("config/i386/linux.h" 113 | "config/m68k/linux.h") 114 | (("/lib(64)?/ld-linux\\.so\\.[12]") 115 | (search-input-file 116 | inputs #$(glibc-dynamic-linker matching-system)))))) 117 | (replace 'configure 118 | (lambda* (#:key outputs build configure-flags 119 | #:allow-other-keys) 120 | ;; It's an old 'configure' script so it needs some help. 121 | (setenv "CONFIG_SHELL" (which "sh")) 122 | (apply invoke "./configure" 123 | (string-append "--prefix=" #$output) 124 | (string-append "--build=" build) 125 | (string-append "--host=" build) 126 | configure-flags))) 127 | (add-before 'configure 'patch-more-shebangs 128 | (lambda _ 129 | (substitute* "genmultilib" 130 | (("#!/bin/sh") (string-append "#!" (which "sh")))) 131 | (substitute* "configure" 132 | (("`/bin/sh") (string-append "`" (which "sh")))) 133 | (substitute* "Makefile.in" 134 | (("SHELL = /bin/sh") 135 | (string-append "SHELL = " (which "sh")))))))))) 136 | (native-inputs 137 | (list texinfo 138 | ;; See above about badly punctuated parameter list. 139 | (@ (gnu packages base) glibc-2.33))) 140 | (inputs '()) 141 | (propagated-inputs '()) 142 | (native-search-paths 143 | ;; This package supports nothing but the C language. 144 | (list (search-path-specification 145 | (variable "C_INCLUDE_PATH") 146 | (files '("include"))) 147 | (search-path-specification 148 | (variable "LIBRARY_PATH") 149 | (files '("lib"))))))) 150 | 151 | (define-public gnat-3.09 152 | (package 153 | (inherit gcc-2.7) 154 | (name "gnat") 155 | (version "3.09") 156 | (arguments 157 | (substitute-keyword-arguments (package-arguments gcc-2.7) 158 | ((#:make-flags flags) 159 | ;; TODO: Inherit from gcc-2.7. 160 | ;#~(append 161 | ; (remove (cut string-match "LANGUAGES" <>) 162 | ; #$flags) 163 | ; (list "LANGUAGES = c ada"))) 164 | #~(list (string-append "CC=" #$(cc-for-target)) 165 | ;; Despite objections to the contrary, OLDCC is still gcc. 166 | (string-append "OLDCC=" #$(cc-for-target)) 167 | ;; We need to add the -O1 when building with gcc-11. 168 | "CFLAGS = -O1 -g" 169 | ;; badly punctuated parameter list in `#define' 170 | ;; None of these seem to ignore it :/ 171 | ;"ENQUIRE_CFLAGS = -Wp,-std=c9x -DNO_MEM -DNO_LONG_DOUBLE_IO -O0" 172 | ;"ENQUIRE_CFLAGS = -w -DNO_MEM -DNO_LONG_DOUBLE_IO -O0" 173 | ;; Drop objc and proto 174 | "LANGUAGES = c ada")) 175 | ((#:phases phases) 176 | #~(modify-phases #$phases 177 | (add-after 'unpack 'unpack-ada-source 178 | (lambda* (#:key inputs #:allow-other-keys) 179 | (invoke "tar" "xf" (assoc-ref inputs "ada-source")) 180 | (rename-file "gnat-3.09.orig/ada" "ada") 181 | ;; Using 'invoke patch' returns the following error: 182 | ;; Hmm... I can't seem to find a patch in there anywhere. 183 | ;; Verbose patching so we can see the output in the logs. 184 | (system 185 | (string-append "patch --verbose -p0 < " 186 | "gnat-3.09.orig/gnat-3.09-src/src/gcc-272.dif")) 187 | (with-directory-excursion "ada" 188 | (system 189 | (string-append "patch --verbose -p0 < " 190 | "../gnat-3.09.orig/gnat-3.09-src/src/linux.dif"))))) 191 | ;; These are the instructions, but is it necessary? 192 | (replace 'build 193 | (lambda* (#:key (make-flags '()) #:allow-other-keys) 194 | (apply invoke "make" make-flags) 195 | (apply invoke "make" "bootstrap" make-flags) 196 | (apply invoke "make" "gnatlib_and_tools" make-flags))))))) 197 | (native-inputs 198 | `(("ada-source" 199 | ,(origin 200 | (method url-fetch) 201 | (uri (string-append "http://snapshot.debian.org/archive" 202 | "/debian-archive/20090802T004153Z/debian" 203 | "/dists/bo/main/source/devel/gnat_" 204 | version ".orig.tar.gz")) 205 | (sha256 206 | (base32 "1mw5qyss7lm59mhrxzzjkfa3bnqmq169w5ii8jy6m2868nz3r890")))) 207 | ;("ada" ,(@ (gnu packages ada) ada/ed)) ; This isn't enough to build gnat. 208 | ,@(package-native-inputs gcc-2.7))) 209 | (native-search-paths 210 | ;; TODO: Add the search-path-specification for ADA. 211 | (list (search-path-specification 212 | (variable "C_INCLUDE_PATH") 213 | (files '("include"))) 214 | (search-path-specification 215 | (variable "LIBRARY_PATH") 216 | (files '("lib"))))))) 217 | -------------------------------------------------------------------------------- /wip/box86.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023, 2024 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip box86) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system cmake) 25 | #:use-module (gnu packages cross-base) 26 | #:use-module (gnu packages python) 27 | #:use-module (ice-9 match)) 28 | 29 | ;; TODO: This package has many pre-generated files 30 | (define-public box86 31 | (package 32 | (name "box86") 33 | (version "0.3.4") 34 | (source 35 | (origin 36 | (method git-fetch) 37 | (uri (git-reference 38 | (url "https://github.com/ptitSeb/box86") 39 | (commit (string-append "v" version)))) 40 | (file-name (git-file-name name version)) 41 | (sha256 42 | (base32 "1g2acbq1sgyxpg7miwvx10836j80mgbisib3rp1snwvmz7024krw")) 43 | (snippet 44 | #~(begin 45 | (use-modules (guix build utils)) 46 | (substitute* "CMakeLists.txt" 47 | ((" /etc/") " ${CMAKE_INSTALL_PREFIX}/etc/")) 48 | (delete-file "src/dynarec/arm_printer.c") 49 | (delete-file "src/dynarec/last_run.txt") 50 | (delete-file "src/wrapped/generated/functions_list.txt") 51 | ;(delete-file-recursively "src/wrapped/generated") 52 | (delete-file-recursively "x86lib") 53 | ;(delete-file "tests/bash") 54 | ;(delete-file "tests/extensions/mmx") 55 | ;(for-each (lambda (file) 56 | ; (let ((generated-file (string-drop-right file 2))) 57 | ; (when (file-exists? generated-file) 58 | ; (delete-file generated-file)))) 59 | ; (find-files "tests" "\\.c$")) 60 | )) 61 | )) 62 | (build-system cmake-build-system) 63 | (arguments 64 | (list 65 | ;; We need the 32-bit variants of the architectures. 66 | #:system 67 | (match (%current-system) 68 | ("aarch64-linux" 69 | "armhf-linux") 70 | ("x86_64-linux" 71 | "i686-linux") 72 | (_ 73 | (%current-system))) 74 | ;; Test10 (cppThreads) fails, all tests in our build environment. 75 | #:tests? #f 76 | #:configure-flags 77 | #~(append (cond (#$(target-aarch64?) 78 | (list "-DARM64=1")) 79 | (#$(target-x86?) 80 | (list "-DLD80BITS=1" 81 | "-DNOALIGN=1")) 82 | #;(#$(target-arm32?) 83 | (list "-DARM_DYNAREC=1")) 84 | ((and #$(target-powerpc?) 85 | #$(target-little-endian?)) 86 | (list "-DPOWERPCLE=1")) 87 | (#t '())) 88 | (list "-DNOGIT=1" 89 | ;; Don't install vendored libraries. 90 | "-DNO_LIB_INSTALL=1" 91 | )) 92 | #:phases 93 | #~(modify-phases %standard-phases 94 | (add-after 'unpack 'rebuild-wrapped-files 95 | (lambda _ 96 | (invoke "python3" "rebuild_printer.py" (getcwd)) 97 | ;(invoke "python3" "rebuild_wrappers.py" (getcwd)) 98 | )) 99 | (add-after 'unpack 'adjust-version-number 100 | (lambda _ 101 | (substitute* "src/build_info.c" 102 | (("nogit") "")))) 103 | #;(replace 'install 104 | (lambda* (#:key outputs #:allow-other-keys) 105 | (let ((out (assoc-ref outputs "out"))) 106 | (install-file "box86" 107 | (string-append out "/bin")) 108 | (install-file "system/box86.box86rc" 109 | (string-append out "/etc")) 110 | (unless #$(target-x86?) 111 | (install-file "system/box86.conf" 112 | (string-append out "/etc/binfmt.d"))))))))) 113 | (native-inputs 114 | (list python)) 115 | (home-page "https://box86.org/") 116 | (synopsis "Linux Userspace x86 Emulator") 117 | (description "Box86 lets you run x86 Linux programs (such as games) on 118 | non-x86 Linux systems, like ARM (host system needs to be 32bit little-endian).") 119 | (license license:expat))) 120 | 121 | (define-public box64 122 | (package 123 | (name "box64") 124 | (version "0.2.6") 125 | (source 126 | (origin 127 | (method git-fetch) 128 | (uri (git-reference 129 | (url "https://github.com/ptitSeb/box64") 130 | (commit (string-append "v" version)))) 131 | (file-name (git-file-name name version)) 132 | (sha256 133 | (base32 "0fpll9x3r8dyfacrww00nlnz9kn4pvhvx19ij3x1cnc4wq32g9kq")) 134 | (snippet 135 | #~(begin 136 | (use-modules (guix build utils)) 137 | (substitute* "CMakeLists.txt" 138 | ((" /etc/") " ${CMAKE_INSTALL_PREFIX}/etc/")) 139 | ;(delete-file "src/dynarec/arm64_printer.c") 140 | ;(delete-file "src/dynarec/last_run.txt") 141 | (delete-file "src/wrapped/generated/functions_list.txt") 142 | ;(delete-file-recursively "src/wrapped/generated") 143 | (delete-file-recursively "x64lib") 144 | )) 145 | )) 146 | (build-system cmake-build-system) 147 | (arguments 148 | (list 149 | ;; Nearly all the tests fail in our build environment. 150 | ;#:tests? #f 151 | #:configure-flags 152 | #~(append (cond (#$(target-aarch64?) 153 | (list "-DARM_DYNAREC=ON" 154 | "-DPAGE16K=ON" 155 | ;"-DRPI5ARM64=ON" 156 | )) 157 | (#$(target-x86-64?) 158 | (list "-DLD80BITS=ON" 159 | "-DNOALIGN=ON")) 160 | (#$(target-riscv64?) 161 | (list "-DRV64=ON" 162 | "-DRV64_DYNAREC=ON")) 163 | (#$(target-ppc64le?) 164 | (list "-DPPC64LE=ON")) 165 | (#t '())) 166 | (list "-DNOGIT=ON" 167 | "-DSAVE_MEM=ON" 168 | ;; Don't install vendored libraries. 169 | "-DNO_LIB_INSTALL=ON")) 170 | #:phases 171 | #~(modify-phases %standard-phases 172 | (add-after 'unpack 'adjust-version-number 173 | (lambda _ 174 | (substitute* "src/build_info.c" 175 | (("nogit") "")))) 176 | (replace 'check 177 | (lambda* (#:key tests? #:allow-other-keys) 178 | (when tests? 179 | (invoke "./box64" "-v")))) 180 | (replace 'install 181 | (lambda _ 182 | (install-file "box64" (string-append #$output "/bin"))))))) 183 | (native-inputs 184 | (list python-minimal)) 185 | (home-page "https://box86.org/") 186 | (synopsis "Linux Userspace x86_64 Emulator") 187 | (description "Box64 lets you run x86_64 Linux programs (such as games) on 188 | non-x86_64 Linux systems, like ARM (host system needs to be 64bit 189 | little-endian).") 190 | (supported-systems '("x86_64-linux" "aarch64-linux" 191 | "riscv64-linux" "powerpc64le-linux")) 192 | (license license:expat))) 193 | -------------------------------------------------------------------------------- /wip/busybox.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2024 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip busybox) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix build-system gnu) 21 | #:use-module (guix download) 22 | #:use-module (guix packages) 23 | #:use-module (guix utils) 24 | #:use-module (guix gexp) 25 | #:use-module (gnu packages bootstrap) 26 | #:use-module (gnu packages busybox)) 27 | 28 | (define-public busybox-boot0 29 | (package 30 | (inherit busybox) 31 | (name "busybox-boot0") 32 | (arguments 33 | (substitute-keyword-arguments (package-arguments busybox) 34 | ((#:guile _ #f) %bootstrap-guile) 35 | ((#:implicit-inputs? _ #t) #f) 36 | ((#:tests? _ #t) #f) ; TODO: Later 37 | ((#:phases phases #~%standard-phases) 38 | #~(modify-phases #$phases 39 | #;(replace 'configure 40 | (lambda* (#:key make-flags #:allow-other-keys) 41 | (apply invoke "make" "defconfig" make-flags))) 42 | #;(add-before 'configure 'pre-configure 43 | (lambda _ 44 | (substitute* "Makefile" 45 | ((" gcc") " x86_64-guix-linux-gnu-gcc")))) 46 | (replace 'build 47 | (lambda* (#:key make-flags #:allow-other-keys) 48 | (apply invoke "make" "busybox" make-flags))) 49 | )) 50 | )) 51 | (native-inputs 52 | `( 53 | ("binutils" ,(@@ (gnu packages commencement) binutils-boot0)) ; binutils-mesboot misses ld? 54 | ("coreutils" ,(@@ (gnu packages commencement) coreutils-mesboot)) 55 | ("findutils" ,(@@ (gnu packages commencement) findutils-boot0)) 56 | ("sed" ,(@@ (gnu packages commencement) sed-mesboot)) 57 | ("bison" ,(@@ (gnu packages commencement) bison-boot0)) 58 | ("flex" ,(@@ (gnu packages commencement) flex-boot0)) 59 | ("bzip2" ,(@@ (gnu packages commencement) bzip2-boot0)) ; need bzip2 compression 60 | ;("libc" ,(@@ (gnu packages commencement) glibc-mesboot)) 61 | ("libc" ,(@@ (gnu packages commencement) glibc-final-with-bootstrap-bash)) 62 | ;("make" ,(@@ (gnu packages commencement) gnu-make-mesboot0)) ; hardcoded /bin/sh from package 63 | ("make" ,(@@ (gnu packages commencement) gnu-make-boot0)) 64 | ;("kernel-headers" ,((@@ (gnu packages commencement) kernel-headers-boot0))) 65 | ;("tcc" ,(@@ (gnu packages commencement) tcc-boot0)) 66 | ;("gcc" ,(@@ (gnu packages commencement) gcc-boot0)) 67 | ("gcc" ,(@@ (gnu packages commencement) gcc-boot0-intermediate-wrapped)) 68 | ;("bash" ,(@@ (gnu packages commencement) gash-boot)) 69 | ("bash" ,(@@ (gnu packages commencement) bash-mesboot)) 70 | ("coreutils" ,(@@ (gnu packages commencement) gash-utils-boot)) 71 | ("bootar" ,(@@ (gnu packages commencement) bootar)) ; bzip2 (decompression only), gzip, xz, tar 72 | )) 73 | )) 74 | -------------------------------------------------------------------------------- /wip/clangen.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2024 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip clangen) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix download) 22 | #:use-module (guix packages) 23 | #:use-module (guix utils) 24 | #:use-module (guix gexp) 25 | #:use-module (guix build-system pyproject) 26 | #:use-module (guix build-system python) 27 | #:use-module (gnu packages check) 28 | #:use-module (gnu packages compression) 29 | #:use-module (gnu packages fontutils) 30 | #:use-module (gnu packages pkg-config) 31 | #:use-module (gnu packages python) 32 | #:use-module (gnu packages python-build) 33 | #:use-module (gnu packages python-check) 34 | #:use-module (gnu packages python-crypto) 35 | #:use-module (gnu packages python-web) 36 | #:use-module (gnu packages python-xyz) 37 | #:use-module (gnu packages sdl)) 38 | 39 | ;; TODO: Replace fonts in resources/fonts, mostly notosans 40 | ;; Needs a newer poetry 41 | (define-public clangen 42 | (package 43 | (name "clangen") 44 | (version "0.11.1") 45 | (source 46 | (origin 47 | (method git-fetch) 48 | (uri (git-reference 49 | (url "https://github.com/ClanGenOfficial/clangen") 50 | (commit (string-append "v" version)))) 51 | (file-name (git-file-name name version)) 52 | (sha256 53 | (base32 "1qnzqa7s3r2ji52jdh5kpi75rnylx7a373l60k3qdzis0j19y4dd")) 54 | )) 55 | (build-system pyproject-build-system) 56 | (arguments 57 | (list #:build-backend "poetry" 58 | #:phases 59 | #~(modify-phases %standard-phases 60 | (add-after 'unpack 'write-version-ini 61 | (lambda _ 62 | (with-output-to-file "version.ini" 63 | (lambda () (string-append "[DEFAULT]\n" 64 | "version_number=~a\n" 65 | "upstream=GNU Guix\n") 66 | #$(package-version this-package))))) 67 | (replace 'build 68 | (lambda _ 69 | (invoke "poetry" "run" 70 | "python3" "-m" "PyInstaller" 71 | "Clangen.spec")))))) 72 | (inputs 73 | (list python-pgpy 74 | python-platformdirs 75 | python-pygame-ce 76 | python-pygame-gui 77 | python-pyinstaller 78 | ;python-pypresence ; discord? 79 | python-requests 80 | python-strenum 81 | python-ujson)) 82 | (native-inputs 83 | (list poetry)) 84 | (home-page "https://clangen.io/") 85 | (synopsis "Warrior Cats fan game") 86 | (description "Clangen is a fan-edit of the Warrior Cat Clangen game.") 87 | (license license:mpl2.0))) 88 | 89 | (define-public python-pygame-ce 90 | (package 91 | (name "python-pygame-ce") 92 | (version "2.4.1") 93 | (source 94 | (origin 95 | (method url-fetch) 96 | (uri (pypi-uri "pygame-ce" version)) 97 | (sha256 98 | (base32 "1w4wvg3ag54cihnabahbnypbkq9fr5fzlkvmsq7klqvw86hlma3h")))) 99 | (build-system pyproject-build-system) 100 | (arguments 101 | (list 102 | #:phases 103 | #~(modify-phases %standard-phases 104 | (add-after 'unpack 'dont-target-AVX2 105 | (lambda _ 106 | (substitute* "setup.py" 107 | (("should_use_avx2 = True") "should_use_avx2 = False"))))))) 108 | (native-inputs 109 | (list pkg-config python-cython)) 110 | (inputs 111 | (list freetype 112 | (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))) 113 | (home-page "https://pyga.me") 114 | (synopsis "Python Game Development") 115 | (description "Pygame is a library for the development of multimedia 116 | applications like video games using Python. It uses the SDL library and several 117 | other popular libraries to abstract the most common functions, making writing 118 | these programs a more intuitive task.") 119 | (properties `((tunable? . #t))) 120 | (license license:lgpl2.1))) 121 | 122 | ;; TODO: Unbundle fonts from pygame_gui/data 123 | (define-public python-pygame-gui 124 | (package 125 | (name "python-pygame-gui") 126 | (version "0.6.9") 127 | (source 128 | (origin 129 | (method git-fetch) 130 | (uri (git-reference 131 | (url "https://github.com/MyreMylar/pygame_gui") 132 | (commit (string-append "v_" (string-delete #\. version))))) 133 | (file-name (git-file-name name version)) 134 | (sha256 135 | (base32 "0s0i7rxw9fs451c9flakzsbzdyq85v33rjxq9ggxd89m9g8k8x91")))) 136 | (build-system pyproject-build-system) 137 | (arguments 138 | (list 139 | #:phases 140 | #~(modify-phases %standard-phases 141 | (add-before 'check 'pre-check 142 | (lambda _ 143 | (setenv "HOME" (getcwd))))))) 144 | (propagated-inputs 145 | (list python-i18n 146 | python-pygame-ce)) 147 | (native-inputs (list python-pytest python-pytest-benchmark)) 148 | (home-page "https://github.com/MyreMylar/pygame_gui") 149 | (synopsis "GUI module for pygame Community Edition") 150 | (description "Helps create GUIs for games made using pygame Community 151 | Edition. Features HTML-style text formatting, localization, theme files to 152 | control the look and a system to manage multiple windows of GUI stuff.") 153 | (license license:expat))) 154 | 155 | (define-public python-i18n 156 | (package 157 | (name "python-i18n") 158 | (version "0.3.9") 159 | (source 160 | (origin 161 | (method url-fetch) 162 | (uri (pypi-uri "python-i18n" version)) 163 | (sha256 164 | (base32 "1s74f7sgay30kj80pqx9aa74d0slwklfzjynzgmsgwsb6v9g75yz")))) 165 | (build-system pyproject-build-system) 166 | (arguments 167 | (list #:tests? #f)) ; Tests not included. 168 | (propagated-inputs 169 | (list python-pyyaml)) 170 | (home-page "https://github.com/tuvistavie/python-i18n") 171 | (synopsis "Translation library for Python") 172 | (description "This package provides a translation library for Python.") 173 | (license license:expat))) 174 | 175 | (define-public python-pyinstaller 176 | (package 177 | (name "python-pyinstaller") 178 | (version "6.1.0") 179 | (source 180 | (origin 181 | (method url-fetch) 182 | (uri (pypi-uri "pyinstaller" version)) 183 | (sha256 184 | (base32 "1vrqr23n6amgsd0p629bmf2x3nk5lsymhhkd98yvyi1k1z34jgcg")))) 185 | (build-system pyproject-build-system) 186 | (arguments 187 | (list 188 | #:phases 189 | #~(modify-phases %standard-phases 190 | (add-before 'check 'pre-check 191 | (lambda _ 192 | (substitute* "tests/functional/test_misc.py" 193 | (("/bin/sh") (which "sh")))))) 194 | #:test-flags 195 | #~(list "-k" 196 | (string-append "not test_automatic_reclassification_binary[onedir]" 197 | " and not test_pyi_splash[notkinter-onedir]" 198 | " and not test_pyi_splash[notkinter-onefile]" 199 | " and not test_pyi_splash[tkinter-onedir]" 200 | " and not test_pyi_splash[tkinter-onefile]" 201 | " and not test_ldconfig_cache" 202 | " and not test_metadata_searching")))) 203 | (propagated-inputs (list python-altgraph python-packaging 204 | python-pyinstaller-hooks-contrib 205 | python-setuptools)) 206 | (inputs (list zlib)) 207 | (native-inputs (list python-execnet python-psutil python-pytest)) 208 | (home-page "https://www.pyinstaller.org/") 209 | (synopsis 210 | "Bundle a Python application and all dependencies into a single package") 211 | (description 212 | "@code{PyInstaller} bundles a Python application and all its dependencies 213 | into a single package.") 214 | ;; GPL-2.0-or-later WITH Bootloader-exception, embeddable bits under Apache2. 215 | (license (list license:gpl2+ license:asl2.0 license:expat)))) 216 | 217 | (define-public python-pyinstaller-hooks-contrib 218 | (package 219 | (name "python-pyinstaller-hooks-contrib") 220 | (version "2023.11") 221 | (source 222 | (origin 223 | (method url-fetch) 224 | (uri (pypi-uri "pyinstaller-hooks-contrib" version)) 225 | (sha256 226 | (base32 "0zz7kc9wv83hqnq190nii1glvx3npv7sn71qmb6ijp56ajhaimsx")))) 227 | (build-system pyproject-build-system) 228 | (arguments 229 | (list #:tests? #f)) ; No tests. 230 | (home-page "https://github.com/pyinstaller/pyinstaller-hooks-contrib") 231 | (synopsis "Community maintained hooks for PyInstaller") 232 | (description "Community maintained hooks for @code{PyInstaller}") 233 | (license license:gpl2+))) 234 | -------------------------------------------------------------------------------- /wip/epr.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2021, 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip epr) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix build-system python)) 23 | 24 | (define-public epr 25 | (package 26 | (name "epr") 27 | (version "2.4.13") 28 | (source 29 | (origin 30 | (method url-fetch) 31 | (uri (pypi-uri "epr-reader" version)) 32 | (sha256 33 | (base32 "04h2jnknk3w8z5qyj52z83mjjqvqg23cg60jmbvcn1z3af03mz79")))) 34 | (build-system python-build-system) 35 | (arguments '(#:tests? #f)) ; no tests. 36 | (home-page "https://github.com/wustho/epr") 37 | (synopsis "CLI Epub Reader") 38 | (description 39 | "Terminal/CLI Epub reader with features: 40 | @enumerate 41 | @item Remembers last read file (just run epr without any argument) 42 | @item Remembers last reading state for each file (per file saved state written 43 | to @code{$HOME/.config/epr/config} or @code{$HOME/.epr} respectively depending 44 | on availability) 45 | @item Adjustable text area width 46 | @item Adaptive to terminal resize 47 | @item Supports EPUB3 (no audio support) 48 | @item Secondary vim-like bindings 49 | @item Supports opening images 50 | @end enumerate") 51 | (license license:expat))) 52 | -------------------------------------------------------------------------------- /wip/gotosocial.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip gotosocial) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix gexp) 21 | #:use-module (guix utils) 22 | #:use-module (guix packages) 23 | #:use-module (guix download) 24 | #:use-module (guix build-system go) 25 | #:use-module (gnu packages) 26 | #:use-module (gnu packages golang) 27 | #:use-module (gnu packages golang-build) 28 | #:use-module (gnu packages golang-check) 29 | #:use-module (gnu packages golang-xyz) 30 | #:use-module (gnu packages golang-web) 31 | #:use-module (gnu packages sqlite) 32 | #:use-module (gnu packages syncthing) 33 | #:use-module (dfsg main golang)) 34 | 35 | ;;; 36 | ;;; 37 | ;;; 38 | 39 | (define-public gotosocial 40 | (package 41 | (name "gotosocial") 42 | (version "0.9.0") 43 | (source (origin 44 | (method url-fetch/tarbomb) 45 | (uri (string-append "https://github.com/superseriousbusiness" 46 | "/gotosocial/releases/download/v" version 47 | "/gotosocial-" version "-source-code.tar.gz")) 48 | (sha256 49 | (base32 "1a1sjm0x758wpwpi3rikbm0ipnr5waxk81zx8rgpp3z9b0n4cy9b")) 50 | ;(snippet 51 | ; #~(begin 52 | ; (use-modules (guix build utils)) 53 | ; (delete-file-recursively "vendor") 54 | ; )) 55 | )) 56 | (build-system go-build-system) 57 | (arguments 58 | `(#:install-source? #f 59 | #:unpack-path "github.com/superseriousbusiness/gotosocial" 60 | #:import-path "github.com/superseriousbusiness/gotosocial/cmd/gotosocial" 61 | #:phases 62 | (modify-phases %standard-phases 63 | (replace 'check 64 | (lambda* (#:key tests? unpack-path #:allow-other-keys) 65 | (when tests? 66 | (with-directory-excursion (string-append "src/" unpack-path) 67 | (setenv "GTS_DB_TYPE" "sqlite") 68 | (setenv "GTS_DB_ADDRESS" ":memory:") 69 | (invoke "go" "test" "-tags" 70 | "'netgo osusergo static_build kvformat'" 71 | "-count" "1" "./...") 72 | (invoke "sh" "./test/envparsing.sh"))))) 73 | (add-after 'install 'install-completions 74 | (lambda* (#:key outputs #:allow-other-keys) 75 | (let* ((out (assoc-ref outputs "out")) 76 | (bash (string-append 77 | out "/etc/bash_completion.d/gotosocial")) 78 | (fish (string-append 79 | out "/share/vendor_completions.d/gotosocial.fish")) 80 | (zsh (string-append 81 | out "/share/zsh/site-functions/_gotosocial"))) 82 | (mkdir-p (dirname bash)) 83 | (mkdir-p (dirname fish)) 84 | (mkdir-p (dirname zsh)) 85 | (with-output-to-file bash 86 | (lambda _ 87 | (invoke (string-append out "/bin/gotosocial") 88 | "completion" "bash"))) 89 | (with-output-to-file fish 90 | (lambda _ 91 | (invoke (string-append out "/bin/gotosocial") 92 | "completion" "fish"))) 93 | (with-output-to-file zsh 94 | (lambda _ 95 | (invoke (string-append out "/bin/gotosocial") 96 | "completion" "zsh")))))) 97 | (add-after 'install 'install-assets 98 | (lambda* (#:key inputs outputs #:allow-other-keys) 99 | (let ((out (assoc-ref outputs "out")) 100 | (web (assoc-ref inputs "gotosocial-web-assets.tar.gz"))) 101 | (mkdir-p (string-append out "/share/gotosocial")) 102 | (with-directory-excursion (string-append out "/share/gotosocial") 103 | (invoke "tar" "xvf" web)))))))) 104 | (inputs 105 | (list 106 | sqlite 107 | ;codeberg.org/gruf/go-bytesize v1.0.2 108 | ;codeberg.org/gruf/go-byteutil v1.1.2 109 | ;codeberg.org/gruf/go-cache/v3 v3.3.3 110 | ;codeberg.org/gruf/go-debug v1.3.0 111 | ;codeberg.org/gruf/go-errors/v2 v2.2.0 112 | ;codeberg.org/gruf/go-fastcopy v1.1.2 113 | ;codeberg.org/gruf/go-kv v1.6.1 114 | ;codeberg.org/gruf/go-logger/v2 v2.2.1 115 | ;codeberg.org/gruf/go-mutexes v1.1.5 116 | ;codeberg.org/gruf/go-runners v1.6.1 117 | ;codeberg.org/gruf/go-sched v1.2.3 118 | ;codeberg.org/gruf/go-store/v2 v2.2.2 119 | 120 | ;github.com/KimMachineGun/automemlimit v0.2.6 121 | ;github.com/abema/go-mp4 v0.10.1 122 | ;github.com/buckket/go-blurhash v1.1.0 123 | go-github-com-coreos-go-oidc-v3 ; v3.5.0 124 | go-github-com-disintegration-imaging ; v1.6.2 125 | ;github.com/gin-contrib/cors v1.4.0 126 | ;github.com/gin-contrib/gzip v0.0.6 127 | ;github.com/gin-contrib/sessions v0.0.5 128 | ;github.com/gin-gonic/gin v1.9.0 129 | go-github-com-go-fed-httpsig ; v1.1.0 130 | ;github.com/go-playground/form/v4 v4.2.0 131 | go-github-com-go-playground-validator-v10 ; v10.14.0 132 | go-github-com-google-uuid ; v1.3.0 133 | go-github-com-gorilla-feeds ; v1.1.1 134 | go-github-com-gorilla-websocket ; v1.5.0 135 | ;github.com/h2non/filetype v1.1.3 136 | go-github-com-jackc-pgconn ; v1.14.0 137 | go-github-com-jackc-pgx-v5 ; v5.3.1 138 | go-github-com-microcosm-cc-bluemonday ; v1.0.23 139 | go-github-com-miekg-dns ; v1.1.54 140 | ;go-github-com-minio-minio-go-v7 ; v7.0.53 141 | go-github-com-mitchellh-mapstructure ; v1.5.0 142 | go-github-com-oklog-ulid ; v1.3.1 143 | go-github-com-spf13-cobra ; v1.7.0 144 | go-github-com-spf13-viper ; v1.15.0 145 | go-github-com-stretchr-testify ; v1.8.2 146 | ;github.com/superseriousbusiness/activity v1.3.0-gts 147 | ;github.com/superseriousbusiness/exif-terminator v0.5.0 148 | ;github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 149 | go-github-com-tdewolff-minify-v2 ; v2.12.5 150 | ;github.com/ulule/limiter/v3 v3.11.1 151 | ;github.com/uptrace/bun v1.1.13 152 | ;github.com/uptrace/bun/dialect/pgdialect v1.1.13 153 | ;github.com/uptrace/bun/dialect/sqlitedialect v1.1.13 154 | ;github.com/uptrace/bun/extra/bunotel v1.1.12 155 | ;github.com/wagslane/go-password-validator v0.3.0 156 | go-github-com-yuin-goldmark ; 1.5.4 157 | 158 | ;go.opentelemetry.io/otel v1.14.0 159 | ;go.opentelemetry.io/otel/exporters/jaeger v1.14.0 160 | ;go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 161 | ;go.opentelemetry.io/otel/sdk v1.14.0 162 | ;go.opentelemetry.io/otel/trace v1.14.0 163 | ;go.uber.org/automaxprocs v1.5.2 164 | go-golang-org-x-crypto ; v0.9.0 165 | go-golang-org-x-exp ;-0.0.0-20220613132600-b0d781184e0d 166 | go-golang-org-x-image ; v0.7.0 167 | go-golang-org-x-net ; v0.10.0 168 | go-golang-org-x-oauth2 ; 0.8.0 169 | go-golang-org-x-text ; v0.9.0 170 | ;gopkg.in/mcuadros/go-syslog.v2 v2.3.0 171 | go-gopkg-in-yaml-v3 ; v3.0.1 172 | go-modernc-org-sqlite ; v1.22.1 173 | go-mvdan-cc-xurls-v2 ; v2.5.0 174 | )) 175 | (native-inputs 176 | `(("gotosocial-web-assets.tar.gz" 177 | ;; Use the pre-generated web assets from upstream instead 178 | ;; of trying to work with javascript. 179 | ,(origin 180 | (method url-fetch) 181 | (uri (string-append "https://github.com/superseriousbusiness" 182 | "/gotosocial/releases/download/v" version 183 | "/gotosocial_" version "_web-assets.tar.gz")) 184 | (sha256 185 | (base32 "1yxyl8q0dqpv3cqzxj0anh8rskk3rmw9mjnjkm4svc0vgaph1y1s")))))) 186 | (home-page "https://docs.gotosocial.org/") 187 | (synopsis "ActivityPub server powered by Go") 188 | (description 189 | "GoToSocial is an @@url{https://activitypub.rocks/,ActivityPub} social 190 | network server, written in Golang.") 191 | (license (list 192 | license:silofl1.1 ; web/assets/{Fork_Awesome,NotoSans*.ttf} 193 | license:agpl3)))) 194 | -------------------------------------------------------------------------------- /wip/ly.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip ly) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix download) 22 | #:use-module (guix packages) 23 | #:use-module (guix utils) 24 | #:use-module (guix build-system gnu) 25 | #:use-module (gnu packages linux) 26 | #:use-module (gnu packages ncurses) 27 | #:use-module (gnu packages xorg)) 28 | 29 | (define-public ly 30 | (package 31 | (name "ly") 32 | (version "0.5.0") 33 | (source 34 | (origin 35 | (method git-fetch) 36 | (uri (git-reference 37 | (url "https://github.com/cylgom/ly") 38 | (commit (string-append "v" version)))) 39 | (file-name (git-file-name name version)) 40 | (sha256 41 | (base32 42 | "04cw5ihr5inaxdwiz1302xvw5d0jibh49sin55i1w19045hil7yy")))) 43 | (build-system gnu-build-system) 44 | (arguments 45 | '(#:tests? #f ; no tests 46 | #:make-flags 47 | (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) 48 | #:phases 49 | (modify-phases %standard-phases 50 | (delete 'configure) ; no configure script 51 | (add-after 'unpack 'unpack-submodules 52 | (lambda* (#:key inputs #:allow-other-keys) 53 | (for-each 54 | (lambda (submodule) 55 | (copy-recursively (assoc-ref inputs submodule) 56 | (string-append "sub/" submodule))) 57 | '("argoat" "configator" "ctypes" "dragonfail" "termbox_next")) 58 | #t)) 59 | (add-after 'unpack 'patch-sources 60 | (lambda* (#:key inputs #:allow-other-keys) 61 | (let ((tput (string-append 62 | (assoc-ref inputs "ncurses") "/bin/tput"))) 63 | (substitute* "makefile" 64 | (("/usr") "")) 65 | (substitute* "src/main.c" 66 | (("tput ") (string-append tput " "))) 67 | #t))) 68 | (replace 'build 69 | (lambda _ 70 | (invoke "make" "final")))))) 71 | (native-inputs 72 | `(;; The following are all submodules for ly: 73 | ("argoat" 74 | ,(origin 75 | (method git-fetch) 76 | (uri (git-reference 77 | (url "https://github.com/cylgom/argoat") 78 | (commit "36c41f09ecc2a10c9acf35e4194e08b6fa10cf45"))) 79 | (file-name "argoat-for-ly") 80 | (sha256 81 | (base32 82 | "14v01fwm2bcgqh5b25iqfy4dm8pap8r49r1yfsr5c9j3b3hfn4yg")))) 83 | ("configator" 84 | ,(origin 85 | (method git-fetch) 86 | (uri (git-reference 87 | (url "https://github.com/cylgom/configator") 88 | (commit "8227b3a835bf4c7e50a57e4ad6aff620ba0dc349"))) 89 | (file-name "configator-for-ly") 90 | (sha256 91 | (base32 92 | "00vd236x987b9r71mqz877aad9mc4l3hh8fvzwjirsjakj01szkf")))) 93 | ("ctypes" 94 | ,(origin 95 | (method git-fetch) 96 | (uri (git-reference 97 | (url "https://github.com/cylgom/ctypes") 98 | (commit "5dd979d3644ab0c85ca14e72b61e6d3d238d432b"))) 99 | (file-name "ctypes-for-ly") 100 | (sha256 101 | (base32 102 | "0faahn2wgckhf3pyn9za594idy9gc5fxdm02ghn6mm3r4fk34xyx")))) 103 | ("dragonfail" 104 | ,(origin 105 | (method git-fetch) 106 | (uri (git-reference 107 | (url "https://github.com/cylgom/dragonfail") 108 | (commit "6b40d1f8b7f6dda9746e688666af623dfbcceb94"))) 109 | (file-name "dragonfail-for-ly") 110 | (sha256 111 | (base32 112 | "0slsqw6q859vg0h0w92mmjwwh8m65m09h7pq59p90ixrga5q7jch")))) 113 | ("termbox_next" 114 | ,(origin 115 | (method git-fetch) 116 | (uri (git-reference 117 | (url "https://github.com/cylgom/termbox_next") 118 | (commit "7b85905531bf9e5908c67276dac55d3241361f20"))) 119 | (file-name "termbox_next-for-ly") 120 | (sha256 121 | (base32 122 | "0b43453h3w4h6y1xmswbnl9y0vxilnqvsmgqfbpvca3l79678mfq")))))) 123 | (inputs 124 | `(("libxcb" ,libxcb) 125 | ("linux-pam" ,linux-pam) 126 | ("ncurses" ,ncurses))) 127 | (home-page "https://github.com/cylgom/ly") 128 | (synopsis "TUI display manager") 129 | (description "Ly is a lightweight TUI (ncurses-like) display manager for 130 | Linux and BSD. Ly should work with any X desktop environment, and provides 131 | basic wayland support (sway works very well, for example).") 132 | (license license:wtfpl2))) 133 | 134 | (define-public ly-git 135 | (let ((commit "aa25ede8f95127a4e00df7b2752770722ecf5821") 136 | (revision "1")) 137 | (package 138 | (inherit ly) 139 | (name "ly-git") 140 | (version (git-version (package-version ly) revision commit)) 141 | (source 142 | (origin 143 | (method git-fetch) 144 | (uri (git-reference 145 | (url "https://github.com/cylgom/ly") 146 | (commit commit))) 147 | (file-name (git-file-name name version)) 148 | (sha256 149 | (base32 150 | "0xv2zxp60khqrmy6349qywpp4fnn6dadwlp1pvyisq1a9lxzpsmq"))))))) 151 | -------------------------------------------------------------------------------- /wip/mars.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2020, 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip mars) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix gexp) 23 | #:use-module (guix utils) 24 | #:use-module (guix build-system ant) 25 | #:use-module (gnu packages java)) 26 | 27 | ;; This package should just be "mars" but there's a name collision with a game. 28 | (define-public mars-mips 29 | (package 30 | (name "mars-mips") 31 | (version "4.5") 32 | (source 33 | (origin 34 | (method url-fetch) 35 | (uri (string-append "https://courses.missouristate.edu/KenVollmar/" 36 | "mars/MARS_" 37 | (string-replace-substring version "." "_") 38 | "_Aug2014/Mars" 39 | (string-replace-substring version "." "_") 40 | ".jar")) 41 | (sha256 42 | (base32 43 | "15kh1fahkkbbf4wvb6ijzny4fi5dh4pycxyzp5325dm2ddkhnd5c")) 44 | (modules '((guix build utils))) 45 | (snippet 46 | '(begin 47 | (for-each delete-file (find-files "." "\\.class$")))))) 48 | (build-system ant-build-system) 49 | (arguments 50 | (list 51 | #:tests? #f ; No test target 52 | #:jdk openjdk9 ; As recommended by upstream 53 | #:jar-name "Mars.jar" 54 | #:source-dir "." 55 | #:main-class "Mars" 56 | #:phases 57 | #~(modify-phases %standard-phases 58 | ;; This should be in a snippet, but I can't figure out how to unpack it. 59 | (add-after 'unpack 'remove-vendored-class-files 60 | (lambda _ 61 | (for-each delete-file (find-files "." "\\.class$")))) 62 | (add-after 'unpack 'make-code-utf8-safe 63 | (lambda _ 64 | (with-fluids ((%default-port-encoding "ISO-8859-1")) 65 | (substitute* "src/mars/tools/DigitalLabSim.java" 66 | (("Didier Teifreto LIFC Universit.* de franche-Comt.* www\\.lifc\\.univ-fcomte\\.fr/~teifreto") 67 | "Didier Teifreto LIFC Universite de franche-Comte www.lifc.univ-fcomte.fr/~teifreto")) 68 | (substitute* "src/mars/tools/MipsXray.java" 69 | (("M.*rcio Roberto") "Marcio Roberto") 70 | (("Fabr.*cio Vivas") "Fabricio Vivas") 71 | (("Fl.*vio Cardeal") "Flavio Cardeal") 72 | (("F.*bio L.*cio") "Fabio Lucio")) 73 | (substitute* "src/mars/venus/MessagesPane.java" 74 | (("Ricardo Fern.*ndez Pascual") "Ricardo Fernandez Pascual"))))) 75 | (replace 'install-license-files 76 | (lambda* (#:key outputs #:allow-other-keys) 77 | (install-file "src/MARSlicense.txt" 78 | (string-append (assoc-ref outputs "out") 79 | "/share/doc/mars-" #$version))))))) 80 | (home-page "https://courses.missouristate.edu/KenVollmar/MARS/") 81 | (synopsis "IDE for MIPS Assembly Language Programming") 82 | (description 83 | "MARS is a lightweight @acronym{IDE, Interactive Development Environment} 84 | for programming in MIPS assembly language, intended for educational-level use 85 | with Patterson and Hennessy's Computer Organization and Design. It has: 86 | @enumerate 87 | @item GUI with point-and-click control and integrated editor. 88 | @item Easily editable register and memory values, similar to a spreadsheet. 89 | @item Display values in hexadecimal or decimal. 90 | @item Command line mode for instructors to test and evaluate many programs easily. 91 | @item Floating point registers, coprocessor1 and coprocessor2. Standard tool: 92 | bit-level view and edit of 32-bit floating point registers. 93 | @item Variable-speed single-step execution. 94 | @item \"Tool\" utility for MIPS control of simulated devices. Standard tool: 95 | Cache performance analysis tool. 96 | @item Single-step backwards. 97 | @end enumerate") 98 | (license license:expat))) 99 | -------------------------------------------------------------------------------- /wip/microblog-pub.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2023 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip microblog-pub) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix git-download) 21 | #:use-module (guix download) 22 | #:use-module (guix packages) 23 | #:use-module (guix utils) 24 | #:use-module (guix build-system pyproject) 25 | #:use-module (guix build-system python) 26 | #:use-module (gnu packages check) 27 | #:use-module (gnu packages compression) 28 | #:use-module (gnu packages databases) 29 | #:use-module (gnu packages markup) 30 | #:use-module (gnu packages python-build) 31 | #:use-module (gnu packages python-check) 32 | #:use-module (gnu packages python-crypto) 33 | #:use-module (gnu packages python-web) 34 | #:use-module (gnu packages python-xyz) 35 | #:use-module (gnu packages sphinx) 36 | #:use-module (gnu packages time)) 37 | 38 | (define-public microblog-pub 39 | (package 40 | (name "microblog-pub") 41 | (version "2") 42 | (source 43 | (origin 44 | (method git-fetch) 45 | (uri (git-reference 46 | (url "https://git.sr.ht/~tsileo/microblog.pub") 47 | (commit (string-append "v" version)))) 48 | (file-name (git-file-name name version)) 49 | (sha256 50 | (base32 51 | "193w448cynjhxy73w0p8w1548m0c8iiycrj7jv8c2aidazq16aa8")))) 52 | (build-system pyproject-build-system) 53 | (inputs 54 | (list 55 | python-aiosqlite 56 | python-alembic 57 | python-asgiref 58 | python-bcrypt 59 | python-bleach 60 | python-blurhash 61 | python-boussole 62 | python-brotli 63 | python-beautifulsoup4 64 | python-cachetools 65 | python-dateutil 66 | python-emoji 67 | python-fastapi 68 | ;python-feedgen 69 | python-greenlet 70 | python-humanize 71 | python-invoke 72 | python-itsdangerous 73 | python-jinja2 74 | python-html2text 75 | python-html5lib 76 | python-httpx 77 | python-loguru 78 | python-mf2py 79 | python-mistletoe 80 | python-multipart 81 | python-pillow 82 | python-pebble 83 | python-prompt-toolkit 84 | python-pycryptodome 85 | python-pygments 86 | python-pyld 87 | python-sqlalchemy 88 | ;python-supervisor 89 | python-tabulate 90 | python-tomli 91 | python-tomli-w 92 | python-uvicorn 93 | )) 94 | (native-inputs 95 | (list 96 | poetry 97 | python-poetry-core 98 | 99 | python-black 100 | python-boussole 101 | python-flake8 102 | python-invoke 103 | python-isort 104 | python-factory-boy 105 | python-libsass 106 | python-mypy 107 | python-pytest 108 | python-pytest-asyncio 109 | ;python-respx 110 | ;python-sqlalchemy2-stubs 111 | ;python-types-bleach 112 | ;python-types-cachetools 113 | ;python-types-dateutil 114 | ;python-types-emoji 115 | ;python-types-markdown 116 | ;python-types-pillow 117 | ;python-types-requests 118 | ;python-types-tabulate 119 | )) 120 | (home-page "https://sr.ht/~tsileo/microblog.pub/") 121 | (synopsis "Self-hosted, single-user, ActivityPub powered microblog") 122 | (description "mircroblog.pub is a self-hosted, single-user, ActivityPub 123 | powered microblog.") 124 | (license license:agpl3))) 125 | 126 | ;; Tests not included in pypi release 127 | (define-public python-boussole 128 | (package 129 | (name "python-boussole") 130 | (version "2.0.0") 131 | (source (origin 132 | (method url-fetch) 133 | (uri (pypi-uri "boussole" version)) 134 | (sha256 135 | (base32 136 | "0bqs16fhlqz17n0xfyafsnblrmdqfxmb2wcxcrwcffc3d6073474")))) 137 | (build-system python-build-system) 138 | (propagated-inputs 139 | (list python-click 140 | python-colorama 141 | python-colorlog 142 | python-libsass 143 | python-pyaml 144 | python-watchdog)) 145 | (native-inputs 146 | (list python-flake8 147 | python-livereload 148 | python-packaging 149 | python-pytest 150 | python-sphinx 151 | python-sphinx-rtd-theme 152 | python-twine)) 153 | (home-page "https://github.com/sveetch/boussole") 154 | (synopsis 155 | "Commandline interface to build Sass projects using libsass-python") 156 | (description 157 | "Commandline interface to build Sass projects using libsass-python") 158 | (license license:expat))) 159 | -------------------------------------------------------------------------------- /wip/pkgsrc.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright © 2022 Efraim Flashner 2 | ;;; 3 | ;;; This file is an addendum to GNU Guix. 4 | ;;; 5 | ;;; GNU Guix is free software; you can redistribute it and/or modify it 6 | ;;; under the terms of the GNU General Public License as published by 7 | ;;; the Free Software Foundation; either version 3 of the License, or (at 8 | ;;; your option) any later version. 9 | ;;; 10 | ;;; GNU Guix is distributed in the hope that it will be useful, but 11 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ;;; GNU General Public License for more details. 14 | ;;; 15 | ;;; You should have received a copy of the GNU General Public License 16 | ;;; along with GNU Guix. If not, see . 17 | 18 | (define-module (wip pkgsrc) 19 | #:use-module ((guix licenses) #:prefix license:) 20 | #:use-module (guix download) 21 | #:use-module (guix packages) 22 | #:use-module (guix utils) 23 | #:use-module (guix gexp) 24 | #:use-module (guix build-system gnu) 25 | #:use-module (gnu packages base) 26 | #:use-module (gnu packages bash) 27 | #:use-module (gnu packages commencement) 28 | #:use-module (gnu packages compression) 29 | #:use-module (gnu packages gawk) 30 | #:use-module (srfi srfi-1) 31 | ) 32 | 33 | (define-public pkgsrc 34 | (package 35 | (name "pkgsrc") 36 | (version "2021Q4") 37 | (outputs '("out" "pkg")) 38 | (source 39 | (origin 40 | (method url-fetch) 41 | (uri (string-append "https://cdn.netbsd.org/pub/pkgsrc" 42 | "/pkgsrc-" version 43 | "/pkgsrc-" version ".tar.xz")) 44 | (sha256 45 | (base32 "01d2spynmhnd38knnjbzfbcqnijwmkyayss5kqrih7wh7h2bfsz4")))) 46 | (build-system gnu-build-system) 47 | (arguments 48 | `(#:tests? #f ; no tests 49 | #:implicit-inputs? #f 50 | #:phases 51 | (modify-phases %standard-phases 52 | (delete 'configure) ; no configure script 53 | (delete 'patch-generated-file-shebangs) 54 | (replace 'build 55 | (lambda* (#:key inputs outputs parallel-build? #:allow-other-keys) 56 | (setenv "_PKGSRCDIR" (getcwd)) 57 | (with-directory-excursion "bootstrap" 58 | (setenv "SH" (search-input-file inputs "/bin/sh")) 59 | (setenv "CC" ,(cc-for-target)) 60 | (setenv "CONFIG_SHELL" (search-input-file inputs "/bin/sh")) 61 | (setenv "ID" (search-input-file inputs "/bin/id")) 62 | 63 | (mkdir-p (string-append (assoc-ref outputs "pkg") "/bin")) 64 | (substitute* "bootstrap" 65 | (("-o \\$user -g \\$group ") "")) 66 | ;(substitute* "shells/mksh/files/main.c" 67 | ; (("/usr/sbin") "")) 68 | (invoke "sh" "bootstrap" 69 | ;"--full" ; no mksh 70 | "--unprivileged" 71 | "--prefer-pkgsrc" "yes" 72 | "--prefix" (assoc-ref outputs "pkg") 73 | (if parallel-build? 74 | (string-append "--make-jobs=" (number->string (parallel-job-count))) 75 | `()) 76 | ;; Try without cwrappers 77 | ;"--cwrappers=no" 78 | )))) 79 | (replace 'install 80 | (lambda* (#:key outputs #:allow-other-keys) 81 | (copy-recursively "." (assoc-ref outputs "out")))) 82 | ))) 83 | (inputs 84 | (list 85 | ;bash-minimal 86 | )) 87 | (native-inputs 88 | ((@@ (gnu packages commencement) %bootstrap-inputs+toolchain) 89 | ;`(("libc" ,(@@ (gnu packages commencement) glibc-mesboot)) 90 | ; ,@(alist-delete "libc" ((@@ (gnu packages commencement) %boot-mesboot3-inputs))) 91 | ;`(("bash" ,(@@ (gnu packages commencement) bash-mesboot)) 92 | ; ("binutils" ,(@@ (gnu packages commencement) binutils-mesboot1)) 93 | ; ("coreutils" ,(@@ (gnu packages commencement) coreutils-mesboot0)) 94 | ; ("gawk" ,(@@ (gnu packages commencement) gawk-mesboot)) 95 | ; ("grep" ,(@@ (gnu packages commencement) grep-mesboot)) 96 | ; ("make" ,(@@ (gnu packages commencement) gnu-make-mesboot)) 97 | ; ("sed" ,(@@ (gnu packages commencement) sed-mesboot)) 98 | ; ("tar" ,(@@ (gnu packages commencement) tar-mesboot)) 99 | ; ,@(fold alist-delete ((@@ (gnu packages commencement) %boot-mesboot0-inputs)) 100 | ; '("bash" "binutils" "bootar" "coreutils" "gash" 101 | ; "gawk" "grep" "guile" "make" "sed" "tar")) 102 | ; ("xz" ,xz) 103 | ) 104 | ;(%boot-mesboot1-inputs) ; already a list 105 | ;(list 106 | ; ;(list gcc-toolchain "static") 107 | ; ;%binutils-static 108 | ; (static-package binutils) 109 | ; (static-package coreutils) 110 | ; (static-package grep) 111 | ; (static-package sed) 112 | ; ;coreutils-mesboot0 113 | ; ;(%boot-mesboot1-inputs) ; already a list 114 | ; static-bash 115 | ; static-gawk 116 | ; tar 117 | ; xz 118 | ; ) 119 | ) 120 | (home-page "https://pkgsrc.org/") 121 | (synopsis "") 122 | (description "Pkgsrc is a framework for managing third-party software on 123 | UNIX-like systems. It is very versatile and configurable, supporting building 124 | packages for an arbitrary installation prefix, allowing multiple branches to 125 | coexist on one machine, a build options framework, and a compiler transformation 126 | framework, among other advanced features. Unprivileged use and installation is 127 | also supported.") 128 | ;; TODO: Figure out the license. 129 | (license #f))) 130 | 131 | (define static-gawk 132 | (let ((base (static-package gawk))) 133 | (package 134 | (inherit base) 135 | (arguments 136 | (substitute-keyword-arguments (package-arguments base) 137 | ((#:tests? _ #f) #f)))))) 138 | --------------------------------------------------------------------------------