diff options
author | Runciter | 2024-10-28 02:19:54 +0800 |
---|---|---|
committer | Runciter | 2024-10-28 02:19:54 +0800 |
commit | af5bbe630cb990daf9f29b307572f965ee9fa099 (patch) | |
tree | 86baaba3b27b4eec62cb8ec40692812854901a3f /whispers/packages | |
download | whispers-af5bbe630cb990daf9f29b307572f965ee9fa099.tar.gz |
Initial.
A .guix-authorizations
A .guix-channel
A COPYING
A README
A whispers/packages/dict.scm
A whispers/packages/doc.scm
A whispers/packages/pdf.scm
A whispers/packages/sh.scm
A whispers/packages/whispers.scm
A whispers/services/console.scm
A whispers/services/dict.scm
A whispers/services/finance.scm
A whispers/services/gps.scm
A whispers/services/proton.scm
A whispers/services/ssh-agent.scm
A whispers/services/ssh-tunneler.scm
A whispers/services/whispers.scm
A whispers/services/whispers/finance.scm
A whispers/services/whispers/gps.scm
A whispers/services/whispers/mail.scm
A whispers/services/whispers/ssh.scm
A whispers/services/whispers/vpn.scm
A whispers/services/whispers/xdg.scm
A whispers/tests/ssh-tunneler.scm
Diffstat (limited to 'whispers/packages')
-rw-r--r-- | whispers/packages/dict.scm | 260 | ||||
-rw-r--r-- | whispers/packages/doc.scm | 80 | ||||
-rw-r--r-- | whispers/packages/pdf.scm | 158 | ||||
-rw-r--r-- | whispers/packages/sh.scm | 98 | ||||
-rw-r--r-- | whispers/packages/whispers.scm | 119 |
5 files changed, 715 insertions, 0 deletions
diff --git a/whispers/packages/dict.scm b/whispers/packages/dict.scm new file mode 100644 index 0000000..f80f912 --- /dev/null +++ b/whispers/packages/dict.scm @@ -0,0 +1,260 @@ +;;; Whispers --- Stealth VPN and ssh tunneler +;;; Copyright © 2024 Runciter <runciter@whispers-vpn.org> +;;; +;;; This file is part of Whispers. +;;; +;;; Whispers is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; Whispers is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Whispers. If not, see <http://www.gnu.org/licenses/>. + +(define-module (whispers packages dict) + #:use-module (guix) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:select (gpl2+ + gpl3+ + cc-by-sa3.0)) + #:use-module (guix git-download) + #:use-module (guix git) + #:use-module (gnu packages autotools) + #:use-module (gnu packages gawk) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages speech) + #:use-module (gnu packages python) + #:use-module (gnu packages perl) + #:use-module (gnu packages xml) + #:export ()) + +(define-public libmaa-1.3.2 + (package + (name "libmaa") + (version "1.3.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/dict/libmaa/" + "libmaa-" + version + "/libmaa-" + version + ".tar.gz")) + (sha256 + (base32 + "1idi4c30pi79g5qfl7rr9s17krbjbg93bi8f2qrbsdlh78ga19ar")))) + (inputs (list libtool)) + (arguments + (list #:make-flags + #~'("CFLAGS=-DHAVE_CONFIG_H -Wall -Wno-error -g -O2 $(VERCFLAGS) -I. -I${srcdir}") + #:test-target "test")) + (build-system gnu-build-system) + (synopsis "When Khepera rose up out of the watery abyss of Nu, he + created Maa as a foundation upon which to create everything else") + (description "The libmaa library provides many low-level +data structures which are helpful for writing compilers, including hash +tables, sets, lists, debugging support, and memory management. Although +libmaa was designed and implemented as a foundation for the Khepara +transformation system, the data structures are generally applicable to a +wide range of programming problems. + + The memory management routines are especially helpful for improving +the performance of memory-intensive applications.") + (home-page "https://sourceforge.net/projects/dict/") + (license gpl2+))) + +(define-public dictd-1.13.1 + (package + (name "dictd") + (version "1.13.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/dict/dictd/" + "dictd-" + version + "/dictd-" + version + ".tar.gz")) + (sha256 + (base32 + "06racmv25ihwgwf67fgj2703ik0m5i2cjzcxasa88kc92rysdwg4")))) + (inputs (list libmaa-1.3.2 zlib libtool bison flex)) + (arguments + (list #:test-target "test")) + (build-system gnu-build-system) + (synopsis "@command{dict}, @command{dictd} and @command{dictfmt} programs") + (description "The DICT Interchange Format (DICF) is a human-readable + format for the interchange of dictionary databases for the use with +DICT protocol client/server software. + +This package provides a client @command{dict} and a server program +@command{dictd} for the DICT protocol, as well as a utility +@command{dictfmt} to convert various dictionary formats into +dictionaries that can be served by @command{dictd} or @command{dicos}") + (home-page "https://sourceforge.net/projects/dict/") + (license gpl2+))) + +(define-public freedict-tools-0.6.0 + (package + (name "freedict-tools") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/freedict/tools") + (commit "3596640e6e0582cc5fb76a342e5d8e7413aa4b34"))) + (sha256 + (base32 "1raayynvn1j8x0ck8pnbbljl6zxnsyzzil7y54xz03dpj7k9w7mk")))) + (inputs (list espeak-ng + python perl + gzip + tar + libxslt + dictd-1.13.1 + perl-libxml)) + (arguments + (list #:tests? #f + #:phases + #~(modify-phases + %standard-phases + (delete 'configure) + (add-before 'build 'set-prefix-in-makefile + (lambda* (#:key inputs #:allow-other-keys) + (substitute* + "Makefile" + (("PREFIX \\?=.*") + (string-append "PREFIX = " + #$output + "\n"))) + (substitute* + "mk/dicts.mk" + (("available_platforms := src dictd slob") + "available_platforms := dictd"))))))) + (build-system gnu-build-system) + (synopsis "The FreeDict tools are used to import, export (build) and + manage FreeDict dictionaries") + (description "FreeDict is a project that offers over 140 free + dictionaries in about 45 languages, with the right to study, change and + modify them. You can use them offline on your computer or mobile phone + and export them to any format and application. + +In order to limit store size and build complexity, only the build +targets that build dictionaries in dictd format are retained when this +Guix package is installed.") + (home-page "https://freedict.org") + (license gpl2+))) + +(define-public freedict-dictionaries + (package + (name "freedict-dictionaries") + (version "914b5f7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/freedict/fd-dictionaries") + (commit "914b5f754b695e9422bf951837b0682a077e244e"))) + (sha256 + (base32 "0a8k5rq94rl1nmz0354sx2gmyqica0yjavirh5v5wdybkfq8nv83")))) + (inputs (list espeak-ng + python perl + gzip + tar + libxslt + dictd-1.13.1 + perl-libxml + freedict-tools-0.6.0)) + (arguments + (list #:tests? #f + #:make-flags + #~(list (string-append "PREFIX=" + #$output)) + #:phases + #~(modify-phases + %standard-phases + (delete 'configure) + (add-before 'build 'set-tools-prefix-in-makefile + (lambda* (#:key inputs #:allow-other-keys) + (substitute* + "Makefile" + (("FREEDICT_TOOLS \\?= ../tools") + (string-append "export FREEDICT_TOOLS = " + #$(file-append + freedict-tools-0.6.0 + "/share/freedict"))))))))) + (build-system gnu-build-system) + (synopsis "Multilingual dictionaries of the Freedict project, + compiled to the dictd format.") + (description "FreeDict is a project that offers over 140 free + dictionaries in about 45 languages, with the right to study, change and + modify them. You can use them offline on your computer or mobile phone + and export them to any format and application. + +This Guix package only installs the output dictionnaires in dictd +format.") + (home-page "https://freedict.org") + (license gpl2+))) + +(define-public cc-cedict + (package + (name "cc-cedict") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.whispers-vpn.org/cc-cedict.git") + (commit "1bb276d2340eff428ff397dbd493646d880388c4"))) + (sha256 + (base32 "1d0l6g83n964af81bl96c9hbd6gacbq9a68n5d9wgifihl33z4q7")))) + (inputs (list sed + gawk + gzip + dictd-1.13.1)) + (arguments (list #:tests? #f)) + (build-system gnu-build-system) + (synopsis "CC-CEDICT is a community-maintained free Chinese-English + dictionary.") + (description "CC-CEDICT is a community-maintained free + Chinese-English dictionary. It is a continuation of the CEDICT project +started by Paul Denisowski in 1997 with the aim to provide a complete +downloadable Chinese to English dictionary with pronunciation in pinyin +for the Chinese characters. + +CC-CEDICT is licensed under a Creative Commons license CC-BY-SA. + +Published by MDBG + +License: Creative Commons Attribution-Share Alike 3.0 + +Referenced works: CEDICT - Copyright © 1997, 1998 Paul Andrew Denisowski + +CC-CEDICT can be downloaded from: +http://www.mdbg.net/chindict/chindict.php?page=cc-cedict + +Additions and corrections to the CC-CEDICT source can be sent through: +http://cc-cedict.org/editor/editor.php + +For more information about CC-CEDICT see: +http://cc-cedict.org/wiki/ + +This package converts the community maintained text file containing the +CC-CEDICT dictionary into 5 dictionaries in the DICT Interchange format, +which can be served to client programs such as 'dico' and 'dicod' by +servers implementing the DICT protocol (RFC 2229), such as 'dictd' or +'dicod'. + +While the exporter script that this package uses to create the +dictionaries is licensed under the GPL, the output dictionaries are +licensed under CC-BY-SA version 3.0.") + (home-page "http://cc-cedict.org/") + (license (list cc-by-sa3.0 gpl3+)))) diff --git a/whispers/packages/doc.scm b/whispers/packages/doc.scm new file mode 100644 index 0000000..354d983 --- /dev/null +++ b/whispers/packages/doc.scm @@ -0,0 +1,80 @@ +;;; Whispers --- Stealth VPN and ssh tunneler +;;; Copyright © 2024 Runciter <runciter@whispers-vpn.org> +;;; +;;; This file is part of Whispers. +;;; +;;; Whispers is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; Whispers is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Whispers. If not, see <http://www.gnu.org/licenses/>. + +(define-module (whispers packages doc) + #:use-module (gnu) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages gettext) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages man) + #:use-module (gnu packages base) + #:use-module (gnu packages admin) + #:use-module (gnu packages pkg-config) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix git) + #:use-module ((guix licenses) #:prefix license:) + #:export ()) + +(define-public ssh-tunneler-doc + (package + (name "ssh-tunneler-doc") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.whispers-vpn.org/ssh-tunneler-doc.git") + (commit "0b1d8a50339adb15c5915cec5e01102684cd571c"))) + (sha256 + (base32 "1vv1bwz99aafmwb8vhkh3rxqncyskk715hm1irya8dpvfkk0c5r3")))) + (native-inputs (list autoconf automake pkg-config texinfo)) + (inputs (list)) + (arguments (list #:tests? #f)) + (build-system gnu-build-system) + (synopsis "Documentation for ssh tunneler Guix services.") + (description "Documentation for ssh tunneler Guix services. This +package provides an info manual.") + (home-page "https://git.whispers-vpn.org/ssh-tunneler-doc.git") + (license (list license:fdl1.3+)))) + +(define-public whispers-doc + (package + (name "whispers-doc") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.whispers-vpn.org/whispers-doc.git") + (commit "2a76cd88aa9f2ee182ec059870fde832bf182d33"))) + (sha256 + (base32 "1h7lc110qhd8slgzjv6ap91r17grcflpgkp3bpxvng0dj55dmk2a")))) + (native-inputs (list autoconf automake pkg-config texinfo)) + (inputs (list)) + (propagated-inputs (list ssh-tunneler-doc)) + (arguments (list #:tests? #f)) + (build-system gnu-build-system) + (synopsis "Documentation for whispers Guix services.") + (description "Documentation for whispers Guix services. This package +provides info manuals.") + (home-page "https://git.whispers-vpn.org/whispers-doc.git") + (license (list license:fdl1.3+)))) diff --git a/whispers/packages/pdf.scm b/whispers/packages/pdf.scm new file mode 100644 index 0000000..00c6485 --- /dev/null +++ b/whispers/packages/pdf.scm @@ -0,0 +1,158 @@ +;;; Whispers --- Stealth VPN and ssh tunneler +;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2021, 2024 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> +;;; Copyright © 2016 Roel Janssen <roel@gnu.org> +;;; Copyright © 2016 Nikita <nikita@n0.is> +;;; Copyright © 2016-2020, 2022, 2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2022 Marius Bakke <marius@gnu.org> +;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2016, 2019 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> +;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> +;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com> +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au> +;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com> +;;; Copyright © 2020-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2024 Timotej Lazar <timotej.lazar@araneo.si> +;;; Copyright © 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> +;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> +;;; Copyright © 2023 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2024 dan <i@dan.games> +;;; Copyright © 2023 Benjamin Slade <slade@lambda-y.net> +;;; +;;; Copyright © 2024 Runciter <runciter@whispers-vpn.org> +;;; +;;; This file is part of Whispers. +;;; +;;; Whispers is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; Whispers is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Whispers. If not, see <http://www.gnu.org/licenses/>. + +(define-module (whispers packages pdf) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix build-system meson) + #:use-module (gnu packages) + #:use-module (gnu packages pdf) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages djvu) + #:use-module (gnu packages tls) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages javascript) + #:use-module (gnu packages autotools) + #:use-module (gnu packages gettext) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages glib) + #:use-module (gnu packages check) + #:use-module (gnu packages web) + #:use-module (gnu packages xorg) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome) + #:use-module (gnu packages ocr) + #:use-module (gnu packages image) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages backup) + #:use-module (gnu packages tex)) + +(define-public zathura-synctex + (package + (inherit zathura) + (name "zathura-synctex") + (arguments + (list + #:configure-flags + #~(list "-Dsynctex=enabled") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'start-xserver + ;; Tests require a running X server. + (lambda* (#:key inputs #:allow-other-keys) + (let ((display ":1")) + (setenv "DISPLAY" display) + + ;; On busy machines, tests may take longer than + ;; the default of four seconds. + (setenv "CK_DEFAULT_TIMEOUT" "20") + + ;; Don't fail due to missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + (zero? (system (string-append + (search-input-file inputs "/bin/Xvfb") + " " display " &"))))))))) + (native-inputs + (list pkg-config + gettext-minimal + (list glib "bin") + + ;; For building documentation. + python-sphinx + + ;; For building icons. + (librsvg-for-system) + + ;; For tests. + check + xorg-server-for-tests + + ;; For synctex. + texlive-bin)))) + +(define-public zathura-cb-synctex + (package + (inherit zathura-cb) + (name "zathura-cb-synctex") + (inputs (list libarchive zathura-synctex)))) + +(define-public zathura-ps-synctex + (package + (inherit zathura-ps) + (name "zathura-ps-synctex") + (inputs (list libspectre zathura-synctex)))) + +(define-public zathura-djvu-synctex + (package + (inherit zathura-djvu) + (name "zathura-djvu-synctex") + (inputs + (list djvulibre zathura-synctex)))) + +(define-public zathura-pdf-mupdf-synctex + (package + (inherit zathura-pdf-mupdf) + (inputs + (list gumbo-parser + jbig2dec + libjpeg-turbo + mujs + mupdf + openjpeg + openssl + tesseract-ocr + zathura-synctex)))) + +(define-public zathura-pdf-poppler-synctex + (package + (inherit zathura-pdf-poppler) + (name "zathura-pdf-poppler-synctex") + (inputs + (list poppler zathura-synctex)))) diff --git a/whispers/packages/sh.scm b/whispers/packages/sh.scm new file mode 100644 index 0000000..cd9d0a1 --- /dev/null +++ b/whispers/packages/sh.scm @@ -0,0 +1,98 @@ +;;; Whispers --- Stealth VPN and ssh tunneler +;;; Copyright © 2023 Runciter <runciter@whispers-vpn.org> +;;; +;;; This file is part of Whispers. +;;; +;;; Whispers is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; Whispers is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Whispers. If not, see <http://www.gnu.org/licenses/>. + +(define-module (whispers packages sh) + #:use-module (gnu) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages package-management) + #:use-module (whispers packages whispers) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module (guix git) + #:use-module (guix licenses) + #:export ()) + +(define-public ssh-tunneler-tests + (let ((commit "7aa78806ae0385a217164710728632d80a1db932") + (chksum "1gyz92xm6wmv2slq9fz1ny1wbmkv6yqpm7ccksqzbfbvhw3nkwcw")) + (package + (name "ssh-tunneler-tests") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.whispers-vpn.org/ssh-tunneler-tests.git") + (commit commit))) + (sha256 (base32 chksum)))) + (build-system gnu-build-system) + (home-page "https://git.whispers-vpn.org/ssh-tunneler-tests.git") + (synopsis "Test script for the (whispers services ssh-tunneler) +module.") + (description "This package provides the test script of the SSH +Tunneler Guix services. The script instanciates virtual machines that +establish persistent ssh connections between themselves.") + (license gpl3+)))) + +(define-public whispers-tests + (let ((commit "8ea9f61a000556197f631253ce6193316bde1f61") + (chksum "1l87cjiz9c7v9imjzqk29v49yxg3hl58qv8m0m4jdijvlswzrrhp")) + (package + (name "whispers-tests") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.whispers-vpn.org/whispers-tests.git") + (commit commit))) + (sha256 (base32 chksum)))) + (build-system gnu-build-system) + (home-page "https://git.whispers-vpn.org/ssh-tunneler-tests.git") + (synopsis "Test script for the (whispers services whispers) + and (whispers services whispers vpn) modules.") + (description "This package provides: +* A test script instantiating a VM extending a manually configured +whispers tree, for purposed of testing service status of a bare-bones +tree of whispers lieutenants. +* A test script instanciating a VPN network of VMs, for various +testing puposes.") + (license gpl3+)))) + +(define-public sh-pulse + (let ((commit "f2cb88d5cccf05ceeea0003d3250d5c5ce015b9b") + (chksum "1yq5lpvz9azap6dp47kcmzf42xypwc3bwsr9cfmjdq01j1pd8gbz")) + (package + (name "sh-pulse") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.whispers-vpn.org/sh-pulse.git") + (commit commit))) + (sha256 (base32 chksum)))) + (build-system gnu-build-system) + (home-page "https://git.whispers-vpn.org/sh-pulse.git") + (synopsis "Control script for pulseaudio volume and output sink") + (description "The vlm script helps the user to easily set keyboard +shortcuts to control pulseaudio volume, mute and switch pulseaudio +output.") + (license gpl3+)))) diff --git a/whispers/packages/whispers.scm b/whispers/packages/whispers.scm new file mode 100644 index 0000000..2618635 --- /dev/null +++ b/whispers/packages/whispers.scm @@ -0,0 +1,119 @@ +;;; Whispers --- Stealth VPN and ssh tunneler +;;; Copyright © 2023 Runciter <runciter@whispers-vpn.org> +;;; +;;; This file is part of Whispers. +;;; +;;; Whispers is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; Whispers is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Whispers. If not, see <http://www.gnu.org/licenses/>. + +(define-module (whispers packages whispers) + #:use-module (gnu) + #:use-module (gnu packages package-management) + #:use-module (gnu packages autotools) + #:use-module (gnu packages gettext) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages man) + #:use-module (gnu packages base) + #:use-module (gnu packages admin) + #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) + #:use-module (gnu packages pkg-config) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (guix build-system guile) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix git) + #:use-module ((guix licenses) #:prefix license:) + #:export ()) + +(define-public whispers + (let ((commit "2b583171c9480e129d0349d1cf9a580a9c8b19e6") + (chksum "13p02hdfnmkf5wr2d6acpcfix03crsn68wkvm73cmy0ibndjvczk")) + (package + (name "whispers") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.whispers-vpn.org/whispers-command.git") + (commit commit))) + (sha256 (base32 chksum)))) + (build-system gnu-build-system) + (arguments + `(#:modules + ((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + (modify-phases + %standard-phases + (add-after + 'install + 'hall-wrap-binaries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((compiled-dir + (lambda (out version) + (string-append + out + "/lib/guile/" + version + "/site-ccache"))) + (uncompiled-dir + (lambda (out version) + (string-append + out + "/share/guile/site" + (if (string-null? version) "" "/") + version))) + (dep-path + (lambda (env modules path) + (list env + ":" + 'prefix + (cons modules + (map (lambda (input) + (string-append + (assoc-ref inputs input) + path)) + ,''("guile-config")))))) + (out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (site (uncompiled-dir out ""))) + (match (scandir site) + (("." ".." version) + (for-each + (lambda (file) + (wrap-program + (string-append bin file) + (dep-path + "GUILE_LOAD_PATH" + (uncompiled-dir out version) + (uncompiled-dir "" version)) + (dep-path + "GUILE_LOAD_COMPILED_PATH" + (compiled-dir out version) + (compiled-dir "" version)))) + ,''("whispers")) + #t)))))))) + (native-inputs + (list autoconf automake pkg-config texinfo)) + (inputs (list guile-3.0)) + (propagated-inputs (list guile-config)) + (synopsis + "Perform actions of the services of the shepherd daemons of\na whispers tree.") + (description + "The whispers command is a simple convenience wrapper\n around the herd program. Instead of specifying a file path\nto the listening socket of a running shepherd in the whispers tree, the\nuser simply provides its absolute whispers tree path as an\nargument to the --lieutenant option of this command.") + (home-page "https://git.whispers-vpn.org/whispers-command.git") + (license license:gpl3+)))) |