Merge ~paelzer/ubuntu/+source/qemu:bug-1847361-miss-old-so-on-upgrade-SRU-BIONIC into ubuntu/+source/qemu:ubuntu/bionic-devel
- Git
- lp:~paelzer/ubuntu/+source/qemu
- bug-1847361-miss-old-so-on-upgrade-SRU-BIONIC
- Merge into ubuntu/bionic-devel
Status: | Merged |
---|---|
Approved by: | Christian Ehrhardt |
Approved revision: | 161a7736f5f1a7747534b115057d22125c193f52 |
Merge reported by: | Christian Ehrhardt |
Merged at revision: | 161a7736f5f1a7747534b115057d22125c193f52 |
Proposed branch: | ~paelzer/ubuntu/+source/qemu:bug-1847361-miss-old-so-on-upgrade-SRU-BIONIC |
Merge into: | ubuntu/+source/qemu:ubuntu/bionic-devel |
Diff against target: |
317 lines (+244/-1) 7 files modified
debian/changelog (+11/-0) debian/patches/series (+1/-0) debian/patches/ubuntu/lp-1847361-modules-load-upgrade.patch (+133/-0) debian/qemu-block-extra.postrm.in (+43/-0) debian/qemu-block-extra.prerm.in (+45/-0) debian/rules (+11/-0) dev/null (+0/-1) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Rafael David Tinoco (community) | Approve | ||
Canonical Server | Pending | ||
Review via email: mp+381998@code.launchpad.net |
Commit message
Description of the change
Christian Ehrhardt (paelzer) wrote : | # |
Christian Ehrhardt (paelzer) wrote : | # |
Bug 1871830 fixed and the required change is in the planned SRUs as well.
libvirt didn't need a change so it actually stayed as-is.
Christian Ehrhardt (paelzer) wrote : | # |
SRU Template added, ready for review.
Rafael David Tinoco (rafaeldtinoco) wrote : | # |
+1. Everything looks good.
Rafael David Tinoco (rafaeldtinoco) wrote : | # |
No no no I did +1 by accident on this one, will review it..
Rafael David Tinoco (rafaeldtinoco) wrote : | # |
# checklist for fixes
-------
[.] changelog entry correct:
[.] targeted to correct codename
[.] version number is correct
[.] update-maintainer has been run before
----
[.] changes forwarded upstream/debian (if appropriate)
[.] patches match what was proposed upstream
----
[.] patches correctly included in debian/
[.] patches have correct DEP3 metadata
----
[-] relying on PPA only for build check ?
[-] if relying on PPA, did it install correctly ?
----
[-] building it locally ?
[-] if building locally, was source build good ?
[-] if building locally, was binary build good ?
----
[-] was autopkgtest tested ?
[.] relying on committer tests ?
----
[.] is this a SRU ?
[.] if a SRU, does the public bug have a template ?
[-] is this a bundle of fixes ?
[.] is this a single fix ?
----
[-] if single fix, was testcase provided ?
[-] if single fix, and testcase provided, could I reproduce it ?
[-] if single fix, and testcase provided, did it work ?
[.] relying on committer verification ?
-------
[.] = ok
[x] = not ok
[?] = question
[!] = note
[-] = n/a
-------
# files touched:
/debian/
b/debian/changelog | 11 ++++++
b/debian/
b/debian/
b/debian/
b/debian/
b/debian/rules | 1
debian/
debian/rules | 10 +++++
ui/keycodemapd
10 files changed, 268 insertions(+), 25 deletions(-)
-------
# files check:
ubuntu/
debian/
debian/
debian/rules -> ok
debian/
-------
# comments:
all good -> +1.
-------
# commits:
49352e8f93c fixup: remove mismatch between gt and src tarball
3dcbbb29a6a changelog: allow qemu to load old modules post upgrade (LP: #184736
c099ef1838f d/p/ubuntu/
e5b66304e41 d/rules: enable --enable-
ce7e5322c27 d/rules: generate maintainer scripts matching package version
c8bdada6f54 d/qemu-
ce8fcf051c7 d/p/ubuntu/
-------
Christian Ehrhardt (paelzer) wrote : | # |
Thanks, tags pushed and uploaded for SRU review
Preview Diff
1 | diff --git a/debian/changelog b/debian/changelog | |||
2 | index 3ee11c0..546008f 100644 | |||
3 | --- a/debian/changelog | |||
4 | +++ b/debian/changelog | |||
5 | @@ -1,3 +1,14 @@ | |||
6 | 1 | qemu (1:2.11+dfsg-1ubuntu7.24) bionic; urgency=medium | ||
7 | 2 | |||
8 | 3 | * allow qemu to load old modules post upgrade (LP: #1847361) | ||
9 | 4 | - d/p/ubuntu/lp-1847361-modules-load-upgrade.patch: to fallback module | ||
10 | 5 | load to a versioned path | ||
11 | 6 | - d/qemu-block-extra.*.in: save shared objects on upgrade | ||
12 | 7 | - d/rules: generate maintainer scripts matching package version on build | ||
13 | 8 | - d/rules: enable --enable-module-upgrades where --enable-modules is set | ||
14 | 9 | |||
15 | 10 | -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Mon, 02 Mar 2020 15:21:27 +0100 | ||
16 | 11 | |||
17 | 1 | qemu (1:2.11+dfsg-1ubuntu7.23) bionic-security; urgency=medium | 12 | qemu (1:2.11+dfsg-1ubuntu7.23) bionic-security; urgency=medium |
18 | 2 | 13 | ||
19 | 3 | * SECURITY UPDATE: OOB heap access via unexpected iSCSI Server response | 14 | * SECURITY UPDATE: OOB heap access via unexpected iSCSI Server response |
20 | diff --git a/debian/patches/series b/debian/patches/series | |||
21 | index 0364234..123bc83 100644 | |||
22 | --- a/debian/patches/series | |||
23 | +++ b/debian/patches/series | |||
24 | @@ -142,3 +142,4 @@ CVE-2020-7039-2.patch | |||
25 | 142 | CVE-2020-7039-3.patch | 142 | CVE-2020-7039-3.patch |
26 | 143 | CVE-2020-8608-1.patch | 143 | CVE-2020-8608-1.patch |
27 | 144 | CVE-2020-8608-2.patch | 144 | CVE-2020-8608-2.patch |
28 | 145 | ubuntu/lp-1847361-modules-load-upgrade.patch | ||
29 | diff --git a/debian/patches/ubuntu/lp-1847361-modules-load-upgrade.patch b/debian/patches/ubuntu/lp-1847361-modules-load-upgrade.patch | |||
30 | 145 | new file mode 100644 | 146 | new file mode 100644 |
31 | index 0000000..df9dbe0 | |||
32 | --- /dev/null | |||
33 | +++ b/debian/patches/ubuntu/lp-1847361-modules-load-upgrade.patch | |||
34 | @@ -0,0 +1,133 @@ | |||
35 | 1 | From ab7e28b0905b1e2daeb5d582cf0f0ce33ea47317 Mon Sep 17 00:00:00 2001 | ||
36 | 2 | From: Christian Ehrhardt <christian.ehrhardt@canonical.com> | ||
37 | 3 | Date: Mon, 2 Mar 2020 15:12:53 +0100 | ||
38 | 4 | Subject: [PATCH] modules: load modules from versioned /var/run dir | ||
39 | 5 | |||
40 | 6 | On upgrades the old .so files usually are replaced. But on the other | ||
41 | 7 | hand since a qemu process represents a guest instance it is usually kept | ||
42 | 8 | around. | ||
43 | 9 | |||
44 | 10 | That makes late addition of dynamic features e.g. 'hot-attach of a ceph | ||
45 | 11 | disk' fail by trying to load a new version of e.f. block-rbd.so into an | ||
46 | 12 | old still running qemu binary. | ||
47 | 13 | |||
48 | 14 | This adds a fallback to also load modules from a versioned directory in the | ||
49 | 15 | temporary /var/run path. That way qemu is providing a way for packaging | ||
50 | 16 | to store modules of an upgraded qemu package as needed until the next reboot. | ||
51 | 17 | |||
52 | 18 | Fixes: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1847361 | ||
53 | 19 | Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> | ||
54 | 20 | |||
55 | 21 | Backport-Note: the context is a bit different and the assert a ==. | ||
56 | 22 | Therefore adapt to the changed var name as well as adapting array size | ||
57 | 23 | based on the config option. | ||
58 | 24 | |||
59 | 25 | Origin, backport, https://git.qemu.org/?p=qemu.git;a=commit;h=267514b33ffa3f315adc26fc14d89f92e90840f5 | ||
60 | 26 | Origin, backport, https://git.qemu.org/?p=qemu.git;a=commit;h=bd83c861c0 | ||
61 | 27 | Bug-Ubuntu: https://bugs.launchpad.net/bugs/1847361 | ||
62 | 28 | Last-Update: 2020-03-02 | ||
63 | 29 | |||
64 | 30 | --- | ||
65 | 31 | configure | 15 +++++++++++++++ | ||
66 | 32 | util/module.c | 14 ++++++++++++++ | ||
67 | 33 | 2 files changed, 29 insertions(+) | ||
68 | 34 | |||
69 | 35 | --- a/configure | ||
70 | 36 | +++ b/configure | ||
71 | 37 | @@ -340,6 +340,7 @@ EXESUF="" | ||
72 | 38 | DSOSUF=".so" | ||
73 | 39 | LDFLAGS_SHARED="-shared" | ||
74 | 40 | modules="no" | ||
75 | 41 | +module_upgrades="no" | ||
76 | 42 | prefix="/usr/local" | ||
77 | 43 | mandir="\${prefix}/share/man" | ||
78 | 44 | datadir="\${prefix}/share" | ||
79 | 45 | @@ -888,6 +889,10 @@ for opt do | ||
80 | 46 | --disable-modules) | ||
81 | 47 | modules="no" | ||
82 | 48 | ;; | ||
83 | 49 | + --disable-module-upgrades) module_upgrades="no" | ||
84 | 50 | + ;; | ||
85 | 51 | + --enable-module-upgrades) module_upgrades="yes" | ||
86 | 52 | + ;; | ||
87 | 53 | --cpu=*) | ||
88 | 54 | ;; | ||
89 | 55 | --target-list=*) target_list="$optarg" | ||
90 | 56 | @@ -1495,6 +1500,7 @@ disabled with --disable-FEATURE, default | ||
91 | 57 | guest-agent-msi build guest agent Windows MSI installation package | ||
92 | 58 | pie Position Independent Executables | ||
93 | 59 | modules modules support | ||
94 | 60 | + module-upgrades try to load modules from alternate paths for upgrades | ||
95 | 61 | debug-tcg TCG debugging (default is disabled) | ||
96 | 62 | debug-info debugging information | ||
97 | 63 | sparse sparse checker | ||
98 | 64 | @@ -1707,6 +1713,11 @@ if compile_prog "-Werror -fno-gcse" "" ; | ||
99 | 65 | TRANSLATE_OPT_CFLAGS=-fno-gcse | ||
100 | 66 | fi | ||
101 | 67 | |||
102 | 68 | +# module_upgrades is only reasonable if modules are enabled | ||
103 | 69 | +if test "$modules" = "no" && test "$module_upgrades" = "yes" ; then | ||
104 | 70 | + error_exit "Can't enable module-upgrades as Modules are not enabled" | ||
105 | 71 | +fi | ||
106 | 72 | + | ||
107 | 73 | if test "$static" = "yes" ; then | ||
108 | 74 | if test "$modules" = "yes" ; then | ||
109 | 75 | error_exit "static and modules are mutually incompatible" | ||
110 | 76 | @@ -5440,6 +5451,7 @@ if test "$slirp" = "yes" ; then | ||
111 | 77 | echo "smbd $smbd" | ||
112 | 78 | fi | ||
113 | 79 | echo "module support $modules" | ||
114 | 80 | +echo "alt path mod load $module_upgrades" | ||
115 | 81 | echo "host CPU $cpu" | ||
116 | 82 | echo "host big endian $bigendian" | ||
117 | 83 | echo "target list $target_list" | ||
118 | 84 | @@ -5753,6 +5765,9 @@ if test "$modules" = "yes"; then | ||
119 | 85 | echo "CONFIG_STAMP=_$( (echo $qemu_version; echo $pkgversion; cat $0) | $shacmd - | cut -f1 -d\ )" >> $config_host_mak | ||
120 | 86 | echo "CONFIG_MODULES=y" >> $config_host_mak | ||
121 | 87 | fi | ||
122 | 88 | +if test "$module_upgrades" = "yes"; then | ||
123 | 89 | + echo "CONFIG_MODULE_UPGRADES=y" >> $config_host_mak | ||
124 | 90 | +fi | ||
125 | 91 | if test "$sdl" = "yes" ; then | ||
126 | 92 | echo "CONFIG_SDL=y" >> $config_host_mak | ||
127 | 93 | echo "CONFIG_SDLABI=$sdlabi" >> $config_host_mak | ||
128 | 94 | --- a/util/module.c | ||
129 | 95 | +++ b/util/module.c | ||
130 | 96 | @@ -20,6 +20,9 @@ | ||
131 | 97 | #endif | ||
132 | 98 | #include "qemu/queue.h" | ||
133 | 99 | #include "qemu/module.h" | ||
134 | 100 | +#ifdef CONFIG_MODULE_UPGRADES | ||
135 | 101 | +#include "qemu-version.h" | ||
136 | 102 | +#endif | ||
137 | 103 | |||
138 | 104 | typedef struct ModuleEntry | ||
139 | 105 | { | ||
140 | 106 | @@ -162,7 +165,12 @@ void module_load_one(const char *prefix, | ||
141 | 107 | #ifdef CONFIG_MODULES | ||
142 | 108 | char *fname = NULL; | ||
143 | 109 | char *exec_dir; | ||
144 | 110 | +#ifdef CONFIG_MODULE_UPGRADES | ||
145 | 111 | + char *version_dir; | ||
146 | 112 | + char *dirs[4]; | ||
147 | 113 | +#else | ||
148 | 114 | char *dirs[3]; | ||
149 | 115 | +#endif | ||
150 | 116 | char *module_name; | ||
151 | 117 | int i = 0; | ||
152 | 118 | int ret; | ||
153 | 119 | @@ -189,6 +197,14 @@ void module_load_one(const char *prefix, | ||
154 | 120 | dirs[i++] = g_strdup_printf("%s", CONFIG_QEMU_MODDIR); | ||
155 | 121 | dirs[i++] = g_strdup_printf("%s/..", exec_dir ? : ""); | ||
156 | 122 | dirs[i++] = g_strdup_printf("%s", exec_dir ? : ""); | ||
157 | 123 | + | ||
158 | 124 | +#ifdef CONFIG_MODULE_UPGRADES | ||
159 | 125 | + version_dir = g_strcanon(g_strdup(QEMU_PKGVERSION), | ||
160 | 126 | + G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "+-.~", | ||
161 | 127 | + '_'); | ||
162 | 128 | + dirs[i++] = g_strdup_printf("/var/run/qemu/%s", version_dir); | ||
163 | 129 | +#endif | ||
164 | 130 | + | ||
165 | 131 | assert(i == ARRAY_SIZE(dirs)); | ||
166 | 132 | g_free(exec_dir); | ||
167 | 133 | exec_dir = NULL; | ||
168 | diff --git a/debian/qemu-block-extra.postrm.in b/debian/qemu-block-extra.postrm.in | |||
169 | 0 | new file mode 100644 | 134 | new file mode 100644 |
170 | index 0000000..5c3d73e | |||
171 | --- /dev/null | |||
172 | +++ b/debian/qemu-block-extra.postrm.in | |||
173 | @@ -0,0 +1,43 @@ | |||
174 | 1 | #!/bin/sh | ||
175 | 2 | # postrm script for qemu-block-extra | ||
176 | 3 | # | ||
177 | 4 | # see: dh_installdeb(1) | ||
178 | 5 | |||
179 | 6 | set -e | ||
180 | 7 | |||
181 | 8 | # summary of how this script can be called: | ||
182 | 9 | # * <postrm> `remove' | ||
183 | 10 | # * <postrm> `purge' | ||
184 | 11 | # * <old-postrm> `upgrade' <new-version> | ||
185 | 12 | # * <new-postrm> `failed-upgrade' <old-version> | ||
186 | 13 | # * <new-postrm> `abort-install' | ||
187 | 14 | # * <new-postrm> `abort-install' <old-version> | ||
188 | 15 | # * <new-postrm> `abort-upgrade' <old-version> | ||
189 | 16 | # * <disappearer's-postrm> `disappear' <overwriter> | ||
190 | 17 | # <overwriter-version> | ||
191 | 18 | # for details, see https://www.debian.org/doc/debian-policy/ or | ||
192 | 19 | # the debian-policy package | ||
193 | 20 | |||
194 | 21 | |||
195 | 22 | case "$1" in | ||
196 | 23 | purge|remove) | ||
197 | 24 | # remove .so files for still running qemu instances in /var/run | ||
198 | 25 | # for details see bug LP: #1847361 | ||
199 | 26 | rm -f /var/run/qemu/@PKGVERSION@/block-*.so | ||
200 | 27 | ;; | ||
201 | 28 | |||
202 | 29 | upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) | ||
203 | 30 | ;; | ||
204 | 31 | |||
205 | 32 | *) | ||
206 | 33 | echo "postrm called with unknown argument \`$1'" >&2 | ||
207 | 34 | exit 1 | ||
208 | 35 | ;; | ||
209 | 36 | esac | ||
210 | 37 | |||
211 | 38 | # dh_installdeb will replace this with shell code automatically | ||
212 | 39 | # generated by other debhelper scripts. | ||
213 | 40 | |||
214 | 41 | #DEBHELPER# | ||
215 | 42 | |||
216 | 43 | exit 0 | ||
217 | diff --git a/debian/qemu-block-extra.prerm.in b/debian/qemu-block-extra.prerm.in | |||
218 | 0 | new file mode 100644 | 44 | new file mode 100644 |
219 | index 0000000..dee25a8 | |||
220 | --- /dev/null | |||
221 | +++ b/debian/qemu-block-extra.prerm.in | |||
222 | @@ -0,0 +1,45 @@ | |||
223 | 1 | #!/bin/sh | ||
224 | 2 | # prerm script for qemu-block-extra | ||
225 | 3 | # | ||
226 | 4 | # see: dh_installdeb(1) | ||
227 | 5 | |||
228 | 6 | set -e | ||
229 | 7 | |||
230 | 8 | # summary of how this script can be called: | ||
231 | 9 | # * <prerm> `remove' | ||
232 | 10 | # * <old-prerm> `upgrade' <new-version> | ||
233 | 11 | # * <new-prerm> `failed-upgrade' <old-version> | ||
234 | 12 | # * <conflictor's-prerm> `remove' `in-favour' <package> <new-version> | ||
235 | 13 | # * <deconfigured's-prerm> `deconfigure' `in-favour' | ||
236 | 14 | # <package-being-installed> <version> `removing' | ||
237 | 15 | # <conflicting-package> <version> | ||
238 | 16 | # for details, see https://www.debian.org/doc/debian-policy/ or | ||
239 | 17 | # the debian-policy package | ||
240 | 18 | |||
241 | 19 | |||
242 | 20 | case "$1" in | ||
243 | 21 | remove) | ||
244 | 22 | ;; | ||
245 | 23 | |||
246 | 24 | upgrade|deconfigure) | ||
247 | 25 | # retain .so files for still running qemu instances in /var/run | ||
248 | 26 | # for details see bug LP: #1847361 | ||
249 | 27 | mkdir -p /var/run/qemu/@PKGVERSION@ | ||
250 | 28 | cp /usr/lib/@ARCH@/qemu/block-*.so /var/run/qemu/@PKGVERSION@/ | ||
251 | 29 | ;; | ||
252 | 30 | |||
253 | 31 | failed-upgrade) | ||
254 | 32 | ;; | ||
255 | 33 | |||
256 | 34 | *) | ||
257 | 35 | echo "prerm called with unknown argument \`$1'" >&2 | ||
258 | 36 | exit 1 | ||
259 | 37 | ;; | ||
260 | 38 | esac | ||
261 | 39 | |||
262 | 40 | # dh_installdeb will replace this with shell code automatically | ||
263 | 41 | # generated by other debhelper scripts. | ||
264 | 42 | |||
265 | 43 | #DEBHELPER# | ||
266 | 44 | |||
267 | 45 | exit 0 | ||
268 | diff --git a/debian/rules b/debian/rules | |||
269 | index 0cc70e1..ce0392e 100755 | |||
270 | --- a/debian/rules | |||
271 | +++ b/debian/rules | |||
272 | @@ -15,6 +15,9 @@ else | |||
273 | 15 | VENDOR := DEBIAN | 15 | VENDOR := DEBIAN |
274 | 16 | endif | 16 | endif |
275 | 17 | 17 | ||
276 | 18 | AUTOGENERATED:= qemu-block-extra.prerm qemu-block-extra.postrm | ||
277 | 19 | PKGVERSION := $(shell printf "Debian ${DEB_VERSION}" | tr --complement '[:alnum:]+-.~' '_') | ||
278 | 20 | |||
279 | 18 | # support parallel build using DEB_BUILD_OPTIONS=parallel=N | 21 | # support parallel build using DEB_BUILD_OPTIONS=parallel=N |
280 | 19 | ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) | 22 | ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) |
281 | 20 | MAKEFLAGS += -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) | 23 | MAKEFLAGS += -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) |
282 | @@ -90,6 +93,12 @@ endif # enable_linux_user | |||
283 | 90 | configure-stamp: configure | 93 | configure-stamp: configure |
284 | 91 | dh_testdir | 94 | dh_testdir |
285 | 92 | 95 | ||
286 | 96 | for f in ${AUTOGENERATED} ; do \ | ||
287 | 97 | sed -e 's%@ARCH@%${DEB_HOST_MULTIARCH}%g' \ | ||
288 | 98 | -e 's%@PKGVERSION@%${PKGVERSION}%g' \ | ||
289 | 99 | < debian/$$f.in > debian/$$f ; \ | ||
290 | 100 | done | ||
291 | 101 | |||
292 | 93 | # system build | 102 | # system build |
293 | 94 | rm -rf qemu-build; mkdir qemu-build | 103 | rm -rf qemu-build; mkdir qemu-build |
294 | 95 | cd qemu-build && \ | 104 | cd qemu-build && \ |
295 | @@ -97,6 +106,7 @@ configure-stamp: configure | |||
296 | 97 | --${enable_system}-system \ | 106 | --${enable_system}-system \ |
297 | 98 | --${enable_linux_user}-linux-user \ | 107 | --${enable_linux_user}-linux-user \ |
298 | 99 | --enable-modules \ | 108 | --enable-modules \ |
299 | 109 | --enable-module-upgrades \ | ||
300 | 100 | $(shell sh debian/extract-config-opts \ | 110 | $(shell sh debian/extract-config-opts \ |
301 | 101 | $(DEB_HOST_ARCH_OS)-$(DEB_HOST_ARCH) debian/control) \ | 111 | $(DEB_HOST_ARCH_OS)-$(DEB_HOST_ARCH) debian/control) \ |
302 | 102 | $(QEMU_CONFIGURE_OPTIONS) || \ | 112 | $(QEMU_CONFIGURE_OPTIONS) || \ |
303 | @@ -141,6 +151,7 @@ clean: debian/control | |||
304 | 141 | rm -rf qemu-build user-static-build | 151 | rm -rf qemu-build user-static-build |
305 | 142 | rm -f configure-stamp build-stamp | 152 | rm -f configure-stamp build-stamp |
306 | 143 | find scripts/ -name '*.pyc' -delete || : | 153 | find scripts/ -name '*.pyc' -delete || : |
307 | 154 | rm -f $(patsubst %, debian/%, ${AUTOGENERATED}) | ||
308 | 144 | dh_clean | 155 | dh_clean |
309 | 145 | 156 | ||
310 | 146 | # define ${ai} variable to be one of -i (indep), -a (arch) or nothing (both) | 157 | # define ${ai} variable to be one of -i (indep), -a (arch) or nothing (both) |
311 | diff --git a/ui/keycodemapdb/..git b/ui/keycodemapdb/..git | |||
312 | 147 | deleted file mode 100644 | 158 | deleted file mode 100644 |
313 | index 5e38c9a..0000000 | |||
314 | --- a/ui/keycodemapdb/..git | |||
315 | +++ /dev/null | |||
316 | @@ -1 +0,0 @@ | |||
317 | 1 | gitdir: ../../.git/modules/ui/keycodemapdb |
Marking these WIP until bug 1871830 is finished