Merge ~paelzer/ubuntu/+source/spice:merge-14.2-4-focal into ubuntu/+source/spice:debian/sid

Proposed by Christian Ehrhardt 
Status: Merged
Approved by: Christian Ehrhardt 
Approved revision: bc1fce0cf6c5e4393cf75f335975e75be1050898
Merge reported by: Bryce Harrington
Merged at revision: bc1fce0cf6c5e4393cf75f335975e75be1050898
Proposed branch: ~paelzer/ubuntu/+source/spice:merge-14.2-4-focal
Merge into: ubuntu/+source/spice:debian/sid
Diff against target: 234 lines (+151/-7)
6 files modified
debian/changelog (+113/-0)
debian/control (+2/-2)
debian/source/include-binaries (+1/-0)
debian/tests/automated-tests (+8/-4)
debian/tests/control (+2/-1)
debian/tests/regression-test.py (+25/-0)
Reviewer Review Type Date Requested Status
Bryce Harrington (community) Approve
Canonical Server packageset reviewers Pending
Canonical Server Pending
Review via email: mp+375496@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Bileto ticket: https://bileto.ubuntu.com/#/ticket/3837
PPA: https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/3837

Pushed tags to ease review:
To ssh://git.launchpad.net/~paelzer/ubuntu/+source/spice
 * [new tag] lp1852439/logical/0.14.2-0ubuntu2 -> lp1852439/logical/0.14.2-0ubuntu2
 * [new tag] lp1852439/new/debian -> lp1852439/new/debian
 * [new tag] lp1852439/old/debian -> lp1852439/old/debian
 * [new tag] lp1852439/old/ubuntu -> lp1852439/old/ubuntu
 * [new tag] lp1852439/reconstruct/0.14.2-0ubuntu2 -> lp1852439/reconstruct/0.14.2-0ubuntu2
 * [new tag] lp1852439/split/0.14.2-0ubuntu2 -> lp1852439/split/0.14.2-0ubuntu2

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

As a summary, Debian took all we had except the autopkgtest fixes.

Plan (for now): I'll rebase and test those in Focal, once they work I'll open an MP with Debian (they are now on salsa, but were not in the past)

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Well it is time to revisit the autopkgtest for real.
It is sort of broken as the Debian history shows [1]
I can fix it up to somewhat work.
But also upstream has sort of given up/neglected it [2]

I have submitted my fixes to Debian [3], but if they ack to drop these tests completely I'd want to follow on that.

Note on [4] that amd64 & arm64 are the only arches this worked before, so this isn't a regression.

[1]: https://ci.debian.net/packages/s/spice/
[2]: https://gitlab.freedesktop.org/spice/spice/issues/34
[3]: https://salsa.debian.org/debian/spice/merge_requests/1
[4]: https://bileto.ubuntu.com/excuses/3837/focal.html

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Marking MP ready for review

Revision history for this message
Bryce Harrington (bryce) wrote :

I've run the autopkgtests on the ppa package in lxc, and looked at the failing test-display-streaming test - for me it doesn't even produce output, I guess because there's no $DISPLAY available? The bileto test results log also shows the test failed, although it shows up as a PASS in the excuses results(?!?) Guessing there's some setup work needed to get the remote display registered properly in lxc? (Might be useful for future reviewing to have a paint-by-numbers set of commands to run to get remote display enabled inside an lxc container.)

However, given that test-display-streaming appears to not have been hooked up before, and may not be getting necessary attention upstream, it may make sense to disable it. It looks like this would avoid needing to build some C code, which would also make test run time faster. Given that upstream appears to have an active and well-maintained CI system, the risk of something being missed by excluding this test seems minimal.

That said, given that the purpose of this tool is for accessing a remote desktop, some sort of smoke test to verify graphics are getting generated and transmitted from server to client would be appropriate for acceptance testing. But that seems a different scope than this merge from debian.

Anyway, everything else in the merge LGTM; things I've checked listed below. As to the failed test, while I lean towards disabling it, I don't feel strongly enough on that point to block landing the merge, esp. since it isn't showing up as a fail on the excuses page.

