← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~tushar5526/launchpad-buildd:pin-docker-to-20.x-after-sru-update into launchpad-buildd:master

 

Tushar Gupta has proposed merging ~tushar5526/launchpad-buildd:pin-docker-to-20.x-after-sru-update into launchpad-buildd:master.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~tushar5526/launchpad-buildd/+git/launchpad-buildd/+merge/481271
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~tushar5526/launchpad-buildd:pin-docker-to-20.x-after-sru-update into launchpad-buildd:master.
diff --git a/debian/changelog b/debian/changelog
index ea8c5d7..de4f64a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+launchpad-buildd (251) UNRELEASED; urgency=medium
+
+  * Pin docker.io version to 20.x for OCI builds after recent SRU update
+    bumped the version to 26.x. This is placed temporarily until we add
+    support for OCI layout compliant added in 26.x
+
+ -- Tushar Gupta <tushar.gupta@xxxxxxxxxxxxx>  Fri, 14 Feb 2025 10:48:44 +0530
+
 launchpad-buildd (250) noble; urgency=medium
 
   [ Colin Watson ]
diff --git a/lpbuildd/target/build_oci.py b/lpbuildd/target/build_oci.py
index 0ac32ab..a45a1cd 100644
--- a/lpbuildd/target/build_oci.py
+++ b/lpbuildd/target/build_oci.py
@@ -78,8 +78,14 @@ class BuildOCI(
             # Add any proxy settings that are needed
             self._add_docker_engine_proxy_settings()
         deps.extend(self.vcs_deps)
-        deps.extend(["docker.io"])
         self.backend.run(["apt-get", "-y", "install"] + deps)
+        # XXX tushar5526 2025-02-14: Install and hold a specific version of
+        # docker.
+        # For more info: https://bugs.launchpad.net/launchpad/+bug/2098106
+        self.backend.run(
+            ["apt-get", "-y", "install", "docker.io=20.10.21-0ubuntu1~20.04.2"]
+        )
+        self.backend.run(["apt-mark", "hold", "docker.io"])
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
         self.backend.run(["systemctl", "restart", "docker"])
diff --git a/lpbuildd/target/tests/test_build_oci.py b/lpbuildd/target/tests/test_build_oci.py
index 1fb098f..5ff9a22 100644
--- a/lpbuildd/target/tests/test_build_oci.py
+++ b/lpbuildd/target/tests/test_build_oci.py
@@ -96,7 +96,11 @@ class TestBuildOCI(TestCase):
             build_oci.backend.run.calls,
             MatchesListwise(
                 [
-                    RanAptGet("install", "bzr", "docker.io"),
+                    RanAptGet("install", "bzr"),
+                    RanAptGet(
+                        "install", "docker.io=20.10.21-0ubuntu1~20.04.2"
+                    ),
+                    RanCommand(["apt-mark", "hold", "docker.io"]),
                     RanCommand(["systemctl", "restart", "docker"]),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -120,7 +124,11 @@ class TestBuildOCI(TestCase):
             build_oci.backend.run.calls,
             MatchesListwise(
                 [
-                    RanAptGet("install", "git", "docker.io"),
+                    RanAptGet("install", "git"),
+                    RanAptGet(
+                        "install", "docker.io=20.10.21-0ubuntu1~20.04.2"
+                    ),
+                    RanCommand(["apt-mark", "hold", "docker.io"]),
                     RanCommand(["systemctl", "restart", "docker"]),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -205,9 +213,11 @@ class TestBuildOCI(TestCase):
                     RanCommand(
                         ["mkdir", "-p", "/etc/systemd/system/docker.service.d"]
                     ),
+                    RanAptGet("install", "python3", "socat", "git"),
                     RanAptGet(
-                        "install", "python3", "socat", "git", "docker.io"
+                        "install", "docker.io=20.10.21-0ubuntu1~20.04.2"
                     ),
+                    RanCommand(["apt-mark", "hold", "docker.io"]),
                     RanCommand(["systemctl", "restart", "docker"]),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -712,7 +722,15 @@ class TestBuildOCI(TestCase):
         self.assertThat(
             build_oci.backend.run.calls,
             MatchesAll(
-                AnyMatch(RanAptGet("install", "bzr", "docker.io")),
+                AnyMatch(RanAptGet("install", "bzr")),
+                AnyMatch(
+                    RanAptGet("install", "docker.io=20.10.21-0ubuntu1~20.04.2")
+                ),
+                AnyMatch(
+                    RanCommand(
+                        ["apt-mark", "hold", "docker.io"],
+                    )
+                ),
                 AnyMatch(
                     RanBuildCommand(
                         ["bzr", "branch", "lp:foo", "test-image"],