From: Gottox <Gottox@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: [PR PATCH] clang: add missing file for scan-view
Date: Thu, 16 Sep 2021 12:18:17 +0200 [thread overview]
Message-ID: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-32978@inbox.vuxu.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 1113 bytes --]
There is a new pull request by Gottox against master on the void-packages repository
https://github.com/Gottox/void-packages clang-analyzer-fix-scan-view
https://github.com/void-linux/void-packages/pull/32978
clang: add missing file for scan-view
This PR fixes an issue with current clang-analyzer where it fails to start the scan-view webinterface:
```
scan-view /tmp/scan-build-2021-09-16-111211-22764-1
/usr/bin/scan-view:9: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
Traceback (most recent call last):
File "/usr/bin/scan-view", line 150, in <module>
main()
File "/usr/bin/scan-view", line 147, in main
run(port, args, args.root)
File "/usr/bin/scan-view", line 74, in run
import ScanView
File "/usr/bin/../share/scan-view/ScanView.py", line 29, in <module>
import Reporter
ModuleNotFoundError: No module named 'Reporter'
```
Upstream context: https://reviews.llvm.org/D96367
A patch file from https://github.com/void-linux/void-packages/pull/32978.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-clang-analyzer-fix-scan-view-32978.patch --]
[-- Type: text/x-diff, Size: 8743 bytes --]
From cd73064dc0d387c2d51f69564536bb9fab5a9175 Mon Sep 17 00:00:00 2001
From: Enno Boland <gottox@voidlinux.org>
Date: Thu, 16 Sep 2021 12:02:50 +0200
Subject: [PATCH] clang: add missing file for scan-view
---
.../patches/clang-analyzer-add-reporter.patch | 223 ++++++++++++++++++
srcpkgs/llvm12/template | 2 +-
2 files changed, 224 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/llvm12/patches/clang-analyzer-add-reporter.patch
diff --git a/srcpkgs/llvm12/patches/clang-analyzer-add-reporter.patch b/srcpkgs/llvm12/patches/clang-analyzer-add-reporter.patch
new file mode 100644
index 000000000000..325006ac4391
--- /dev/null
+++ b/srcpkgs/llvm12/patches/clang-analyzer-add-reporter.patch
@@ -0,0 +1,223 @@
+From e3cd3a3c91524c957e06bb0170343548f02b6842 Mon Sep 17 00:00:00 2001
+From: Tom Stellard <tstellar@redhat.com>
+Date: Thu, 11 Feb 2021 22:28:19 +0000
+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.
+
+Reviewed By: NoQ
+
+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 dd3d33439299a..eccc6b83195b6 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 0000000000000..31a14fb0cf74e
+--- /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
++
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index 86a8c6d10791..05845b022fc2 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -1,7 +1,7 @@
# Template file for 'llvm12'
pkgname=llvm12
version=12.0.0
-revision=3
+revision=4
wrksrc="llvm-project-${version}.src"
build_wrksrc=llvm
build_style=cmake
next reply other threads:[~2021-09-16 10:18 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-16 10:18 Gottox [this message]
2021-09-16 14:11 ` q66
2021-09-17 6:03 ` [PR PATCH] [Updated] " Gottox
2021-09-17 6:04 ` Gottox
2021-09-17 10:12 ` q66
2021-09-18 7:59 ` Gottox
2021-09-18 8:39 ` [PR PATCH] [Updated] " Gottox
2021-09-18 8:39 ` Gottox
2021-09-18 14:46 ` q66
2021-09-19 16:01 ` Gottox
2021-09-21 10:26 ` q66
2021-09-22 0:06 ` [PR PATCH] [Closed]: " q66
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-32978@inbox.vuxu.org \
--to=gottox@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).