Merge ~bryce/ubuntu/+source/ipmitool:merge-v1.8.18-11-impish into ubuntu/+source/ipmitool:debian/sid
- Git
- lp:~bryce/ubuntu/+source/ipmitool
- merge-v1.8.18-11-impish
- Merge into debian/sid
Status: | Merged |
---|---|
Approved by: | Utkarsh Gupta |
Approved revision: | bd4b8bd9b19e7b751320bc99a4c64e5f6668a226 |
Merge reported by: | Bryce Harrington |
Merged at revision: | bd4b8bd9b19e7b751320bc99a4c64e5f6668a226 |
Proposed branch: | ~bryce/ubuntu/+source/ipmitool:merge-v1.8.18-11-impish |
Merge into: | ubuntu/+source/ipmitool:debian/sid |
Diff against target: |
464 lines (+423/-1) 4 files modified
debian/changelog (+16/-0) debian/control (+2/-1) debian/patches/add_basic_support_for_quanta.patch (+404/-0) debian/patches/series (+1/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Utkarsh Gupta (community) | Approve | ||
Canonical Server packageset reviewers | Pending | ||
Canonical Server | Pending | ||
Review via email: mp+408249@code.launchpad.net |
Commit message
Description of the change
Bryce Harrington (bryce) wrote : | # |
Utkarsh Gupta (utkarsh) wrote : | # |
+1, looks good. Thanks! \o/
Bryce Harrington (bryce) wrote : | # |
Thanks for the review! Pushed:
$ debuild -S $(git ubuntu push-for-upload)
Everything up-to-date
dpkg-buildpackage -us -uc -ui -i -I.bzr -I.svn -I.git -S --changes-
...
fixup_buildinfo ipmitool_
signfile buildinfo ipmitool_
fixup_changes dsc ipmitool_
fixup_changes buildinfo ipmitool_
signfile changes ipmitool_
Successfully signed dsc, buildinfo, changes files
$ dput ubuntu ipmitool_
D: Setting host argument.
Checking signature on .changes
gpg: /home/bryce/
Checking signature on .dsc
gpg: /home/bryce/
Uploading to ubuntu (via ftp to upload.ubuntu.com):
Uploading ipmitool_
Uploading ipmitool_
Uploading ipmitool_
Uploading ipmitool_
Successfully uploaded packages.
On Wed, Sep 08, 2021 at 03:30:28AM -0000, Utkarsh Gupta wrote:
> The proposal to merge ~bryce/
>
> Status: Needs review => Approved
>
> For more details, see:
> https:/
> --
> You are the owner of ~bryce/
Bryce Harrington (bryce) wrote : | # |
This has migrated successfully.
- Source Package: ipmitool
- Current Version: 1.8.18-11ubuntu1
- New Version: 1.8.18-11ubuntu1
- Migrated: True
- Requester: Bryce Harrington
Preview Diff
1 | diff --git a/debian/changelog b/debian/changelog |
2 | index c08965e..88e3b8a 100644 |
3 | --- a/debian/changelog |
4 | +++ b/debian/changelog |
5 | @@ -1,3 +1,11 @@ |
6 | +ipmitool (1.8.18-11ubuntu1) impish; urgency=medium |
7 | + |
8 | + * Merge with Debian unstable. Remaining changes: |
9 | + - d/p/add_basic_support_for_quanta.patch: Add basic support for Quanta |
10 | + (LP #1864612) |
11 | + |
12 | + -- Bryce Harrington <bryce@canonical.com> Tue, 07 Sep 2021 16:37:41 -0700 |
13 | + |
14 | ipmitool (1.8.18-11) unstable; urgency=medium |
15 | |
16 | * Remove useless debian/ipmitool.lintian-overrides. |
17 | @@ -12,6 +20,14 @@ ipmitool (1.8.18-11) unstable; urgency=medium |
18 | |
19 | -- Jörg Frings-Fürst <debian@jff.email> Sun, 22 Aug 2021 21:15:52 +0200 |
20 | |
21 | +ipmitool (1.8.18-10.1ubuntu1) impish; urgency=medium |
22 | + |
23 | + * d/p/add_basic_support_for_quanta.patch: Add basic support for Quanta |
24 | + - Enables support for IPMI events on Quanta Server hardware |
25 | + (LP: #1864612) |
26 | + |
27 | + -- Bryce Harrington <bryce@canonical.com> Wed, 30 Jun 2021 17:19:24 -0700 |
28 | + |
29 | ipmitool (1.8.18-10.1) unstable; urgency=high |
30 | |
31 | * Non-maintainer upload. |
32 | diff --git a/debian/control b/debian/control |
33 | index 06e676a..a601e19 100644 |
34 | --- a/debian/control |
35 | +++ b/debian/control |
36 | @@ -1,7 +1,8 @@ |
37 | Source: ipmitool |
38 | Section: utils |
39 | Priority: optional |
40 | -Maintainer: Jörg Frings-Fürst <debian@jff.email> |
41 | +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> |
42 | +XSBC-Original-Maintainer: Jörg Frings-Fürst <debian@jff.email> |
43 | Build-Depends: |
44 | debhelper-compat (= 13), |
45 | init-system-helpers (>= 1.58), |
46 | diff --git a/debian/patches/add_basic_support_for_quanta.patch b/debian/patches/add_basic_support_for_quanta.patch |
47 | new file mode 100644 |
48 | index 0000000..345b39a |
49 | --- /dev/null |
50 | +++ b/debian/patches/add_basic_support_for_quanta.patch |
51 | @@ -0,0 +1,404 @@ |
52 | +From 5c033c06abb45bc183f42cd758c61807ce953726 Mon Sep 17 00:00:00 2001 |
53 | +From: qctbmc <qct.bmc@gmail.com> |
54 | +Date: Tue, 10 Jul 2018 11:21:55 +0800 |
55 | +Subject: [PATCH] oem: Add basic support for Quanta |
56 | + |
57 | +--- |
58 | + include/ipmitool/Makefile.am | 2 +- |
59 | + include/ipmitool/ipmi_quantaoem.h | 55 +++++++++ |
60 | + lib/Makefile.am | 2 +- |
61 | + lib/ipmi_main.c | 1 + |
62 | + lib/ipmi_oem.c | 14 +++ |
63 | + lib/ipmi_quantaoem.c | 184 ++++++++++++++++++++++++++++++ |
64 | + lib/ipmi_sel.c | 21 +++- |
65 | + src/ipmitool.c | 1 + |
66 | + 8 files changed, 274 insertions(+), 6 deletions(-) |
67 | + create mode 100644 include/ipmitool/ipmi_quantaoem.h |
68 | + create mode 100644 lib/ipmi_quantaoem.c |
69 | + |
70 | +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/ipmitool/+bug/1864612 |
71 | +Origin: upstream, https://github.com/ipmitool/ipmitool/commit/5c033c06abb45bc183f42cd758c61807ce953726 |
72 | +Applied-Upstream: 1.8.19, commit:5c033c06abb45bc183f42cd758c61807ce953726 |
73 | +Reviewed-By: Bryce Harrington <bryce@canonical.com> |
74 | + |
75 | +--- a/include/ipmitool/Makefile.am |
76 | ++++ b/include/ipmitool/Makefile.am |
77 | +@@ -39,4 +39,4 @@ |
78 | + ipmi_fwum.h ipmi_main.h ipmi_tsol.h ipmi_firewall.h \ |
79 | + ipmi_kontronoem.h ipmi_ekanalyzer.h ipmi_gendev.h ipmi_ime.h \ |
80 | + ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h ipmi_sel_supermicro.h \ |
81 | +- ipmi_cfgp.h ipmi_lanp6.h |
82 | ++ ipmi_cfgp.h ipmi_lanp6.h ipmi_quantaoem.h |
83 | +--- /dev/null |
84 | ++++ b/include/ipmitool/ipmi_quantaoem.h |
85 | +@@ -0,0 +1,55 @@ |
86 | ++/* |
87 | ++ * Copyright (c) 2018 Quanta Computer Inc. All rights reserved. |
88 | ++ * |
89 | ++ * Redistribution and use in source and binary forms, with or without |
90 | ++ * modification, are permitted provided that the following conditions |
91 | ++ * are met: |
92 | ++ * |
93 | ++ * Redistribution of source code must retain the above copyright |
94 | ++ * notice, this list of conditions and the following disclaimer. |
95 | ++ * |
96 | ++ * Redistribution in binary form must reproduce the above copyright |
97 | ++ * notice, this list of conditions and the following disclaimer in the |
98 | ++ * documentation and/or other materials provided with the distribution. |
99 | ++ * |
100 | ++ * Neither the name of Quanta Computer Inc. or the names of |
101 | ++ * contributors may be used to endorse or promote products derived |
102 | ++ * from this software without specific prior written permission. |
103 | ++ * |
104 | ++ * This software is provided "AS IS," without a warranty of any kind. |
105 | ++ * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, |
106 | ++ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A |
107 | ++ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. |
108 | ++ * Quanta Computer Inc. AND ITS LICENSORS SHALL NOT BE LIABLE |
109 | ++ * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING |
110 | ++ * OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL |
111 | ++ * Quanta Computer Inc. OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, |
112 | ++ * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR |
113 | ++ * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF |
114 | ++ * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, |
115 | ++ * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
116 | ++ */ |
117 | ++ |
118 | ++#ifndef IPMI_QUANTAOEM_H |
119 | ++#define IPMI_QUANTAOEM_H |
120 | ++ |
121 | ++#if HAVE_CONFIG_H |
122 | ++# include <config.h> |
123 | ++#endif |
124 | ++#include <ipmitool/ipmi.h> |
125 | ++#include <ipmitool/ipmi_sdr.h> |
126 | ++ |
127 | ++#define OEM_QCT_NETFN 0x36 |
128 | ++#define OEM_QCT_GET_INFO 0x65 |
129 | ++ |
130 | ++typedef enum |
131 | ++{ |
132 | ++ OEM_QCT_PLATFORM_UNKNOWN = 0, |
133 | ++ OEM_QCT_PLATFORM_GRANTLEY, |
134 | ++ OEM_QCT_PLATFORM_PURLEY |
135 | ++} qct_platform_t; |
136 | ++ |
137 | ++qct_platform_t oem_qct_get_platform_id(struct ipmi_intf *intf); |
138 | ++char *oem_qct_get_evt_desc(struct ipmi_intf *intf, struct sel_event_record *rec); |
139 | ++ |
140 | ++#endif /*IPMI_QUANTAOEM_H*/ |
141 | +--- a/lib/Makefile.am |
142 | ++++ b/lib/Makefile.am |
143 | +@@ -41,7 +41,7 @@ |
144 | + ipmi_main.c ipmi_tsol.c ipmi_firewall.c ipmi_kontronoem.c \ |
145 | + ipmi_hpmfwupg.c ipmi_sdradd.c ipmi_ekanalyzer.c ipmi_gendev.c \ |
146 | + ipmi_ime.c ipmi_delloem.c ipmi_dcmi.c hpm2.c ipmi_vita.c \ |
147 | +- ipmi_lanp6.c ipmi_cfgp.c \ |
148 | ++ ipmi_lanp6.c ipmi_cfgp.c ipmi_quantaoem.c \ |
149 | + ../src/plugins/lan/md5.c ../src/plugins/lan/md5.h |
150 | + |
151 | + libipmitool_la_LDFLAGS = -export-dynamic |
152 | +--- a/lib/ipmi_main.c |
153 | ++++ b/lib/ipmi_main.c |
154 | +@@ -76,6 +76,7 @@ |
155 | + #include <ipmitool/ipmi_picmg.h> |
156 | + #include <ipmitool/ipmi_kontronoem.h> |
157 | + #include <ipmitool/ipmi_vita.h> |
158 | ++#include <ipmitool/ipmi_quantaoem.h> |
159 | + |
160 | + #ifdef HAVE_CONFIG_H |
161 | + # include <config.h> |
162 | +--- a/lib/ipmi_oem.c |
163 | ++++ b/lib/ipmi_oem.c |
164 | +@@ -39,6 +39,7 @@ |
165 | + |
166 | + static int ipmi_oem_supermicro(struct ipmi_intf * intf); |
167 | + static int ipmi_oem_ibm(struct ipmi_intf * intf); |
168 | ++static int ipmi_oem_quanta(struct ipmi_intf * intf); |
169 | + |
170 | + static struct ipmi_oem_handle ipmi_oem_list[] = { |
171 | + { |
172 | +@@ -71,6 +72,11 @@ |
173 | + .name = "kontron", |
174 | + .desc = "Kontron OEM big buffer support" |
175 | + }, |
176 | ++ { |
177 | ++ .name = "quanta", |
178 | ++ .desc = "Quanta IPMIv1.5 BMC with OEM LAN authentication support", |
179 | ++ .setup = ipmi_oem_quanta, |
180 | ++ }, |
181 | + { 0 } |
182 | + }; |
183 | + |
184 | +@@ -93,6 +99,14 @@ |
185 | + return ipmi_sel_oem_init((const char *)filename); |
186 | + } |
187 | + |
188 | ++/* Quanta IPMIv2 BMCs use OEM authtype */ |
189 | ++static int |
190 | ++ipmi_oem_quanta(struct ipmi_intf * intf) |
191 | ++{ |
192 | ++ ipmi_intf_session_set_authtype(intf, IPMI_SESSION_AUTHTYPE_OEM); |
193 | ++ return 0; |
194 | ++} |
195 | ++ |
196 | + /* ipmi_oem_print - print list of OEM handles |
197 | + */ |
198 | + void |
199 | +--- /dev/null |
200 | ++++ b/lib/ipmi_quantaoem.c |
201 | +@@ -0,0 +1,184 @@ |
202 | ++/* |
203 | ++ * Copyright (c) 2018 Quanta Computer Inc. All rights reserved. |
204 | ++ * |
205 | ++ * Redistribution and use in source and binary forms, with or without |
206 | ++ * modification, are permitted provided that the following conditions |
207 | ++ * are met: |
208 | ++ * |
209 | ++ * Redistribution of source code must retain the above copyright |
210 | ++ * notice, this list of conditions and the following disclaimer. |
211 | ++ * |
212 | ++ * Redistribution in binary form must reproduce the above copyright |
213 | ++ * notice, this list of conditions and the following disclaimer in the |
214 | ++ * documentation and/or other materials provided with the distribution. |
215 | ++ * |
216 | ++ * Neither the name of Quanta Computer Inc. or the names of |
217 | ++ * contributors may be used to endorse or promote products derived |
218 | ++ * from this software without specific prior written permission. |
219 | ++ * |
220 | ++ * This software is provided "AS IS," without a warranty of any kind. |
221 | ++ * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, |
222 | ++ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A |
223 | ++ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. |
224 | ++ * Quanta Computer Inc. AND ITS LICENSORS SHALL NOT BE LIABLE |
225 | ++ * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING |
226 | ++ * OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL |
227 | ++ * Quanta Computer Inc. OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, |
228 | ++ * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR |
229 | ++ * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF |
230 | ++ * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, |
231 | ++ * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
232 | ++ */ |
233 | ++#define _XOPEN_SOURCE |
234 | ++ |
235 | ++#include <stdlib.h> |
236 | ++#include <stdio.h> |
237 | ++#include <string.h> |
238 | ++#include <strings.h> |
239 | ++#include <sys/socket.h> |
240 | ++#include <netinet/in.h> |
241 | ++#include <arpa/inet.h> |
242 | ++#include <errno.h> |
243 | ++#include <time.h> |
244 | ++#include <unistd.h> |
245 | ++#include <signal.h> |
246 | ++#include <ctype.h> |
247 | ++#include <sys/time.h> |
248 | ++#include <limits.h> |
249 | ++#include <fcntl.h> |
250 | ++#include <sys/select.h> |
251 | ++#include <termios.h> |
252 | ++#include <ipmitool/ipmi.h> |
253 | ++#include <ipmitool/ipmi_mc.h> |
254 | ++#include <ipmitool/ipmi_intf.h> |
255 | ++#include <ipmitool/helper.h> |
256 | ++#include <ipmitool/log.h> |
257 | ++#include <ipmitool/ipmi_sel.h> |
258 | ++#include <ipmitool/ipmi_sdr.h> |
259 | ++#include <ipmitool/ipmi_strings.h> |
260 | ++#include <ipmitool/ipmi_channel.h> |
261 | ++#include <ipmitool/ipmi_quantaoem.h> |
262 | ++#include <ipmitool/ipmi_raw.h> |
263 | ++ |
264 | ++/* Max Size of the description String to be displyed for the Each sel entry */ |
265 | ++#define SIZE_OF_DESC 128 |
266 | ++ |
267 | ++#define CPU_SHIFT 6 |
268 | ++#define CPU_MASK 0X03 |
269 | ++#define CPU_NUM(x) (((x) >> CPU_SHIFT) & CPU_MASK) |
270 | ++ |
271 | ++#define CHANNEL_BASE 0x41 |
272 | ++#define CHANNEL_SHIFT 3 |
273 | ++#define CHANNEL_MASK 0x07 |
274 | ++#define CHANNEL_OFFSET(x) (((x) >> CHANNEL_SHIFT) & CHANNEL_MASK) |
275 | ++#define CHANNEL_NUM(x) (CHANNEL_BASE + CHANNEL_OFFSET(x)) |
276 | ++ |
277 | ++#define DIMM_MASK 0x07 |
278 | ++#define DIMM_NUM(x) ((x) & DIMM_MASK) |
279 | ++ |
280 | ++#define GET_PLATFORM_ID_DATA_SIZE 4 |
281 | ++ |
282 | ++// Magic code to check if it's valid command |
283 | ++#define QCT_MAGIC_1 0x4C |
284 | ++#define QCT_MAGIC_2 0x1C |
285 | ++#define QCT_MAGIC_3 0x00 |
286 | ++#define QCT_MAGIC_4 0x02 |
287 | ++ |
288 | ++qct_platform_t |
289 | ++oem_qct_get_platform_id(struct ipmi_intf *intf) |
290 | ++{ |
291 | ++ /* Execute a Get platform ID command to determine the board */ |
292 | ++ struct ipmi_rs *rsp; |
293 | ++ struct ipmi_rq req; |
294 | ++ qct_platform_t platform_id; |
295 | ++ uint8_t msg_data[GET_PLATFORM_ID_DATA_SIZE]; |
296 | ++ |
297 | ++ /* Ask for IPMI v2 data as well */ |
298 | ++ msg_data[0] = QCT_MAGIC_1; |
299 | ++ msg_data[1] = QCT_MAGIC_2; |
300 | ++ msg_data[2] = QCT_MAGIC_3; |
301 | ++ msg_data[3] = QCT_MAGIC_4; |
302 | ++ |
303 | ++ memset(&req, 0, sizeof(req)); |
304 | ++ req.msg.netfn = OEM_QCT_NETFN; |
305 | ++ req.msg.cmd = OEM_QCT_GET_INFO; |
306 | ++ req.msg.data = msg_data; |
307 | ++ req.msg.data_len = sizeof(msg_data); |
308 | ++ |
309 | ++ rsp = intf->sendrecv(intf, &req); |
310 | ++ if (rsp == NULL) { |
311 | ++ lprintf(LOG_ERR, "Get Platform ID command failed"); |
312 | ++ return 0; |
313 | ++ } |
314 | ++ if (rsp->ccode) { |
315 | ++ lprintf(LOG_ERR, "Get Platform ID command failed: %#x %s", |
316 | ++ rsp->ccode, val2str(rsp->ccode, completion_code_vals)); |
317 | ++ return 0; |
318 | ++ } |
319 | ++ platform_id = rsp->data[0]; |
320 | ++ lprintf(LOG_DEBUG,"Platform ID: %hhx", rsp->data[0]); |
321 | ++ return platform_id; |
322 | ++} |
323 | ++ |
324 | ++char * |
325 | ++oem_qct_get_evt_desc(struct ipmi_intf *intf, struct sel_event_record *rec) |
326 | ++{ |
327 | ++ struct ipmi_rs *rsp; |
328 | ++ struct ipmi_rq req; |
329 | ++ char *desc = NULL; |
330 | ++ int data; |
331 | ++ int sensor_type; |
332 | ++ qct_platform_t platform_id; |
333 | ++ |
334 | ++ /* Get the OEM event Bytes of the SEL Records byte 15 to data */ |
335 | ++ data = rec->sel_type.standard_type.event_data[2]; |
336 | ++ /* Check for the Standard Event type == 0x6F */ |
337 | ++ if (rec->sel_type.standard_type.event_type != 0x6F) { |
338 | ++ goto out; |
339 | ++ } |
340 | ++ /* Allocate mem for te Description string */ |
341 | ++ desc = malloc(SIZE_OF_DESC); |
342 | ++ if (desc == NULL) { |
343 | ++ lprintf(LOG_ERR, "ipmitool: malloc failure"); |
344 | ++ goto out; |
345 | ++ } |
346 | ++ memset(desc, 0, SIZE_OF_DESC); |
347 | ++ sensor_type = rec->sel_type.standard_type.sensor_type; |
348 | ++ switch (sensor_type) { |
349 | ++ case SENSOR_TYPE_MEMORY: |
350 | ++ memset(&req, 0, sizeof (req)); |
351 | ++ req.msg.netfn = IPMI_NETFN_APP; |
352 | ++ req.msg.lun = 0; |
353 | ++ req.msg.cmd = BMC_GET_DEVICE_ID; |
354 | ++ req.msg.data = NULL; |
355 | ++ req.msg.data_len = 0; |
356 | ++ |
357 | ++ rsp = intf->sendrecv(intf, &req); |
358 | ++ if (rsp == NULL) { |
359 | ++ lprintf(LOG_ERR, " Error getting system info"); |
360 | ++ goto out; |
361 | ++ } else if (rsp->ccode) { |
362 | ++ lprintf(LOG_ERR, " Error getting system info: %s", |
363 | ++ val2str(rsp->ccode, completion_code_vals)); |
364 | ++ goto out; |
365 | ++ } |
366 | ++ /* check the platform type */ |
367 | ++ platform_id = oem_qct_get_platform_id(intf); |
368 | ++ if (OEM_QCT_PLATFORM_PURLEY == platform_id) { |
369 | ++ snprintf(desc, SIZE_OF_DESC, "CPU%d_%c%d", |
370 | ++ CPU_NUM(data), |
371 | ++ CHANNEL_NUM(data), |
372 | ++ DIMM_NUM(data)); |
373 | ++ } |
374 | ++ break; |
375 | ++ default: |
376 | ++ goto out; |
377 | ++ } |
378 | ++ return desc; |
379 | ++out: |
380 | ++ if (desc) { |
381 | ++ free(desc); |
382 | ++ desc = NULL; |
383 | ++ } |
384 | ++ return desc; |
385 | ++} |
386 | +--- a/lib/ipmi_sel.c |
387 | ++++ b/lib/ipmi_sel.c |
388 | +@@ -50,6 +50,7 @@ |
389 | + #include <ipmitool/ipmi_fru.h> |
390 | + #include <ipmitool/ipmi_sensor.h> |
391 | + #include <ipmitool/ipmi_strings.h> |
392 | ++#include <ipmitool/ipmi_quantaoem.h> |
393 | + |
394 | + extern int verbose; |
395 | + static int sel_extended = 0; |
396 | +@@ -1244,6 +1245,9 @@ |
397 | + case IPMI_OEM_SUPERMICRO_47488: |
398 | + desc = get_supermicro_evt_desc(intf, rec); |
399 | + break; |
400 | ++ case IPMI_OEM_QUANTA: |
401 | ++ desc = oem_qct_get_evt_desc(intf, rec); |
402 | ++ break; |
403 | + case IPMI_OEM_UNKNOWN: |
404 | + default: |
405 | + break; |
406 | +@@ -1349,6 +1353,9 @@ |
407 | + sfx = ipmi_get_oem_desc(intf, rec); |
408 | + break; |
409 | + /* add your oem sensor assignation here */ |
410 | ++ case IPMI_OEM_QUANTA: |
411 | ++ sfx = ipmi_get_oem_desc(intf, rec); |
412 | ++ break; |
413 | + default: |
414 | + lprintf(LOG_DEBUG, "oem sensor type %x using standard type supplied description", |
415 | + rec->sel_type.standard_type.sensor_type ); |
416 | +@@ -1359,9 +1366,12 @@ |
417 | + case IPMI_OEM_SUPERMICRO: |
418 | + case IPMI_OEM_SUPERMICRO_47488: |
419 | + sfx = ipmi_get_oem_desc(intf, rec); |
420 | +- break; |
421 | ++ break; |
422 | ++ case IPMI_OEM_QUANTA: |
423 | ++ sfx = ipmi_get_oem_desc(intf, rec); |
424 | ++ break; |
425 | + default: |
426 | +- break; |
427 | ++ break; |
428 | + } |
429 | + } |
430 | + /* |
431 | +@@ -1986,9 +1996,12 @@ |
432 | + case IPMI_OEM_SUPERMICRO: |
433 | + case IPMI_OEM_SUPERMICRO_47488: |
434 | + print_sensor = 0; |
435 | +- break; |
436 | ++ break; |
437 | ++ case IPMI_OEM_QUANTA: |
438 | ++ print_sensor = 0; |
439 | ++ break; |
440 | + default: |
441 | +- break; |
442 | ++ break; |
443 | + } |
444 | + /* |
445 | + * Sensor-Specific Discrete |
446 | +--- a/src/ipmitool.c |
447 | ++++ b/src/ipmitool.c |
448 | +@@ -66,6 +66,7 @@ |
449 | + #include <ipmitool/ipmi_ime.h> |
450 | + #include <ipmitool/ipmi_dcmi.h> |
451 | + #include <ipmitool/ipmi_vita.h> |
452 | ++#include <ipmitool/ipmi_quantaoem.h> |
453 | + |
454 | + #ifdef HAVE_CONFIG_H |
455 | + # include <config.h> |
456 | diff --git a/debian/patches/series b/debian/patches/series |
457 | index 771ac8f..e610f2d 100644 |
458 | --- a/debian/patches/series |
459 | +++ b/debian/patches/series |
460 | @@ -16,3 +16,4 @@ CVE-2020-5208_3-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch |
461 | CVE-2020-5208_4-channel-Fix-buffer-overflow.patch |
462 | CVE-2020-5208_5_lanp-Fix-buffer-overflows-in-get_lan_param_select.patch |
463 | CVE-2020-5208_6-fru-sdr-Fix-id_string-buffer-overflows.patch |
464 | +add_basic_support_for_quanta.patch |
Straightforward merge that just copies the quanta support patch forward. The debian changes are a single bugfix and some (safe) packaging cleanup changes, no new features.
The quanta patch comes from upstream and we'll get it eventually, so I don't think it's worth trying to push it into Debian.
PPA: https:/ /launchpad. net/~bryce/ +archive/ ubuntu/ ipmitool- merge-v1. 8.18-11