aboutsummaryrefslogtreecommitdiff
path: root/src/org/euandre/packages.scm
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2026-09-02 16:18:23 -0300
committerEuAndreh <eu@euandre.org>2026-09-03 13:26:02 -0300
commit46422e73b86f3c0899345dfdcbbf621771b5f666 (patch)
tree7e27a7563395e76c5db827238ef22cf5b792a60d /src/org/euandre/packages.scm
parentsrc/org/euandre/queue.scm: Disable tests for new python-build-system (diff)
downloadpackages-46422e73b86f3c0899345dfdcbbf621771b5f666.tar.gz
packages-46422e73b86f3c0899345dfdcbbf621771b5f666.tar.xz
Depend on pkgs and move code there; drop other distros but guix
Diffstat (limited to '')
-rw-r--r--src/org/euandre/packages.scm1529
1 files changed, 125 insertions, 1404 deletions
diff --git a/src/org/euandre/packages.scm b/src/org/euandre/packages.scm
index d4e7e77..e1adef9 100644
--- a/src/org/euandre/packages.scm
+++ b/src/org/euandre/packages.scm
@@ -1,1457 +1,178 @@
(define-module (org euandre packages)
- #:use-module ((gnu build linux-container) #:prefix container:)
+ #:use-module ((im papo packages) #:prefix pkgs:)
#:use-module ((guix licenses) #:prefix licenses:)
- #:use-module ((guix transformations) #:prefix transformations:)
- #:use-module ((ice-9 match) #:prefix m:)
- #:use-module ((ice-9 textual-ports) #:prefix textual-ports:)
- #:use-module ((org euandre queue) #:prefix q:)
- #:use-module ((srfi srfi-1) #:prefix s1:)
#:use-module (gnu)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
#:use-module (guix git-download)
- #:use-module (guix least-authority)
#:use-module (guix packages)
- #:use-module (guix records)
#:use-module (guix utils)
- #:export (<syskeep-configuration>
- syskeep-configuration
- make-syskeep-configuration
- syskeep-configuration?
- syskeep-configuration-package
- syskeep-configuration-log-file
-
- <transactor-configuration>
- transactor-configuration
- make-transactor-configuration
- transactor-configuration?
- transactor-configuration-package
- transactor-configuration-user
- transactor-configuration-group
- transactor-configuration-port
- transactor-configuration-log-file
- transactor-configuration-data-directory
- transactor-configuration-run-in-container?
- transactor-configuration-container-name
-
- <git-configuration>
- git-configuration
- make-git-configuration
- git-configuration?
- git-configuration-package
- git-configuration-user
- git-configuration-group
- git-configuration-export-all?
- git-configuration-base-path
- git-configuration-user-path
- git-configuration-run-in-container?
- git-configuration-container-name
-
- <binder-configuration>
- binder-configuration
- make-binder-configuration
- binder-configuration?
- binder-configuration-name
- binder-configuration-package
- binder-configuration-user
- binder-configuration-group
- binder-configuration-log-file
- binder-configuration-data-directory
- binder-configuration-run-directory
- binder-configuration-run-in-container?
- binder-configuration-container-name
- binder-configuration-options
- binder-configuration-listen-socket
- binder-configuration-upstream-socket
-
- <glaze-configuration>
- glaze-configuration
- make-glaze-configuration
- glaze-configuration?
- glaze-configuration-name
- glaze-configuration-package
- glaze-configuration-user
- glaze-configuration-group
- glaze-configuration-log-file
- glaze-configuration-data-directory
- glaze-configuration-run-directory
- glaze-configuration-run-in-container?
- glaze-configuration-container-name
- glaze-configuration-options
- glaze-configuration-listen-socket
- glaze-configuration-upstream-socket
-
- <hsts-configuration>
- hsts-configuration
- make-hsts-configuration
- hsts-configuration?
- hsts-configuration-name
- hsts-configuration-package
- hsts-configuration-user
- hsts-configuration-group
- hsts-configuration-log-file
- hsts-configuration-data-directory
- hsts-configuration-run-directory
- hsts-configuration-run-in-container?
- hsts-configuration-container-name
- hsts-configuration-options
- hsts-configuration-listen-socket
- hsts-configuration-upstream-socket
-
- <untls-configuration>
- untls-configuration
- make-untls-configuration
- untls-configuration?
- untls-configuration-name
- untls-configuration-package
- untls-configuration-user
- untls-configuration-group
- untls-configuration-log-file
- untls-configuration-data-directory
- untls-configuration-run-directory
- untls-configuration-run-in-container?
- untls-configuration-container-name
- untls-configuration-options
- untls-configuration-listen-socket
- untls-configuration-upstream-socket
-
- <wscat-configuration>
- wscat-configuration
- make-wscat-configuration
- wscat-configuration?
- wscat-configuration-name
- wscat-configuration-package
- wscat-configuration-user
- wscat-configuration-group
- wscat-configuration-log-file
- wscat-configuration-data-directory
- wscat-configuration-run-directory
- wscat-configuration-run-in-container?
- wscat-configuration-container-name
- wscat-configuration-options
- wscat-configuration-listen-socket
- wscat-configuration-upstream-socket
-
- <cicd-configuration>
- cicd-configuration
- make-cicd-configuration
- cicd-configuration?
- cicd-configuration-name
- cicd-configuration-package
- cicd-configuration-user
- cicd-configuration-group
- cicd-configuration-log-file
- cicd-configuration-data-directory
- cicd-configuration-run-directory
- cicd-configuration-run-in-container?
- cicd-configuration-container-name
-
- <papod-configuration>
- papod-configuration
- make-papod-configuration
- papod-configuration?
- papod-configuration-name
- papod-configuration-package
- papod-configuration-user
- papod-configuration-group
- papod-configuration-log-file
- papod-configuration-data-directory
- papod-configuration-run-directory
- papod-configuration-run-in-container?
- papod-configuration-container-name
- papod-configuration-options
- papod-configuration-listen-socket
- papod-configuration-upstream-socket
-
- fmt
- str
- service-type-for))
+ #:export ())
(use-package-modules
- admin
- base
- bittorrent
- gawk
- guile
- java
- sqlite
- texinfo
- version-control)
-(use-service-modules
- admin
- mcron
- shepherd
- sysctl)
-
+ compiler-tools
+ gcc
+ video
+ xml)
+(use-service-modules)
-(define-public (mklist x)
- (if (not x)
- '()
- (if (pair? x)
- x
- (list x))))
-(define-public (slurp path)
- (call-with-input-file
- path
- textual-ports:get-string-all))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define-public (str . rest)
- (apply string-append rest))
+(define +working-dir+
+ (dirname (dirname (dirname (current-source-directory)))))
-(define-public (fmt . rest)
- (apply format #f rest))
+(define +tld+
+ (string-trim-right
+ (pkgs:slurp
+ (pkgs:str +working-dir+ "/tld.txt"))))
-(define-public mktorrent-latest
- ((transformations:options->transformation
- '((with-commit . "mktorrent=de7d011b35458de1472665f50b96c9cf6c303f39")))
- mktorrent))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;; Package definition functions ;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define-public (pkg name version checksum)
+(define (hunspell-dictionary-utf8 dict-name)
(package
- (name name)
- (version version)
+ (name
+ (string-append "hunspell-dict-" dict-name "-utf8"))
+ (version "630b34e6f8f3cbe7aa7b27b6d8ab118e27252fd1")
(source
(origin
(method git-fetch)
(uri
(git-reference
- (url
- (str "git://euandre.org/" name))
+ (url "https://github.com/wooorm/dictionaries")
(commit version)))
- (sha256
- (base32 checksum))
(file-name
- (git-file-name name version))))
- (build-system gnu-build-system)
+ (git-file-name "hunspell-dictionary-utf8" version))
+ (sha256
+ (base32 "1iknwzh5h04m067ddw9hlzc1qqj4mr9mdkcfapsnay304laaiyn5"))))
+ (build-system trivial-build-system)
(arguments
- (list
- #:strip-binaries? #f
- #:make-flags
- #~(list
- "-e"
- (string-append "CC=" #$(cc-for-target))
- (string-append "PREFIX=" #$output)
- (string-append "VERSION=" #$version))
- #:phases
- #~(modify-phases %standard-phases
- (delete 'configure))))
- (synopsis #f) ;; FIXME: get
- (description #f) ;; from tarball!
- (home-page (str "https://euandre.org/s/" name "/"))
- (license licenses:agpl3+)))
-
-
-(define-public eut
- (pkg
- "eut"
- "ec7e36c2eb4a05c188fd222a1a775ef6f55be6b8"
- "1knz14jkx8yc7fv5m2apshfsn3xym55vb78wx3kgq061jy58nxfd"))
-
-(define-public remembering
- (pkg
- "remembering"
- "e1570edd3cdaa040f9664adb315f72e33f8b67c2"
- "0y20flrbjh5gbbzl7h3rimg8jwy2ikgkj03yxclj8qg8mq2f9f4a"))
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((source-prefix (string-append (assoc-ref %build-inputs "source")
+ "/dictionaries/"
+ ,dict-name
+ "/index"))
+ (install-prefix (string-append %output "/share/hunspell/")))
+ (mkdir-p install-prefix)
+ (copy-file (string-append source-prefix ".aff")
+ (string-append install-prefix ,dict-name ".aff"))
+ (copy-file (string-append source-prefix ".dic")
+ (string-append install-prefix ,dict-name ".dic"))))))
+ (synopsis (string-append "Hunspell " dict-name " dictionary in UTF-8"))
+ (description (string-append "Hunspell " dict-name " dictionary in UTF-8"))
+ (license licenses:expat)
+ (home-page "https://github.com/wooorm/dictionaries")))
-(define-public cage
- (pkg
- "cage"
- "c0482531fc16a55715b759b695d27d555d927ab8"
- "1v5m7xqfb14y283mlc2kd714hnih1dwcmjcf4i6j52pphjscilys"))
-(define-public nicely
- (pkg
- "nicely"
- "8c963ba56495a382480ab96423df22beb19cb592"
- "0c9vqjxlh4gjh09pavs5dscgxcnbii7jp1d8v0jhq3qjz9lf3k2w"))
-(define-public q
- (pkg
- "q"
- "d13bcb36bc84de95ebb9e8c27605c09b08c35cc5"
- "1jbg9f6dwkkcjxbhc3a1pnaas6xgd1f0hiv95h6hchgs88phwssl"))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Inherited packages ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define-public syskeep
- (pkg
- "syskeep"
- "2215cc0999e43b32751bc493f2fe9d2e8c822170"
- "0p38fb8m35kjp9fj7bmwcayf9r4638q5fcin18ny7y65scij4jbb"))
-
-(define-public backupit
- (pkg
- "backupit"
- "331f37ba29b1cb317b9bf1984e0efce40b14c03f"
- "1zhwp1widxghjimg838fp7mffrsj97a5w22fy0ydr0pzh3rjzs23"))
-
-(define-public cicd
- (pkg
- "cicd"
- "63d46fe31f3ae7b7eed1a2c801448160fe9e77d8"
- "00brrbm6s45nqpbw2sigcwjwj2dgyl0rvagmgrgj930y9qv2nn31"))
-
-(define-public guile-heredoc
+(define-public gm2
(package
- (inherit
- (pkg
- "guile-heredoc"
- "065435cdce609604e33b879b9be3e81ab89f3e7b"
- "179qq17mgi4kakhj9w1dk26afljh5yad4j9ih9d8wms70x6h211m"))
+ (inherit gcc)
+ (name "gm2")
+ (arguments
+ (substitute-keyword-arguments (package-arguments gcc)
+ ((#:modules modules %default-gnu-modules)
+ (append '((ice-9 regex))
+ modules))
+ ((#:configure-flags flags)
+ #~(append
+ '("--enable-languages=m2")
+ (filter (lambda (s)
+ (not (string-match "--enable-languages.*" s)))
+ #$flags)))))
(native-inputs
- (list
- guile-3.0
- texinfo))))
-
-(define-public adoc
- (package
- (inherit
- (pkg
- "adoc"
- "fab32a816259c943802ffa4c041ac63ac34e646a"
- "04sk5bafw2h969v4fl9qzc67m4sjdlrw87xdliv7rny7v9d53zi8"))
- (propagated-inputs
- (append
- (format-inputs (list eut))
- (normalize-inputs '(ruby-asciidoctor tidy-html))))))
-
-(define-public eslaides
- (pkg
- "eslaides"
- "40eb0452fd7689d1c40e4d53c1473fd42195cc49"
- "0g4qdcfmk8asi1fzr1yk8khpngg9cg21i14xblxfisqsfaq5jycb"))
+ (modify-inputs (package-native-inputs gcc)
+ (append flex)))))
-(define-public mkwb
+(define-public ffmpegx
(package
- (inherit
- (pkg
- "mkwb"
- "1c36a265c6b34c28c424eb0bc11ba3b0f9b932d0"
- "1w8f3rsncxrb383i7pwg8bxrijvvg7q2l6b0fgjfdv1rs4xzlmqw"))
- (propagated-inputs
- (format-inputs (list eut adoc eslaides)))))
-
-(define-public (mkwbsite pkg)
- (package
- (inherit pkg)
- (native-inputs
- (append
- (format-inputs (list mkwb mktorrent-latest))
- (normalize-inputs '(gnupg jq rsync po4a gettext ghostscript moreutils))))
+ (inherit ffmpeg)
+ (name "ffmpegx")
(arguments
- (substitute-keyword-arguments (package-arguments pkg)
- ((#:phases phases)
- #~(modify-phases #$phases
- (add-before 'build 'sethome-ghostscript
- (lambda _
- (setenv "HOME" (getcwd))))))))))
-
-(define-public euandre.org
- (mkwbsite
- (pkg
- "euandre.org"
- "6e493d66649925fccaa351f65ee6cac2dedf264f"
- "05isnj2mmwg6k1qd94r3yaycy556f5d7br3f2vdmriqazrgj0grg")))
-
-(define-public papo.im
- (mkwbsite
- (pkg
- "papo.im"
- "fa07fa576e07b4cc6b7c9123bd3a6c91e6afc609"
- "084w89v15nmr45nv9av8pz7iq99aw3ggaxr0gzqfjbskb3wvvkml")))
-
-(define-public datomic
- (let ((p (pkg
- "datomic"
- "13edba0fa2bd4c3847160809499ce837f52d1264"
- "158sqawmbszawa132bhfghzlkhd3b0bicdg5dr93v56vvm4i25kl")))
- (package
- (inherit p)
- (arguments
- (substitute-keyword-arguments (package-arguments p)
- ((#:phases phases)
- #~(modify-phases #$phases
- (add-after 'install 'wrap-program
- (lambda* _
- (wrap-program
- (string-append #$output "/bin/transactor")
- `("PATH" ":" =
- (,(string-append #$coreutils "/bin")
- ,(string-append #$gawk "/bin")
- ,(string-append #$openjdk23 "/bin")
- ,(string-append #$sed "/bin")
- ,(string-append #$sqlite-next "/bin")))))))))))))
+ (substitute-keyword-arguments (package-arguments ffmpeg)
+ ((#:configure-flags flags)
+ #~(append
+ #$flags
+ '("--enable-libxml2")))))
+ (inputs
+ (modify-inputs (package-inputs ffmpeg)
+ (append libxml2)))))
-
-
-(define-public (format-inputs l)
- (map (lambda (p)
- (list (package-name p)
- p
- "out"))
- l))
-
-(define-public (normalize-inputs l)
- (map (compose (lambda (l)
- (cons (package-name (car l))
- l))
- list
- specification->package+output
- symbol->string)
- l))
-
-(define-public (gopkgbs name inputs version checksum)
- (let ((p (pkg name version checksum)))
- (package
- (inherit p)
- (arguments
- (substitute-keyword-arguments (package-arguments p)
- ((#:phases phases)
- #~(modify-phases #$phases
- (add-before 'build 'setenv-golang
- (lambda _
- (define (path->flags option)
- (let ((search-path (getenv "GOLIBPACKPATH")))
- (string-join
- (map (lambda (path)
- (string-append option " " path))
- (if search-path
- (string-split search-path #\:)
- '()))
- " ")))
- (setenv "GOCFLAGS" (path->flags "-I"))
- (setenv "GOLDFLAGS" (path->flags "-L"))))))))
- (native-inputs
- (append
- (format-inputs
- (list
- eut
- q:gol))
- (normalize-inputs
- '(gettext
- po4a
- ruby-asciidoctor))
- inputs))
- (native-search-paths
- (list
- (search-path-specification
- (variable "GOLIBPACKPATH")
- (files
- (list "lib/go"))))))))
-
-
-(define-public gotext
- (gopkgbs
- "gotext"
- (format-inputs (list))
- "25af4baaab8db74ba809c863e93dd56e6ffb23ed"
- "1cwh5fc45dii6mpg4fr6a3fdqy37ib63ax8srfhr9jwzw6majha2"))
-
-(define-public uuid
- (gopkgbs
- "uuid"
- (format-inputs (list gotext))
- "8cba50466b837d2f4149ca22d6645f6d6127c63a"
- "139d8vwd9l6hha2cc5skhh799c5b0n1l0dkp8r8m6nisla8bpals"))
-
-(define-public gobang
- (gopkgbs
- "gobang"
- (format-inputs (list gotext uuid))
- "79011564903bd53bb036dea4c1f0745e40efb73c"
- "1rjnvz2wznkxcdhdf0h6mvza2wj2hpirb4vzjxs49g7mfhsp394h"))
-
-
-(define-public (gopkg name inputs version checksum)
- (gopkgbs
- name
- (append inputs (format-inputs (list gotext uuid gobang)))
- version
- checksum))
-
-
-(define-public pds
- (gopkg
- "pds"
- (format-inputs (list))
- "aa855d0dc1c62094d0fbf750f60b5b9f776b47d2"
- "0k10pqqz0pmd4w7lq4qnwr96fl3vhi3c0b4f41knwaslr2lv17xl"))
-
-(define-public urubu
- (gopkg
- "urubu"
- (format-inputs (list))
- "b2351328e54d4793d6691382079a9895dc84696d"
- "1aqrg165qsi0pfihjqndjzqrdd4ipjydjm71rzccz34xf7k7m3ch"))
-
-(define-public stm
- (gopkg
- "stm"
- (format-inputs (list pds))
- "cb89a691031acd7beac798a74d174b572b22319e"
- "1ld84nchnbh7g1dcjw2hvzpqwlpa450rs3i3i0x918911264wcv9"))
-
-(define-public scrypt
- (gopkg
- "scrypt"
- (format-inputs (list q:scryptkdf))
- "6071b32e9a6ab214a18c7ef7ffe59c0d6d68e9ca"
- "0iv4lalmrn3hb71wzrgqgji72f4dwklbaphj3h8nj6lr1zpjzvyq"))
-
-(define-public golite
- (gopkg
- "golite"
- (format-inputs (list q:sqlitex))
- "170dfdf2783c8c2431861f77193c92f40860ea07"
- "13y9vzxhr8jn7px2sgfgjapykr258q12ckf458qi0rkcma1vsz59"))
-
-(define-public fiinha
- (gopkg
- "fiinha"
- (format-inputs (list q:sqlitex golite))
- "24fafda1fe9e962c8e508220c7023dabd5407e4a"
- "1h4ig562flpqsxi52h04npj0nm6038chby8nd2lb8vj1nhiq77al"))
-
-(define-public cracha
- (gopkg
- "cracha"
- (format-inputs (list q:sqlitex golite q:scryptkdf scrypt fiinha))
- "84865499aa10aa42c8b9ac06325a05dd8354f458"
- "0hsnw1rng4ccdmgp4vfgn8jnyp05mqs5z7qvw7micia07li73m70"))
-
-(define-public binder
- (gopkg
- "binder"
- (normalize-inputs '(socat lsof))
- "a45f1e444f6f053635315c8f6fad6ad465f8b0dc"
- "0vwmhb76cw499751228jkd6057bj57wkg1jlwal13mm4x0453mjv"))
-
-(define-public glaze
- (gopkg
- "glaze"
- (format-inputs (list))
- "24e540da26aad0fb6fc6a8845b1cf83757b15dd0"
- "0idyds5wh9rzav7n8q64gwhlsjrzh0kgwp98rwq5rkrc08dqv3sb"))
-
-(define-public hsts
- (gopkg
- "hsts"
- (format-inputs (list))
- "783845f84860968dd5e0f971fea42045c8b8e58c"
- "0c17x9mdka213fkkccxff1wld38qhpfr8gs2h3kzg0s8wnnfvn42"))
-
-(define-public untls
- (gopkg
- "untls"
- (format-inputs (list))
- "b66067d503bac4cfeda83331e045d9c79d8b43c1"
- "09pmvaw6rslvasaa6k598aki6c01anfgazzzkcggisdj775wl6in"))
-
-(define-public wscat
- (gopkg
- "wscat"
- (format-inputs (list))
- "9cc15130935dfaa6b58231ec708a2c71e54c3968"
- "1z85p3v40368jyphip067rlx1m1gpmbvh5d4rjvx1lz81ncpsyf8"))
-
-(define-public gistatic
- (gopkg
- "gistatic"
- (format-inputs (list))
- "1eec478135876b7f325c507d1284aa5782bad09d"
- "1hsdqaszkr52cy80yid5i7r7fa4crc7qkpd5mglzbd9v4v2sispy"))
-
-(define-public chat.papo.im
+(define-public mpvx
(package
- (inherit
- (pkg
- "chat.papo.im"
- "f9c959b2d8e36460395a425a51d480fac635c5ec"
- "0h2y0kdfzpsgi64zi7brnj1p0dqz0fx4ksvy57wakr7pvv6rpf64"))
- (native-inputs
- (normalize-inputs '(node)))))
-
-(define-public papod
- (gopkg
- "papod"
- (format-inputs
- (list stm pds golite q:sqlitex scrypt q:scryptkdf fiinha cracha))
- "3da803b0ff65cf2af71b810ec8fbd28307280d79"
- "1ppg1hg9qlkxg7mzsca0j3wdml5773s2x2h8d1j25hk7cg8kqiaj"))
-
-
-
-(define-public (user-accounts users)
- (map (lambda (user)
- (let ((name (s1:first user))
- (comment (s1:second user))
- (groups (s1:third user)))
- (user-account
- (name name)
- (comment comment)
- (group "users")
- (supplementary-groups groups))))
- users))
-
-(define-public (users->keys users)
- (let ((users-with-keys (filter (compose not null? cdddr)
- users)))
- (append
- (map (lambda (user)
- (let ((name (s1:first user))
- (key (s1:fourth user)))
- `(,name ,(plain-file (str name "-id_rsa.pub")
- (slurp key)))))
- users-with-keys)
- `(("git" ,@(map (lambda (user)
- (let ((name (s1:first user))
- (key (s1:fourth user)))
- (plain-file (str name "-git-id_rsa.pub")
- (slurp key))))
- users-with-keys))))))
-
-(define (tuple->entry tuple)
- (let* ((name (s1:first tuple))
- (package (s1:second tuple))
- (path (str "/etc/" name)))
- (list
- name
- (computed-file
- (str "syskeep-" name)
- #~(begin
- (use-modules
- ((ice-9 textual-ports) #:prefix textual-ports:))
-
- (define (slurp p)
- (call-with-input-file p textual-ports:get-string-all))
-
- (define (spit p s)
- (call-with-output-file
- p
- (lambda (port)
- (display s port))))
-
- (spit #$output
- (slurp #$(file-append package path))))))))
-
-(define (etc-entries package paths)
- (let ((tuples (map (lambda (path)
- (list path package))
- paths)))
- (map tuple->entry tuples)))
-
-(define-public (package-set symbols records)
- (append
- %base-packages
- records
- (map
- (compose list specification->package+output symbol->string)
- symbols)))
-
-(define-public skeletons
- (etc-entries
- syskeep
- '(".profile")))
-
-(define-public base-services
- (append
- (list
-#;
- (service fail2ban-service-type))
- %base-services))
-
-(define-public (activation-gexp name user log-file data-directory run-directory)
- #~(begin
- (use-modules (guix build utils))
- (when #$log-file
- (format (current-error-port)
- "Creating ~a log directory for \"~a\".~%" #$name #$log-file)
- (mkdir-p (dirname #$log-file))
- (when (not (file-exists? #$log-file))
- (call-with-output-file #$log-file (const #t)))
- (chmod #$log-file #o644))
- (let ((user (getpwnam #$user)))
- (when #$data-directory
- (format (current-error-port)
- "Creating ~a data directory \"~a\".~%" #$name #$data-directory)
- (mkdir-p #$data-directory)
- (chown #$data-directory (passwd:uid user) (passwd:gid user))
- (chmod #$data-directory #o750))
- (when #$run-directory
- (format (current-error-port)
- "Creating ~a run directory \"~a\".~%" #$name #$run-directory)
- (mkdir-p #$run-directory)
- (chown #$run-directory (passwd:uid user) (passwd:gid user))
- (chmod #$run-directory #o755)))))
-
-
-
-(define-record-type* <syskeep-configuration>
- syskeep-configuration
- make-syskeep-configuration
- syskeep-configuration?
- (package syskeep-configuration-package (default syskeep))
- (tld syskeep-configuration-tld (default #f))
- (secrets-user syskeep-configuration-secrets-user (default "secrets-keeper"))
- (secrets-group syskeep-configuration-secrets-group (default "secrets-keeper"))
- (become-secrets-group syskeep-configuration-become-secrets-group (default "become-secrets-keeper"))
- (log-file syskeep-configuration-log-file (default "/var/log/cronjobs/cronjobs.log")))
-
-(define (syskeep-profile config)
- (match-record config <syskeep-configuration>
- (package)
- (package-set
- '(parted
- glibc-locales
- guile-heredoc
- acl
- bind:utils
- knot:tools
- certbot
- jq
- file
- git
- lsof
- moreutils
- mailutils-sendmail
- curl
- make
- borg
- pv
- rsync
- sqlite
- strace
- rlwrap
- trash-cli
- tree)
- (list
- uuid
- backupit
- eut
- nicely
- package))))
-
-(define (syskeep-rotations config)
- (match-record config <syskeep-configuration>
- (log-file)
- (list
-#;
- (log-rotation
- (frequency 'weekly)
- (files (list log-file))
- (options '("rotate 52"))))))
-
-(define (syskeep-cronjobs config)
- (match-record config <syskeep-configuration>
- ()
- (list
- #~(job "0 0 * * *" "cronjob env BORG_REPO=/mnt/backup/borg backupit -q -t cron")
- #~(job "0 1 * * *" "cronjob backupit -q -t cron")
- #~(job "0 2 * * *" "cronjob reconfigure")
- #~(job "0 3 * * 0" "cronjob gc")
- #~(job "0 4 * * *" "cronjob guix pull -v3")
- #~(job "0 5 * * 0" "cronjob reconfigure")
- #~(job "0 5 * * *" "cronjob check"))))
-
-(define (syskeep-etc-files config)
- (match-record config <syskeep-configuration>
- (package)
- (etc-entries
- package
- '("rc.sh"
- "backupit.txt"
- "ssh.conf"
- "init.scm"
- "gitconfig"))))
-
-(define (syskeep-accounts config)
- (match-record config <syskeep-configuration>
- (secrets-user secrets-group become-secrets-group)
- (list
- (user-account
- (name secrets-user)
- (group secrets-group)
- (system? #t)
- (comment "System account used to manage production secrets")
- (home-directory "/var/empty")
- (create-home-directory? #f)
- (shell
- (file-append shadow "/sbin/nologin")))
- (user-group
- (name secrets-group)
- (system? #t))
- (user-group
- (name become-secrets-group)
- (system? #t)))))
-
-(define (syskeep-activation config)
- (match-record config <syskeep-configuration>
- (tld log-file)
- (let ((privkey-path (fmt "../../opt/secrets/root@~a.id_rsa.txt" tld)))
- #~(begin
- #$(activation-gexp "syskeep" "root" log-file #f #f)
- (define (dir target)
- (format (current-error-port)
- "Creating directory: \"~a\".~%" target)
- (mkdir-p target))
- (define (link from to)
- (format (current-error-port)
- "Symlink: \"~a\" -> \"~a\".~%" to from)
- (when (file-exists? to)
- (delete-file to))
- (symlink from to))
- (dir "/var/crash")
- (chmod "/var/crash" #o777)
- (link "mnt/production/opt" "/opt")
- (link "mnt/production/srv" "/srv")
- (link "../mnt/production/mail" "/var/mail")
- (dir "/root/.ssh")
- (link #$privkey-path "/root/.ssh/id_rsa")
- (link "../../etc/ssh.conf" "/root/.ssh/config")
- (link "../../etc/id_rsa.pub" "/root/.ssh/id_rsa.pub")
- (link "../../etc/known_hosts" "/root/.ssh/known_hosts")))))
-
-(define-public (syskeep-sysctl _config)
- '(("kernel/core_pattern" . "/var/crash/core-%t-%e-%p-%s-%u-%g")))
-
-(define-public syskeep-sudoers-file
- (plain-file "sudoers-syskeep" "\
-root ALL=(ALL) ALL
-%wheel ALL= ALL
-%wheel ALL= NOPASSWD: /run/current-system/profile/bin/reconfigure, /run/current-system/profile/bin/herd, /run/current-system/profile/bin/repo
-%become-secrets-keeper ALL=(secrets-keeper) NOPASSWD: /run/current-system/profile/bin/rsync, /run/current-system/profile/bin/setfacl, /run/current-system/profile/bin/rm
-%git ALL=(cicd) NOPASSWD: /run/current-system/profile/bin/cicd
-"))
-
-(define-public syskeep-service-type
- (service-type
- (name 'syskeep)
- (extensions
- (list
- (service-extension log-rotation-service-type
- syskeep-rotations)
- (service-extension mcron-service-type
- syskeep-cronjobs)
- (service-extension etc-service-type
- syskeep-etc-files)
- (service-extension account-service-type
- syskeep-accounts)
- (service-extension activation-service-type
- syskeep-activation)
- (service-extension sysctl-service-type
- syskeep-sysctl)
- (service-extension profile-service-type
- syskeep-profile)))
- (default-value (syskeep-configuration))
- (description "Common configuration of maintained servers.")))
-
-
-
-(define-record-type* <transactor-configuration>
- transactor-configuration
- make-transactor-configuration
- transactor-configuration?
- (package transactor-configuration-package (default datomic))
- (user transactor-configuration-user (default "transactor"))
- (group transactor-configuration-group (default "peer"))
- (port transactor-configuration-port (default 50200))
- (log-file transactor-configuration-log-file (default "/var/log/transactor/transactor.log"))
- (base-directory transactor-configuration-data-directory (default "/var/lib/transactor"))
- (run-in-container? transactor-configuration-run-in-container? (default #t))
- (container-name transactor-configuration-container-name (default "datomic-container")))
-
-(define-public (transactor-command config)
- (match-record config <transactor-configuration>
- (package user group base-directory run-in-container? container-name)
- (let ((bin (file-append package "/bin/transactor")))
- (if (not run-in-container?)
- bin
- (least-authority-wrapper
- bin
- #:user user
- #:group group
- #:directory base-directory
- #:name container-name
- #:namespaces (s1:fold delq container:%namespaces '(net))
- #:preserved-environment-variables
- '()
- #:mappings
- (list
- (file-system-mapping
- (source base-directory)
- (target source)
- (writable? #t))))))))
-
-(define-public (transactor-shepherd-services config)
- (match-record config <transactor-configuration>
- (port user group log-file base-directory)
- (list
- (shepherd-service
- (provision '(transactor))
- (requirement '())
- (start
- #~(make-forkexec-constructor
- (list #$(transactor-command config)
- "-p" (number->string #$port)
- (string-append #$base-directory "/data/storage.db"))
- #:user #$user
- #:group #$group
- #:log-file #$log-file
- #:directory #$base-directory))
- (stop #~(make-kill-destructor))
- (documentation "Daemon transactor process.")))))
-
-(define-public (transactor-activation config)
- (match-record config <transactor-configuration>
- (user log-file base-directory)
- #~(begin
- (use-modules
- (guix build utils))
- (format
- (current-error-port)
- "Creating Transactor data directories under: \"~a\".~%"
- #$base-directory)
- (mkdir-p/perms (string-append #$base-directory "/data")
- (getpwnam #$user)
- #o750)
- (mkdir-p/perms (string-append #$base-directory "/backup")
- (getpwnam #$user)
- #o750)
- (format
- (current-error-port)
- "Creating Transactor log directory for \"~a\".~%"
- #$log-file)
- (mkdir-p (dirname #$log-file))
- (when (not (file-exists? #$log-file))
- (call-with-output-file #$log-file (const #t)))
- (chmod #$log-file #o644))))
-
-(define-public (transactor-accounts config)
- (match-record config <transactor-configuration>
- (user group)
- (list
- (user-account
- (name user)
- (group group)
- (comment "Datomic transactor system user")
- (create-home-directory? #f)
- (shell
- (file-append shadow "/sbin/nologin"))
- (system? #t))
- (user-group
- (name group)
- (system? #t)))))
-
-(define (transactor-cronjobs config)
- (match-record config <transactor-configuration>
- (base-directory)
- (let ((from (string-append base-directory "/data/storage.db"))
- (to (string-append base-directory "/backup")))
- (list
- #~(job "0 23 * * *" (format #f "cronjob datomic backup ~a ~a" #$from #$to))
- #~(job "0 6 * * *" (format #f "cronjob datomic gc ~a" #$from))))))
-
-(define-public transactor-service-type
- (service-type
- (name 'transactor)
- (extensions
- (list
- (service-extension shepherd-root-service-type
- transactor-shepherd-services)
- (service-extension activation-service-type
- transactor-activation)
- (service-extension account-service-type
- transactor-accounts)
- (service-extension mcron-service-type
- transactor-cronjobs)
- (service-extension profile-service-type
- (compose list transactor-configuration-package))))
- (default-value (transactor-configuration))
- (description "Transactor service.")))
-
-
-(define-record-type* <git-configuration>
- git-configuration
- make-git-configuration
- git-configuration?
- (package git-configuration-package (default git))
- (user git-configuration-user (default "git"))
- (group git-configuration-group (default "git"))
- (export-all? git-configuration-export-all? (default #f))
- (base-path git-configuration-base-path (default "/srv/git"))
- (user-path git-configuration-user-path (default #f))
- (run-in-container? git-configuration-run-in-container? (default #f))
- (container-name git-configuration-container-name (default "git-container"))
- (run-server? git-configuration-run-server? (default #f)))
-
-(define-public (git-command config)
- (match-record config <git-configuration>
- (package user group base-path run-in-container? container-name)
- (let ((bin (file-append package "/bin/git")))
- (if (not run-in-container?)
- bin
- (least-authority-wrapper
- bin
- #:user user
- #:group group
- #:name container-name
- #:directory base-path
- #:preserved-environment-variables
- '()
- #:mappings
- (list
- (file-system-mapping
- (source base-path)
- (target source)
- (writable? #t))))))))
-
-(define-public (git-shepherd-services config)
- (match-record config <git-configuration>
- (user group export-all? base-path user-path run-server?)
- (if (not run-server?)
- (list)
- (list
- (shepherd-service
- (provision '(git))
- (requirement '(networking))
- (start
- #~(make-forkexec-constructor
- (list #$(git-command config)
- "daemon" "--syslog" "--reuseaddr"
- #$@(mklist (and export-all? "--export-all"))
- #$@(mklist (and base-path (str "--base-path=" base-path)))
- #$@(mklist (and user-path (str "--user-path=" user-path))))
- #:user #$user
- #:group #$group))
- (documentation "Daemon process of the git:// protocol."))))))
-
-(define-public (git-accounts config)
- (match-record config <git-configuration>
- (user group base-path)
- (list
- (user-account
- (name user)
- (group group)
- (system? #t)
- (comment "External SSH Git service user")
- (home-directory base-path)
- (create-home-directory? #f))
- (user-group
- (name group)
- (system? #t)))))
-
-(define-public git-service-type
- (service-type
- (name 'git)
- (extensions
- (list
- (service-extension shepherd-root-service-type
- git-shepherd-services)
- (service-extension account-service-type
- git-accounts)
- (service-extension profile-service-type
- (compose list git-configuration-package))))
- (default-value (git-configuration))
- (description "Better git:// service.")))
-
-
-
-(define-record-type* <binder-configuration>
- binder-configuration
- make-binder-configuration
- binder-configuration?
- (name binder-configuration-name (default "binder"))
- (package binder-configuration-package (default binder))
- (user binder-configuration-user (default "binder"))
- (group binder-configuration-group (default "binder"))
- (log-file binder-configuration-log-file (default "/var/log/binder/binder.log"))
- (data-directory binder-configuration-data-directory (default #f))
- (run-directory binder-configuration-run-directory (default "/var/run/binder"))
- (run-in-container? binder-configuration-run-in-container? (default #t))
- (container-name binder-configuration-container-name (default "binder-container"))
- (options binder-configuration-options (default '()))
- (listen-socket binder-configuration-listen-socket (default "0.0.0.0:4443"))
- (upstream-socket binder-configuration-upstream-socket (default "/var/run/untls/untls.socket")))
-
-(define-record-type* <glaze-configuration>
- glaze-configuration
- make-glaze-configuration
- glaze-configuration?
- (name glaze-configuration-name (default "glaze"))
- (package glaze-configuration-package (default glaze))
- (user glaze-configuration-user (default "glaze"))
- (group glaze-configuration-group (default "glaze"))
- (log-file glaze-configuration-log-file (default "/var/log/glaze/glaze.log"))
- (data-directory glaze-configuration-data-directory (default "/var/lib/glaze"))
- (run-directory glaze-configuration-run-directory (default "/var/run/glaze"))
- (run-in-container? glaze-configuration-run-in-container? (default #t))
- (container-name glaze-configuration-container-name (default "glaze-container"))
- (options glaze-configuration-options (default '()))
- (listen-socket glaze-configuration-listen-socket (default "/var/run/glaze/glaze.socket"))
- (upstream-socket glaze-configuration-upstream-socket (default #f)))
-
-(define-record-type* <hsts-configuration>
- hsts-configuration
- make-hsts-configuration
- hsts-configuration?
- (name hsts-configuration-name (default "hsts"))
- (package hsts-configuration-package (default hsts))
- (user hsts-configuration-user (default "hsts"))
- (group hsts-configuration-group (default "hsts"))
- (log-file hsts-configuration-log-file (default "/var/log/hsts/hsts.log"))
- (data-directory hsts-configuration-data-directory (default #f))
- (run-directory hsts-configuration-run-directory (default "/var/run/hsts"))
- (run-in-container? hsts-configuration-run-in-container? (default #t))
- (container-name hsts-configuration-container-name (default "hsts-container"))
- (options hsts-configuration-options (default '()))
- (listen-socket hsts-configuration-listen-socket (default "/var/run/hsts/hsts.socket"))
- (upstream-socket hsts-configuration-upstream-socket (default #f)))
-
-(define-record-type* <untls-configuration>
- untls-configuration
- make-untls-configuration
- untls-configuration?
- (name untls-configuration-name (default "untls"))
- (package untls-configuration-package (default untls))
- (user untls-configuration-user (default "untls"))
- (group untls-configuration-group (default "untls"))
- (log-file untls-configuration-log-file (default "/var/log/untls/untls.log"))
- (data-directory untls-configuration-data-directory (default #f))
- (run-directory untls-configuration-run-directory (default "/var/run/untls"))
- (run-in-container? untls-configuration-run-in-container? (default #t))
- (container-name untls-configuration-container-name (default "untls-container"))
- (options untls-configuration-options (default '()))
- (listen-socket untls-configuration-listen-socket (default "/var/run/untls/untls.socket"))
- (upstream-socket untls-configuration-upstream-socket (default #f)))
-
-(define-record-type* <wscat-configuration>
- wscat-configuration
- make-wscat-configuration
- wscat-configuration?
- (name wscat-configuration-name (default "wscat"))
- (package wscat-configuration-package (default wscat))
- (user wscat-configuration-user (default "wscat"))
- (group wscat-configuration-group (default "wscat"))
- (log-file wscat-configuration-log-file (default "/var/log/wscat/wscat.log"))
- (data-directory wscat-configuration-data-directory (default #f))
- (run-directory wscat-configuration-run-directory (default "/var/run/wscat"))
- (run-in-container? wscat-configuration-run-in-container? (default #t))
- (container-name wscat-configuration-container-name (default "wscat-container"))
- (options wscat-configuration-options (default '()))
- (listen-socket wscat-configuration-listen-socket (default "/var/run/wscat/wscat.socket"))
- (upstream-socket wscat-configuration-upstream-socket (default "/var/run/papod/papod.socket")))
-
-(define-public (profile-for config-type)
- (lambda (config)
- (m:match config
- (($ config-type _name package)
- (list package)))))
-
-(define-public (rotations-for config-type)
- (lambda (config)
- (m:match config
- (($ config-type _name _package _user _group log-file)
- (list
-#;
- (log-rotation
- (frequency 'weekly)
- (files (list log-file))
- (options '("rotate 5200"))))))))
-
-(define-public (activation-for config-type)
- (lambda (config)
- (m:match config
- (($ config-type name _package user _group log-file data-directory
- run-directory)
- (activation-gexp name user log-file data-directory run-directory)))))
-
-(define-public (accounts-for config-type)
- (lambda (config)
- (m:match config
- (($ config-type name _package user group)
- (list
- (user-group
- (name group)
- (system? #t))
- (user-account
- (name user)
- (group group)
- (system? #t)
- (comment (format #f "The user for runtime execution of ~a code" name))
- (home-directory "/var/empty")
- (create-home-directory? #f)
- (shell
- (file-append shadow "/sbin/nologin"))))))))
-
-(define-public (cmd-for config-type config)
- (m:match config
- (($ config-type name package user group _log-file data-directory
- _run-directory run-in-container? container-name)
- (let ((bin (file-append package (str "/bin/" name))))
- (if (not run-in-container?)
- bin
- (least-authority-wrapper
- bin
- #:user user
- #:group group
- #:name container-name
- #:directory (or data-directory "/")
- #:preserved-environment-variables
- '()
- #:mappings
- (mklist
- (and data-directory
- (file-system-mapping
- (source data-directory)
- (target source)
- (writable? #t))))))))))
-
-(define-public (shepherd-services-for config-type)
- (lambda (config)
- (m:match config
- (($ config-type name _package user group log-file data-directory
- _run-directory _run-in-container? _container-name options
- listen-socket upstream-socket)
- (list
- (shepherd-service
- (provision (list (string->symbol name)))
- (requirement '(networking))
- (auto-start? #f)
- (start
- #~(make-forkexec-constructor
- (list #$(cmd-for config-type config)
- #$@options
- #$@(mklist listen-socket)
- #$@(mklist upstream-socket))
- #:user #$user
- #:group #$group
- #:log-file #$log-file
- #:directory #$data-directory))
- (documentation
- (fmt "The Shepherd service that runs the server via \"~a\"." name))))))))
-
-(define-public (service-type-for name config-type config extensions)
- (service-type
- (name name)
- (extensions
- (append
- (list
- (service-extension shepherd-root-service-type
- (shepherd-services-for config-type))
- (service-extension profile-service-type
- (profile-for config-type))
- (service-extension activation-service-type
- (activation-for config-type))
- (service-extension account-service-type
- (accounts-for config-type))
- (service-extension log-rotation-service-type
- (rotations-for config-type)))
- extensions))
- (default-value config)
- (description
- (fmt "The top-level generic system service, generated for ~a code.
-
-It includes:
-- the Shepherd service for starting, stopping and reloading the service;
-- activation script for setting up the initial directories and permissions;
-- the group and account for running the production service;
-- log management (storage and rotation) for logs produced by the running services.
-
-The default configuration should provide sane values for all of these."
- name))))
-
-(define-public (without-shepherd-services lst)
- (filter (lambda (extension)
- (not (eq? shepherd-root-service-type
- (service-extension-target extension))))
- lst))
-
-(define-public (replacing-shepherd-services service fn)
- (service-type
- (inherit service)
- (extensions
- (append
- (without-shepherd-services
- (service-type-extensions service))
- (list
- (service-extension shepherd-root-service-type
- fn))))))
-
-(define-public (with-services-from-args service config-type args)
- (replacing-shepherd-services
- service
- (lambda (config)
- (m:match config
- (($ config-type _name _package user group log-file data-directory)
- (map (lambda (tuple)
- (let ((provision (s1:first tuple))
- (args (s1:second tuple)))
- (shepherd-service
- (provision provision)
- (requirement '(networking))
- (auto-start? #f)
- (start
- #~(make-forkexec-constructor
- (list #$(cmd-for config-type config)
- #$@args)
- #:user #$user
- #:group #$group
- #:log-file #$log-file
- #:directory #$data-directory)))))
- args))))))
-
-
-
-(define-public binder-service-type
- (service-type-for 'binder <binder-configuration> (binder-configuration) '()))
-
-(define-public glaze-service-type
- (service-type-for 'glaze <glaze-configuration> (glaze-configuration) '()))
-
-(define-public hsts-service-type
- (service-type-for 'hsts <hsts-configuration> (hsts-configuration) '()))
-
-(define-public untls-service-type
- (service-type-for 'untls <untls-configuration> (untls-configuration) '()))
+ (inherit mpv)
+ (name "mpvx")
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs mpv)
+ (replace "ffmpeg" ffmpegx)))))
-(define-public wscat-service-type
- (service-type-for 'wscat <wscat-configuration> (wscat-configuration) '()))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Our packages ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define-record-type* <cicd-configuration>
- cicd-configuration
- make-cicd-configuration
- cicd-configuration?
- (name cicd-configuration-name (default "cicd"))
- (package cicd-configuration-package (default cicd))
- (user cicd-configuration-user (default "cicd"))
- (group cicd-configuration-group (default "cicd"))
- (log-file cicd-configuration-log-file (default "/var/log/cicd/cicd.log"))
- (data-directory cicd-configuration-data-directory (default "/var/lib/cicd"))
- (run-directory cicd-configuration-run-directory (default "/var/run/cicd"))
- (run-in-container? cicd-configuration-run-in-container? (default #f))
- (container-name cicd-configuration-container-name (default "cicd")))
+(define-public euandre.org
+ (pkgs:mkwbpkg
+ +tld+
+ "euandre.org"
+ (list pkgs:eslaides pkgs:eut pkgs:mktorrent pkgs:mkwb pkgs:xadoc)
+ '(ghostscript gnupg imagemagick lilypond moreutils ruby-asciidoctor
+ tidy-html)
+ "7c016c48b6356147c567a9222de45dd50dd8a405"
+ "18fx5ww67hligr2mfgcvcmn4pdwjnr4qqgkbh306ia7rd2km8yyw"
+ ""
+ ""))
-(define (cicd-profile config)
- (match-record config <cicd-configuration>
- (package)
- (list
- q
- package)))
+(define-public hunspell-dict-en-utf8
+ (hunspell-dictionary-utf8 "en"))
-(define (cicd-shepherd-services config)
- (match-record config <cicd-configuration>
- (user group log-file data-directory)
- (list
- (shepherd-service
- (provision '(cicd))
- (requirement '())
- (auto-start? #f)
- (start
- #~(make-forkexec-constructor
- (list
- #$(cmd-for <cicd-configuration> config)
- "daemon")
- #:user #$user
- #:group #$group
- #:log-file #$log-file
- #:directory #$data-directory))
- (documentation "The background daemon service that powers the CI.")))))
+(define-public hunspell-dict-pt-utf8
+ (hunspell-dictionary-utf8 "pt"))
-(define-public cicd-service-type
- (service-type
- (name 'cicd)
- (extensions
- (list
- (service-extension shepherd-root-service-type
- cicd-shepherd-services)
- (service-extension profile-service-type
- cicd-profile)
- (service-extension activation-service-type
- (activation-for <cicd-configuration>))
- (service-extension account-service-type
- (accounts-for <cicd-configuration>))
- (service-extension log-rotation-service-type
- (rotations-for <cicd-configuration>))))
- (default-value (cicd-configuration))
- (description (fmt "The CI agent service that backs a Git server."))))
+(define-public hunspell-dict-fr-utf8
+ (hunspell-dictionary-utf8 "fr"))
+(define-public hunspell-dict-eo-utf8
+ (hunspell-dictionary-utf8 "eo"))
-(define-record-type* <papod-configuration>
- papod-configuration
- make-papod-configuration
- papod-configuration?
- (name papod-configuration-name
- (default "papod"))
- (package papod-configuration-package
- (default papod))
- (user papod-configuration-user
- (default "papod"))
- (group papod-configuration-group
- (default "papod"))
- (log-file papod-configuration-log-file
- (default "/var/log/papod/papod.log"))
- (data-directory papod-configuration-data-directory
- (default "/var/lib/papod"))
- (run-directory papod-configuration-run-directory
- (default "/var/run/papod"))
- (run-in-container? papod-configuration-run-in-container?
- (default #t))
- (container-name papod-configuration-container-name
- (default "papod-container"))
- (options papod-configuration-options
- (default '()))
- (listen-socket papod-configuration-listen-socket
- (default "/var/run/papod/papod.socket"))
- (upstream-socket papod-configuration-upstream-socket
- (default #f)))
+(define-public hunspell-dict-es-utf8
+ (hunspell-dictionary-utf8 "es"))
+(define-public hunspell-dict-de-utf8
+ (hunspell-dictionary-utf8 "de"))
-#;
-(define-public papod-service-type
- (pkg:service-type-for 'papod
- <papod-configuration>
- (papod-configuration)
- '()))
+(define-public hunspell-dict-it-utf8
+ (hunspell-dictionary-utf8 "it"))
(list
- mktorrent-latest
- remembering
- eut
- cage
- backupit
- nicely
- syskeep
- q
- cicd
- guile-heredoc
- adoc
- eslaides
- mkwb
+ gm2
+ ffmpegx
+ mpvx
euandre.org
-
- datomic
-
- gotext
- uuid
- gobang
- pds
- stm
- golite
- binder
- glaze
- hsts
- untls
- wscat
- gistatic
- urubu
- fiinha
- cracha
-
- papo.im
- chat.papo.im
- papod)
+ hunspell-dict-en-utf8
+ hunspell-dict-pt-utf8
+ hunspell-dict-fr-utf8
+ hunspell-dict-eo-utf8
+ hunspell-dict-es-utf8
+ hunspell-dict-de-utf8
+ hunspell-dict-it-utf8)