- [√] changelog entry correct, targeted to correct codename
- [√] no major upstream changes to consider
- [√] debian changes look safe
- [√] update-maintainer has been run
- [√] changes forwarded upstream/debian (if appropriate)
- [√] nothing else to drop
- [-] patches match what was proposed upstream
- [-] patches correctly included in debian/patches/series?
- [-] patches have correct DEP3 metadata

review: Approve
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thanks for the review, yeah we are in sync of dropping the test - I just want to do that "with Debian" hence the MR up there.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

To ssh://git.launchpad.net/~usd-import-team/ubuntu/+source/spice
 * [new tag] upload/0.14.2-4ubuntu1 -> upload/0.14.2-4ubuntu1

Uploading to ubuntu (via ftp to upload.ubuntu.com):
  Uploading spice_0.14.2-4ubuntu1.dsc: done.
  Uploading spice_0.14.2.orig.tar.bz2: done.
  Uploading spice_0.14.2-4ubuntu1.debian.tar.xz: done.
  Uploading spice_0.14.2-4ubuntu1_source.buildinfo: done.
  Uploading spice_0.14.2-4ubuntu1_source.changes: done.
Successfully uploaded packages.

Revision history for this message
Bryce Harrington (bryce) wrote :

This has migrated into focal

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 12c1ac6..fb2aac4 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,34 @@
6+spice (0.14.2-4ubuntu1) focal; urgency=medium
7+
8+ * Merge with Debian unstable (LP: #1852439). Remaining changes:
9+ - d/control: Don't recommend -libav gstreamer plugins since it is in
10+ universe
11+ - make autopkgtests work again
12+ - d/t/automated-tests: spice-common moved into dir subprojects
13+ - d/t/automated-tests: option --enable-automated-tests now is always on
14+ - d/t/control: make tests more debuggable by allowing stderr
15+ - d/t/control: install new test dependency python-pil
16+ - d/t/regression-test.py, d/t/base_test.ppm: add file dropped in release
17+ tarball but needed for autopkgtests
18+ - d/source/include-binaries: allow binary base_test.ppm in package
19+ * Added changes:
20+ - d/t/automated-tests, d/t/control: make autopkgtests python3 compatible
21+ * Dropped Changes (in Debian):
22+ - d/control: Don't recommend -ugly gstreamer plugins since it is in universe
23+ - d/patches: drop patches being upstream in 0.14.2
24+ - new upstream 0.14.2
25+ - disable failing test-listen
26+ - d/libspice-server1.symbols: update for new symbols in 14.2
27+ - d/p/fix-test-qxl-parsing-on-ppc64el-and-armhf.patch: avoid FTBFS due to
28+ different handling of high words for constants
29+ - d/control: bump build dependency to libspice-protocol-dev >=0.14.0
30+ * Dropped Changes (Upstream)
31+ - SECURITY UPDATE: Integer overflow and buffer overflow CVE-2017-12194
32+ - SECURITY UPDATE: Denial of service CVE-2018-10873
33+ - SECURITY UPDATE: off-by-one error in memslot_get_virt CVE-2019-3813
34+
35+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 13 Nov 2019 15:54:00 +0100
36+
37 spice (0.14.2-4) unstable; urgency=medium
38
39 * disable failing test-listen (Closes: #941006)
40@@ -45,6 +76,42 @@ spice (0.14.2-1) unstable; urgency=medium
41
42 -- Michael Tokarev <mjt@tls.msk.ru> Fri, 30 Aug 2019 13:54:00 +0300
43
44+spice (0.14.2-0ubuntu2) eoan; urgency=medium
45+
46+ * Fixup autpkgtest (LP: #1834286)
47+ These changes will make the test able to run again, but not output mismatch
48+ errors (this matches the behavior before 0.14.2). Upstream discussion
49+ started on how to resolve that as a next step, more details at the LP bug.
50+ - d/t/automated-tests: spice-common moved into dir subprojects
51+ - d/t/automated-tests: option --enable-automated-tests now is always on"
52+ - d/t/automated-tests, d/t/control: make tests more debuggable by allowing
53+ stderr
54+ - d/t/control: install new test dependency python-pil
55+ - d/t/base_test.ppm, d/t/regression-test.py: provide test resources from
56+ upstream git not part of the released tarball anymore
57+ - d/source/include-binaries: allow binary base_test.ppm in package
58+
59+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 25 Jun 2019 12:59:01 +0200
60+
61+spice (0.14.2-0ubuntu1) eoan; urgency=medium
62+
63+ * New upstream release
64+ Among many other fixes this will resolve (LP: #1814146)
65+ - d/p/disable-failing-test-listen.patch: disable new test that is
66+ unreliable in the build environment
67+ - d/patches: drop patches being upstream in 0.14.2
68+ + debian/patches/CVE-2017-12194-1.patch
69+ + debian/patches/CVE-2017-12194-2.patch
70+ + debian/patches/CVE-2017-12194-3.patch
71+ + debian/patches/CVE-2018-10873.patch
72+ + debian/patches/CVE-2019-3813.patch
73+ - d/libspice-server1.symbols: update for new symbols in 14.2
74+ - d/p/fix-test-qxl-parsing-on-ppc64el-and-armhf.patch: avoid FTBFS due
75+ to different handling of high words for constants
76+ - d/control: bump build dependency to libspice-protocol-dev >=0.14.0
77+
78+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Fri, 24 May 2019 12:27:26 +0200
79+
80 spice (0.14.0-1.3) unstable; urgency=medium
81
82 * Non-maintainer upload.
83@@ -67,6 +134,52 @@ spice (0.14.0-1.1) unstable; urgency=medium
84
85 -- Salvatore Bonaccorso <carnil@debian.org> Sat, 15 Sep 2018 09:15:28 +0200
86
87+spice (0.14.0-1ubuntu5) disco; urgency=medium
88+
89+ * SECURITY UPDATE: off-by-one error in memslot_get_virt
90+ - debian/patches/CVE-2019-3813.patch: fix checks in server/memslot.c,
91+ add tests to server/tests/test-qxl-parsing.c.
92+ - CVE-2019-3813
93+ * debian/tests/automated-tests: fix incorrect test name, don't fail on
94+ build writing to stderr.
95+
96+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 24 Jan 2019 08:58:10 -0500
97+
98+spice (0.14.0-1ubuntu4) cosmic; urgency=medium
99+
100+ * SECURITY UPDATE: Denial of service
101+ - debian/patches/CVE-2018-10873.patch: fix in
102+ spice-common/python_modules/demarshal.py,
103+ - CVE-2018-10873
104+
105+ -- Leonidas S. Barbosa <leo.barbosa@canonical.com> Mon, 20 Aug 2018 13:26:02 -0300
106+
107+spice (0.14.0-1ubuntu3) cosmic; urgency=medium
108+
109+ * SECURITY UPDATE: Integer overflow and buffer overflow
110+ - debian/patches/CVE-2017-12194-1.patch: fix a integer overflow
111+ computing sizes in spice-common/python_modules/demarshal.py.
112+ - debian/patches/CVE-2017-12194-2.patch: avoid integer overflow
113+ in spice-common/python_modules/demarshal.py,
114+ spice-common/python_modules/marshal.py.
115+ - debian/patches/CVE-2017-12194-3.patch: add tests to verify fix.
116+ - CVE-2017-12194
117+
118+ -- Leonidas S. Barbosa <leo.barbosa@canonical.com> Tue, 22 May 2018 14:53:01 -0300
119+
120+spice (0.14.0-1ubuntu2) bionic; urgency=high
121+
122+ * No change rebuild against openssl1.1.
123+
124+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 06 Feb 2018 17:55:31 +0000
125+
126+spice (0.14.0-1ubuntu1) bionic; urgency=medium
127+
128+ * Don't recommend -ugly or -libav gstreamer plugins since they
129+ are in universe
130+
131+ -- Jeremy Bicha <jbicha@ubuntu.com> Wed, 01 Nov 2017 21:55:03 -0400
132+
133 spice (0.14.0-1) unstable; urgency=medium
134
135 * New upstream release
136diff --git a/debian/control b/debian/control
137index c88a583..7d76b23 100644
138--- a/debian/control
139+++ b/debian/control
140@@ -1,7 +1,8 @@
141 Source: spice
142 Section: misc
143 Priority: optional
144-Maintainer: Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>
145+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
146+XSBC-Original-Maintainer: Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>
147 Uploaders: Michael Tokarev <mjt@tls.msk.ru>
148 Build-Depends:
149 debhelper (>= 10),
150@@ -38,7 +39,6 @@ Multi-Arch: same
151 Pre-Depends: ${misc:Pre-Depends}
152 Depends: ${misc:Depends}, ${shlibs:Depends}
153 Recommends:
154- gstreamer1.0-libav,
155 gstreamer1.0-plugins-base,
156 gstreamer1.0-plugins-good,
157 Suggests:
158diff --git a/debian/source/include-binaries b/debian/source/include-binaries
159new file mode 100644
160index 0000000..82c1427
161--- /dev/null
162+++ b/debian/source/include-binaries
163@@ -0,0 +1 @@
164+debian/tests/base_test.ppm
165diff --git a/debian/tests/automated-tests b/debian/tests/automated-tests
166index b672145..2aeb3ec 100644
167--- a/debian/tests/automated-tests
168+++ b/debian/tests/automated-tests
169@@ -1,13 +1,17 @@
170 #! /bin/sh
171
172-set -e
173+set -ex
174
175-dh_auto_configure -- --enable-automated-tests \
176+dh_auto_configure -- \
177 --disable-celt051 \
178 --disable-silent-rules \
179 --enable-smartcard
180-make -C spice-common/common libspice-common.la libspice-common-server.la
181+make -C subprojects/spice-common/common libspice-common.la libspice-common-server.la
182 make -C server libspice-server.la
183 make -C server/tests all
184-./server/tests/test_display_streaming --automated-tests
185+cp -av debian/tests/regression-test.py server/tests
186+sed -i -e'1s/python/python3/' server/tests/regression-test.py
187+cp -av debian/tests/base_test.ppm server/tests
188+cd server/tests
189+./test-display-streaming --automated-tests
190
191diff --git a/debian/tests/base_test.ppm b/debian/tests/base_test.ppm
192new file mode 100644
193index 0000000..b28a64d
194Binary files /dev/null and b/debian/tests/base_test.ppm differ
195diff --git a/debian/tests/control b/debian/tests/control
196index c5fff56..204d6db 100644
197--- a/debian/tests/control
198+++ b/debian/tests/control
199@@ -1,2 +1,3 @@
200 Tests: automated-tests
201-Depends: @, @builddeps@, spice-client-gtk
202+Depends: @, @builddeps@, spice-client-gtk, python3-pil, python3
203+Restrictions: allow-stderr
204diff --git a/debian/tests/regression-test.py b/debian/tests/regression-test.py
205new file mode 100755
206index 0000000..81eaecf
207--- /dev/null
208+++ b/debian/tests/regression-test.py
209@@ -0,0 +1,25 @@
210+#!/usr/bin/python
211+from subprocess import PIPE, Popen
212+from PIL import Image
213+from PIL import ImageChops
214+
215+
216+def spicy_screenshot():
217+ cmd = "spicy-screenshot -h localhost -p 5912 -o output.ppm"
218+ p = Popen(cmd, shell=True)
219+ p.wait()
220+
221+def verify():
222+ base = Image.open("base_test.ppm")
223+ output = Image.open("output.ppm")
224+ return ImageChops.difference(base, output).getbbox()
225+
226+if __name__ == "__main__":
227+ spicy_screenshot()
228+ diff = verify()
229+
230+ if diff is None:
231+ print("\033[1;32mSUCCESS: No regressions were found!\033[1;m")
232+ else:
233+ print("\033[1;31mFAIL: Regressions were found!\n\033[1;m"
234+ "\033[1;31m Please, take a look in your code and go fix it!\033[1;m")

Subscribers

People subscribed via source and target branches