Merge ~simpoir/ubuntu/+source/landscape-client:xenial_trusted_local into ubuntu/+source/landscape-client:ubuntu/xenial-devel

Proposed by Simon Poirier
Status: Merged
Merge reported by: Simon Poirier
Merged at revision: 5e83cf1146badd0090a0f65adefb4058501766b1
Proposed branch: ~simpoir/ubuntu/+source/landscape-client:xenial_trusted_local
Merge into: ubuntu/+source/landscape-client:ubuntu/xenial-devel
Diff against target: 773 lines (+740/-0)
4 files modified
debian/changelog (+7/-0)
debian/landscape-client.postinst (+8/-0)
debian/patches/1886491-trusted-local.patch (+724/-0)
debian/patches/series (+1/-0)
Reviewer Review Type Date Requested Status
git-ubuntu developers Pending
Review via email: mp+387004@code.launchpad.net
To post a comment you must log in.

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 58ef077..5511e13 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,10 @@
6+landscape-client (16.03-0ubuntu2.16.04.8) xenial; urgency=medium
7+
8+ * debian/patches/1886491-trusted-local.patch:
9+ Backport implicit trust of file sources created by landscape (LP: #1886491)
10+
11+ -- Simon Poirier <simpoir@moosey.she.simpoir.com> Tue, 07 Jul 2020 17:26:43 -0400
12+
13 landscape-client (16.03-0ubuntu2.16.04.7) xenial; urgency=medium
14
15 * d/p/product-name-vminfo-1828217.patch: Add product_name to things scanned
16diff --git a/debian/landscape-client.postinst b/debian/landscape-client.postinst
17index b0c5002..4f6be53 100644
18--- a/debian/landscape-client.postinst
19+++ b/debian/landscape-client.postinst
20@@ -130,6 +130,14 @@ END
21 USER_UPDATE_FLAG_FILE="$DATA_PATH/user-update-flag"
22 install --owner=landscape /dev/null $USER_UPDATE_FLAG_FILE
23 echo "This file indicates that the Landscape client needs to send updated user information to the server." >> $USER_UPDATE_FLAG_FILE
24+
25+ # To work around bug #1735100 we rewrite file-local landscape sources
26+ # with the trusted flag, as they have no release file, thus are
27+ # unsigned repositories. It exists while package profile is applying.
28+ LANDSCAPE_INTERNAL_SOURCES=/etc/apt/sources.list.d/_landscape-internal-facade.list
29+ if grep -q -e "^deb file:" $LANDSCAPE_INTERNAL_SOURCES; then
30+ sed -i 's/^deb file:/deb [ trusted=yes ] file:/' $LANDSCAPE_INTERNAL_SOURCES
31+ fi
32 ;;
33
34 abort-upgrade|abort-remove|abort-deconfigure)
35diff --git a/debian/patches/1886491-trusted-local.patch b/debian/patches/1886491-trusted-local.patch
36new file mode 100644
37index 0000000..86cb2d3
38--- /dev/null
39+++ b/debian/patches/1886491-trusted-local.patch
40@@ -0,0 +1,724 @@
41+Description: Implicitly trust file-local sources managed by landscape
42+Author: Simon Poirier <simon.poirier@canonical.com>
43+Origin: backport, https://github.com/CanonicalLtd/landscape-client/commit/d640643a15414b0d8e4330179e11d5a6036a6e42
44+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1886491
45+Last-Update: 2020-07-07
46+
47+--- a/landscape/package/facade.py
48++++ b/landscape/package/facade.py
49+@@ -264,15 +264,21 @@
50+ sources_dir = apt_pkg.config.find_dir("Dir::Etc::sourceparts")
51+ return os.path.join(sources_dir, "_landscape-internal-facade.list")
52+
53+- def add_channel_apt_deb(self, url, codename, components=None):
54++ def add_channel_apt_deb(self, url, codename, components=None,
55++ trusted=None):
56+ """Add a deb URL which points to a repository.
57+
58+ @param url: The base URL of the repository.
59+ @param codename: The dist in the repository.
60+ @param components: The components to be included.
61++ @param trusted: Whether validation should be skipped (if local).
62+ """
63+ sources_file_path = self._get_internal_sources_list()
64+- sources_line = "deb %s %s" % (url, codename)
65++ source_options = ""
66++ if trusted is not None and url.startswith("file:"):
67++ trusted_val = "yes" if trusted else "no"
68++ source_options = "[ trusted={} ] ".format(trusted_val)
69++ sources_line = "deb {}{} {}".format(source_options, url, codename)
70+ if components:
71+ sources_line += " %s" % " ".join(components)
72+ if os.path.exists(sources_file_path):
73+@@ -291,7 +297,9 @@
74+ about the deb files.
75+ """
76+ self._create_packages_file(path)
77+- self.add_channel_apt_deb("file://%s" % path, "./", None)
78++ # yakkety+ validate even file repository by default. deb dirs don't
79++ # have a signed Release file but are local so they should be trusted.
80++ self.add_channel_apt_deb("file://%s" % path, "./", None, trusted=True)
81+
82+ def clear_channels(self):
83+ """Clear the channels that have been added through the facade.
84+--- a/landscape/package/tests/test_facade.py
85++++ b/landscape/package/tests/test_facade.py
86+@@ -145,7 +145,8 @@
87+ deb_dir = self.makeDir()
88+ self._add_system_package("foo", version="1.0")
89+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.5")
90+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
91++ self.facade.add_channel_apt_deb(
92++ "file://%s" % deb_dir, "./", trusted=True)
93+ self.facade.reload_channels()
94+ self.assertEqual(
95+ [("foo", "1.0"), ("foo", "1.5")],
96+@@ -219,6 +220,38 @@
97+ "deb http://example.com/ubuntu lucid main restricted\n",
98+ sources_contents)
99+
100++ def test_add_channel_apt_deb_trusted(self):
101++ """add_channel_apt_deb sets trusted option if trusted and local."""
102++ # Don't override trust on unsigned/signed remotes.
103++ self.facade.add_channel_apt_deb(
104++ "http://example.com/ubuntu", "unsigned", ["main"], trusted=True)
105++ self.facade.add_channel_apt_deb(
106++ "http://example.com/ubuntu", "signed", ["main"], trusted=False)
107++
108++ # We explicitly trust local
109++ self.facade.add_channel_apt_deb(
110++ "file://opt/spam", "unsigned", ["main"], trusted=True)
111++ # We explicitly distrust local (thus check gpg signatures)
112++ self.facade.add_channel_apt_deb(
113++ "file://opt/spam", "signed", ["main"], trusted=False)
114++ # apt defaults (which is to check signatures on >xenial)
115++ self.facade.add_channel_apt_deb(
116++ "file://opt/spam", "default", ["main"])
117++
118++ list_filename = (
119++ self.apt_root +
120++ "/etc/apt/sources.list.d/_landscape-internal-facade.list")
121++ sources_contents = read_text_file(list_filename)
122++ self.assertEqual(
123++ textwrap.dedent("""\
124++ deb http://example.com/ubuntu unsigned main
125++ deb http://example.com/ubuntu signed main
126++ deb [ trusted=yes ] file://opt/spam unsigned main
127++ deb [ trusted=no ] file://opt/spam signed main
128++ deb file://opt/spam default main
129++ """),
130++ sources_contents)
131++
132+ def test_add_channel_deb_dir_adds_deb_channel(self):
133+ """
134+ C{add_channel_deb_dir()} adds a deb channel pointing to the
135+@@ -397,7 +430,8 @@
136+ deb_dir = self.makeDir()
137+ self._add_package_to_deb_dir(deb_dir, "foo")
138+ self._add_package_to_deb_dir(deb_dir, "bar")
139+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
140++ self.facade.add_channel_apt_deb(
141++ "file://%s" % deb_dir, "./", trusted=True)
142+ self.facade.reload_channels()
143+ self.assertEqual(
144+ ["bar", "foo"],
145+@@ -412,7 +446,8 @@
146+ """
147+ deb_dir = self.makeDir()
148+ self._add_package_to_deb_dir(deb_dir, "foo")
149+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
150++ self.facade.add_channel_apt_deb(
151++ "file://%s" % deb_dir, "./", trusted=True)
152+ self.facade.reload_channels()
153+ new_facade = AptFacade(root=self.apt_root)
154+ self._add_package_to_deb_dir(deb_dir, "bar")
155+@@ -432,7 +467,8 @@
156+ """
157+ deb_dir = self.makeDir()
158+ self._add_package_to_deb_dir(deb_dir, "foo")
159+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
160++ self.facade.add_channel_apt_deb(
161++ "file://%s" % deb_dir, "./", trusted=True)
162+ self.facade.reload_channels()
163+ new_facade = AptFacade(root=self.apt_root)
164+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
165+@@ -450,7 +486,8 @@
166+ """
167+ deb_dir = self.makeDir()
168+ self._add_package_to_deb_dir(deb_dir, "foo")
169+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
170++ self.facade.add_channel_apt_deb(
171++ "file://%s" % deb_dir, "./", trusted=True)
172+ self.facade.reload_channels()
173+ self._add_package_to_deb_dir(deb_dir, "bar")
174+ self._touch_packages_file(deb_dir)
175+@@ -504,7 +541,8 @@
176+
177+ deb_dir = self.makeDir()
178+ self._add_package_to_deb_dir(deb_dir, "foo")
179+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
180++ self.facade.add_channel_apt_deb(
181++ "file://%s" % deb_dir, "./", trusted=True)
182+ self.facade.refetch_package_index = True
183+ self.facade._cache.update = new_apt_update
184+ self.facade.reload_channels(force_reload_binaries=True)
185+@@ -525,7 +563,8 @@
186+
187+ deb_dir = self.makeDir()
188+ self._add_package_to_deb_dir(deb_dir, "foo")
189+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
190++ self.facade.add_channel_apt_deb(
191++ "file://%s" % deb_dir, "./", trusted=True)
192+ self.facade.refetch_package_index = False
193+ self.facade._cache.update = new_apt_update
194+ self.facade.reload_channels(force_reload_binaries=True)
195+@@ -546,7 +585,8 @@
196+
197+ deb_dir = self.makeDir()
198+ self._add_package_to_deb_dir(deb_dir, "foo")
199+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
200++ self.facade.add_channel_apt_deb(
201++ "file://%s" % deb_dir, "./", trusted=True)
202+ self.facade.refetch_package_index = False
203+ self.facade._cache.update = old_apt_update
204+ self.facade.reload_channels(force_reload_binaries=True)
205+@@ -885,7 +925,8 @@
206+ """
207+ deb_dir = self.makeDir()
208+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
209+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
210++ self.facade.add_channel_apt_deb(
211++ "file://%s" % deb_dir, "./", trusted=True)
212+ self.facade.reload_channels()
213+ [package] = self.facade.get_packages()
214+ self.assertFalse(self.facade.is_package_upgrade(package))
215+@@ -898,7 +939,8 @@
216+ deb_dir = self.makeDir()
217+ self._add_system_package("foo", version="0.5")
218+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
219+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
220++ self.facade.add_channel_apt_deb(
221++ "file://%s" % deb_dir, "./", trusted=True)
222+ self.facade.reload_channels()
223+ [version_05, version_10] = sorted(self.facade.get_packages())
224+ self.assertTrue(self.facade.is_package_upgrade(version_10))
225+@@ -912,7 +954,8 @@
226+ deb_dir = self.makeDir()
227+ self._add_system_package("foo", version="1.5")
228+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
229+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
230++ self.facade.add_channel_apt_deb(
231++ "file://%s" % deb_dir, "./", trusted=True)
232+ self.facade.reload_channels()
233+ [version_10, version_15] = sorted(self.facade.get_packages())
234+ self.assertFalse(self.facade.is_package_upgrade(version_10))
235+@@ -927,7 +970,8 @@
236+ deb_dir = self.makeDir()
237+ self._add_system_package("foo", version="1.0")
238+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
239+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
240++ self.facade.add_channel_apt_deb(
241++ "file://%s" % deb_dir, "./", trusted=True)
242+ self.facade.reload_channels()
243+ [package] = self.facade.get_packages()
244+ self.assertFalse(self.facade.is_package_upgrade(package))
245+@@ -956,7 +1000,8 @@
246+ self._add_system_package("foo", version="0.5")
247+ deb_dir = self.makeDir()
248+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
249+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
250++ self.facade.add_channel_apt_deb(
251++ "file://%s" % deb_dir, "./", trusted=True)
252+ self.facade.reload_channels()
253+ [version_05, version_10] = sorted(self.facade.get_packages())
254+ self.assertFalse(self.facade.is_package_upgrade(version_10))
255+@@ -978,7 +1023,8 @@
256+ deb_dir = self.makeDir()
257+ self._add_system_package("foo", version="1.0")
258+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.5")
259+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
260++ self.facade.add_channel_apt_deb(
261++ "file://%s" % deb_dir, "./", trusted=True)
262+ self.facade.reload_channels()
263+ self.assertEqual(
264+ [("foo", "1.0"), ("foo", "1.5")],
265+@@ -1012,7 +1058,8 @@
266+ """
267+ deb_dir = self.makeDir()
268+ self._add_package_to_deb_dir(deb_dir, "foo")
269+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
270++ self.facade.add_channel_apt_deb(
271++ "file://%s" % deb_dir, "./", trusted=True)
272+ self.facade.reload_channels()
273+ [foo] = self.facade.get_packages_by_name("foo")
274+ self.facade.mark_install(foo)
275+@@ -1045,7 +1092,8 @@
276+ """
277+ deb_dir = self.makeDir()
278+ self._add_package_to_deb_dir(deb_dir, "foo")
279+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
280++ self.facade.add_channel_apt_deb(
281++ "file://%s" % deb_dir, "./", trusted=True)
282+ self.facade.reload_channels()
283+ [foo] = self.facade.get_packages_by_name("foo")
284+ self.facade.mark_install(foo)
285+@@ -1070,7 +1118,8 @@
286+ """
287+ deb_dir = self.makeDir()
288+ self._add_package_to_deb_dir(deb_dir, "foo")
289+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
290++ self.facade.add_channel_apt_deb(
291++ "file://%s" % deb_dir, "./", trusted=True)
292+ self.facade.reload_channels()
293+ [foo] = self.facade.get_packages_by_name("foo")
294+ self.facade.mark_install(foo)
295+@@ -1099,7 +1148,8 @@
296+ self.facade.max_dpkg_retries = 1
297+ deb_dir = self.makeDir()
298+ self._add_package_to_deb_dir(deb_dir, "foo")
299+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
300++ self.facade.add_channel_apt_deb(
301++ "file://%s" % deb_dir, "./", trusted=True)
302+ self.facade.reload_channels()
303+ [foo] = self.facade.get_packages_by_name("foo")
304+ self.facade.mark_install(foo)
305+@@ -1128,7 +1178,8 @@
306+ self.facade.max_dpkg_retries = 1
307+ deb_dir = self.makeDir()
308+ self._add_package_to_deb_dir(deb_dir, "foo")
309+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
310++ self.facade.add_channel_apt_deb(
311++ "file://%s" % deb_dir, "./", trusted=True)
312+ self.facade.reload_channels()
313+ [foo] = self.facade.get_packages_by_name("foo")
314+ self.facade.mark_install(foo)
315+@@ -1233,7 +1284,8 @@
316+ """
317+ deb_dir = self.makeDir()
318+ self._add_package_to_deb_dir(deb_dir, "foo")
319+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
320++ self.facade.add_channel_apt_deb(
321++ "file://%s" % deb_dir, "./", trusted=True)
322+ self.facade.reload_channels()
323+ foo = self.facade.get_packages_by_name("foo")[0]
324+ self.facade.mark_install(foo)
325+@@ -1268,7 +1320,8 @@
326+ deb_dir, "bar",
327+ control_fields={"Depends": "also-missing | also-lost (>= 1.0)",
328+ "Pre-Depends": "also-pre-missing | also-pre-lost"})
329+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
330++ self.facade.add_channel_apt_deb(
331++ "file://%s" % deb_dir, "./", trusted=True)
332+ self.facade.reload_channels()
333+ [foo] = self.facade.get_packages_by_name("foo")
334+ [bar] = self.facade.get_packages_by_name("bar")
335+@@ -1309,7 +1362,8 @@
336+ deb_dir = self.makeDir()
337+ self._add_package_to_deb_dir(
338+ deb_dir, "foo", control_fields={"Depends": "bar"})
339+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
340++ self.facade.add_channel_apt_deb(
341++ "file://%s" % deb_dir, "./", trusted=True)
342+ self.facade.reload_channels()
343+ self.assertEqual(set(), self.facade._get_broken_packages())
344+ self.assertEqual("", self.facade._get_unmet_dependency_info())
345+@@ -1323,7 +1377,8 @@
346+ deb_dir = self.makeDir()
347+ self._add_package_to_deb_dir(
348+ deb_dir, "foo", control_fields={"Depends": "bar"})
349+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
350++ self.facade.add_channel_apt_deb(
351++ "file://%s" % deb_dir, "./", trusted=True)
352+ self.facade.reload_channels()
353+ [foo] = self.facade.get_packages_by_name("foo")
354+ self.facade.mark_install(foo)
355+@@ -1345,7 +1400,8 @@
356+ deb_dir = self.makeDir()
357+ self._add_package_to_deb_dir(
358+ deb_dir, "foo", control_fields={"Pre-Depends": "bar"})
359+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
360++ self.facade.add_channel_apt_deb(
361++ "file://%s" % deb_dir, "./", trusted=True)
362+ self.facade.reload_channels()
363+ [foo] = self.facade.get_packages_by_name("foo")
364+ self.facade.mark_install(foo)
365+@@ -1367,7 +1423,8 @@
366+ deb_dir = self.makeDir()
367+ self._add_package_to_deb_dir(
368+ deb_dir, "foo", control_fields={"Depends": "bar (>= 1.0)"})
369+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
370++ self.facade.add_channel_apt_deb(
371++ "file://%s" % deb_dir, "./", trusted=True)
372+ self.facade.reload_channels()
373+ [foo] = self.facade.get_packages_by_name("foo")
374+ self.facade.mark_install(foo)
375+@@ -1391,7 +1448,8 @@
376+ self._add_package_to_deb_dir(deb_dir, "bar", version="0.5")
377+ self._add_package_to_deb_dir(
378+ deb_dir, "foo", control_fields={"Depends": "bar (>= 1.0)"})
379+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
380++ self.facade.add_channel_apt_deb(
381++ "file://%s" % deb_dir, "./", trusted=True)
382+ self.facade.reload_channels()
383+ [foo] = self.facade.get_packages_by_name("foo")
384+ [bar] = self.facade.get_packages_by_name("bar")
385+@@ -1418,7 +1476,8 @@
386+ self._add_package_to_deb_dir(
387+ deb_dir, "foo", control_fields={"Depends": "bar (>= 3.0)"})
388+ self._add_package_to_deb_dir(deb_dir, "bar", version="2.0")
389+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
390++ self.facade.add_channel_apt_deb(
391++ "file://%s" % deb_dir, "./", trusted=True)
392+ self.facade.reload_channels()
393+ [foo] = self.facade.get_packages_by_name("foo")
394+ [bar1, bar2] = sorted(self.facade.get_packages_by_name("bar"))
395+@@ -1445,7 +1504,8 @@
396+ self._add_package_to_deb_dir(
397+ deb_dir, "foo", control_fields={"Depends": "bar (>= 3.0)"})
398+ self._add_package_to_deb_dir(deb_dir, "bar", version="2.0")
399+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
400++ self.facade.add_channel_apt_deb(
401++ "file://%s" % deb_dir, "./", trusted=True)
402+ self.facade.reload_channels()
403+ [foo] = self.facade.get_packages_by_name("foo")
404+ [bar1, bar2] = sorted(self.facade.get_packages_by_name("bar"))
405+@@ -1474,7 +1534,8 @@
406+ self._add_package_to_deb_dir(
407+ deb_dir, "foo", control_fields={"Depends": "bar (>= 3.0)"})
408+ self._add_package_to_deb_dir(deb_dir, "bar", version="1.0")
409+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
410++ self.facade.add_channel_apt_deb(
411++ "file://%s" % deb_dir, "./", trusted=True)
412+ self.facade.reload_channels()
413+ [foo] = self.facade.get_packages_by_name("foo")
414+ [bar1, bar2] = sorted(self.facade.get_packages_by_name("bar"))
415+@@ -1500,7 +1561,8 @@
416+ deb_dir = self.makeDir()
417+ self._add_package_to_deb_dir(
418+ deb_dir, "foo", control_fields={"Depends": "bar | baz (>= 1.0)"})
419+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
420++ self.facade.add_channel_apt_deb(
421++ "file://%s" % deb_dir, "./", trusted=True)
422+ self.facade.reload_channels()
423+ [foo] = self.facade.get_packages_by_name("foo")
424+ self.facade.mark_install(foo)
425+@@ -1524,7 +1586,8 @@
426+ self._add_system_package("foo")
427+ self._add_package_to_deb_dir(
428+ deb_dir, "bar", control_fields={"Conflicts": "foo"})
429+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
430++ self.facade.add_channel_apt_deb(
431++ "file://%s" % deb_dir, "./", trusted=True)
432+ self.facade.reload_channels()
433+ [foo] = self.facade.get_packages_by_name("foo")
434+ [bar] = self.facade.get_packages_by_name("bar")
435+@@ -1551,7 +1614,8 @@
436+ deb_dir, "foo", control_fields={"Depends": "bar"})
437+ self._add_package_to_deb_dir(
438+ deb_dir, "bar", control_fields={"Breaks": "foo"})
439+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
440++ self.facade.add_channel_apt_deb(
441++ "file://%s" % deb_dir, "./", trusted=True)
442+ self.facade.reload_channels()
443+ [foo] = self.facade.get_packages_by_name("foo")
444+ [bar] = self.facade.get_packages_by_name("bar")
445+@@ -1577,7 +1641,8 @@
446+ deb_dir, "bar",
447+ control_fields={"Conflicts": "foo, baz", "Breaks": "foo, baz"})
448+ self._add_package_to_deb_dir(deb_dir, "baz")
449+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
450++ self.facade.add_channel_apt_deb(
451++ "file://%s" % deb_dir, "./", trusted=True)
452+ self.facade.reload_channels()
453+ [foo] = self.facade.get_packages_by_name("foo")
454+ [bar] = self.facade.get_packages_by_name("bar")
455+@@ -1606,7 +1671,8 @@
456+ deb_dir, "bar",
457+ control_fields={"Conflicts": "foo, baz", "Breaks": "foo, baz"})
458+ self._add_system_package("baz")
459+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
460++ self.facade.add_channel_apt_deb(
461++ "file://%s" % deb_dir, "./", trusted=True)
462+ self.facade.reload_channels()
463+ [foo] = self.facade.get_packages_by_name("foo")
464+ [bar] = self.facade.get_packages_by_name("bar")
465+@@ -1637,7 +1703,8 @@
466+ self._add_package_to_deb_dir(
467+ deb_dir, "foo",
468+ control_fields={"Depends": "there1, missing1, there2 | missing2"})
469+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
470++ self.facade.add_channel_apt_deb(
471++ "file://%s" % deb_dir, "./", trusted=True)
472+ self.facade.reload_channels()
473+ [foo] = self.facade.get_packages_by_name("foo")
474+ self.facade.mark_install(foo)
475+@@ -1660,7 +1727,8 @@
476+ deb_dir, "foo", control_fields={"Depends": "bar"})
477+ self._add_package_to_deb_dir(
478+ deb_dir, "another-foo", control_fields={"Depends": "another-bar"})
479+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
480++ self.facade.add_channel_apt_deb(
481++ "file://%s" % deb_dir, "./", trusted=True)
482+ self.facade.reload_channels()
483+ [foo] = self.facade.get_packages_by_name("foo")
484+ [another_foo] = self.facade.get_packages_by_name("another-foo")
485+@@ -1724,7 +1792,8 @@
486+ """
487+ deb_dir = self.makeDir()
488+ self._add_package_to_deb_dir(deb_dir, "foo")
489+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
490++ self.facade.add_channel_apt_deb(
491++ "file://%s" % deb_dir, "./", trusted=True)
492+ self.facade.reload_channels()
493+ [foo] = self.facade.get_packages_by_name("foo")
494+ self.facade.mark_install(foo)
495+@@ -1743,7 +1812,8 @@
496+ """
497+ deb_dir = self.makeDir()
498+ self._add_package_to_deb_dir(deb_dir, "foo")
499+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
500++ self.facade.add_channel_apt_deb(
501++ "file://%s" % deb_dir, "./", trusted=True)
502+ self.facade.reload_channels()
503+ [foo] = self.facade.get_packages_by_name("foo")
504+ self.facade.mark_install(foo)
505+@@ -1769,7 +1839,8 @@
506+ self._add_system_package("bar", version="1.0")
507+ self._add_package_to_deb_dir(deb_dir, "bar", version="1.5")
508+ self._add_system_package("baz")
509+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
510++ self.facade.add_channel_apt_deb(
511++ "file://%s" % deb_dir, "./", trusted=True)
512+ self._add_system_package("quux", version="1.0")
513+ self._add_system_package("wibble", version="1.0")
514+ self.facade.reload_channels()
515+@@ -1799,7 +1870,8 @@
516+ self._add_package_to_deb_dir(
517+ deb_dir, "foo", control_fields={"Depends": "bar"})
518+ self._add_package_to_deb_dir(deb_dir, "bar")
519+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
520++ self.facade.add_channel_apt_deb(
521++ "file://%s" % deb_dir, "./", trusted=True)
522+ self.facade.reload_channels()
523+ [foo] = self.facade.get_packages_by_name("foo")
524+ self.facade.mark_install(foo)
525+@@ -1831,7 +1903,8 @@
526+ deb_dir = self.makeDir()
527+ self._add_system_package("foo", version="1.0")
528+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.5")
529+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
530++ self.facade.add_channel_apt_deb(
531++ "file://%s" % deb_dir, "./", trusted=True)
532+ self.facade.reload_channels()
533+ foo_10 = sorted(self.facade.get_packages_by_name("foo"))[0]
534+ self.facade.mark_global_upgrade()
535+@@ -1858,7 +1931,8 @@
536+ deb_dir = self.makeDir()
537+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
538+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
539+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
540++ self.facade.add_channel_apt_deb(
541++ "file://%s" % deb_dir, "./", trusted=True)
542+ self.facade.reload_channels()
543+ foo1, foo2 = sorted(self.facade.get_packages_by_name("foo"))
544+ self.assertEqual(foo2, foo1.package.candidate)
545+@@ -1896,7 +1970,8 @@
546+ deb_dir, "single-arch", architecture="amd64", version="2.0")
547+ self._add_package_to_deb_dir(
548+ deb_dir, "single-arch", architecture="i386", version="2.0")
549+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
550++ self.facade.add_channel_apt_deb(
551++ "file://%s" % deb_dir, "./", trusted=True)
552+ self.facade.reload_channels()
553+
554+ multi_arch1, multi_arch2 = sorted(
555+@@ -1941,7 +2016,8 @@
556+ self._add_package_to_deb_dir(
557+ deb_dir, "multi-arch", architecture="i386", version="2.0",
558+ control_fields={"Multi-Arch": "same"})
559+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
560++ self.facade.add_channel_apt_deb(
561++ "file://%s" % deb_dir, "./", trusted=True)
562+ self.facade.reload_channels()
563+
564+ multi_arch1, multi_arch2 = sorted(
565+@@ -1971,7 +2047,8 @@
566+ self._add_system_package("bar")
567+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
568+ self._add_package_to_deb_dir(deb_dir, "baz")
569+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
570++ self.facade.add_channel_apt_deb(
571++ "file://%s" % deb_dir, "./", trusted=True)
572+ self.facade.reload_channels()
573+ foo1, foo2 = sorted(self.facade.get_packages_by_name("foo"))
574+ self.facade.mark_global_upgrade()
575+@@ -1991,7 +2068,8 @@
576+ self._add_system_package("foo", version="1.0")
577+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
578+ self._add_package_to_deb_dir(deb_dir, "foo", version="3.0")
579+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
580++ self.facade.add_channel_apt_deb(
581++ "file://%s" % deb_dir, "./", trusted=True)
582+ self.facade.reload_channels()
583+ foo1, foo2, foo3 = sorted(self.facade.get_packages_by_name("foo"))
584+ self.assertEqual(foo3, foo1.package.candidate)
585+@@ -2010,7 +2088,8 @@
586+ self._add_system_package("foo", version="3.0")
587+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
588+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
589+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
590++ self.facade.add_channel_apt_deb(
591++ "file://%s" % deb_dir, "./", trusted=True)
592+ self.facade.reload_channels()
593+ foo3 = sorted(self.facade.get_packages_by_name("foo"))[-1]
594+ self.assertEqual(foo3, foo3.package.candidate)
595+@@ -2026,7 +2105,8 @@
596+ self._add_package_to_deb_dir(deb_dir, "auto", version="2.0")
597+ self._add_system_package("noauto", version="1.0")
598+ self._add_package_to_deb_dir(deb_dir, "noauto", version="2.0")
599+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
600++ self.facade.add_channel_apt_deb(
601++ "file://%s" % deb_dir, "./", trusted=True)
602+ self.facade.reload_channels()
603+ auto1, auto2 = sorted(self.facade.get_packages_by_name("auto"))
604+ noauto1, noauto2 = sorted(self.facade.get_packages_by_name("noauto"))
605+@@ -2085,7 +2165,8 @@
606+ "broken", control_fields={"Depends": "missing"})
607+ self._add_package_to_deb_dir(deb_dir, "foo")
608+ self._add_package_to_deb_dir(deb_dir, "missing")
609+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
610++ self.facade.add_channel_apt_deb(
611++ "file://%s" % deb_dir, "./", trusted=True)
612+ self.facade.reload_channels()
613+ [foo] = self.facade.get_packages_by_name("foo")
614+ self.facade.mark_install(foo)
615+@@ -2107,7 +2188,8 @@
616+ deb_dir, "foo", control_fields={"Depends": "bar"})
617+ self._add_package_to_deb_dir(deb_dir, "bar")
618+ self._add_package_to_deb_dir(deb_dir, "missing")
619+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
620++ self.facade.add_channel_apt_deb(
621++ "file://%s" % deb_dir, "./", trusted=True)
622+ self.facade.reload_channels()
623+ [foo] = self.facade.get_packages_by_name("foo")
624+ [bar] = self.facade.get_packages_by_name("bar")
625+@@ -2126,7 +2208,8 @@
626+ "broken", control_fields={"Depends": "missing"})
627+ self._add_system_package("foo")
628+ self._add_package_to_deb_dir(deb_dir, "missing")
629+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
630++ self.facade.add_channel_apt_deb(
631++ "file://%s" % deb_dir, "./", trusted=True)
632+ self.facade.reload_channels()
633+ [foo] = self.facade.get_packages_by_name("foo")
634+ self.facade.mark_remove(foo)
635+@@ -2151,7 +2234,8 @@
636+ self._add_package_to_deb_dir(
637+ deb_dir, "foo", control_fields={"Depends": "really-missing"})
638+ self._add_package_to_deb_dir(deb_dir, "missing")
639+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
640++ self.facade.add_channel_apt_deb(
641++ "file://%s" % deb_dir, "./", trusted=True)
642+ self.facade.reload_channels()
643+ [broken] = self.facade.get_packages_by_name("broken")
644+ [foo] = self.facade.get_packages_by_name("foo")
645+@@ -2218,7 +2302,8 @@
646+ self._add_package_to_deb_dir(
647+ deb_dir, "foo", control_fields={"Depends": "bar"})
648+ self._add_package_to_deb_dir(deb_dir, "bar")
649+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
650++ self.facade.add_channel_apt_deb(
651++ "file://%s" % deb_dir, "./", trusted=True)
652+ self.facade.reload_channels()
653+ [foo] = self.facade.get_packages_by_name("foo")
654+ [bar] = self.facade.get_packages_by_name("bar")
655+@@ -2235,7 +2320,8 @@
656+ deb_dir = self.makeDir()
657+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
658+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
659+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
660++ self.facade.add_channel_apt_deb(
661++ "file://%s" % deb_dir, "./", trusted=True)
662+ self.facade.reload_channels()
663+ [foo1, foo2] = sorted(self.facade.get_packages_by_name("foo"))
664+ self.assertEqual(foo1.package, foo2.package)
665+@@ -2259,7 +2345,8 @@
666+ deb_dir = self.makeDir()
667+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
668+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
669+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
670++ self.facade.add_channel_apt_deb(
671++ "file://%s" % deb_dir, "./", trusted=True)
672+ self.facade.reload_channels()
673+ [foo1, foo2] = sorted(self.facade.get_packages_by_name("foo"))
674+ self.assertEqual(foo1.package, foo2.package)
675+@@ -2301,7 +2388,8 @@
676+ self._add_system_package("foo", version="1.0")
677+ deb_dir = self.makeDir()
678+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
679+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
680++ self.facade.add_channel_apt_deb(
681++ "file://%s" % deb_dir, "./", trusted=True)
682+ self.facade.reload_channels()
683+ [foo1, foo2] = sorted(self.facade.get_packages_by_name("foo"))
684+ self.assertEqual(foo1.package, foo2.package)
685+@@ -2324,7 +2412,8 @@
686+ self._add_system_package("foo", version="1.0")
687+ deb_dir = self.makeDir()
688+ self._add_package_to_deb_dir(deb_dir, "foo", version="2.0")
689+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
690++ self.facade.add_channel_apt_deb(
691++ "file://%s" % deb_dir, "./", trusted=True)
692+ self.facade.reload_channels()
693+ [foo1, foo2] = sorted(self.facade.get_packages_by_name("foo"))
694+ self.assertEqual(foo1.package, foo2.package)
695+@@ -2348,7 +2437,8 @@
696+ deb_dir = self.makeDir()
697+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.0")
698+ self._add_package_to_deb_dir(deb_dir, "foo", version="3.0")
699+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
700++ self.facade.add_channel_apt_deb(
701++ "file://%s" % deb_dir, "./", trusted=True)
702+ self.facade.reload_channels()
703+ [foo1, foo2] = sorted(self.facade.get_packages_by_name("foo"))[:2]
704+ self.assertEqual(foo1.package, foo2.package)
705+@@ -2374,7 +2464,8 @@
706+ self._add_package_to_deb_dir(
707+ deb_dir, "foo", version="1.5", control_fields={"Depends": "bar"})
708+ self._add_package_to_deb_dir(deb_dir, "bar")
709+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
710++ self.facade.add_channel_apt_deb(
711++ "file://%s" % deb_dir, "./", trusted=True)
712+ self.facade.reload_channels()
713+ foo_10, foo_15 = sorted(self.facade.get_packages_by_name("foo"))
714+ [bar] = self.facade.get_packages_by_name("bar")
715+@@ -2432,7 +2523,8 @@
716+ self._add_system_package("bar", version="1.0")
717+ deb_dir = self.makeDir()
718+ self._add_package_to_deb_dir(deb_dir, "bar", version="2.0")
719+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
720++ self.facade.add_channel_apt_deb(
721++ "file://%s" % deb_dir, "./", trusted=True)
722+ self.facade.reload_channels()
723+ bar_1, bar_2 = sorted(self.facade.get_packages_by_name("bar"))
724+ self.facade.mark_install(bar_2)
725+@@ -2453,7 +2545,8 @@
726+ control_fields={"Status": "hold ok installed"})
727+ deb_dir = self.makeDir()
728+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.5")
729+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
730++ self.facade.add_channel_apt_deb(
731++ "file://%s" % deb_dir, "./", trusted=True)
732+ self.facade.reload_channels()
733+ [foo_10, foo_15] = sorted(self.facade.get_packages_by_name("foo"))
734+ self.facade.mark_global_upgrade()
735+@@ -2477,7 +2570,8 @@
736+ self._add_package_to_deb_dir(
737+ deb_dir, "bar", version="2.0",
738+ control_fields={"Depends": "foo (>> 1.0)"})
739+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
740++ self.facade.add_channel_apt_deb(
741++ "file://%s" % deb_dir, "./", trusted=True)
742+ self.facade.reload_channels()
743+ [foo_1, foo_2] = sorted(self.facade.get_packages_by_name("foo"))
744+ [bar_1, bar_2] = sorted(self.facade.get_packages_by_name("bar"))
745+@@ -2514,7 +2608,8 @@
746+ deb_dir = self.makeDir()
747+ self._add_package_to_deb_dir(deb_dir, "foo", version="1.5")
748+ self._add_package_to_deb_dir(deb_dir, "bar", version="1.5")
749+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
750++ self.facade.add_channel_apt_deb(
751++ "file://%s" % deb_dir, "./", trusted=True)
752+ self.facade.reload_channels()
753+ foo_10 = sorted(self.facade.get_packages_by_name("foo"))[0]
754+ self.assertEqual([foo_10], self.facade.get_locked_packages())
755+@@ -2647,7 +2742,8 @@
756+ self._add_system_package("foo")
757+ deb_dir = self.makeDir()
758+ self._add_package_to_deb_dir(deb_dir, "bar")
759+- self.facade.add_channel_apt_deb("file://%s" % deb_dir, "./")
760++ self.facade.add_channel_apt_deb(
761++ "file://%s" % deb_dir, "./", trusted=True)
762+ self.facade.reload_channels()
763+ [bar] = self.facade.get_packages_by_name("bar")
764+ self.facade.mark_remove_hold(bar)
765diff --git a/debian/patches/series b/debian/patches/series
766index 68f4a9a..7c8ca8a 100644
767--- a/debian/patches/series
768+++ b/debian/patches/series
769@@ -15,3 +15,4 @@ post-upgrade-reboot.patch
770 mem-usage-1685885.patch
771 product-name-vminfo-1828217.patch
772 stagger-launch-1788518.patch
773+1886491-trusted-local.patch

Subscribers

People subscribed via source and target branches