This patch allows the Haskell daemons to locate Python libraries installed to a non-standard pythondir. It is necessary because Guix does not use versionedsharedir (see related patch that disables it). diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -83,6 +83,7 @@ myexeclibdir = $(pkglibdir) bindir = $(versiondir)/$(BINDIR) sbindir = $(versiondir)$(SBINDIR) mandir = $(versionedsharedir)/root$(MANDIR) +pythondir = $(versionedsharedir) pkgpythondir = $(versionedsharedir)/ganeti pkgpython_rpc_stubdir = $(versionedsharedir)/ganeti/rpc/stub gntpythondir = $(versionedsharedir) @@ -2386,6 +2387,7 @@ src/AutoConf.hs: Makefile src/AutoConf.hs.in $(PRINT_PY_CONSTANTS) \ -DPKGLIBDIR="$(libdir)/ganeti" \ -DSHAREDIR="$(prefix)/share/ganeti" \ -DVERSIONEDSHAREDIR="$(versionedsharedir)" \ + -DPYTHONDIR="$(pythondir)" \ -DDRBD_BARRIERS="$(DRBD_BARRIERS)" \ -DDRBD_NO_META_FLUSH="$(DRBD_NO_META_FLUSH)" \ -DSYSLOG_USAGE="$(SYSLOG_USAGE)" \ diff --git a/src/AutoConf.hs.in b/src/AutoConf.hs.in --- a/src/AutoConf.hs.in +++ b/src/AutoConf.hs.in @@ -157,6 +157,9 @@ sharedir = "SHAREDIR" versionedsharedir :: String versionedsharedir = "VERSIONEDSHAREDIR" +pythondir :: String +pythondir = "PYTHONDIR" + drbdBarriers :: String drbdBarriers = "DRBD_BARRIERS" diff --git a/src/Ganeti/Path.hs b/src/Ganeti/Path.hs --- a/src/Ganeti/Path.hs +++ b/src/Ganeti/Path.hs @@ -188,5 +188,5 @@ getInstReasonFilename instName = instanceReasonDir `pjoin` instName -- | The path to the Python executable for starting jobs. jqueueExecutorPy :: IO FilePath -jqueueExecutorPy = return $ versionedsharedir - "ganeti" "jqueue" "exec.py" +jqueueExecutorPy = return $ pythondir + "ganeti" "jqueue" "exec.py" diff --git a/src/Ganeti/Query/Exec.hs b/src/Ganeti/Query/Exec.hs --- a/src/Ganeti/Query/Exec.hs +++ b/src/Ganeti/Query/Exec.hs @@ -99,12 +99,12 @@ spawnJobProcess jid = withErrorLogAt CRITICAL (show jid) $ do use_debug <- isDebugMode env_ <- (M.toList . M.insert "GNT_DEBUG" (if use_debug then "1" else "0") - . M.insert "PYTHONPATH" AC.versionedsharedir + . M.insert "PYTHONPATH" AC.pythondir . M.fromList) `liftM` getEnvironment execPy <- P.jqueueExecutorPy logDebug $ "Executing " ++ AC.pythonPath ++ " " ++ execPy - ++ " with PYTHONPATH=" ++ AC.versionedsharedir + ++ " with PYTHONPATH=" ++ AC.pythondir (master, child) <- pipeClient connectConfig let (rh, wh) = clientToHandle child 2024-09-16services: admin: Support rebooting after an unattended upgrade...* gnu/services/admin.scm (unattended-upgrade-configuration): Add reboot? field. When truthy, unattended upgrade will stop the shepherd root service, triggering a reboot. * doc/guix.texi (Unattended Upgrades): Document it. Change-Id: I0af659b3c318421b1a7baa94dde3dadacc1fa10d Signed-off-by: Ludovic Courtès <ludo@gnu.org> Richard Sent 2023-10-24services: admin: Export rottlog-configuration accessors....* gnu/services/admin.scm (<rottlog-configuration>): Rename accessors rottlog-rottlog to rottlog-configuration-rottlog, rottlog-rc-file to rottlog-configuration-rc-file, rottlog-rotations to rottlog-configuration-rotations, rottlog-jobs to rottlog-configuration-jobs. (rottlog-etc, rottlog-jobs-or-default, rottlog-service-type): Adjust accordingly. Simon Tournier 2023-08-22services: file-database: Clarify 'excluded-directories' description....* gnu/services/admin.scm (file-database-configuration)[excluded-directories]: Mention that these are regexps. (%default-file-database-excluded-directories): Likewise. * doc/guix.texi (File Search Services): Adjust accordingly. Ludovic Courtès 2023-08-22services: file-database: Set 'PATH' for 'updatedb'....Previously 'updatedb' would fail to find 'sed', 'rm', etc. * gnu/services/admin.scm (file-database-mcron-jobs): Set PATH before invoking 'updatedb'. Ludovic Courtès 2023-08-07services: Add 'package-database' service....* gnu/services/admin.scm (%default-package-database-update-schedule): New variable. (<package-database-configuration>): New record type. (package-database-mcron-jobs): New procedure. (package-database-service-type): New variable. * doc/guix.texi (File Search Services): Document it. Ludovic Courtès 2023-08-07services: Add 'file-database' service....* gnu/services/admin.scm (%default-file-database-update-schedule) (%default-file-database-excluded-directories): New variables. (<file-database-configuration>): New record type. (file-database-mcron-jobs): New procedure. (file-database-service-type): New variable. * doc/guix.texi (File Search Services): New node. Ludovic Courtès 2023-01-10services: unattended-upgrade: Add 'operating-system-expression' field....* gnu/services/admin.scm (<unattended-upgrade-configuration>) [operating-system-expression]: New field. (unattended-upgrade-mcron-jobs): Honor it. * doc/guix.texi (Unattended Upgrades): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Giacomo Leidi