mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 16:39:40 +01:00
Compare commits
141 Commits
yocto-3.4.
...
honister-3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
780eeec885 | ||
|
|
3f17ee4ebe | ||
|
|
ce323dd1a9 | ||
|
|
638c8860eb | ||
|
|
99e1aff4ba | ||
|
|
7d210474da | ||
|
|
ef827a4a5d | ||
|
|
8d6afadf48 | ||
|
|
4724978774 | ||
|
|
53c727195d | ||
|
|
2b0bb2d78a | ||
|
|
9766e3609d | ||
|
|
638784c71f | ||
|
|
fd34439250 | ||
|
|
0abe6ebd00 | ||
|
|
1deb7e3145 | ||
|
|
b5a4c322a1 | ||
|
|
e262633f64 | ||
|
|
b19991bf95 | ||
|
|
401c83d4f8 | ||
|
|
00534dd136 | ||
|
|
a18c4104c8 | ||
|
|
0f139080f6 | ||
|
|
4337b18725 | ||
|
|
eff78b3802 | ||
|
|
42735fc06d | ||
|
|
580532cfd0 | ||
|
|
f39012fed6 | ||
|
|
03a4cea318 | ||
|
|
5033d9640d | ||
|
|
cc07ce36fa | ||
|
|
bdeb3dcf94 | ||
|
|
225f513991 | ||
|
|
49c0883c91 | ||
|
|
0608a3fb0b | ||
|
|
21400a18cb | ||
|
|
6b3119b258 | ||
|
|
2eda0c95c6 | ||
|
|
6631e78418 | ||
|
|
3f7e22d1b6 | ||
|
|
286f2c5487 | ||
|
|
2b45d7d0ce | ||
|
|
aea25b4876 | ||
|
|
bbbd9966e8 | ||
|
|
e38b37a03f | ||
|
|
e37119c358 | ||
|
|
33cf6f26b2 | ||
|
|
a5dea17662 | ||
|
|
3e99ea91bf | ||
|
|
3467e4129c | ||
|
|
d349e4b75e | ||
|
|
ee68ae307f | ||
|
|
d8cd104e66 | ||
|
|
d3f32d1584 | ||
|
|
ca162b5063 | ||
|
|
c17b457ac4 | ||
|
|
60f6cb756d | ||
|
|
e872981a80 | ||
|
|
94966930e7 | ||
|
|
036a9f9204 | ||
|
|
984de2b68a | ||
|
|
630d754ea3 | ||
|
|
2c9e93bc40 | ||
|
|
9124353019 | ||
|
|
1ce1e56da1 | ||
|
|
77140366fb | ||
|
|
7c3b93da9e | ||
|
|
b091cc926a | ||
|
|
2682eb5098 | ||
|
|
7872364e9e | ||
|
|
b0f3d3b365 | ||
|
|
2b6574e7c4 | ||
|
|
981ecb069a | ||
|
|
b0d76cd193 | ||
|
|
ef97194d30 | ||
|
|
428a58000e | ||
|
|
4aa0d80c7a | ||
|
|
a9dc338c37 | ||
|
|
f196ae9083 | ||
|
|
7a15c6e2a8 | ||
|
|
2d924cb91f | ||
|
|
53f3bf5b78 | ||
|
|
bc68472e71 | ||
|
|
e9ebc1ec9d | ||
|
|
47d66569d7 | ||
|
|
9b0407c45c | ||
|
|
8cd10efa78 | ||
|
|
16b4a5c2cb | ||
|
|
5eaa4463f1 | ||
|
|
556aa4b56b | ||
|
|
a8f021a18b | ||
|
|
a164989b59 | ||
|
|
1a08a672a8 | ||
|
|
3215578bf4 | ||
|
|
5a89035cf7 | ||
|
|
2cdb01ee20 | ||
|
|
bf42579bd3 | ||
|
|
ffc74bd781 | ||
|
|
be127b9402 | ||
|
|
0fbf414b39 | ||
|
|
0a26008bfc | ||
|
|
eb2e4583b6 | ||
|
|
b254be0f75 | ||
|
|
9f5a29d644 | ||
|
|
39083b60be | ||
|
|
da08656612 | ||
|
|
db3ca36394 | ||
|
|
a51cf16377 | ||
|
|
83a57bcb41 | ||
|
|
1c865e6646 | ||
|
|
6b3103a867 | ||
|
|
d85d82e063 | ||
|
|
2dcbf103c7 | ||
|
|
3373a7a0fe | ||
|
|
18d18cfea6 | ||
|
|
58dd3fcada | ||
|
|
4e2cfc6b11 | ||
|
|
9b2fab0ac0 | ||
|
|
b7ac5d205a | ||
|
|
2fca57ba5e | ||
|
|
96515b5344 | ||
|
|
36815db559 | ||
|
|
69c71187f3 | ||
|
|
3636ca3ff8 | ||
|
|
30e330c259 | ||
|
|
0ca6f8f346 | ||
|
|
cab36b57c4 | ||
|
|
0c8f4569e5 | ||
|
|
dc086a8f3d | ||
|
|
88e71c839e | ||
|
|
690d1f3ece | ||
|
|
445a80800a | ||
|
|
c9523e4545 | ||
|
|
454f37cd18 | ||
|
|
dc1b9fc459 | ||
|
|
b66bacb0b7 | ||
|
|
a8238c379e | ||
|
|
3e935c2b10 | ||
|
|
b228df2e21 | ||
|
|
4947c6a820 | ||
|
|
71985fb930 |
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Copyright (c) 2021 Joshua Watt <JPEWhacker@gmail.com>
|
||||
#
|
||||
#
|
||||
# Dockerfile to build a bitbake hash equivalence server container
|
||||
#
|
||||
# From the root of the bitbake repository, run:
|
||||
@@ -15,5 +15,9 @@ RUN apk add --no-cache python3
|
||||
|
||||
COPY bin/bitbake-hashserv /opt/bbhashserv/bin/
|
||||
COPY lib/hashserv /opt/bbhashserv/lib/hashserv/
|
||||
COPY lib/bb /opt/bbhashserv/lib/bb/
|
||||
COPY lib/codegen.py /opt/bbhashserv/lib/codegen.py
|
||||
COPY lib/ply /opt/bbhashserv/lib/ply/
|
||||
COPY lib/bs4 /opt/bbhashserv/lib/bs4/
|
||||
|
||||
ENTRYPOINT ["/opt/bbhashserv/bin/bitbake-hashserv"]
|
||||
|
||||
@@ -715,19 +715,23 @@ def _exec_task(fn, task, d, quieterr):
|
||||
logger.debug2("Zero size logfn %s, removing", logfn)
|
||||
bb.utils.remove(logfn)
|
||||
bb.utils.remove(loglink)
|
||||
except bb.BBHandledException:
|
||||
event.fire(TaskFailed(task, fn, logfn, localdata, True), localdata)
|
||||
return 1
|
||||
except (Exception, SystemExit) as exc:
|
||||
handled = False
|
||||
if isinstance(exc, bb.BBHandledException):
|
||||
handled = True
|
||||
|
||||
if quieterr:
|
||||
if not handled:
|
||||
logger.warning(repr(exc))
|
||||
event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
|
||||
else:
|
||||
errprinted = errchk.triggered
|
||||
# If the output is already on stdout, we've printed the information in the
|
||||
# logs once already so don't duplicate
|
||||
if verboseStdoutLogging:
|
||||
if verboseStdoutLogging or handled:
|
||||
errprinted = True
|
||||
logger.error(repr(exc))
|
||||
if not handled:
|
||||
logger.error(repr(exc))
|
||||
event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -2167,6 +2167,8 @@ class CookerParser(object):
|
||||
self.total)
|
||||
|
||||
bb.event.fire(event, self.cfgdata)
|
||||
else:
|
||||
bb.error("Parsing halted due to errors")
|
||||
|
||||
for process in self.processes:
|
||||
self.parser_quit.put(None)
|
||||
@@ -2257,7 +2259,7 @@ class CookerParser(object):
|
||||
return False
|
||||
except bb.BBHandledException as exc:
|
||||
self.error += 1
|
||||
logger.error('Failed to parse recipe: %s' % exc.recipe)
|
||||
logger.debug('Failed to parse recipe: %s' % exc.recipe)
|
||||
self.shutdown(clean=False, force=True)
|
||||
return False
|
||||
except ParsingFailure as exc:
|
||||
|
||||
@@ -494,10 +494,10 @@ class DataSmart(MutableMapping):
|
||||
|
||||
if not var.startswith("__anon_") and ("_append" in var or "_prepend" in var or "_remove" in var):
|
||||
info = "%s" % var
|
||||
if "filename" in loginfo:
|
||||
info += " file: %s" % loginfo[filename]
|
||||
if "lineno" in loginfo:
|
||||
info += " line: %s" % loginfo[lineno]
|
||||
if "file" in loginfo:
|
||||
info += " file: %s" % loginfo["file"]
|
||||
if "line" in loginfo:
|
||||
info += " line: %s" % loginfo["line"]
|
||||
bb.fatal("Variable %s contains an operation using the old override syntax. Please convert this layer/metadata before attempting to use with a newer bitbake." % info)
|
||||
|
||||
self.expand_cache = {}
|
||||
|
||||
@@ -40,9 +40,9 @@ __pattern__ = re.compile(r'''
|
||||
( # Optional username/password block
|
||||
(?P<user>\S+) # username
|
||||
(:(?P<pass>\S+))? # colon followed by the password (optional)
|
||||
)?
|
||||
(?P<cparam>(;[^;]+)*)? # connection parameters block (optional)
|
||||
@
|
||||
)?
|
||||
(?P<host>\S+?) # non-greedy match of the host
|
||||
(:(?P<port>[0-9]+))? # colon followed by the port (optional)
|
||||
/
|
||||
|
||||
@@ -27,6 +27,7 @@ import re
|
||||
import datetime
|
||||
import pickle
|
||||
import traceback
|
||||
import gc
|
||||
import bb.server.xmlrpcserver
|
||||
from bb import daemonize
|
||||
from multiprocessing import queues
|
||||
@@ -739,8 +740,10 @@ class ConnectionWriter(object):
|
||||
|
||||
def send(self, obj):
|
||||
obj = multiprocessing.reduction.ForkingPickler.dumps(obj)
|
||||
gc.disable()
|
||||
with self.wlock:
|
||||
self.writer.send_bytes(obj)
|
||||
gc.enable()
|
||||
|
||||
def fileno(self):
|
||||
return self.writer.fileno()
|
||||
|
||||
@@ -11,6 +11,7 @@ import hashlib
|
||||
import time
|
||||
import inspect
|
||||
from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
|
||||
import bb.server.xmlrpcclient
|
||||
|
||||
import bb
|
||||
|
||||
|
||||
@@ -1079,7 +1079,7 @@ class FetcherNetworkTest(FetcherTest):
|
||||
""" Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
|
||||
|
||||
# This repository also has submodules where the module (name), path and url do not align
|
||||
url = "gitsm://github.com/azure/iotedge.git;protocol=https;rev=d76e0316c6f324345d77c48a83ce836d09392699"
|
||||
url = "gitsm://github.com/azure/iotedge.git;protocol=https;rev=d76e0316c6f324345d77c48a83ce836d09392699;branch=main"
|
||||
fetcher = bb.fetch.Fetch([url], self.d)
|
||||
fetcher.download()
|
||||
# Previous cwd has been deleted
|
||||
|
||||
@@ -228,7 +228,9 @@ class TerminalFilter(object):
|
||||
|
||||
def keepAlive(self, t):
|
||||
if not self.cuu:
|
||||
print("Bitbake still alive (%ds)" % t)
|
||||
print("Bitbake still alive (no events for %ds). Active tasks:" % t)
|
||||
for t in self.helper.running_tasks:
|
||||
print(t)
|
||||
sys.stdout.flush()
|
||||
|
||||
def updateFooter(self):
|
||||
@@ -605,7 +607,8 @@ def main(server, eventHandler, params, tf = TerminalFilter):
|
||||
warnings = 0
|
||||
taskfailures = []
|
||||
|
||||
printinterval = 5000
|
||||
printintervaldelta = 10 * 60 # 10 minutes
|
||||
printinterval = printintervaldelta
|
||||
lastprint = time.time()
|
||||
|
||||
termfilter = tf(main, helper, console_handlers, params.options.quiet)
|
||||
@@ -615,7 +618,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
|
||||
try:
|
||||
if (lastprint + printinterval) <= time.time():
|
||||
termfilter.keepAlive(printinterval)
|
||||
printinterval += 5000
|
||||
printinterval += printintervaldelta
|
||||
event = eventHandler.waitEvent(0)
|
||||
if event is None:
|
||||
if main.shutdown > 1:
|
||||
@@ -646,7 +649,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
|
||||
|
||||
if isinstance(event, logging.LogRecord):
|
||||
lastprint = time.time()
|
||||
printinterval = 5000
|
||||
printinterval = printintervaldelta
|
||||
if event.levelno >= bb.msg.BBLogFormatter.ERROR:
|
||||
errors = errors + 1
|
||||
return_value = 1
|
||||
|
||||
@@ -401,7 +401,7 @@ def better_exec(code, context, text = None, realfile = "<code>", pythonexception
|
||||
code = better_compile(code, realfile, realfile)
|
||||
try:
|
||||
exec(code, get_context(), context)
|
||||
except (bb.BBHandledException, bb.parse.SkipRecipe, bb.data_smart.ExpansionError):
|
||||
except (bb.BBHandledException, bb.parse.SkipRecipe, bb.data_smart.ExpansionError, bb.process.ExecutionError):
|
||||
# Error already shown so passthrough, no need for traceback
|
||||
raise
|
||||
except Exception as e:
|
||||
|
||||
@@ -23,9 +23,14 @@
|
||||
<field type="CharField" name="branch">master</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="4">
|
||||
<field type="CharField" name="name">gatesgarth</field>
|
||||
<field type="CharField" name="name">hardknott</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">1.48</field>
|
||||
<field type="CharField" name="branch">1.50</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="5">
|
||||
<field type="CharField" name="name">honister</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">1.52</field>
|
||||
</object>
|
||||
|
||||
<!-- Releases available -->
|
||||
@@ -51,11 +56,18 @@
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="4">
|
||||
<field type="CharField" name="name">gatesgarth</field>
|
||||
<field type="CharField" name="description">Openembedded Gatesgarth</field>
|
||||
<field type="CharField" name="name">hardknott</field>
|
||||
<field type="CharField" name="description">Openembedded Hardknott</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field>
|
||||
<field type="CharField" name="branch_name">gatesgarth</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=gatesgarth\">OpenEmbedded Gatesgarth</a> branch.</field>
|
||||
<field type="CharField" name="branch_name">hardknott</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=hardknott\">OpenEmbedded Hardknott</a> branch.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="5">
|
||||
<field type="CharField" name="name">honister</field>
|
||||
<field type="CharField" name="description">Openembedded Honister</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field>
|
||||
<field type="CharField" name="branch_name">honister</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=honister\">OpenEmbedded Honister</a> branch.</field>
|
||||
</object>
|
||||
|
||||
<!-- Default layers for each release -->
|
||||
@@ -75,6 +87,10 @@
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="5">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Layer for the Local release -->
|
||||
|
||||
@@ -26,9 +26,15 @@
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="4">
|
||||
<field type="CharField" name="name">gatesgarth</field>
|
||||
<field type="CharField" name="name">hardknott</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">gatesgarth</field>
|
||||
<field type="CharField" name="branch">hardknott</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="5">
|
||||
<field type="CharField" name="name">honister</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">honister</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
|
||||
@@ -56,11 +62,18 @@
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/">Yocto Project Master branch</a>.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="4">
|
||||
<field type="CharField" name="name">gatesgarth</field>
|
||||
<field type="CharField" name="description">Yocto Project 3.2 "Gatesgarth"</field>
|
||||
<field type="CharField" name="name">hardknott</field>
|
||||
<field type="CharField" name="description">Yocto Project 3.3 "Hardknott"</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field>
|
||||
<field type="CharField" name="branch_name">gatesgarth</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=gatesgarth">Yocto Project Gatesgarth branch</a>.</field>
|
||||
<field type="CharField" name="branch_name">hardknott</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=hardknott">Yocto Project Hardknott branch</a>.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="5">
|
||||
<field type="CharField" name="name">honister</field>
|
||||
<field type="CharField" name="description">Yocto Project 3.4 "Honister"</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field>
|
||||
<field type="CharField" name="branch_name">honister</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=honister">Yocto Project Honister branch</a>.</field>
|
||||
</object>
|
||||
|
||||
<!-- Default project layers for each release -->
|
||||
@@ -112,6 +125,18 @@
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="layer_name">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="13">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="14">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="15">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">meta-yocto-bsp</field>
|
||||
</object>
|
||||
|
||||
<!-- Default layers provided by poky
|
||||
openembedded-core
|
||||
@@ -152,7 +177,14 @@
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="branch">gatesgarth</field>
|
||||
<field type="CharField" name="branch">hardknott</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="5">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="branch">honister</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
</object>
|
||||
|
||||
@@ -164,14 +196,14 @@
|
||||
<field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="5">
|
||||
<object model="orm.layer_version" pk="6">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="branch">dunfell</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="6">
|
||||
<object model="orm.layer_version" pk="7">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
@@ -179,18 +211,25 @@
|
||||
<field type="CharField" name="commit">HEAD</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="7">
|
||||
<object model="orm.layer_version" pk="8">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="branch">master</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="8">
|
||||
<object model="orm.layer_version" pk="9">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="branch">gatesgarth</field>
|
||||
<field type="CharField" name="branch">hardknott</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="10">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="branch">honister</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
|
||||
@@ -202,14 +241,14 @@
|
||||
<field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="9">
|
||||
<object model="orm.layer_version" pk="11">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="branch">dunfell</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="10">
|
||||
<object model="orm.layer_version" pk="12">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
@@ -217,18 +256,25 @@
|
||||
<field type="CharField" name="commit">HEAD</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="11">
|
||||
<object model="orm.layer_version" pk="13">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="branch">master</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="12">
|
||||
<object model="orm.layer_version" pk="14">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="branch">gatesgarth</field>
|
||||
<field type="CharField" name="branch">hardknott</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="15">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="branch">honister</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
</django-objects>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<field type="CharField" name="value">${TOPDIR}/../sstate-cache</field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="6">
|
||||
<field type="CharField" name="name">DEFCONF_IMAGE_INSTALL_append</field>
|
||||
<field type="CharField" name="name">DEFCONF_IMAGE_INSTALL:append</field>
|
||||
<field type="CharField" name="value"></field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="7">
|
||||
|
||||
@@ -1717,7 +1717,7 @@ class CustomImageRecipe(Recipe):
|
||||
|
||||
def generate_recipe_file_contents(self):
|
||||
"""Generate the contents for the recipe file."""
|
||||
# If we have no excluded packages we only need to _append
|
||||
# If we have no excluded packages we only need to :append
|
||||
if self.excludes_set.count() == 0:
|
||||
packages_conf = "IMAGE_INSTALL:append = \" "
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
{% if image_install_append_defined %}
|
||||
<dt>
|
||||
<span class="js-config-var-name js-config-var-managed-name">IMAGE_INSTALL_append</span>
|
||||
<span class="js-config-var-name js-config-var-managed-name">IMAGE_INSTALL:append</span>
|
||||
<span class="glyphicon glyphicon-question-sign get-help" title="Specifies additional packages to install into an image. If your build creates more than one image, the packages will be installed in all of them"></span>
|
||||
</dt>
|
||||
<dd class="variable-list">
|
||||
@@ -83,7 +83,7 @@
|
||||
<form id="change-image_install-form" class="form-inline" style="display:none;">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<span class="help-block">To set IMAGE_INSTALL_append to more than one package, type the package names separated by a space.</span>
|
||||
<span class="help-block">To set IMAGE_INSTALL:append to more than one package, type the package names separated by a space.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -771,10 +771,10 @@ $(document).ready(function() {
|
||||
|
||||
{% if image_install_append_defined %}
|
||||
|
||||
// init IMAGE_INSTALL_append trash icon
|
||||
// init IMAGE_INSTALL:append trash icon
|
||||
setDeleteTooltip($('#delete-image_install-icon'));
|
||||
|
||||
// change IMAGE_INSTALL_append variable
|
||||
// change IMAGE_INSTALL:append variable
|
||||
$('#change-image_install-icon').click(function() {
|
||||
// preset the edit value
|
||||
var current_val = $("span#image_install").text().trim();
|
||||
@@ -814,7 +814,7 @@ $(document).ready(function() {
|
||||
$('#apply-change-image_install').click(function(){
|
||||
// insure these non-empty values have single space prefix
|
||||
var value = " " + $('#new-image_install').val().trim();
|
||||
postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+value});
|
||||
postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL:append:'+value});
|
||||
$('#image_install').text(value);
|
||||
$('#image_install').removeClass('text-muted');
|
||||
$("#change-image_install-form").slideUp(function () {
|
||||
@@ -826,10 +826,10 @@ $(document).ready(function() {
|
||||
});
|
||||
});
|
||||
|
||||
// delete IMAGE_INSTALL_append variable value
|
||||
// delete IMAGE_INSTALL:append variable value
|
||||
$('#delete-image_install-icon').click(function(){
|
||||
$(this).tooltip('hide');
|
||||
postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+''});
|
||||
postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL:append:'+''});
|
||||
$('#image_install').parent().fadeOut(1000, function(){
|
||||
$('#image_install').addClass('text-muted');
|
||||
$('#image_install').text('Not set');
|
||||
@@ -1011,7 +1011,7 @@ $(document).ready(function() {
|
||||
$(".save").attr("disabled","disabled");
|
||||
|
||||
// Reload page if admin-removed core managed value is manually added back in
|
||||
if (0 <= " DISTRO DL_DIR IMAGE_FSTYPES IMAGE_INSTALL_append PACKAGE_CLASSES SSTATE_DIR ".indexOf( " "+variable+" " )) {
|
||||
if (0 <= " DISTRO DL_DIR IMAGE_FSTYPES IMAGE_INSTALL:append PACKAGE_CLASSES SSTATE_DIR ".indexOf( " "+variable+" " )) {
|
||||
// delayed reload to avoid race condition with postEditAjaxRequest
|
||||
do_reload=true;
|
||||
}
|
||||
|
||||
@@ -166,8 +166,9 @@ section.
|
||||
#. *Determine the BSP Layer You Want:* The Yocto Project supports many
|
||||
BSPs, which are maintained in their own layers or in layers designed
|
||||
to contain several BSPs. To get an idea of machine support through
|
||||
BSP layers, you can look at the `index of
|
||||
machines <&YOCTO_RELEASE_DL_URL;/machines>`__ for the release.
|
||||
BSP layers, you can look at the
|
||||
:yocto_dl:`index of machines </releases/yocto/yocto-&DISTRO;/machines>`
|
||||
for the release.
|
||||
|
||||
#. *Optionally Clone the meta-intel BSP Layer:* If your hardware is
|
||||
based on current Intel CPUs and devices, you can leverage this BSP
|
||||
@@ -877,7 +878,7 @@ Yocto Project:
|
||||
your BSP layer as listed in the ``recipes.txt`` file, which is found
|
||||
in ``poky/meta`` directory of the :term:`Source Directory`
|
||||
or in the OpenEmbedded-Core Layer (``openembedded-core``) at
|
||||
https://git.openembedded.org/openembedded-core/tree/meta.
|
||||
:oe_git:`/openembedded-core/tree/meta`.
|
||||
|
||||
You should place recipes (``*.bb`` files) and recipe modifications
|
||||
(``*.bbappend`` files) into ``recipes-*`` subdirectories by
|
||||
|
||||
@@ -15,9 +15,27 @@
|
||||
import os
|
||||
import sys
|
||||
import datetime
|
||||
try:
|
||||
import yaml
|
||||
except ImportError:
|
||||
sys.stderr.write("The Yocto Project Sphinx documentation requires PyYAML.\
|
||||
\nPlease make sure to install pyyaml python package.\n")
|
||||
sys.exit(1)
|
||||
|
||||
current_version = "3.4.1"
|
||||
bitbake_version = "1.52"
|
||||
# current_version = "dev"
|
||||
# bitbake_version = "" # Leave empty for development branch
|
||||
# Obtain versions from poky.yaml instead
|
||||
with open("poky.yaml") as data:
|
||||
buff = data.read()
|
||||
subst_vars = yaml.safe_load(buff)
|
||||
if "DOCCONF_VERSION" not in subst_vars:
|
||||
sys.stderr.write("Please set DOCCONF_VERSION in poky.yaml")
|
||||
sys.exit(1)
|
||||
current_version = subst_vars["DOCCONF_VERSION"]
|
||||
if "BITBAKE_SERIES" not in subst_vars:
|
||||
sys.stderr.write("Please set BITBAKE_SERIES in poky.yaml")
|
||||
sys.exit(1)
|
||||
bitbake_version = subst_vars["BITBAKE_SERIES"]
|
||||
|
||||
# String used in sidebar
|
||||
version = 'Version: ' + current_version
|
||||
|
||||
@@ -140,7 +140,7 @@ configuration provided and tested by the Yocto Project, there is
|
||||
simply no sense in continuing to enable prelink.
|
||||
|
||||
There's also a concern that no one is maintaining the code, and there
|
||||
are open bugs (including `this serious one <https://bugzilla.yoctoproject.org/show_bug.cgi?id=14429>`__).
|
||||
are open bugs (including :yocto_bugs:`this serious one </show_bug.cgi?id=14429>`).
|
||||
Given that prelink does intricate address arithmetic and rewriting
|
||||
of binaries the best option is to disable the feature. It is recommended
|
||||
that you consider disabling this feature in your own configuration if
|
||||
|
||||
@@ -217,8 +217,8 @@ your Metadata, the easier it is to cope with future changes.
|
||||
- Use Board Support Package (BSP) layers from silicon vendors when
|
||||
possible.
|
||||
|
||||
- Familiarize yourself with the `Yocto Project curated layer
|
||||
index <https://www.yoctoproject.org/software-overview/layers/>`__
|
||||
- Familiarize yourself with the
|
||||
:yocto_home:`Yocto Project curated layer index</software-overview/layers/>`
|
||||
or the :oe_layerindex:`OpenEmbedded layer index <>`.
|
||||
The latter contains more layers but they are less universally
|
||||
validated.
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
DISTRO : "3.4.1"
|
||||
DISTRO : "3.4.4"
|
||||
DISTRO_NAME_NO_CAP : "honister"
|
||||
DISTRO_NAME : "Honister"
|
||||
DISTRO_NAME_NO_CAP_MINUS_ONE : "hardknott"
|
||||
DISTRO_NAME_NO_CAP_LTS : "dunfell"
|
||||
YOCTO_DOC_VERSION : "3.4.1"
|
||||
YOCTO_DOC_VERSION_MINUS_ONE : "3.3.4"
|
||||
DISTRO_REL_TAG : "yocto-3.4.1"
|
||||
POKYVERSION : "26.0.1"
|
||||
YOCTO_DOC_VERSION : "3.4.4"
|
||||
YOCTO_DOC_VERSION_MINUS_ONE : "3.3.6"
|
||||
DISTRO_REL_TAG : "yocto-3.4.4"
|
||||
DOCCONF_VERSION : "3.4.4"
|
||||
BITBAKE_SERIES : "1.52"
|
||||
POKYVERSION : "26.0.4"
|
||||
YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
|
||||
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
|
||||
YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
|
||||
|
||||
@@ -320,7 +320,7 @@ If you would prefer not to use the ``install-buildtools`` script, you can instea
|
||||
download and run a pre-built buildtools installer yourself with the following
|
||||
steps:
|
||||
|
||||
1. Locate and download the ``*.sh`` at &YOCTO_RELEASE_DL_URL;/buildtools/
|
||||
1. Locate and download the ``*.sh`` at :yocto_dl:`/releases/yocto/yocto-&DISTRO;/buildtools/`
|
||||
|
||||
2. Execute the installation script. Here is an example for the
|
||||
traditional installer::
|
||||
|
||||
@@ -10,6 +10,8 @@ Release Series 3.4 (honister)
|
||||
|
||||
- :yocto_docs:`3.4 Documentation </3.4>`
|
||||
- :yocto_docs:`3.4.1 Documentation </3.4.1>`
|
||||
- :yocto_docs:`3.4.2 Documentation </3.4.2>`
|
||||
- :yocto_docs:`3.4.3 Documentation </3.4.3>`
|
||||
|
||||
******************************
|
||||
Release Series 3.3 (hardknott)
|
||||
@@ -20,6 +22,7 @@ Release Series 3.3 (hardknott)
|
||||
- :yocto_docs:`3.3.2 Documentation </3.3.2>`
|
||||
- :yocto_docs:`3.3.3 Documentation </3.3.3>`
|
||||
- :yocto_docs:`3.3.4 Documentation </3.3.4>`
|
||||
- :yocto_docs:`3.3.5 Documentation </3.3.5>`
|
||||
|
||||
****************************
|
||||
Release Series 3.1 (dunfell)
|
||||
@@ -38,6 +41,8 @@ Release Series 3.1 (dunfell)
|
||||
- :yocto_docs:`3.1.10 Documentation </3.1.10>`
|
||||
- :yocto_docs:`3.1.11 Documentation </3.1.11>`
|
||||
- :yocto_docs:`3.1.12 Documentation </3.1.12>`
|
||||
- :yocto_docs:`3.1.13 Documentation </3.1.13>`
|
||||
- :yocto_docs:`3.1.14 Documentation </3.1.14>`
|
||||
|
||||
==========================
|
||||
Outdated Release Manuals
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
|
||||
var all_versions = {
|
||||
'dev': 'dev (3.5)',
|
||||
'3.4.1': '3.4.1',
|
||||
'3.3.4': '3.3.4',
|
||||
'3.4.2': '3.4.2',
|
||||
'3.3.5': '3.3.5',
|
||||
'3.2.4': '3.2.4',
|
||||
'3.1.12': '3.1.12',
|
||||
'3.1.14': '3.1.14',
|
||||
'3.0.4': '3.0.4',
|
||||
'2.7.4': '2.7.4',
|
||||
};
|
||||
|
||||
@@ -16,6 +16,8 @@ LDFLAGS_SECTION_REMOVAL:pn-grub = ""
|
||||
# SDK packages with build problems using sections
|
||||
CFLAGS_SECTION_REMOVAL:pn-nativesdk-glibc = ""
|
||||
LDFLAGS_SECTION_REMOVAL:pn-nativesdk-glibc = ""
|
||||
CFLAGS_SECTION_REMOVAL:pn-nativesdk-cairo = ""
|
||||
LDFLAGS_SECTION_REMOVAL:pn-nativesdk-cairo = ""
|
||||
CFLAGS_SECTION_REMOVAL:pn-nativesdk-mingw-w64-runtime = ""
|
||||
LDFLAGS_SECTION_REMOVAL:pn-nativesdk-mingw-w64-runtime = ""
|
||||
CFLAGS_SECTION_REMOVAL:pn-nativesdk-perl = ""
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
DISTRO = "poky"
|
||||
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
|
||||
DISTRO_VERSION = "3.4.2"
|
||||
DISTRO_VERSION = "3.4.4"
|
||||
DISTRO_CODENAME = "honister"
|
||||
SDK_VENDOR = "-pokysdk"
|
||||
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
|
||||
|
||||
16
meta-selftest/recipes-test/gitrepotest/gitrepotest.bb
Normal file
16
meta-selftest/recipes-test/gitrepotest/gitrepotest.bb
Normal file
@@ -0,0 +1,16 @@
|
||||
SUMMARY = "Test recipe for git repo initialization"
|
||||
HOMEPAGE = "https://git.yoctoproject.org/git/matchbox-panel-2"
|
||||
LICENSE = "GPL-2.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
PATCHTOOL="git"
|
||||
|
||||
SRC_URI = "git://git.yoctoproject.org/git/matchbox-panel-2;branch=master;protocol=https \
|
||||
file://0001-testpatch.patch \
|
||||
"
|
||||
|
||||
SRCREV = "f82ca3f42510fb3ef10f598b393eb373a2c34ca7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
@@ -0,0 +1,9 @@
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 432a9b4..bbf7c74 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -1,3 +1,4 @@
|
||||
+## This is useless comment to test if patch works
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
SUBDIRS = matchbox-panel applets data po
|
||||
@@ -2,7 +2,7 @@ SUMMARY = "Test recipe for recipeutils.patch_recipe()"
|
||||
|
||||
require recipeutils-test.inc
|
||||
|
||||
LICENSE = "Proprietary"
|
||||
LICENSE = "HPND"
|
||||
LIC_FILES_CHKSUM = "file://${WORKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e"
|
||||
DEPENDS += "zlib"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ KMACHINE:genericx86 ?= "common-pc"
|
||||
KMACHINE:genericx86-64 ?= "common-pc-64"
|
||||
KMACHINE:beaglebone-yocto ?= "beaglebone"
|
||||
|
||||
SRCREV_machine:genericx86 ?= "4f2bb635ea267e71f112fd11323c1d3a2f2b85d0"
|
||||
SRCREV_machine:genericx86-64 ?= "4f2bb635ea267e71f112fd11323c1d3a2f2b85d0"
|
||||
SRCREV_machine:genericx86 ?= "c0b313d988a16b25c1ee730bfe7393c462ee8a5c"
|
||||
SRCREV_machine:genericx86-64 ?= "c0b313d988a16b25c1ee730bfe7393c462ee8a5c"
|
||||
SRCREV_machine:edgerouter ?= "4ab94e777d8b41ee1ee4c279259e9733bc8049b1"
|
||||
SRCREV_machine:beaglebone-yocto ?= "941cc9c3849f96f7eaf109b1e35e05ba366aca56"
|
||||
|
||||
@@ -17,7 +17,7 @@ COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
|
||||
COMPATIBLE_MACHINE:edgerouter = "edgerouter"
|
||||
COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
|
||||
|
||||
LINUX_VERSION:genericx86 = "5.10.87"
|
||||
LINUX_VERSION:genericx86-64 = "5.10.87"
|
||||
LINUX_VERSION:genericx86 = "5.10.99"
|
||||
LINUX_VERSION:genericx86-64 = "5.10.99"
|
||||
LINUX_VERSION:edgerouter = "5.10.63"
|
||||
LINUX_VERSION:beaglebone-yocto = "5.10.63"
|
||||
|
||||
@@ -22,6 +22,9 @@ crate_import_handler[eventmask] = "bb.event.RecipePreFinalise"
|
||||
|
||||
def crate_get_srcrev(d):
|
||||
import_crate(d)
|
||||
srcuri = d.getVar("SRC_URI")
|
||||
if "crate://" not in srcuri and "git://" not in srcuri:
|
||||
return "Invalid"
|
||||
return bb.fetch2.get_srcrev(d)
|
||||
|
||||
# Override SRCPV to make sure it imports the fetcher first
|
||||
|
||||
@@ -111,7 +111,6 @@ python do_cve_check () {
|
||||
}
|
||||
|
||||
addtask cve_check before do_build after do_fetch
|
||||
do_cve_check[lockfiles] += "${CVE_CHECK_DB_FILE_LOCK}"
|
||||
do_cve_check[depends] = "cve-update-db-native:do_fetch"
|
||||
do_cve_check[nostamp] = "1"
|
||||
|
||||
@@ -144,6 +143,7 @@ python cve_check_write_rootfs_manifest () {
|
||||
manifest_name = d.getVar("CVE_CHECK_MANIFEST")
|
||||
cve_tmp_file = d.getVar("CVE_CHECK_TMP_FILE")
|
||||
|
||||
bb.utils.mkdirhier(os.path.dirname(manifest_name))
|
||||
shutil.copyfile(cve_tmp_file, manifest_name)
|
||||
|
||||
if manifest_name and os.path.exists(manifest_name):
|
||||
@@ -264,7 +264,8 @@ def get_cve_info(d, cves):
|
||||
import sqlite3
|
||||
|
||||
cve_data = {}
|
||||
conn = sqlite3.connect(d.getVar("CVE_CHECK_DB_FILE"))
|
||||
db_file = d.expand("file:${CVE_CHECK_DB_FILE}?mode=ro")
|
||||
conn = sqlite3.connect(db_file, uri=True)
|
||||
|
||||
for cve in cves:
|
||||
for row in conn.execute("SELECT * FROM NVD WHERE ID IS ?", (cve,)):
|
||||
|
||||
@@ -30,10 +30,11 @@ python devupstream_virtclass_handler () {
|
||||
# Develpment releases are never preferred by default
|
||||
d.setVar("DEFAULT_PREFERENCE", "-1")
|
||||
|
||||
uri = bb.fetch2.URI(d.getVar("SRC_URI").split()[0])
|
||||
src_uri = d.getVar("SRC_URI:class-devupstream") or d.getVar("SRC_URI")
|
||||
uri = bb.fetch2.URI(src_uri.split()[0])
|
||||
|
||||
if uri.scheme == "git" and not d.getVar("S:class-devupstream"):
|
||||
d.setVar("S:class-devupstream", "${WORKDIR}/git")
|
||||
d.setVar("S", "${WORKDIR}/git")
|
||||
|
||||
# Modify the PV if the recipe hasn't already overridden it
|
||||
pv = d.getVar("PV")
|
||||
|
||||
@@ -90,15 +90,16 @@ python () {
|
||||
# Since configure will likely touch ${S}, ensure only we lock so one task has access at a time
|
||||
d.appendVarFlag(task, "lockfiles", " ${S}/singletask.lock")
|
||||
|
||||
# We do not want our source to be wiped out, ever (kernel.bbclass does this for do_clean)
|
||||
cleandirs = oe.recipeutils.split_var_value(d.getVarFlag(task, 'cleandirs', False) or '')
|
||||
setvalue = False
|
||||
for cleandir in cleandirs[:]:
|
||||
if oe.path.is_path_parent(externalsrc, d.expand(cleandir)):
|
||||
cleandirs.remove(cleandir)
|
||||
setvalue = True
|
||||
if setvalue:
|
||||
d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs))
|
||||
for funcname in [task, "base_" + task, "kernel_" + task]:
|
||||
# We do not want our source to be wiped out, ever (kernel.bbclass does this for do_clean)
|
||||
cleandirs = oe.recipeutils.split_var_value(d.getVarFlag(funcname, 'cleandirs', False) or '')
|
||||
setvalue = False
|
||||
for cleandir in cleandirs[:]:
|
||||
if oe.path.is_path_parent(externalsrc, d.expand(cleandir)):
|
||||
cleandirs.remove(cleandir)
|
||||
setvalue = True
|
||||
if setvalue:
|
||||
d.setVarFlag(funcname, 'cleandirs', ' '.join(cleandirs))
|
||||
|
||||
fetch_tasks = ['do_fetch', 'do_unpack']
|
||||
# If we deltask do_patch, there's no dependency to ensure do_unpack gets run, so add one
|
||||
|
||||
@@ -19,8 +19,8 @@ python write_package_manifest() {
|
||||
|
||||
pkgs = image_list_installed_packages(d)
|
||||
output = format_pkg_list(pkgs)
|
||||
open(os.path.join(license_image_dir, 'package.manifest'),
|
||||
'w+').write(output)
|
||||
with open(os.path.join(license_image_dir, 'package.manifest'), "w+") as package_manifest:
|
||||
package_manifest.write(output)
|
||||
}
|
||||
|
||||
python license_create_manifest() {
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#
|
||||
# QB_AUDIO_DRV: qemu audio driver, e.g., "alsa", set it when support audio
|
||||
#
|
||||
# QB_AUDIO_OPT: qemu audio option, e.g., "-soundhw ac97,es1370", used
|
||||
# QB_AUDIO_OPT: qemu audio option, e.g., "-device AC97", used
|
||||
# when QB_AUDIO_DRV is set.
|
||||
#
|
||||
# QB_RNG: Pass-through for host random number generator, it can speedup boot
|
||||
@@ -131,6 +131,8 @@ python do_write_qemuboot_conf() {
|
||||
'qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/')
|
||||
else:
|
||||
val = d.getVar(k)
|
||||
if val is None:
|
||||
continue
|
||||
# we only want to write out relative paths so that we can relocate images
|
||||
# and still run them
|
||||
if val.startswith(topdir):
|
||||
|
||||
@@ -78,12 +78,8 @@ systemd_create_users () {
|
||||
eval groupadd --root ${IMAGE_ROOTFS} $groupadd_params || true
|
||||
elif [ "$type" = "m" ]; then
|
||||
group=$id
|
||||
if [ ! `grep -q "^${group}:" ${IMAGE_ROOTFS}${sysconfdir}/group` ]; then
|
||||
eval groupadd --root ${IMAGE_ROOTFS} --system $group
|
||||
fi
|
||||
if [ ! `grep -q "^${name}:" ${IMAGE_ROOTFS}${sysconfdir}/passwd` ]; then
|
||||
eval useradd --root ${IMAGE_ROOTFS} --shell /sbin/nologin --system $name
|
||||
fi
|
||||
eval groupadd --root ${IMAGE_ROOTFS} --system $group || true
|
||||
eval useradd --root ${IMAGE_ROOTFS} --shell /sbin/nologin --system $name --no-user-group || true
|
||||
eval usermod --root ${IMAGE_ROOTFS} -a -G $group $name
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -395,7 +395,7 @@ def check_connectivity(d):
|
||||
msg += " Please ensure your host's network is configured correctly.\n"
|
||||
msg += " If your ISP or network is blocking the above URL,\n"
|
||||
msg += " try with another domain name, for example by setting:\n"
|
||||
msg += " CONNECTIVITY_CHECK_URIS = \"https://www.yoctoproject.org/\""
|
||||
msg += " CONNECTIVITY_CHECK_URIS = \"https://www.example.com/\""
|
||||
msg += " You could also set BB_NO_NETWORK = \"1\" to disable network\n"
|
||||
msg += " access if all required sources are on local disk.\n"
|
||||
retval = msg
|
||||
@@ -941,6 +941,11 @@ def check_sanity_everybuild(status, d):
|
||||
mirror_base = urllib.parse.urlparse(mirror[:-1*len('/PATH')]).path
|
||||
check_symlink(mirror_base, d)
|
||||
|
||||
# Check sstate mirrors aren't being used with a local hash server and no remote
|
||||
hashserv = d.getVar("BB_HASHSERVE")
|
||||
if d.getVar("SSTATE_MIRRORS") and hashserv and hashserv.startswith("unix://") and not d.getVar("BB_HASHSERVE_UPSTREAM"):
|
||||
bb.warn("You are using a local hash equivalence server but have configured an sstate mirror. This will likely mean no sstate will match from the mirror. You may wish to disable the hash equivalence use (BB_HASHSERVE), or use a hash equivalence server alongside the sstate mirror.")
|
||||
|
||||
# Check that TMPDIR hasn't changed location since the last time we were run
|
||||
tmpdir = d.getVar('TMPDIR')
|
||||
checkfile = os.path.join(tmpdir, "saved_tmpdir")
|
||||
|
||||
@@ -977,7 +977,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
|
||||
|
||||
localdata2 = bb.data.createCopy(localdata)
|
||||
srcuri = "file://" + sstatefile
|
||||
localdata.setVar('SRC_URI', srcuri)
|
||||
localdata2.setVar('SRC_URI', srcuri)
|
||||
bb.debug(2, "SState: Attempting to fetch %s" % srcuri)
|
||||
|
||||
try:
|
||||
|
||||
@@ -101,11 +101,11 @@ def _toaster_load_pkgdatafile(dirpath, filepath):
|
||||
for line in fin:
|
||||
try:
|
||||
kn, kv = line.strip().split(": ", 1)
|
||||
m = re.match(r"^PKG_([^A-Z:]*)", kn)
|
||||
m = re.match(r"^PKG:([^A-Z:]*)", kn)
|
||||
if m:
|
||||
pkgdata['OPKGN'] = m.group(1)
|
||||
kn = "_".join([x for x in kn.split("_") if x.isupper()])
|
||||
pkgdata[kn] = kv.strip()
|
||||
kn = kn.split(":")[0]
|
||||
pkgdata[kn] = kv
|
||||
if kn.startswith('FILES_INFO'):
|
||||
pkgdata[kn] = json.loads(kv)
|
||||
|
||||
|
||||
@@ -730,10 +730,18 @@ export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
|
||||
export PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}"
|
||||
export PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}"
|
||||
|
||||
# Git configuration
|
||||
|
||||
# Don't allow git to chdir up past WORKDIR so that it doesn't detect the OE
|
||||
# repository when building a recipe
|
||||
export GIT_CEILING_DIRECTORIES = "${WORKDIR}"
|
||||
|
||||
# Treat all directories are safe, as during fakeroot tasks git will run as
|
||||
# root so recent git releases (eg 2.30.3) will refuse to work on repositories. See
|
||||
# https://github.com/git/git/commit/8959555cee7ec045958f9b6dd62e541affb7e7d9 for
|
||||
# further details.
|
||||
export GIT_CONFIG_PARAMETERS="'safe.directory=*'"
|
||||
|
||||
###
|
||||
### Config file processing
|
||||
###
|
||||
|
||||
@@ -54,4 +54,4 @@ KERNEL_IMAGETYPES ??= "${KERNEL_IMAGETYPE}"
|
||||
# fetch from the network (and warn you if not). To disable the test set
|
||||
# the variable to be empty.
|
||||
# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master;branch=master
|
||||
CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/"
|
||||
CONNECTIVITY_CHECK_URIS ?= "https://yoctoproject.org/connectivity.html"
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
# to the distro running on the build machine.
|
||||
#
|
||||
|
||||
UNINATIVE_MAXGLIBCVERSION = "2.34"
|
||||
UNINATIVE_VERSION = "3.4"
|
||||
UNINATIVE_MAXGLIBCVERSION = "2.35"
|
||||
UNINATIVE_VERSION = "3.6"
|
||||
|
||||
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/"
|
||||
UNINATIVE_CHECKSUM[aarch64] ?= "3013cdda8f0dc6639ce1c80f33eabce66f06b890bd5b58739a6d7a92a0bb7100"
|
||||
UNINATIVE_CHECKSUM[i686] ?= "abed500de584aad63ec237546db20cdd0c69d8870a6f8e94ac31721ace64b376"
|
||||
UNINATIVE_CHECKSUM[x86_64] ?= "126f4f7f6f21084ee140dac3eb4c536b963837826b7c38599db0b512c3377ba2"
|
||||
UNINATIVE_CHECKSUM[aarch64] ?= "d64831cf2792c8e470c2e42230660e1a8e5de56a579cdd59978791f663c2f3ed"
|
||||
UNINATIVE_CHECKSUM[i686] ?= "2f0ee9b66b1bb2c85e2b592fb3c9c7f5d77399fa638d74961330cdb8de34ca3b"
|
||||
UNINATIVE_CHECKSUM[x86_64] ?= "9bfc4c970495b3716b2f9e52c4df9f968c02463a9a95000f6657fbc3fde1f098"
|
||||
|
||||
@@ -8,7 +8,7 @@ QB_CPU:x86-64 = "-cpu IvyBridge -machine q35"
|
||||
QB_CPU_KVM:x86-64 = "-cpu IvyBridge -machine q35"
|
||||
|
||||
QB_AUDIO_DRV = "alsa"
|
||||
QB_AUDIO_OPT = "-soundhw ac97,es1370"
|
||||
QB_AUDIO_OPT = "-device AC97"
|
||||
QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1"
|
||||
QB_OPT_APPEND = "-usb -device usb-tablet"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ fi
|
||||
|
||||
# fix dynamic loader paths in all ELF SDK binaries
|
||||
native_sysroot=$($SUDO_EXEC cat $env_setup_script |grep 'OECORE_NATIVE_SYSROOT='|cut -d'=' -f2|tr -d '"')
|
||||
dl_path=$($SUDO_EXEC find $native_sysroot/lib -name "ld-linux*")
|
||||
dl_path=$($SUDO_EXEC find $native_sysroot/lib -maxdepth 1 -name "ld-linux*")
|
||||
if [ "$dl_path" = "" ] ; then
|
||||
echo "SDK could not be set up. Relocate script unable to find ld-linux.so. Abort!"
|
||||
exit 1
|
||||
|
||||
@@ -304,14 +304,19 @@ class GitApplyTree(PatchTree):
|
||||
|
||||
def _isInitialized(self):
|
||||
cmd = "git rev-parse --show-toplevel"
|
||||
(status, output) = subprocess.getstatusoutput(cmd.split())
|
||||
try:
|
||||
output = runcmd(cmd.split(), self.dir).strip()
|
||||
except CmdError as err:
|
||||
## runcmd returned non-zero which most likely means 128
|
||||
## Not a git directory
|
||||
return False
|
||||
## Make sure repo is in builddir to not break top-level git repos
|
||||
return status == 0 and os.path.samedir(output, self.dir)
|
||||
return os.path.samefile(output, self.dir)
|
||||
|
||||
def _initRepo(self):
|
||||
runcmd("git init".split(), self.dir)
|
||||
runcmd("git add .".split(), self.dir)
|
||||
runcmd("git commit -a --allow-empty -m Patching_started".split(), self.dir)
|
||||
runcmd("git commit -a --allow-empty -m bitbake_patching_started".split(), self.dir)
|
||||
|
||||
@staticmethod
|
||||
def extractPatchHeader(patchfile):
|
||||
|
||||
@@ -13,8 +13,8 @@ class HTTPTests(OESDKTestCase):
|
||||
"""
|
||||
|
||||
def test_wget(self):
|
||||
self._run('env -i wget --debug --output-document /dev/null https://www.example.com')
|
||||
self._run('env -i wget --debug --output-document /dev/null https://yoctoproject.org/connectivity.html')
|
||||
|
||||
def test_python(self):
|
||||
# urlopen() returns a file-like object on success and throws an exception otherwise
|
||||
self._run('python3 -c \'import urllib.request; urllib.request.urlopen("https://www.example.com/")\'')
|
||||
self._run('python3 -c \'import urllib.request; urllib.request.urlopen("https://yoctoproject.org/connectivity.html")\'')
|
||||
|
||||
@@ -310,8 +310,22 @@ INHERIT:remove = \"report-error\"
|
||||
src = get_bb_var("SRC_URI",test_recipe)
|
||||
gitscm = re.search("git://", src)
|
||||
self.assertFalse(gitscm, "test_git_patchtool pre-condition failed: {} test recipe contains git repo!".format(test_recipe))
|
||||
result = bitbake('man-db -c patch', ignore_status=False)
|
||||
result = bitbake('{} -c patch'.format(test_recipe), ignore_status=False)
|
||||
fatal = re.search("fatal: not a git repository (or any of the parent directories)", result.output)
|
||||
self.assertFalse(fatal, "Failed to patch using PATCHTOOL=\"git\"")
|
||||
self.delete_recipeinc(test_recipe)
|
||||
bitbake('-cclean man-db')
|
||||
bitbake('-cclean {}'.format(test_recipe))
|
||||
|
||||
def test_git_patchtool2(self):
|
||||
""" Test if PATCHTOOL=git works with git repo and doesn't reinitialize it
|
||||
"""
|
||||
test_recipe = "gitrepotest"
|
||||
src = get_bb_var("SRC_URI",test_recipe)
|
||||
gitscm = re.search("git://", src)
|
||||
self.assertTrue(gitscm, "test_git_patchtool pre-condition failed: {} test recipe doesn't contains git repo!".format(test_recipe))
|
||||
result = bitbake('{} -c patch'.format(test_recipe), ignore_status=False)
|
||||
srcdir = get_bb_var('S', test_recipe)
|
||||
result = runCmd("git log", cwd = srcdir)
|
||||
self.assertFalse("bitbake_patching_started" in result.output, msg = "Repository has been reinitialized. {}".format(srcdir))
|
||||
self.delete_recipeinc(test_recipe)
|
||||
bitbake('-cclean {}'.format(test_recipe))
|
||||
|
||||
@@ -1464,6 +1464,14 @@ class DevtoolExtractTests(DevtoolBase):
|
||||
|
||||
class DevtoolUpgradeTests(DevtoolBase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
try:
|
||||
runCmd("git config --global user.name")
|
||||
runCmd("git config --global user.email")
|
||||
except:
|
||||
self.skip("Git user.name and user.email must be set")
|
||||
|
||||
def test_devtool_upgrade(self):
|
||||
# Check preconditions
|
||||
self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory')
|
||||
|
||||
@@ -375,7 +375,7 @@ class RecipetoolTests(RecipetoolBase):
|
||||
temprecipe = os.path.join(self.tempdir, 'recipe')
|
||||
os.makedirs(temprecipe)
|
||||
pv = '1.7.4.1'
|
||||
srcuri = 'http://www.dest-unreach.org/socat/download/socat-%s.tar.bz2' % pv
|
||||
srcuri = 'http://www.dest-unreach.org/socat/download/Archive/socat-%s.tar.bz2' % pv
|
||||
result = runCmd('recipetool create %s -o %s' % (srcuri, temprecipe))
|
||||
dirlist = os.listdir(temprecipe)
|
||||
if len(dirlist) > 1:
|
||||
|
||||
@@ -27,6 +27,8 @@ SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae
|
||||
|
||||
# Applies only to RHEL
|
||||
CVE_CHECK_WHITELIST += "CVE-2019-14865"
|
||||
# Applies only to SUSE
|
||||
CVE_CHECK_WHITELIST += "CVE-2021-46705"
|
||||
|
||||
DEPENDS = "flex-native bison-native gettext-native"
|
||||
|
||||
|
||||
@@ -19,4 +19,7 @@ SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
B = "${WORKDIR}/build"
|
||||
|
||||
inherit pkgconfig
|
||||
|
||||
do_configure[cleandirs] = "${B}"
|
||||
|
||||
@@ -19,10 +19,11 @@ BINCONFIG = "${bindir}/pcap-config"
|
||||
|
||||
# Explicitly disable dag support. We don't have recipe for it and if enabled here,
|
||||
# configure script poisons the include dirs with /usr/local/include even when the
|
||||
# support hasn't been detected.
|
||||
# support hasn't been detected. Do the same thing for DPDK.
|
||||
EXTRA_OECONF = " \
|
||||
--with-pcap=linux \
|
||||
--without-dag \
|
||||
--without-dpdk \
|
||||
"
|
||||
EXTRA_AUTORECONF += "--exclude=aclocal"
|
||||
|
||||
|
||||
@@ -208,6 +208,3 @@ do_install_ptest () {
|
||||
}
|
||||
|
||||
FILES:${PN}-ptest += "${bindir}/getlimits"
|
||||
|
||||
# These are specific to Opensuse
|
||||
CVE_WHITELIST += "CVE-2013-0221 CVE-2013-0222 CVE-2013-0223"
|
||||
|
||||
@@ -15,7 +15,7 @@ SRC_URI = "https://github.com/libexpat/libexpat/releases/download/R_${VERSION_TA
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://github.com/libexpat/libexpat/releases/"
|
||||
|
||||
SRC_URI[sha256sum] = "14c58c2a0b5b8b31836514dfab41bd191836db7aa7b84ae5c47bc0327a20d64a"
|
||||
SRC_URI[sha256sum] = "e149bdd8b90254c62b3d195da53a09bd531a4d63a963b0d8a5268d48dd2f6a65"
|
||||
|
||||
EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF"
|
||||
|
||||
@@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk wic.vhd wic.vhdx"
|
||||
|
||||
inherit core-image setuptools3
|
||||
|
||||
SRCREV ?= "3c5842ebfeab2404b15892ddd70f9b6e4f022ea2"
|
||||
SRCREV ?= "3f17ee4ebef3103e290750d8cdd7d001fc306673"
|
||||
SRC_URI = "git://git.yoctoproject.org/poky;branch=honister \
|
||||
file://Yocto_Build_Appliance.vmx \
|
||||
file://Yocto_Build_Appliance.vmxf \
|
||||
|
||||
@@ -12,6 +12,18 @@ finish_run() {
|
||||
fatal "ERROR: There's no '/dev' on rootfs."
|
||||
fi
|
||||
|
||||
# Unmount anything that was automounted by busybox via mdev-mount.sh.
|
||||
# We're about to switch_root, and leaving anything mounted will prevent
|
||||
# the next rootfs from modifying the block device. Ignore ROOT_DISK,
|
||||
# if it was set by setup-live, because it'll be mounted over loopback
|
||||
# to ROOTFS_DIR.
|
||||
local dev
|
||||
for dev in /run/media/*; do
|
||||
if mountpoint -q "${dev}" && [ "${dev##*/}" != "${ROOT_DISK}" ]; then
|
||||
umount -f "${dev}" || debug "Failed to unmount ${dev}"
|
||||
fi
|
||||
done
|
||||
|
||||
info "Switching root to '$ROOTFS_DIR'..."
|
||||
|
||||
debug "Moving /dev, /proc and /sys onto rootfs..."
|
||||
|
||||
@@ -1,213 +0,0 @@
|
||||
From 85b1792e37b131e7a51af98a37f92472e8de5f3f Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 18 May 2021 20:08:28 +0200
|
||||
Subject: [PATCH] Work around lxml API abuse
|
||||
|
||||
Make xmlNodeDumpOutput and htmlNodeDumpFormatOutput work with corrupted
|
||||
parent pointers. This used to work with the old recursive code but the
|
||||
non-recursive rewrite required parent pointers to be set correctly.
|
||||
|
||||
Unfortunately, lxml relies on the old behavior and passes subtrees with
|
||||
a corrupted structure. Fall back to a recursive function call if an
|
||||
invalid parent pointer is detected.
|
||||
|
||||
Fixes #255.
|
||||
|
||||
Upstream-Status: Backport [85b1792e37b131e7a51af98a37f92472e8de5f3f]
|
||||
---
|
||||
HTMLtree.c | 46 ++++++++++++++++++++++++++++------------------
|
||||
xmlsave.c | 31 +++++++++++++++++++++----------
|
||||
2 files changed, 49 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/HTMLtree.c b/HTMLtree.c
|
||||
index 24434d45..bdd639c7 100644
|
||||
--- a/HTMLtree.c
|
||||
+++ b/HTMLtree.c
|
||||
@@ -744,7 +744,7 @@ void
|
||||
htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
xmlNodePtr cur, const char *encoding ATTRIBUTE_UNUSED,
|
||||
int format) {
|
||||
- xmlNodePtr root;
|
||||
+ xmlNodePtr root, parent;
|
||||
xmlAttrPtr attr;
|
||||
const htmlElemDesc * info;
|
||||
|
||||
@@ -755,6 +755,7 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
}
|
||||
|
||||
root = cur;
|
||||
+ parent = cur->parent;
|
||||
while (1) {
|
||||
switch (cur->type) {
|
||||
case XML_HTML_DOCUMENT_NODE:
|
||||
@@ -762,13 +763,25 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
if (((xmlDocPtr) cur)->intSubset != NULL) {
|
||||
htmlDtdDumpOutput(buf, (xmlDocPtr) cur, NULL);
|
||||
}
|
||||
- if (cur->children != NULL) {
|
||||
+ /* Always validate cur->parent when descending. */
|
||||
+ if ((cur->parent == parent) && (cur->children != NULL)) {
|
||||
+ parent = cur;
|
||||
cur = cur->children;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
||||
case XML_ELEMENT_NODE:
|
||||
+ /*
|
||||
+ * Some users like lxml are known to pass nodes with a corrupted
|
||||
+ * tree structure. Fall back to a recursive call to handle this
|
||||
+ * case.
|
||||
+ */
|
||||
+ if ((cur->parent != parent) && (cur->children != NULL)) {
|
||||
+ htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Get specific HTML info for that node.
|
||||
*/
|
||||
@@ -817,6 +830,7 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
(cur->name != NULL) &&
|
||||
(cur->name[0] != 'p')) /* p, pre, param */
|
||||
xmlOutputBufferWriteString(buf, "\n");
|
||||
+ parent = cur;
|
||||
cur = cur->children;
|
||||
continue;
|
||||
}
|
||||
@@ -825,9 +839,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
(info != NULL) && (!info->isinline)) {
|
||||
if ((cur->next->type != HTML_TEXT_NODE) &&
|
||||
(cur->next->type != HTML_ENTITY_REF_NODE) &&
|
||||
- (cur->parent != NULL) &&
|
||||
- (cur->parent->name != NULL) &&
|
||||
- (cur->parent->name[0] != 'p')) /* p, pre, param */
|
||||
+ (parent != NULL) &&
|
||||
+ (parent->name != NULL) &&
|
||||
+ (parent->name[0] != 'p')) /* p, pre, param */
|
||||
xmlOutputBufferWriteString(buf, "\n");
|
||||
}
|
||||
|
||||
@@ -842,9 +856,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
break;
|
||||
if (((cur->name == (const xmlChar *)xmlStringText) ||
|
||||
(cur->name != (const xmlChar *)xmlStringTextNoenc)) &&
|
||||
- ((cur->parent == NULL) ||
|
||||
- ((xmlStrcasecmp(cur->parent->name, BAD_CAST "script")) &&
|
||||
- (xmlStrcasecmp(cur->parent->name, BAD_CAST "style"))))) {
|
||||
+ ((parent == NULL) ||
|
||||
+ ((xmlStrcasecmp(parent->name, BAD_CAST "script")) &&
|
||||
+ (xmlStrcasecmp(parent->name, BAD_CAST "style"))))) {
|
||||
xmlChar *buffer;
|
||||
|
||||
buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
|
||||
@@ -902,13 +916,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
break;
|
||||
}
|
||||
|
||||
- /*
|
||||
- * The parent should never be NULL here but we want to handle
|
||||
- * corrupted documents gracefully.
|
||||
- */
|
||||
- if (cur->parent == NULL)
|
||||
- return;
|
||||
- cur = cur->parent;
|
||||
+ cur = parent;
|
||||
+ /* cur->parent was validated when descending. */
|
||||
+ parent = cur->parent;
|
||||
|
||||
if ((cur->type == XML_HTML_DOCUMENT_NODE) ||
|
||||
(cur->type == XML_DOCUMENT_NODE)) {
|
||||
@@ -939,9 +949,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
|
||||
(cur->next != NULL)) {
|
||||
if ((cur->next->type != HTML_TEXT_NODE) &&
|
||||
(cur->next->type != HTML_ENTITY_REF_NODE) &&
|
||||
- (cur->parent != NULL) &&
|
||||
- (cur->parent->name != NULL) &&
|
||||
- (cur->parent->name[0] != 'p')) /* p, pre, param */
|
||||
+ (parent != NULL) &&
|
||||
+ (parent->name != NULL) &&
|
||||
+ (parent->name[0] != 'p')) /* p, pre, param */
|
||||
xmlOutputBufferWriteString(buf, "\n");
|
||||
}
|
||||
}
|
||||
diff --git a/xmlsave.c b/xmlsave.c
|
||||
index 61a40459..aedbd5e7 100644
|
||||
--- a/xmlsave.c
|
||||
+++ b/xmlsave.c
|
||||
@@ -847,7 +847,7 @@ htmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
|
||||
static void
|
||||
xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
|
||||
int format = ctxt->format;
|
||||
- xmlNodePtr tmp, root, unformattedNode = NULL;
|
||||
+ xmlNodePtr tmp, root, unformattedNode = NULL, parent;
|
||||
xmlAttrPtr attr;
|
||||
xmlChar *start, *end;
|
||||
xmlOutputBufferPtr buf;
|
||||
@@ -856,6 +856,7 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
|
||||
buf = ctxt->buf;
|
||||
|
||||
root = cur;
|
||||
+ parent = cur->parent;
|
||||
while (1) {
|
||||
switch (cur->type) {
|
||||
case XML_DOCUMENT_NODE:
|
||||
@@ -868,7 +869,9 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
|
||||
break;
|
||||
|
||||
case XML_DOCUMENT_FRAG_NODE:
|
||||
- if (cur->children != NULL) {
|
||||
+ /* Always validate cur->parent when descending. */
|
||||
+ if ((cur->parent == parent) && (cur->children != NULL)) {
|
||||
+ parent = cur;
|
||||
cur = cur->children;
|
||||
continue;
|
||||
}
|
||||
@@ -887,7 +890,18 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
|
||||
break;
|
||||
|
||||
case XML_ELEMENT_NODE:
|
||||
- if ((cur != root) && (ctxt->format == 1) && (xmlIndentTreeOutput))
|
||||
+ /*
|
||||
+ * Some users like lxml are known to pass nodes with a corrupted
|
||||
+ * tree structure. Fall back to a recursive call to handle this
|
||||
+ * case.
|
||||
+ */
|
||||
+ if ((cur->parent != parent) && (cur->children != NULL)) {
|
||||
+ xmlNodeDumpOutputInternal(ctxt, cur);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if ((ctxt->level > 0) && (ctxt->format == 1) &&
|
||||
+ (xmlIndentTreeOutput))
|
||||
xmlOutputBufferWrite(buf, ctxt->indent_size *
|
||||
(ctxt->level > ctxt->indent_nr ?
|
||||
ctxt->indent_nr : ctxt->level),
|
||||
@@ -942,6 +956,7 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
|
||||
xmlOutputBufferWrite(buf, 1, ">");
|
||||
if (ctxt->format == 1) xmlOutputBufferWrite(buf, 1, "\n");
|
||||
if (ctxt->level >= 0) ctxt->level++;
|
||||
+ parent = cur;
|
||||
cur = cur->children;
|
||||
continue;
|
||||
}
|
||||
@@ -1058,13 +1073,9 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
|
||||
break;
|
||||
}
|
||||
|
||||
- /*
|
||||
- * The parent should never be NULL here but we want to handle
|
||||
- * corrupted documents gracefully.
|
||||
- */
|
||||
- if (cur->parent == NULL)
|
||||
- return;
|
||||
- cur = cur->parent;
|
||||
+ cur = parent;
|
||||
+ /* cur->parent was validated when descending. */
|
||||
+ parent = cur->parent;
|
||||
|
||||
if (cur->type == XML_ELEMENT_NODE) {
|
||||
if (ctxt->level > 0) ctxt->level--;
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
From 646fe48d1c8a74310c409ddf81fe7df6700052af Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Tue, 22 Feb 2022 11:51:08 +0100
|
||||
Subject: [PATCH] Fix --without-valid build
|
||||
|
||||
Regressed in commit 652dd12a.
|
||||
---
|
||||
valid.c | 58 ++++++++++++++++++++++++++++-----------------------------
|
||||
1 file changed, 29 insertions(+), 29 deletions(-)
|
||||
---
|
||||
|
||||
From https://github.com/GNOME/libxml2.git
|
||||
commit 646fe48d1c8a74310c409ddf81fe7df6700052af
|
||||
|
||||
CVE: CVE-2022-23308
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Joe Slater <joe.slater@windriver.com>
|
||||
|
||||
|
||||
diff --git a/valid.c b/valid.c
|
||||
index 8e596f1d..9684683a 100644
|
||||
--- a/valid.c
|
||||
+++ b/valid.c
|
||||
@@ -479,35 +479,6 @@ nodeVPop(xmlValidCtxtPtr ctxt)
|
||||
return (ret);
|
||||
}
|
||||
|
||||
-/**
|
||||
- * xmlValidNormalizeString:
|
||||
- * @str: a string
|
||||
- *
|
||||
- * Normalize a string in-place.
|
||||
- */
|
||||
-static void
|
||||
-xmlValidNormalizeString(xmlChar *str) {
|
||||
- xmlChar *dst;
|
||||
- const xmlChar *src;
|
||||
-
|
||||
- if (str == NULL)
|
||||
- return;
|
||||
- src = str;
|
||||
- dst = str;
|
||||
-
|
||||
- while (*src == 0x20) src++;
|
||||
- while (*src != 0) {
|
||||
- if (*src == 0x20) {
|
||||
- while (*src == 0x20) src++;
|
||||
- if (*src != 0)
|
||||
- *dst++ = 0x20;
|
||||
- } else {
|
||||
- *dst++ = *src++;
|
||||
- }
|
||||
- }
|
||||
- *dst = 0;
|
||||
-}
|
||||
-
|
||||
#ifdef DEBUG_VALID_ALGO
|
||||
static void
|
||||
xmlValidPrintNode(xmlNodePtr cur) {
|
||||
@@ -2636,6 +2607,35 @@ xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) {
|
||||
(xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \
|
||||
xmlFree((char *)(str));
|
||||
|
||||
+/**
|
||||
+ * xmlValidNormalizeString:
|
||||
+ * @str: a string
|
||||
+ *
|
||||
+ * Normalize a string in-place.
|
||||
+ */
|
||||
+static void
|
||||
+xmlValidNormalizeString(xmlChar *str) {
|
||||
+ xmlChar *dst;
|
||||
+ const xmlChar *src;
|
||||
+
|
||||
+ if (str == NULL)
|
||||
+ return;
|
||||
+ src = str;
|
||||
+ dst = str;
|
||||
+
|
||||
+ while (*src == 0x20) src++;
|
||||
+ while (*src != 0) {
|
||||
+ if (*src == 0x20) {
|
||||
+ while (*src == 0x20) src++;
|
||||
+ if (*src != 0)
|
||||
+ *dst++ = 0x20;
|
||||
+ } else {
|
||||
+ *dst++ = *src++;
|
||||
+ }
|
||||
+ }
|
||||
+ *dst = 0;
|
||||
+}
|
||||
+
|
||||
static int
|
||||
xmlIsStreaming(xmlValidCtxtPtr ctxt) {
|
||||
xmlParserCtxtPtr pctxt;
|
||||
--
|
||||
2.35.1
|
||||
|
||||
@@ -18,11 +18,11 @@ Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
|
||||
libxml.m4 | 190 ++----------------------------------------------------
|
||||
1 file changed, 5 insertions(+), 185 deletions(-)
|
||||
|
||||
diff --git a/libxml.m4 b/libxml.m4
|
||||
index 09de9fe2..1c535853 100644
|
||||
--- a/libxml.m4
|
||||
+++ b/libxml.m4
|
||||
@@ -1,192 +1,12 @@
|
||||
Index: libxml2-2.9.13/libxml.m4
|
||||
===================================================================
|
||||
--- libxml2-2.9.13.orig/libxml.m4
|
||||
+++ libxml2-2.9.13/libxml.m4
|
||||
@@ -1,191 +1,12 @@
|
||||
-# Configure paths for LIBXML2
|
||||
-# Simon Josefsson 2020-02-12
|
||||
-# Fix autoconf 2.70+ warnings
|
||||
@@ -147,9 +147,8 @@ index 09de9fe2..1c535853 100644
|
||||
- {
|
||||
- printf("\n*** An old version of libxml (%d.%d.%d) was found.\n",
|
||||
- xml_major_version, xml_minor_version, xml_micro_version);
|
||||
- printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n",
|
||||
- printf("*** You need a version of libxml newer than %d.%d.%d.\n",
|
||||
- major, minor, micro);
|
||||
- printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n");
|
||||
- printf("***\n");
|
||||
- printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
- printf("*** probably means that the wrong copy of the xml2-config shell script is\n");
|
||||
@@ -220,6 +219,3 @@ index 09de9fe2..1c535853 100644
|
||||
- AC_SUBST(XML_LIBS)
|
||||
- rm -f conf.xmltest
|
||||
])
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SUMMARY = "XML C Parser Library and Toolkit"
|
||||
DESCRIPTION = "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat."
|
||||
HOMEPAGE = "http://www.xmlsoft.org/"
|
||||
HOMEPAGE = "https://gitlab.gnome.org/GNOME/libxml2"
|
||||
BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
|
||||
SECTION = "libs"
|
||||
LICENSE = "MIT"
|
||||
@@ -11,20 +11,23 @@ LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
|
||||
|
||||
DEPENDS = "zlib virtual/libiconv"
|
||||
|
||||
SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \
|
||||
http://www.w3.org/XML/Test/xmlts20080827.tar.gz;subdir=${BP};name=testtar \
|
||||
inherit gnomebase
|
||||
|
||||
SRC_URI += "http://www.w3.org/XML/Test/xmlts20080827.tar.gz;subdir=${BP};name=testtar \
|
||||
file://libxml-64bit.patch \
|
||||
file://runtest.patch \
|
||||
file://run-ptest \
|
||||
file://python-sitepackages-dir.patch \
|
||||
file://libxml-m4-use-pkgconfig.patch \
|
||||
file://0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch \
|
||||
file://fix-execution-of-ptests.patch \
|
||||
file://remove-fuzz-from-ptests.patch \
|
||||
file://0002-Work-around-lxml-API-abuse.patch \
|
||||
file://libxml-m4-use-pkgconfig.patch \
|
||||
"
|
||||
# will be in v2.9.14
|
||||
#
|
||||
SRC_URI += "file://CVE-2022-23308-fix-regression.patch"
|
||||
|
||||
SRC_URI[libtar.sha256sum] = "c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92"
|
||||
SRC_URI[archive.sha256sum] = "276130602d12fe484ecc03447ee5e759d0465558fbc9d6bd144e3745306ebf0e"
|
||||
SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"
|
||||
|
||||
BINCONFIG = "${bindir}/xml2-config"
|
||||
@@ -37,4 +37,4 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin
|
||||
file://avoid_parallel_tests.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "6a0764c1aae7fb607ef8a6dd2c0f6c47d5e5fd27aa08820abaad9ec14e28e9d9"
|
||||
SRC_URI[sha256sum] = "634e6916ad913366c3536b6468e7844769549b99a7b2bf80314de78ab5655b83"
|
||||
|
||||
347
meta/recipes-core/zlib/zlib/CVE-2018-25032.patch
Normal file
347
meta/recipes-core/zlib/zlib/CVE-2018-25032.patch
Normal file
@@ -0,0 +1,347 @@
|
||||
CVE: CVE-2018-25032
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||
|
||||
From 5c44459c3b28a9bd3283aaceab7c615f8020c531 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Adler <madler@alumni.caltech.edu>
|
||||
Date: Tue, 17 Apr 2018 22:09:22 -0700
|
||||
Subject: [PATCH] Fix a bug that can crash deflate on some input when using
|
||||
Z_FIXED.
|
||||
|
||||
This bug was reported by Danilo Ramos of Eideticom, Inc. It has
|
||||
lain in wait 13 years before being found! The bug was introduced
|
||||
in zlib 1.2.2.2, with the addition of the Z_FIXED option. That
|
||||
option forces the use of fixed Huffman codes. For rare inputs with
|
||||
a large number of distant matches, the pending buffer into which
|
||||
the compressed data is written can overwrite the distance symbol
|
||||
table which it overlays. That results in corrupted output due to
|
||||
invalid distances, and can result in out-of-bound accesses,
|
||||
crashing the application.
|
||||
|
||||
The fix here combines the distance buffer and literal/length
|
||||
buffers into a single symbol buffer. Now three bytes of pending
|
||||
buffer space are opened up for each literal or length/distance
|
||||
pair consumed, instead of the previous two bytes. This assures
|
||||
that the pending buffer cannot overwrite the symbol table, since
|
||||
the maximum fixed code compressed length/distance is 31 bits, and
|
||||
since there are four bytes of pending space for every three bytes
|
||||
of symbol space.
|
||||
---
|
||||
deflate.c | 74 ++++++++++++++++++++++++++++++++++++++++---------------
|
||||
deflate.h | 25 +++++++++----------
|
||||
trees.c | 50 +++++++++++--------------------------
|
||||
3 files changed, 79 insertions(+), 70 deletions(-)
|
||||
|
||||
diff --git a/deflate.c b/deflate.c
|
||||
index 425babc00..19cba873a 100644
|
||||
--- a/deflate.c
|
||||
+++ b/deflate.c
|
||||
@@ -255,11 +255,6 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
|
||||
int wrap = 1;
|
||||
static const char my_version[] = ZLIB_VERSION;
|
||||
|
||||
- ushf *overlay;
|
||||
- /* We overlay pending_buf and d_buf+l_buf. This works since the average
|
||||
- * output size for (length,distance) codes is <= 24 bits.
|
||||
- */
|
||||
-
|
||||
if (version == Z_NULL || version[0] != my_version[0] ||
|
||||
stream_size != sizeof(z_stream)) {
|
||||
return Z_VERSION_ERROR;
|
||||
@@ -329,9 +324,47 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
|
||||
|
||||
s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
|
||||
|
||||
- overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
|
||||
- s->pending_buf = (uchf *) overlay;
|
||||
- s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
|
||||
+ /* We overlay pending_buf and sym_buf. This works since the average size
|
||||
+ * for length/distance pairs over any compressed block is assured to be 31
|
||||
+ * bits or less.
|
||||
+ *
|
||||
+ * Analysis: The longest fixed codes are a length code of 8 bits plus 5
|
||||
+ * extra bits, for lengths 131 to 257. The longest fixed distance codes are
|
||||
+ * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
|
||||
+ * possible fixed-codes length/distance pair is then 31 bits total.
|
||||
+ *
|
||||
+ * sym_buf starts one-fourth of the way into pending_buf. So there are
|
||||
+ * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
|
||||
+ * in sym_buf is three bytes -- two for the distance and one for the
|
||||
+ * literal/length. As each symbol is consumed, the pointer to the next
|
||||
+ * sym_buf value to read moves forward three bytes. From that symbol, up to
|
||||
+ * 31 bits are written to pending_buf. The closest the written pending_buf
|
||||
+ * bits gets to the next sym_buf symbol to read is just before the last
|
||||
+ * code is written. At that time, 31*(n-2) bits have been written, just
|
||||
+ * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at
|
||||
+ * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1
|
||||
+ * symbols are written.) The closest the writing gets to what is unread is
|
||||
+ * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and
|
||||
+ * can range from 128 to 32768.
|
||||
+ *
|
||||
+ * Therefore, at a minimum, there are 142 bits of space between what is
|
||||
+ * written and what is read in the overlain buffers, so the symbols cannot
|
||||
+ * be overwritten by the compressed data. That space is actually 139 bits,
|
||||
+ * due to the three-bit fixed-code block header.
|
||||
+ *
|
||||
+ * That covers the case where either Z_FIXED is specified, forcing fixed
|
||||
+ * codes, or when the use of fixed codes is chosen, because that choice
|
||||
+ * results in a smaller compressed block than dynamic codes. That latter
|
||||
+ * condition then assures that the above analysis also covers all dynamic
|
||||
+ * blocks. A dynamic-code block will only be chosen to be emitted if it has
|
||||
+ * fewer bits than a fixed-code block would for the same set of symbols.
|
||||
+ * Therefore its average symbol length is assured to be less than 31. So
|
||||
+ * the compressed data for a dynamic block also cannot overwrite the
|
||||
+ * symbols from which it is being constructed.
|
||||
+ */
|
||||
+
|
||||
+ s->pending_buf = (uchf *) ZALLOC(strm, s->lit_bufsize, 4);
|
||||
+ s->pending_buf_size = (ulg)s->lit_bufsize * 4;
|
||||
|
||||
if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
|
||||
s->pending_buf == Z_NULL) {
|
||||
@@ -340,8 +373,12 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
|
||||
deflateEnd (strm);
|
||||
return Z_MEM_ERROR;
|
||||
}
|
||||
- s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
|
||||
- s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
|
||||
+ s->sym_buf = s->pending_buf + s->lit_bufsize;
|
||||
+ s->sym_end = (s->lit_bufsize - 1) * 3;
|
||||
+ /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
|
||||
+ * on 16 bit machines and because stored blocks are restricted to
|
||||
+ * 64K-1 bytes.
|
||||
+ */
|
||||
|
||||
s->level = level;
|
||||
s->strategy = strategy;
|
||||
@@ -552,7 +589,7 @@ int ZEXPORT deflatePrime (strm, bits, value)
|
||||
|
||||
if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
|
||||
s = strm->state;
|
||||
- if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
|
||||
+ if (s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3))
|
||||
return Z_BUF_ERROR;
|
||||
do {
|
||||
put = Buf_size - s->bi_valid;
|
||||
@@ -1113,7 +1150,6 @@ int ZEXPORT deflateCopy (dest, source)
|
||||
#else
|
||||
deflate_state *ds;
|
||||
deflate_state *ss;
|
||||
- ushf *overlay;
|
||||
|
||||
|
||||
if (deflateStateCheck(source) || dest == Z_NULL) {
|
||||
@@ -1133,8 +1169,7 @@ int ZEXPORT deflateCopy (dest, source)
|
||||
ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
|
||||
ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos));
|
||||
ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos));
|
||||
- overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
|
||||
- ds->pending_buf = (uchf *) overlay;
|
||||
+ ds->pending_buf = (uchf *) ZALLOC(dest, ds->lit_bufsize, 4);
|
||||
|
||||
if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
|
||||
ds->pending_buf == Z_NULL) {
|
||||
@@ -1148,8 +1183,7 @@ int ZEXPORT deflateCopy (dest, source)
|
||||
zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
|
||||
|
||||
ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
|
||||
- ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
|
||||
- ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
|
||||
+ ds->sym_buf = ds->pending_buf + ds->lit_bufsize;
|
||||
|
||||
ds->l_desc.dyn_tree = ds->dyn_ltree;
|
||||
ds->d_desc.dyn_tree = ds->dyn_dtree;
|
||||
@@ -1925,7 +1959,7 @@ local block_state deflate_fast(s, flush)
|
||||
FLUSH_BLOCK(s, 1);
|
||||
return finish_done;
|
||||
}
|
||||
- if (s->last_lit)
|
||||
+ if (s->sym_next)
|
||||
FLUSH_BLOCK(s, 0);
|
||||
return block_done;
|
||||
}
|
||||
@@ -2056,7 +2090,7 @@ local block_state deflate_slow(s, flush)
|
||||
FLUSH_BLOCK(s, 1);
|
||||
return finish_done;
|
||||
}
|
||||
- if (s->last_lit)
|
||||
+ if (s->sym_next)
|
||||
FLUSH_BLOCK(s, 0);
|
||||
return block_done;
|
||||
}
|
||||
@@ -2131,7 +2165,7 @@ local block_state deflate_rle(s, flush)
|
||||
FLUSH_BLOCK(s, 1);
|
||||
return finish_done;
|
||||
}
|
||||
- if (s->last_lit)
|
||||
+ if (s->sym_next)
|
||||
FLUSH_BLOCK(s, 0);
|
||||
return block_done;
|
||||
}
|
||||
@@ -2170,7 +2204,7 @@ local block_state deflate_huff(s, flush)
|
||||
FLUSH_BLOCK(s, 1);
|
||||
return finish_done;
|
||||
}
|
||||
- if (s->last_lit)
|
||||
+ if (s->sym_next)
|
||||
FLUSH_BLOCK(s, 0);
|
||||
return block_done;
|
||||
}
|
||||
diff --git a/deflate.h b/deflate.h
|
||||
index 23ecdd312..d4cf1a98b 100644
|
||||
--- a/deflate.h
|
||||
+++ b/deflate.h
|
||||
@@ -217,7 +217,7 @@ typedef struct internal_state {
|
||||
/* Depth of each subtree used as tie breaker for trees of equal frequency
|
||||
*/
|
||||
|
||||
- uchf *l_buf; /* buffer for literals or lengths */
|
||||
+ uchf *sym_buf; /* buffer for distances and literals/lengths */
|
||||
|
||||
uInt lit_bufsize;
|
||||
/* Size of match buffer for literals/lengths. There are 4 reasons for
|
||||
@@ -239,13 +239,8 @@ typedef struct internal_state {
|
||||
* - I can't count above 4
|
||||
*/
|
||||
|
||||
- uInt last_lit; /* running index in l_buf */
|
||||
-
|
||||
- ushf *d_buf;
|
||||
- /* Buffer for distances. To simplify the code, d_buf and l_buf have
|
||||
- * the same number of elements. To use different lengths, an extra flag
|
||||
- * array would be necessary.
|
||||
- */
|
||||
+ uInt sym_next; /* running index in sym_buf */
|
||||
+ uInt sym_end; /* symbol table full when sym_next reaches this */
|
||||
|
||||
ulg opt_len; /* bit length of current block with optimal trees */
|
||||
ulg static_len; /* bit length of current block with static trees */
|
||||
@@ -325,20 +320,22 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
|
||||
|
||||
# define _tr_tally_lit(s, c, flush) \
|
||||
{ uch cc = (c); \
|
||||
- s->d_buf[s->last_lit] = 0; \
|
||||
- s->l_buf[s->last_lit++] = cc; \
|
||||
+ s->sym_buf[s->sym_next++] = 0; \
|
||||
+ s->sym_buf[s->sym_next++] = 0; \
|
||||
+ s->sym_buf[s->sym_next++] = cc; \
|
||||
s->dyn_ltree[cc].Freq++; \
|
||||
- flush = (s->last_lit == s->lit_bufsize-1); \
|
||||
+ flush = (s->sym_next == s->sym_end); \
|
||||
}
|
||||
# define _tr_tally_dist(s, distance, length, flush) \
|
||||
{ uch len = (uch)(length); \
|
||||
ush dist = (ush)(distance); \
|
||||
- s->d_buf[s->last_lit] = dist; \
|
||||
- s->l_buf[s->last_lit++] = len; \
|
||||
+ s->sym_buf[s->sym_next++] = dist; \
|
||||
+ s->sym_buf[s->sym_next++] = dist >> 8; \
|
||||
+ s->sym_buf[s->sym_next++] = len; \
|
||||
dist--; \
|
||||
s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
|
||||
s->dyn_dtree[d_code(dist)].Freq++; \
|
||||
- flush = (s->last_lit == s->lit_bufsize-1); \
|
||||
+ flush = (s->sym_next == s->sym_end); \
|
||||
}
|
||||
#else
|
||||
# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
|
||||
diff --git a/trees.c b/trees.c
|
||||
index 4f4a65011..decaeb7c3 100644
|
||||
--- a/trees.c
|
||||
+++ b/trees.c
|
||||
@@ -416,7 +416,7 @@ local void init_block(s)
|
||||
|
||||
s->dyn_ltree[END_BLOCK].Freq = 1;
|
||||
s->opt_len = s->static_len = 0L;
|
||||
- s->last_lit = s->matches = 0;
|
||||
+ s->sym_next = s->matches = 0;
|
||||
}
|
||||
|
||||
#define SMALLEST 1
|
||||
@@ -948,7 +948,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
||||
|
||||
Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
|
||||
opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
|
||||
- s->last_lit));
|
||||
+ s->sym_next / 3));
|
||||
|
||||
if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
|
||||
|
||||
@@ -1017,8 +1017,9 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
|
||||
unsigned dist; /* distance of matched string */
|
||||
unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
|
||||
{
|
||||
- s->d_buf[s->last_lit] = (ush)dist;
|
||||
- s->l_buf[s->last_lit++] = (uch)lc;
|
||||
+ s->sym_buf[s->sym_next++] = dist;
|
||||
+ s->sym_buf[s->sym_next++] = dist >> 8;
|
||||
+ s->sym_buf[s->sym_next++] = lc;
|
||||
if (dist == 0) {
|
||||
/* lc is the unmatched char */
|
||||
s->dyn_ltree[lc].Freq++;
|
||||
@@ -1033,30 +1034,7 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
|
||||
s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
|
||||
s->dyn_dtree[d_code(dist)].Freq++;
|
||||
}
|
||||
-
|
||||
-#ifdef TRUNCATE_BLOCK
|
||||
- /* Try to guess if it is profitable to stop the current block here */
|
||||
- if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
|
||||
- /* Compute an upper bound for the compressed length */
|
||||
- ulg out_length = (ulg)s->last_lit*8L;
|
||||
- ulg in_length = (ulg)((long)s->strstart - s->block_start);
|
||||
- int dcode;
|
||||
- for (dcode = 0; dcode < D_CODES; dcode++) {
|
||||
- out_length += (ulg)s->dyn_dtree[dcode].Freq *
|
||||
- (5L+extra_dbits[dcode]);
|
||||
- }
|
||||
- out_length >>= 3;
|
||||
- Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
|
||||
- s->last_lit, in_length, out_length,
|
||||
- 100L - out_length*100L/in_length));
|
||||
- if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
|
||||
- }
|
||||
-#endif
|
||||
- return (s->last_lit == s->lit_bufsize-1);
|
||||
- /* We avoid equality with lit_bufsize because of wraparound at 64K
|
||||
- * on 16 bit machines and because stored blocks are restricted to
|
||||
- * 64K-1 bytes.
|
||||
- */
|
||||
+ return (s->sym_next == s->sym_end);
|
||||
}
|
||||
|
||||
/* ===========================================================================
|
||||
@@ -1069,13 +1047,14 @@ local void compress_block(s, ltree, dtree)
|
||||
{
|
||||
unsigned dist; /* distance of matched string */
|
||||
int lc; /* match length or unmatched char (if dist == 0) */
|
||||
- unsigned lx = 0; /* running index in l_buf */
|
||||
+ unsigned sx = 0; /* running index in sym_buf */
|
||||
unsigned code; /* the code to send */
|
||||
int extra; /* number of extra bits to send */
|
||||
|
||||
- if (s->last_lit != 0) do {
|
||||
- dist = s->d_buf[lx];
|
||||
- lc = s->l_buf[lx++];
|
||||
+ if (s->sym_next != 0) do {
|
||||
+ dist = s->sym_buf[sx++] & 0xff;
|
||||
+ dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8;
|
||||
+ lc = s->sym_buf[sx++];
|
||||
if (dist == 0) {
|
||||
send_code(s, lc, ltree); /* send a literal byte */
|
||||
Tracecv(isgraph(lc), (stderr," '%c' ", lc));
|
||||
@@ -1100,11 +1079,10 @@ local void compress_block(s, ltree, dtree)
|
||||
}
|
||||
} /* literal or match pair ? */
|
||||
|
||||
- /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
|
||||
- Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
|
||||
- "pendingBuf overflow");
|
||||
+ /* Check that the overlay between pending_buf and sym_buf is ok: */
|
||||
+ Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow");
|
||||
|
||||
- } while (lx < s->last_lit);
|
||||
+ } while (sx < s->sym_next);
|
||||
|
||||
send_code(s, END_BLOCK, ltree);
|
||||
}
|
||||
@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://zlib.h;beginline=6;endline=23;md5=5377232268e952e9ef6
|
||||
|
||||
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz \
|
||||
file://ldflags-tests.patch \
|
||||
file://CVE-2018-25032.patch \
|
||||
file://run-ptest \
|
||||
"
|
||||
UPSTREAM_CHECK_URI = "http://zlib.net/"
|
||||
|
||||
@@ -37,5 +37,6 @@ SRC_URI = "\
|
||||
file://0016-Check-for-clang-before-checking-gcc-version.patch \
|
||||
file://0017-bfd-Close-the-file-descriptor-if-there-is-no-archive.patch \
|
||||
file://0001-CVE-2021-42574.patch \
|
||||
file://161e87d12167b1e36193385485c1f6ce92f74f02.patch \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
From: Alan Modra <amodra@gmail.com>
|
||||
Date: Wed, 15 Dec 2021 01:18:42 +0000 (+1030)
|
||||
Subject: PR28694, Out-of-bounds write in stab_xcoff_builtin_type
|
||||
CVE: CVE-2021-45078
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=161e87d12167b1e36193385485c1f6ce92f74f02]
|
||||
|
||||
PR28694, Out-of-bounds write in stab_xcoff_builtin_type
|
||||
|
||||
PR 28694
|
||||
* stabs.c (stab_xcoff_builtin_type): Make typenum unsigned.
|
||||
Negate typenum earlier, simplifying bounds checking. Correct
|
||||
off-by-one indexing. Adjust switch cases.
|
||||
---
|
||||
|
||||
diff --git a/binutils/stabs.c b/binutils/stabs.c
|
||||
index 274bfb0e7fa..83ee3ea5fa4 100644
|
||||
--- a/binutils/stabs.c
|
||||
+++ b/binutils/stabs.c
|
||||
@@ -202,7 +202,7 @@ static debug_type stab_find_type (void *, struct stab_handle *, const int *);
|
||||
static bool stab_record_type
|
||||
(void *, struct stab_handle *, const int *, debug_type);
|
||||
static debug_type stab_xcoff_builtin_type
|
||||
- (void *, struct stab_handle *, int);
|
||||
+ (void *, struct stab_handle *, unsigned int);
|
||||
static debug_type stab_find_tagged_type
|
||||
(void *, struct stab_handle *, const char *, int, enum debug_type_kind);
|
||||
static debug_type *stab_demangle_argtypes
|
||||
@@ -3496,166 +3496,167 @@ stab_record_type (void *dhandle ATTRIBUTE_UNUSED, struct stab_handle *info,
|
||||
|
||||
static debug_type
|
||||
stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info,
|
||||
- int typenum)
|
||||
+ unsigned int typenum)
|
||||
{
|
||||
debug_type rettype;
|
||||
const char *name;
|
||||
|
||||
- if (typenum >= 0 || typenum < -XCOFF_TYPE_COUNT)
|
||||
+ typenum = -typenum - 1;
|
||||
+ if (typenum >= XCOFF_TYPE_COUNT)
|
||||
{
|
||||
- fprintf (stderr, _("Unrecognized XCOFF type %d\n"), typenum);
|
||||
+ fprintf (stderr, _("Unrecognized XCOFF type %d\n"), -typenum - 1);
|
||||
return DEBUG_TYPE_NULL;
|
||||
}
|
||||
- if (info->xcoff_types[-typenum] != NULL)
|
||||
- return info->xcoff_types[-typenum];
|
||||
+ if (info->xcoff_types[typenum] != NULL)
|
||||
+ return info->xcoff_types[typenum];
|
||||
|
||||
- switch (-typenum)
|
||||
+ switch (typenum)
|
||||
{
|
||||
- case 1:
|
||||
+ case 0:
|
||||
/* The size of this and all the other types are fixed, defined
|
||||
by the debugging format. */
|
||||
name = "int";
|
||||
rettype = debug_make_int_type (dhandle, 4, false);
|
||||
break;
|
||||
- case 2:
|
||||
+ case 1:
|
||||
name = "char";
|
||||
rettype = debug_make_int_type (dhandle, 1, false);
|
||||
break;
|
||||
- case 3:
|
||||
+ case 2:
|
||||
name = "short";
|
||||
rettype = debug_make_int_type (dhandle, 2, false);
|
||||
break;
|
||||
- case 4:
|
||||
+ case 3:
|
||||
name = "long";
|
||||
rettype = debug_make_int_type (dhandle, 4, false);
|
||||
break;
|
||||
- case 5:
|
||||
+ case 4:
|
||||
name = "unsigned char";
|
||||
rettype = debug_make_int_type (dhandle, 1, true);
|
||||
break;
|
||||
- case 6:
|
||||
+ case 5:
|
||||
name = "signed char";
|
||||
rettype = debug_make_int_type (dhandle, 1, false);
|
||||
break;
|
||||
- case 7:
|
||||
+ case 6:
|
||||
name = "unsigned short";
|
||||
rettype = debug_make_int_type (dhandle, 2, true);
|
||||
break;
|
||||
- case 8:
|
||||
+ case 7:
|
||||
name = "unsigned int";
|
||||
rettype = debug_make_int_type (dhandle, 4, true);
|
||||
break;
|
||||
- case 9:
|
||||
+ case 8:
|
||||
name = "unsigned";
|
||||
rettype = debug_make_int_type (dhandle, 4, true);
|
||||
break;
|
||||
- case 10:
|
||||
+ case 9:
|
||||
name = "unsigned long";
|
||||
rettype = debug_make_int_type (dhandle, 4, true);
|
||||
break;
|
||||
- case 11:
|
||||
+ case 10:
|
||||
name = "void";
|
||||
rettype = debug_make_void_type (dhandle);
|
||||
break;
|
||||
- case 12:
|
||||
+ case 11:
|
||||
/* IEEE single precision (32 bit). */
|
||||
name = "float";
|
||||
rettype = debug_make_float_type (dhandle, 4);
|
||||
break;
|
||||
- case 13:
|
||||
+ case 12:
|
||||
/* IEEE double precision (64 bit). */
|
||||
name = "double";
|
||||
rettype = debug_make_float_type (dhandle, 8);
|
||||
break;
|
||||
- case 14:
|
||||
+ case 13:
|
||||
/* This is an IEEE double on the RS/6000, and different machines
|
||||
with different sizes for "long double" should use different
|
||||
negative type numbers. See stabs.texinfo. */
|
||||
name = "long double";
|
||||
rettype = debug_make_float_type (dhandle, 8);
|
||||
break;
|
||||
- case 15:
|
||||
+ case 14:
|
||||
name = "integer";
|
||||
rettype = debug_make_int_type (dhandle, 4, false);
|
||||
break;
|
||||
- case 16:
|
||||
+ case 15:
|
||||
name = "boolean";
|
||||
rettype = debug_make_bool_type (dhandle, 4);
|
||||
break;
|
||||
- case 17:
|
||||
+ case 16:
|
||||
name = "short real";
|
||||
rettype = debug_make_float_type (dhandle, 4);
|
||||
break;
|
||||
- case 18:
|
||||
+ case 17:
|
||||
name = "real";
|
||||
rettype = debug_make_float_type (dhandle, 8);
|
||||
break;
|
||||
- case 19:
|
||||
+ case 18:
|
||||
/* FIXME */
|
||||
name = "stringptr";
|
||||
rettype = NULL;
|
||||
break;
|
||||
- case 20:
|
||||
+ case 19:
|
||||
/* FIXME */
|
||||
name = "character";
|
||||
rettype = debug_make_int_type (dhandle, 1, true);
|
||||
break;
|
||||
- case 21:
|
||||
+ case 20:
|
||||
name = "logical*1";
|
||||
rettype = debug_make_bool_type (dhandle, 1);
|
||||
break;
|
||||
- case 22:
|
||||
+ case 21:
|
||||
name = "logical*2";
|
||||
rettype = debug_make_bool_type (dhandle, 2);
|
||||
break;
|
||||
- case 23:
|
||||
+ case 22:
|
||||
name = "logical*4";
|
||||
rettype = debug_make_bool_type (dhandle, 4);
|
||||
break;
|
||||
- case 24:
|
||||
+ case 23:
|
||||
name = "logical";
|
||||
rettype = debug_make_bool_type (dhandle, 4);
|
||||
break;
|
||||
- case 25:
|
||||
+ case 24:
|
||||
/* Complex type consisting of two IEEE single precision values. */
|
||||
name = "complex";
|
||||
rettype = debug_make_complex_type (dhandle, 8);
|
||||
break;
|
||||
- case 26:
|
||||
+ case 25:
|
||||
/* Complex type consisting of two IEEE double precision values. */
|
||||
name = "double complex";
|
||||
rettype = debug_make_complex_type (dhandle, 16);
|
||||
break;
|
||||
- case 27:
|
||||
+ case 26:
|
||||
name = "integer*1";
|
||||
rettype = debug_make_int_type (dhandle, 1, false);
|
||||
break;
|
||||
- case 28:
|
||||
+ case 27:
|
||||
name = "integer*2";
|
||||
rettype = debug_make_int_type (dhandle, 2, false);
|
||||
break;
|
||||
- case 29:
|
||||
+ case 28:
|
||||
name = "integer*4";
|
||||
rettype = debug_make_int_type (dhandle, 4, false);
|
||||
break;
|
||||
- case 30:
|
||||
+ case 29:
|
||||
/* FIXME */
|
||||
name = "wchar";
|
||||
rettype = debug_make_int_type (dhandle, 2, false);
|
||||
break;
|
||||
- case 31:
|
||||
+ case 30:
|
||||
name = "long long";
|
||||
rettype = debug_make_int_type (dhandle, 8, false);
|
||||
break;
|
||||
- case 32:
|
||||
+ case 31:
|
||||
name = "unsigned long long";
|
||||
rettype = debug_make_int_type (dhandle, 8, true);
|
||||
break;
|
||||
- case 33:
|
||||
+ case 32:
|
||||
name = "logical*8";
|
||||
rettype = debug_make_bool_type (dhandle, 8);
|
||||
break;
|
||||
- case 34:
|
||||
+ case 33:
|
||||
name = "integer*8";
|
||||
rettype = debug_make_int_type (dhandle, 8, false);
|
||||
break;
|
||||
@@ -3664,9 +3665,7 @@ stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info,
|
||||
}
|
||||
|
||||
rettype = debug_name_type (dhandle, name, rettype);
|
||||
-
|
||||
- info->xcoff_types[-typenum] = rettype;
|
||||
-
|
||||
+ info->xcoff_types[typenum] = rettype;
|
||||
return rettype;
|
||||
}
|
||||
|
||||
@@ -76,6 +76,7 @@ SRC_URI = "\
|
||||
file://0002-CVE-2021-42574.patch \
|
||||
file://0003-CVE-2021-42574.patch \
|
||||
file://0004-CVE-2021-42574.patch \
|
||||
file://0001-CVE-2021-46195.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b"
|
||||
|
||||
|
||||
@@ -193,7 +193,7 @@ do_install () {
|
||||
rm -f *c++*
|
||||
|
||||
# We don't care about the gcc-<version> ones for this
|
||||
rm -f *gcc-?.?*
|
||||
rm -f *gcc-?*.?*
|
||||
|
||||
# Not sure why we end up with these but we don't want them...
|
||||
rm -f ${TARGET_PREFIX}${TARGET_PREFIX}*
|
||||
|
||||
128
meta/recipes-devtools/gcc/gcc/0001-CVE-2021-46195.patch
Normal file
128
meta/recipes-devtools/gcc/gcc/0001-CVE-2021-46195.patch
Normal file
@@ -0,0 +1,128 @@
|
||||
From f10bec5ffa487ad3033ed5f38cfd0fc7d696deab Mon Sep 17 00:00:00 2001
|
||||
From: Nick Clifton <nickc@redhat.com>
|
||||
Date: Mon, 31 Jan 2022 14:28:42 +0000
|
||||
Subject: [PATCH] libiberty: Fix infinite recursion in rust demangler.
|
||||
|
||||
libiberty/
|
||||
PR demangler/98886
|
||||
PR demangler/99935
|
||||
* rust-demangle.c (struct rust_demangler): Add a recursion
|
||||
counter.
|
||||
(demangle_path): Increment/decrement the recursion counter upon
|
||||
entry and exit. Fail if the counter exceeds a fixed limit.
|
||||
(demangle_type): Likewise.
|
||||
(rust_demangle_callback): Initialise the recursion counter,
|
||||
disabling if requested by the option flags.
|
||||
|
||||
CVE: CVE-2021-46195
|
||||
Upstream-Status: Backport
|
||||
[https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=f10bec5ffa487ad3033ed5f38cfd0fc7d696deab]
|
||||
Signed-off-by: Pgowda <pgowda.cve@gmail.com>
|
||||
---
|
||||
libiberty/rust-demangle.c | 47 ++++++++++++++++++++++++++++++++++-----
|
||||
1 file changed, 41 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/libiberty/rust-demangle.c b/libiberty/rust-demangle.c
|
||||
index 18c760491bd..3b24d63892a 100644
|
||||
--- a/libiberty/rust-demangle.c
|
||||
+++ b/libiberty/rust-demangle.c
|
||||
@@ -74,6 +74,12 @@ struct rust_demangler
|
||||
/* Rust mangling version, with legacy mangling being -1. */
|
||||
int version;
|
||||
|
||||
+ /* Recursion depth. */
|
||||
+ unsigned int recursion;
|
||||
+ /* Maximum number of times demangle_path may be called recursively. */
|
||||
+#define RUST_MAX_RECURSION_COUNT 1024
|
||||
+#define RUST_NO_RECURSION_LIMIT ((unsigned int) -1)
|
||||
+
|
||||
uint64_t bound_lifetime_depth;
|
||||
};
|
||||
|
||||
@@ -671,6 +677,15 @@ demangle_path (struct rust_demangler *rdm, int in_value)
|
||||
if (rdm->errored)
|
||||
return;
|
||||
|
||||
+ if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
|
||||
+ {
|
||||
+ ++ rdm->recursion;
|
||||
+ if (rdm->recursion > RUST_MAX_RECURSION_COUNT)
|
||||
+ /* FIXME: There ought to be a way to report
|
||||
+ that the recursion limit has been reached. */
|
||||
+ goto fail_return;
|
||||
+ }
|
||||
+
|
||||
switch (tag = next (rdm))
|
||||
{
|
||||
case 'C':
|
||||
@@ -688,10 +703,7 @@ demangle_path (struct rust_demangler *rdm, int in_value)
|
||||
case 'N':
|
||||
ns = next (rdm);
|
||||
if (!ISLOWER (ns) && !ISUPPER (ns))
|
||||
- {
|
||||
- rdm->errored = 1;
|
||||
- return;
|
||||
- }
|
||||
+ goto fail_return;
|
||||
|
||||
demangle_path (rdm, in_value);
|
||||
|
||||
@@ -776,9 +788,15 @@ demangle_path (struct rust_demangler *rdm, int in_value)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
- rdm->errored = 1;
|
||||
- return;
|
||||
+ goto fail_return;
|
||||
}
|
||||
+ goto pass_return;
|
||||
+
|
||||
+ fail_return:
|
||||
+ rdm->errored = 1;
|
||||
+ pass_return:
|
||||
+ if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
|
||||
+ -- rdm->recursion;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -870,6 +888,19 @@ demangle_type (struct rust_demangler *rdm)
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
|
||||
+ {
|
||||
+ ++ rdm->recursion;
|
||||
+ if (rdm->recursion > RUST_MAX_RECURSION_COUNT)
|
||||
+ /* FIXME: There ought to be a way to report
|
||||
+ that the recursion limit has been reached. */
|
||||
+ {
|
||||
+ rdm->errored = 1;
|
||||
+ -- rdm->recursion;
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
switch (tag)
|
||||
{
|
||||
case 'R':
|
||||
@@ -1030,6 +1061,9 @@ demangle_type (struct rust_demangler *rdm)
|
||||
rdm->next--;
|
||||
demangle_path (rdm, 0);
|
||||
}
|
||||
+
|
||||
+ if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
|
||||
+ -- rdm->recursion;
|
||||
}
|
||||
|
||||
/* A trait in a trait object may have some "existential projections"
|
||||
@@ -1320,6 +1354,7 @@ rust_demangle_callback (const char *mangled, int options,
|
||||
rdm.skipping_printing = 0;
|
||||
rdm.verbose = (options & DMGL_VERBOSE) != 0;
|
||||
rdm.version = 0;
|
||||
+ rdm.recursion = (options & DMGL_NO_RECURSE_LIMIT) ? RUST_NO_RECURSION_LIMIT : 0;
|
||||
rdm.bound_lifetime_depth = 0;
|
||||
|
||||
/* Rust symbols always start with _R (v0) or _ZN (legacy). */
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@@ -12,7 +12,7 @@ INHIBIT_DEFAULT_DEPS = "1"
|
||||
SRCREV = "805517123cbfe33d17c989a18e78c5789fab0437"
|
||||
PV = "20210722+git${SRCPV}"
|
||||
|
||||
SRC_URI = "git://git.savannah.gnu.org/config.git;branch=master \
|
||||
SRC_URI = "git://git.savannah.gnu.org/git/config.git;protocol=https;branch=master \
|
||||
file://gnu-configize.in"
|
||||
S = "${WORKDIR}/git"
|
||||
UPSTREAM_CHECK_COMMITS = "1"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
require go-common.inc
|
||||
|
||||
GO_BASEVERSION = "1.16"
|
||||
PV = "1.16.13"
|
||||
PV = "1.16.15"
|
||||
FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
|
||||
@@ -17,7 +17,7 @@ SRC_URI += "\
|
||||
file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
|
||||
file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
|
||||
"
|
||||
SRC_URI[main.sha256sum] = "b0926654eaeb01ef43816638f42d7b1681f2d3f41b9559f07735522b7afad41a"
|
||||
SRC_URI[main.sha256sum] = "90a08c689279e35f3865ba510998c33a63255c36089b3ec206c912fc0568c3d3"
|
||||
|
||||
# Upstream don't believe it is a signifiant real world issue and will only
|
||||
# fix in 1.17 onwards where we can drop this.
|
||||
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
|
||||
PROVIDES = "go-native"
|
||||
|
||||
SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
|
||||
SRC_URI[go_linux_amd64.sha256sum] = "275fc03c90c13b0bbff13125a43f1f7a9f9c00a0d5a9f2d5b16dbc2fa2c6e12a"
|
||||
SRC_URI[go_linux_arm64.sha256sum] = "3dd8e14837105cbfedf7124c7f8c524ce492748c370036c7316ef99e18d116d7"
|
||||
SRC_URI[go_linux_amd64.sha256sum] = "77c782a633186d78c384f972fb113a43c24be0234c42fef22c2d8c4c4c8e7475"
|
||||
SRC_URI[go_linux_arm64.sha256sum] = "c2f27f0ce5620a9bc2ff3446165d1974ef94e9b885ec12dbfa3c07e0e198b7ce"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://golang.org/dl/"
|
||||
UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
|
||||
@@ -1,7 +1,15 @@
|
||||
|
||||
# Some additional dependencies that the above doesn't manage to figure out
|
||||
RDEPENDS:perl-module-file-spec += "perl-module-file-spec-unix"
|
||||
RDEPENDS:perl-module-io-file += "perl-module-symbol"
|
||||
RDEPENDS:perl-module-math-bigint += "perl-module-math-bigint-calc"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-list-util"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-scalar-util"
|
||||
RDEPENDS:perl-module-test-builder-formatter += "perl-module-test2-formatter-tap"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-fail"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-pass"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-v2"
|
||||
RDEPENDS:perl-module-test2-formatter-tap += "perl-module-test2-formatter"
|
||||
RDEPENDS:perl-module-thread-queue += "perl-module-attributes"
|
||||
RDEPENDS:perl-module-overload += "perl-module-overloading"
|
||||
|
||||
@@ -50,6 +58,7 @@ RDEPENDS:perl-module-archive-tar-constant += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-archive-tar-constant += "perl-module-io-compress-bzip2"
|
||||
RDEPENDS:perl-module-archive-tar-constant += "perl-module-strict"
|
||||
RDEPENDS:perl-module-archive-tar-constant += "perl-module-time-local"
|
||||
RDEPENDS:perl-module-archive-tar-constant += "perl-module-vars"
|
||||
RDEPENDS:perl-module-archive-tar-constant += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-archive-tar-file += "perl-module-archive-tar"
|
||||
RDEPENDS:perl-module-archive-tar-file += "perl-module-archive-tar-constant"
|
||||
@@ -157,6 +166,8 @@ RDEPENDS:perl-module-b-xref += "perl-module-b"
|
||||
RDEPENDS:perl-module-b-xref += "perl-module-config"
|
||||
RDEPENDS:perl-module-b-xref += "perl-module-strict"
|
||||
RDEPENDS:perl-module-bytes += "perl-module-bytes-heavy"
|
||||
RDEPENDS:perl-module-bytes += "perl-module-strict"
|
||||
RDEPENDS:perl-module-bytes += "perl-module-warnings"
|
||||
RDEPENDS:perl-module--charnames += "perl-module-bytes"
|
||||
RDEPENDS:perl-module-charnames += "perl-module-bytes"
|
||||
RDEPENDS:perl-module-charnames += "perl-module--charnames"
|
||||
@@ -245,14 +256,9 @@ RDEPENDS:perl-module-cwd += "perl-module-xsloader"
|
||||
RDEPENDS:perl-module-data-dumper += "perl-module-config"
|
||||
RDEPENDS:perl-module-data-dumper += "perl-module-constant"
|
||||
RDEPENDS:perl-module-data-dumper += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-data-dumper += "perl-module-strict"
|
||||
RDEPENDS:perl-module-data-dumper += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-data-dumper += "perl-module-xsloader"
|
||||
RDEPENDS:perl-module-db-file += "perl-module-dynaloader"
|
||||
RDEPENDS:perl-module-db-file += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-db-file += "perl-module-fcntl"
|
||||
RDEPENDS:perl-module-db-file += "perl-module-strict "
|
||||
RDEPENDS:perl-module-db-file += "perl-module-strict"
|
||||
RDEPENDS:perl-module-db-file += "perl-module-tie-hash"
|
||||
RDEPENDS:perl-module-db-file += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-dbm-filter-compress += "perl-module-strict"
|
||||
RDEPENDS:perl-module-dbm-filter-compress += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-dbm-filter-encode += "perl-module-strict"
|
||||
@@ -281,18 +287,18 @@ RDEPENDS:perl-module-diagnostics += "perl-module-strict"
|
||||
RDEPENDS:perl-module-diagnostics += "perl-module-text-tabs"
|
||||
RDEPENDS:perl-module-digest-base += "perl-module-mime-base64"
|
||||
RDEPENDS:perl-module-digest-base += "perl-module-strict"
|
||||
RDEPENDS:perl-module-digest-base += "perl-module-vars"
|
||||
RDEPENDS:perl-module-digest-base += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-digest-file += "perl-module-digest"
|
||||
RDEPENDS:perl-module-digest-file += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-digest-file += "perl-module-strict"
|
||||
RDEPENDS:perl-module-digest-file += "perl-module-vars"
|
||||
RDEPENDS:perl-module-digest-file += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-digest-md5 += "perl-module-digest-base"
|
||||
RDEPENDS:perl-module-digest-md5 += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-digest-md5 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-digest-md5 += "perl-module-vars"
|
||||
RDEPENDS:perl-module-digest-md5 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-digest-md5 += "perl-module-xsloader"
|
||||
RDEPENDS:perl-module-digest += "perl-module-strict"
|
||||
RDEPENDS:perl-module-digest += "perl-module-vars"
|
||||
RDEPENDS:perl-module-digest += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-digest-sha += "perl-module-digest-base"
|
||||
RDEPENDS:perl-module-digest-sha += "perl-module-dynaloader"
|
||||
RDEPENDS:perl-module-digest-sha += "perl-module-exporter"
|
||||
@@ -444,9 +450,9 @@ RDEPENDS:perl-module-errno += "perl-module-strict"
|
||||
RDEPENDS:perl-module-experimental += "perl-module-strict"
|
||||
RDEPENDS:perl-module-experimental += "perl-module-version"
|
||||
RDEPENDS:perl-module-experimental += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-exporter-heavy += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-exporter-heavy += "perl-module-strict"
|
||||
RDEPENDS:perl-module-exporter += "perl-module-exporter-heavy"
|
||||
RDEPENDS:perl-module-exporter += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-cbuilder-base += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-cbuilder-base += "perl-module-cwd"
|
||||
RDEPENDS:perl-module-extutils-cbuilder-base += "perl-module-dynaloader"
|
||||
@@ -511,6 +517,7 @@ RDEPENDS:perl-module-extutils-command += "perl-module-file-find"
|
||||
RDEPENDS:perl-module-extutils-command += "perl-module-file-path"
|
||||
RDEPENDS:perl-module-extutils-command += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-command += "perl-module-vars"
|
||||
RDEPENDS:perl-module-extutils-command += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-constant-base += "perl-module-constant"
|
||||
RDEPENDS:perl-module-extutils-constant-base += "perl-module-extutils-constant-utils"
|
||||
RDEPENDS:perl-module-extutils-constant-base += "perl-module-strict"
|
||||
@@ -550,7 +557,6 @@ RDEPENDS:perl-module-extutils-installed += "perl-module-extutils-packlist"
|
||||
RDEPENDS:perl-module-extutils-installed += "perl-module-file-basename"
|
||||
RDEPENDS:perl-module-extutils-installed += "perl-module-file-find"
|
||||
RDEPENDS:perl-module-extutils-installed += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-installed += "perl-module-vars"
|
||||
RDEPENDS:perl-module-extutils-install += "perl-module-autosplit"
|
||||
RDEPENDS:perl-module-extutils-install += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-install += "perl-module-cwd"
|
||||
@@ -570,13 +576,16 @@ RDEPENDS:perl-module-extutils-liblist-kid += "perl-module-text-parsewords"
|
||||
RDEPENDS:perl-module-extutils-liblist-kid += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-liblist += "perl-module-extutils-liblist-kid"
|
||||
RDEPENDS:perl-module-extutils-liblist += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-liblist += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-makemaker-config += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-makemaker-config += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-makemaker-config += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-makemaker-locale += "perl-module-base"
|
||||
RDEPENDS:perl-module-extutils-makemaker-locale += "perl-module-encode"
|
||||
RDEPENDS:perl-module-extutils-makemaker-locale += "perl-module-encode-alias"
|
||||
RDEPENDS:perl-module-extutils-makemaker-locale += "perl-module-i18n-langinfo"
|
||||
RDEPENDS:perl-module-extutils-makemaker-locale += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-makemaker-locale += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-makemaker += "perl-module-b"
|
||||
RDEPENDS:perl-module-extutils-makemaker += "perl-module-cpan"
|
||||
RDEPENDS:perl-module-extutils-makemaker += "perl-module-cwd"
|
||||
@@ -589,8 +598,10 @@ RDEPENDS:perl-module-extutils-makemaker += "perl-module-extutils-my"
|
||||
RDEPENDS:perl-module-extutils-makemaker += "perl-module-file-path"
|
||||
RDEPENDS:perl-module-extutils-makemaker += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-makemaker += "perl-module-version"
|
||||
RDEPENDS:perl-module-extutils-makemaker += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-makemaker-version += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-makemaker-version += "perl-module-vars"
|
||||
RDEPENDS:perl-module-extutils-makemaker-version += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-manifest += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-manifest += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-extutils-manifest += "perl-module-file-basename"
|
||||
@@ -606,12 +617,15 @@ RDEPENDS:perl-module-extutils-mkbootstrap += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-mkbootstrap += "perl-module-dynaloader"
|
||||
RDEPENDS:perl-module-extutils-mkbootstrap += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-extutils-mkbootstrap += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mkbootstrap += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mksymlists += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-mksymlists += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-extutils-mksymlists += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mksymlists += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-aix += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm-aix += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-aix += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-aix += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-any += "perl-module-autosplit"
|
||||
RDEPENDS:perl-module-extutils-mm-any += "perl-module-cpan"
|
||||
RDEPENDS:perl-module-extutils-mm-any += "perl-module-data-dumper"
|
||||
@@ -621,35 +635,49 @@ RDEPENDS:perl-module-extutils-mm-any += "perl-module-file-basename"
|
||||
RDEPENDS:perl-module-extutils-mm-any += "perl-module-file-find"
|
||||
RDEPENDS:perl-module-extutils-mm-any += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-any += "perl-module-version"
|
||||
RDEPENDS:perl-module-extutils-mm-any += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-beos += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm-beos += "perl-module-extutils-mm-any"
|
||||
RDEPENDS:perl-module-extutils-mm-beos += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-beos += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-beos += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-cygwin += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm-cygwin += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-cygwin += "perl-module-extutils-mm-win32"
|
||||
RDEPENDS:perl-module-extutils-mm-cygwin += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-cygwin += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-darwin += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-darwin += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-darwin += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-dos += "perl-module-extutils-mm-any"
|
||||
RDEPENDS:perl-module-extutils-mm-dos += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-dos += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-dos += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-macos += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-macos += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-nw5 += "perl-module-extutils-makemaker"
|
||||
RDEPENDS:perl-module-extutils-mm-nw5 += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm-nw5 += "perl-module-extutils-mm-win32"
|
||||
RDEPENDS:perl-module-extutils-mm-nw5 += "perl-module-file-basename"
|
||||
RDEPENDS:perl-module-extutils-mm-nw5 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-nw5 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-os2 += "perl-module-extutils-makemaker"
|
||||
RDEPENDS:perl-module-extutils-mm-os2 += "perl-module-extutils-mm-any"
|
||||
RDEPENDS:perl-module-extutils-mm-os2 += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-os2 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-os2 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-os390 += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm-os390 += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-os390 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-os390 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm += "perl-module-extutils-liblist"
|
||||
RDEPENDS:perl-module-extutils-mm += "perl-module-extutils-makemaker"
|
||||
RDEPENDS:perl-module-extutils-mm += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-qnx += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-qnx += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-qnx += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-unix += "perl-module-cwd"
|
||||
RDEPENDS:perl-module-extutils-mm-unix += "perl-module-encode"
|
||||
RDEPENDS:perl-module-extutils-mm-unix += "perl-module-extutils-liblist"
|
||||
@@ -661,8 +689,10 @@ RDEPENDS:perl-module-extutils-mm-unix += "perl-module-file-find"
|
||||
RDEPENDS:perl-module-extutils-mm-unix += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-unix += "perl-module-vars"
|
||||
RDEPENDS:perl-module-extutils-mm-unix += "perl-module-version"
|
||||
RDEPENDS:perl-module-extutils-mm-unix += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-uwin += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-uwin += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-uwin += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-vms += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-extutils-mm-vms += "perl-module-extutils-liblist-kid"
|
||||
RDEPENDS:perl-module-extutils-mm-vms += "perl-module-extutils-makemaker"
|
||||
@@ -672,23 +702,26 @@ RDEPENDS:perl-module-extutils-mm-vms += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-vms += "perl-module-file-basename"
|
||||
RDEPENDS:perl-module-extutils-mm-vms += "perl-module-file-find"
|
||||
RDEPENDS:perl-module-extutils-mm-vms += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-vms += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-vos += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-vos += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-vos += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-win32 += "perl-module-extutils-makemaker"
|
||||
RDEPENDS:perl-module-extutils-mm-win32 += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm-win32 += "perl-module-extutils-mm-any"
|
||||
RDEPENDS:perl-module-extutils-mm-win32 += "perl-module-extutils-mm-unix"
|
||||
RDEPENDS:perl-module-extutils-mm-win32 += "perl-module-file-basename"
|
||||
RDEPENDS:perl-module-extutils-mm-win32 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-win32 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-mm-win95 += "perl-module-extutils-makemaker-config"
|
||||
RDEPENDS:perl-module-extutils-mm-win95 += "perl-module-extutils-mm-win32"
|
||||
RDEPENDS:perl-module-extutils-mm-win95 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-mm-win95 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-my += "perl-module-extutils-mm"
|
||||
RDEPENDS:perl-module-extutils-my += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-packlist += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-packlist += "perl-module-cwd"
|
||||
RDEPENDS:perl-module-extutils-packlist += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-packlist += "perl-module-vars"
|
||||
RDEPENDS:perl-module-extutils-parsexs-constants += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-parsexs-constants += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-parsexs-countlines += "perl-module-strict"
|
||||
@@ -709,6 +742,9 @@ RDEPENDS:perl-module-extutils-parsexs-utilities += "perl-module-extutils-parsexs
|
||||
RDEPENDS:perl-module-extutils-parsexs-utilities += "perl-module-extutils-typemaps"
|
||||
RDEPENDS:perl-module-extutils-parsexs-utilities += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-parsexs-utilities += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-pl2bat += "perl-module-config"
|
||||
RDEPENDS:perl-module-extutils-pl2bat += "perl-module-strict"
|
||||
RDEPENDS:perl-module-extutils-pl2bat += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-extutils-testlib += "perl-module-cwd"
|
||||
RDEPENDS:perl-module-extutils-testlib += "perl-module-lib"
|
||||
RDEPENDS:perl-module-extutils-testlib += "perl-module-strict"
|
||||
@@ -829,6 +865,8 @@ RDEPENDS:perl-module-filter-util-call += "perl-module-xsloader"
|
||||
RDEPENDS:perl-module-findbin += "perl-module-cwd"
|
||||
RDEPENDS:perl-module-findbin += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-findbin += "perl-module-file-basename"
|
||||
RDEPENDS:perl-module-findbin += "perl-module-strict"
|
||||
RDEPENDS:perl-module-findbin += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-gdbm-file += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-gdbm-file += "perl-module-strict"
|
||||
RDEPENDS:perl-module-gdbm-file += "perl-module-tie-hash"
|
||||
@@ -843,6 +881,8 @@ RDEPENDS:perl-module-getopt-long += "perl-module-text-parsewords"
|
||||
RDEPENDS:perl-module-getopt-long += "perl-module-vars"
|
||||
RDEPENDS:perl-module-getopt-long += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-getopt-std += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-getopt-std += "perl-module-strict"
|
||||
RDEPENDS:perl-module-getopt-std += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-hash-util-fieldhash += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-hash-util-fieldhash += "perl-module-strict"
|
||||
RDEPENDS:perl-module-hash-util-fieldhash += "perl-module-warnings"
|
||||
@@ -867,6 +907,7 @@ RDEPENDS:perl-module-i18n-langtags-detect += "perl-module-strict"
|
||||
RDEPENDS:perl-module-i18n-langtags-list += "perl-module-strict"
|
||||
RDEPENDS:perl-module-i18n-langtags += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-i18n-langtags += "perl-module-strict"
|
||||
RDEPENDS:perl-module-if += "perl-module-strict"
|
||||
RDEPENDS:perl-module-io-compress-adapter-bzip2 += "perl-module-bytes"
|
||||
RDEPENDS:perl-module-io-compress-adapter-bzip2 += "perl-module-compress-raw-bzip2"
|
||||
RDEPENDS:perl-module-io-compress-adapter-bzip2 += "perl-module-io-compress-base-common"
|
||||
@@ -1105,7 +1146,7 @@ RDEPENDS:perl-module-io-zlib += "perl-module-fcntl"
|
||||
RDEPENDS:perl-module-io-zlib += "perl-module-io-handle"
|
||||
RDEPENDS:perl-module-io-zlib += "perl-module-strict"
|
||||
RDEPENDS:perl-module-io-zlib += "perl-module-tie-handle"
|
||||
RDEPENDS:perl-module-io-zlib += "perl-module-vars"
|
||||
RDEPENDS:perl-module-io-zlib += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-ipc-cmd += "perl-module-constant"
|
||||
RDEPENDS:perl-module-ipc-cmd += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-ipc-cmd += "perl-module-extutils-makemaker"
|
||||
@@ -1144,10 +1185,10 @@ RDEPENDS:perl-module-ipc-sharedmem += "perl-module-ipc-sysv"
|
||||
RDEPENDS:perl-module-ipc-sharedmem += "perl-module-strict"
|
||||
RDEPENDS:perl-module-ipc-sharedmem += "perl-module-vars"
|
||||
RDEPENDS:perl-module-ipc-sysv += "perl-module-config"
|
||||
RDEPENDS:perl-module-ipc-sysv += "perl-module-dynaloader"
|
||||
RDEPENDS:perl-module-ipc-sysv += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-ipc-sysv += "perl-module-strict"
|
||||
RDEPENDS:perl-module-ipc-sysv += "perl-module-vars"
|
||||
RDEPENDS:perl-module-ipc-sysv += "perl-module-xsloader"
|
||||
RDEPENDS:perl-module-json-pp-boolean += "perl-module-overload"
|
||||
RDEPENDS:perl-module-json-pp-boolean += "perl-module-strict"
|
||||
RDEPENDS:perl-module-json-pp += "perl-module-b"
|
||||
@@ -1195,6 +1236,8 @@ RDEPENDS:perl-module-locale-maketext += "perl-module-strict"
|
||||
RDEPENDS:perl-module-locale-maketext-simple += "perl-module-base"
|
||||
RDEPENDS:perl-module-locale-maketext-simple += "perl-module-strict"
|
||||
RDEPENDS:perl-module-locale += "perl-module-config"
|
||||
RDEPENDS:perl-module-locale += "perl-module-strict"
|
||||
RDEPENDS:perl-module-locale += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-math-bigfloat += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-math-bigfloat += "perl-module-math-bigint"
|
||||
RDEPENDS:perl-module-math-bigfloat += "perl-module-math-complex"
|
||||
@@ -1251,12 +1294,12 @@ RDEPENDS:perl-module-memoize-sdbm-file += "perl-module-sdbm-file"
|
||||
RDEPENDS:perl-module-memoize-storable += "perl-module-storable"
|
||||
RDEPENDS:perl-module-mime-base64 += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-mime-base64 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-mime-base64 += "perl-module-vars"
|
||||
RDEPENDS:perl-module-mime-base64 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-mime-base64 += "perl-module-xsloader"
|
||||
RDEPENDS:perl-module-mime-quotedprint += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-mime-quotedprint += "perl-module-mime-base64"
|
||||
RDEPENDS:perl-module-mime-quotedprint += "perl-module-strict"
|
||||
RDEPENDS:perl-module-mime-quotedprint += "perl-module-vars"
|
||||
RDEPENDS:perl-module-mime-quotedprint += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-mro += "perl-module-strict"
|
||||
RDEPENDS:perl-module-mro += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-mro += "perl-module-xsloader"
|
||||
@@ -1331,6 +1374,7 @@ RDEPENDS:perl-module-net-ping += "perl-module-posix"
|
||||
RDEPENDS:perl-module-net-ping += "perl-module-socket"
|
||||
RDEPENDS:perl-module-net-ping += "perl-module-strict"
|
||||
RDEPENDS:perl-module-net-ping += "perl-module-time-hires"
|
||||
RDEPENDS:perl-module-net-ping += "perl-module-vars"
|
||||
RDEPENDS:perl-module-net-pop3 += "perl-module-io-socket"
|
||||
RDEPENDS:perl-module-net-pop3 += "perl-module-io-socket-ip"
|
||||
RDEPENDS:perl-module-net-pop3 += "perl-module-mime-base64"
|
||||
@@ -1376,6 +1420,7 @@ RDEPENDS:perl-module-ops += "perl-module-opcode"
|
||||
RDEPENDS:perl-module-overloading += "perl-module-overload-numbers"
|
||||
RDEPENDS:perl-module-overloading += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-overload += "perl-module-mro"
|
||||
RDEPENDS:perl-module-overload += "perl-module-strict"
|
||||
RDEPENDS:perl-module-overload += "perl-module-warnings-register"
|
||||
RDEPENDS:perl-module-params-check += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-params-check += "perl-module-locale-maketext-simple"
|
||||
@@ -1585,7 +1630,6 @@ RDEPENDS:perl-module-pod-text-termcap += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-pod-usage += "perl-module-config"
|
||||
RDEPENDS:perl-module-pod-usage += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-pod-usage += "perl-module-strict"
|
||||
RDEPENDS:perl-module-pod-usage += "perl-module-vars"
|
||||
RDEPENDS:perl-module-posix += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-posix += "perl-module-fcntl"
|
||||
RDEPENDS:perl-module-posix += "perl-module-strict"
|
||||
@@ -1619,6 +1663,8 @@ RDEPENDS:perl-module-socket += "perl-module-xsloader"
|
||||
RDEPENDS:perl-module-sort += "perl-module-strict"
|
||||
RDEPENDS:perl-module-storable += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-storable += "perl-module-io-file"
|
||||
RDEPENDS:perl-module-subs += "perl-module-strict"
|
||||
RDEPENDS:perl-module-subs += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-sub-util += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-sub-util += "perl-module-list-util"
|
||||
RDEPENDS:perl-module-sub-util += "perl-module-strict"
|
||||
@@ -1838,7 +1884,251 @@ RDEPENDS:perl-module-term-complete += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-term-complete += "perl-module-strict"
|
||||
RDEPENDS:perl-module-term-readline += "perl-module-strict"
|
||||
RDEPENDS:perl-module-term-readline += "perl-module-term-cap"
|
||||
RDEPENDS:perl-module-test2-api-breakage += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-breakage += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-api-breakage += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-context += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-context += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-api-context += "perl-module-test2-eventfacet-trace"
|
||||
RDEPENDS:perl-module-test2-api-context += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-api-context += "perl-module-test2-util-externalmeta"
|
||||
RDEPENDS:perl-module-test2-api-context += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-api-context += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-instance += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-instance += "perl-module-test2-api-stack"
|
||||
RDEPENDS:perl-module-test2-api-instance += "perl-module-test2-eventfacet-trace"
|
||||
RDEPENDS:perl-module-test2-api-instance += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-api-instance += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-api-instance += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-list-util"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-storable"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-test2-api-interceptresult-facet"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-test2-api-interceptresult-hub"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-event += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-facet += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-facet += "perl-module-test2-eventfacet"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-facet += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-hub += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-hub += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-hub += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult += "perl-module-storable"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult += "perl-module-test2-api-interceptresult-event"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult += "perl-module-test2-api-interceptresult-hub"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult += "perl-module-test2-api-interceptresult-squasher"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-squasher += "perl-module-list-util"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-squasher += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-squasher += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-api-interceptresult-squasher += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-api-context"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-api-interceptresult"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-bail"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-diag"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-exception"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-eventfacet-trace"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-note"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-ok"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-plan"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-skip"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-subtest"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-event-waiting"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-hub-interceptor"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-hub-interceptor-terminator"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-hub-subtest"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-test2-util-trace"
|
||||
RDEPENDS:perl-module-test2-api += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-api-stack += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-api-stack += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-api-stack += "perl-module-test2-hub"
|
||||
RDEPENDS:perl-module-test2-api-stack += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-bail += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-bail += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-bail += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-diag += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-diag += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-diag += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-encoding += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-encoding += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-encoding += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-exception += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-exception += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-exception += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-about += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-about += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-about += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-amnesty += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-amnesty += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-amnesty += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-assert += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-assert += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-assert += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-control += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-control += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-control += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-error += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-error += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-error += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-hub += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-hub += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-hub += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-info += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-info += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-info += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-info-table += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-info-table += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-info-table += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-meta += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-meta += "perl-module-vars"
|
||||
RDEPENDS:perl-module-test2-eventfacet-meta += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-parent += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-parent += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-parent += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-plan += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-plan += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-plan += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-render += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-render += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-render += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-eventfacet-trace += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-eventfacet-trace += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-eventfacet-trace += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-eventfacet-trace += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-fail += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-fail += "perl-module-test2-event"
|
||||
RDEPENDS:perl-module-test2-event-fail += "perl-module-test2-eventfacet-info"
|
||||
RDEPENDS:perl-module-test2-event-fail += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-fail += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-generic += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-generic += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-generic += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-note += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-note += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-note += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-ok += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-ok += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-ok += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-pass += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-pass += "perl-module-test2-event"
|
||||
RDEPENDS:perl-module-test2-event-pass += "perl-module-test2-eventfacet-info"
|
||||
RDEPENDS:perl-module-test2-event-pass += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-pass += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-about"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-amnesty"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-assert"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-control"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-error"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-hub"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-info"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-meta"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-parent"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-plan"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-eventfacet-trace"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-util-externalmeta"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-test2-util-trace"
|
||||
RDEPENDS:perl-module-test2-event += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-plan += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-plan += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-plan += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-skip += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-skip += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-skip += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-subtest += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-subtest += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-subtest += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-tap-version += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-tap-version += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-tap-version += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-v2 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-v2 += "perl-module-test2-util-facets2legacy"
|
||||
RDEPENDS:perl-module-test2-event-v2 += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-v2 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-event-waiting += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-event-waiting += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-event-waiting += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-formatter += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-formatter += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-formatter += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-formatter-tap += "perl-module-data-dumper"
|
||||
RDEPENDS:perl-module-test2-formatter-tap += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-formatter-tap += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-formatter-tap += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-formatter-tap += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-formatter-tap += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-hub-interceptor += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-hub-interceptor += "perl-module-test2-hub-interceptor-terminator"
|
||||
RDEPENDS:perl-module-test2-hub-interceptor += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-hub-interceptor += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-hub-interceptor-terminator += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-hub-interceptor-terminator += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-hub += "perl-module-list-util"
|
||||
RDEPENDS:perl-module-test2-hub += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-hub += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-hub += "perl-module-test2-util-externalmeta"
|
||||
RDEPENDS:perl-module-test2-hub += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-hub += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-hub-subtest += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-hub-subtest += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-hub-subtest += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-hub-subtest += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-data-dumper"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-file-temp"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-json-pp"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-posix"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-storable"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-test2-event-waiting"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-ipc-driver-files += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-ipc-driver += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-ipc-driver += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-ipc-driver += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test2-ipc-driver += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-ipc += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-ipc += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-ipc += "perl-module-test2-api-instance"
|
||||
RDEPENDS:perl-module-test2-ipc += "perl-module-test2-ipc-driver-files"
|
||||
RDEPENDS:perl-module-test2-ipc += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-ipc += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-tools-tiny += "perl-module-data-dumper"
|
||||
RDEPENDS:perl-module-test2-tools-tiny += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-tools-tiny += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test2-tools-tiny += "perl-module-test2-hub-interceptor"
|
||||
RDEPENDS:perl-module-test2-tools-tiny += "perl-module-test2-hub-interceptor-terminator"
|
||||
RDEPENDS:perl-module-test2-tools-tiny += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test2-tools-tiny += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-util-externalmeta += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-util-externalmeta += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-util-facets2legacy += "perl-module-base"
|
||||
RDEPENDS:perl-module-test2-util-facets2legacy += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-util-facets2legacy += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-util-hashbase += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-util-hashbase += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-util += "perl-module-config"
|
||||
RDEPENDS:perl-module-test2-util += "perl-module-posix"
|
||||
RDEPENDS:perl-module-test2-util += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-util += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test2-util-trace += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test2-util-trace += "perl-module-test2-eventfacet-trace"
|
||||
RDEPENDS:perl-module-test2-util-trace += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test-builder-formatter += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test-builder-formatter += "perl-module-test2-util-hashbase"
|
||||
RDEPENDS:perl-module-test-builder-formatter += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-test-builder-module += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-test-builder-module += "perl-module-strict"
|
||||
@@ -1846,6 +2136,12 @@ RDEPENDS:perl-module-test-builder-module += "perl-module-test-builder"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-data-dumper"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-overload"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-strict"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test2-api"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test2-event-subtest"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test2-hub-subtest"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test2-ipc"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test2-ipc-driver-files"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test2-util"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test-builder-formatter"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-test-builder-tododiag"
|
||||
RDEPENDS:perl-module-test-builder += "perl-module-warnings"
|
||||
@@ -1893,7 +2189,6 @@ RDEPENDS:perl-module-test-tester += "perl-module-vars"
|
||||
RDEPENDS:perl-module-text-abbrev += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-text-balanced += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-text-balanced += "perl-module-overload"
|
||||
RDEPENDS:perl-module-text-balanced += "perl-module-selfloader"
|
||||
RDEPENDS:perl-module-text-balanced += "perl-module-strict"
|
||||
RDEPENDS:perl-module-text-balanced += "perl-module-vars"
|
||||
RDEPENDS:perl-module-text-parsewords += "perl-module-exporter"
|
||||
@@ -1943,7 +2238,6 @@ RDEPENDS:perl-module-tie-refhash += "perl-module-config"
|
||||
RDEPENDS:perl-module-tie-refhash += "perl-module-overload"
|
||||
RDEPENDS:perl-module-tie-refhash += "perl-module-strict"
|
||||
RDEPENDS:perl-module-tie-refhash += "perl-module-tie-hash"
|
||||
RDEPENDS:perl-module-tie-refhash += "perl-module-vars"
|
||||
RDEPENDS:perl-module-tie-scalar += "perl-module-warnings-register"
|
||||
RDEPENDS:perl-module-tie-stdhandle += "perl-module-strict"
|
||||
RDEPENDS:perl-module-tie-stdhandle += "perl-module-tie-handle"
|
||||
@@ -2018,6 +2312,8 @@ RDEPENDS:perl-module-user-pwent += "perl-module-config"
|
||||
RDEPENDS:perl-module-user-pwent += "perl-module-exporter"
|
||||
RDEPENDS:perl-module-user-pwent += "perl-module-strict"
|
||||
RDEPENDS:perl-module-user-pwent += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-utf8 += "perl-module-strict"
|
||||
RDEPENDS:perl-module-utf8 += "perl-module-warnings"
|
||||
RDEPENDS:perl-module-version += "perl-module-strict"
|
||||
RDEPENDS:perl-module-version += "perl-module-version-regex"
|
||||
RDEPENDS:perl-module-version += "perl-module-warnings-register"
|
||||
|
||||
@@ -53,6 +53,7 @@ do_install_ptest() {
|
||||
chown -R root:root ${D}${PTEST_PATH}/samples
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} += "perl-module-carp perl-module-file-spec"
|
||||
RDEPENDS:${PN}-ptest += "perl-module-filehandle perl-module-if perl-module-test perl-module-test-more"
|
||||
|
||||
BBCLASSEXTEND="native nativesdk"
|
||||
|
||||
@@ -348,7 +348,15 @@ do_create_rdepends_inc() {
|
||||
|
||||
# Some additional dependencies that the above doesn't manage to figure out
|
||||
RDEPENDS:${PN}-module-file-spec += "${PN}-module-file-spec-unix"
|
||||
RDEPENDS:${PN}-module-io-file += "${PN}-module-symbol"
|
||||
RDEPENDS:${PN}-module-math-bigint += "${PN}-module-math-bigint-calc"
|
||||
RDEPENDS:${PN}-module-test-builder += "${PN}-module-list-util"
|
||||
RDEPENDS:${PN}-module-test-builder += "${PN}-module-scalar-util"
|
||||
RDEPENDS:${PN}-module-test-builder-formatter += "${PN}-module-test2-formatter-tap"
|
||||
RDEPENDS:${PN}-module-test2-api += "${PN}-module-test2-event-fail"
|
||||
RDEPENDS:${PN}-module-test2-api += "${PN}-module-test2-event-pass"
|
||||
RDEPENDS:${PN}-module-test2-api += "${PN}-module-test2-event-v2"
|
||||
RDEPENDS:${PN}-module-test2-formatter-tap += "${PN}-module-test2-formatter"
|
||||
RDEPENDS:${PN}-module-thread-queue += "${PN}-module-attributes"
|
||||
RDEPENDS:${PN}-module-overload += "${PN}-module-overloading"
|
||||
|
||||
@@ -358,12 +366,12 @@ EOPREAMBLE
|
||||
cp -r packages-split packages-split.new && cd packages-split.new
|
||||
find . -name \*.pm | xargs sed -i '/^=head/,/^=cut/d'
|
||||
egrep -r "^\s*(\<use .*|\<require .*);?" perl-module-* --include="*.pm" | \
|
||||
sed "s/\/.*\.pm: */ += /g;s/[\"\']//g;s/;.*/\"/g;s/+= .*\(require\|use\)\> */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;" | tr [:upper:] [:lower:] | \
|
||||
sed "s/\/.*\.pm: */ += /g;s/[\"\']//g;s/;.*/\"/g;s/+= .*\(require\|use\)\> */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;s/)//;" | tr [:upper:] [:lower:] | \
|
||||
awk '{if ($3 != "\x22"$1"\x22"){ print $0}}'| \
|
||||
grep -v -e "\-vms\-" -e module-5 -e "^$" -e "\\$" -e your -e tk -e autoperl -e html -e http -e parse-cpan -e perl-ostype -e ndbm-file -e module-mac -e fcgi -e lwp -e dbd -e dbix | \
|
||||
sort -u | \
|
||||
sed 's/^/RDEPENDS:/;s/perl-module-/${PN}-module-/g;s/module-\(module-\)/\1/g;s/\(module-load\)-conditional/\1/g;s/encode-configlocal/&-pm/;' | \
|
||||
egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-socket-inet6|module-io-socket-ssl|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-test2|module-text-unidecode|module-unicore|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' | \
|
||||
egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-socket-inet6|module-io-socket-ssl|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-text-unidecode|module-unicore|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' | \
|
||||
egrep -wv '=>|module-algorithm-diff|module-carp|module-c<extutils-mm-unix>|module-l<extutils-mm-unix>|module-encode-hanextra|module-extutils-makemaker-version-regex|module-file-spec|module-io-compress-lzma|module-io-uncompress-unxz|module-locale-maketext-lexicon|module-log-agent|module-meta-notation|module-net-localcfg|module-net-ping-external|module-b-deparse|module-scalar-util|module-some-module|module-symbol|module-uri|module-win32api-file' > ${WORKDIR}/perl-rdepends.generated
|
||||
cat ${WORKDIR}/perl-rdepends.inc ${WORKDIR}/perl-rdepends.generated > ${THISDIR}/files/perl-rdepends.txt
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ SRC_URI:append:class-nativesdk = " \
|
||||
file://older-glibc-symbols.patch"
|
||||
SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa"
|
||||
|
||||
SRCREV = "d34f2f6cedccf8488730001bcbde6bb7499f8814"
|
||||
SRCREV = "2b4b88eb513335b0ece55fe51854693d9b20de35"
|
||||
S = "${WORKDIR}/git"
|
||||
PV = "1.9.0+git${SRCPV}"
|
||||
|
||||
|
||||
@@ -26,8 +26,9 @@ PATCHTOOL:class-native = "patch"
|
||||
|
||||
CLEANBROKEN = "1"
|
||||
|
||||
EXTRA_OECONF = "--with-perl='${USRBINPATH}/env perl' --with-patch=patch"
|
||||
EXTRA_OECONF = "--with-perl='${USRBINPATH}/env perl' --with-patch=patch --without-sendmail"
|
||||
EXTRA_OECONF:append:class-native = " --disable-nls"
|
||||
|
||||
EXTRA_AUTORECONF += "--exclude=aclocal"
|
||||
|
||||
CACHED_CONFIGUREVARS += "ac_cv_path_BASH=/bin/bash ac_cv_path_COLUMN=column"
|
||||
|
||||
@@ -13,7 +13,7 @@ SRC_URI += " \
|
||||
file://0006-Make-gemspecs-reproducible.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "5085dee0ad9f06996a8acec7ebea4a8735e6fac22f22e2d98c3f2bc3bef7e6f1"
|
||||
SRC_URI[sha256sum] = "3586861cb2df56970287f0fd83f274bd92058872d830d15570b36def7f1a92ac"
|
||||
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
|
||||
@@ -83,8 +83,6 @@ do_install_ptest () {
|
||||
-i ${D}${PTEST_PATH}/test/erb/test_erb_command.rb
|
||||
|
||||
cp -r ${S}/include ${D}/${libdir}/ruby/
|
||||
test_case_rb=`grep rubygems/test_case.rb ${B}/.installed.list`
|
||||
sed -i -e 's:../../../test/:../../../ptest/test/:g' ${D}/$test_case_rb
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc"
|
||||
@@ -8,7 +8,7 @@ LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=4e5d1baf6f20559e3bec172226a47e4e \
|
||||
file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 "
|
||||
|
||||
SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https;branch=9.x"
|
||||
SRC_URI = "git://github.com/asciidoc/asciidoc-py;protocol=https;branch=9.x"
|
||||
SRCREV = "9705d428439530104ce55d0ba12e8ef9d1b57ad1"
|
||||
|
||||
DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
|
||||
|
||||
@@ -49,6 +49,7 @@ PACKAGECONFIG[xinetd] = "--with-xinetd=${sysconfdir}/xinetd.d,--without-xinetd,x
|
||||
|
||||
EXTRA_OECONF = " \
|
||||
--enable-dbus \
|
||||
--with-dbusdir=${sysconfdir}/dbus-1 \
|
||||
--enable-browsing \
|
||||
--disable-gssapi \
|
||||
--enable-debug \
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
From a9bd3dec9fde03327a4a2c69dad1036bf9632e20 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Liddell <chris.liddell@artifex.com>
|
||||
Date: Tue, 7 Sep 2021 20:36:12 +0100
|
||||
Subject: [PATCH] Bug 704342: Include device specifier strings in access
|
||||
validation
|
||||
|
||||
for the "%pipe%", %handle%" and %printer% io devices.
|
||||
|
||||
We previously validated only the part after the "%pipe%" Postscript device
|
||||
specifier, but this proved insufficient.
|
||||
|
||||
This rebuilds the original file name string, and validates it complete. The
|
||||
slight complication for "%pipe%" is it can be reached implicitly using
|
||||
"|" so we have to check both prefixes.
|
||||
|
||||
Addresses CVE-2021-3781
|
||||
|
||||
Upstream-Status: Backport[https://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=a9bd3dec9fde03327a4a2c69dad1036bf9632e20]
|
||||
CVE: CVE-2021-3781
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
---
|
||||
base/gdevpipe.c | 22 +++++++++++++++-
|
||||
base/gp_mshdl.c | 11 +++++++-
|
||||
base/gp_msprn.c | 10 ++++++-
|
||||
base/gp_os2pr.c | 13 +++++++++-
|
||||
base/gslibctx.c | 69 ++++++++++---------------------------------------
|
||||
5 files changed, 65 insertions(+), 60 deletions(-)
|
||||
|
||||
diff --git a/base/gdevpipe.c b/base/gdevpipe.c
|
||||
index 96d71f5d8..5bdc485be 100644
|
||||
--- a/base/gdevpipe.c
|
||||
+++ b/base/gdevpipe.c
|
||||
@@ -72,8 +72,28 @@ pipe_fopen(gx_io_device * iodev, const char *fname, const char *access,
|
||||
#else
|
||||
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
|
||||
gs_fs_list_t *fs = ctx->core->fs;
|
||||
+ /* The pipe device can be reached in two ways, explicltly with %pipe%
|
||||
+ or implicitly with "|", so we have to check for both
|
||||
+ */
|
||||
+ char f[gp_file_name_sizeof];
|
||||
+ const char *pipestr = "|";
|
||||
+ const size_t pipestrlen = strlen(pipestr);
|
||||
+ const size_t preflen = strlen(iodev->dname);
|
||||
+ const size_t nlen = strlen(fname);
|
||||
+ int code1;
|
||||
+
|
||||
+ if (preflen + nlen >= gp_file_name_sizeof)
|
||||
+ return_error(gs_error_invalidaccess);
|
||||
+
|
||||
+ memcpy(f, iodev->dname, preflen);
|
||||
+ memcpy(f + preflen, fname, nlen + 1);
|
||||
+
|
||||
+ code1 = gp_validate_path(mem, f, access);
|
||||
+
|
||||
+ memcpy(f, pipestr, pipestrlen);
|
||||
+ memcpy(f + pipestrlen, fname, nlen + 1);
|
||||
|
||||
- if (gp_validate_path(mem, fname, access) != 0)
|
||||
+ if (code1 != 0 && gp_validate_path(mem, f, access) != 0 )
|
||||
return gs_error_invalidfileaccess;
|
||||
|
||||
/*
|
||||
diff --git a/base/gp_mshdl.c b/base/gp_mshdl.c
|
||||
index 2b964ed74..8d87ceadc 100644
|
||||
--- a/base/gp_mshdl.c
|
||||
+++ b/base/gp_mshdl.c
|
||||
@@ -95,8 +95,17 @@ mswin_handle_fopen(gx_io_device * iodev, const char *fname, const char *access,
|
||||
long hfile; /* Correct for Win32, may be wrong for Win64 */
|
||||
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
|
||||
gs_fs_list_t *fs = ctx->core->fs;
|
||||
+ char f[gp_file_name_sizeof];
|
||||
+ const size_t preflen = strlen(iodev->dname);
|
||||
+ const size_t nlen = strlen(fname);
|
||||
|
||||
- if (gp_validate_path(mem, fname, access) != 0)
|
||||
+ if (preflen + nlen >= gp_file_name_sizeof)
|
||||
+ return_error(gs_error_invalidaccess);
|
||||
+
|
||||
+ memcpy(f, iodev->dname, preflen);
|
||||
+ memcpy(f + preflen, fname, nlen + 1);
|
||||
+
|
||||
+ if (gp_validate_path(mem, f, access) != 0)
|
||||
return gs_error_invalidfileaccess;
|
||||
|
||||
/* First we try the open_handle method. */
|
||||
diff --git a/base/gp_msprn.c b/base/gp_msprn.c
|
||||
index ed4827968..746a974f7 100644
|
||||
--- a/base/gp_msprn.c
|
||||
+++ b/base/gp_msprn.c
|
||||
@@ -168,8 +168,16 @@ mswin_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
|
||||
uintptr_t *ptid = &((tid_t *)(iodev->state))->tid;
|
||||
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
|
||||
gs_fs_list_t *fs = ctx->core->fs;
|
||||
+ const size_t preflen = strlen(iodev->dname);
|
||||
+ const size_t nlen = strlen(fname);
|
||||
|
||||
- if (gp_validate_path(mem, fname, access) != 0)
|
||||
+ if (preflen + nlen >= gp_file_name_sizeof)
|
||||
+ return_error(gs_error_invalidaccess);
|
||||
+
|
||||
+ memcpy(pname, iodev->dname, preflen);
|
||||
+ memcpy(pname + preflen, fname, nlen + 1);
|
||||
+
|
||||
+ if (gp_validate_path(mem, pname, access) != 0)
|
||||
return gs_error_invalidfileaccess;
|
||||
|
||||
/* First we try the open_printer method. */
|
||||
diff --git a/base/gp_os2pr.c b/base/gp_os2pr.c
|
||||
index f852c71fc..ba54cde66 100644
|
||||
--- a/base/gp_os2pr.c
|
||||
+++ b/base/gp_os2pr.c
|
||||
@@ -107,9 +107,20 @@ os2_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
|
||||
FILE ** pfile, char *rfname, uint rnamelen)
|
||||
{
|
||||
os2_printer_t *pr = (os2_printer_t *)iodev->state;
|
||||
- char driver_name[256];
|
||||
+ char driver_name[gp_file_name_sizeof];
|
||||
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
|
||||
gs_fs_list_t *fs = ctx->core->fs;
|
||||
+ const size_t preflen = strlen(iodev->dname);
|
||||
+ const int size_t = strlen(fname);
|
||||
+
|
||||
+ if (preflen + nlen >= gp_file_name_sizeof)
|
||||
+ return_error(gs_error_invalidaccess);
|
||||
+
|
||||
+ memcpy(driver_name, iodev->dname, preflen);
|
||||
+ memcpy(driver_name + preflen, fname, nlen + 1);
|
||||
+
|
||||
+ if (gp_validate_path(mem, driver_name, access) != 0)
|
||||
+ return gs_error_invalidfileaccess;
|
||||
|
||||
/* First we try the open_printer method. */
|
||||
/* Note that the loop condition here ensures we don't
|
||||
diff --git a/base/gslibctx.c b/base/gslibctx.c
|
||||
index 6dfed6cd5..318039fad 100644
|
||||
--- a/base/gslibctx.c
|
||||
+++ b/base/gslibctx.c
|
||||
@@ -655,82 +655,39 @@ rewrite_percent_specifiers(char *s)
|
||||
int
|
||||
gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
|
||||
{
|
||||
- char *fp, f[gp_file_name_sizeof];
|
||||
- const int pipe = 124; /* ASCII code for '|' */
|
||||
- const int len = strlen(fname);
|
||||
- int i, code;
|
||||
+ char f[gp_file_name_sizeof];
|
||||
+ int code;
|
||||
|
||||
/* Be sure the string copy will fit */
|
||||
- if (len >= gp_file_name_sizeof)
|
||||
+ if (strlen(fname) >= gp_file_name_sizeof)
|
||||
return gs_error_rangecheck;
|
||||
strcpy(f, fname);
|
||||
- fp = f;
|
||||
/* Try to rewrite any %d (or similar) in the string */
|
||||
rewrite_percent_specifiers(f);
|
||||
- for (i = 0; i < len; i++) {
|
||||
- if (f[i] == pipe) {
|
||||
- fp = &f[i + 1];
|
||||
- /* Because we potentially have to check file permissions at two levels
|
||||
- for the output file (gx_device_open_output_file and the low level
|
||||
- fopen API, if we're using a pipe, we have to add both the full string,
|
||||
- (including the '|', and just the command to which we pipe - since at
|
||||
- the pipe_fopen(), the leading '|' has been stripped.
|
||||
- */
|
||||
- code = gs_add_control_path(mem, gs_permit_file_writing, f);
|
||||
- if (code < 0)
|
||||
- return code;
|
||||
- code = gs_add_control_path(mem, gs_permit_file_control, f);
|
||||
- if (code < 0)
|
||||
- return code;
|
||||
- break;
|
||||
- }
|
||||
- if (!IS_WHITESPACE(f[i]))
|
||||
- break;
|
||||
- }
|
||||
- code = gs_add_control_path(mem, gs_permit_file_control, fp);
|
||||
+
|
||||
+ code = gs_add_control_path(mem, gs_permit_file_control, f);
|
||||
if (code < 0)
|
||||
return code;
|
||||
- return gs_add_control_path(mem, gs_permit_file_writing, fp);
|
||||
+ return gs_add_control_path(mem, gs_permit_file_writing, f);
|
||||
}
|
||||
|
||||
int
|
||||
gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
|
||||
{
|
||||
- char *fp, f[gp_file_name_sizeof];
|
||||
- const int pipe = 124; /* ASCII code for '|' */
|
||||
- const int len = strlen(fname);
|
||||
- int i, code;
|
||||
+ char f[gp_file_name_sizeof];
|
||||
+ int code;
|
||||
|
||||
/* Be sure the string copy will fit */
|
||||
- if (len >= gp_file_name_sizeof)
|
||||
+ if (strlen(fname) >= gp_file_name_sizeof)
|
||||
return gs_error_rangecheck;
|
||||
strcpy(f, fname);
|
||||
- fp = f;
|
||||
/* Try to rewrite any %d (or similar) in the string */
|
||||
- for (i = 0; i < len; i++) {
|
||||
- if (f[i] == pipe) {
|
||||
- fp = &f[i + 1];
|
||||
- /* Because we potentially have to check file permissions at two levels
|
||||
- for the output file (gx_device_open_output_file and the low level
|
||||
- fopen API, if we're using a pipe, we have to add both the full string,
|
||||
- (including the '|', and just the command to which we pipe - since at
|
||||
- the pipe_fopen(), the leading '|' has been stripped.
|
||||
- */
|
||||
- code = gs_remove_control_path(mem, gs_permit_file_writing, f);
|
||||
- if (code < 0)
|
||||
- return code;
|
||||
- code = gs_remove_control_path(mem, gs_permit_file_control, f);
|
||||
- if (code < 0)
|
||||
- return code;
|
||||
- break;
|
||||
- }
|
||||
- if (!IS_WHITESPACE(f[i]))
|
||||
- break;
|
||||
- }
|
||||
- code = gs_remove_control_path(mem, gs_permit_file_control, fp);
|
||||
+ rewrite_percent_specifiers(f);
|
||||
+
|
||||
+ code = gs_remove_control_path(mem, gs_permit_file_control, f);
|
||||
if (code < 0)
|
||||
return code;
|
||||
- return gs_remove_control_path(mem, gs_permit_file_writing, fp);
|
||||
+ return gs_remove_control_path(mem, gs_permit_file_writing, f);
|
||||
}
|
||||
|
||||
int
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
From 2a3129365d3bc0d4a41f107ef175920d1505d1f7 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Liddell <chris.liddell@artifex.com>
|
||||
Date: Tue, 1 Jun 2021 19:57:16 +0100
|
||||
Subject: [PATCH] Bug 703902: Fix op stack management in
|
||||
sampled_data_continue()
|
||||
|
||||
Replace pop() (which does no checking, and doesn't handle stack extension
|
||||
blocks) with ref_stack_pop() which does do all that.
|
||||
|
||||
We still use pop() in one case (it's faster), but we have to later use
|
||||
ref_stack_pop() before calling sampled_data_sample() which also accesses the
|
||||
op stack.
|
||||
|
||||
Fixes:
|
||||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34675
|
||||
|
||||
Upstream-Status: Backported [https://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=2a3129365d3bc0d4a41f107ef175920d1505d1f7]
|
||||
CVE: CVE-2021-45949
|
||||
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
|
||||
---
|
||||
psi/zfsample.c | 16 ++++++++++------
|
||||
1 file changed, 10 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/psi/zfsample.c b/psi/zfsample.c
|
||||
index 0e8e4bc8d..00cd0cfdd 100644
|
||||
--- a/psi/zfsample.c
|
||||
+++ b/psi/zfsample.c
|
||||
@@ -533,15 +533,19 @@ sampled_data_continue(i_ctx_t *i_ctx_p)
|
||||
for (j = 0; j < bps; j++)
|
||||
data_ptr[bps * i + j] = (byte)(cv >> ((bps - 1 - j) * 8)); /* MSB first */
|
||||
}
|
||||
- pop(num_out); /* Move op to base of result values */
|
||||
|
||||
- /* Check if we are done collecting data. */
|
||||
+ pop(num_out); /* Move op to base of result values */
|
||||
|
||||
+ /* From here on, we have to use ref_stack_pop() rather than pop()
|
||||
+ so that it handles stack extension blocks properly, before calling
|
||||
+ sampled_data_sample() which also uses the op stack.
|
||||
+ */
|
||||
+ /* Check if we are done collecting data. */
|
||||
if (increment_cube_indexes(params, penum->indexes)) {
|
||||
if (stack_depth_adjust == 0)
|
||||
- pop(O_STACK_PAD); /* Remove spare stack space */
|
||||
+ ref_stack_pop(&o_stack, O_STACK_PAD); /* Remove spare stack space */
|
||||
else
|
||||
- pop(stack_depth_adjust - num_out);
|
||||
+ ref_stack_pop(&o_stack, stack_depth_adjust - num_out);
|
||||
/* Execute the closing procedure, if given */
|
||||
code = 0;
|
||||
if (esp_finish_proc != 0)
|
||||
@@ -554,11 +558,11 @@ sampled_data_continue(i_ctx_t *i_ctx_p)
|
||||
if ((O_STACK_PAD - stack_depth_adjust) < 0) {
|
||||
stack_depth_adjust = -(O_STACK_PAD - stack_depth_adjust);
|
||||
check_op(stack_depth_adjust);
|
||||
- pop(stack_depth_adjust);
|
||||
+ ref_stack_pop(&o_stack, stack_depth_adjust);
|
||||
}
|
||||
else {
|
||||
check_ostack(O_STACK_PAD - stack_depth_adjust);
|
||||
- push(O_STACK_PAD - stack_depth_adjust);
|
||||
+ ref_stack_push(&o_stack, O_STACK_PAD - stack_depth_adjust);
|
||||
for (i=0;i<O_STACK_PAD - stack_depth_adjust;i++)
|
||||
make_null(op - i);
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -33,6 +33,8 @@ SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/d
|
||||
file://do-not-check-local-libpng-source.patch \
|
||||
file://avoid-host-contamination.patch \
|
||||
file://mkdir-p.patch \
|
||||
file://CVE-2021-45949.patch \
|
||||
file://CVE-2021-3781.patch \
|
||||
"
|
||||
|
||||
SRC_URI = "${SRC_URI_BASE} \
|
||||
|
||||
@@ -34,7 +34,7 @@ EXTRA_OECONF += "--enable-largefile"
|
||||
|
||||
SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[sha256sum] = "9015d109ec00bb9ae1a384b172bf2fc1dff41e2c66e5a9eeddf933af9db37f5a"
|
||||
SRC_URI[sha256sum] = "72788e5f58d16febddfa262a5215e05fc9c79f2670f641ac039e6df44330ef51"
|
||||
|
||||
inherit autotools update-alternatives pkgconfig
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
From e7bbf72544ab62db9c92bfe7bd1155227e78c621 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Borodin <aborodin@vmail.ru>
|
||||
Date: Sat, 28 Aug 2021 11:46:53 +0300
|
||||
Subject: [PATCH] Ticket #4200: fix FTBFS with ncurses build with
|
||||
--disable-widec.
|
||||
|
||||
Upstream-Status: Accepted [https://github.com/MidnightCommander/mc/commit/e7bbf72544]
|
||||
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
|
||||
---
|
||||
lib/tty/tty-ncurses.c | 8 ++++++++
|
||||
lib/tty/tty-ncurses.h | 5 +++++
|
||||
lib/tty/tty-slang.h | 2 ++
|
||||
src/filemanager/boxes.c | 2 ++
|
||||
4 files changed, 17 insertions(+)
|
||||
|
||||
diff --git a/lib/tty/tty-ncurses.c b/lib/tty/tty-ncurses.c
|
||||
index f619c0a7bf31..13058a624208 100644
|
||||
--- a/lib/tty/tty-ncurses.c
|
||||
+++ b/lib/tty/tty-ncurses.c
|
||||
@@ -560,6 +560,7 @@ tty_fill_region (int y, int x, int rows, int cols, unsigned char ch)
|
||||
void
|
||||
tty_colorize_area (int y, int x, int rows, int cols, int color)
|
||||
{
|
||||
+#ifdef ENABLE_SHADOWS
|
||||
cchar_t *ctext;
|
||||
wchar_t wch[10]; /* TODO not sure if the length is correct */
|
||||
attr_t attrs;
|
||||
@@ -585,6 +586,13 @@ tty_colorize_area (int y, int x, int rows, int cols, int color)
|
||||
}
|
||||
|
||||
g_free (ctext);
|
||||
+#else
|
||||
+ (void) y;
|
||||
+ (void) x;
|
||||
+ (void) rows;
|
||||
+ (void) cols;
|
||||
+ (void) color;
|
||||
+#endif /* ENABLE_SHADOWS */
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------- */
|
||||
diff --git a/lib/tty/tty-ncurses.h b/lib/tty/tty-ncurses.h
|
||||
index d75df9533ab9..8feb17ccd045 100644
|
||||
--- a/lib/tty/tty-ncurses.h
|
||||
+++ b/lib/tty/tty-ncurses.h
|
||||
@@ -30,6 +30,11 @@
|
||||
#define NCURSES_CONST const
|
||||
#endif
|
||||
|
||||
+/* do not draw shadows if NCurses is built with --disable-widec */
|
||||
+#if defined(NCURSES_WIDECHAR) && NCURSES_WIDECHAR
|
||||
+#define ENABLE_SHADOWS 1
|
||||
+#endif
|
||||
+
|
||||
/*** typedefs(not structures) and defined constants **********************************************/
|
||||
|
||||
/*** enums ***************************************************************************************/
|
||||
diff --git a/lib/tty/tty-slang.h b/lib/tty/tty-slang.h
|
||||
index 5b12c6512853..eeaade388af4 100644
|
||||
--- a/lib/tty/tty-slang.h
|
||||
+++ b/lib/tty/tty-slang.h
|
||||
@@ -23,6 +23,8 @@
|
||||
#define COLS SLtt_Screen_Cols
|
||||
#define LINES SLtt_Screen_Rows
|
||||
|
||||
+#define ENABLE_SHADOWS 1
|
||||
+
|
||||
/*** enums ***************************************************************************************/
|
||||
|
||||
enum
|
||||
diff --git a/src/filemanager/boxes.c b/src/filemanager/boxes.c
|
||||
index 3eb525be4a9b..98df5ff2ed9a 100644
|
||||
--- a/src/filemanager/boxes.c
|
||||
+++ b/src/filemanager/boxes.c
|
||||
@@ -280,7 +280,9 @@ appearance_box_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm
|
||||
switch (msg)
|
||||
{
|
||||
case MSG_INIT:
|
||||
+#ifdef ENABLE_SHADOWS
|
||||
if (!tty_use_colors ())
|
||||
+#endif
|
||||
{
|
||||
Widget *shadow;
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -11,6 +11,7 @@ RRECOMMENDS:${PN} = "ncurses-terminfo"
|
||||
SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
|
||||
file://0001-mc-replace-perl-w-with-use-warnings.patch \
|
||||
file://nomandate.patch \
|
||||
file://0001-Ticket-4200-fix-FTBFS-with-ncurses-build-with-disabl.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "2f52dd9c75c20d8eac7701bd3a8c6c125aaf8cdd9cf12b78ca50a0102b543407"
|
||||
|
||||
@@ -27,7 +28,9 @@ PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
|
||||
PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
|
||||
|
||||
CFLAGS:append:libc-musl = ' -DNCURSES_WIDECHAR=1 '
|
||||
# enable NCURSES_WIDECHAR=1 only if ENABLE_WIDEC has not been explicitly disabled (e.g. by the distro config).
|
||||
# When compiling against the ncurses library, NCURSES_WIDECHAR needs to explicitly set to 0 in this case.
|
||||
CFLAGS:append:libc-musl = "${@' -DNCURSES_WIDECHAR=1' if bb.utils.to_boolean((d.getVar('ENABLE_WIDEC') or 'True')) else ' -DNCURSES_WIDECHAR=0'}"
|
||||
EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --disable-configure-args"
|
||||
EXTRANATIVEPATH += "file-native"
|
||||
|
||||
|
||||
@@ -1,124 +1,52 @@
|
||||
From 30a3906a0a21120fa6bbc918b6258ab9303fbeaa Mon Sep 17 00:00:00 2001
|
||||
From: Scott Garman <scott.a.garman@intel.com>
|
||||
Date: Thu, 14 Apr 2016 12:28:57 +0200
|
||||
Subject: [PATCH] Disable use of syslog for sysroot
|
||||
From 8b845fff891798a03bdf21354b52e4487c2c0200 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
Date: Thu, 14 Apr 2022 23:11:53 +0000
|
||||
Subject: [PATCH] Disable use of syslog for shadow-native tools
|
||||
|
||||
Disable use of syslog to prevent sysroot user and group additions from
|
||||
writing entries to the host's syslog. This patch should only be used
|
||||
with the shadow-native recipe.
|
||||
|
||||
Upstream-Status: Inappropriate [disable feature]
|
||||
|
||||
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
|
||||
Upstream-Status: Inappropriate [OE specific configuration]
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
|
||||
---
|
||||
src/groupadd.c | 3 +++
|
||||
src/groupdel.c | 3 +++
|
||||
src/groupmems.c | 3 +++
|
||||
src/groupmod.c | 3 +++
|
||||
src/useradd.c | 3 +++
|
||||
src/userdel.c | 4 ++++
|
||||
src/usermod.c | 3 +++
|
||||
7 files changed, 22 insertions(+)
|
||||
configure.ac | 2 +-
|
||||
src/login_nopam.c | 3 ++-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/groupadd.c b/src/groupadd.c
|
||||
index d7f68b1..5fe5f43 100644
|
||||
--- a/src/groupadd.c
|
||||
+++ b/src/groupadd.c
|
||||
@@ -34,6 +34,9 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 5dcae19..b2c58f5 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -204,7 +204,7 @@ AC_DEFINE_UNQUOTED(PASSWD_PROGRAM, "$shadow_cv_passwd_dir/passwd",
|
||||
[Path to passwd program.])
|
||||
|
||||
dnl XXX - quick hack, should disappear before anyone notices :).
|
||||
-AC_DEFINE(USE_SYSLOG, 1, [Define to use syslog().])
|
||||
+#AC_DEFINE(USE_SYSLOG, 1, [Define to use syslog().])
|
||||
if test "$ac_cv_func_ruserok" = "yes"; then
|
||||
AC_DEFINE(RLOGIN, 1, [Define if login should support the -r flag for rlogind.])
|
||||
AC_DEFINE(RUSEROK, 0, [Define to the ruserok() "success" return value (0 or 1).])
|
||||
diff --git a/src/login_nopam.c b/src/login_nopam.c
|
||||
index df6ba88..fc24e13 100644
|
||||
--- a/src/login_nopam.c
|
||||
+++ b/src/login_nopam.c
|
||||
@@ -29,7 +29,6 @@
|
||||
#ifndef USE_PAM
|
||||
#ident "$Id$"
|
||||
|
||||
+/* Disable use of syslog since we're running this command against a sysroot */
|
||||
+#undef USE_SYSLOG
|
||||
-#include "prototypes.h"
|
||||
/*
|
||||
* This module implements a simple but effective form of login access
|
||||
* control based on login names and on host (or domain) names, internet
|
||||
@@ -57,6 +56,8 @@
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h> /* for inet_ntoa() */
|
||||
|
||||
+#include "prototypes.h"
|
||||
+
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
diff --git a/src/groupdel.c b/src/groupdel.c
|
||||
index 5c89312..2aefc5a 100644
|
||||
--- a/src/groupdel.c
|
||||
+++ b/src/groupdel.c
|
||||
@@ -34,6 +34,9 @@
|
||||
|
||||
#ident "$Id$"
|
||||
|
||||
+/* Disable use of syslog since we're running this command against a sysroot */
|
||||
+#undef USE_SYSLOG
|
||||
+
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
#include <grp.h>
|
||||
diff --git a/src/groupmems.c b/src/groupmems.c
|
||||
index 654a8f3..6b2026b 100644
|
||||
--- a/src/groupmems.c
|
||||
+++ b/src/groupmems.c
|
||||
@@ -32,6 +32,9 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
+/* Disable use of syslog since we're running this command against a sysroot */
|
||||
+#undef USE_SYSLOG
|
||||
+
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
#include <grp.h>
|
||||
diff --git a/src/groupmod.c b/src/groupmod.c
|
||||
index acd6f35..a2c5247 100644
|
||||
--- a/src/groupmod.c
|
||||
+++ b/src/groupmod.c
|
||||
@@ -34,6 +34,9 @@
|
||||
|
||||
#ident "$Id$"
|
||||
|
||||
+/* Disable use of syslog since we're running this command against a sysroot */
|
||||
+#undef USE_SYSLOG
|
||||
+
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
diff --git a/src/useradd.c b/src/useradd.c
|
||||
index 127177e..b80e505 100644
|
||||
--- a/src/useradd.c
|
||||
+++ b/src/useradd.c
|
||||
@@ -34,6 +34,9 @@
|
||||
|
||||
#ident "$Id$"
|
||||
|
||||
+/* Disable use of syslog since we're running this command against a sysroot */
|
||||
+#undef USE_SYSLOG
|
||||
+
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
diff --git a/src/userdel.c b/src/userdel.c
|
||||
index 79a7c89..c1e010a 100644
|
||||
--- a/src/userdel.c
|
||||
+++ b/src/userdel.c
|
||||
@@ -31,6 +31,10 @@
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
+
|
||||
+/* Disable use of syslog since we're running this command against a sysroot */
|
||||
+#undef USE_SYSLOG
|
||||
+
|
||||
#include <assert.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
diff --git a/src/usermod.c b/src/usermod.c
|
||||
index 03bb9b9..e15fdd4 100644
|
||||
--- a/src/usermod.c
|
||||
+++ b/src/usermod.c
|
||||
@@ -34,6 +34,9 @@
|
||||
|
||||
#ident "$Id$"
|
||||
|
||||
+/* Disable use of syslog since we're running this command against a sysroot */
|
||||
+#undef USE_SYSLOG
|
||||
+
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#if !defined(MAXHOSTNAMELEN) || (MAXHOSTNAMELEN < 64)
|
||||
#undef MAXHOSTNAMELEN
|
||||
#define MAXHOSTNAMELEN 256
|
||||
|
||||
67
meta/recipes-extended/unzip/unzip/CVE-2021-4217.patch
Normal file
67
meta/recipes-extended/unzip/unzip/CVE-2021-4217.patch
Normal file
@@ -0,0 +1,67 @@
|
||||
From 731d698377dbd1f5b1b90efeb8094602ed59fc40 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Bars <nils.bars@t-online.de>
|
||||
Date: Mon, 17 Jan 2022 16:53:16 +0000
|
||||
Subject: [PATCH] Fix null pointer dereference and use of uninitialized data
|
||||
|
||||
This fixes a bug that causes use of uninitialized heap data if `readbuf` fails
|
||||
to read as many bytes as indicated by the extra field length attribute.
|
||||
Furthermore, this fixes a null pointer dereference if an archive contains an
|
||||
`EF_UNIPATH` extra field but does not have a filename set.
|
||||
---
|
||||
fileio.c | 5 ++++-
|
||||
process.c | 6 +++++-
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
---
|
||||
|
||||
Patch from:
|
||||
https://bugs.launchpad.net/ubuntu/+source/unzip/+bug/1957077
|
||||
https://launchpadlibrarian.net/580782282/0001-Fix-null-pointer-dereference-and-use-of-uninitialized-data.patch
|
||||
Regenerated to apply without offsets.
|
||||
|
||||
CVE: CVE-2021-4217
|
||||
|
||||
Upstream-Status: Pending [infozip upstream inactive]
|
||||
|
||||
Signed-off-by: Joe Slater <joe.slater@windriver.com>
|
||||
|
||||
|
||||
diff --git a/fileio.c b/fileio.c
|
||||
index 14460f3..1dc319e 100644
|
||||
--- a/fileio.c
|
||||
+++ b/fileio.c
|
||||
@@ -2301,8 +2301,11 @@ int do_string(__G__ length, option) /* return PK-type error code */
|
||||
seek_zipf(__G__ G.cur_zipfile_bufstart - G.extra_bytes +
|
||||
(G.inptr-G.inbuf) + length);
|
||||
} else {
|
||||
- if (readbuf(__G__ (char *)G.extra_field, length) == 0)
|
||||
+ unsigned bytes_read = readbuf(__G__ (char *)G.extra_field, length);
|
||||
+ if (bytes_read == 0)
|
||||
return PK_EOF;
|
||||
+ if (bytes_read != length)
|
||||
+ return PK_ERR;
|
||||
/* Looks like here is where extra fields are read */
|
||||
if (getZip64Data(__G__ G.extra_field, length) != PK_COOL)
|
||||
{
|
||||
diff --git a/process.c b/process.c
|
||||
index 5f8f6c6..de843a5 100644
|
||||
--- a/process.c
|
||||
+++ b/process.c
|
||||
@@ -2058,10 +2058,14 @@ int getUnicodeData(__G__ ef_buf, ef_len)
|
||||
G.unipath_checksum = makelong(offset + ef_buf);
|
||||
offset += 4;
|
||||
|
||||
+ if (!G.filename_full) {
|
||||
+ /* Check if we have a unicode extra section but no filename set */
|
||||
+ return PK_ERR;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Compute 32-bit crc
|
||||
*/
|
||||
-
|
||||
chksum = crc32(chksum, (uch *)(G.filename_full),
|
||||
strlen(G.filename_full));
|
||||
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -27,6 +27,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/
|
||||
file://CVE-2019-13232_p2.patch \
|
||||
file://CVE-2019-13232_p3.patch \
|
||||
file://unzip_optimization.patch \
|
||||
file://CVE-2021-4217.patch \
|
||||
"
|
||||
UPSTREAM_VERSION_UNKNOWN = "1"
|
||||
|
||||
|
||||
96
meta/recipes-extended/xz/xz/CVE-2022-1271.patch
Normal file
96
meta/recipes-extended/xz/xz/CVE-2022-1271.patch
Normal file
@@ -0,0 +1,96 @@
|
||||
From dc932a1e9c0d9f1db71be11a9b82496e3a72f112 Mon Sep 17 00:00:00 2001
|
||||
From: Lasse Collin <lasse.collin@tukaani.org>
|
||||
Date: Tue, 29 Mar 2022 19:19:12 +0300
|
||||
Subject: [PATCH] xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
|
||||
|
||||
Malicious filenames can make xzgrep to write to arbitrary files
|
||||
or (with a GNU sed extension) lead to arbitrary code execution.
|
||||
|
||||
xzgrep from XZ Utils versions up to and including 5.2.5 are
|
||||
affected. 5.3.1alpha and 5.3.2alpha are affected as well.
|
||||
This patch works for all of them.
|
||||
|
||||
This bug was inherited from gzip's zgrep. gzip 1.12 includes
|
||||
a fix for zgrep.
|
||||
|
||||
The issue with the old sed script is that with multiple newlines,
|
||||
the N-command will read the second line of input, then the
|
||||
s-commands will be skipped because it's not the end of the
|
||||
file yet, then a new sed cycle starts and the pattern space
|
||||
is printed and emptied. So only the last line or two get escaped.
|
||||
|
||||
One way to fix this would be to read all lines into the pattern
|
||||
space first. However, the included fix is even simpler: All lines
|
||||
except the last line get a backslash appended at the end. To ensure
|
||||
that shell command substitution doesn't eat a possible trailing
|
||||
newline, a colon is appended to the filename before escaping.
|
||||
The colon is later used to separate the filename from the grep
|
||||
output so it is fine to add it here instead of a few lines later.
|
||||
|
||||
The old code also wasn't POSIX compliant as it used \n in the
|
||||
replacement section of the s-command. Using \<newline> is the
|
||||
POSIX compatible method.
|
||||
|
||||
LC_ALL=C was added to the two critical sed commands. POSIX sed
|
||||
manual recommends it when using sed to manipulate pathnames
|
||||
because in other locales invalid multibyte sequences might
|
||||
cause issues with some sed implementations. In case of GNU sed,
|
||||
these particular sed scripts wouldn't have such problems but some
|
||||
other scripts could have, see:
|
||||
|
||||
info '(sed)Locale Considerations'
|
||||
|
||||
This vulnerability was discovered by:
|
||||
cleemy desu wayo working with Trend Micro Zero Day Initiative
|
||||
|
||||
Thanks to Jim Meyering and Paul Eggert discussing the different
|
||||
ways to fix this and for coordinating the patch release schedule
|
||||
with gzip.
|
||||
|
||||
Upstream-Status: Backport [https://tukaani.org/xz/xzgrep-ZDI-CAN-16587.patch]
|
||||
CVE: CVE-2022-1271
|
||||
|
||||
Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
|
||||
---
|
||||
src/scripts/xzgrep.in | 20 ++++++++++++--------
|
||||
1 file changed, 12 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/scripts/xzgrep.in b/src/scripts/xzgrep.in
|
||||
index 9db5c3a..f64dddb 100644
|
||||
--- a/src/scripts/xzgrep.in
|
||||
+++ b/src/scripts/xzgrep.in
|
||||
@@ -179,22 +179,26 @@ for i; do
|
||||
{ test $# -eq 1 || test $no_filename -eq 1; }; then
|
||||
eval "$grep"
|
||||
else
|
||||
+ # Append a colon so that the last character will never be a newline
|
||||
+ # which would otherwise get lost in shell command substitution.
|
||||
+ i="$i:"
|
||||
+
|
||||
+ # Escape & \ | and newlines only if such characters are present
|
||||
+ # (speed optimization).
|
||||
case $i in
|
||||
(*'
|
||||
'* | *'&'* | *'\'* | *'|'*)
|
||||
- i=$(printf '%s\n' "$i" |
|
||||
- sed '
|
||||
- $!N
|
||||
- $s/[&\|]/\\&/g
|
||||
- $s/\n/\\n/g
|
||||
- ');;
|
||||
+ i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/');;
|
||||
esac
|
||||
- sed_script="s|^|$i:|"
|
||||
+
|
||||
+ # $i already ends with a colon so don't add it here.
|
||||
+ sed_script="s|^|$i|"
|
||||
|
||||
# Fail if grep or sed fails.
|
||||
r=$(
|
||||
exec 4>&1
|
||||
- (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&-
|
||||
+ (eval "$grep" 4>&-; echo $? >&4) 3>&- |
|
||||
+ LC_ALL=C sed "$sed_script" >&3 4>&-
|
||||
) || r=2
|
||||
exit $r
|
||||
fi >&3 5>&-
|
||||
@@ -23,7 +23,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a \
|
||||
file://lib/getopt.c;endline=23;md5=2069b0ee710572c03bb3114e4532cd84 \
|
||||
"
|
||||
|
||||
SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz"
|
||||
SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz \
|
||||
file://CVE-2022-1271.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "0d270c997aff29708c74d53f599ef717"
|
||||
SRC_URI[sha256sum] = "f6f4910fd033078738bd82bfba4f49219d03b17eb0794eb91efbae419f4aba10"
|
||||
UPSTREAM_CHECK_REGEX = "xz-(?P<pver>\d+(\.\d+)+)\.tar"
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
From 7a2729ee7f5d9b9d4a0d9b83fe641a2ab03c4ee0 Mon Sep 17 00:00:00 2001
|
||||
From: Joe Slater <joe.slater@windriver.com>
|
||||
Date: Thu, 24 Feb 2022 17:36:59 -0800
|
||||
Subject: [PATCH 1/2] configure: use correct CPP
|
||||
|
||||
configure uses CPP to test that two assembler routines
|
||||
can be built. Unfortunately, it will use /usr/bin/cpp
|
||||
if it exists, invalidating the tests. We use the $CC
|
||||
passed to configure.
|
||||
|
||||
Upstream-Status: Inappropriate [openembedded specific]
|
||||
|
||||
Signed-off-by: Joe Slater <joe.slater@windriver.com>
|
||||
---
|
||||
unix/configure | 15 +++++++++------
|
||||
1 file changed, 9 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/unix/configure b/unix/configure
|
||||
index 73ba803..7e21070 100644
|
||||
--- a/unix/configure
|
||||
+++ b/unix/configure
|
||||
@@ -220,13 +220,16 @@ fi
|
||||
echo Check for the C preprocessor
|
||||
# on SVR4, cc -E does not produce correct assembler files. Need /lib/cpp.
|
||||
CPP="${CC} -E"
|
||||
+
|
||||
+# We should not change CPP for yocto builds.
|
||||
+#
|
||||
# solaris as(1) needs -P, maybe others as well ?
|
||||
-[ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P"
|
||||
-[ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp
|
||||
-[ -f /lib/cpp ] && CPP=/lib/cpp
|
||||
-[ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp
|
||||
-[ -f /xenix ] && CPP="${CC} -E"
|
||||
-[ -f /lynx.os ] && CPP="${CC} -E"
|
||||
+# [ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P"
|
||||
+# [ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp
|
||||
+# [ -f /lib/cpp ] && CPP=/lib/cpp
|
||||
+# [ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp
|
||||
+# [ -f /xenix ] && CPP="${CC} -E"
|
||||
+# [ -f /lynx.os ] && CPP="${CC} -E"
|
||||
|
||||
echo "#include <stdio.h>" > conftest.c
|
||||
$CPP conftest.c >/dev/null 2>/dev/null || CPP="${CC} -E"
|
||||
--
|
||||
2.24.1
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From b0492506d2c28581193906e9d260d4f0451e2c39 Mon Sep 17 00:00:00 2001
|
||||
From: Joe Slater <joe.slater@windriver.com>
|
||||
Date: Thu, 24 Feb 2022 17:46:03 -0800
|
||||
Subject: [PATCH 2/2] configure: support PIC code build
|
||||
|
||||
Disable building match.S. The code requires
|
||||
relocation in .text.
|
||||
|
||||
Upstream-Status: Inappropriate [openembedded specific]
|
||||
|
||||
Signed-off-by: Joe Slater <joe.slater@windriver.com>
|
||||
---
|
||||
unix/configure | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/unix/configure b/unix/configure
|
||||
index 7e21070..1bc698b 100644
|
||||
--- a/unix/configure
|
||||
+++ b/unix/configure
|
||||
@@ -242,8 +242,9 @@ if eval "$CPP match.S > _match.s 2>/dev/null"; then
|
||||
if test ! -s _match.s || grep error < _match.s > /dev/null; then
|
||||
:
|
||||
elif eval "$CC -c _match.s >/dev/null 2>/dev/null" && [ -f _match.o ]; then
|
||||
- CFLAGS="${CFLAGS} -DASMV"
|
||||
- OBJA="match.o"
|
||||
+ # disable match.S for PIC code
|
||||
+ # CFLAGS="${CFLAGS} -DASMV"
|
||||
+ # OBJA="match.o"
|
||||
echo "int foo() { return 0;}" > conftest.c
|
||||
$CC -c conftest.c >/dev/null 2>/dev/null
|
||||
echo Check if compiler generates underlines
|
||||
--
|
||||
2.24.1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user