Merge ~xnox/launchpad-buildd:noudeb into launchpad-buildd:master

Proposed by Dimitri John Ledkov
Status: Work in progress
Proposed branch: ~xnox/launchpad-buildd:noudeb
Merge into: launchpad-buildd:master
Diff against target: 138 lines (+84/-1)
4 files modified
debian/changelog (+1/-0)
lpbuildd/binarypackage.py (+11/-0)
lpbuildd/tests/test_binarypackage.py (+70/-0)
sbuildrc (+2/-1)
Reviewer Review Type Date Requested Status
Colin Watson (community) Needs Fixing
Review via email: mp+386466@code.launchpad.net

Commit message

binarypackage: build with noudeb profile for groovy+

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Needs Fixing
Revision history for this message
Dimitri John Ledkov (xnox) :
Revision history for this message
Colin Watson (cjwatson) :
Revision history for this message
Dimitri John Ledkov (xnox) :

Unmerged commits

70ef7ba... by Dimitri John Ledkov

binarypackage: build with noudeb profile for groovy+. LP: #1884836

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 26d4622..acc33d8 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -30,6 +30,7 @@ launchpad-buildd (190) UNRELEASED; urgency=medium
6
7 [ Dimitri John Ledkov ]
8 * lxd: Add riscv64 to arch table.
9+ * binarypackage: build with noudeb profile for groovy+. LP: #1884836
10
11 -- Colin Watson <cjwatson@ubuntu.com> Tue, 28 Apr 2020 10:19:27 +0100
12
13diff --git a/lpbuildd/binarypackage.py b/lpbuildd/binarypackage.py
14index 2111bbe..f18ac08 100644
15--- a/lpbuildd/binarypackage.py
16+++ b/lpbuildd/binarypackage.py
17@@ -47,6 +47,15 @@ APT_DUBIOUS_DEP_PATTERNS = [
18 ]
19
20
21+UDEB_SUITES = (
22+ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty', 'gutsy', 'hardy',
23+ 'intrepid', 'jaunty', 'karmic', 'lucid', 'maverick', 'natty', 'oneiric',
24+ 'precise', 'quantal', 'raring', 'saucy', 'trusty', 'utopic', 'vivid',
25+ 'wily', 'xenial', 'yakkety', 'zesty', 'artful', 'bionic', 'cosmic',
26+ 'disco', 'eoan', 'focal'
27+ )
28+
29+
30 class BuildLogRegexes:
31 """Build log regexes for performing actions based on regexes, and extracting dependencies for auto dep-waits"""
32 GIVENBACK = [
33@@ -175,6 +184,8 @@ class BinaryPackageBuildManager(DebianBuildManager):
34 env.pop("DEB_BUILD_OPTIONS", None)
35 else:
36 env["DEB_BUILD_OPTIONS"] = "noautodbgsym"
37+ if self.series not in UDEB_SUITES:
38+ env["DEB_BUILD_PROFILES"] = "noudeb"
39 self.runSubProcess(self._sbuildpath, args, env=env)
40
41 def getAvailablePackages(self):
42diff --git a/lpbuildd/tests/test_binarypackage.py b/lpbuildd/tests/test_binarypackage.py
43index c88bdb2..7423d51 100644
44--- a/lpbuildd/tests/test_binarypackage.py
45+++ b/lpbuildd/tests/test_binarypackage.py
46@@ -268,6 +268,76 @@ class TestBinaryPackageBuildManagerIteration(TestCase):
47 self.buildmanager.backend.backend_fs['/CurrentlyBuilding'])
48
49 @defer.inlineCallbacks
50+ def test_with_udebs(self):
51+ # A build with warty-focal suites does not pass DEB_BUILD_PROFILES
52+ self.addCleanup(
53+ setattr, self.buildmanager, 'backend_name',
54+ self.buildmanager.backend_name)
55+ self.buildmanager.backend_name = 'fake'
56+ self.buildmanager.initiate(
57+ {'foo_1.dsc': ''}, 'chroot.tar.gz',
58+ {'distribution': 'ubuntu', 'series': 'warty', 'suite': 'warty',
59+ 'ogrecomponent': 'main', 'archive_purpose': 'PRIMARY',
60+ 'build_debug_symbols': True})
61+ os.makedirs(self.chrootdir)
62+ self.buildmanager._state = BinaryPackageBuildState.UPDATE
63+ yield self.buildmanager.iterate(0)
64+ self.assertState(
65+ BinaryPackageBuildState.SBUILD,
66+ ['sharepath/bin/sbuild-package', 'sbuild-package',
67+ self.buildid, 'i386', 'warty',
68+ '-c', 'chroot:build-' + self.buildid,
69+ '--arch=i386', '--dist=warty', '--nolog',
70+ 'foo_1.dsc'],
71+ env_matcher=Not(Contains('DEB_BUILD_PROFILES')), final=True)
72+ self.assertFalse(self.builder.wasCalled('chrootFail'))
73+ self.assertEqual(
74+ (dedent("""\
75+ Package: foo
76+ Component: main
77+ Suite: warty
78+ Purpose: PRIMARY
79+ Build-Debug-Symbols: yes
80+ """).encode('UTF-8'), stat.S_IFREG | 0o644),
81+ self.buildmanager.backend.backend_fs['/CurrentlyBuilding'])
82+
83+ @defer.inlineCallbacks
84+ def test_without_udebs(self):
85+ # A build with groovy+ suites passes DEB_BUILD_PROFILE=noudeb
86+ self.addCleanup(
87+ setattr, self.buildmanager, 'backend_name',
88+ self.buildmanager.backend_name)
89+ self.buildmanager.backend_name = 'fake'
90+ self.buildmanager.initiate(
91+ {'foo_1.dsc': ''}, 'chroot.tar.gz',
92+ {'distribution': 'ubuntu', 'series': 'groovy', 'suite': 'groovy',
93+ 'ogrecomponent': 'main', 'archive_purpose': 'PRIMARY',
94+ 'build_debug_symbols': True})
95+ os.makedirs(self.chrootdir)
96+ self.buildmanager._state = BinaryPackageBuildState.UPDATE
97+ yield self.buildmanager.iterate(0)
98+ self.assertState(
99+ BinaryPackageBuildState.SBUILD,
100+ ['sharepath/bin/sbuild-package', 'sbuild-package',
101+ self.buildid, 'i386', 'groovy',
102+ '-c', 'chroot:build-' + self.buildid,
103+ '--arch=i386', '--dist=groovy', '--nolog',
104+ 'foo_1.dsc'],
105+ env_matcher=ContainsDict(
106+ {'DEB_BUILD_PROFILES': Equals('noudeb')}),
107+ final=True)
108+ self.assertFalse(self.builder.wasCalled('chrootFail'))
109+ self.assertEqual(
110+ (dedent("""\
111+ Package: foo
112+ Component: main
113+ Suite: groovy
114+ Purpose: PRIMARY
115+ Build-Debug-Symbols: yes
116+ """).encode('UTF-8'), stat.S_IFREG | 0o644),
117+ self.buildmanager.backend.backend_fs['/CurrentlyBuilding'])
118+
119+ @defer.inlineCallbacks
120 def test_abort_sbuild(self):
121 # Aborting sbuild kills processes in the chroot.
122 yield self.startBuild()
123diff --git a/sbuildrc b/sbuildrc
124index c49ada9..51fc784 100644
125--- a/sbuildrc
126+++ b/sbuildrc
127@@ -32,9 +32,10 @@ $build_environment = {
128 };
129
130 # We want to expose almost nothing from the buildd environment.
131-# DEB_BUILD_OPTIONS is set by sbuild-package.
132+# DEB_BUILD_OPTIONS DEB_BUILD_PROFILES are set by sbuild-package.
133 $environment_filter = [
134 '^DEB_BUILD_OPTIONS$',
135+ '^DEB_BUILD_PROFILES$',
136 ];
137
138 # We're just going to throw the chroot away anyway.

Subscribers

People subscribed via source and target branches