aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix 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.
;;;
;;; GNU Guix 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu home services messaging)
  #:use-module (srfi srfi-26)
  #:use-module (gnu home services)
  #:use-module (gnu home services shepherd)
  #:use-module (gnu packages messaging)
  #:use-module (gnu services configuration)
  #:use-module (gnu services shepherd)
  #:use-module (guix records)
  #:use-module (guix gexp)
  #:export (home-znc-configuration
            home-znc-service-type))

;;;
;;; Znc.
;;;
(define-record-type* <home-znc-configuration>
  home-znc-configuration make-home-znc-configuration
  home-znc-configuration?
  (znc           home-znc-znc           ;string
                 (default znc))
  (extra-options home-znc-extra-options ;list of string
                 (default '())))

(define (home-znc-services config)
  "Return a <shepherd-service> for znc with CONFIG."
  (match-record config <home-znc-configuration>
    (znc extra-options)
    (let* ((znc (file-append znc "/bin/znc"))
           (command #~'(#$znc "--foreground" #$@extra-options))
           (log-file #~(string-append %user-log-dir "/znc.log")))
      (list (shepherd-service
             (documentation "Run the znc IRC bouncer.")
             (provision '(znc))
             (modules '((shepherd support)))      ;for '%user-log-dir'
             (start #~(make-forkexec-constructor #$command
                                                 #:log-file #$log-file))
             (stop #~(make-kill-destructor)))))))

(define home-znc-service-type
  (service-type
   (name 'home-znc)
   (default-value (home-znc-configuration))
   (extensions
    (list (service-extension home-shepherd-service-type
                             home-znc-services)))
   (description
    "Install and configure @command{znc}, an @acronym{IRC, Internet Relay
Chat} bouncer, as a Shepherd service.")))
mpression.scm (quazip): Update to 1.3. Tobias Geerinckx-Rice 2022-05-22gnu: libcbor: Mark up description....* gnu/packages/compression.scm (libcbor)[description]: Use @acronym{}. Tobias Geerinckx-Rice 2022-05-22gnu: libcbor: Update to 0.9.0....* gnu/packages/compression.scm (libcbor): Update to 0.9.0. Tobias Geerinckx-Rice 2022-05-15gnu: libdeflate: Update to 1.10....* gnu/packages/compression.scm (libdeflate): Update to 1.10. Tobias Geerinckx-Rice 2022-05-15gnu: libdeflate: Omit static library....* gnu/packages/compression.scm (libdeflate)[arguments]: Add a new 'skip-static-library-installation phase. Tobias Geerinckx-Rice 2022-05-15gnu: libjcat: Update to 0.1.11....* gnu/packages/compression.scm (libjcat): Update to 0.1.11. Tobias Geerinckx-Rice 2022-05-15gnu: pigz: Use G-expressions....* gnu/packages/compression.scm (pigz)[arguments]: Rewrite as G-expressions. Don't explicitly return #t from phases. Tobias Geerinckx-Rice 2022-05-15gnu: pigz: Update to 2.7....* gnu/packages/compression.scm (pigz): Update to 2.7. [arguments]: Run ‘make test’ rather than ‘tests’. The latter tests the NOTHREAD build that's never installed, and broken. [native-inputs]: Add which. Tobias Geerinckx-Rice 2022-05-15gnu: pigz: Remove unused git input....* gnu/packages/compression.scm (libjcat)[inputs]: Remove git. Tobias Geerinckx-Rice 2022-05-01gnu: plzip: Update to 1.10....* gnu/packages/compression.scm (plzip): Update to 1.10. Tobias Geerinckx-Rice 2022-05-01gnu: lzlib: Update to 1.13....* gnu/packages/compression.scm (lzlib): Update to 1.13. Tobias Geerinckx-Rice 2022-05-01gnu: clzip: Update to 1.13....* gnu/packages/compression.scm (clzip): Update to 1.13. Tobias Geerinckx-Rice 2022-05-01gnu: lunzip: Update to 1.13....* gnu/packages/compression.scm (lunzip): Update to 1.13. Tobias Geerinckx-Rice 2022-05-01gnu: lrzip: Update to 0.651....* gnu/packages/compression.scm (lrzip): Update to 0.651. Tobias Geerinckx-Rice 2022-05-01gnu: lziprecover: Update to 1.23....* gnu/packages/compression.scm (lziprecover): Update to 1.23. Tobias Geerinckx-Rice 2022-03-30gnu: lbzip2: Fix cross-compilation....* gnu/packages/compression.scm (lbzip2)[arguments]: Search (or native-inputs inputs) for gnulib-tool.py. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Brian Kubisiak 2022-03-07gnu: squashfs-tools: Fix cross-compiling....* gnu/packages/compression.scm (squashfs-tools)[arguments]: Adjust make-flags to refer to the 'out' output specifically. Efraim Flashner 2022-02-16gnu: lz4: Only build with valgrind on supported systems....* gnu/packages/compression.scm (lz4)[native-inputs]: Only add valgrind when valgrind is supported on that system. Efraim Flashner 2022-02-15gnu: Remove unneeded uses of 'libiconv'....iconv is part of glibc, there is no need to add it as input. * gnu/packages/accessibility.scm (brltty)[inputs]: Remove LIBICONV. * gnu/packages/compression.scm (innoextract)[inputs]: Likewise. * gnu/packages/haskell-apps.scm (darcs)[inputs]: Likewise. * gnu/packages/kde-multimedia.scm (k3b)[inputs]: Likewise. * gnu/packages/linphone.scm (liblinphone)[inputs]: Likewise. * gnu/packages/mail.scm (mailutils)[inputs]: Likewise. * gnu/packages/maths.scm (libqalculate)[inputs]: Likewise. * gnu/packages/pep.scm (pep-engine)[inputs]: Likewise. * gnu/packages/vim.scm (neovim)[inputs]: Likewise. * gnu/packages/wget.scm (wget2)[inputs]: Likewise. * gnu/packages/telegram.scm (telegram-desktop)[inputs]: Likewise. * gnu/packages/video.scm (transcode)[native-inputs]: Likewise. Marius Bakke 2022-01-10gnu: Add zopfli....* gnu/packages/compression.scm (zopfli): New variable. Maxim Cournoyer 2022-01-05gnu: Add fcrackzip....* gnu/packages/compression.scm (fcrackzip): New variable. Ricardo Wurmus 2021-12-29gnu: quazip-0: Fix trailing whitespace in description....* gnu/packages/compression.scm (quazip-0)[description]: Fix trailing whitespace. Vagrant Cascadian 2021-12-17gnu: libjcat: Update to 0.1.9....* gnu/packages/compression.scm (libjcat): Update to 0.1.9. Tobias Geerinckx-Rice 2021-12-15gnu: Add isa-l....* gnu/packages/compression.scm (isa-l): New variable. Ricardo Wurmus 2021-12-13gnu: Further simplify package inputs....This is the result of running: ./pre-inst-env guix style --input-simplification=safe and manually undoing changes on a dozen of packages to reduce rebuilds (derivations for emacs, icecat, and libreoffice are unchanged.) Ludovic Courtès 2021-12-13gnu: Simplify package inputs....This commit was obtained by running: ./pre-inst-env guix style without any additional argument. Ludovic Courtès 2021-12-05Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus 2021-12-01gnu: Add libcbor....* gnu/packages/compression.scm (libcbor): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ahmad Jarara 2021-11-30gnu: squashfs-tools: Update to 4.5....* gnu/packages/compression.scm (squashfs-tools): Update to 4.5. Tobias Geerinckx-Rice 2021-11-30gnu: quazip@1: Update to 1.2....* gnu/packages/compression.scm (quazip): Update to 1.2. Tobias Geerinckx-Rice 2021-11-23Merge branch 'master' into core-updates-frozenLudovic Courtès