From c2c6421d3f8db9920fe50f07eff226641586f87a Mon Sep 17 00:00:00 2001 From: Timo Wilken Date: Thu, 4 Jul 2024 19:52:32 +0200 Subject: Fix system package installation on lud Previously, this led to e.g. coreutils not being installed system-wide. Switch to not specifying the `operating-system-packages' field at all and just use `profile-service-type'. This also lets me move Nextcloud-specific packages into the appropriate service module. --- tw/services/nextcloud.scm | 10 ++++++++++ tw/system/lud.scm | 21 ++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/tw/services/nextcloud.scm b/tw/services/nextcloud.scm index 4347b100..177af535 100644 --- a/tw/services/nextcloud.scm +++ b/tw/services/nextcloud.scm @@ -3,16 +3,20 @@ #:use-module (gnu) #:use-module (gnu packages backup) #:use-module (gnu packages certs) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages linux) #:use-module (gnu packages php) + #:use-module (gnu packages tls) #:use-module (gnu packages web) + #:use-module (gnu services) #:use-module (gnu services certbot) #:use-module (gnu services mcron) #:use-module (gnu services web) #:use-module (guix gexp) #:use-module ((guix packages) #:select (package-version)) #:use-module ((guix utils) #:select (version-major)) + #:use-module (tw packages php) #:use-module (tw services restic) #:use-module (tw services web)) @@ -282,6 +286,12 @@ opcache.revalidate_freq=120 ("PATH" . "/run/setuid-programs:/run/current-system/profile/bin:/run/current-system/profile/sbin"))) (php-ini-file %nextcloud-php.ini))) + (simple-service 'nextcloud-packages profile-service-type + (list + ;; PHP modules must be installed in system profile, as that's + ;; referred to in Nextcloud's php.ini. + php php-apcu php-imagick openssl curl)) + (simple-service 'nextcloud-certificates certbot-service-type (list (certificate-configuration (domains (list nextcloud-domain)) diff --git a/tw/system/lud.scm b/tw/system/lud.scm index 44bd4293..a5b9d58e 100644 --- a/tw/system/lud.scm +++ b/tw/system/lud.scm @@ -1,10 +1,10 @@ (define-module (tw system lud) #:use-module (gnu) #:use-module (gnu bootloader grub) + #:use-module (gnu services) #:use-module (gnu system locale) #:use-module (gnu system nss) #:use-module (guix gexp) - #:use-module (tw packages php) #:use-module (tw services dns) #:use-module (tw services games) #:use-module (tw services nextcloud) @@ -16,9 +16,8 @@ #:use-module (tw services web) #:use-module (tw system)) -(use-package-modules acl admin bash certs databases guile-xyz linux man php - python python-xyz rsync shells tls tor version-control - video) +(use-package-modules acl admin bash certs databases guile-xyz linux man python + python-xyz rsync shells tor version-control video) (use-service-modules certbot cgit databases dbus desktop docker file-sharing mcron monitoring networking pm ssh syncthing version-control vpn web) @@ -50,17 +49,6 @@ ;; Choose UK English console keyboard layout. (keyboard-layout %british-keyboard) - ;; Packages installed system-wide. Users can also install packages - ;; under their own account: use 'guix search KEYWORD' to search - ;; for packages and 'guix install PACKAGE' to install a package. - (packages - (list - ffmpeg tor ; for video downloader - ;; For Nextcloud. PHP modules must be installed in system - ;; profile, as that's referred to in Nextcloud's php.ini. - ;; curl is already installed by `server-base-services'. - php php-apcu php-imagick openssl)) - ;; Below is the list of system services. To search for available ;; services, run 'guix system search KEYWORD' in a terminal. (services @@ -74,7 +62,10 @@ ,(local-file "files/timo-phone-gpg.pub") ,(local-file "files/timo-phone-password-store.pub")))) + ;; For video downloader. (service tor-service-type) + (simple-service 'video-downloader-packages profile-service-type + (list ffmpeg tor)) (service thermald-service-type (thermald-configuration -- cgit v1.2.3