all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Runciter via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org>
To: guix-devel@gnu.org
Subject: Unofficial channel 'whispers' with services and packages
Date: Mon, 28 Oct 2024 22:36:52 +0800	[thread overview]
Message-ID: <87frogjnuj.fsf@whispers-vpn.org> (raw)

Hello Guix users and maintainers!

I've decided to make parts of my personal channel 'whispers' public, in
case it can be helpful to some users, or if the Guix maintainers wish to
pick and choose packages or services from it.

The following channel declaration in the list of your
'~/.config/channels.scm' should enable pulling from the whispers
channel. Let me know if this works for you:

(channel (name 'whispers)
         (url "https://git.whispers-vpn.org/whispers.git")
         (branch "trunk")
         (introduction
          (make-channel-introduction
           "af5bbe630cb990daf9f29b307572f965ee9fa099"
           (openpgp-fingerprint
            "F7E9 58D9 7711 36C6 EBCA  A908 F0F4 A585 9416 E70E"))))

You should also be able to clone the channel with:
git clone https://git.whispers-vpn.org/whispers.git

In passing I want to thank the guixer sash-kan for guix-forge; I used it
to get an elementary web server with cgit and https working in less than
one evening!

The channel contains both services and packages which may be of interest:

SERVICES
========

Services of the following modules might be of interest to end-user:

* (whispers services ssh-tunneler): ssh port forwarding, dynamic
  forwarding and tunnel forwarding as Guix shepherd services. Comes with
  facilities to "resurrect" them with mcron jobs after a temporary drop
  of connectivity. Can automate a workflow with sshpass, although it is
  not recommended. Includes features where ssh connections can be
  proxied inside dynamic proxies created by other ssh connections,
  sometimes useful for stealth, or to bypass firewall, or to escape
  packet scanning.

* (whispers services whispers): Extend a flexible tree of shepherd
  processes running as root or a normal user, each of the shepherds in
  the tree can have shepherd services. The modules also provides
  facilities for other services to extend the start and stop actions of
  services within the tree.

** (whispers services whispers ssh): Extend my aforementioned
   ssh-tunneler services within the whispers tree instead of the root
   shepherd, per-user if needed, and possibly in a somewhat easier to
   configure manner; also, the module provides services to automate
   ssh-agent and the adding of keys into ssh-agent per-user as shepherd
   services.

** (whispers services whispers gpsd): gpsd shepherd service(s) running
   inside the whispers tree, running as configurable user(s).

** (whispers services whispers mail): currently, just an hydroxide
   service for users to handle mail received by and sent through the
   protonmail servers locally, communicating with the proton mail
   servers through the hydroxide program.

** (whispers services whispers finance): BTC and XMR nodes per-user
   running as shepherd services inside the whispers tree.

** (whispers services whispers vpn): *DO NOT USE* in the wild. A VPN
   which uses the facilities of (whispers services ssh-tunneler) to
   deploy a VPN network between machines running Guix and
   whispers. Merely a proof-of-concept which achieves basic
   functionality through horrible spaghetti code included strictly only
   for experimental purposes. It may have security vulnerabilities, and
   it will almost certainly leave you in an inconsistent state if the
   network drops unexpectedly or if the VPN connection fails to
   establish. It might be possible to make it workable, my next step
   will be to try to re-factor and improve the parts which are
   deserving, and rewrite the rest with a better design.

PACKAGES
========

* ssh-tunneler-doc: info manual for the (whispers services ssh-tunneler)
  service.

* whispers-doc: info manual for the whispers shepherd tree and the
  service types that live inside it.

* ssh-tunneler-tests: shell script for testing the ssh-tunneler
  services. Takes insanely long to run.

* whispers-tests: shell script for testing whispers. Includes a script
  'whispers-vpn-tests' which you can use to play with the VPN inside a
  network of VMs. Takes insanely long to run. Don't press a key on the
  terminal where it is running, or it will kill the VMs as soon as it
  has finished deploying them. When it finally finished deploying the
  VMs and connecting the VPN, it will print instructions on how to ssh
  into the VMs from another terminal of the local machine.

* whispers: a simple wrapper around herd to control the actions of
  shepherd services running inside the whispers tree.

* sh-pulse: an elementary script 'vlm' to control pulseaudio volume and
  cycle output sinks. The script's actions are intended to be used with
  keyboard shortcuts configured in whichever way is most agreeable to
  the user. Although it was never distributed, many years ago I posted
  my little script on a Debian forum and I was surprised to get a
  (single) testimonial that "this was the only thing that worked" along
  with a request to re-post it a few months later. Indeed it has worked
  continuously for me ever since. This may be useful/necessary to have a
  script like this if you're using a somewhat minimalist WM and you
  don't want to pull along the gazillion dependencies and services of a
  monolithic desktop manager just to have keyboard shortcuts for volume
  control.

* libmaa: C library from the DICT project, because it is a dependency
  for the dictd package. I'm just the packager not an author.

* dictd: the original programs for the DICT protocol. Includes the dict
  client and dictd server, which dico and dicod know how to
  emulate. Also includes the dictfmt utility, which is useful to express
  DICT dictionaries from human-written sources or other dictionary
  formats, for which GNU dico has no equivalent to my knowledge. I'm
  just the packager not an author.

* freedict-tools: I packaged helper tools to compile the freedict
  multilingual dictionaries. I'm just the packager not an author.

* freedict-dictionaries: package containing a subset of the
  freedict-dictionaries, intended for a local installation on a Guix
  system. I think the subset which I packaged corresponds exactly to the
  Freedict bilingual dictionaries which are human-written. The Freedict
  project also has a system which copulates 2 bilingual dictionaries
  sharing a common language into a third new automatically generated
  bilingual dictionary, I don't think my package outputs any of the many
  dictionaries which are expressed by this system. I'm just the packager
  not an author.

* cc-cedict: Scripts run by the GNU build system, using mostly sed, awk
  and the dictfmt utility to convert the community written
  chinese/english bilingual dictionary CC-CEDICT into 5 chinese/english
  dictionaries in DICT format: one dictionary for simplified characters,
  one for traditional characters, and 3 dictionaries in various forms
  of pinyin or assimilate.d I'm the author of the (very dirty) scripts
  and build system stances which perform this conversion, but I'm not a
  contributor or editor of the CC-CEDICT project. CC-CEDICT is published
  under CC-BY-SA.

For any useful purposes, here's a snippet that you should be able to
use in order to make the above dictionary-related packages useful with
your local machine's dicod service, along with wordnet and gcide which
Guix proper already provides:

              (service dicod-service-type
                       (dicod-configuration
                        (handlers (list
                                   (dicod-handler
                                    (name "wordnet")
                                    (module "wordnet")
                                    (options
                                     (list #~(string-append "wnhome="
                                                            #$wordnet))))
                                   %dictorg-handler))
                        (databases (cons*
                                    (dicod-database
                                     (name "wordnet")
                                     (complex? #t)
                                     (handler "wordnet")
                                     (options '("merge-defs")))
                                    %dicod-database:gcide
                                    (append %freedict-dictorg-databases
                                            %cedict-dictorg-databases)))))

* zathura-synctex: just a Zathura pdf reader compiled with synctex
  support. The Zathura packaged by Guix cannot do synctex since the
  feature is disabled by default at compile-time by upstream. I'm just
  the packager not an author.

Enjoy!



                 reply	other threads:[~2024-10-28 14:45 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87frogjnuj.fsf@whispers-vpn.org \
    --to=guix-devel@gnu.org \
    --cc=runciter@whispers-vpn.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.