~ruther/guix-local

fc52420c9b10851aeeac6b393884ae350ec22be1 — Reed Meyerson 1 year, 9 months ago 678b3dd
gnu: ganeti: Fix compilation.

* gnu/packages/patches/ganeti-openssh-test-fix.patch,
gnu/packages/patches/ganeti-sphinx-import.patch: New files.
* gnu/packages/virtualization.scm (ganeti)[source]: Use them.
[arguments]: Adjust ‘adjust-tests’ phase.
* gnu/local.mk (dist_patch_DATA): Add patches.

Change-Id: I21c4dd5e7210021e8905dc6237bd5148aeed930d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
M gnu/local.mk => gnu/local.mk +2 -0
@@ 1345,12 1345,14 @@ dist_patch_DATA =						\
  %D%/packages/patches/ganeti-disable-version-symlinks.patch	\
  %D%/packages/patches/ganeti-haskell-pythondir.patch		\
  %D%/packages/patches/ganeti-lens-compat.patch			\
  %D%/packages/patches/ganeti-openssh-test-fix.patch		\
  %D%/packages/patches/ganeti-pyyaml-compat.patch		\
  %D%/packages/patches/ganeti-procps-compat.patch		\
  %D%/packages/patches/ganeti-reorder-arbitrary-definitions.patch	\
  %D%/packages/patches/ganeti-relax-dependencies.patch		\
  %D%/packages/patches/ganeti-shepherd-master-failover.patch	\
  %D%/packages/patches/ganeti-shepherd-support.patch		\
  %D%/packages/patches/ganeti-sphinx-import.patch		\
  %D%/packages/patches/ganeti-template-haskell-2.17.patch	\
  %D%/packages/patches/ganeti-template-haskell-2.18.patch	\
  %D%/packages/patches/gawk-shell.patch				\

A gnu/packages/patches/ganeti-openssh-test-fix.patch => gnu/packages/patches/ganeti-openssh-test-fix.patch +46 -0
@@ 0,0 1,46 @@
From 8a06656acf8f6e3dfa907bea77bd57a469a8d3fb Mon Sep 17 00:00:00 2001
From: codefritzel <pascal-pf@hotmail.de>
Date: Thu, 11 Jul 2024 23:10:41 +0200
Subject: replace dsa with rsa in TestUpdateSshRoot

DSA to be deactivated in OpenSSH from 2025. Since version 7.0 dsa is
marked as deprecated.

The TestUpdateSshRoot uses DSA, which will fail in the future with newer
OpenSSH versions.

fixes #1752

Signed-off-by: codefritzel <pascal-pf@hotmail.de>

diff --git a/test/py/ganeti.tools.prepare_node_join_unittest.py b/test/py/ganeti.tools.prepare_node_join_unittest.py
index fe7efdf8c..fe029b8f2 100755
--- a/test/py/ganeti.tools.prepare_node_join_unittest.py
+++ b/test/py/ganeti.tools.prepare_node_join_unittest.py
@@ -229,20 +229,20 @@ class TestUpdateSshRoot(unittest.TestCase):
   def testUpdate(self):
     data = {
       constants.SSHS_SSH_ROOT_KEY: [
-        (constants.SSHK_DSA, "privatedsa", "ssh-dss pubdsa"),
+        (constants.SSHK_RSA, "privatersa", "ssh-rsa pubrsa"),
         ],
-      constants.SSHS_SSH_KEY_TYPE: "dsa",
-      constants.SSHS_SSH_KEY_BITS: 1024,
+      constants.SSHS_SSH_KEY_TYPE: "rsa",
+      constants.SSHS_SSH_KEY_BITS: 2048,
       }
 
     prepare_node_join.UpdateSshRoot(data, False,
                                     _homedir_fn=self._GetHomeDir)
     self.assertEqual(os.listdir(self.tmpdir), [".ssh"])
     self.assertEqual(sorted(os.listdir(self.sshdir)),
-                     sorted(["authorized_keys", "id_dsa", "id_dsa.pub"]))
-    self.assertTrue(utils.ReadFile(utils.PathJoin(self.sshdir, "id_dsa"))
+                     sorted(["authorized_keys", "id_rsa", "id_rsa.pub"]))
+    self.assertTrue(utils.ReadFile(utils.PathJoin(self.sshdir, "id_rsa"))
                     is not None)
-    pub_key = utils.ReadFile(utils.PathJoin(self.sshdir, "id_dsa.pub"))
+    pub_key = utils.ReadFile(utils.PathJoin(self.sshdir, "id_rsa.pub"))
     self.assertTrue(pub_key is not None)
     self.assertEqual(utils.ReadFile(utils.PathJoin(self.sshdir,
                                                     "authorized_keys")),

A gnu/packages/patches/ganeti-sphinx-import.patch => gnu/packages/patches/ganeti-sphinx-import.patch +12 -0
@@ 0,0 1,12 @@
diff --git a/lib/build/sphinx_ext.py b/lib/build/sphinx_ext.py
index ca8b8216e..017f52343 100644
--- a/lib/build/sphinx_ext.py
+++ b/lib/build/sphinx_ext.py
@@ -45,7 +45,6 @@ import docutils.parsers.rst
 from docutils.parsers.rst import Directive
 
 import sphinx.errors
-import sphinx.util.compat
 import sphinx.roles
 import sphinx.addnodes
 

M gnu/packages/virtualization.scm => gnu/packages/virtualization.scm +10 -2
@@ 772,10 772,12 @@ firmware blobs.  You can
                                       "ganeti-procps-compat.patch"
                                       "ganeti-disable-version-symlinks.patch"
                                       "ganeti-lens-compat.patch"
                                       "ganeti-openssh-test-fix.patch"
                                       "ganeti-template-haskell-2.17.patch"
                                       "ganeti-template-haskell-2.18.patch"
                                       "ganeti-reorder-arbitrary-definitions.patch"
                                       "ganeti-relax-dependencies.patch"))))
                                       "ganeti-relax-dependencies.patch"
                                       "ganeti-sphinx-import.patch"))))
    (build-system gnu-build-system)
    (arguments
     `(#:imported-modules (,@%default-gnu-imported-modules


@@ 919,13 921,19 @@ firmware blobs.  You can
               (("test/py/ganeti\\.hypervisor\\.hv_kvm_unittest\\.py") "")
               (("test/py/ganeti\\.tools\\.ensure_dirs_unittest\\.py") "")
               (("test/py/ganeti\\.utils\\.io_unittest-runasroot\\.py") "")
               ;; Tracked at: https://github.com/ganeti/ganeti/issues/1752
               (("test/py/ganeti\\.ssh_unittest\\.py") "")
               ;; Disable the bash_completion test, as it requires the full
               ;; bash instead of bash-minimal.
               (("test/py/bash_completion\\.bash")
                "")
               ;; This test requires networking.
               (("test/py/import-export_unittest\\.bash")
                ""))))
                ""))
             (substitute* "test/hs/Test/Ganeti/OpCodes.hs"
               ;; Some serdes failure, tracked at:
               ;; https://github.com/ganeti/ganeti/issues/1753
               ((", 'case_py_compat_types") ""))))
         (add-after 'build 'build-bash-completions
           (lambda _
             (setenv "PYTHONPATH" ".")