From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id eGvaKJ6jH2dUbwAAqHPOHw:P1 (envelope-from ) for ; Mon, 28 Oct 2024 14:45:50 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id eGvaKJ6jH2dUbwAAqHPOHw (envelope-from ) for ; Mon, 28 Oct 2024 15:45:50 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1730126750; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=5oumgr8RGv1LJ0zzM2GgdEPi5c+PimXxr7n5Vu+SrKg=; b=oeV8SyHWsZmvmiTctC9dr3x4DnQ+mazeGk+/TI4sMhAuqnO6M2sXDchntBz+r2ANFmyjxT rZmm7jIPbzJnZjFYMxH0rFgdM5OatsChOKfX3f9d6mfw+IR1TOgJOFlKRGmdBZmTGuoyb3 49682kCDVe+GLL1pq0WNEqRGsI6fyCEj9M2UtFQ7mMWjJVcUNcfY9XjlfJWYyhUMkHViaZ erc7En9NQymqVdjKkh6nn3xfZkfALkYqdG6Z+fnFXIlzfQVwsnp0oXVmMnrkPra5WViPf8 3VvWKp5Ff6VXUezeyDEjai87WZy9s75kpT4xUx0DiSkuKvz2Os1R9980b3Hf/w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1730126750; a=rsa-sha256; cv=none; b=q6vV0Xmdie7Vj4eBMMZPqs5Giam3ZUZTq1Cw0fDTNjK0lNPWg9nYrSmlWgKgFQuM2U/26M mXkBfS/COu7vQo4G6l1KguoQvPpusNi1L/6i1B1QB/WknkNDKOljJbsczH3GbaQJzTjZlg slCsOhXRH87bs6nWb0p0w7Jrz8Qpu/JSMfkYCB40fTUXT5n/MFcTrhI7cbg6HUIJ3W0eWk TLQdzosQavaZ8FKFD/IwgG0iscTDkMJ3AE65VmRqxX9ZuNU3ZrtK5Ppk+3vekhi9AdyFvI hCBO9vNB9JFZmcWajgzvS4TmbBxFTI8MBfCR3lN+VhcLfVjSQfubwFErNxWZFA== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 76AC38BA7D for ; Mon, 28 Oct 2024 15:45:50 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t5QzV-000089-Vo; Mon, 28 Oct 2024 10:45:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t5QzT-000072-R6 for guix-devel@gnu.org; Mon, 28 Oct 2024 10:45:07 -0400 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t5QzR-0005N2-5W for guix-devel@gnu.org; Mon, 28 Oct 2024 10:45:07 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1t5QzN-0007b1-QT for guix-devel@gnu.org; Mon, 28 Oct 2024 15:45:01 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: guix-devel@gnu.org Subject: Unofficial channel 'whispers' with services and packages Date: Mon, 28 Oct 2024 22:36:52 +0800 Message-ID: <87frogjnuj.fsf@whispers-vpn.org> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:S+TIAPYVpUoEOxA9lCoLV71wLgQ= Received-SPF: pass client-ip=116.202.254.214; envelope-from=gcggd-guix-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Runciter From: Runciter via "Development of GNU Guix and the GNU System distribution." Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Scanner: mx11.migadu.com X-Migadu-Spam-Score: 1.03 X-Spam-Score: 1.03 X-Migadu-Queue-Id: 76AC38BA7D X-TUID: nrlAjg/d3SBK 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!