Reapply some wrongly removed patch
This commit is contained in:
parent
1ca8ec6bba
commit
333b956fb4
224
0001-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch
Normal file
224
0001-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
From 9d68d4554d903353a7d4599d2428bd479651eb40 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Tue, 9 Feb 2021 13:35:43 -0800
|
||||||
|
Subject: [PATCH] Partially Revert "scan-view: Remove Reporter.py and
|
||||||
|
associated AppleScript files"
|
||||||
|
|
||||||
|
This reverts some of commit dbb01536f6f49fa428f170e34466072ef439b3e9.
|
||||||
|
|
||||||
|
The Reporter module was still being used by the ScanView.py module and deleting
|
||||||
|
it caused scan-view to fail. This commit adds back Reporter.py but removes the
|
||||||
|
code the references the AppleScript files which were removed in
|
||||||
|
dbb01536f6f49fa428f170e34466072ef439b3e9.
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D96367
|
||||||
|
---
|
||||||
|
clang/tools/scan-view/CMakeLists.txt | 1 +
|
||||||
|
clang/tools/scan-view/share/Reporter.py | 183 ++++++++++++++++++++++++
|
||||||
|
2 files changed, 184 insertions(+)
|
||||||
|
create mode 100644 clang/tools/scan-view/share/Reporter.py
|
||||||
|
|
||||||
|
diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt
|
||||||
|
index dd3d33439299..eccc6b83195b 100644
|
||||||
|
--- a/clang/tools/scan-view/CMakeLists.txt
|
||||||
|
+++ b/clang/tools/scan-view/CMakeLists.txt
|
||||||
|
@@ -5,6 +5,7 @@ set(BinFiles
|
||||||
|
|
||||||
|
set(ShareFiles
|
||||||
|
ScanView.py
|
||||||
|
+ Reporter.py
|
||||||
|
startfile.py
|
||||||
|
bugcatcher.ico)
|
||||||
|
|
||||||
|
diff --git a/clang/tools/scan-view/share/Reporter.py b/clang/tools/scan-view/share/Reporter.py
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..31a14fb0cf74
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/clang/tools/scan-view/share/Reporter.py
|
||||||
|
@@ -0,0 +1,183 @@
|
||||||
|
+#!/usr/bin/env python
|
||||||
|
+# -*- coding: utf-8 -*-
|
||||||
|
+
|
||||||
|
+"""Methods for reporting bugs."""
|
||||||
|
+
|
||||||
|
+import subprocess, sys, os
|
||||||
|
+
|
||||||
|
+__all__ = ['ReportFailure', 'BugReport', 'getReporters']
|
||||||
|
+
|
||||||
|
+#
|
||||||
|
+
|
||||||
|
+class ReportFailure(Exception):
|
||||||
|
+ """Generic exception for failures in bug reporting."""
|
||||||
|
+ def __init__(self, value):
|
||||||
|
+ self.value = value
|
||||||
|
+
|
||||||
|
+# Collect information about a bug.
|
||||||
|
+
|
||||||
|
+class BugReport(object):
|
||||||
|
+ def __init__(self, title, description, files):
|
||||||
|
+ self.title = title
|
||||||
|
+ self.description = description
|
||||||
|
+ self.files = files
|
||||||
|
+
|
||||||
|
+# Reporter interfaces.
|
||||||
|
+
|
||||||
|
+import os
|
||||||
|
+
|
||||||
|
+import email, mimetypes, smtplib
|
||||||
|
+from email import encoders
|
||||||
|
+from email.message import Message
|
||||||
|
+from email.mime.base import MIMEBase
|
||||||
|
+from email.mime.multipart import MIMEMultipart
|
||||||
|
+from email.mime.text import MIMEText
|
||||||
|
+
|
||||||
|
+#===------------------------------------------------------------------------===#
|
||||||
|
+# ReporterParameter
|
||||||
|
+#===------------------------------------------------------------------------===#
|
||||||
|
+
|
||||||
|
+class ReporterParameter(object):
|
||||||
|
+ def __init__(self, n):
|
||||||
|
+ self.name = n
|
||||||
|
+ def getName(self):
|
||||||
|
+ return self.name
|
||||||
|
+ def getValue(self,r,bugtype,getConfigOption):
|
||||||
|
+ return getConfigOption(r.getName(),self.getName())
|
||||||
|
+ def saveConfigValue(self):
|
||||||
|
+ return True
|
||||||
|
+
|
||||||
|
+class TextParameter (ReporterParameter):
|
||||||
|
+ def getHTML(self,r,bugtype,getConfigOption):
|
||||||
|
+ return """\
|
||||||
|
+<tr>
|
||||||
|
+<td class="form_clabel">%s:</td>
|
||||||
|
+<td class="form_value"><input type="text" name="%s_%s" value="%s"></td>
|
||||||
|
+</tr>"""%(self.getName(),r.getName(),self.getName(),self.getValue(r,bugtype,getConfigOption))
|
||||||
|
+
|
||||||
|
+class SelectionParameter (ReporterParameter):
|
||||||
|
+ def __init__(self, n, values):
|
||||||
|
+ ReporterParameter.__init__(self,n)
|
||||||
|
+ self.values = values
|
||||||
|
+
|
||||||
|
+ def getHTML(self,r,bugtype,getConfigOption):
|
||||||
|
+ default = self.getValue(r,bugtype,getConfigOption)
|
||||||
|
+ return """\
|
||||||
|
+<tr>
|
||||||
|
+<td class="form_clabel">%s:</td><td class="form_value"><select name="%s_%s">
|
||||||
|
+%s
|
||||||
|
+</select></td>"""%(self.getName(),r.getName(),self.getName(),'\n'.join(["""\
|
||||||
|
+<option value="%s"%s>%s</option>"""%(o[0],
|
||||||
|
+ o[0] == default and ' selected="selected"' or '',
|
||||||
|
+ o[1]) for o in self.values]))
|
||||||
|
+
|
||||||
|
+#===------------------------------------------------------------------------===#
|
||||||
|
+# Reporters
|
||||||
|
+#===------------------------------------------------------------------------===#
|
||||||
|
+
|
||||||
|
+class EmailReporter(object):
|
||||||
|
+ def getName(self):
|
||||||
|
+ return 'Email'
|
||||||
|
+
|
||||||
|
+ def getParameters(self):
|
||||||
|
+ return [TextParameter(x) for x in ['To', 'From', 'SMTP Server', 'SMTP Port']]
|
||||||
|
+
|
||||||
|
+ # Lifted from python email module examples.
|
||||||
|
+ def attachFile(self, outer, path):
|
||||||
|
+ # Guess the content type based on the file's extension. Encoding
|
||||||
|
+ # will be ignored, although we should check for simple things like
|
||||||
|
+ # gzip'd or compressed files.
|
||||||
|
+ ctype, encoding = mimetypes.guess_type(path)
|
||||||
|
+ if ctype is None or encoding is not None:
|
||||||
|
+ # No guess could be made, or the file is encoded (compressed), so
|
||||||
|
+ # use a generic bag-of-bits type.
|
||||||
|
+ ctype = 'application/octet-stream'
|
||||||
|
+ maintype, subtype = ctype.split('/', 1)
|
||||||
|
+ if maintype == 'text':
|
||||||
|
+ fp = open(path)
|
||||||
|
+ # Note: we should handle calculating the charset
|
||||||
|
+ msg = MIMEText(fp.read(), _subtype=subtype)
|
||||||
|
+ fp.close()
|
||||||
|
+ else:
|
||||||
|
+ fp = open(path, 'rb')
|
||||||
|
+ msg = MIMEBase(maintype, subtype)
|
||||||
|
+ msg.set_payload(fp.read())
|
||||||
|
+ fp.close()
|
||||||
|
+ # Encode the payload using Base64
|
||||||
|
+ encoders.encode_base64(msg)
|
||||||
|
+ # Set the filename parameter
|
||||||
|
+ msg.add_header('Content-Disposition', 'attachment', filename=os.path.basename(path))
|
||||||
|
+ outer.attach(msg)
|
||||||
|
+
|
||||||
|
+ def fileReport(self, report, parameters):
|
||||||
|
+ mainMsg = """\
|
||||||
|
+BUG REPORT
|
||||||
|
+---
|
||||||
|
+Title: %s
|
||||||
|
+Description: %s
|
||||||
|
+"""%(report.title, report.description)
|
||||||
|
+
|
||||||
|
+ if not parameters.get('To'):
|
||||||
|
+ raise ReportFailure('No "To" address specified.')
|
||||||
|
+ if not parameters.get('From'):
|
||||||
|
+ raise ReportFailure('No "From" address specified.')
|
||||||
|
+
|
||||||
|
+ msg = MIMEMultipart()
|
||||||
|
+ msg['Subject'] = 'BUG REPORT: %s'%(report.title)
|
||||||
|
+ # FIXME: Get config parameters
|
||||||
|
+ msg['To'] = parameters.get('To')
|
||||||
|
+ msg['From'] = parameters.get('From')
|
||||||
|
+ msg.preamble = mainMsg
|
||||||
|
+
|
||||||
|
+ msg.attach(MIMEText(mainMsg, _subtype='text/plain'))
|
||||||
|
+ for file in report.files:
|
||||||
|
+ self.attachFile(msg, file)
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ s = smtplib.SMTP(host=parameters.get('SMTP Server'),
|
||||||
|
+ port=parameters.get('SMTP Port'))
|
||||||
|
+ s.sendmail(msg['From'], msg['To'], msg.as_string())
|
||||||
|
+ s.close()
|
||||||
|
+ except:
|
||||||
|
+ raise ReportFailure('Unable to send message via SMTP.')
|
||||||
|
+
|
||||||
|
+ return "Message sent!"
|
||||||
|
+
|
||||||
|
+class BugzillaReporter(object):
|
||||||
|
+ def getName(self):
|
||||||
|
+ return 'Bugzilla'
|
||||||
|
+
|
||||||
|
+ def getParameters(self):
|
||||||
|
+ return [TextParameter(x) for x in ['URL','Product']]
|
||||||
|
+
|
||||||
|
+ def fileReport(self, report, parameters):
|
||||||
|
+ raise NotImplementedError
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+class RadarClassificationParameter(SelectionParameter):
|
||||||
|
+ def __init__(self):
|
||||||
|
+ SelectionParameter.__init__(self,"Classification",
|
||||||
|
+ [['1', 'Security'], ['2', 'Crash/Hang/Data Loss'],
|
||||||
|
+ ['3', 'Performance'], ['4', 'UI/Usability'],
|
||||||
|
+ ['6', 'Serious Bug'], ['7', 'Other']])
|
||||||
|
+
|
||||||
|
+ def saveConfigValue(self):
|
||||||
|
+ return False
|
||||||
|
+
|
||||||
|
+ def getValue(self,r,bugtype,getConfigOption):
|
||||||
|
+ if bugtype.find("leak") != -1:
|
||||||
|
+ return '3'
|
||||||
|
+ elif bugtype.find("dereference") != -1:
|
||||||
|
+ return '2'
|
||||||
|
+ elif bugtype.find("missing ivar release") != -1:
|
||||||
|
+ return '3'
|
||||||
|
+ else:
|
||||||
|
+ return '7'
|
||||||
|
+
|
||||||
|
+###
|
||||||
|
+
|
||||||
|
+def getReporters():
|
||||||
|
+ reporters = []
|
||||||
|
+ reporters.append(EmailReporter())
|
||||||
|
+ return reporters
|
||||||
|
+
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
@ -4,7 +4,7 @@
|
|||||||
%global min_ver 0
|
%global min_ver 0
|
||||||
%global patch_ver 0
|
%global patch_ver 0
|
||||||
%global rc_ver 2
|
%global rc_ver 2
|
||||||
%global baserelease 2
|
%global baserelease 3
|
||||||
|
|
||||||
%global clang_tools_binaries \
|
%global clang_tools_binaries \
|
||||||
%{_bindir}/clang-apply-replacements \
|
%{_bindir}/clang-apply-replacements \
|
||||||
@ -96,6 +96,7 @@ Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch
|
|||||||
Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch
|
Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch
|
||||||
Patch15: 0001-clang-Don-t-install-static-libraries.patch
|
Patch15: 0001-clang-Don-t-install-static-libraries.patch
|
||||||
Patch17: 0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch
|
Patch17: 0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch
|
||||||
|
Patch19: 0001-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -281,6 +282,8 @@ pathfix.py -i %{__python3} -pn \
|
|||||||
%patch13 -p1 -b .unwind-default
|
%patch13 -p1 -b .unwind-default
|
||||||
%patch15 -p2 -b .no-install-static
|
%patch15 -p2 -b .no-install-static
|
||||||
%patch17 -p1 -b .check-gcc_s
|
%patch17 -p1 -b .check-gcc_s
|
||||||
|
%patch19 -p2 -b .scan-view-remove-files-fix
|
||||||
|
|
||||||
|
|
||||||
# failing test case
|
# failing test case
|
||||||
rm test/CodeGen/profile-filter.c
|
rm test/CodeGen/profile-filter.c
|
||||||
@ -537,6 +540,9 @@ false
|
|||||||
|
|
||||||
%endif
|
%endif
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Mar 01 2021 sguelton@redhat.com - 12.0.0-0.3.rc2
|
||||||
|
- Reapply some wrongly removed patch
|
||||||
|
|
||||||
* Wed Feb 24 2021 sguelton@redhat.com - 12.0.0-0.2.rc2
|
* Wed Feb 24 2021 sguelton@redhat.com - 12.0.0-0.2.rc2
|
||||||
- 12.0.0-rc2 release
|
- 12.0.0-rc2 release
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user