diff options
227 files changed, 1878 insertions, 8585 deletions
diff --git a/poky/bitbake/contrib/vim/LICENSE.txt b/poky/bitbake/contrib/vim/LICENSE.txt new file mode 100644 index 0000000000..c7d915024d --- /dev/null +++ b/poky/bitbake/contrib/vim/LICENSE.txt @@ -0,0 +1,18 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/poky/bitbake/contrib/vim/ftdetect/bitbake.vim b/poky/bitbake/contrib/vim/ftdetect/bitbake.vim index 200f8ae49b..09fc4dc74c 100644 --- a/poky/bitbake/contrib/vim/ftdetect/bitbake.vim +++ b/poky/bitbake/contrib/vim/ftdetect/bitbake.vim @@ -6,12 +6,12 @@ " " This sets up the syntax highlighting for BitBake files, like .bb, .bbclass and .inc -if &compatible || version < 600 +if &compatible || version < 600 || exists("b:loaded_bitbake_plugin") finish endif " .bb, .bbappend and .bbclass -au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake +au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake " .inc au BufNewFile,BufRead *.inc set filetype=bitbake diff --git a/poky/bitbake/contrib/vim/ftplugin/bitbake.vim b/poky/bitbake/contrib/vim/ftplugin/bitbake.vim index db0d75319a..9e8d3e13ce 100644 --- a/poky/bitbake/contrib/vim/ftplugin/bitbake.vim +++ b/poky/bitbake/contrib/vim/ftplugin/bitbake.vim @@ -1,2 +1,13 @@ -set sts=4 sw=4 et -set cms=#%s +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl cms< sts< sw< et< sua<" + +setlocal commentstring=#\ %s +setlocal softtabstop=4 shiftwidth=4 expandtab +setlocal suffixesadd+=.bb,.bbclass diff --git a/poky/bitbake/contrib/vim/plugin/newbb.vim b/poky/bitbake/contrib/vim/plugin/newbb.vim index 874e338059..3a42027361 100755..100644 --- a/poky/bitbake/contrib/vim/plugin/newbb.vim +++ b/poky/bitbake/contrib/vim/plugin/newbb.vim @@ -10,7 +10,7 @@ " " Will try to use git to find the user name and email -if &compatible || v:version < 600 +if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin") finish endif @@ -25,7 +25,7 @@ endfun fun! <SID>GetUserEmail() let l:user_email = system("git config --get user.email") if v:shell_error - return "unknow@user.org" + return "unknown@user.org" else return substitute(l:user_email, "\n", "", "") endfun @@ -41,6 +41,10 @@ fun! BBHeader() endfun fun! NewBBTemplate() + if line2byte(line('$') + 1) != -1 + return + endif + let l:paste = &paste set nopaste @@ -48,7 +52,7 @@ fun! NewBBTemplate() call BBHeader() " New the bb template - put ='DESCRIPTION = \"\"' + put ='SUMMARY = \"\"' put ='HOMEPAGE = \"\"' put ='LICENSE = \"\"' put ='SECTION = \"\"' @@ -58,7 +62,7 @@ fun! NewBBTemplate() " Go to the first place to edit 0 - /^DESCRIPTION =/ + /^SUMMARY =/ exec "normal 2f\"" if paste == 1 @@ -76,7 +80,7 @@ if v:progname =~ "vimdiff" endif augroup NewBB - au BufNewFile *.bb + au BufNewFile,BufReadPost *.bb \ if g:bb_create_on_empty | \ call NewBBTemplate() | \ endif diff --git a/poky/bitbake/contrib/vim/plugin/newbbappend.vim b/poky/bitbake/contrib/vim/plugin/newbbappend.vim new file mode 100644 index 0000000000..e04174cf62 --- /dev/null +++ b/poky/bitbake/contrib/vim/plugin/newbbappend.vim @@ -0,0 +1,46 @@ +" Vim plugin file +" Purpose: Create a template for new bbappend file +" Author: Joshua Watt <JPEWhacker@gmail.com> +" Copyright: Copyright (C) 2017 Joshua Watt <JPEWhacker@gmail.com> +" +" This file is licensed under the MIT license, see COPYING.MIT in +" this source distribution for the terms. +" + +if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin") + finish +endif + +fun! NewBBAppendTemplate() + if line2byte(line('$') + 1) != -1 + return + endif + + let l:paste = &paste + set nopaste + + " New bbappend template + 0 put ='FILESEXTRAPATHS_prepend := \"${THISDIR}/${PN}:\"' + 2 + + if paste == 1 + set paste + endif +endfun + +if !exists("g:bb_create_on_empty") + let g:bb_create_on_empty = 1 +endif + +" disable in case of vimdiff +if v:progname =~ "vimdiff" + let g:bb_create_on_empty = 0 +endif + +augroup NewBBAppend + au BufNewFile,BufReadPost *.bbappend + \ if g:bb_create_on_empty | + \ call NewBBAppendTemplate() | + \ endif +augroup END + diff --git a/poky/bitbake/contrib/vim/syntax/bitbake.vim b/poky/bitbake/contrib/vim/syntax/bitbake.vim index fb55f91022..f964621ae5 100644 --- a/poky/bitbake/contrib/vim/syntax/bitbake.vim +++ b/poky/bitbake/contrib/vim/syntax/bitbake.vim @@ -12,7 +12,7 @@ " " It's an entirely new type, just has specific syntax in shell and python code -if &compatible || v:version < 600 +if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin") finish endif if exists("b:current_syntax") @@ -58,8 +58,8 @@ syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbV syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python " Vars metadata flags -syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag -syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq +syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.+]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag +syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq " Includes and requires syn keyword bbInclude inherit include require contained @@ -67,15 +67,15 @@ syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest " Add taks and similar -syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained +syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement -syn match bbStatementLine "^\(addtask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest +syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest " OE Important Functions syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained " Generic Functions -syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions +syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions " BitBake shell metadata syn include @shell syntax/sh.vim @@ -83,7 +83,7 @@ if exists("b:current_syntax") unlet b:current_syntax endif syn keyword bbShFakeRootFlag fakeroot contained -syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_${}-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite +syn match bbShFuncDef "^\(fakeroot\s*\)\?\([\.0-9A-Za-z_${}\-\.]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@shell " Python value inside shell functions @@ -91,7 +91,7 @@ syn region shDeref start=+${@+ skip=+\\$+ excludenl end=+}+ contained co " BitBake python metadata syn keyword bbPyFlag python contained -syn match bbPyFuncDef "^\(python\s\+\)\([0-9A-Za-z_${}-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite +syn match bbPyFuncDef "^\(fakeroot\s*\)\?\(python\)\(\s\+[0-9A-Za-z_${}\-\.]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@python " BitBake 'def'd python functions diff --git a/poky/bitbake/lib/bb/msg.py b/poky/bitbake/lib/bb/msg.py index c0b344e323..2d88c4e72d 100644 --- a/poky/bitbake/lib/bb/msg.py +++ b/poky/bitbake/lib/bb/msg.py @@ -280,7 +280,7 @@ def setLoggingConfig(defaultconfig, userconfigfile=None): logconfig = copy.deepcopy(defaultconfig) if userconfigfile: - with open(userconfigfile, 'r') as f: + with open(os.path.normpath(userconfigfile), 'r') as f: if userconfigfile.endswith('.yml') or userconfigfile.endswith('.yaml'): import yaml userconfig = yaml.load(f) diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py index adb34a8cf2..02a261e30c 100644 --- a/poky/bitbake/lib/bb/runqueue.py +++ b/poky/bitbake/lib/bb/runqueue.py @@ -2967,7 +2967,12 @@ class runQueuePipe(): while index != -1 and self.queue.startswith(b"<event>"): try: event = pickle.loads(self.queue[7:index]) - except ValueError as e: + except (ValueError, pickle.UnpicklingError, AttributeError, IndexError) as e: + if isinstance(e, pickle.UnpicklingError) and "truncated" in str(e): + # The pickled data could contain "</event>" so search for the next occurance + # unpickling again, this should be the only way an unpickle error could occur + index = self.queue.find(b"</event>", index + 1) + continue bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[7:index])) bb.event.fire_from_worker(event, self.d) if isinstance(event, taskUniHashUpdate): @@ -2979,7 +2984,7 @@ class runQueuePipe(): while index != -1 and self.queue.startswith(b"<exitcode>"): try: task, status = pickle.loads(self.queue[10:index]) - except ValueError as e: + except (ValueError, pickle.UnpicklingError, AttributeError, IndexError) as e: bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[10:index])) self.rqexec.runqueue_process_waitpid(task, status) found = True diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py index 69aae626eb..83385baf60 100644 --- a/poky/bitbake/lib/bb/server/process.py +++ b/poky/bitbake/lib/bb/server/process.py @@ -331,7 +331,9 @@ class ServerCommunicator(): def runCommand(self, command): self.connection.send(command) if not self.recv.poll(30): - raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server") + logger.note("No reply from server in 30s") + if not self.recv.poll(30): + raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server (60s)") return self.recv.get() def updateFeatureSet(self, featureset): diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py index 872333d7fd..4c63b0baad 100644 --- a/poky/bitbake/lib/bb/siggen.py +++ b/poky/bitbake/lib/bb/siggen.py @@ -14,6 +14,7 @@ import simplediff from bb.checksum import FileChecksumCache from bb import runqueue import hashserv +import hashserv.client logger = logging.getLogger('BitBake.SigGen') hashequiv_logger = logging.getLogger('BitBake.SigGen.HashEquiv') diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py index d13a124983..ffbaf362e8 100644 --- a/poky/bitbake/lib/bb/taskdata.py +++ b/poky/bitbake/lib/bb/taskdata.py @@ -21,8 +21,13 @@ def re_match_strings(target, strings): Whether or not the string 'target' matches any one string of the strings which can be regular expression string """ - return any(name == target or re.match(name, target) - for name in strings) + for name in strings: + if name.startswith("^") or name.endswith("$"): + if re.match(name, target): + return True + elif name == target: + return True + return False class TaskEntry: def __init__(self): diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py index 4697ef59b5..29c96b2b45 100644 --- a/poky/bitbake/lib/bb/tests/fetch.py +++ b/poky/bitbake/lib/bb/tests/fetch.py @@ -1031,7 +1031,7 @@ class SVNTest(FetcherTest): bb.process.run("svn co %s svnfetch_co" % self.repo_url, cwd=self.tempdir) # Github will emulate SVN. Use this to check if we're downloding... - bb.process.run("svn propset svn:externals 'bitbake http://github.com/openembedded/bitbake' .", + bb.process.run("svn propset svn:externals 'bitbake svn://vcs.pcre.org/pcre2/code' .", cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk')) bb.process.run("svn commit --non-interactive -m 'Add external'", cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk')) diff --git a/poky/bitbake/lib/bb/ui/taskexp.py b/poky/bitbake/lib/bb/ui/taskexp.py index 8fff244235..05e32338c2 100644 --- a/poky/bitbake/lib/bb/ui/taskexp.py +++ b/poky/bitbake/lib/bb/ui/taskexp.py @@ -8,9 +8,16 @@ # import sys -import gi -gi.require_version('Gtk', '3.0') -from gi.repository import Gtk, Gdk, GObject + +try: + import gi + gi.require_version('Gtk', '3.0') + from gi.repository import Gtk, Gdk, GObject +except ValueError: + sys.exit("FATAL: Gtk version needs to be 3.0") +except ImportError: + sys.exit("FATAL: Gtk ui could not load the required gi python module") + import threading from xmlrpc import client import bb diff --git a/poky/bitbake/lib/bb/ui/teamcity.py b/poky/bitbake/lib/bb/ui/teamcity.py index 1854292fa1..fca46c2874 100644 --- a/poky/bitbake/lib/bb/ui/teamcity.py +++ b/poky/bitbake/lib/bb/ui/teamcity.py @@ -167,8 +167,6 @@ def main(server, eventHandler, params): forcelevel = bb.msg.BBLogFormatter.ERROR else: forcelevel = bb.msg.BBLogFormatter.WARNING - bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut, forcelevel) - bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr) console.setFormatter(format) errconsole.setFormatter(format) if not bb.msg.has_console_handler(logger): diff --git a/poky/bitbake/lib/hashserv/__init__.py b/poky/bitbake/lib/hashserv/__init__.py index c3318620f5..f95e8f43f1 100644 --- a/poky/bitbake/lib/hashserv/__init__.py +++ b/poky/bitbake/lib/hashserv/__init__.py @@ -6,12 +6,20 @@ from contextlib import closing import re import sqlite3 +import itertools +import json UNIX_PREFIX = "unix://" ADDR_TYPE_UNIX = 0 ADDR_TYPE_TCP = 1 +# The Python async server defaults to a 64K receive buffer, so we hardcode our +# maximum chunk size. It would be better if the client and server reported to +# each other what the maximum chunk sizes were, but that will slow down the +# connection setup with a round trip delay so I'd rather not do that unless it +# is necessary +DEFAULT_MAX_CHUNK = 32 * 1024 def setup_database(database, sync=True): db = sqlite3.connect(database) @@ -66,6 +74,20 @@ def parse_address(addr): return (ADDR_TYPE_TCP, (host, int(port))) +def chunkify(msg, max_chunk): + if len(msg) < max_chunk - 1: + yield ''.join((msg, "\n")) + else: + yield ''.join((json.dumps({ + 'chunk-stream': None + }), "\n")) + + args = [iter(msg)] * (max_chunk - 1) + for m in map(''.join, itertools.zip_longest(*args, fillvalue='')): + yield ''.join(itertools.chain(m, "\n")) + yield "\n" + + def create_server(addr, dbname, *, sync=True): from . import server db = setup_database(dbname, sync=sync) diff --git a/poky/bitbake/lib/hashserv/client.py b/poky/bitbake/lib/hashserv/client.py index 46085d6418..a29af836d9 100644 --- a/poky/bitbake/lib/hashserv/client.py +++ b/poky/bitbake/lib/hashserv/client.py @@ -7,6 +7,7 @@ import json import logging import socket import os +from . import chunkify, DEFAULT_MAX_CHUNK logger = logging.getLogger('hashserv.client') @@ -25,6 +26,7 @@ class Client(object): self.reader = None self.writer = None self.mode = self.MODE_NORMAL + self.max_chunk = DEFAULT_MAX_CHUNK def connect_tcp(self, address, port): def connect_sock(): @@ -58,7 +60,7 @@ class Client(object): self.reader = self._socket.makefile('r', encoding='utf-8') self.writer = self._socket.makefile('w', encoding='utf-8') - self.writer.write('OEHASHEQUIV 1.0\n\n') + self.writer.write('OEHASHEQUIV 1.1\n\n') self.writer.flush() # Restore mode if the socket is being re-created @@ -91,18 +93,35 @@ class Client(object): count += 1 def send_message(self, msg): + def get_line(): + line = self.reader.readline() + if not line: + raise HashConnectionError('Connection closed') + + if not line.endswith('\n'): + raise HashConnectionError('Bad message %r' % message) + + return line + def proc(): - self.writer.write('%s\n' % json.dumps(msg)) + for c in chunkify(json.dumps(msg), self.max_chunk): + self.writer.write(c) self.writer.flush() - l = self.reader.readline() - if not l: - raise HashConnectionError('Connection closed') + l = get_line() - if not l.endswith('\n'): - raise HashConnectionError('Bad message %r' % message) + m = json.loads(l) + if 'chunk-stream' in m: + lines = [] + while True: + l = get_line().rstrip('\n') + if not l: + break + lines.append(l) - return json.loads(l) + m = json.loads(''.join(lines)) + + return m return self._send_wrapper(proc) @@ -155,6 +174,14 @@ class Client(object): m['unihash'] = unihash return self.send_message({'report-equiv': m}) + def get_taskhash(self, method, taskhash, all_properties=False): + self._set_mode(self.MODE_NORMAL) + return self.send_message({'get': { + 'taskhash': taskhash, + 'method': method, + 'all': all_properties + }}) + def get_stats(self): self._set_mode(self.MODE_NORMAL) return self.send_message({'get-stats': None}) diff --git a/poky/bitbake/lib/hashserv/server.py b/poky/bitbake/lib/hashserv/server.py index cc7e48233b..81050715ea 100644 --- a/poky/bitbake/lib/hashserv/server.py +++ b/poky/bitbake/lib/hashserv/server.py @@ -13,6 +13,7 @@ import os import signal import socket import time +from . import chunkify, DEFAULT_MAX_CHUNK logger = logging.getLogger('hashserv.server') @@ -107,12 +108,29 @@ class Stats(object): return {k: getattr(self, k) for k in ('num', 'total_time', 'max_time', 'average', 'stdev')} +class ClientError(Exception): + pass + class ServerClient(object): + FAST_QUERY = 'SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1' + ALL_QUERY = 'SELECT * FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1' + def __init__(self, reader, writer, db, request_stats): self.reader = reader self.writer = writer self.db = db self.request_stats = request_stats + self.max_chunk = DEFAULT_MAX_CHUNK + + self.handlers = { + 'get': self.handle_get, + 'report': self.handle_report, + 'report-equiv': self.handle_equivreport, + 'get-stream': self.handle_get_stream, + 'get-stats': self.handle_get_stats, + 'reset-stats': self.handle_reset_stats, + 'chunk-stream': self.handle_chunk, + } async def process_requests(self): try: @@ -125,7 +143,11 @@ class ServerClient(object): return (proto_name, proto_version) = protocol.decode('utf-8').rstrip().split() - if proto_name != 'OEHASHEQUIV' or proto_version != '1.0': + if proto_name != 'OEHASHEQUIV': + return + + proto_version = tuple(int(v) for v in proto_version.split('.')) + if proto_version < (1, 0) or proto_version > (1, 1): return # Read headers. Currently, no headers are implemented, so look for @@ -140,40 +162,34 @@ class ServerClient(object): break # Handle messages - handlers = { - 'get': self.handle_get, - 'report': self.handle_report, - 'report-equiv': self.handle_equivreport, - 'get-stream': self.handle_get_stream, - 'get-stats': self.handle_get_stats, - 'reset-stats': self.handle_reset_stats, - } - while True: d = await self.read_message() if d is None: break - - for k in handlers.keys(): - if k in d: - logger.debug('Handling %s' % k) - if 'stream' in k: - await handlers[k](d[k]) - else: - with self.request_stats.start_sample() as self.request_sample, \ - self.request_sample.measure(): - await handlers[k](d[k]) - break - else: - logger.warning("Unrecognized command %r" % d) - break - + await self.dispatch_message(d) await self.writer.drain() + except ClientError as e: + logger.error(str(e)) finally: self.writer.close() + async def dispatch_message(self, msg): + for k in self.handlers.keys(): + if k in msg: + logger.debug('Handling %s' % k) + if 'stream' in k: + await self.handlers[k](msg[k]) + else: + with self.request_stats.start_sample() as self.request_sample, \ + self.request_sample.measure(): + await self.handlers[k](msg[k]) + return + + raise ClientError("Unrecognized command %r" % msg) + def write_message(self, msg): - self.writer.write(('%s\n' % json.dumps(msg)).encode('utf-8')) + for c in chunkify(json.dumps(msg), self.max_chunk): + self.writer.write(c.encode('utf-8')) async def read_message(self): l = await self.reader.readline() @@ -191,14 +207,38 @@ class ServerClient(object): logger.error('Bad message from client: %r' % message) raise e + async def handle_chunk(self, request): + lines = [] + try: + while True: + l = await self.reader.readline() + l = l.rstrip(b"\n").decode("utf-8") + if not l: + break + lines.append(l) + + msg = json.loads(''.join(lines)) + except (json.JSONDecodeError, UnicodeDecodeError) as e: + logger.error('Bad message from client: %r' % message) + raise e + + if 'chunk-stream' in msg: + raise ClientError("Nested chunks are not allowed") + + await self.dispatch_message(msg) + async def handle_get(self, request): method = request['method'] taskhash = request['taskhash'] - row = self.query_equivalent(method, taskhash) + if request.get('all', False): + row = self.query_equivalent(method, taskhash, self.ALL_QUERY) + else: + row = self.query_equivalent(method, taskhash, self.FAST_QUERY) + if row is not None: logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash'])) - d = {k: row[k] for k in ('taskhash', 'method', 'unihash')} + d = {k: row[k] for k in row.keys()} self.write_message(d) else: @@ -228,7 +268,7 @@ class ServerClient(object): (method, taskhash) = l.split() #logger.debug('Looking up %s %s' % (method, taskhash)) - row = self.query_equivalent(method, taskhash) + row = self.query_equivalent(method, taskhash, self.FAST_QUERY) if row is not None: msg = ('%s\n' % row['unihash']).encode('utf-8') #logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash'])) @@ -328,7 +368,7 @@ class ServerClient(object): # Fetch the unihash that will be reported for the taskhash. If the # unihash matches, it means this row was inserted (or the mapping # was already valid) - row = self.query_equivalent(data['method'], data['taskhash']) + row = self.query_equivalent(data['method'], data['taskhash'], self.FAST_QUERY) if row['unihash'] == data['unihash']: logger.info('Adding taskhash equivalence for %s with unihash %s', @@ -354,12 +394,11 @@ class ServerClient(object): self.request_stats.reset() self.write_message(d) - def query_equivalent(self, method, taskhash): + def query_equivalent(self, method, taskhash, query): # This is part of the inner loop and must be as fast as possible try: cursor = self.db.cursor() - cursor.execute('SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1', - {'method': method, 'taskhash': taskhash}) + cursor.execute(query, {'method': method, 'taskhash': taskhash}) return cursor.fetchone() except: cursor.close() diff --git a/poky/bitbake/lib/hashserv/tests.py b/poky/bitbake/lib/hashserv/tests.py index a5472a996d..6e86295079 100644 --- a/poky/bitbake/lib/hashserv/tests.py +++ b/poky/bitbake/lib/hashserv/tests.py @@ -99,6 +99,29 @@ class TestHashEquivalenceServer(object): result = self.client.get_unihash(self.METHOD, taskhash) self.assertEqual(result, unihash) + def test_huge_message(self): + # Simple test that hashes can be created + taskhash = 'c665584ee6817aa99edfc77a44dd853828279370' + outhash = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44' + unihash = '90e9bc1d1f094c51824adca7f8ea79a048d68824' + + result = self.client.get_unihash(self.METHOD, taskhash) + self.assertIsNone(result, msg='Found unexpected task, %r' % result) + + siginfo = "0" * (self.client.max_chunk * 4) + + result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash, { + 'outhash_siginfo': siginfo + }) + self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') + + result = self.client.get_taskhash(self.METHOD, taskhash, True) + self.assertEqual(result['taskhash'], taskhash) + self.assertEqual(result['unihash'], unihash) + self.assertEqual(result['method'], self.METHOD) + self.assertEqual(result['outhash'], outhash) + self.assertEqual(result['outhash_siginfo'], siginfo) + def test_stress(self): def query_server(failures): client = Client(self.server.address) diff --git a/poky/documentation/mega-manual/mega-manual-customization.xsl b/poky/documentation/mega-manual/mega-manual-customization.xsl index b52b5b2aa3..33a6e16325 100644 --- a/poky/documentation/mega-manual/mega-manual-customization.xsl +++ b/poky/documentation/mega-manual/mega-manual-customization.xsl @@ -1,4 +1,5 @@ <?xml version='1.0'?> +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" /> diff --git a/poky/documentation/mega-manual/mega-manual.xml b/poky/documentation/mega-manual/mega-manual.xml index e730f72596..d9912fa442 100755 --- a/poky/documentation/mega-manual/mega-manual.xml +++ b/poky/documentation/mega-manual/mega-manual.xml @@ -1,7 +1,7 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > - +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <book id='mega-manual' lang='en' xmlns:xi="http://www.w3.org/2003/XInclude" diff --git a/poky/documentation/mega-manual/mega-style.css b/poky/documentation/mega-manual/mega-style.css index cd71eb6425..7748320fb2 100644 --- a/poky/documentation/mega-manual/mega-style.css +++ b/poky/documentation/mega-manual/mega-style.css @@ -1,4 +1,6 @@ /* + SPDX-License-Identifier: CC-BY-2.0-UK + Generic XHTML / DocBook XHTML CSS Stylesheet. Browser wrangling and typographic design by diff --git a/poky/documentation/overview-manual/overview-manual-concepts.xml b/poky/documentation/overview-manual/overview-manual-concepts.xml index f085dd710d..58b64bd269 100644 --- a/poky/documentation/overview-manual/overview-manual-concepts.xml +++ b/poky/documentation/overview-manual/overview-manual-concepts.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id=' overview-manual-concepts'> <title>Yocto Project Concepts</title> diff --git a/poky/documentation/overview-manual/overview-manual-customization.xsl b/poky/documentation/overview-manual/overview-manual-customization.xsl index 22360e7bab..1dd91bde80 100644 --- a/poky/documentation/overview-manual/overview-manual-customization.xsl +++ b/poky/documentation/overview-manual/overview-manual-customization.xsl @@ -1,4 +1,6 @@ <?xml version='1.0'?> +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" /> diff --git a/poky/documentation/overview-manual/overview-manual-development-environment.xml b/poky/documentation/overview-manual/overview-manual-development-environment.xml index 36ebf8a321..8415d1dd70 100644 --- a/poky/documentation/overview-manual/overview-manual-development-environment.xml +++ b/poky/documentation/overview-manual/overview-manual-development-environment.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='overview-development-environment'> <title>The Yocto Project Development Environment</title> diff --git a/poky/documentation/overview-manual/overview-manual-intro.xml b/poky/documentation/overview-manual/overview-manual-intro.xml index 39433aa41b..0e0bfed6e5 100644 --- a/poky/documentation/overview-manual/overview-manual-intro.xml +++ b/poky/documentation/overview-manual/overview-manual-intro.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='overview-manual-intro'> diff --git a/poky/documentation/overview-manual/overview-manual-style.css b/poky/documentation/overview-manual/overview-manual-style.css index 97a364b125..eec934161a 100644 --- a/poky/documentation/overview-manual/overview-manual-style.css +++ b/poky/documentation/overview-manual/overview-manual-style.css @@ -1,4 +1,6 @@ /* + SPDX-License-Identifier: CC-BY-2.0-UK + Generic XHTML / DocBook XHTML CSS Stylesheet. Browser wrangling and typographic design by diff --git a/poky/documentation/overview-manual/overview-manual-yp-intro.xml b/poky/documentation/overview-manual/overview-manual-yp-intro.xml index 1b60a30302..2097ed36e5 100644 --- a/poky/documentation/overview-manual/overview-manual-yp-intro.xml +++ b/poky/documentation/overview-manual/overview-manual-yp-intro.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='overview-yp'> <title>Introducing the Yocto Project</title> diff --git a/poky/documentation/overview-manual/overview-manual.xml b/poky/documentation/overview-manual/overview-manual.xml index 210d644b3d..8021a2e95e 100755 --- a/poky/documentation/overview-manual/overview-manual.xml +++ b/poky/documentation/overview-manual/overview-manual.xml @@ -1,6 +1,7 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <book id='overview-manual' lang='en' xmlns:xi="http://www.w3.org/2003/XInclude" diff --git a/poky/documentation/ref-manual/faq.xml b/poky/documentation/ref-manual/faq.xml index d94cb32a86..98ae0a975b 100644 --- a/poky/documentation/ref-manual/faq.xml +++ b/poky/documentation/ref-manual/faq.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='faq'> <title>FAQ</title> diff --git a/poky/documentation/ref-manual/migration.xml b/poky/documentation/ref-manual/migration.xml index affc8b90a7..d3d5b16bdd 100644 --- a/poky/documentation/ref-manual/migration.xml +++ b/poky/documentation/ref-manual/migration.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='migration'> <title>Migrating to a Newer Yocto Project Release</title> diff --git a/poky/documentation/ref-manual/ref-classes.xml b/poky/documentation/ref-manual/ref-classes.xml index f8920d8c1b..ab12373ae0 100644 --- a/poky/documentation/ref-manual/ref-classes.xml +++ b/poky/documentation/ref-manual/ref-classes.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-classes'> <title>Classes</title> diff --git a/poky/documentation/ref-manual/ref-devtool-reference.xml b/poky/documentation/ref-manual/ref-devtool-reference.xml index 11f7399c5a..6c3ccc3034 100644 --- a/poky/documentation/ref-manual/ref-devtool-reference.xml +++ b/poky/documentation/ref-manual/ref-devtool-reference.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-devtool-reference'> <title><filename>devtool</filename> Quick Reference</title> diff --git a/poky/documentation/ref-manual/ref-features.xml b/poky/documentation/ref-manual/ref-features.xml index 294b297c20..8cab5ec3a8 100644 --- a/poky/documentation/ref-manual/ref-features.xml +++ b/poky/documentation/ref-manual/ref-features.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-features'> <title>Features</title> diff --git a/poky/documentation/ref-manual/ref-images.xml b/poky/documentation/ref-manual/ref-images.xml index 1f96186c6e..aaeda55226 100644 --- a/poky/documentation/ref-manual/ref-images.xml +++ b/poky/documentation/ref-manual/ref-images.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-images'> <title>Images</title> diff --git a/poky/documentation/ref-manual/ref-kickstart.xml b/poky/documentation/ref-manual/ref-kickstart.xml index 1128bd50d0..45db1c0ff8 100644 --- a/poky/documentation/ref-manual/ref-kickstart.xml +++ b/poky/documentation/ref-manual/ref-kickstart.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-kickstart'> <title>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</title> diff --git a/poky/documentation/ref-manual/ref-manual-customization.xsl b/poky/documentation/ref-manual/ref-manual-customization.xsl index c58dd905b9..3181f618e2 100644 --- a/poky/documentation/ref-manual/ref-manual-customization.xsl +++ b/poky/documentation/ref-manual/ref-manual-customization.xsl @@ -1,4 +1,6 @@ <?xml version='1.0'?> +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" /> diff --git a/poky/documentation/ref-manual/ref-qa-checks.xml b/poky/documentation/ref-manual/ref-qa-checks.xml index 424a19c59d..0071e4a55d 100644 --- a/poky/documentation/ref-manual/ref-qa-checks.xml +++ b/poky/documentation/ref-manual/ref-qa-checks.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-qa-checks'> <title>QA Error and Warning Messages</title> diff --git a/poky/documentation/ref-manual/ref-release-process.xml b/poky/documentation/ref-manual/ref-release-process.xml index 5efe17417a..87f5308067 100644 --- a/poky/documentation/ref-manual/ref-release-process.xml +++ b/poky/documentation/ref-manual/ref-release-process.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-release-process'> <title>Yocto Project Releases and the Stable Release Process</title> diff --git a/poky/documentation/ref-manual/ref-structure.xml b/poky/documentation/ref-manual/ref-structure.xml index 27f17dd919..8588e9c2dd 100644 --- a/poky/documentation/ref-manual/ref-structure.xml +++ b/poky/documentation/ref-manual/ref-structure.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-structure'> diff --git a/poky/documentation/ref-manual/ref-style.css b/poky/documentation/ref-manual/ref-style.css index 7077e4b70d..622ceb8f7e 100644 --- a/poky/documentation/ref-manual/ref-style.css +++ b/poky/documentation/ref-manual/ref-style.css @@ -1,4 +1,7 @@ /* + + SPDX-License-Identifier: CC-BY-2.0-UK + Generic XHTML / DocBook XHTML CSS Stylesheet. Browser wrangling and typographic design by diff --git a/poky/documentation/ref-manual/ref-system-requirements.xml b/poky/documentation/ref-manual/ref-system-requirements.xml index 7a11ec2cf3..43e217c6d6 100644 --- a/poky/documentation/ref-manual/ref-system-requirements.xml +++ b/poky/documentation/ref-manual/ref-system-requirements.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-manual-system-requirements'> <title>System Requirements</title> diff --git a/poky/documentation/ref-manual/ref-tasks.xml b/poky/documentation/ref-manual/ref-tasks.xml index 011e0d7496..5b09b3f2e8 100644 --- a/poky/documentation/ref-manual/ref-tasks.xml +++ b/poky/documentation/ref-manual/ref-tasks.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-tasks'> <title>Tasks</title> diff --git a/poky/documentation/ref-manual/ref-terms.xml b/poky/documentation/ref-manual/ref-terms.xml index 722fa7ee27..d2605c62a8 100644 --- a/poky/documentation/ref-manual/ref-terms.xml +++ b/poky/documentation/ref-manual/ref-terms.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-terms'> <title>Yocto Project Terms</title> diff --git a/poky/documentation/ref-manual/ref-variables.xml b/poky/documentation/ref-manual/ref-variables.xml index 657f6cf3d2..9fe744aff5 100644 --- a/poky/documentation/ref-manual/ref-variables.xml +++ b/poky/documentation/ref-manual/ref-variables.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <!-- Dummy chapter --> <chapter id='ref-variables-glos'> diff --git a/poky/documentation/ref-manual/ref-varlocality.xml b/poky/documentation/ref-manual/ref-varlocality.xml index 54524d5b60..a2436fb310 100644 --- a/poky/documentation/ref-manual/ref-varlocality.xml +++ b/poky/documentation/ref-manual/ref-varlocality.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='ref-varlocality'> <title>Variable Context</title> diff --git a/poky/documentation/ref-manual/resources.xml b/poky/documentation/ref-manual/resources.xml index afe8e288de..4899b2e599 100644 --- a/poky/documentation/ref-manual/resources.xml +++ b/poky/documentation/ref-manual/resources.xml @@ -1,6 +1,7 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > +<!--SPDX-License-Identifier: CC-BY-2.0-UK--> <chapter id='resources'> <title>Contributions and Additional Information</title> diff --git a/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb b/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb index e84a90f28c..3acc523a88 100644 --- a/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb +++ b/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb @@ -10,10 +10,19 @@ SRC_URI = "git://github.com/aehs29/baremetal-helloqemu.git;protocol=https;branch S = "${WORKDIR}/git/" -# These examples are not meant to be built when using either musl or glibc -COMPATIBLE_HOST_libc-musl_class-target = "null" -COMPATIBLE_HOST_libc-glibc_class-target = "null" +# The following variables should be set to accomodate each application +BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}" +IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" +IMAGE_NAME_SUFFIX ?= "" + +# Baremetal-Image creates the proper wiring, assumes the output is provided in +# binary and ELF format, installed on ${base_libdir}/firmware/ , we want a +# package to be created since we might have some way of updating the baremetal +# firmware from Linux +inherit baremetal-image + +# These parameters are app specific for this example # This will be translated automatically to the architecture and # machine that QEMU uses on OE, e.g. -machine virt -cpu cortex-a57 # but the examples can also be run on other architectures/machines @@ -25,82 +34,17 @@ BAREMETAL_QEMUARCH_qemuarmv5 = "versatile" BAREMETAL_QEMUARCH_qemuarm = "arm" BAREMETAL_QEMUARCH_qemuarm64 = "aarch64" - EXTRA_OEMAKE_append = " QEMUARCH=${BAREMETAL_QEMUARCH} V=1" -do_install(){ - install -d ${D}/${datadir} - install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.bin ${D}/${datadir}/hello_baremetal_${MACHINE}.bin - install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.elf ${D}/${datadir}/hello_baremetal_${MACHINE}.elf -} -# Borrowed from meta-freertos -inherit rootfs-postcommands -inherit deploy -IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete" -do_deploy[dirs] = "${DEPLOYDIR} ${DEPLOY_DIR_IMAGE}" -do_rootfs[dirs] = "${DEPLOYDIR} ${DEPLOY_DIR_IMAGE}" -DEPLOYDIR = "${IMGDEPLOYDIR}" -IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" -IMAGE_NAME_SUFFIX ?= "" - -do_deploy(){ - install ${D}/${datadir}/hello_baremetal_${MACHINE}.bin ${DEPLOYDIR}/${IMAGE_LINK_NAME}.bin - install ${D}/${datadir}/hello_baremetal_${MACHINE}.elf ${DEPLOYDIR}/${IMAGE_LINK_NAME}.elf -} - -do_image(){ - : +# Install binaries on the proper location for baremetal-image to fetch and deploy +do_install(){ + install -d ${D}/${base_libdir}/firmware + install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.bin ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin + install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.elf ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf } FILES_${PN} += " \ - ${datadir}/hello_baremetal_${MACHINE}.bin \ - ${datadir}/hello_baremetal_${MACHINE}.elf \ + ${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin \ + ${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf \ " - -python do_rootfs(){ - from oe.utils import execute_pre_post_process - from pathlib import Path - - # Write empty manifest testdate file - deploy_dir = d.getVar('DEPLOYDIR') - link_name = d.getVar('IMAGE_LINK_NAME') - manifest_name = d.getVar('IMAGE_MANIFEST') - - Path(manifest_name).touch() - if os.path.exists(manifest_name) and link_name: - manifest_link = deploy_dir + "/" + link_name + ".manifest" - if os.path.lexists(manifest_link): - os.remove(manifest_link) - os.symlink(os.path.basename(manifest_name), manifest_link) - execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND')) -} - -# QEMU generic FreeRTOS parameters -QB_DEFAULT_KERNEL = "${IMAGE_LINK_NAME}.bin" -QB_MEM = "-m 256" -QB_OPT_APPEND = "-nographic" -QB_DEFAULT_FSTYPE = "bin" -QB_DTB = "" - -# This next part is necessary to trick the build system into thinking -# its building an image recipe so it generates the qemuboot.conf -addtask do_deploy after do_write_qemuboot_conf before do_build -addtask do_rootfs before do_deploy after do_install -addtask do_image after do_rootfs before do_build -inherit qemuboot - -# Based on image.bbclass to make sure we build qemu -python(){ - # do_addto_recipe_sysroot doesnt exist for all recipes, but we need it to have - # /usr/bin on recipe-sysroot (qemu) populated - def extraimage_getdepends(task): - deps = "" - for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split(): - # Make sure we only add it for qemu - if 'qemu' in dep: - deps += " %s:%s" % (dep, task) - return deps - d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_addto_recipe_sysroot')) - d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot')) -} diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend index 7207442008..626748541a 100644 --- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend +++ b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend @@ -7,17 +7,17 @@ KMACHINE_genericx86 ?= "common-pc" KMACHINE_genericx86-64 ?= "common-pc-64" KMACHINE_beaglebone-yocto ?= "beaglebone" -SRCREV_machine_genericx86 ?= "29f44c85c379c38f15e544828e7e77b3c008f378" -SRCREV_machine_genericx86-64 ?= "29f44c85c379c38f15e544828e7e77b3c008f378" -SRCREV_machine_edgerouter ?= "f4d7dbafb103e4f782323017c239c548871c1567" -SRCREV_machine_beaglebone-yocto ?= "f4d7dbafb103e4f782323017c239c548871c1567" +SRCREV_machine_genericx86 ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" +SRCREV_machine_genericx86-64 ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" +SRCREV_machine_edgerouter ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" +SRCREV_machine_beaglebone-yocto ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" COMPATIBLE_MACHINE_genericx86 = "genericx86" COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" COMPATIBLE_MACHINE_edgerouter = "edgerouter" COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" -LINUX_VERSION_genericx86 = "5.4.40" -LINUX_VERSION_genericx86-64 = "5.4.40" -LINUX_VERSION_edgerouter = "5.4.20" -LINUX_VERSION_beaglebone-yocto = "5.4.20" +LINUX_VERSION_genericx86 = "5.4.49" +LINUX_VERSION_genericx86-64 = "5.4.49" +LINUX_VERSION_edgerouter = "5.4.49" +LINUX_VERSION_beaglebone-yocto = "5.4.49" diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass index e221fff695..aff1f9dbb0 100644 --- a/poky/meta/classes/archiver.bbclass +++ b/poky/meta/classes/archiver.bbclass @@ -582,8 +582,8 @@ do_deploy_archives[sstate-outputdirs] = "${DEPLOY_DIR_SRC}" addtask do_deploy_archives_setscene addtask do_ar_original after do_unpack -addtask do_unpack_and_patch after do_patch -addtask do_ar_patched after do_unpack_and_patch before do_preconfigure do_configure +addtask do_unpack_and_patch after do_patch do_preconfigure +addtask do_ar_patched after do_unpack_and_patch addtask do_ar_configured after do_unpack_and_patch addtask do_ar_mirror after do_fetch addtask do_dumpdata diff --git a/poky/meta/classes/baremetal-image.bbclass b/poky/meta/classes/baremetal-image.bbclass new file mode 100644 index 0000000000..90d58f2615 --- /dev/null +++ b/poky/meta/classes/baremetal-image.bbclass @@ -0,0 +1,99 @@ +# Baremetal image class +# +# This class is meant to be inherited by recipes for baremetal/RTOS applications +# It contains code that would be used by all of them, every recipe just needs to +# override certain variables. +# +# For scalability purposes, code within this class focuses on the "image" wiring +# to satisfy the OpenEmbedded image creation and testing infrastructure. +# +# See meta-skeleton for a working example. + + +# Toolchain should be baremetal or newlib based. +# TCLIBC="baremetal" or TCLIBC="newlib" +COMPATIBLE_HOST_libc-musl_class-target = "null" +COMPATIBLE_HOST_libc-glibc_class-target = "null" + + +inherit rootfs-postcommands + +# Set some defaults, but these should be overriden by each recipe if required +IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete" +BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}" +IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" +IMAGE_NAME_SUFFIX ?= "" + +do_rootfs[dirs] = "${IMGDEPLOYDIR} ${DEPLOY_DIR_IMAGE}" + +do_image(){ + install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.bin + install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.elf +} + +do_image_complete(){ + : +} + +python do_rootfs(){ + from oe.utils import execute_pre_post_process + from pathlib import Path + + # Write empty manifest file to satisfy test infrastructure + deploy_dir = d.getVar('IMGDEPLOYDIR') + link_name = d.getVar('IMAGE_LINK_NAME') + manifest_name = d.getVar('IMAGE_MANIFEST') + + Path(manifest_name).touch() + if os.path.exists(manifest_name) and link_name: + manifest_link = deploy_dir + "/" + link_name + ".manifest" + if os.path.lexists(manifest_link): + os.remove(manifest_link) + os.symlink(os.path.basename(manifest_name), manifest_link) + execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND')) +} + + +# Assure binaries, manifest and qemubootconf are populated on DEPLOY_DIR_IMAGE +do_image_complete[dirs] = "${TOPDIR}" +do_image_complete[umask] = "022" +SSTATETASKS += "do_image_complete" +SSTATE_SKIP_CREATION_task-image-complete = '1' +do_image_complete[sstate-inputdirs] = "${IMGDEPLOYDIR}" +do_image_complete[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" +do_image_complete[stamp-extra-info] = "${MACHINE_ARCH}" +addtask do_image_complete after do_image before do_build + +python do_image_complete_setscene () { + sstate_setscene(d) +} +addtask do_image_complete_setscene + +# QEMU generic Baremetal/RTOS parameters +QB_DEFAULT_KERNEL ?= "${IMAGE_LINK_NAME}.bin" +QB_MEM ?= "-m 256" +QB_DEFAULT_FSTYPE ?= "bin" +QB_DTB ?= "" +QB_OPT_APPEND = "-nographic" + +# This next part is necessary to trick the build system into thinking +# its building an image recipe so it generates the qemuboot.conf +addtask do_rootfs before do_image after do_install +addtask do_image after do_rootfs before do_image_complete +addtask do_image_complete after do_image before do_build +inherit qemuboot + +# Based on image.bbclass to make sure we build qemu +python(){ + # do_addto_recipe_sysroot doesnt exist for all recipes, but we need it to have + # /usr/bin on recipe-sysroot (qemu) populated + def extraimage_getdepends(task): + deps = "" + for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split(): + # Make sure we only add it for qemu + if 'qemu' in dep: + deps += " %s:%s" % (dep, task) + return deps + d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_addto_recipe_sysroot')) + d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot')) +} diff --git a/poky/meta/classes/deploy.bbclass b/poky/meta/classes/deploy.bbclass index 6d52908783..737c26122b 100644 --- a/poky/meta/classes/deploy.bbclass +++ b/poky/meta/classes/deploy.bbclass @@ -8,4 +8,5 @@ python do_deploy_setscene () { } addtask do_deploy_setscene do_deploy[dirs] = "${DEPLOYDIR} ${B}" +do_deploy[cleandirs] = "${DEPLOYDIR}" do_deploy[stamp-extra-info] = "${MACHINE_ARCH}" diff --git a/poky/meta/classes/gtk-icon-cache.bbclass b/poky/meta/classes/gtk-icon-cache.bbclass index 91cb4ad409..dd394af27c 100644 --- a/poky/meta/classes/gtk-icon-cache.bbclass +++ b/poky/meta/classes/gtk-icon-cache.bbclass @@ -1,6 +1,10 @@ FILES_${PN} += "${datadir}/icons/hicolor" -DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk+3-native" +DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} \ + ${@['gdk-pixbuf', '']['${BPN}' == 'gdk-pixbuf']} \ + ${@['gtk+3', '']['${BPN}' == 'gtk+3']} \ + gtk+3-native \ +" PACKAGE_WRITE_DEPS += "gtk+3-native gdk-pixbuf-native" @@ -48,9 +52,18 @@ python populate_packages_append () { bb.note("adding hicolor-icon-theme dependency to %s" % pkg) rdepends = ' ' + d.getVar('MLPREFIX', False) + "hicolor-icon-theme" d.appendVar('RDEPENDS_%s' % pkg, rdepends) - + + #gtk_icon_cache_postinst depend on gdk-pixbuf and gtk+3 + bb.note("adding gdk-pixbuf dependency to %s" % pkg) + rdepends = ' ' + d.getVar('MLPREFIX', False) + "gdk-pixbuf" + d.appendVar('RDEPENDS_%s' % pkg, rdepends) + + bb.note("adding gtk+3 dependency to %s" % pkg) + rdepends = ' ' + d.getVar('MLPREFIX', False) + "gtk+3" + d.appendVar('RDEPENDS_%s' % pkg, rdepends) + bb.note("adding gtk-icon-cache postinst and postrm scripts to %s" % pkg) - + postinst = d.getVar('pkg_postinst_%s' % pkg) if not postinst: postinst = '#!/bin/sh\n' diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass index 5bc627066e..54a1a1627a 100644 --- a/poky/meta/classes/kernel-yocto.bbclass +++ b/poky/meta/classes/kernel-yocto.bbclass @@ -131,7 +131,7 @@ do_kernel_metadata() { else cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig fi - sccs="${WORKDIR}/defconfig" + in_tree_defconfig="${WORKDIR}/defconfig" else bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree" fi @@ -153,14 +153,25 @@ do_kernel_metadata() { patches="${@" ".join(find_patches(d,''))}" feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" - # a quick check to make sure we don't have duplicate defconfigs - # If there's a defconfig in the SRC_URI, did we also have one from - # the KBUILD_DEFCONFIG processing above ? - if [ -n "$sccs" ]; then - # we did have a defconfig from above. remove any that might be in the src_uri - sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if ($0!="defconfig") { print $0 } }' RS=' ') + # a quick check to make sure we don't have duplicate defconfigs If + # there's a defconfig in the SRC_URI, did we also have one from the + # KBUILD_DEFCONFIG processing above ? + src_uri_defconfig=$(echo $sccs_from_src_uri | awk '(match($0, "defconfig") != 0) { print $0 }' RS=' ') + # drop and defconfig's from the src_uri variable, we captured it just above here if it existed + sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '(match($0, "defconfig") == 0) { print $0 }' RS=' ') + + if [ -n "$in_tree_defconfig" ]; then + sccs_defconfig=$in_tree_defconfig + if [ -n "$src_uri_defconfig" ]; then + bbwarn "[NOTE]: defconfig was supplied both via KBUILD_DEFCONFIG and SRC_URI. Dropping SRC_URI defconfig" + fi + else + # if we didn't have an in-tree one, make our defconfig the one + # from the src_uri. Note: there may not have been one from the + # src_uri, so this can be an empty variable. + sccs_defconfig=$src_uri_defconfig fi - sccs="$sccs $sccs_from_src_uri" + sccs="$sccs_from_src_uri" # check for feature directories/repos/branches that were part of the # SRC_URI. If they were supplied, we convert them into include directives @@ -187,11 +198,10 @@ do_kernel_metadata() { # expand kernel features into their full path equivalents bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE}) if [ -z "$bsp_definition" ]; then - echo "$sccs" | grep -q defconfig - if [ $? -ne 0 ]; then + if [ -z "$sccs_defconfig" ]; then bbfatal_log "Could not locate BSP definition for ${KMACHINE}/${LINUX_KERNEL_TYPE} and no defconfig was provided" fi - + else # if the bsp definition has "define KMETA_EXTERNAL_BSP t", # then we need to set a flag that will instruct the next # steps to use the BSP as both configuration and patches. @@ -206,7 +216,7 @@ do_kernel_metadata() { elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`" if [ -n "${elements}" ]; then echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition - scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES} + scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES} if [ $? -ne 0 ]; then bbfatal_log "Could not generate configuration queue for ${KMACHINE}." fi diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass index 20a0135fc9..cf43a5d604 100644 --- a/poky/meta/classes/kernel.bbclass +++ b/poky/meta/classes/kernel.bbclass @@ -4,10 +4,12 @@ KERNEL_PACKAGE_NAME ??= "kernel" KERNEL_DEPLOYSUBDIR ??= "${@ "" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else d.getVar("KERNEL_PACKAGE_NAME") }" PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }" -DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native lzop-native bison-native" +DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native bison-native" +DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lzo", "lzop-native", "", d)}" +DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lz4", "lz4-native", "", d)}" PACKAGE_WRITE_DEPS += "depmodwrapper-cross" -do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot" +do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot gzip-native:do_populate_sysroot" do_clean[depends] += "make-mod-scripts:do_clean" CVE_PRODUCT ?= "linux_kernel" @@ -94,6 +96,25 @@ python __anonymous () { d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower)) d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower)) d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1') + d.setVar('pkg_postinst_%s-image-%s' % (kname,typelower), """set +e +if [ -n "$D" ]; then + ln -sf %s-${KERNEL_VERSION} $D/${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 +else + ln -sf %s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Filesystem on ${KERNEL_IMAGEDEST}/ doesn't support symlinks, falling back to copied image (%s)." + install -m 0644 ${KERNEL_IMAGEDEST}/%s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s + fi +fi +set -e +""" % (type, type, type, type, type, type, type)) + d.setVar('pkg_postrm_%s-image-%s' % (kname,typelower), """set +e +if [ -f "${KERNEL_IMAGEDEST}/%s" -o -L "${KERNEL_IMAGEDEST}/%s" ]; then + rm -f ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 +fi +set -e +""" % (type, type, type)) + image = d.getVar('INITRAMFS_IMAGE') # If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0, @@ -210,7 +231,7 @@ copy_initramfs() { ;; *lz4) echo "lz4 decompressing image" - lz4 -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img + lz4 -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img ${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio break ;; *lzo) @@ -385,9 +406,6 @@ kernel_do_install() { install -d ${D}/boot for imageType in ${KERNEL_IMAGETYPES} ; do install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION} - if [ "${KERNEL_PACKAGE_NAME}" = "kernel" ]; then - ln -sf ${imageType}-${KERNEL_VERSION} ${D}/${KERNEL_IMAGEDEST}/${imageType} - fi done install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION} install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION} @@ -463,7 +481,7 @@ do_shared_workdir () { # Copy files required for module builds cp System.map $kerneldir/System.map-${KERNEL_VERSION} - cp Module.symvers $kerneldir/ + [ -e Module.symvers ] && cp Module.symvers $kerneldir/ cp .config $kerneldir/ mkdir -p $kerneldir/include/config cp include/config/kernel.release $kerneldir/include/config/kernel.release @@ -729,8 +747,6 @@ kernel_do_deploy() { done fi } -do_deploy[cleandirs] = "${DEPLOYDIR}" -do_deploy[dirs] = "${DEPLOYDIR} ${B}" do_deploy[prefuncs] += "package_get_auto_pr" addtask deploy after do_populate_sysroot do_packagedata diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass index 9f26cfc131..fd0da16e7e 100644 --- a/poky/meta/classes/populate_sdk_ext.bbclass +++ b/poky/meta/classes/populate_sdk_ext.bbclass @@ -676,7 +676,7 @@ sdk_ext_postinst() { # current working directory when first ran, nor will it set $1 when # sourcing a script. That is why this has to look so ugly. LOGFILE="$target_sdk_dir/preparing_build_system.log" - sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py $LOGFILE '${SDK_INSTALL_TARGETS}'" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } + sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python3 $target_sdk_dir/ext-sdk-prepare.py $LOGFILE '${SDK_INSTALL_TARGETS}'" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } fi if [ -e $target_sdk_dir/ext-sdk-prepare.py ]; then rm $target_sdk_dir/ext-sdk-prepare.py diff --git a/poky/meta/classes/rootfs-postcommands.bbclass b/poky/meta/classes/rootfs-postcommands.bbclass index 2f171836fa..c43b9a9823 100644 --- a/poky/meta/classes/rootfs-postcommands.bbclass +++ b/poky/meta/classes/rootfs-postcommands.bbclass @@ -308,12 +308,16 @@ rootfs_check_host_user_contaminated () { HOST_USER_UID="$(PSEUDO_UNLOAD=1 id -u)" HOST_USER_GID="$(PSEUDO_UNLOAD=1 id -g)" - find "${IMAGE_ROOTFS}" -wholename "${IMAGE_ROOTFS}/home" -prune \ - -user "$HOST_USER_UID" -o -group "$HOST_USER_GID" >"$contaminated" + find "${IMAGE_ROOTFS}" -path "${IMAGE_ROOTFS}/home" -prune -o \ + -user "$HOST_USER_UID" -print -o -group "$HOST_USER_GID" -print >"$contaminated" + + sed -e "s,${IMAGE_ROOTFS},," $contaminated | while read line; do + bbwarn "Path in the rootfs is owned by the same user or group as the user running bitbake:" $line `ls -lan ${IMAGE_ROOTFS}/$line` + done if [ -s "$contaminated" ]; then - echo "WARNING: Paths in the rootfs are owned by the same user or group as the user running bitbake. See the logfile for the specific paths." - cat "$contaminated" | sed "s,^, ," + bbwarn "/etc/passwd:" `cat ${IMAGE_ROOTFS}/etc/passwd` + bbwarn "/etc/group:" `cat ${IMAGE_ROOTFS}/etc/group` fi } diff --git a/poky/meta/classes/spdx.bbclass b/poky/meta/classes/spdx.bbclass deleted file mode 100644 index fb78e274a8..0000000000 --- a/poky/meta/classes/spdx.bbclass +++ /dev/null @@ -1,360 +0,0 @@ -# This class integrates real-time license scanning, generation of SPDX standard -# output and verifiying license info during the building process. -# It is a combination of efforts from the OE-Core, SPDX and Fossology projects. -# -# For more information on FOSSology: -# http://www.fossology.org -# -# For more information on FOSSologySPDX commandline: -# https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -# -# For more information on SPDX: -# http://www.spdx.org -# - -# SPDX file will be output to the path which is defined as[SPDX_MANIFEST_DIR] -# in ./meta/conf/licenses.conf. - -SPDXSSTATEDIR = "${WORKDIR}/spdx_sstate_dir" - -# If ${S} isn't actually the top-level source directory, set SPDX_S to point at -# the real top-level directory. -SPDX_S ?= "${S}" - -python do_spdx () { - import os, sys - import json, shutil - - info = {} - info['workdir'] = d.getVar('WORKDIR') - info['sourcedir'] = d.getVar('SPDX_S') - info['pn'] = d.getVar('PN') - info['pv'] = d.getVar('PV') - info['spdx_version'] = d.getVar('SPDX_VERSION') - info['data_license'] = d.getVar('DATA_LICENSE') - - sstatedir = d.getVar('SPDXSSTATEDIR') - sstatefile = os.path.join(sstatedir, info['pn'] + info['pv'] + ".spdx") - - manifest_dir = d.getVar('SPDX_MANIFEST_DIR') - info['outfile'] = os.path.join(manifest_dir, info['pn'] + ".spdx" ) - - info['spdx_temp_dir'] = d.getVar('SPDX_TEMP_DIR') - info['tar_file'] = os.path.join(info['workdir'], info['pn'] + ".tar.gz" ) - - # Make sure important dirs exist - try: - bb.utils.mkdirhier(manifest_dir) - bb.utils.mkdirhier(sstatedir) - bb.utils.mkdirhier(info['spdx_temp_dir']) - except OSError as e: - bb.error("SPDX: Could not set up required directories: " + str(e)) - return - - ## get everything from cache. use it to decide if - ## something needs to be rerun - cur_ver_code = get_ver_code(info['sourcedir']) - cache_cur = False - if os.path.exists(sstatefile): - ## cache for this package exists. read it in - cached_spdx = get_cached_spdx(sstatefile) - - if cached_spdx['PackageVerificationCode'] == cur_ver_code: - bb.warn("SPDX: Verification code for " + info['pn'] - + "is same as cache's. do nothing") - cache_cur = True - else: - local_file_info = setup_foss_scan(info, True, cached_spdx['Files']) - else: - local_file_info = setup_foss_scan(info, False, None) - - if cache_cur: - spdx_file_info = cached_spdx['Files'] - foss_package_info = cached_spdx['Package'] - foss_license_info = cached_spdx['Licenses'] - else: - ## setup fossology command - foss_server = d.getVar('FOSS_SERVER') - foss_flags = d.getVar('FOSS_WGET_FLAGS') - foss_full_spdx = d.getVar('FOSS_FULL_SPDX') == "true" or False - foss_command = "wget %s --post-file=%s %s"\ - % (foss_flags, info['tar_file'], foss_server) - - foss_result = run_fossology(foss_command, foss_full_spdx) - if foss_result is not None: - (foss_package_info, foss_file_info, foss_license_info) = foss_result - spdx_file_info = create_spdx_doc(local_file_info, foss_file_info) - ## write to cache - write_cached_spdx(sstatefile, cur_ver_code, foss_package_info, - spdx_file_info, foss_license_info) - else: - bb.error("SPDX: Could not communicate with FOSSology server. Command was: " + foss_command) - return - - ## Get document and package level information - spdx_header_info = get_header_info(info, cur_ver_code, foss_package_info) - - ## CREATE MANIFEST - create_manifest(info, spdx_header_info, spdx_file_info, foss_license_info) - - ## clean up the temp stuff - shutil.rmtree(info['spdx_temp_dir'], ignore_errors=True) - if os.path.exists(info['tar_file']): - remove_file(info['tar_file']) -} -addtask spdx after do_patch before do_configure - -def create_manifest(info, header, files, licenses): - import codecs - with codecs.open(info['outfile'], mode='w', encoding='utf-8') as f: - # Write header - f.write(header + '\n') - - # Write file data - for chksum, block in files.iteritems(): - f.write("FileName: " + block['FileName'] + '\n') - for key, value in block.iteritems(): - if not key == 'FileName': - f.write(key + ": " + value + '\n') - f.write('\n') - - # Write license data - for id, block in licenses.iteritems(): - f.write("LicenseID: " + id + '\n') - for key, value in block.iteritems(): - f.write(key + ": " + value + '\n') - f.write('\n') - -def get_cached_spdx(sstatefile): - import json - import codecs - cached_spdx_info = {} - with codecs.open(sstatefile, mode='r', encoding='utf-8') as f: - try: - cached_spdx_info = json.load(f) - except ValueError as e: - cached_spdx_info = None - return cached_spdx_info - -def write_cached_spdx(sstatefile, ver_code, package_info, files, license_info): - import json - import codecs - spdx_doc = {} - spdx_doc['PackageVerificationCode'] = ver_code - spdx_doc['Files'] = {} - spdx_doc['Files'] = files - spdx_doc['Package'] = {} - spdx_doc['Package'] = package_info - spdx_doc['Licenses'] = {} - spdx_doc['Licenses'] = license_info - with codecs.open(sstatefile, mode='w', encoding='utf-8') as f: - f.write(json.dumps(spdx_doc)) - -def setup_foss_scan(info, cache, cached_files): - import errno, shutil - import tarfile - file_info = {} - cache_dict = {} - - for f_dir, f in list_files(info['sourcedir']): - full_path = os.path.join(f_dir, f) - abs_path = os.path.join(info['sourcedir'], full_path) - dest_dir = os.path.join(info['spdx_temp_dir'], f_dir) - dest_path = os.path.join(info['spdx_temp_dir'], full_path) - - checksum = hash_file(abs_path) - if not checksum is None: - file_info[checksum] = {} - ## retain cache information if it exists - if cache and checksum in cached_files: - file_info[checksum] = cached_files[checksum] - ## have the file included in what's sent to the FOSSology server - else: - file_info[checksum]['FileName'] = full_path - try: - bb.utils.mkdirhier(dest_dir) - shutil.copyfile(abs_path, dest_path) - except OSError as e: - bb.warn("SPDX: mkdirhier failed: " + str(e)) - except shutil.Error as e: - bb.warn("SPDX: copyfile failed: " + str(e)) - except IOError as e: - bb.warn("SPDX: copyfile failed: " + str(e)) - else: - bb.warn("SPDX: Could not get checksum for file: " + f) - - with tarfile.open(info['tar_file'], "w:gz") as tar: - tar.add(info['spdx_temp_dir'], arcname=os.path.basename(info['spdx_temp_dir'])) - - return file_info - -def remove_file(file_name): - try: - os.remove(file_name) - except OSError as e: - pass - -def list_files(dir): - for root, subFolders, files in os.walk(dir): - for f in files: - rel_root = os.path.relpath(root, dir) - yield rel_root, f - return - -def hash_file(file_name): - from bb.utils import sha1_file - return sha1_file(file_name) - -def hash_string(data): - import hashlib - sha1 = hashlib.sha1() - sha1.update(data.encode('utf-8')) - return sha1.hexdigest() - -def run_fossology(foss_command, full_spdx): - import string, re - import subprocess - - try: - foss_output = subprocess.check_output(foss_command.split(), - stderr=subprocess.STDOUT).decode('utf-8') - except subprocess.CalledProcessError as e: - return None - - foss_output = foss_output.replace('\r', '') - - # Package info - package_info = {} - if full_spdx: - # All mandatory, only one occurrence - package_info['PackageCopyrightText'] = re.findall('PackageCopyrightText: (.*?</text>)', foss_output, re.S)[0] - package_info['PackageLicenseDeclared'] = re.findall('PackageLicenseDeclared: (.*)', foss_output)[0] - package_info['PackageLicenseConcluded'] = re.findall('PackageLicenseConcluded: (.*)', foss_output)[0] - # These may be more than one - package_info['PackageLicenseInfoFromFiles'] = re.findall('PackageLicenseInfoFromFiles: (.*)', foss_output) - else: - DEFAULT = "NOASSERTION" - package_info['PackageCopyrightText'] = "<text>" + DEFAULT + "</text>" - package_info['PackageLicenseDeclared'] = DEFAULT - package_info['PackageLicenseConcluded'] = DEFAULT - package_info['PackageLicenseInfoFromFiles'] = [] - - # File info - file_info = {} - records = [] - # FileName is also in PackageFileName, so we match on FileType as well. - records = re.findall('FileName:.*?FileType:.*?</text>', foss_output, re.S) - for rec in records: - chksum = re.findall('FileChecksum: SHA1: (.*)\n', rec)[0] - file_info[chksum] = {} - file_info[chksum]['FileCopyrightText'] = re.findall('FileCopyrightText: ' - + '(.*?</text>)', rec, re.S )[0] - fields = ['FileName', 'FileType', 'LicenseConcluded', 'LicenseInfoInFile'] - for field in fields: - file_info[chksum][field] = re.findall(field + ': (.*)', rec)[0] - - # Licenses - license_info = {} - licenses = [] - licenses = re.findall('LicenseID:.*?LicenseName:.*?\n', foss_output, re.S) - for lic in licenses: - license_id = re.findall('LicenseID: (.*)\n', lic)[0] - license_info[license_id] = {} - license_info[license_id]['ExtractedText'] = re.findall('ExtractedText: (.*?</text>)', lic, re.S)[0] - license_info[license_id]['LicenseName'] = re.findall('LicenseName: (.*)', lic)[0] - - return (package_info, file_info, license_info) - -def create_spdx_doc(file_info, scanned_files): - import json - ## push foss changes back into cache - for chksum, lic_info in scanned_files.iteritems(): - if chksum in file_info: - file_info[chksum]['FileType'] = lic_info['FileType'] - file_info[chksum]['FileChecksum: SHA1'] = chksum - file_info[chksum]['LicenseInfoInFile'] = lic_info['LicenseInfoInFile'] - file_info[chksum]['LicenseConcluded'] = lic_info['LicenseConcluded'] - file_info[chksum]['FileCopyrightText'] = lic_info['FileCopyrightText'] - else: - bb.warn("SPDX: " + lic_info['FileName'] + " : " + chksum - + " : is not in the local file info: " - + json.dumps(lic_info, indent=1)) - return file_info - -def get_ver_code(dirname): - chksums = [] - for f_dir, f in list_files(dirname): - path = os.path.join(dirname, f_dir, f) - hash = hash_file(path) - if not hash is None: - chksums.append(hash) - else: - bb.warn("SPDX: Could not hash file: " + path) - ver_code_string = ''.join(chksums).lower() - ver_code = hash_string(ver_code_string) - return ver_code - -def get_header_info(info, spdx_verification_code, package_info): - """ - Put together the header SPDX information. - Eventually this needs to become a lot less - of a hardcoded thing. - """ - from datetime import datetime - import os - head = [] - DEFAULT = "NOASSERTION" - - package_checksum = hash_file(info['tar_file']) - if package_checksum is None: - package_checksum = DEFAULT - - ## document level information - head.append("## SPDX Document Information") - head.append("SPDXVersion: " + info['spdx_version']) - head.append("DataLicense: " + info['data_license']) - head.append("DocumentComment: <text>SPDX for " - + info['pn'] + " version " + info['pv'] + "</text>") - head.append("") - - ## Creator information - ## Note that this does not give time in UTC. - now = datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ') - head.append("## Creation Information") - ## Tools are supposed to have a version, but FOSSology+SPDX provides none. - head.append("Creator: Tool: FOSSology+SPDX") - head.append("Created: " + now) - head.append("CreatorComment: <text>UNO</text>") - head.append("") - - ## package level information - head.append("## Package Information") - head.append("PackageName: " + info['pn']) - head.append("PackageVersion: " + info['pv']) - head.append("PackageFileName: " + os.path.basename(info['tar_file'])) - head.append("PackageSupplier: Person:" + DEFAULT) - head.append("PackageDownloadLocation: " + DEFAULT) - head.append("PackageSummary: <text></text>") - head.append("PackageOriginator: Person:" + DEFAULT) - head.append("PackageChecksum: SHA1: " + package_checksum) - head.append("PackageVerificationCode: " + spdx_verification_code) - head.append("PackageDescription: <text>" + info['pn'] - + " version " + info['pv'] + "</text>") - head.append("") - head.append("PackageCopyrightText: " - + package_info['PackageCopyrightText']) - head.append("") - head.append("PackageLicenseDeclared: " - + package_info['PackageLicenseDeclared']) - head.append("PackageLicenseConcluded: " - + package_info['PackageLicenseConcluded']) - - for licref in package_info['PackageLicenseInfoFromFiles']: - head.append("PackageLicenseInfoFromFiles: " + licref) - head.append("") - - ## header for file level - head.append("## File Information") - head.append("") - - return '\n'.join(head) diff --git a/poky/meta/classes/uboot-sign.bbclass b/poky/meta/classes/uboot-sign.bbclass index 982ed46d01..713196df41 100644 --- a/poky/meta/classes/uboot-sign.bbclass +++ b/poky/meta/classes/uboot-sign.bbclass @@ -117,15 +117,16 @@ do_install_append() { fi } +do_deploy_prepend_pn-${UBOOT_PN}() { + if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ]; then + concat_dtb + fi +} + python () { if d.getVar('UBOOT_SIGN_ENABLE') == '1' and d.getVar('PN') == d.getVar('UBOOT_PN') and d.getVar('UBOOT_DTB_BINARY'): kernel_pn = d.getVar('PREFERRED_PROVIDER_virtual/kernel') # Make "bitbake u-boot -cdeploy" deploys the signed u-boot.dtb d.appendVarFlag('do_deploy', 'depends', ' %s:do_deploy' % kernel_pn) - - # kernerl's do_deploy is a litle special, so we can't use - # do_deploy_append, otherwise it would override - # kernel_do_deploy. - d.appendVarFlag('do_deploy', 'prefuncs', ' concat_dtb') } diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf index 89717a7134..353caacef9 100644 --- a/poky/meta/conf/bitbake.conf +++ b/poky/meta/conf/bitbake.conf @@ -252,7 +252,7 @@ This package contains symbolic links, header files, and \ related items necessary for software development." SUMMARY_${PN}-staticdev ?= "${SUMMARY} - Development files (Static Libraries)" -DESCRIPTION_${PN}-staticdev?= "${DESCRIPTION} \ +DESCRIPTION_${PN}-staticdev ?= "${DESCRIPTION} \ This package contains static libraries for software development." SUMMARY_${PN}-doc ?= "${SUMMARY} - Documentation files" @@ -267,7 +267,7 @@ HOMEPAGE = "" # Ensure that -dev packages recommend the corresponding -dev packages of their # deps, and the same for -dbg. -DEPCHAIN_PRE = "" +DEPCHAIN_PRE = "" DEPCHAIN_POST = "-dev -dbg" DEPENDS = "" diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc index a42346f361..759c8a196e 100644 --- a/poky/meta/conf/machine/include/riscv/qemuriscv.inc +++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc @@ -18,7 +18,7 @@ WKS_FILE ?= "qemuriscv.wks" MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" EXTRA_IMAGEDEPENDS += "opensbi" -RISCV_SBI_PLAT ?= "qemu/virt" +RISCV_SBI_PLAT ?= "generic" RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" UBOOT_ENTRYPOINT_riscv32 = "0x80400000" diff --git a/poky/meta/files/common-licenses/BSD-2-Clause-Patent.txt b/poky/meta/files/common-licenses/BSD-2-Clause-Patent index 1184c02957..1184c02957 100644 --- a/poky/meta/files/common-licenses/BSD-2-Clause-Patent.txt +++ b/poky/meta/files/common-licenses/BSD-2-Clause-Patent diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py index a0ac33ada6..0e05f1f75e 100644 --- a/poky/meta/lib/oe/rootfs.py +++ b/poky/meta/lib/oe/rootfs.py @@ -297,9 +297,9 @@ class Rootfs(object, metaclass=ABCMeta): def _run_ldconfig(self): if self.d.getVar('LDCONFIGDEPEND'): - bb.note("Executing: ldconfig -r " + self.image_rootfs + " -c new -v") + bb.note("Executing: ldconfig -r " + self.image_rootfs + " -c new -v -X") self._exec_shell_cmd(['ldconfig', '-r', self.image_rootfs, '-c', - 'new', '-v']) + 'new', '-v', '-X']) def _check_for_kernel_modules(self, modules_dir): for root, dirs, files in os.walk(modules_dir, topdown=True): diff --git a/poky/meta/lib/oeqa/core/loader.py b/poky/meta/lib/oeqa/core/loader.py index 0d7970d49e..11978213b8 100644 --- a/poky/meta/lib/oeqa/core/loader.py +++ b/poky/meta/lib/oeqa/core/loader.py @@ -46,7 +46,7 @@ def _built_modules_dict(modules): for module in modules: # Assumption: package and module names do not contain upper case # characters, whereas class names do - m = re.match(r'^(\w+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII) + m = re.match(r'^([0-9a-z_.]+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII) if not m: continue diff --git a/poky/meta/lib/oeqa/core/utils/concurrencytest.py b/poky/meta/lib/oeqa/core/utils/concurrencytest.py index 01c39830f9..b2eb68fb02 100644 --- a/poky/meta/lib/oeqa/core/utils/concurrencytest.py +++ b/poky/meta/lib/oeqa/core/utils/concurrencytest.py @@ -183,10 +183,11 @@ class dummybuf(object): # class ConcurrentTestSuite(unittest.TestSuite): - def __init__(self, suite, processes, setupfunc): + def __init__(self, suite, processes, setupfunc, removefunc): super(ConcurrentTestSuite, self).__init__([suite]) self.processes = processes self.setupfunc = setupfunc + self.removefunc = removefunc def run(self, result): tests, totaltests = fork_for_tests(self.processes, self) @@ -237,22 +238,6 @@ class ConcurrentTestSuite(unittest.TestSuite): finally: queue.put(test) -def removebuilddir(d): - delay = 5 - while delay and os.path.exists(d + "/bitbake.lock"): - time.sleep(1) - delay = delay - 1 - # Deleting these directories takes a lot of time, use autobuilder - # clobberdir if its available - clobberdir = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir") - if os.path.exists(clobberdir): - try: - subprocess.check_call([clobberdir, d]) - return - except subprocess.CalledProcessError: - pass - bb.utils.prunedir(d, ionice=True) - def fork_for_tests(concurrency_num, suite): result = [] if 'BUILDDIR' in os.environ: @@ -297,7 +282,7 @@ def fork_for_tests(concurrency_num, suite): if ourpid != os.getpid(): os._exit(0) if newbuilddir and unittest_result.wasSuccessful(): - removebuilddir(newbuilddir) + suite.removefunc(newbuilddir) except: # Don't do anything with process children if ourpid != os.getpid(): @@ -313,7 +298,7 @@ def fork_for_tests(concurrency_num, suite): sys.stderr.write(traceback.format_exc()) finally: if newbuilddir: - removebuilddir(newbuilddir) + suite.removefunc(newbuilddir) stream.flush() os._exit(1) stream.flush() diff --git a/poky/meta/lib/oeqa/runtime/cases/logrotate.py b/poky/meta/lib/oeqa/runtime/cases/logrotate.py index 3938e91993..a4efcd07c0 100644 --- a/poky/meta/lib/oeqa/runtime/cases/logrotate.py +++ b/poky/meta/lib/oeqa/runtime/cases/logrotate.py @@ -37,10 +37,6 @@ class LogrotateTest(OERuntimeTestCase): msg = ('Could not write to /tmp/logrotate-test.conf') self.assertEqual(status, 0, msg = msg) - status, output = self.target.run('echo "/var/log/logrotate_test {\\n missingok \\n monthly \\n rotate 1" > /etc/logrotate.d/logrotate_test') - msg = ('Could not write to /etc/logrotate.d/logrotate_test') - self.assertEqual(status, 0, msg = msg) - # If logrotate fails to rotate the log, view the verbose output of logrotate to see what prevented it _, logrotate_output = self.target.run('logrotate -vf /tmp/logrotate-test.conf') status, _ = self.target.run('find $HOME/logrotate_dir -type f | grep wtmp.1') diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py index 7d8f895045..b383ed9c50 100644 --- a/poky/meta/lib/oeqa/selftest/cases/devtool.py +++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py @@ -1500,7 +1500,11 @@ class DevtoolUpgradeTests(DevtoolBase): dstdir = os.path.join(dstdir, p) if not os.path.exists(dstdir): os.makedirs(dstdir) - self.track_for_cleanup(dstdir) + if p == "lib": + # Can race with other tests + self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir) + else: + self.track_for_cleanup(dstdir) dstfile = os.path.join(dstdir, os.path.basename(srcfile)) if srcfile != dstfile: shutil.copy(srcfile, dstfile) diff --git a/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/poky/meta/lib/oeqa/selftest/cases/oescripts.py index 2f18d8f29c..726daff7c6 100644 --- a/poky/meta/lib/oeqa/selftest/cases/oescripts.py +++ b/poky/meta/lib/oeqa/selftest/cases/oescripts.py @@ -133,7 +133,7 @@ class OEListPackageconfigTests(OEScriptTests): def check_endlines(self, results, expected_endlines): for line in results.output.splitlines(): for el in expected_endlines: - if line == el: + if line.split() == el.split(): expected_endlines.remove(el) break @@ -177,7 +177,7 @@ class OEListPackageconfigTests(OEScriptTests): self.check_endlines(results, expected_endlines) - def test_packageconfig_flags_optiins_preferred_only(self): + def test_packageconfig_flags_options_preferred_only(self): results = runCmd('%s/contrib/list-packageconfig-flags.py -p' % self.scripts_dir) expected_endlines = [] expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS") diff --git a/poky/meta/lib/oeqa/selftest/cases/recipetool.py b/poky/meta/lib/oeqa/selftest/cases/recipetool.py index 6bfe8f177f..c2ade2543a 100644 --- a/poky/meta/lib/oeqa/selftest/cases/recipetool.py +++ b/poky/meta/lib/oeqa/selftest/cases/recipetool.py @@ -534,7 +534,11 @@ class RecipetoolTests(RecipetoolBase): dstdir = os.path.join(dstdir, p) if not os.path.exists(dstdir): os.makedirs(dstdir) - self.track_for_cleanup(dstdir) + if p == "lib": + # Can race with other tests + self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir) + else: + self.track_for_cleanup(dstdir) dstfile = os.path.join(dstdir, os.path.basename(srcfile)) if srcfile != dstfile: shutil.copy(srcfile, dstfile) diff --git a/poky/meta/lib/oeqa/selftest/context.py b/poky/meta/lib/oeqa/selftest/context.py index 494e9dbd1e..23f7d71bdb 100644 --- a/poky/meta/lib/oeqa/selftest/context.py +++ b/poky/meta/lib/oeqa/selftest/context.py @@ -22,6 +22,37 @@ from oeqa.core.exception import OEQAPreRun, OEQATestNotFound from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer +class NonConcurrentTestSuite(unittest.TestSuite): + def __init__(self, suite, processes, setupfunc, removefunc): + super().__init__([suite]) + self.processes = processes + self.suite = suite + self.setupfunc = setupfunc + self.removefunc = removefunc + + def run(self, result): + (builddir, newbuilddir) = self.setupfunc("-st", None, self.suite) + ret = super().run(result) + os.chdir(builddir) + if newbuilddir and ret.wasSuccessful(): + self.removefunc(newbuilddir) + +def removebuilddir(d): + delay = 5 + while delay and os.path.exists(d + "/bitbake.lock"): + time.sleep(1) + delay = delay - 1 + # Deleting these directories takes a lot of time, use autobuilder + # clobberdir if its available + clobberdir = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir") + if os.path.exists(clobberdir): + try: + subprocess.check_call([clobberdir, d]) + return + except subprocess.CalledProcessError: + pass + bb.utils.prunedir(d, ionice=True) + class OESelftestTestContext(OETestContext): def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None): super(OESelftestTestContext, self).__init__(td, logger) @@ -86,10 +117,9 @@ class OESelftestTestContext(OETestContext): if processes: from oeqa.core.utils.concurrencytest import ConcurrentTestSuite - return ConcurrentTestSuite(suites, processes, self.setup_builddir) + return ConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir) else: - self.setup_builddir("-st", None, suites) - return suites + return NonConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir) def runTests(self, processes=None, machine=None, skips=[]): if machine: diff --git a/poky/meta/lib/oeqa/targetcontrol.py b/poky/meta/lib/oeqa/targetcontrol.py index 7bbba6016b..19f5a4ea7e 100644 --- a/poky/meta/lib/oeqa/targetcontrol.py +++ b/poky/meta/lib/oeqa/targetcontrol.py @@ -187,6 +187,7 @@ class QemuTarget(BaseTarget): except: pass self.logger.removeHandler(self.loggerhandler) + self.loggerhandler.close() self.connection = None self.ip = None self.server_ip = None diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.8.bb index 56f2d4b915..818efac733 100644 --- a/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb +++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.8.bb @@ -7,8 +7,8 @@ require opensbi-payloads.inc inherit autotools-brokensep deploy -SRCREV = "ac5e821d50be631f26274765a59bc1b444ffd862" -SRC_URI = "git://github.com/riscv/opensbi.git \ +SRCREV = "a98258d0b537a295f517bbc8d813007336731fa9" +SRC_URI = "git://github.com/riscv/opensbi.git;branch=master \ file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ " @@ -25,22 +25,21 @@ do_install_append() { # In the future these might be required as a dependency for other packages. # At the moment just delete them to avoid warnings rm -r ${D}/include - rm -r ${D}/platform/${RISCV_SBI_PLAT}/lib - rm -r ${D}/platform/${RISCV_SBI_PLAT}/firmware/payloads - rm -r ${D}/lib + rm -r ${D}/lib* + rm -r ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/payloads } do_deploy () { - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOYDIR}/ - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOYDIR}/ - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.* ${DEPLOYDIR}/ + install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOYDIR}/ + install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOYDIR}/ + install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_dynamic.* ${DEPLOYDIR}/ } addtask deploy before do_build after do_install -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.*" -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.*" -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.*" +FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_jump.*" +FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_payload.*" +FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_dynamic.*" COMPATIBLE_HOST = "(riscv64|riscv32).*" INHIBIT_PACKAGE_STRIP = "1" diff --git a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb index ea29b668e8..3820ba262e 100644 --- a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb +++ b/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb @@ -12,7 +12,7 @@ SECTION = "libs" PV = "0.2+git${SRCPV}" SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https" -SRCREV = "f4b9cde3815abe84a98079cedd515283ea08c16b" +SRCREV = "86bd30a14e153a18f670b25708795253d8736f0f" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.34.2.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb index 234cec37bb..afc9b2f2ea 100644 --- a/poky/meta/recipes-connectivity/libuv/libuv_1.34.2.bb +++ b/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb @@ -4,7 +4,7 @@ BUGTRACKER = "https://github.com/libuv/libuv/issues" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" -SRCREV = "f868c9ab0c307525a16fff99fd21e32a6ebc3837" +SRCREV = "1ab9ea3790378f9f25c4e78e9e2b511c75f9c9ed" SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch deleted file mode 100644 index bafff5b9c0..0000000000 --- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch +++ /dev/null @@ -1,38 +0,0 @@ -From ac32b813f5d6f9a2de944015cf9bb98d68e0203a Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 1 Dec 2018 10:02:12 -0800 -Subject: [PATCH] cacheio: use intmax_t for formatted IO - -time_t is not same size on x32 ABI (ILP32) - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - support/nfs/cacheio.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c -index 9dc4cf1..2086a95 100644 ---- a/support/nfs/cacheio.c -+++ b/support/nfs/cacheio.c -@@ -17,6 +17,7 @@ - - #include <nfslib.h> - #include <stdio.h> -+#include <inttypes.h> - #include <stdio_ext.h> - #include <string.h> - #include <ctype.h> -@@ -234,7 +235,7 @@ cache_flush(int force) - stb.st_mtime > now) - stb.st_mtime = time(0); - -- sprintf(stime, "%ld\n", stb.st_mtime); -+ sprintf(stime, "%jd\n", (intmax_t)stb.st_mtime); - for (c=0; cachelist[c]; c++) { - int fd; - sprintf(path, "/proc/net/rpc/%s/flush", cachelist[c]); --- -2.19.2 - diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb index 9bdb6f4ae4..188a8893b4 100644 --- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb +++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb @@ -28,12 +28,10 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.x file://proc-fs-nfsd.mount \ file://nfs-utils-debianize-start-statd.patch \ file://bugfix-adjust-statd-service-name.patch \ - file://0001-cacheio-use-intmax_t-for-formatted-IO.patch \ file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ file://clang-warnings.patch \ " -SRC_URI[md5sum] = "06020c76f531ed97f3145514901e0e7c" -SRC_URI[sha256sum] = "af65fce5dd8370cff9ead67baac5a6cd69c376dcadfef264dc2c78c904f26599" +SRC_URI[sha256sum] = "0f1c8170e16a07d9836bbf0836d48d0c842b6f0e0e8b18748f099751851d30c4" # Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will # pull in the remainder of the dependencies. @@ -91,7 +89,7 @@ RDEPENDS_${PN}-client = "${PN}-mount rpcbind" FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" -FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" +FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat ${sbindir}/nfsdclnts" RDEPENDS_${PN}-stats = "python3-core" FILES_${PN}-staticdev += "${libdir}/libnfsidmap/*.a" @@ -99,8 +97,8 @@ FILES_${PN}-staticdev += "${libdir}/libnfsidmap/*.a" FILES_${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/" do_configure_prepend() { - sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ - ${S}/utils/mount/Makefile.am + sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ + ${S}/utils/mount/Makefile.am } # Make clean needed because the package comes with @@ -129,9 +127,9 @@ do_install_append () { -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \ ${D}${systemd_unitdir}/system/*.service if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ - install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ - ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount + install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ + install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ + ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount fi # kernel code as of 3.8 hard-codes this path as a default @@ -141,7 +139,6 @@ do_install_append () { chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state - # Make python tools use python 3 - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat - + # Make python tools use python 3 + sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat } diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb index 66fa8f7d0a..47ed6b7640 100644 --- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb +++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb @@ -191,7 +191,9 @@ PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc" FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" FILES_libssl = "${libdir}/libssl${SOLIBS}" -FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" +FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf \ + ${libdir}/ssl-1.1/openssl.cnf* \ + " FILES_${PN}-engines = "${libdir}/engines-1.1" FILES_${PN}-misc = "${libdir}/ssl-1.1/misc" FILES_${PN} =+ "${libdir}/ssl-1.1/*" diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch new file mode 100644 index 0000000000..53ad5d028a --- /dev/null +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch @@ -0,0 +1,151 @@ +From 5b78c8f961f25f4dc22d6f2b77ddd06d712cec63 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <jouni@codeaurora.org> +Date: Wed, 3 Jun 2020 23:17:35 +0300 +Subject: [PATCH 1/3] WPS UPnP: Do not allow event subscriptions with URLs to + other networks + +The UPnP Device Architecture 2.0 specification errata ("UDA errata +16-04-2020.docx") addresses a problem with notifications being allowed +to go out to other domains by disallowing such cases. Do such filtering +for the notification callback URLs to avoid undesired connections to +external networks based on subscriptions that any device in the local +network could request when WPS support for external registrars is +enabled (the upnp_iface parameter in hostapd configuration). + +Upstream-Status: Backport +CVE: CVE-2020-12695 patch #1 +Signed-off-by: Jouni Malinen <jouni@codeaurora.org> +Signed-off-by: Armin Kuster <akuster@mvista.com> + +--- + src/wps/wps_er.c | 2 +- + src/wps/wps_upnp.c | 38 ++++++++++++++++++++++++++++++++++++-- + src/wps/wps_upnp_i.h | 3 ++- + 3 files changed, 39 insertions(+), 4 deletions(-) + +Index: wpa_supplicant-2.9/src/wps/wps_er.c +=================================================================== +--- wpa_supplicant-2.9.orig/src/wps/wps_er.c ++++ wpa_supplicant-2.9/src/wps/wps_er.c +@@ -1298,7 +1298,7 @@ wps_er_init(struct wps_context *wps, con + "with %s", filter); + } + if (get_netif_info(er->ifname, &er->ip_addr, &er->ip_addr_text, +- er->mac_addr)) { ++ NULL, er->mac_addr)) { + wpa_printf(MSG_INFO, "WPS UPnP: Could not get IP/MAC address " + "for %s. Does it have IP address?", er->ifname); + wps_er_deinit(er, NULL, NULL); +Index: wpa_supplicant-2.9/src/wps/wps_upnp.c +=================================================================== +--- wpa_supplicant-2.9.orig/src/wps/wps_upnp.c ++++ wpa_supplicant-2.9/src/wps/wps_upnp.c +@@ -303,6 +303,14 @@ static void subscr_addr_free_all(struct + } + + ++static int local_network_addr(struct upnp_wps_device_sm *sm, ++ struct sockaddr_in *addr) ++{ ++ return (addr->sin_addr.s_addr & sm->netmask.s_addr) == ++ (sm->ip_addr & sm->netmask.s_addr); ++} ++ ++ + /* subscr_addr_add_url -- add address(es) for one url to subscription */ + static void subscr_addr_add_url(struct subscription *s, const char *url, + size_t url_len) +@@ -381,6 +389,7 @@ static void subscr_addr_add_url(struct s + + for (rp = result; rp; rp = rp->ai_next) { + struct subscr_addr *a; ++ struct sockaddr_in *addr = (struct sockaddr_in *) rp->ai_addr; + + /* Limit no. of address to avoid denial of service attack */ + if (dl_list_len(&s->addr_list) >= MAX_ADDR_PER_SUBSCRIPTION) { +@@ -389,6 +398,13 @@ static void subscr_addr_add_url(struct s + break; + } + ++ if (!local_network_addr(s->sm, addr)) { ++ wpa_printf(MSG_INFO, ++ "WPS UPnP: Ignore a delivery URL that points to another network %s", ++ inet_ntoa(addr->sin_addr)); ++ continue; ++ } ++ + a = os_zalloc(sizeof(*a) + alloc_len); + if (a == NULL) + break; +@@ -889,11 +905,12 @@ static int eth_get(const char *device, u + * @net_if: Selected network interface name + * @ip_addr: Buffer for returning IP address in network byte order + * @ip_addr_text: Buffer for returning a pointer to allocated IP address text ++ * @netmask: Buffer for returning netmask or %NULL if not needed + * @mac: Buffer for returning MAC address + * Returns: 0 on success, -1 on failure + */ + int get_netif_info(const char *net_if, unsigned *ip_addr, char **ip_addr_text, +- u8 mac[ETH_ALEN]) ++ struct in_addr *netmask, u8 mac[ETH_ALEN]) + { + struct ifreq req; + int sock = -1; +@@ -919,6 +936,19 @@ int get_netif_info(const char *net_if, u + in_addr.s_addr = *ip_addr; + os_snprintf(*ip_addr_text, 16, "%s", inet_ntoa(in_addr)); + ++ if (netmask) { ++ os_memset(&req, 0, sizeof(req)); ++ os_strlcpy(req.ifr_name, net_if, sizeof(req.ifr_name)); ++ if (ioctl(sock, SIOCGIFNETMASK, &req) < 0) { ++ wpa_printf(MSG_ERROR, ++ "WPS UPnP: SIOCGIFNETMASK failed: %d (%s)", ++ errno, strerror(errno)); ++ goto fail; ++ } ++ addr = (struct sockaddr_in *) &req.ifr_netmask; ++ netmask->s_addr = addr->sin_addr.s_addr; ++ } ++ + #ifdef __linux__ + os_strlcpy(req.ifr_name, net_if, sizeof(req.ifr_name)); + if (ioctl(sock, SIOCGIFHWADDR, &req) < 0) { +@@ -1025,11 +1055,15 @@ static int upnp_wps_device_start(struct + + /* Determine which IP and mac address we're using */ + if (get_netif_info(net_if, &sm->ip_addr, &sm->ip_addr_text, +- sm->mac_addr)) { ++ &sm->netmask, sm->mac_addr)) { + wpa_printf(MSG_INFO, "WPS UPnP: Could not get IP/MAC address " + "for %s. Does it have IP address?", net_if); + goto fail; + } ++ wpa_printf(MSG_DEBUG, "WPS UPnP: Local IP address %s netmask %s hwaddr " ++ MACSTR, ++ sm->ip_addr_text, inet_ntoa(sm->netmask), ++ MAC2STR(sm->mac_addr)); + + /* Listen for incoming TCP connections so that others + * can fetch our "xml files" from us. +Index: wpa_supplicant-2.9/src/wps/wps_upnp_i.h +=================================================================== +--- wpa_supplicant-2.9.orig/src/wps/wps_upnp_i.h ++++ wpa_supplicant-2.9/src/wps/wps_upnp_i.h +@@ -128,6 +128,7 @@ struct upnp_wps_device_sm { + u8 mac_addr[ETH_ALEN]; /* mac addr of network i.f. we use */ + char *ip_addr_text; /* IP address of network i.f. we use */ + unsigned ip_addr; /* IP address of network i.f. we use (host order) */ ++ struct in_addr netmask; + int multicast_sd; /* send multicast messages over this socket */ + int ssdp_sd; /* receive discovery UPD packets on socket */ + int ssdp_sd_registered; /* nonzero if we must unregister */ +@@ -158,7 +159,7 @@ struct subscription * subscription_find( + const u8 uuid[UUID_LEN]); + void subscr_addr_delete(struct subscr_addr *a); + int get_netif_info(const char *net_if, unsigned *ip_addr, char **ip_addr_text, +- u8 mac[ETH_ALEN]); ++ struct in_addr *netmask, u8 mac[ETH_ALEN]); + + /* wps_upnp_ssdp.c */ + void msearchreply_state_machine_stop(struct advertisement_state_machine *a); diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch new file mode 100644 index 0000000000..59640859dd --- /dev/null +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch @@ -0,0 +1,62 @@ +From f7d268864a2660b7239b9a8ff5ad37faeeb751ba Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <jouni@codeaurora.org> +Date: Wed, 3 Jun 2020 22:41:02 +0300 +Subject: [PATCH 2/3] WPS UPnP: Fix event message generation using a long URL + path + +More than about 700 character URL ended up overflowing the wpabuf used +for building the event notification and this resulted in the wpabuf +buffer overflow checks terminating the hostapd process. Fix this by +allocating the buffer to be large enough to contain the full URL path. +However, since that around 700 character limit has been the practical +limit for more than ten years, start explicitly enforcing that as the +limit or the callback URLs since any longer ones had not worked before +and there is no need to enable them now either. + +Upstream-Status: Backport +CVE: CVE-2020-12695 patch #2 +Signed-off-by: Jouni Malinen <jouni@codeaurora.org> +Signed-off-by: Armin Kuster <akuster@mvista.com> + +--- + src/wps/wps_upnp.c | 9 +++++++-- + src/wps/wps_upnp_event.c | 3 ++- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/src/wps/wps_upnp.c b/src/wps/wps_upnp.c +index 7d4b7439940e..ab685d52ecab 100644 +--- a/src/wps/wps_upnp.c ++++ b/src/wps/wps_upnp.c +@@ -328,9 +328,14 @@ static void subscr_addr_add_url(struct subscription *s, const char *url, + int rerr; + size_t host_len, path_len; + +- /* url MUST begin with http: */ +- if (url_len < 7 || os_strncasecmp(url, "http://", 7)) ++ /* URL MUST begin with HTTP scheme. In addition, limit the length of ++ * the URL to 700 characters which is around the limit that was ++ * implicitly enforced for more than 10 years due to a bug in ++ * generating the event messages. */ ++ if (url_len < 7 || os_strncasecmp(url, "http://", 7) || url_len > 700) { ++ wpa_printf(MSG_DEBUG, "WPS UPnP: Reject an unacceptable URL"); + goto fail; ++ } + url += 7; + url_len -= 7; + +diff --git a/src/wps/wps_upnp_event.c b/src/wps/wps_upnp_event.c +index d7e6edcc6503..08a23612f338 100644 +--- a/src/wps/wps_upnp_event.c ++++ b/src/wps/wps_upnp_event.c +@@ -147,7 +147,8 @@ static struct wpabuf * event_build_message(struct wps_event_ *e) + struct wpabuf *buf; + char *b; + +- buf = wpabuf_alloc(1000 + wpabuf_len(e->data)); ++ buf = wpabuf_alloc(1000 + os_strlen(e->addr->path) + ++ wpabuf_len(e->data)); + if (buf == NULL) + return NULL; + wpabuf_printf(buf, "NOTIFY %s HTTP/1.1\r\n", e->addr->path); +-- +2.20.1 diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch new file mode 100644 index 0000000000..8a014ef28a --- /dev/null +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch @@ -0,0 +1,50 @@ +From 85aac526af8612c21b3117dadc8ef5944985b476 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <jouni@codeaurora.org> +Date: Thu, 4 Jun 2020 21:24:04 +0300 +Subject: [PATCH 3/3] WPS UPnP: Handle HTTP initiation failures for events more + properly + +While it is appropriate to try to retransmit the event to another +callback URL on a failure to initiate the HTTP client connection, there +is no point in trying the exact same operation multiple times in a row. +Replve the event_retry() calls with event_addr_failure() for these cases +to avoid busy loops trying to repeat the same failing operation. + +These potential busy loops would go through eloop callbacks, so the +process is not completely stuck on handling them, but unnecessary CPU +would be used to process the continues retries that will keep failing +for the same reason. + +Upstream-Status: Backport +CVE: CVE-2020-12695 patch #2 +Signed-off-by: Jouni Malinen <jouni@codeaurora.org> +Signed-off-by: Armin Kuster <akuster@mvista.com> + +--- + src/wps/wps_upnp_event.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/wps/wps_upnp_event.c b/src/wps/wps_upnp_event.c +index 08a23612f338..c0d9e41d9a38 100644 +--- a/src/wps/wps_upnp_event.c ++++ b/src/wps/wps_upnp_event.c +@@ -294,7 +294,7 @@ static int event_send_start(struct subscription *s) + + buf = event_build_message(e); + if (buf == NULL) { +- event_retry(e, 0); ++ event_addr_failure(e); + return -1; + } + +@@ -302,7 +302,7 @@ static int event_send_start(struct subscription *s) + event_http_cb, e); + if (e->http_event == NULL) { + wpabuf_free(buf); +- event_retry(e, 0); ++ event_addr_failure(e); + return -1; + } + +-- +2.20.1 diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb index 2936e89eed..7cc03fef7d 100644 --- a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb @@ -25,7 +25,10 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \ file://wpa_supplicant.conf-sane \ file://99_wpa_supplicant \ file://0001-replace-systemd-install-Alias-with-WantedBy.patch \ - file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \ + file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \ + file://0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch \ + file://0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch \ + file://0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch \ " SRC_URI[md5sum] = "2d2958c782576dc9901092fbfecb4190" SRC_URI[sha256sum] = "fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17" diff --git a/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb b/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb index 61fb8cbad1..61fb8cbad1 100644 --- a/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb +++ b/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb diff --git a/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch b/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch deleted file mode 100644 index 9b9432844c..0000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch +++ /dev/null @@ -1,85 +0,0 @@ -From d3539be8f27b8cbfdfee460fe08299158f08bcd9 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Tue, 19 Nov 2019 13:06:40 +0100 -Subject: [PATCH] Remove stime() function calls - -stime() has been deprecated in glibc 2.31 and replaced with -clock_settime(). Let's replace the stime() function calls with -clock_settime() in preperation. - -function old new delta -rdate_main 197 224 +27 -clock_settime - 27 +27 -date_main 926 941 +15 -stime 37 - -37 ------------------------------------------------------------------------------- -(add/remove: 2/2 grow/shrink: 2/0 up/down: 69/-37) Total: 32 bytes - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9] -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> ---- - coreutils/date.c | 6 +++++- - libbb/missing_syscalls.c | 8 -------- - util-linux/rdate.c | 8 ++++++-- - 3 files changed, 11 insertions(+), 11 deletions(-) - ---- a/coreutils/date.c -+++ b/coreutils/date.c -@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, cha - time(&ts.tv_sec); - #endif - } -+#if !ENABLE_FEATURE_DATE_NANO -+ ts.tv_nsec = 0; -+#endif - localtime_r(&ts.tv_sec, &tm_time); - - /* If date string is given, update tm_time, and maybe set date */ -@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, cha - if (date_str[0] != '@') - tm_time.tm_isdst = -1; - ts.tv_sec = validate_tm_time(date_str, &tm_time); -+ ts.tv_nsec = 0; - - /* if setting time, set it */ -- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) { -+ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) { - bb_perror_msg("can't set date"); - } - } ---- a/libbb/missing_syscalls.c -+++ b/libbb/missing_syscalls.c -@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid) - return syscall(__NR_getsid, pid); - } - --int stime(const time_t *t) --{ -- struct timeval tv; -- tv.tv_sec = *t; -- tv.tv_usec = 0; -- return settimeofday(&tv, NULL); --} -- - int sethostname(const char *name, size_t len) - { - return syscall(__NR_sethostname, name, len); ---- a/util-linux/rdate.c -+++ b/util-linux/rdate.c -@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, ch - if (!(flags & 2)) { /* no -p (-s may be present) */ - if (time(NULL) == remote_time) - bb_error_msg("current time matches remote time"); -- else -- if (stime(&remote_time) < 0) -+ else { -+ struct timespec ts; -+ ts.tv_sec = remote_time; -+ ts.tv_nsec = 0; -+ if (clock_settime(CLOCK_REALTIME, &ts) < 0) - bb_perror_msg_and_die("can't set time of day"); -+ } - } - - if (flags != 1) /* not lone -s */ diff --git a/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch b/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch deleted file mode 100644 index 0c7f9b8132..0000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch +++ /dev/null @@ -1,120 +0,0 @@ -From be5a505d771a77c640acc35ceaa470c80e62f954 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko <vda.linux@googlemail.com> -Date: Thu, 24 Oct 2019 16:26:55 +0200 -Subject: [PATCH] Remove syscall wrappers around clock_gettime, closes 12091 - -12091 "Direct use of __NR_clock_gettime is not time64-safe". - -function old new delta -runsv_main 1698 1712 +14 -startservice 378 383 +5 -get_mono 31 25 -6 -date_main 932 926 -6 -gettimeofday_ns 17 - -17 ------------------------------------------------------------------------------- -(add/remove: 0/1 grow/shrink: 2/2 up/down: 19/-29) Total: -10 bytes - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=be5a505d771a77c640acc35ceaa470c80e62f954] -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> ---- - Makefile.flags | 6 ++++-- - coreutils/date.c | 16 +++------------- - libbb/time.c | 11 +---------- - runit/runsv.c | 11 +---------- - 4 files changed, 9 insertions(+), 35 deletions(-) - ---- a/Makefile.flags -+++ b/Makefile.flags -@@ -129,10 +129,12 @@ endif - # fall back to using a temp file: - CRYPT_AVAILABLE := $(shell echo 'int main(void){return 0;}' >crypttest.c; $(CC) $(CFLAGS) -lcrypt -o /dev/null crypttest.c >/dev/null 2>&1 && echo "y"; rm crypttest.c) - ifeq ($(CRYPT_AVAILABLE),y) --LDLIBS += m crypt -+LDLIBS += m rt crypt - else --LDLIBS += m -+LDLIBS += m rt - endif -+# libm may be needed for dc, awk, ntpd -+# librt may be needed for clock_gettime() - - # libpam may use libpthread, libdl and/or libaudit. - # On some platforms that requires an explicit -lpthread, -ldl, -laudit. ---- a/coreutils/date.c -+++ b/coreutils/date.c -@@ -33,10 +33,9 @@ - //config: Enable option (-I) to output an ISO-8601 compliant - //config: date/time string. - //config: --//config:# defaults to "no": stat's nanosecond field is a bit non-portable - //config:config FEATURE_DATE_NANO - //config: bool "Support %[num]N nanosecond format specifier" --//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64) -+//config: default n # stat's nanosecond field is a bit non-portable - //config: depends on DATE - //config: select PLATFORM_LINUX - //config: help -@@ -271,17 +270,8 @@ int date_main(int argc UNUSED_PARAM, cha - */ - #endif - } else { --#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime) -- /* libc has incredibly messy way of doing this, -- * typically requiring -lrt. We just skip all this mess */ -- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); --#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64 -- /* Let's only support the 64 suffix syscalls for 64-bit time_t. -- * This simplifies the code for us as we don't need to convert -- * between 64-bit and 32-bit. We also don't have a way to -- * report overflow errors here. -- */ -- syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts); -+#if ENABLE_FEATURE_DATE_NANO -+ clock_gettime(CLOCK_REALTIME, &ts); - #else - time(&ts.tv_sec); - #endif ---- a/libbb/time.c -+++ b/libbb/time.c -@@ -253,18 +253,9 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS( - #define CLOCK_MONOTONIC 1 - #endif - --/* libc has incredibly messy way of doing this, -- * typically requiring -lrt. We just skip all this mess */ - static void get_mono(struct timespec *ts) - { --#if defined(__NR_clock_gettime) -- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) --#elif __TIMESIZE == 64 -- if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts)) --#else --# error "We currently don't support architectures without " \ -- "the __NR_clock_gettime syscall and 32-bit time_t" --#endif -+ if (clock_gettime(CLOCK_MONOTONIC, ts)) - bb_error_msg_and_die("clock_gettime(MONOTONIC) failed"); - } - unsigned long long FAST_FUNC monotonic_ns(void) ---- a/runit/runsv.c -+++ b/runit/runsv.c -@@ -51,18 +51,9 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAG - #if ENABLE_MONOTONIC_SYSCALL - #include <sys/syscall.h> - --/* libc has incredibly messy way of doing this, -- * typically requiring -lrt. We just skip all this mess */ - static void gettimeofday_ns(struct timespec *ts) - { --#if defined(__NR_clock_gettime) -- syscall(__NR_clock_gettime, CLOCK_REALTIME, ts); --#elif __TIMESIZE == 64 -- syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts); --#else --# error "We currently don't support architectures without " \ -- "the __NR_clock_gettime syscall and 32-bit time_t" --#endif -+ clock_gettime(CLOCK_REALTIME, ts); - } - #else - static void gettimeofday_ns(struct timespec *ts) diff --git a/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch b/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch deleted file mode 100644 index 944526b7ca..0000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch +++ /dev/null @@ -1,53 +0,0 @@ -From b7b7452f292f03eefafa6fd1da9bcfc933dee15a Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Wed, 18 Sep 2019 09:28:49 -0700 -Subject: [PATCH] date: Use 64 prefix syscall if we have to - -Some 32-bit architectures no longer have the 32-bit time_t syscalls. -Instead they have suffixed syscalls that returns a 64-bit time_t. If -the architecture doesn't have the non-suffixed syscall and is using a -64-bit time_t let's use the suffixed syscall instead. - -This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel -headers. - -If an architecture only supports the suffixed syscalls, but is still -using a 32-bit time_t fall back to the libc call. - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=b7b7452f292f03eefafa6fd1da9bcfc933dee15a] -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> ---- - coreutils/date.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - ---- a/coreutils/date.c -+++ b/coreutils/date.c -@@ -36,7 +36,7 @@ - //config:# defaults to "no": stat's nanosecond field is a bit non-portable - //config:config FEATURE_DATE_NANO - //config: bool "Support %[num]N nanosecond format specifier" --//config: default n # syscall(__NR_clock_gettime) -+//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64) - //config: depends on DATE - //config: select PLATFORM_LINUX - //config: help -@@ -271,10 +271,17 @@ int date_main(int argc UNUSED_PARAM, cha - */ - #endif - } else { --#if ENABLE_FEATURE_DATE_NANO -+#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime) - /* libc has incredibly messy way of doing this, - * typically requiring -lrt. We just skip all this mess */ - syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); -+#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64 -+ /* Let's only support the 64 suffix syscalls for 64-bit time_t. -+ * This simplifies the code for us as we don't need to convert -+ * between 64-bit and 32-bit. We also don't have a way to -+ * report overflow errors here. -+ */ -+ syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts); - #else - time(&ts.tv_sec); - #endif diff --git a/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch b/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch deleted file mode 100644 index 58a6c0d8a0..0000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 902d3992922fc8db8495d5fb30a4581711b60c62 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Wed, 18 Sep 2019 09:28:50 -0700 -Subject: [PATCH] time: Use 64 prefix syscall if we have to - -Some 32-bit architectures no longer have the 32-bit time_t syscalls. -Instead they have suffixed syscalls that returns a 64-bit time_t. If -the architecture doesn't have the non-suffixed syscall and is using a -64-bit time_t let's use the suffixed syscall instead. - -This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel -headers. - -If an architecture only supports the suffixed syscalls, but is still -using a 32-bit time_t report a compilation error. This avoids us have to -deal with converting between 64-bit and 32-bit values. There are -currently no architectures where this is the case. - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=902d3992922fc8db8495d5fb30a4581711b60c62] -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> ---- - libbb/time.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/libbb/time.c -+++ b/libbb/time.c -@@ -257,7 +257,14 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS( - * typically requiring -lrt. We just skip all this mess */ - static void get_mono(struct timespec *ts) - { -- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) -+#if defined(__NR_clock_gettime) -+ if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) -+#elif __TIMESIZE == 64 -+ if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts)) -+#else -+# error "We currently don't support architectures without " \ -+ "the __NR_clock_gettime syscall and 32-bit time_t" -+#endif - bb_error_msg_and_die("clock_gettime(MONOTONIC) failed"); - } - unsigned long long FAST_FUNC monotonic_ns(void) diff --git a/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch b/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch deleted file mode 100644 index 4760570441..0000000000 --- a/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 8c7419649d6e6fda8fa7d0e863084c78ac728628 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Wed, 28 Aug 2019 10:54:15 -0700 -Subject: [PATCH 3/3] runsv: Use 64 prefix syscall if we have to - -Some 32-bit architectures no longer have the 32-bit time_t syscalls. -Instead they have suffixed syscalls that returns a 64-bit time_t. If -the architecture doesn't have the non-suffixed syscall and is using a -64-bit time_t let's use the suffixed syscall instead. - -This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel -headers. - -If an architecture only supports the suffixed syscalls, but is still -using a 32-bit time_t report a compilation error. This avoids us have to -deal with converting between 64-bit and 32-bit values. There are -currently no architectures where this is the case. - -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=ad27d44ebe950335616f37e36863469dc181b455] ---- - runit/runsv.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/runit/runsv.c b/runit/runsv.c -index ccc762d78..737909b0e 100644 ---- a/runit/runsv.c -+++ b/runit/runsv.c -@@ -55,7 +55,14 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * typically requiring -lrt. We just skip all this mess */ - static void gettimeofday_ns(struct timespec *ts) - { -+#if defined(__NR_clock_gettime) - syscall(__NR_clock_gettime, CLOCK_REALTIME, ts); -+#elif __TIMESIZE == 64 -+ syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts); -+#else -+# error "We currently don't support architectures without " \ -+ "the __NR_clock_gettime syscall and 32-bit time_t" -+#endif - } - #else - static void gettimeofday_ns(struct timespec *ts) --- -2.22.0 - diff --git a/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch index 2a0a40c512..35e981d6a2 100644 --- a/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch +++ b/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch @@ -31,11 +31,11 @@ Signed-off-by: Andreas Oberritter <obi@opendreambox.org> networking/udhcp/dhcpc.c | 29 ++++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) -Index: busybox-1.31.0/networking/udhcp/dhcpc.c +Index: busybox-1.32.0/networking/udhcp/dhcpc.c =================================================================== ---- busybox-1.31.0.orig/networking/udhcp/dhcpc.c -+++ busybox-1.31.0/networking/udhcp/dhcpc.c -@@ -48,6 +48,8 @@ +--- busybox-1.32.0.orig/networking/udhcp/dhcpc.c ++++ busybox-1.32.0/networking/udhcp/dhcpc.c +@@ -48,6 +48,8 @@ struct tpacket_auxdata { }; #endif @@ -55,7 +55,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c USE_FOR_MMU( OPTBIT_b,) IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,) IF_FEATURE_UDHCP_PORT( OPTBIT_P,) -@@ -1124,7 +1128,8 @@ +@@ -1084,7 +1088,8 @@ client_data.state = RENEW_REQUESTED; break; case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ @@ -65,7 +65,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c case REQUESTING: case RELEASED: change_listen_mode(LISTEN_RAW); -@@ -1160,7 +1165,8 @@ +@@ -1120,7 +1125,8 @@ static void perform_release(uint32_t server_addr, uint32_t requested_ip) * Users requested to be notified in all cases, even if not in one * of the states above. */ @@ -75,7 +75,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c change_listen_mode(LISTEN_NONE); client_data.state = RELEASED; -@@ -1278,7 +1284,7 @@ +@@ -1238,7 +1244,7 @@ /* Parse command line */ opt = getopt32long(argv, "^" /* O,x: list; -T,-t,-A take numeric param */ @@ -84,7 +84,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c USE_FOR_MMU("b") IF_FEATURE_UDHCPC_ARPING("a::") IF_FEATURE_UDHCP_PORT("P:") -@@ -1389,6 +1395,10 @@ +@@ -1349,6 +1355,10 @@ logmode |= LOGMODE_SYSLOG; } @@ -95,7 +95,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c /* Create pidfile */ write_pidfile(client_data.pidfile); /* Goes to stdout (unless NOMMU) and possibly syslog */ -@@ -1397,7 +1407,8 @@ +@@ -1357,7 +1367,8 @@ srand(monotonic_us()); client_data.state = INIT_SELECTING; @@ -105,17 +105,17 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c change_listen_mode(LISTEN_RAW); packet_num = 0; timeout = 0; -@@ -1570,7 +1581,8 @@ +@@ -1530,7 +1541,8 @@ } /* Timed out, enter init state */ - bb_info_msg("lease lost, entering init state"); + bb_simple_info_msg("lease lost, entering init state"); - udhcp_run_script(NULL, "deconfig"); + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); client_data.state = INIT_SELECTING; client_data.first_secs = 0; /* make secs field count from 0 */ /*timeout = 0; - already is */ -@@ -1762,8 +1774,10 @@ +@@ -1722,8 +1734,10 @@ "(got ARP reply), declining"); send_decline(/*xid,*/ server_addr, packet.yiaddr); @@ -128,7 +128,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c change_listen_mode(LISTEN_RAW); client_data.state = INIT_SELECTING; client_data.first_secs = 0; /* make secs field count from 0 */ -@@ -1832,8 +1846,10 @@ +@@ -1792,8 +1806,10 @@ /* return to init state */ bb_info_msg("received %s", "DHCP NAK"); udhcp_run_script(&packet, "nak"); diff --git a/poky/meta/recipes-core/busybox/busybox_1.31.1.bb b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb index 2bb1d59ba7..0dfdfdb549 100644 --- a/poky/meta/recipes-core/busybox/busybox_1.31.1.bb +++ b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb @@ -42,14 +42,9 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ file://0001-testsuite-check-uudecode-before-using-it.patch \ file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ - file://0001-date-Use-64-prefix-syscall-if-we-have-to.patch \ - file://0001-time-Use-64-prefix-syscall-if-we-have-to.patch \ - file://0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch \ - file://0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch \ - file://0001-Remove-stime-function-calls.patch \ file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ " SRC_URI_append_libc-musl = " file://musl.cfg " -SRC_URI[tarball.md5sum] = "70913edaf2263a157393af07565c17f0" -SRC_URI[tarball.sha256sum] = "d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998" +SRC_URI[tarball.md5sum] = "9576986f1a960da471d03b72a62f13c7" +SRC_URI[tarball.sha256sum] = "c35d87f1d04b2b153d33c275c2632e40d388a88f19a9e71727e0bbbff51fe689" diff --git a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb index 2422f8634e..f8ae3fd94c 100644 --- a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb +++ b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb @@ -59,9 +59,20 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill l sbindir_progs= "chroot" -PACKAGE_BEFORE_PN_class-target += "coreutils-stdbuf" +# Split stdbuf into its own package, so one can include +# coreutils-stdbuf without getting the rest of coreutils, but make +# coreutils itself pull in stdbuf, so IMAGE_INSTALL += "coreutils" +# always provides all coreutils +PACKAGE_BEFORE_PN_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}" FILES_coreutils-stdbuf = "${bindir}/stdbuf ${libdir}/coreutils/libstdbuf.so" -RDEPENDS_coreutils_class-target += "coreutils-stdbuf" +RDEPENDS_coreutils_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}" + +# However, when the single-binary PACKAGECONFIG is used, stdbuf +# functionality is built into the single coreutils binary, so there's +# no point splitting /usr/bin/stdbuf to its own package. Instead, add +# an RPROVIDE so that rdepending on coreutils-stdbuf will work +# regardless of whether single-binary is in effect. +RPROVIDES_coreutils += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', 'coreutils-stdbuf', '', d)}" # Let aclocal use the relative path for the m4 file rather than the # absolute since coreutils has a lot of m4 files, otherwise there might diff --git a/poky/meta/recipes-core/dropbear/dropbear.inc b/poky/meta/recipes-core/dropbear/dropbear.inc index 7269888a4e..080ee26b2e 100644 --- a/poky/meta/recipes-core/dropbear/dropbear.inc +++ b/poky/meta/recipes-core/dropbear/dropbear.inc @@ -5,7 +5,7 @@ SECTION = "console/network" # some files are from other projects and have others license terms: # public domain, OpenSSH 3.5p1, OpenSSH3.6.1p2, PuTTY LICENSE = "MIT & BSD-3-Clause & BSD-2-Clause & PD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a5ec40cafba26fc4396d0b550f824e01" +LIC_FILES_CHKSUM = "file://LICENSE;md5=25cf44512b7bc8966a48b6b1a9b7605f" DEPENDS = "zlib virtual/crypt" RPROVIDES_${PN} = "ssh sshd" diff --git a/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch b/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch index e48a34bac0..b54581f17a 100644 --- a/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch +++ b/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch @@ -1,33 +1,24 @@ -This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers +From c347ece05a7fdbf50d76cb136b9ed45caed333f6 Mon Sep 17 00:00:00 2001 +From: Joseph Reynolds <joseph.reynolds1@ibm.com> +Date: Thu, 20 Jun 2019 16:29:15 -0500 +Subject: [PATCH] dropbear: new feature: disable-weak-ciphers + +This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers in the dropbear ssh server and client since they're considered weak ciphers and we want to support the stong algorithms. Upstream-Status: Inappropriate [configuration] Signed-off-by: Joseph Reynolds <joseph.reynolds1@ibm.com> -Index: dropbear-2019.78/default_options.h -=================================================================== ---- dropbear-2019.78.orig/default_options.h -+++ dropbear-2019.78/default_options.h -@@ -91,7 +91,7 @@ IMPORTANT: Some options will require "ma - - /* Enable CBC mode for ciphers. This has security issues though - * is the most compatible with older SSH implementations */ --#define DROPBEAR_ENABLE_CBC_MODE 1 -+#define DROPBEAR_ENABLE_CBC_MODE 0 - - /* Enable "Counter Mode" for ciphers. This is more secure than - * CBC mode against certain attacks. It is recommended for security -@@ -101,7 +101,7 @@ IMPORTANT: Some options will require "ma - /* Message integrity. sha2-256 is recommended as a default, - sha1 for compatibility */ - #define DROPBEAR_SHA1_HMAC 1 --#define DROPBEAR_SHA1_96_HMAC 1 -+#define DROPBEAR_SHA1_96_HMAC 0 - #define DROPBEAR_SHA2_256_HMAC 1 - - /* Hostkey/public key algorithms - at least one required, these are used -@@ -149,12 +149,12 @@ IMPORTANT: Some options will require "ma +--- + default_options.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/default_options.h b/default_options.h +index 1aa2297..7ff1394 100644 +--- a/default_options.h ++++ b/default_options.h +@@ -163,12 +163,12 @@ IMPORTANT: Some options will require "make clean" after changes */ * Small systems should generally include either curve25519 or ecdh for performance. * curve25519 is less widely supported but is faster */ diff --git a/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb b/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb deleted file mode 100644 index d2cd8161bf..0000000000 --- a/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb +++ /dev/null @@ -1,4 +0,0 @@ -require dropbear.inc - -SRC_URI[md5sum] = "a972c85ed678ad0fdcb7844e1294fb54" -SRC_URI[sha256sum] = "525965971272270995364a0eb01f35180d793182e63dd0b0c3eb0292291644a4" diff --git a/poky/meta/recipes-core/dropbear/dropbear_2020.80.bb b/poky/meta/recipes-core/dropbear/dropbear_2020.80.bb new file mode 100644 index 0000000000..088c71cb99 --- /dev/null +++ b/poky/meta/recipes-core/dropbear/dropbear_2020.80.bb @@ -0,0 +1,3 @@ +require dropbear.inc + +SRC_URI[sha256sum] = "d927941b91f2da150b2033f1a88b6a47999bf0afb1493a73e9216cffdb5d7949" diff --git a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb index 4080c4a495..32c527799e 100644 --- a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb +++ b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb @@ -170,7 +170,7 @@ MASKED_SCRIPTS = " \ urandom" pkg_postinst_${PN} () { - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if type systemctl >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPTS="--root=$D" fi diff --git a/poky/meta/recipes-core/meta/signing-keys.bb b/poky/meta/recipes-core/meta/signing-keys.bb index 1e1c7e3459..5bab94aa36 100644 --- a/poky/meta/recipes-core/meta/signing-keys.bb +++ b/poky/meta/recipes-core/meta/signing-keys.bb @@ -67,8 +67,6 @@ do_deploy () { fi } do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_RPM}" -# cleandirs should possibly be in deploy.bbclass but we need it -do_deploy[cleandirs] = "${DEPLOYDIR}" # clear stamp-extra-info since MACHINE_ARCH is normally put there by # deploy.bbclass do_deploy[stamp-extra-info] = "" diff --git a/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch b/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch index 462d338b96..ba00efe7b3 100644 --- a/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch +++ b/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch @@ -22,11 +22,9 @@ Upstream-Status: Pending tools/install.sh | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) -diff --git a/Makefile b/Makefile -index 8246b78..d1dbe39 100644 --- a/Makefile +++ b/Makefile -@@ -215,7 +215,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/include/% +@@ -210,7 +210,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc $(INSTALL) -D -m 644 $< $@ $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so @@ -35,8 +33,6 @@ index 8246b78..d1dbe39 100644 install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),) -diff --git a/tools/install.sh b/tools/install.sh -index d913b60..b6a7f79 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -6,18 +6,20 @@ @@ -62,7 +58,7 @@ index d913b60..b6a7f79 100755 m) mode=$OPTARG ;; ?) usage ;; esac -@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM HUP +@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM H umask 077 if test "$symlink" ; then @@ -71,6 +67,3 @@ index d913b60..b6a7f79 100755 else cat < "$1" > "$tmp" chmod "$mode" "$tmp" --- -2.7.4 - diff --git a/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch b/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch index 6a875a717e..f57aae5f3c 100644 --- a/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch +++ b/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch @@ -20,11 +20,9 @@ Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> ldso/dynlink.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) -diff --git a/Makefile b/Makefile -index b46f8ca4..c07e4ae8 100644 --- a/Makefile +++ b/Makefile -@@ -46,7 +46,8 @@ CFLAGS_AUTO = -Os -pipe +@@ -47,7 +47,8 @@ CFLAGS_AUTO = -Os -pipe CFLAGS_C99FSE = -std=c99 -ffreestanding -nostdinc CFLAGS_ALL = $(CFLAGS_C99FSE) @@ -34,20 +32,18 @@ index b46f8ca4..c07e4ae8 100644 CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS_AUTO) $(CFLAGS) LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS) -diff --git a/ldso/dynlink.c b/ldso/dynlink.c -index ec921dfd..7c119c55 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c -@@ -22,6 +22,8 @@ +@@ -24,6 +24,8 @@ + #include "libc.h" #include "dynlink.h" - #include "malloc_impl.h" +#define SYS_PATH_DFLT SYSLIBDIR ":" LIBDIR + static void error(const char *, ...); #define MAXP2(a,b) (-(-(a)&-(b))) -@@ -1038,7 +1040,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by) +@@ -1071,7 +1073,7 @@ static struct dso *load_library(const ch sys_path = ""; } } @@ -56,6 +52,3 @@ index ec921dfd..7c119c55 100644 fd = path_open(name, sys_path, buf, sizeof buf); } pathname = buf; --- -2.7.4 - diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb index 6aa69985d7..0913b09aaf 100644 --- a/poky/meta/recipes-core/musl/musl_git.bb +++ b/poky/meta/recipes-core/musl/musl_git.bb @@ -4,7 +4,7 @@ require musl.inc inherit linuxloader -SRCREV = "1b4e84c56df0f8ca30f6bc05962a860f869e71df" +SRCREV = "fca7428c096066482d8c3f52450810288e27515c" BASEVER = "1.2.0" diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb index 91c1b6ba14..84547630e8 100644 --- a/poky/meta/recipes-core/ovmf/ovmf_git.bb +++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb @@ -37,7 +37,7 @@ EDK_TOOLS_DIR="edk2_basetools" BUILD_OPTIMIZATION="-pipe" # OVMF supports IA only, although it could conceivably support ARM someday. -COMPATIBLE_HOST='(i.86|x86_64).*' +COMPATIBLE_HOST_class-target='(i.86|x86_64).*' # Additional build flags for OVMF with Secure Boot. # Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD". @@ -220,7 +220,6 @@ do_deploy[depends] += "${DEPLOYDEP}" do_deploy() { } -do_deploy[cleandirs] = "${DEPLOYDIR}" do_deploy_class-target() { # For use with "runqemu ovmf". for i in \ diff --git a/poky/meta/recipes-core/systemd/systemd_245.6.bb b/poky/meta/recipes-core/systemd/systemd_245.6.bb index b6681b2069..cdafb98247 100644 --- a/poky/meta/recipes-core/systemd/systemd_245.6.bb +++ b/poky/meta/recipes-core/systemd/systemd_245.6.bb @@ -544,7 +544,6 @@ FILES_${PN} = " ${base_bindir}/* \ ${bindir}/resolvectl \ ${bindir}/timedatectl \ ${bindir}/bootctl \ - ${bindir}/kernel-install \ ${exec_prefix}/lib/tmpfiles.d/*.conf \ ${exec_prefix}/lib/systemd \ ${exec_prefix}/lib/modules-load.d \ diff --git a/poky/meta/recipes-devtools/bison/bison_3.6.3.bb b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb index 1d0f5995c1..0c877c3c58 100644 --- a/poky/meta/recipes-devtools/bison/bison_3.6.3.bb +++ b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb @@ -13,7 +13,7 @@ SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \ file://add-with-bisonlocaledir.patch \ file://0001-bison-fix-the-parallel-build.patch \ " -SRC_URI[sha256sum] = "06db793651de9dd5f0a85a6fe4bdbca413c0806bf2432377523da96ca0b4b73d" +SRC_URI[sha256sum] = "8b13473b31ca7fcf65e5e8a74224368ffd5df19275602a9c9567ba393f18577d" # No point in hardcoding path to m4, just use PATH EXTRA_OECONF += "M4=m4" diff --git a/poky/meta/recipes-devtools/ccache/ccache.inc b/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb index dcbbf0ca7a..852583dfd2 100644 --- a/poky/meta/recipes-devtools/ccache/ccache.inc +++ b/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb @@ -5,11 +5,15 @@ same compilation is being done again. Supported languages are C, C\+\+, \ Objective-C and Objective-C++." HOMEPAGE = "http://ccache.samba.org" SECTION = "devel" + LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a" DEPENDS = "zlib" SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz" +SRC_URI[sha256sum] = "447ddf21a5f0ffa6b6d26839ae876a6d17d0d7e3533926cdf78ecd11dad793f8" + UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/" inherit autotools diff --git a/poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb b/poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb deleted file mode 100644 index a4de6c9fe1..0000000000 --- a/poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb +++ /dev/null @@ -1,7 +0,0 @@ -require ccache.inc - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a" - -SRC_URI[md5sum] = "a4a38afc62ed189904357739fd8f3fb8" -SRC_URI[sha256sum] = "92838e2133c9e704fdab9ee2608dad86c99021278b9ac47d065aa8ff2ea8ce36" diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.2.21.bb b/poky/meta/recipes-devtools/dnf/dnf_4.2.23.bb index 44dab1d8a6..8cfd4d0c89 100644 --- a/poky/meta/recipes-devtools/dnf/dnf_4.2.21.bb +++ b/poky/meta/recipes-devtools/dnf/dnf_4.2.23.bb @@ -17,7 +17,7 @@ SRC_URI = "git://github.com/rpm-software-management/dnf.git \ file://0001-dnf-write-the-log-lock-to-root.patch \ " -SRCREV = "864c381baabf024c299dca75abfda96139b8f583" +SRCREV = "126d861812f827285960592359615ed7cb195aac" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.179.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.180.bb index 1da95ec1de..9f8bfc24f3 100644 --- a/poky/meta/recipes-devtools/elfutils/elfutils_0.179.bb +++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.180.bb @@ -15,33 +15,20 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ file://0006-Fix-build-on-aarch64-musl.patch \ file://0001-libasm-may-link-with-libbz2-if-found.patch \ file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ - file://debian/hppa_backend.diff \ - file://debian/arm_backend.diff \ - file://debian/mips_backend.diff \ - file://debian/mips_readelf_w.patch \ - file://debian/kfreebsd_path.patch \ - file://debian/0001-Ignore-differences-between-mips-machine-identifiers.patch \ - file://debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \ - file://debian/0003-Add-mips-n64-relocation-format-hack.patch \ - file://debian/hurd_path.patch \ - file://debian/ignore_strmerge.diff \ - file://debian/disable_werror.patch \ - file://debian/testsuite-ignore-elflint.diff \ - file://debian/mips_cfi.patch \ - file://debian/0001-fix-compile-failure-with-debian-patches.patch \ file://0001-skip-the-test-when-gcc-not-deployed.patch \ file://0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch \ file://run-ptest \ file://ptest.patch \ + file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \ " SRC_URI_append_libc-musl = " \ file://0001-musl-obstack-fts.patch \ file://0002-musl-libs.patch \ file://0003-musl-utils.patch \ file://0004-Fix-error-on-musl.patch \ + file://0015-config-eu.am-do-not-use-Werror.patch \ " -SRC_URI[md5sum] = "8ee56b371b5a7ea081284c44e5164600" -SRC_URI[sha256sum] = "25a545566cbacaa37ae6222e58f1c48ea4570f53ba991886e2f5ce96e22a23a2" +SRC_URI[sha256sum] = "b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d" inherit autotools gettext ptest pkgconfig diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch b/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch index f751a2ecdb..2450b0d6b8 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch @@ -1,7 +1,7 @@ -From 8ccf3d92b8766b53f203df7e01b489604ef851f3 Mon Sep 17 00:00:00 2001 +From 1ec7b2208803e0fbdcbe6c07b849e7dc4d9fa8a2 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Fri, 23 Aug 2019 10:17:25 +0800 -Subject: [PATCH 1/4] musl-obstack-fts +Subject: [PATCH] musl-obstack-fts Look for libfts and libobstack during configure, these libraries are external to libc when using musl, whereas @@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index cad7b2b..6d4229b 100644 +index e9649c2..03643c8 100644 --- a/configure.ac +++ b/configure.ac -@@ -529,6 +529,60 @@ else +@@ -538,6 +538,60 @@ else fi AC_SUBST([argp_LDADD]) @@ -122,6 +122,3 @@ index 13d9bda..d5a4f7d 100644 unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(demanglelib) elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch new file mode 100644 index 0000000000..481b912387 --- /dev/null +++ b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch @@ -0,0 +1,27 @@ +From 1ca86294ee5454592c9ad855e13080509d8a92d3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 23 Jun 2020 07:49:35 +0000 +Subject: [PATCH] tests/Makefile.am: compile test_nlist with standard CFLAGS + +Otherwise, it will contain build paths in it and wont +be reproducible. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + tests/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 8048b69..d2b28a4 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -86,7 +86,7 @@ backtrace-child-biarch$(EXEEXT): backtrace-child.c + test-nlist$(EXEEXT): test-nlist.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) \ +- $(test_nlist_CFLAGS) $(test_nlist_LDADD) -o $@ $< ++ $(CFLAGS) $(test_nlist_LDADD) -o $@ $< + + TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ + update1 update2 update3 update4 \ diff --git a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch b/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch index cf14683864..d5ec0ec9e5 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch @@ -1,7 +1,7 @@ -From ea908c7009de5a208383abf4bec4c6b3d9519ca3 Mon Sep 17 00:00:00 2001 +From 9a57efb0f826a70ae360aa55504ee2de656b92b6 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Fri, 23 Aug 2019 10:18:47 +0800 -Subject: [PATCH 2/4] musl-libs +Subject: [PATCH] musl-libs Collection of fixes needed to compile libelf and other libraries provided by elfutils for musl targets @@ -104,7 +104,7 @@ index 7bcf61c..11dcc8b 100644 return elf_errmsg (error & 0xffff); case OTHER_ERROR (LIBDW): diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c -index d46ab5a..1c3faee 100644 +index 0434f1e..5afaee8 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -50,6 +50,7 @@ @@ -116,7 +116,7 @@ index d46ab5a..1c3faee 100644 /* If fts.h is included before config.h, its indirect inclusions may not give us the right LFS aliases of these functions, so map them manually. */ diff --git a/libelf/elf.h b/libelf/elf.h -index bed273d..be228e6 100644 +index 197b557..8e5b94c 100644 --- a/libelf/elf.h +++ b/libelf/elf.h @@ -21,7 +21,9 @@ @@ -130,9 +130,9 @@ index bed273d..be228e6 100644 /* Standard ELF types. */ -@@ -4029,6 +4031,7 @@ enum - #define R_NDS32_TLS_TPOFF 102 - #define R_NDS32_TLS_DESC 119 +@@ -4103,6 +4105,7 @@ enum + #define R_ARC_TLS_LE_S9 0x4a + #define R_ARC_TLS_LE_32 0x4b -__END_DECLS - @@ -140,6 +140,3 @@ index bed273d..be228e6 100644 +} +#endif #endif /* elf.h */ --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch index 79c9d9ad57..4f28d9d027 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch @@ -1,7 +1,7 @@ -From 94028b16e56c8eef1aa02dcc4da268a0e471b4ea Mon Sep 17 00:00:00 2001 +From 6923400b777d4ba6f040c4006413bf997326460f Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Fri, 23 Aug 2019 10:19:48 +0800 -Subject: [PATCH 3/4] musl-utils +Subject: [PATCH] musl-utils Provide missing defines which otherwise are available on glibc system headers @@ -161,6 +161,3 @@ index 9b8c09a..1fb5063 100644 /* Name and version of program. */ ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch b/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch index 1b2f9ed98b..481e4b38eb 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch @@ -1,7 +1,7 @@ -From 7ff8cbecde7455b530fa7894a78d2326799f2556 Mon Sep 17 00:00:00 2001 +From 48b769ab692c8f02c1ae467229fe3404f662098a Mon Sep 17 00:00:00 2001 From: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Wed, 1 May 2019 22:15:03 +0100 -Subject: [PATCH 4/4] Fix error on musl: +Subject: [PATCH] Fix error on musl: | ../../elfutils-0.176/tests/elfstrmerge.c: In function 'main': | ../../elfutils-0.176/tests/elfstrmerge.c:370:60: error: 'ALLPERMS' undeclared (first use in this function); did you mean 'EPERM'? @@ -34,6 +34,3 @@ index ba0d68d..1d2447f 100644 /* The original ELF file. */ static int fd = -1; static Elf *elf = NULL; --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch new file mode 100644 index 0000000000..c3ae357265 --- /dev/null +++ b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch @@ -0,0 +1,36 @@ +From dce2187dd8f592316357b200ebbe8dbed9ee65cb Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 22 Jun 2020 21:35:16 +0000 +Subject: [PATCH] config/eu.am: do not use -Werror + +Due to re-definition of error() on musl, gcc starts throwing +errors where none happen with glibc. Since upstream is not +likely to be interested in musl builds, lets just disable +Werror. + +Upstream-Status: Inappropriate [oe core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + config/eu.am | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/config/eu.am b/config/eu.am +index 6c3c444..3bc0dc9 100644 +--- a/config/eu.am ++++ b/config/eu.am +@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ + -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ +- $(if $($(*F)_no_Werror),,-Werror) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ + $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ +@@ -83,7 +82,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ + -Wtrampolines \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ +- $(if $($(*F)_no_Werror),,-Werror) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ + $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch deleted file mode 100644 index a2983c5770..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 77cb4a53c270d5854d3af24f19547bc3de825233 Mon Sep 17 00:00:00 2001 -From: James Cowgill <james410@cowgill.org.uk> -Date: Mon, 5 Jan 2015 15:16:58 +0000 -Subject: [PATCH 1/3] Ignore differences between mips machine identifiers - -Little endian binaries actually use EM_MIPS so you can't tell the endianness -from the elf machine id. Also, the EM_MIPS_RS3_LE machine is dead anyway (the -kernel will not load binaries containing it). - -Signed-off-by: James Cowgill <james410@cowgill.org.uk> - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - backends/mips_init.c | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -Index: b/backends/mips_init.c -=================================================================== ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unus - return NULL; - - /* We handle it. */ -- if (machine == EM_MIPS) -- eh->name = "MIPS R3000 big-endian"; -- else if (machine == EM_MIPS_RS3_LE) -- eh->name = "MIPS R3000 little-endian"; -- -+ eh->name = "MIPS"; - mips_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch deleted file mode 100644 index 19a2015062..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 3f3e7b16934ec58ab47d2bdc9982f54a55b07534 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Wed, 21 Aug 2019 16:25:33 +0800 -Subject: [PATCH] fix compile failure with debian patches - -While applying debian patches, there is a compile failure -... -elfutils-0.177/backends/mips_init.c:48:5: error: 'Ebl' {aka 'struct ebl'} has no member named 'name' -... - -Since upstream applied commit [b323391 libdwelf: Add dwelf_elf_e_machine_string -and use it in readelf], it remove 'name' from 'struct ebl' - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - backends/mips_init.c | 1 - - backends/parisc_init.c | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/backends/mips_init.c b/backends/mips_init.c -index bce5abe..e1c65c8 100644 ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -45,7 +45,6 @@ mips_init (Elf *elf __attribute__ ((unused)), - return NULL; - - /* We handle it. */ -- eh->name = "MIPS"; - mips_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); -diff --git a/backends/parisc_init.c b/backends/parisc_init.c -index f1e401c..97b4a8c 100644 ---- a/backends/parisc_init.c -+++ b/backends/parisc_init.c -@@ -56,7 +56,6 @@ parisc_init (Elf *elf __attribute__ ((unused)), - pa64 = 1; - } - /* We handle it. */ -- eh->name = "PA-RISC"; - parisc_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, machine_flag_check); --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch deleted file mode 100644 index aee00cba14..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch +++ /dev/null @@ -1,171 +0,0 @@ -From fdaab18a65ed2529656baa64cb6169f34d7e507b Mon Sep 17 00:00:00 2001 -From: James Cowgill <james410@cowgill.org.uk> -Date: Mon, 5 Jan 2015 15:17:01 +0000 -Subject: [PATCH 2/3] Add support for mips64 abis in mips_retval.c - -Signed-off-by: James Cowgill <james410@cowgill.org.uk> - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - backends/mips_retval.c | 104 ++++++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 94 insertions(+), 10 deletions(-) - -diff --git a/backends/mips_retval.c b/backends/mips_retval.c -index 33f12a7..d5c6ef0 100644 ---- a/backends/mips_retval.c -+++ b/backends/mips_retval.c -@@ -91,6 +91,8 @@ enum mips_abi find_mips_abi(Elf *elf) - default: - if ((elf_flags & EF_MIPS_ABI2)) - return MIPS_ABI_N32; -+ else if ((ehdr->e_ident[EI_CLASS] == ELFCLASS64)) -+ return MIPS_ABI_N64; - } - - /* GCC creates a pseudo-section whose name describes the ABI. */ -@@ -195,6 +197,57 @@ static const Dwarf_Op loc_aggregate[] = - }; - #define nloc_aggregate 1 - -+/* Test if a struct member is a float */ -+static int is_float_child(Dwarf_Die *childdie) -+{ -+ /* Test if this is actually a struct member */ -+ if (dwarf_tag(childdie) != DW_TAG_member) -+ return 0; -+ -+ /* Get type of member */ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Die child_type_mem; -+ Dwarf_Die *child_typedie = -+ dwarf_formref_die(dwarf_attr_integrate(childdie, -+ DW_AT_type, -+ &attr_mem), &child_type_mem); -+ -+ if (dwarf_tag(child_typedie) != DW_TAG_base_type) -+ return 0; -+ -+ /* Get base subtype */ -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (child_typedie, -+ DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return 0; -+ -+ return encoding == DW_ATE_float; -+} -+ -+/* Returns the number of fpregs which can be returned in the given struct */ -+static int get_struct_fpregs(Dwarf_Die *structtypedie) -+{ -+ Dwarf_Die child_mem; -+ int fpregs = 0; -+ -+ /* Get first structure member */ -+ if (dwarf_child(structtypedie, &child_mem) != 0) -+ return 0; -+ -+ do -+ { -+ /* Ensure this register is a float */ -+ if (!is_float_child(&child_mem)) -+ return 0; -+ -+ fpregs++; -+ } -+ while (dwarf_siblingof (&child_mem, &child_mem) == 0); -+ -+ return fpregs; -+} -+ - int - mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - { -@@ -240,6 +293,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - tag = dwarf_tag (typedie); - } - -+ Dwarf_Word size; - switch (tag) - { - case -1: -@@ -258,8 +312,6 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - case DW_TAG_enumeration_type: - case DW_TAG_pointer_type: - case DW_TAG_ptr_to_member_type: -- { -- Dwarf_Word size; - if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, - &attr_mem), &size) != 0) - { -@@ -289,7 +341,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - if (size <= 4*regsize && abi == MIPS_ABI_O32) - return nloc_fpregquad; - -- goto aggregate; -+ goto large; - } - } - *locp = ABI_LOC(loc_intreg, regsize); -@@ -298,18 +350,50 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - if (size <= 2*regsize) - return nloc_intregpair; - -- /* Else fall through. Shouldn't happen though (at least with gcc) */ -- } -+ /* Else pass in memory. Shouldn't happen though (at least with gcc) */ -+ goto large; - - case DW_TAG_structure_type: - case DW_TAG_class_type: - case DW_TAG_union_type: -- case DW_TAG_array_type: -- aggregate: -- /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ -- if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) -- return -2; -+ /* Handle special cases for structures <= 128 bytes in newer ABIs */ -+ if (abi == MIPS_ABI_EABI32 || abi == MIPS_ABI_EABI64 || -+ abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64) -+ { -+ if (dwarf_aggregate_size (typedie, &size) == 0 && size <= 16) -+ { -+ /* -+ * Special case in N64 / N32 - -+ * structures containing only floats are returned in fp regs. -+ * Everything else is returned in integer regs. -+ */ -+ if (tag != DW_TAG_union_type && -+ (abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64)) -+ { -+ int num_fpregs = get_struct_fpregs(typedie); -+ if (num_fpregs == 1 || num_fpregs == 2) -+ { -+ *locp = loc_fpreg; -+ if (num_fpregs == 1) -+ return nloc_fpreg; -+ else -+ return nloc_fpregpair; -+ } -+ } -+ -+ *locp = loc_intreg; -+ if (size <= 8) -+ return nloc_intreg; -+ else -+ return nloc_intregpair; -+ } -+ } -+ -+ /* Fallthrough to handle large types */ - -+ case DW_TAG_array_type: -+ large: -+ /* Return large structures in memory */ - *locp = loc_aggregate; - return nloc_aggregate; - } --- -2.1.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch deleted file mode 100644 index c949e96533..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch +++ /dev/null @@ -1,229 +0,0 @@ -From 59d4b8c48e5040af7e02b34eb26ea602ec82a38e Mon Sep 17 00:00:00 2001 -From: James Cowgill <james410@cowgill.org.uk> -Date: Mon, 5 Jan 2015 15:17:02 +0000 -Subject: [PATCH 3/3] Add mips n64 relocation format hack - -MIPSEL N64 ELF files use a slightly different format for storing relocation -entries which is incompatible with the normal R_SYM / R_INFO macros. -To workaround this, we rearrange the bytes in the relocation's r_info field -when reading and writing the relocations. - -This patch also ensures that strip.c sets the correct value of e_machine -before manipulating relocations so that these changes take effect. - -Signed-off-by: James Cowgill <james410@cowgill.org.uk> - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - libelf/gelf_getrel.c | 25 +++++++++++++++++++++++-- - libelf/gelf_getrela.c | 25 +++++++++++++++++++++++-- - libelf/gelf_update_rel.c | 20 +++++++++++++++++++- - libelf/gelf_update_rela.c | 20 +++++++++++++++++++- - src/strip.c | 17 +++++++++++++++++ - 5 files changed, 101 insertions(+), 6 deletions(-) - -Index: elfutils-0.175/libelf/gelf_getrel.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_getrel.c -+++ elfutils-0.175/libelf/gelf_getrel.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - GElf_Rel * - gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) -@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GE - result = NULL; - } - else -- result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], -- sizeof (Elf64_Rel)); -+ { -+ GElf_Ehdr hdr; -+ result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], -+ sizeof (Elf64_Rel)); -+ -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* -+ * The relocation format is mangled on MIPSEL N64 -+ * We'll adjust it so at least R_SYM will work on it -+ */ -+ GElf_Xword r_info = dst->r_info; -+ dst->r_info = (r_info << 32) | -+ ((r_info >> 8) & 0xFF000000) | -+ ((r_info >> 24) & 0x00FF0000) | -+ ((r_info >> 40) & 0x0000FF00) | -+ ((r_info >> 56) & 0x000000FF); -+ } -+ } - } - - rwlock_unlock (scn->elf->lock); -Index: elfutils-0.175/libelf/gelf_getrela.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_getrela.c -+++ elfutils-0.175/libelf/gelf_getrela.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - GElf_Rela * - gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) -@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, G - result = NULL; - } - else -- result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], -- sizeof (Elf64_Rela)); -+ { -+ GElf_Ehdr hdr; -+ result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], -+ sizeof (Elf64_Rela)); -+ -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* -+ * The relocation format is mangled on MIPSEL N64 -+ * We'll adjust it so at least R_SYM will work on it -+ */ -+ GElf_Xword r_info = dst->r_info; -+ dst->r_info = (r_info << 32) | -+ ((r_info >> 8) & 0xFF000000) | -+ ((r_info >> 24) & 0x00FF0000) | -+ ((r_info >> 40) & 0x0000FF00) | -+ ((r_info >> 56) & 0x000000FF); -+ } -+ } - } - - rwlock_unlock (scn->elf->lock); -Index: elfutils-0.175/libelf/gelf_update_rel.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_update_rel.c -+++ elfutils-0.175/libelf/gelf_update_rel.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - int - gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) -@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx, - } - else - { -+ GElf_Ehdr hdr; -+ GElf_Rel value = *src; -+ - /* Check whether we have to resize the data buffer. */ - if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) - { -@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx, - goto out; - } - -- ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = *src; -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ -+ GElf_Xword r_info = value.r_info; -+ value.r_info = (r_info >> 32) | -+ ((r_info << 8) & 0x000000FF00000000) | -+ ((r_info << 24) & 0x0000FF0000000000) | -+ ((r_info << 40) & 0x00FF000000000000) | -+ ((r_info << 56) & 0xFF00000000000000); -+ } -+ -+ ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = value; - } - - result = 1; -Index: elfutils-0.175/libelf/gelf_update_rela.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_update_rela.c -+++ elfutils-0.175/libelf/gelf_update_rela.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - int - gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) -@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx - } - else - { -+ GElf_Ehdr hdr; -+ GElf_Rela value = *src; -+ - /* Check whether we have to resize the data buffer. */ - if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) - { -@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx - goto out; - } - -- ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = *src; -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ -+ GElf_Xword r_info = value.r_info; -+ value.r_info = (r_info >> 32) | -+ ((r_info << 8) & 0x000000FF00000000) | -+ ((r_info << 24) & 0x0000FF0000000000) | -+ ((r_info << 40) & 0x00FF000000000000) | -+ ((r_info << 56) & 0xFF00000000000000); -+ } -+ -+ ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = value; - } - - result = 1; -Index: elfutils-0.175/src/strip.c -=================================================================== ---- elfutils-0.175.orig/src/strip.c -+++ elfutils-0.175/src/strip.c -@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char - goto fail; - } - -+ /* Copy identity part of the ELF header now */ -+ newehdr = gelf_getehdr (newelf, &newehdr_mem); -+ if (newehdr == NULL) -+ INTERNAL_ERROR (fname); -+ -+ memcpy (newehdr->e_ident, ehdr->e_ident, EI_NIDENT); -+ newehdr->e_type = ehdr->e_type; -+ newehdr->e_machine = ehdr->e_machine; -+ newehdr->e_version = ehdr->e_version; -+ -+ if (gelf_update_ehdr (newelf, newehdr) == 0) -+ { -+ error (0, 0, gettext ("%s: error while creating ELF header: %s"), -+ fname, elf_errmsg (-1)); -+ return 1; -+ } -+ - /* Copy over the old program header if needed. */ - if (phnum > 0) - { diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff b/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff deleted file mode 100644 index ba0ce33bd4..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff +++ /dev/null @@ -1,624 +0,0 @@ -From 4e6fededb3d8c90694c44214c862ac216a69ecae Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Wed, 21 Aug 2019 16:50:33 +0800 -Subject: [PATCH] arm_backend - -Upstream-Status: Pending [from debian] -Rebase to 0.177 -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - backends/arm_init.c | 18 ++++- - backends/arm_regs.c | 132 ++++++++++++++++++++++++++++++++++++ - backends/arm_retval.c | 43 +++++++++++- - backends/libebl_arm.h | 9 +++ - libelf/elf.h | 11 +++ - tests/run-addrcfi.sh | 93 ++++++++++++++++++++++++- - tests/run-allregs.sh | 95 +++++++++++++++++++++++++- - tests/run-readelf-mixed-corenote.sh | 11 ++- - 8 files changed, 400 insertions(+), 12 deletions(-) - create mode 100644 backends/libebl_arm.h - -diff --git a/backends/arm_init.c b/backends/arm_init.c -index af023f0..ea2bcb7 100644 ---- a/backends/arm_init.c -+++ b/backends/arm_init.c -@@ -35,20 +35,31 @@ - #define RELOC_PREFIX R_ARM_ - #include "libebl_CPU.h" - -+#include "libebl_arm.h" -+ - /* This defines the common reloc hooks based on arm_reloc.def. */ - #include "common-reloc.c" - - - const char * --arm_init (Elf *elf __attribute__ ((unused)), -+arm_init (Elf *elf, - GElf_Half machine __attribute__ ((unused)), - Ebl *eh, - size_t ehlen) - { -+ int soft_float = 0; -+ - /* Check whether the Elf_BH object has a sufficent size. */ - if (ehlen < sizeof (Ebl)) - return NULL; - -+ if (elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT)) -+ soft_float = 1; -+ } -+ - /* We handle it. */ - arm_init_reloc (eh); - HOOK (eh, segment_type_name); -@@ -59,7 +70,10 @@ arm_init (Elf *elf __attribute__ ((unused)), - HOOK (eh, core_note); - HOOK (eh, auxv_info); - HOOK (eh, check_object_attribute); -- HOOK (eh, return_value_location); -+ if (soft_float) -+ eh->return_value_location = arm_return_value_location_soft; -+ else -+ eh->return_value_location = arm_return_value_location_hard; - HOOK (eh, abi_cfi); - HOOK (eh, check_reloc_target_type); - HOOK (eh, symbol_type_name); -diff --git a/backends/arm_regs.c b/backends/arm_regs.c -index a46a4c9..418c931 100644 ---- a/backends/arm_regs.c -+++ b/backends/arm_regs.c -@@ -31,6 +31,7 @@ - #endif - - #include <string.h> -+#include <stdio.h> - #include <dwarf.h> - - #define BACKEND arm_ -@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), - break; - - case 16 + 0 ... 16 + 7: -+ /* AADWARF says that there are no registers in that range, -+ * but gcc maps FPA registers here -+ */ - regno += 96 - 16; - FALLTHROUGH; - case 96 + 0 ... 96 + 7: -@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), - namelen = 2; - break; - -+ case 64 + 0 ... 64 + 9: -+ *setname = "VFP"; -+ *bits = 32; -+ *type = DW_ATE_float; -+ name[0] = 's'; -+ name[1] = regno - 64 + '0'; -+ namelen = 2; -+ break; -+ -+ case 64 + 10 ... 64 + 31: -+ *setname = "VFP"; -+ *bits = 32; -+ *type = DW_ATE_float; -+ name[0] = 's'; -+ name[1] = (regno - 64) / 10 + '0'; -+ name[2] = (regno - 64) % 10 + '0'; -+ namelen = 3; -+ break; -+ -+ case 104 + 0 ... 104 + 7: -+ /* XXX TODO: -+ * This can be either intel wireless MMX general purpose/control -+ * registers or xscale accumulator, which have different usage. -+ * We only have the intel wireless MMX here now. -+ * The name needs to be changed for the xscale accumulator too. */ -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 32; -+ memcpy(name, "wcgr", 4); -+ name[4] = regno - 104 + '0'; -+ namelen = 5; -+ break; -+ -+ case 112 + 0 ... 112 + 9: -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 64; -+ name[0] = 'w'; -+ name[1] = 'r'; -+ name[2] = regno - 112 + '0'; -+ namelen = 3; -+ break; -+ -+ case 112 + 10 ... 112 + 15: -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 64; -+ name[0] = 'w'; -+ name[1] = 'r'; -+ name[2] = '1'; -+ name[3] = regno - 112 - 10 + '0'; -+ namelen = 4; -+ break; -+ - case 128: -+ *setname = "state"; - *type = DW_ATE_unsigned; - return stpcpy (name, "spsr") + 1 - name; - -+ case 129: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_fiq") + 1 - name; -+ -+ case 130: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_irq") + 1 - name; -+ -+ case 131: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_abt") + 1 - name; -+ -+ case 132: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_und") + 1 - name; -+ -+ case 133: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_svc") + 1 - name; -+ -+ case 144 ... 150: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1; -+ -+ case 151 ... 157: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1; -+ -+ case 158 ... 159: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1; -+ -+ case 160 ... 161: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1; -+ -+ case 162 ... 163: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_und", regno - 162 + 13) + 1; -+ -+ case 164 ... 165: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1; -+ -+ case 192 ... 199: -+ *setname = "MMX"; -+ *bits = 32; -+ *type = DW_ATE_unsigned; -+ name[0] = 'w'; -+ name[1] = 'c'; -+ name[2] = regno - 192 + '0'; -+ namelen = 3; -+ break; -+ - case 256 + 0 ... 256 + 9: -+ /* XXX TODO: Neon also uses those registers and can contain -+ * both float and integers */ - *setname = "VFP"; - *type = DW_ATE_float; - *bits = 64; -diff --git a/backends/arm_retval.c b/backends/arm_retval.c -index 1c28f01..313e4eb 100644 ---- a/backends/arm_retval.c -+++ b/backends/arm_retval.c -@@ -48,6 +48,13 @@ static const Dwarf_Op loc_intreg[] = - #define nloc_intreg 1 - #define nloc_intregs(n) (2 * (n)) - -+/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_reg16 }, -+ }; -+#define nloc_fpreg 1 -+ - /* The return value is a structure and is actually stored in stack space - passed in a hidden argument by the caller. But, the compiler - helpfully returns the address of that space in r0. */ -@@ -58,8 +65,9 @@ static const Dwarf_Op loc_aggregate[] = - #define nloc_aggregate 1 - - --int --arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+static int -+arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, -+ int soft_float) - { - /* Start with the function's type, and get the DW_AT_type attribute, - which is the type of the return value. */ -@@ -98,6 +106,21 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - else - return -1; - } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+ if ((encoding == DW_ATE_float) && !soft_float) -+ { -+ *locp = loc_fpreg; -+ if (size <= 8) -+ return nloc_fpreg; -+ goto aggregate; -+ } -+ } - if (size <= 16) - { - intreg: -@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - } - - aggregate: -+ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */ - *locp = loc_aggregate; - return nloc_aggregate; - } -@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - DWARF and might be valid. */ - return -2; - } -+ -+/* return location for -mabi=apcs-gnu -msoft-float */ -+int -+arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return arm_return_value_location_ (functypedie, locp, 1); -+} -+ -+/* return location for -mabi=apcs-gnu -mhard-float (current default) */ -+int -+arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return arm_return_value_location_ (functypedie, locp, 0); -+} -+ -diff --git a/backends/libebl_arm.h b/backends/libebl_arm.h -new file mode 100644 -index 0000000..c00770c ---- /dev/null -+++ b/backends/libebl_arm.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_ARM_H -+#define _LIBEBL_ARM_H 1 -+ -+#include <libdw.h> -+ -+extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp); -+extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp); -+ -+#endif -diff --git a/libelf/elf.h b/libelf/elf.h -index 01648bd..05b7e7e 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -2690,6 +2690,9 @@ enum - #define EF_ARM_EABI_VER4 0x04000000 - #define EF_ARM_EABI_VER5 0x05000000 - -+/* EI_OSABI values */ -+#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */ -+ - /* Additional symbol types for Thumb. */ - #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ - #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ -@@ -2707,12 +2710,19 @@ enum - - /* Processor specific values for the Phdr p_type field. */ - #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ -+#define PT_ARM_UNWIND PT_ARM_EXIDX - - /* Processor specific values for the Shdr sh_type field. */ - #define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ - #define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ - #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ - -+/* Processor specific values for the Dyn d_tag field. */ -+#define DT_ARM_RESERVED1 (DT_LOPROC + 0) -+#define DT_ARM_SYMTABSZ (DT_LOPROC + 1) -+#define DT_ARM_PREEMTMAB (DT_LOPROC + 2) -+#define DT_ARM_RESERVED2 (DT_LOPROC + 3) -+#define DT_ARM_NUM 4 - - /* AArch64 relocs. */ - -@@ -3005,6 +3015,7 @@ enum - TLS block (LDR, STR). */ - #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative - to GOT origin (LDR). */ -+/* 112 - 127 private range */ - #define R_ARM_ME_TOO 128 /* Obsolete. */ - #define R_ARM_THM_TLS_DESCSEQ 129 - #define R_ARM_THM_TLS_DESCSEQ16 129 -diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh -index 64fa24d..1c2aa4d 100755 ---- a/tests/run-addrcfi.sh -+++ b/tests/run-addrcfi.sh -@@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range - FPA reg21 (f5): undefined - FPA reg22 (f6): undefined - FPA reg23 (f7): undefined -+ VFP reg64 (s0): undefined -+ VFP reg65 (s1): undefined -+ VFP reg66 (s2): undefined -+ VFP reg67 (s3): undefined -+ VFP reg68 (s4): undefined -+ VFP reg69 (s5): undefined -+ VFP reg70 (s6): undefined -+ VFP reg71 (s7): undefined -+ VFP reg72 (s8): undefined -+ VFP reg73 (s9): undefined -+ VFP reg74 (s10): undefined -+ VFP reg75 (s11): undefined -+ VFP reg76 (s12): undefined -+ VFP reg77 (s13): undefined -+ VFP reg78 (s14): undefined -+ VFP reg79 (s15): undefined -+ VFP reg80 (s16): undefined -+ VFP reg81 (s17): undefined -+ VFP reg82 (s18): undefined -+ VFP reg83 (s19): undefined -+ VFP reg84 (s20): undefined -+ VFP reg85 (s21): undefined -+ VFP reg86 (s22): undefined -+ VFP reg87 (s23): undefined -+ VFP reg88 (s24): undefined -+ VFP reg89 (s25): undefined -+ VFP reg90 (s26): undefined -+ VFP reg91 (s27): undefined -+ VFP reg92 (s28): undefined -+ VFP reg93 (s29): undefined -+ VFP reg94 (s30): undefined -+ VFP reg95 (s31): undefined - FPA reg96 (f0): undefined - FPA reg97 (f1): undefined - FPA reg98 (f2): undefined -@@ -3562,7 +3594,66 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range - FPA reg101 (f5): undefined - FPA reg102 (f6): undefined - FPA reg103 (f7): undefined -- integer reg128 (spsr): undefined -+ MMX reg104 (wcgr0): undefined -+ MMX reg105 (wcgr1): undefined -+ MMX reg106 (wcgr2): undefined -+ MMX reg107 (wcgr3): undefined -+ MMX reg108 (wcgr4): undefined -+ MMX reg109 (wcgr5): undefined -+ MMX reg110 (wcgr6): undefined -+ MMX reg111 (wcgr7): undefined -+ MMX reg112 (wr0): undefined -+ MMX reg113 (wr1): undefined -+ MMX reg114 (wr2): undefined -+ MMX reg115 (wr3): undefined -+ MMX reg116 (wr4): undefined -+ MMX reg117 (wr5): undefined -+ MMX reg118 (wr6): undefined -+ MMX reg119 (wr7): undefined -+ MMX reg120 (wr8): undefined -+ MMX reg121 (wr9): undefined -+ MMX reg122 (wr10): undefined -+ MMX reg123 (wr11): undefined -+ MMX reg124 (wr12): undefined -+ MMX reg125 (wr13): undefined -+ MMX reg126 (wr14): undefined -+ MMX reg127 (wr15): undefined -+ state reg128 (spsr): undefined -+ state reg129 (spsr_fiq): undefined -+ state reg130 (spsr_irq): undefined -+ state reg131 (spsr_abt): undefined -+ state reg132 (spsr_und): undefined -+ state reg133 (spsr_svc): undefined -+ integer reg144 (r8_usr): undefined -+ integer reg145 (r9_usr): undefined -+ integer reg146 (r10_usr): undefined -+ integer reg147 (r11_usr): undefined -+ integer reg148 (r12_usr): undefined -+ integer reg149 (r13_usr): undefined -+ integer reg150 (r14_usr): undefined -+ integer reg151 (r8_fiq): undefined -+ integer reg152 (r9_fiq): undefined -+ integer reg153 (r10_fiq): undefined -+ integer reg154 (r11_fiq): undefined -+ integer reg155 (r12_fiq): undefined -+ integer reg156 (r13_fiq): undefined -+ integer reg157 (r14_fiq): undefined -+ integer reg158 (r13_irq): undefined -+ integer reg159 (r14_irq): undefined -+ integer reg160 (r13_abt): undefined -+ integer reg161 (r14_abt): undefined -+ integer reg162 (r13_und): undefined -+ integer reg163 (r14_und): undefined -+ integer reg164 (r13_svc): undefined -+ integer reg165 (r14_svc): undefined -+ MMX reg192 (wc0): undefined -+ MMX reg193 (wc1): undefined -+ MMX reg194 (wc2): undefined -+ MMX reg195 (wc3): undefined -+ MMX reg196 (wc4): undefined -+ MMX reg197 (wc5): undefined -+ MMX reg198 (wc6): undefined -+ MMX reg199 (wc7): undefined - VFP reg256 (d0): undefined - VFP reg257 (d1): undefined - VFP reg258 (d2): undefined -diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh -index 1422bd6..dc0fc99 100755 ---- a/tests/run-allregs.sh -+++ b/tests/run-allregs.sh -@@ -2672,7 +2672,28 @@ integer registers: - 13: sp (sp), address 32 bits - 14: lr (lr), address 32 bits - 15: pc (pc), address 32 bits -- 128: spsr (spsr), unsigned 32 bits -+ 144: r8_usr (r8_usr), signed 32 bits -+ 145: r9_usr (r9_usr), signed 32 bits -+ 146: r10_usr (r10_usr), signed 32 bits -+ 147: r11_usr (r11_usr), signed 32 bits -+ 148: r12_usr (r12_usr), signed 32 bits -+ 149: r13_usr (r13_usr), signed 32 bits -+ 150: r14_usr (r14_usr), signed 32 bits -+ 151: r8_fiq (r8_fiq), signed 32 bits -+ 152: r9_fiq (r9_fiq), signed 32 bits -+ 153: r10_fiq (r10_fiq), signed 32 bits -+ 154: r11_fiq (r11_fiq), signed 32 bits -+ 155: r12_fiq (r12_fiq), signed 32 bits -+ 156: r13_fiq (r13_fiq), signed 32 bits -+ 157: r14_fiq (r14_fiq), signed 32 bits -+ 158: r13_irq (r13_irq), signed 32 bits -+ 159: r14_irq (r14_irq), signed 32 bits -+ 160: r13_abt (r13_abt), signed 32 bits -+ 161: r14_abt (r14_abt), signed 32 bits -+ 162: r13_und (r13_und), signed 32 bits -+ 163: r14_und (r14_und), signed 32 bits -+ 164: r13_svc (r13_svc), signed 32 bits -+ 165: r14_svc (r14_svc), signed 32 bits - FPA registers: - 16: f0 (f0), float 96 bits - 17: f1 (f1), float 96 bits -@@ -2690,7 +2711,72 @@ FPA registers: - 101: f5 (f5), float 96 bits - 102: f6 (f6), float 96 bits - 103: f7 (f7), float 96 bits -+MMX registers: -+ 104: wcgr0 (wcgr0), unsigned 32 bits -+ 105: wcgr1 (wcgr1), unsigned 32 bits -+ 106: wcgr2 (wcgr2), unsigned 32 bits -+ 107: wcgr3 (wcgr3), unsigned 32 bits -+ 108: wcgr4 (wcgr4), unsigned 32 bits -+ 109: wcgr5 (wcgr5), unsigned 32 bits -+ 110: wcgr6 (wcgr6), unsigned 32 bits -+ 111: wcgr7 (wcgr7), unsigned 32 bits -+ 112: wr0 (wr0), unsigned 64 bits -+ 113: wr1 (wr1), unsigned 64 bits -+ 114: wr2 (wr2), unsigned 64 bits -+ 115: wr3 (wr3), unsigned 64 bits -+ 116: wr4 (wr4), unsigned 64 bits -+ 117: wr5 (wr5), unsigned 64 bits -+ 118: wr6 (wr6), unsigned 64 bits -+ 119: wr7 (wr7), unsigned 64 bits -+ 120: wr8 (wr8), unsigned 64 bits -+ 121: wr9 (wr9), unsigned 64 bits -+ 122: wr10 (wr10), unsigned 64 bits -+ 123: wr11 (wr11), unsigned 64 bits -+ 124: wr12 (wr12), unsigned 64 bits -+ 125: wr13 (wr13), unsigned 64 bits -+ 126: wr14 (wr14), unsigned 64 bits -+ 127: wr15 (wr15), unsigned 64 bits -+ 192: wc0 (wc0), unsigned 32 bits -+ 193: wc1 (wc1), unsigned 32 bits -+ 194: wc2 (wc2), unsigned 32 bits -+ 195: wc3 (wc3), unsigned 32 bits -+ 196: wc4 (wc4), unsigned 32 bits -+ 197: wc5 (wc5), unsigned 32 bits -+ 198: wc6 (wc6), unsigned 32 bits -+ 199: wc7 (wc7), unsigned 32 bits - VFP registers: -+ 64: s0 (s0), float 32 bits -+ 65: s1 (s1), float 32 bits -+ 66: s2 (s2), float 32 bits -+ 67: s3 (s3), float 32 bits -+ 68: s4 (s4), float 32 bits -+ 69: s5 (s5), float 32 bits -+ 70: s6 (s6), float 32 bits -+ 71: s7 (s7), float 32 bits -+ 72: s8 (s8), float 32 bits -+ 73: s9 (s9), float 32 bits -+ 74: s10 (s10), float 32 bits -+ 75: s11 (s11), float 32 bits -+ 76: s12 (s12), float 32 bits -+ 77: s13 (s13), float 32 bits -+ 78: s14 (s14), float 32 bits -+ 79: s15 (s15), float 32 bits -+ 80: s16 (s16), float 32 bits -+ 81: s17 (s17), float 32 bits -+ 82: s18 (s18), float 32 bits -+ 83: s19 (s19), float 32 bits -+ 84: s20 (s20), float 32 bits -+ 85: s21 (s21), float 32 bits -+ 86: s22 (s22), float 32 bits -+ 87: s23 (s23), float 32 bits -+ 88: s24 (s24), float 32 bits -+ 89: s25 (s25), float 32 bits -+ 90: s26 (s26), float 32 bits -+ 91: s27 (s27), float 32 bits -+ 92: s28 (s28), float 32 bits -+ 93: s29 (s29), float 32 bits -+ 94: s30 (s30), float 32 bits -+ 95: s31 (s31), float 32 bits - 256: d0 (d0), float 64 bits - 257: d1 (d1), float 64 bits - 258: d2 (d2), float 64 bits -@@ -2723,6 +2809,13 @@ VFP registers: - 285: d29 (d29), float 64 bits - 286: d30 (d30), float 64 bits - 287: d31 (d31), float 64 bits -+state registers: -+ 128: spsr (spsr), unsigned 32 bits -+ 129: spsr_fiq (spsr_fiq), unsigned 32 bits -+ 130: spsr_irq (spsr_irq), unsigned 32 bits -+ 131: spsr_abt (spsr_abt), unsigned 32 bits -+ 132: spsr_und (spsr_und), unsigned 32 bits -+ 133: spsr_svc (spsr_svc), unsigned 32 bits - EOF - - # See run-readelf-mixed-corenote.sh for instructions to regenerate -diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh -index c960f1d..e4bf074 100755 ---- a/tests/run-readelf-mixed-corenote.sh -+++ b/tests/run-readelf-mixed-corenote.sh -@@ -31,12 +31,11 @@ Note segment of 892 bytes at offset 0x274: - pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 - utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000 - orig_r0: -1, fpvalid: 1 -- r0: 1 r1: -1091672508 r2: -1091672500 -- r3: 0 r4: 0 r5: 0 -- r6: 33728 r7: 0 r8: 0 -- r9: 0 r10: -1225703496 r11: -1091672844 -- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 -- pc: 0x00008500 spsr: 0x60000010 -+ r0: 1 r1: -1091672508 r2: -1091672500 r3: 0 -+ r4: 0 r5: 0 r6: 33728 r7: 0 -+ r8: 0 r9: 0 r10: -1225703496 r11: -1091672844 -+ r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 pc: 0x00008500 -+ spsr: 0x60000010 - CORE 124 PRPSINFO - state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 - uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch b/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch deleted file mode 100644 index bd98dae4b2..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Helmut Grohne <helmut@subdivi.de> -Subject: disable -Werror as it tends to break with new gcc versions -Bug-Debian: https://bugs.debian.org/886004 -Last-Update: 2018-01-01 - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> - -Index: elfutils-0.176/config/eu.am -=================================================================== ---- elfutils-0.176.orig/config/eu.am -+++ elfutils-0.176/config/eu.am -@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -W - -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ - $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ - $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ -- $(if $($(*F)_no_Werror),,-Werror) \ - $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ - $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ - $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff b/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff deleted file mode 100644 index 53fa2f435b..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff +++ /dev/null @@ -1,828 +0,0 @@ -From ffb811e18d7046d5bbe54ede5b1b7e14eaac0146 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Wed, 21 Aug 2019 15:44:18 +0800 -Subject: [PATCH] hppa backend - -Rebase to 0.177 -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> - ---- - backends/Makefile.am | 7 +- - backends/libebl_parisc.h | 9 ++ - backends/parisc_init.c | 73 +++++++++++++ - backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++ - backends/parisc_reloc.def | 128 +++++++++++++++++++++++ - backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++ - backends/parisc_symbol.c | 113 ++++++++++++++++++++ - libelf/elf.h | 11 ++ - 8 files changed, 711 insertions(+), 2 deletions(-) - create mode 100644 backends/libebl_parisc.h - create mode 100644 backends/parisc_init.c - create mode 100644 backends/parisc_regs.c - create mode 100644 backends/parisc_reloc.def - create mode 100644 backends/parisc_retval.c - create mode 100644 backends/parisc_symbol.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index f405212..4755f61 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -37,7 +37,9 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ - noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a - - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv csky -+ tilegx m68k bpf riscv csky parisc -+ -+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c - - i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ - i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ -@@ -102,7 +104,8 @@ libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ - $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ - $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \ - $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \ -- $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) -+ $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \ -+ $(parisc_SRCS) - - libebl_backends_pic_a_SOURCES = - am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os) -diff --git a/backends/libebl_parisc.h b/backends/libebl_parisc.h -new file mode 100644 -index 0000000..f473b79 ---- /dev/null -+++ b/backends/libebl_parisc.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_HPPA_H -+#define _LIBEBL_HPPA_H 1 -+ -+#include <libdw.h> -+ -+extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp); -+extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp); -+ -+#endif -diff --git a/backends/parisc_init.c b/backends/parisc_init.c -new file mode 100644 -index 0000000..f1e401c ---- /dev/null -+++ b/backends/parisc_init.c -@@ -0,0 +1,73 @@ -+/* Initialization of PA-RISC specific backend library. -+ Copyright (C) 2002, 2005, 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Ulrich Drepper <drepper@redhat.com>, 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#define BACKEND parisc_ -+#define RELOC_PREFIX R_PARISC_ -+#include "libebl_CPU.h" -+#include "libebl_parisc.h" -+ -+/* This defines the common reloc hooks based on parisc_reloc.def. */ -+#include "common-reloc.c" -+ -+ -+const char * -+parisc_init (Elf *elf __attribute__ ((unused)), -+ GElf_Half machine __attribute__ ((unused)), -+ Ebl *eh, -+ size_t ehlen) -+{ -+ int pa64 = 0; -+ -+ /* Check whether the Elf_BH object has a sufficent size. */ -+ if (ehlen < sizeof (Ebl)) -+ return NULL; -+ -+ if (elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE)) -+ pa64 = 1; -+ } -+ /* We handle it. */ -+ eh->name = "PA-RISC"; -+ parisc_init_reloc (eh); -+ HOOK (eh, reloc_simple_type); -+ HOOK (eh, machine_flag_check); -+ HOOK (eh, symbol_type_name); -+ HOOK (eh, segment_type_name); -+ HOOK (eh, section_type_name); -+ HOOK (eh, register_info); -+ if (pa64) -+ eh->return_value_location = parisc_return_value_location_64; -+ else -+ eh->return_value_location = parisc_return_value_location_32; -+ -+ return MODVERSION; -+} -diff --git a/backends/parisc_regs.c b/backends/parisc_regs.c -new file mode 100644 -index 0000000..3895f8e ---- /dev/null -+++ b/backends/parisc_regs.c -@@ -0,0 +1,159 @@ -+/* Register names and numbers for PA-RISC DWARF. -+ Copyright (C) 2005, 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <string.h> -+#include <dwarf.h> -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+ -+ssize_t -+parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen, -+ const char **prefix, const char **setname, -+ int *bits, int *type) -+{ -+ int pa64 = 0; -+ -+ if (ebl->elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem); -+ if (ehdr->e_flags & EF_PARISC_WIDE) -+ pa64 = 1; -+ } -+ -+ int nregs = pa64 ? 127 : 128; -+ -+ if (name == NULL) -+ return nregs; -+ -+ if (regno < 0 || regno >= nregs || namelen < 6) -+ return -1; -+ -+ *prefix = "%"; -+ -+ if (regno < 32) -+ { -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ if (pa64) -+ { -+ *bits = 64; -+ } -+ else -+ { -+ *bits = 32; -+ } -+ } -+ else if (regno == 32) -+ { -+ *setname = "special"; -+ if (pa64) -+ { -+ *bits = 6; -+ } -+ else -+ { -+ *bits = 5; -+ } -+ *type = DW_ATE_unsigned; -+ } -+ else -+ { -+ *setname = "FPU"; -+ *type = DW_ATE_float; -+ if (pa64) -+ { -+ *bits = 64; -+ } -+ else -+ { -+ *bits = 32; -+ } -+ } -+ -+ if (regno < 33) { -+ switch (regno) -+ { -+ case 0 ... 9: -+ name[0] = 'r'; -+ name[1] = regno + '0'; -+ namelen = 2; -+ break; -+ case 10 ... 31: -+ name[0] = 'r'; -+ name[1] = regno / 10 + '0'; -+ name[2] = regno % 10 + '0'; -+ namelen = 3; -+ break; -+ case 32: -+ *prefix = NULL; -+ name[0] = 'S'; -+ name[1] = 'A'; -+ name[2] = 'R'; -+ namelen = 3; -+ break; -+ } -+ } -+ else { -+ if (pa64 && ((regno - 72) % 2)) { -+ *setname = NULL; -+ return 0; -+ } -+ -+ switch (regno) -+ { -+ case 72 + 0 ... 72 + 11: -+ name[0] = 'f'; -+ name[1] = 'r'; -+ name[2] = (regno + 8 - 72) / 2 + '0'; -+ namelen = 3; -+ if ((regno + 8 - 72) % 2) { -+ name[3] = 'R'; -+ namelen++; -+ } -+ break; -+ case 72 + 12 ... 72 + 55: -+ name[0] = 'f'; -+ name[1] = 'r'; -+ name[2] = (regno + 8 - 72) / 2 / 10 + '0'; -+ name[3] = (regno + 8 - 72) / 2 % 10 + '0'; -+ namelen = 4; -+ if ((regno + 8 - 72) % 2) { -+ name[4] = 'R'; -+ namelen++; -+ } -+ break; -+ default: -+ *setname = NULL; -+ return 0; -+ } -+ } -+ name[namelen++] = '\0'; -+ return namelen; -+} -diff --git a/backends/parisc_reloc.def b/backends/parisc_reloc.def -new file mode 100644 -index 0000000..1f875ba ---- /dev/null -+++ b/backends/parisc_reloc.def -@@ -0,0 +1,128 @@ -+/* List the relocation types for PA-RISC. -*- C -*- -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+/* NAME, REL|EXEC|DYN */ -+ -+RELOC_TYPE (NONE, EXEC|DYN) -+RELOC_TYPE (DIR32, REL|EXEC|DYN) -+RELOC_TYPE (DIR21L, REL|EXEC|DYN) -+RELOC_TYPE (DIR17R, REL) -+RELOC_TYPE (DIR17F, REL) -+RELOC_TYPE (DIR14R, REL|DYN) -+RELOC_TYPE (PCREL32, REL) -+RELOC_TYPE (PCREL21L, REL) -+RELOC_TYPE (PCREL17R, REL) -+RELOC_TYPE (PCREL17F, REL) -+RELOC_TYPE (PCREL14R, REL|EXEC) -+RELOC_TYPE (DPREL21L, REL) -+RELOC_TYPE (DPREL14WR, REL) -+RELOC_TYPE (DPREL14DR, REL) -+RELOC_TYPE (DPREL14R, REL) -+RELOC_TYPE (GPREL21L, 0) -+RELOC_TYPE (GPREL14R, 0) -+RELOC_TYPE (LTOFF21L, REL) -+RELOC_TYPE (LTOFF14R, REL) -+RELOC_TYPE (DLTIND14F, 0) -+RELOC_TYPE (SETBASE, 0) -+RELOC_TYPE (SECREL32, REL) -+RELOC_TYPE (BASEREL21L, 0) -+RELOC_TYPE (BASEREL17R, 0) -+RELOC_TYPE (BASEREL14R, 0) -+RELOC_TYPE (SEGBASE, 0) -+RELOC_TYPE (SEGREL32, REL) -+RELOC_TYPE (PLTOFF21L, 0) -+RELOC_TYPE (PLTOFF14R, 0) -+RELOC_TYPE (PLTOFF14F, 0) -+RELOC_TYPE (LTOFF_FPTR32, 0) -+RELOC_TYPE (LTOFF_FPTR21L, 0) -+RELOC_TYPE (LTOFF_FPTR14R, 0) -+RELOC_TYPE (FPTR64, 0) -+RELOC_TYPE (PLABEL32, REL|DYN) -+RELOC_TYPE (PCREL64, 0) -+RELOC_TYPE (PCREL22C, 0) -+RELOC_TYPE (PCREL22F, 0) -+RELOC_TYPE (PCREL14WR, 0) -+RELOC_TYPE (PCREL14DR, 0) -+RELOC_TYPE (PCREL16F, 0) -+RELOC_TYPE (PCREL16WF, 0) -+RELOC_TYPE (PCREL16DF, 0) -+RELOC_TYPE (DIR64, REL|DYN) -+RELOC_TYPE (DIR14WR, REL) -+RELOC_TYPE (DIR14DR, REL) -+RELOC_TYPE (DIR16F, REL) -+RELOC_TYPE (DIR16WF, REL) -+RELOC_TYPE (DIR16DF, REL) -+RELOC_TYPE (GPREL64, 0) -+RELOC_TYPE (GPREL14WR, 0) -+RELOC_TYPE (GPREL14DR, 0) -+RELOC_TYPE (GPREL16F, 0) -+RELOC_TYPE (GPREL16WF, 0) -+RELOC_TYPE (GPREL16DF, 0) -+RELOC_TYPE (LTOFF64, 0) -+RELOC_TYPE (LTOFF14WR, 0) -+RELOC_TYPE (LTOFF14DR, 0) -+RELOC_TYPE (LTOFF16F, 0) -+RELOC_TYPE (LTOFF16WF, 0) -+RELOC_TYPE (LTOFF16DF, 0) -+RELOC_TYPE (SECREL64, 0) -+RELOC_TYPE (BASEREL14WR, 0) -+RELOC_TYPE (BASEREL14DR, 0) -+RELOC_TYPE (SEGREL64, 0) -+RELOC_TYPE (PLTOFF14WR, 0) -+RELOC_TYPE (PLTOFF14DR, 0) -+RELOC_TYPE (PLTOFF16F, 0) -+RELOC_TYPE (PLTOFF16WF, 0) -+RELOC_TYPE (PLTOFF16DF, 0) -+RELOC_TYPE (LTOFF_FPTR64, 0) -+RELOC_TYPE (LTOFF_FPTR14WR, 0) -+RELOC_TYPE (LTOFF_FPTR14DR, 0) -+RELOC_TYPE (LTOFF_FPTR16F, 0) -+RELOC_TYPE (LTOFF_FPTR16WF, 0) -+RELOC_TYPE (LTOFF_FPTR16DF, 0) -+RELOC_TYPE (COPY, EXEC) -+RELOC_TYPE (IPLT, EXEC|DYN) -+RELOC_TYPE (EPLT, 0) -+RELOC_TYPE (TPREL32, DYN) -+RELOC_TYPE (TPREL21L, 0) -+RELOC_TYPE (TPREL14R, 0) -+RELOC_TYPE (LTOFF_TP21L, 0) -+RELOC_TYPE (LTOFF_TP14R, 0) -+RELOC_TYPE (LTOFF_TP14F, 0) -+RELOC_TYPE (TPREL64, 0) -+RELOC_TYPE (TPREL14WR, 0) -+RELOC_TYPE (TPREL14DR, 0) -+RELOC_TYPE (TPREL16F, 0) -+RELOC_TYPE (TPREL16WF, 0) -+RELOC_TYPE (TPREL16DF, 0) -+RELOC_TYPE (LTOFF_TP64, 0) -+RELOC_TYPE (LTOFF_TP14WR, 0) -+RELOC_TYPE (LTOFF_TP14DR, 0) -+RELOC_TYPE (LTOFF_TP16F, 0) -+RELOC_TYPE (LTOFF_TP16WF, 0) -+RELOC_TYPE (LTOFF_TP16DF, 0) -+RELOC_TYPE (TLS_DTPMOD32, DYN) -+RELOC_TYPE (TLS_DTPMOD64, DYN) -+ -+#define NO_RELATIVE_RELOC 1 -diff --git a/backends/parisc_retval.c b/backends/parisc_retval.c -new file mode 100644 -index 0000000..df7ec3a ---- /dev/null -+++ b/backends/parisc_retval.c -@@ -0,0 +1,213 @@ -+/* Function return value location for Linux/PA-RISC ABI. -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <assert.h> -+#include <dwarf.h> -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+#include "libebl_parisc.h" -+ -+/* %r28, or pair %r28, %r29. */ -+static const Dwarf_Op loc_intreg32[] = -+ { -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+static const Dwarf_Op loc_intreg[] = -+ { -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_intreg 1 -+#define nloc_intregpair 4 -+ -+/* %fr4L, or pair %fr4L, %fr4R on pa-32 */ -+static const Dwarf_Op loc_fpreg32[] = -+ { -+ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+#define nloc_fpreg32 2 -+#define nloc_fpregpair32 4 -+ -+/* $fr4 */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_regx, .number = 72 }, -+ }; -+#define nloc_fpreg 1 -+ -+#if 0 -+/* The return value is a structure and is actually stored in stack space -+ passed in a hidden argument by the caller. Address of the location is stored -+ in %r28 before function call, but it may be changed by function. */ -+static const Dwarf_Op loc_aggregate[] = -+ { -+ { .atom = DW_OP_breg28 }, -+ }; -+#define nloc_aggregate 1 -+#endif -+ -+static int -+parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64) -+{ -+ Dwarf_Word regsize = pa64 ? 8 : 4; -+ -+ /* Start with the function's type, and get the DW_AT_type attribute, -+ which is the type of the return value. */ -+ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); -+ if (attr == NULL) -+ /* The function has no return value, like a `void' function in C. */ -+ return 0; -+ -+ Dwarf_Die die_mem; -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); -+ int tag = dwarf_tag (typedie); -+ -+ /* Follow typedefs and qualifiers to get to the actual type. */ -+ while (tag == DW_TAG_typedef -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type -+ || tag == DW_TAG_restrict_type) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ -+ switch (tag) -+ { -+ case -1: -+ return -1; -+ -+ case DW_TAG_subrange_type: -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ /* Fall through. */ -+ -+ case DW_TAG_base_type: -+ case DW_TAG_enumeration_type: -+ case DW_TAG_pointer_type: -+ case DW_TAG_ptr_to_member_type: -+ { -+ Dwarf_Word size; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, -+ &attr_mem), &size) != 0) -+ { -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) -+ size = 4; -+ else -+ return -1; -+ } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+ if (encoding == DW_ATE_float) -+ { -+ if (pa64) { -+ *locp = loc_fpreg; -+ if (size <= 8) -+ return nloc_fpreg; -+ } -+ else { -+ *locp = loc_fpreg32; -+ if (size <= 4) -+ return nloc_fpreg32; -+ else if (size <= 8) -+ return nloc_fpregpair32; -+ } -+ goto aggregate; -+ } -+ } -+ if (pa64) -+ *locp = loc_intreg; -+ else -+ *locp = loc_intreg32; -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2 * regsize) -+ return nloc_intregpair; -+ -+ /* Else fall through. */ -+ } -+ -+ case DW_TAG_structure_type: -+ case DW_TAG_class_type: -+ case DW_TAG_union_type: -+ case DW_TAG_array_type: -+ aggregate: { -+ Dwarf_Word size; -+ if (dwarf_aggregate_size (typedie, &size) != 0) -+ return -1; -+ if (pa64) -+ *locp = loc_intreg; -+ else -+ *locp = loc_intreg32; -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2 * regsize) -+ return nloc_intregpair; -+#if 0 -+ /* there should be some way to know this location... But I do not see it. */ -+ *locp = loc_aggregate; -+ return nloc_aggregate; -+#endif -+ /* fall through. */ -+ } -+ } -+ -+ /* XXX We don't have a good way to return specific errors from ebl calls. -+ This value means we do not understand the type, but it is well-formed -+ DWARF and might be valid. */ -+ return -2; -+} -+ -+int -+parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return parisc_return_value_location_ (functypedie, locp, 0); -+} -+ -+int -+parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return parisc_return_value_location_ (functypedie, locp, 1); -+} -+ -diff --git a/backends/parisc_symbol.c b/backends/parisc_symbol.c -new file mode 100644 -index 0000000..5754bd8 ---- /dev/null -+++ b/backends/parisc_symbol.c -@@ -0,0 +1,113 @@ -+/* PA-RISC specific symbolic name handling. -+ Copyright (C) 2002, 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Ulrich Drepper <drepper@redhat.com>, 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <elf.h> -+#include <stddef.h> -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+ -+const char * -+parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ switch (segment) -+ { -+ case PT_PARISC_ARCHEXT: -+ return "PARISC_ARCHEXT"; -+ case PT_PARISC_UNWIND: -+ return "PARISC_UNWIND"; -+ default: -+ break; -+ } -+ return NULL; -+} -+ -+/* Return symbolic representation of symbol type. */ -+const char * -+parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ if (symbol == STT_PARISC_MILLICODE) -+ return "PARISC_MILLI"; -+ return NULL; -+} -+ -+/* Return symbolic representation of section type. */ -+const char * -+parisc_section_type_name (int type, -+ char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case SHT_PARISC_EXT: -+ return "PARISC_EXT"; -+ case SHT_PARISC_UNWIND: -+ return "PARISC_UNWIND"; -+ case SHT_PARISC_DOC: -+ return "PARISC_DOC"; -+ } -+ -+ return NULL; -+} -+ -+/* Check whether machine flags are valid. */ -+bool -+parisc_machine_flag_check (GElf_Word flags) -+{ -+ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB | -+ EF_PARISC_WIDE | EF_PARISC_NO_KABP | -+ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH)) -+ return 0; -+ -+ GElf_Word arch = flags & EF_PARISC_ARCH; -+ -+ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) || -+ (arch == EFA_PARISC_2_0)); -+} -+ -+/* Check for the simple reloc types. */ -+Elf_Type -+parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, -+ int *addsub __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case R_PARISC_DIR64: -+ case R_PARISC_SECREL64: -+ return ELF_T_XWORD; -+ case R_PARISC_DIR32: -+ case R_PARISC_SECREL32: -+ return ELF_T_WORD; -+ default: -+ return ELF_T_NUM; -+ } -+} -diff --git a/libelf/elf.h b/libelf/elf.h -index 01648bd..218ceb2 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -2162,16 +2162,24 @@ enum - #define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ - #define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ - #define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ -+#define R_PARISC_DPREL14WR 19 -+#define R_PARISC_DPREL14DR 20 - #define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ - #define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ - #define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ - #define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ - #define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ -+#define R_PARISC_DLTIND14F 39 -+#define R_PARISC_SETBASE 40 - #define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ -+#define R_PARISC_BASEREL21L 42 -+#define R_PARISC_BASEREL17R 43 -+#define R_PARISC_BASEREL14R 46 - #define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ - #define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ - #define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ - #define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ -+#define R_PARISC_PLTOFF14F 55 - #define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ - #define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ - #define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ -@@ -2180,6 +2188,7 @@ enum - #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ - #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ - #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ -+#define R_PARISC_PCREL22C 73 - #define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ - #define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ - #define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ -@@ -2205,6 +2214,8 @@ enum - #define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ - #define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ - #define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ -+#define R_PARISC_BASEREL14WR 107 -+#define R_PARISC_BASEREL14DR 108 - #define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ - #define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ - #define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch b/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch deleted file mode 100644 index 62a960f3a8..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> - -Index: elfutils-0.165/tests/run-native-test.sh -=================================================================== ---- elfutils-0.165.orig/tests/run-native-test.sh -+++ elfutils-0.165/tests/run-native-test.sh -@@ -83,6 +83,9 @@ native_test() - # "cannot attach to process: Function not implemented". - [ "$(uname)" = "GNU/kFreeBSD" ] && exit 77 - -+# hurd's /proc/$PID/maps does not give paths yet. -+[ "$(uname)" = "GNU" ] && exit 77 -+ - native_test ${abs_builddir}/allregs - native_test ${abs_builddir}/funcretval - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff b/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff deleted file mode 100644 index 55513eeddc..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff +++ /dev/null @@ -1,14 +0,0 @@ -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> - ---- elfutils-0.165.orig/tests/run-strip-strmerge.sh -+++ elfutils-0.165/tests/run-strip-strmerge.sh -@@ -30,7 +30,7 @@ remerged=remerged.elf - tempfiles $merged $stripped $debugfile $remerged - - echo elflint $input --testrun ${abs_top_builddir}/src/elflint --gnu $input -+testrun_on_self_skip ${abs_top_builddir}/src/elflint --gnu $input - echo elfstrmerge - testrun ${abs_top_builddir}/tests/elfstrmerge -o $merged $input - echo elflint $merged diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch b/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch deleted file mode 100644 index e85a2fed9d..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch +++ /dev/null @@ -1,20 +0,0 @@ -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> - -Index: b/tests/run-native-test.sh -=================================================================== ---- a/tests/run-native-test.sh -+++ b/tests/run-native-test.sh -@@ -77,6 +77,12 @@ native_test() - test $native -eq 0 || testrun "$@" -p $native > /dev/null - } - -+# On the Debian buildds, GNU/kFreeBSD linprocfs /proc/$PID/maps does -+# not give absolute paths due to sbuild's bind mounts (bug #570805) -+# therefore the next two test programs are expected to fail with -+# "cannot attach to process: Function not implemented". -+[ "$(uname)" = "GNU/kFreeBSD" ] && exit 77 -+ - native_test ${abs_builddir}/allregs - native_test ${abs_builddir}/funcretval - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff b/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff deleted file mode 100644 index 749faa403f..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff +++ /dev/null @@ -1,724 +0,0 @@ -From 7e0b036d087dfff7f5e306f52fc78745f99454c3 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Wed, 21 Aug 2019 15:49:52 +0800 -Subject: [PATCH] mips backend - -Rebase to 0.177 -Upstream-Status: Pending [from debian] - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> - ---- - backends/Makefile.am | 6 +- - backends/mips_init.c | 59 ++++++++ - backends/mips_regs.c | 104 +++++++++++++ - backends/mips_reloc.def | 79 ++++++++++ - backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++ - backends/mips_symbol.c | 53 +++++++ - libebl/eblopenbackend.c | 3 + - 7 files changed, 623 insertions(+), 2 deletions(-) - create mode 100644 backends/mips_init.c - create mode 100644 backends/mips_regs.c - create mode 100644 backends/mips_reloc.def - create mode 100644 backends/mips_retval.c - create mode 100644 backends/mips_symbol.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 4755f61..07d45d7 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -37,7 +37,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ - noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a - - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv csky parisc -+ tilegx m68k bpf riscv csky parisc mips - - parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c - -@@ -100,12 +100,14 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ - csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ - csky_regs.c csky_initreg.c csky_corenote.c - -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c -+ - libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ - $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ - $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \ - $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \ - $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \ -- $(parisc_SRCS) -+ $(parisc_SRCS) $(mips_SRCS) - - libebl_backends_pic_a_SOURCES = - am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os) -diff --git a/backends/mips_init.c b/backends/mips_init.c -new file mode 100644 -index 0000000..975c04e ---- /dev/null -+++ b/backends/mips_init.c -@@ -0,0 +1,59 @@ -+/* Initialization of mips specific backend library. -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#define BACKEND mips_ -+#define RELOC_PREFIX R_MIPS_ -+#include "libebl_CPU.h" -+ -+/* This defines the common reloc hooks based on mips_reloc.def. */ -+#include "common-reloc.c" -+ -+const char * -+mips_init (Elf *elf __attribute__ ((unused)), -+ GElf_Half machine __attribute__ ((unused)), -+ Ebl *eh, -+ size_t ehlen) -+{ -+ /* Check whether the Elf_BH object has a sufficent size. */ -+ if (ehlen < sizeof (Ebl)) -+ return NULL; -+ -+ /* We handle it. */ -+ if (machine == EM_MIPS) -+ eh->name = "MIPS R3000 big-endian"; -+ else if (machine == EM_MIPS_RS3_LE) -+ eh->name = "MIPS R3000 little-endian"; -+ -+ mips_init_reloc (eh); -+ HOOK (eh, reloc_simple_type); -+ HOOK (eh, return_value_location); -+ HOOK (eh, register_info); -+ -+ return MODVERSION; -+} -diff --git a/backends/mips_regs.c b/backends/mips_regs.c -new file mode 100644 -index 0000000..44f86cb ---- /dev/null -+++ b/backends/mips_regs.c -@@ -0,0 +1,104 @@ -+/* Register names and numbers for MIPS DWARF. -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <string.h> -+#include <dwarf.h> -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+ssize_t -+mips_register_info (Ebl *ebl __attribute__((unused)), -+ int regno, char *name, size_t namelen, -+ const char **prefix, const char **setname, -+ int *bits, int *type) -+{ -+ if (name == NULL) -+ return 66; -+ -+ if (regno < 0 || regno > 65 || namelen < 4) -+ return -1; -+ -+ *prefix = "$"; -+ -+ if (regno < 32) -+ { -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ if (regno < 32 + 10) -+ { -+ name[0] = regno + '0'; -+ namelen = 1; -+ } -+ else -+ { -+ name[0] = (regno / 10) + '0'; -+ name[1] = (regno % 10) + '0'; -+ namelen = 2; -+ } -+ } -+ else if (regno < 64) -+ { -+ *setname = "FPU"; -+ *type = DW_ATE_float; -+ *bits = 32; -+ name[0] = 'f'; -+ if (regno < 32 + 10) -+ { -+ name[1] = (regno - 32) + '0'; -+ namelen = 2; -+ } -+ else -+ { -+ name[1] = (regno - 32) / 10 + '0'; -+ name[2] = (regno - 32) % 10 + '0'; -+ namelen = 3; -+ } -+ } -+ else if (regno == 64) -+ { -+ *type = DW_ATE_signed; -+ *bits = 32; -+ name[0] = 'h'; -+ name[1] = 'i'; -+ namelen = 2; -+ } -+ else -+ { -+ *type = DW_ATE_signed; -+ *bits = 32; -+ name[0] = 'l'; -+ name[1] = 'o'; -+ namelen = 2; -+ } -+ -+ name[namelen++] = '\0'; -+ return namelen; -+} -diff --git a/backends/mips_reloc.def b/backends/mips_reloc.def -new file mode 100644 -index 0000000..4579970 ---- /dev/null -+++ b/backends/mips_reloc.def -@@ -0,0 +1,79 @@ -+/* List the relocation types for mips. -*- C -*- -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+/* NAME, REL|EXEC|DYN */ -+ -+RELOC_TYPE (NONE, 0) -+RELOC_TYPE (16, 0) -+RELOC_TYPE (32, 0) -+RELOC_TYPE (REL32, 0) -+RELOC_TYPE (26, 0) -+RELOC_TYPE (HI16, 0) -+RELOC_TYPE (LO16, 0) -+RELOC_TYPE (GPREL16, 0) -+RELOC_TYPE (LITERAL, 0) -+RELOC_TYPE (GOT16, 0) -+RELOC_TYPE (PC16, 0) -+RELOC_TYPE (CALL16, 0) -+RELOC_TYPE (GPREL32, 0) -+ -+RELOC_TYPE (SHIFT5, 0) -+RELOC_TYPE (SHIFT6, 0) -+RELOC_TYPE (64, 0) -+RELOC_TYPE (GOT_DISP, 0) -+RELOC_TYPE (GOT_PAGE, 0) -+RELOC_TYPE (GOT_OFST, 0) -+RELOC_TYPE (GOT_HI16, 0) -+RELOC_TYPE (GOT_LO16, 0) -+RELOC_TYPE (SUB, 0) -+RELOC_TYPE (INSERT_A, 0) -+RELOC_TYPE (INSERT_B, 0) -+RELOC_TYPE (DELETE, 0) -+RELOC_TYPE (HIGHER, 0) -+RELOC_TYPE (HIGHEST, 0) -+RELOC_TYPE (CALL_HI16, 0) -+RELOC_TYPE (CALL_LO16, 0) -+RELOC_TYPE (SCN_DISP, 0) -+RELOC_TYPE (REL16, 0) -+RELOC_TYPE (ADD_IMMEDIATE, 0) -+RELOC_TYPE (PJUMP, 0) -+RELOC_TYPE (RELGOT, 0) -+RELOC_TYPE (JALR, 0) -+RELOC_TYPE (TLS_DTPMOD32, 0) -+RELOC_TYPE (TLS_DTPREL32, 0) -+RELOC_TYPE (TLS_DTPMOD64, 0) -+RELOC_TYPE (TLS_DTPREL64, 0) -+RELOC_TYPE (TLS_GD, 0) -+RELOC_TYPE (TLS_LDM, 0) -+RELOC_TYPE (TLS_DTPREL_HI16, 0) -+RELOC_TYPE (TLS_DTPREL_LO16, 0) -+RELOC_TYPE (TLS_GOTTPREL, 0) -+RELOC_TYPE (TLS_TPREL32, 0) -+RELOC_TYPE (TLS_TPREL64, 0) -+RELOC_TYPE (TLS_TPREL_HI16, 0) -+RELOC_TYPE (TLS_TPREL_LO16, 0) -+ -+#define NO_COPY_RELOC 1 -+#define NO_RELATIVE_RELOC 1 -diff --git a/backends/mips_retval.c b/backends/mips_retval.c -new file mode 100644 -index 0000000..656cd1f ---- /dev/null -+++ b/backends/mips_retval.c -@@ -0,0 +1,321 @@ -+/* Function return value location for Linux/mips ABI. -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <string.h> -+#include <assert.h> -+#include <dwarf.h> -+#include <elf.h> -+ -+#include "../libebl/libeblP.h" -+#include "../libdw/libdwP.h" -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+/* The ABI of the file. Also see EF_MIPS_ABI2 above. */ -+#define EF_MIPS_ABI 0x0000F000 -+ -+/* The original o32 abi. */ -+#define E_MIPS_ABI_O32 0x00001000 -+ -+/* O32 extended to work on 64 bit architectures */ -+#define E_MIPS_ABI_O64 0x00002000 -+ -+/* EABI in 32 bit mode */ -+#define E_MIPS_ABI_EABI32 0x00003000 -+ -+/* EABI in 64 bit mode */ -+#define E_MIPS_ABI_EABI64 0x00004000 -+ -+/* All the possible MIPS ABIs. */ -+enum mips_abi -+ { -+ MIPS_ABI_UNKNOWN = 0, -+ MIPS_ABI_N32, -+ MIPS_ABI_O32, -+ MIPS_ABI_N64, -+ MIPS_ABI_O64, -+ MIPS_ABI_EABI32, -+ MIPS_ABI_EABI64, -+ MIPS_ABI_LAST -+ }; -+ -+/* Find the mips ABI of the current file */ -+enum mips_abi find_mips_abi(Elf *elf) -+{ -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ -+ if (ehdr == NULL) -+ return MIPS_ABI_LAST; -+ -+ GElf_Word elf_flags = ehdr->e_flags; -+ -+ /* Check elf_flags to see if it specifies the ABI being used. */ -+ switch ((elf_flags & EF_MIPS_ABI)) -+ { -+ case E_MIPS_ABI_O32: -+ return MIPS_ABI_O32; -+ case E_MIPS_ABI_O64: -+ return MIPS_ABI_O64; -+ case E_MIPS_ABI_EABI32: -+ return MIPS_ABI_EABI32; -+ case E_MIPS_ABI_EABI64: -+ return MIPS_ABI_EABI64; -+ default: -+ if ((elf_flags & EF_MIPS_ABI2)) -+ return MIPS_ABI_N32; -+ } -+ -+ /* GCC creates a pseudo-section whose name describes the ABI. */ -+ size_t shstrndx; -+ if (elf_getshdrstrndx (elf, &shstrndx) < 0) -+ return MIPS_ABI_LAST; -+ -+ const char *name; -+ Elf_Scn *scn = NULL; -+ while ((scn = elf_nextscn (elf, scn)) != NULL) -+ { -+ GElf_Shdr shdr_mem; -+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); -+ if (shdr == NULL) -+ return MIPS_ABI_LAST; -+ -+ name = elf_strptr (elf, shstrndx, shdr->sh_name) ?: ""; -+ if (strncmp (name, ".mdebug.", 8) != 0) -+ continue; -+ -+ if (strcmp (name, ".mdebug.abi32") == 0) -+ return MIPS_ABI_O32; -+ else if (strcmp (name, ".mdebug.abiN32") == 0) -+ return MIPS_ABI_N32; -+ else if (strcmp (name, ".mdebug.abi64") == 0) -+ return MIPS_ABI_N64; -+ else if (strcmp (name, ".mdebug.abiO64") == 0) -+ return MIPS_ABI_O64; -+ else if (strcmp (name, ".mdebug.eabi32") == 0) -+ return MIPS_ABI_EABI32; -+ else if (strcmp (name, ".mdebug.eabi64") == 0) -+ return MIPS_ABI_EABI64; -+ else -+ return MIPS_ABI_UNKNOWN; -+ } -+ -+ return MIPS_ABI_UNKNOWN; -+} -+ -+unsigned int -+mips_abi_regsize (enum mips_abi abi) -+{ -+ switch (abi) -+ { -+ case MIPS_ABI_EABI32: -+ case MIPS_ABI_O32: -+ return 4; -+ case MIPS_ABI_N32: -+ case MIPS_ABI_N64: -+ case MIPS_ABI_O64: -+ case MIPS_ABI_EABI64: -+ return 8; -+ case MIPS_ABI_UNKNOWN: -+ case MIPS_ABI_LAST: -+ default: -+ return 0; -+ } -+} -+ -+ -+/* $v0 or pair $v0, $v1 */ -+static const Dwarf_Op loc_intreg_o32[] = -+ { -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+static const Dwarf_Op loc_intreg[] = -+ { -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_intreg 1 -+#define nloc_intregpair 4 -+ -+/* $f0 (float), or pair $f0, $f1 (double). -+ * f2/f3 are used for COMPLEX (= 2 doubles) returns in Fortran */ -+static const Dwarf_Op loc_fpreg_o32[] = -+ { -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+/* $f0, or pair $f0, $f2. */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_fpreg 1 -+#define nloc_fpregpair 4 -+#define nloc_fpregquad 8 -+ -+/* The return value is a structure and is actually stored in stack space -+ passed in a hidden argument by the caller. But, the compiler -+ helpfully returns the address of that space in $v0. */ -+static const Dwarf_Op loc_aggregate[] = -+ { -+ { .atom = DW_OP_breg2, .number = 0 } -+ }; -+#define nloc_aggregate 1 -+ -+int -+mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ /* First find the ABI used by the elf object */ -+ enum mips_abi abi = find_mips_abi(functypedie->cu->dbg->elf); -+ -+ /* Something went seriously wrong while trying to figure out the ABI */ -+ if (abi == MIPS_ABI_LAST) -+ return -1; -+ -+ /* We couldn't identify the ABI, but the file seems valid */ -+ if (abi == MIPS_ABI_UNKNOWN) -+ return -2; -+ -+ /* Can't handle EABI variants */ -+ if ((abi == MIPS_ABI_EABI32) || (abi == MIPS_ABI_EABI64)) -+ return -2; -+ -+ unsigned int regsize = mips_abi_regsize (abi); -+ if (!regsize) -+ return -2; -+ -+ /* Start with the function's type, and get the DW_AT_type attribute, -+ which is the type of the return value. */ -+ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); -+ if (attr == NULL) -+ /* The function has no return value, like a `void' function in C. */ -+ return 0; -+ -+ Dwarf_Die die_mem; -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); -+ int tag = dwarf_tag (typedie); -+ -+ /* Follow typedefs and qualifiers to get to the actual type. */ -+ while (tag == DW_TAG_typedef -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type -+ || tag == DW_TAG_restrict_type) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ -+ switch (tag) -+ { -+ case -1: -+ return -1; -+ -+ case DW_TAG_subrange_type: -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ /* Fall through. */ -+ -+ case DW_TAG_base_type: -+ case DW_TAG_enumeration_type: -+ case DW_TAG_pointer_type: -+ case DW_TAG_ptr_to_member_type: -+ { -+ Dwarf_Word size; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, -+ &attr_mem), &size) != 0) -+ { -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) -+ size = regsize; -+ else -+ return -1; -+ } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+#define ABI_LOC(loc, regsize) ((regsize) == 4 ? (loc ## _o32) : (loc)) -+ -+ if (encoding == DW_ATE_float) -+ { -+ *locp = ABI_LOC(loc_fpreg, regsize); -+ if (size <= regsize) -+ return nloc_fpreg; -+ -+ if (size <= 2*regsize) -+ return nloc_fpregpair; -+ -+ if (size <= 4*regsize && abi == MIPS_ABI_O32) -+ return nloc_fpregquad; -+ -+ goto aggregate; -+ } -+ } -+ *locp = ABI_LOC(loc_intreg, regsize); -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2*regsize) -+ return nloc_intregpair; -+ -+ /* Else fall through. Shouldn't happen though (at least with gcc) */ -+ } -+ -+ case DW_TAG_structure_type: -+ case DW_TAG_class_type: -+ case DW_TAG_union_type: -+ case DW_TAG_array_type: -+ aggregate: -+ /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ -+ if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) -+ return -2; -+ -+ *locp = loc_aggregate; -+ return nloc_aggregate; -+ } -+ -+ /* XXX We don't have a good way to return specific errors from ebl calls. -+ This value means we do not understand the type, but it is well-formed -+ DWARF and might be valid. */ -+ return -2; -+} -diff --git a/backends/mips_symbol.c b/backends/mips_symbol.c -new file mode 100644 -index 0000000..261b05d ---- /dev/null -+++ b/backends/mips_symbol.c -@@ -0,0 +1,53 @@ -+/* MIPS specific symbolic name handling. -+ Copyright (C) 2002, 2003, 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Jakub Jelinek <jakub@redhat.com>, 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <elf.h> -+#include <stddef.h> -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+/* Check for the simple reloc types. */ -+Elf_Type -+mips_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, -+ int *addsub __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case R_MIPS_16: -+ return ELF_T_HALF; -+ case R_MIPS_32: -+ return ELF_T_WORD; -+ case R_MIPS_64: -+ return ELF_T_XWORD; -+ default: -+ return ELF_T_NUM; -+ } -+} -diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c -index 210b47e..1feac13 100644 ---- a/libebl/eblopenbackend.c -+++ b/libebl/eblopenbackend.c -@@ -57,6 +57,7 @@ const char *m68k_init (Elf *, GElf_Half, Ebl *, size_t); - const char *bpf_init (Elf *, GElf_Half, Ebl *, size_t); - const char *riscv_init (Elf *, GElf_Half, Ebl *, size_t); - const char *csky_init (Elf *, GElf_Half, Ebl *, size_t); -+const char *mips_init (Elf *, GElf_Half, Ebl *, size_t); - - /* This table should contain the complete list of architectures as far - as the ELF specification is concerned. */ -@@ -87,6 +88,8 @@ static const struct - { sparc_init, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, - { sparc_init, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, - { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 }, -+ { mips_init, "elf_mips", "mips", 4, EM_MIPS, 0, 0 }, -+ { mips_init, "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 }, - - { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 }, - { m68k_init, "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch b/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch deleted file mode 100644 index dd8f88a454..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 5bf6117a6eaf9007ce80adbb8b66a95ca98047a4 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Wed, 21 Aug 2019 17:00:30 +0800 -Subject: [PATCH] mips_cfi - -Upstream-Status: Pending [from debian] - -Rebase to 0.177 - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> - ---- - backends/Makefile.am | 2 +- - backends/mips_cfi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ - backends/mips_init.c | 1 + - 3 files changed, 82 insertions(+), 1 deletion(-) - create mode 100644 backends/mips_cfi.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 07d45d7..dec3080 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -100,7 +100,7 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ - csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ - csky_regs.c csky_initreg.c csky_corenote.c - --mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c - - libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ - $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ -diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c -new file mode 100644 -index 0000000..9ffdab5 ---- /dev/null -+++ b/backends/mips_cfi.c -@@ -0,0 +1,80 @@ -+/* MIPS ABI-specified defaults for DWARF CFI. -+ Copyright (C) 2018 Kurt Roeckx, Inc. -+ This file is part of elfutils. -+ -+ This file is free software; you can redistribute it and/or modify -+ it under the terms of either -+ -+ * the GNU Lesser General Public License as published by the Free -+ Software Foundation; either version 3 of the License, or (at -+ your option) any later version -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or (at -+ your option) any later version -+ -+ or both in parallel, as here. -+ -+ elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received copies of the GNU General Public License and -+ the GNU Lesser General Public License along with this program. If -+ not, see <http://www.gnu.org/licenses/>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <dwarf.h> -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+int -+mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) -+{ -+ static const uint8_t abi_cfi[] = -+ { -+ /* Call-saved regs. */ -+ DW_CFA_same_value, ULEB128_7 (16), /* $16 */ -+ DW_CFA_same_value, ULEB128_7 (17), /* $17 */ -+ DW_CFA_same_value, ULEB128_7 (18), /* $18 */ -+ DW_CFA_same_value, ULEB128_7 (19), /* $19 */ -+ DW_CFA_same_value, ULEB128_7 (20), /* $20 */ -+ DW_CFA_same_value, ULEB128_7 (21), /* $21 */ -+ DW_CFA_same_value, ULEB128_7 (22), /* $22 */ -+ DW_CFA_same_value, ULEB128_7 (23), /* $23 */ -+ DW_CFA_same_value, ULEB128_7 (28), /* $28 */ -+ DW_CFA_same_value, ULEB128_7 (29), /* $29 */ -+ DW_CFA_same_value, ULEB128_7 (30), /* $30 */ -+ -+ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */ -+ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */ -+ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */ -+ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */ -+ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */ -+ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */ -+ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */ -+ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */ -+ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */ -+ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */ -+ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */ -+ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */ -+ -+ /* The CFA is the SP. */ -+ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0), -+ }; -+ -+ abi_info->initial_instructions = abi_cfi; -+ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; -+ abi_info->data_alignment_factor = 4; -+ -+ abi_info->return_address_register = 31; /* $31 */ -+ -+ return 0; -+} -diff --git a/backends/mips_init.c b/backends/mips_init.c -index 8482e7f..bce5abe 100644 ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)), - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); - HOOK (eh, register_info); -+ HOOK (eh, abi_cfi); - - return MODVERSION; - } diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch b/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch deleted file mode 100644 index c6d42e163a..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7bdc83296865cf2b2a5615dbdb7ac0d441fb1849 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Wed, 21 Aug 2019 16:55:01 +0800 -Subject: [PATCH] mips_readelf_w - -Upstream-Status: Pending [from debian] - -Rebase to 0.177 - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - src/readelf.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 2084fb1..5c02a9b 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -11256,7 +11256,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) - GElf_Shdr shdr_mem; - GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); - -- if (shdr != NULL && shdr->sh_type == SHT_PROGBITS) -+ if (shdr != NULL && ( -+ (shdr->sh_type == SHT_PROGBITS) || (shdr->sh_type == SHT_MIPS_DWARF))) - { - static const struct - { --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff b/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff deleted file mode 100644 index e6d7948c67..0000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff +++ /dev/null @@ -1,52 +0,0 @@ -From 6393b0e57872b3ffedf0dbd6784cd29694010878 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Wed, 21 Aug 2019 16:59:01 +0800 -Subject: [PATCH 1/2] testsuite-ignore-elflint - -Upstream-Status: Pending [from debian] - -Rebase to 0.177 - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - tests/run-elflint-self.sh | 2 +- - tests/test-subr.sh | 15 +++++++++++++++ - 2 files changed, 16 insertions(+), 1 deletion(-) - -diff --git a/tests/run-elflint-self.sh b/tests/run-elflint-self.sh -index 58fa7d0..85d21a5 100755 ---- a/tests/run-elflint-self.sh -+++ b/tests/run-elflint-self.sh -@@ -18,5 +18,5 @@ - - . $srcdir/test-subr.sh - --testrun_on_self ${abs_top_builddir}/src/elflint --quiet --gnu-ld -+testrun_on_self_skip ${abs_top_builddir}/src/elflint --quiet --gnu-ld - testrun_on_self_compressed ${abs_top_builddir}/src/elflint --quiet --gnu-ld -diff --git a/tests/test-subr.sh b/tests/test-subr.sh -index 09f428d..26f61f1 100644 ---- a/tests/test-subr.sh -+++ b/tests/test-subr.sh -@@ -201,3 +201,18 @@ testrun_on_self_quiet() - # Only exit if something failed - if test $exit_status != 0; then exit $exit_status; fi - } -+ -+# Same as testrun_on_self(), but skip on failure. -+testrun_on_self_skip() -+{ -+ exit_status=0 -+ -+ for file in $self_test_files; do -+ testrun $* $file \ -+ || { echo "*** failure in $* $file"; exit_status=77; } -+ done -+ -+ # Only exit if something failed -+ if test $exit_status != 0; then exit $exit_status; fi -+} -+ --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb index 9d1874c7bc..54eb5e48a1 100644 --- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb +++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb @@ -8,8 +8,8 @@ DEPENDS_class-native = "hostperl-runtime-native" INHIBIT_DEFAULT_DEPS = "1" -SRCREV = "e78c96e5288993aaea3ec44e5c6ee755c668da79" -PV = "20200515+git${SRCPV}" +SRCREV = "696cd4a4eab1ee9fefbb7e38dbab291d741d0c5a" +PV = "20200621+git${SRCPV}" SRC_URI = "git://git.savannah.gnu.org/config.git \ file://gnu-configize.in" diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb index 3c535e14ce..72c988944f 100644 --- a/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb +++ b/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb @@ -11,6 +11,9 @@ SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz SRC_URI[go_linux_amd64.sha256sum] = "aed845e4185a0b2a3c3d5e1d0a35491702c55889192bb9c30e67a3de6849c067" SRC_URI[go_linux_arm64.sha256sum] = "05dc46ada4e23a1f58e72349f7c366aae2e9c7a7f1e7653095538bc5bba5e077" +UPSTREAM_CHECK_URI = "https://golang.org/dl/" +UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux" + S = "${WORKDIR}/go" inherit goarch native diff --git a/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb b/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb index b4d7e80afe..62f0dfb0c5 100644 --- a/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb +++ b/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb @@ -2,12 +2,14 @@ SUMMARY = "jQuery is a fast, small, and feature-rich JavaScript library" HOMEPAGE = "https://jquery.com/" LICENSE = "MIT" SECTION = "devel" -LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}.js;beginline=8;endline=10;md5=ebd7bc5d23ab165188e526a0c65d24bb" +LIC_FILES_CHKSUM = "file://${S}/${BP}.js;beginline=8;endline=10;md5=ebd7bc5d23ab165188e526a0c65d24bb" +# unpack items to ${S} so the archiver can see them +# SRC_URI = "\ - https://code.jquery.com/${BP}.js;name=js \ - https://code.jquery.com/${BP}.min.js;name=min \ - https://code.jquery.com/${BP}.min.map;name=map \ + https://code.jquery.com/${BP}.js;name=js;subdir=${BP} \ + https://code.jquery.com/${BP}.min.js;name=min;subdir=${BP} \ + https://code.jquery.com/${BP}.min.map;name=map;subdir=${BP} \ " SRC_URI[js.sha256sum] = "416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37" @@ -20,9 +22,9 @@ inherit allarch do_install() { install -d ${D}${datadir}/javascript/${BPN}/ - install -m 644 ${WORKDIR}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js - install -m 644 ${WORKDIR}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js - install -m 644 ${WORKDIR}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map + install -m 644 ${S}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js + install -m 644 ${S}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js + install -m 644 ${S}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map } PACKAGES = "${PN}" diff --git a/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch b/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch new file mode 100644 index 0000000000..a45cfb61bc --- /dev/null +++ b/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch @@ -0,0 +1,160 @@ +From 099016b7e8d70a6d5dd814e788bba08d33d48426 Mon Sep 17 00:00:00 2001 +From: Tobias Stoeckmann <tobias@stoeckmann.org> +Date: Mon, 4 May 2020 19:41:16 +0200 +Subject: [PATCH 1/3] Protect array_list_del_idx against size_t overflow. + +If the assignment of stop overflows due to idx and count being +larger than SIZE_T_MAX in sum, out of boundary access could happen. + +It takes invalid usage of this function for this to happen, but +I decided to add this check so array_list_del_idx is as safe against +bad usage as the other arraylist functions. + +Upstream-Status: Backport [https://github.com/json-c/json-c/commit/31243e4d1204ef78be34b0fcae73221eee6b83be] +CVE: CVE-2020-12762 +Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com> + +--- + arraylist.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arraylist.c b/arraylist.c +index 12ad8af6d3..e5524aca75 100644 +--- a/arraylist.c ++++ b/arraylist.c +@@ -136,6 +136,9 @@ int array_list_del_idx(struct array_list *arr, size_t idx, size_t count) + { + size_t i, stop; + ++ /* Avoid overflow in calculation with large indices. */ ++ if (idx > SIZE_T_MAX - count) ++ return -1; + stop = idx + count; + if (idx >= arr->length || stop > arr->length) + return -1; + +From 77d935b7ae7871a1940cd827e850e6063044ec45 Mon Sep 17 00:00:00 2001 +From: Tobias Stoeckmann <tobias@stoeckmann.org> +Date: Mon, 4 May 2020 19:46:45 +0200 +Subject: [PATCH 2/3] Prevent division by zero in linkhash. + +If a linkhash with a size of zero is created, then modulo operations +are prone to division by zero operations. + +Purely protective measure against bad usage. +--- + linkhash.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/linkhash.c b/linkhash.c +index 7ea58c0abf..f05cc38030 100644 +--- a/linkhash.c ++++ b/linkhash.c +@@ -12,6 +12,7 @@ + + #include "config.h" + ++#include <assert.h> + #include <limits.h> + #include <stdarg.h> + #include <stddef.h> +@@ -499,6 +500,8 @@ struct lh_table *lh_table_new(int size, lh_entry_free_fn *free_fn, lh_hash_fn *h + int i; + struct lh_table *t; + ++ /* Allocate space for elements to avoid divisions by zero. */ ++ assert(size > 0); + t = (struct lh_table *)calloc(1, sizeof(struct lh_table)); + if (!t) + return NULL; + +From d07b91014986900a3a75f306d302e13e005e9d67 Mon Sep 17 00:00:00 2001 +From: Tobias Stoeckmann <tobias@stoeckmann.org> +Date: Mon, 4 May 2020 19:47:25 +0200 +Subject: [PATCH 3/3] Fix integer overflows. + +The data structures linkhash and printbuf are limited to 2 GB in size +due to a signed integer being used to track their current size. + +If too much data is added, then size variable can overflow, which is +an undefined behaviour in C programming language. + +Assuming that a signed int overflow just leads to a negative value, +like it happens on many sytems (Linux i686/amd64 with gcc), then +printbuf is vulnerable to an out of boundary write on 64 bit systems. +--- + linkhash.c | 7 +++++-- + printbuf.c | 19 ++++++++++++++++--- + 2 files changed, 21 insertions(+), 5 deletions(-) + +diff --git a/linkhash.c b/linkhash.c +index f05cc38030..51e90b13a2 100644 +--- a/linkhash.c ++++ b/linkhash.c +@@ -580,9 +580,12 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con + { + unsigned long n; + +- if (t->count >= t->size * LH_LOAD_FACTOR) +- if (lh_table_resize(t, t->size * 2) != 0) ++ if (t->count >= t->size * LH_LOAD_FACTOR) { ++ /* Avoid signed integer overflow with large tables. */ ++ int new_size = INT_MAX / 2 < t->size ? t->size * 2 : INT_MAX; ++ if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0) + return -1; ++ } + + n = h % t->size; + +diff --git a/printbuf.c b/printbuf.c +index 976c12dde5..00822fac4f 100644 +--- a/printbuf.c ++++ b/printbuf.c +@@ -15,6 +15,7 @@ + + #include "config.h" + ++#include <limits.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +@@ -65,10 +66,16 @@ static int printbuf_extend(struct printbuf *p, int min_size) + + if (p->size >= min_size) + return 0; +- +- new_size = p->size * 2; +- if (new_size < min_size + 8) ++ /* Prevent signed integer overflows with large buffers. */ ++ if (min_size > INT_MAX - 8) ++ return -1; ++ if (p->size > INT_MAX / 2) + new_size = min_size + 8; ++ else { ++ new_size = p->size * 2; ++ if (new_size < min_size + 8) ++ new_size = min_size + 8; ++ } + #ifdef PRINTBUF_DEBUG + MC_DEBUG("printbuf_memappend: realloc " + "bpos=%d min_size=%d old_size=%d new_size=%d\n", +@@ -83,6 +90,9 @@ static int printbuf_extend(struct printbuf *p, int min_size) + + int printbuf_memappend(struct printbuf *p, const char *buf, int size) + { ++ /* Prevent signed integer overflows with large buffers. */ ++ if (size > INT_MAX - p->bpos - 1) ++ return -1; + if (p->size <= p->bpos + size + 1) + { + if (printbuf_extend(p, p->bpos + size + 1) < 0) +@@ -100,6 +110,9 @@ int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len) + + if (offset == -1) + offset = pb->bpos; ++ /* Prevent signed integer overflows with large buffers. */ ++ if (len > INT_MAX - offset) ++ return -1; + size_needed = offset + len; + if (pb->size < size_needed) + { diff --git a/poky/meta/recipes-devtools/json-c/json-c_0.14.bb b/poky/meta/recipes-devtools/json-c/json-c_0.14.bb index 99fde873b1..1d501d1294 100644 --- a/poky/meta/recipes-devtools/json-c/json-c_0.14.bb +++ b/poky/meta/recipes-devtools/json-c/json-c_0.14.bb @@ -4,7 +4,10 @@ HOMEPAGE = "https://github.com/json-c/json-c/wiki" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=de54b60fbbc35123ba193fea8ee216f2" -SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz" +SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \ + file://CVE-2020-12762.patch \ +" + SRC_URI[sha256sum] = "b377de08c9b23ca3b37d9a9828107dff1de5ce208ff4ebb35005a794f30c6870" UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch index ac9400c48d..384add5e12 100644 --- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch +++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch @@ -1,4 +1,4 @@ -From 56fa2bbdbd29377a6ef0d0b7aadbac8b5ea8c95b Mon Sep 17 00:00:00 2001 +From 7d60d62b5c5374156703ca7262fb2f85ec5db119 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Tue, 6 Nov 2018 13:54:43 +0100 Subject: [PATCH] Add WITH_TESTS option @@ -14,7 +14,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 2 files changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 881152a..965c992 100644 +index 9c6e1b2f..8599c540 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ option(WITH_MAN "Enables hawkey man page generation" ON) @@ -24,8 +24,8 @@ index 881152a..965c992 100644 +option(WITH_TESTS "Enables unit tests" ON) - # load pkg-config first; it's required by other modules -@@ -165,8 +166,10 @@ endif() + # build options - debugging +@@ -179,8 +180,10 @@ endif() # build tests @@ -37,7 +37,7 @@ index 881152a..965c992 100644 add_subdirectory(python/hawkey) endif() diff --git a/python/hawkey/CMakeLists.txt b/python/hawkey/CMakeLists.txt -index d964534..84d1720 100644 +index d9645346..84d17204 100644 --- a/python/hawkey/CMakeLists.txt +++ b/python/hawkey/CMakeLists.txt @@ -50,4 +50,6 @@ target_link_libraries(_hawkeymodule ${PYTHON_LIBRARY}) diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Use-single-quotes-around-string-literals-used-in-SQL.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Use-single-quotes-around-string-literals-used-in-SQL.patch deleted file mode 100644 index 6be484fea3..0000000000 --- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Use-single-quotes-around-string-literals-used-in-SQL.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 96ca7d0049461df2293dd0000edcbc69b64255e0 Mon Sep 17 00:00:00 2001 -From: Peter Kjellerstedt <pkj@axis.com> -Date: Sun, 3 May 2020 22:40:39 +0200 -Subject: [PATCH] Use single-quotes around string literals used in SQL - statements - -If sqlite is built with -DSQLITE_DQS=0 in accordance with -https://sqlite.org/quirks.html#dblquote, migration to version 1.2 of the -history database would fail with: - - History database cannot be created: /var/lib/dnf/history.sqlite. - Error: SQLite error on ":memory:": Executing an SQL statement failed: - no such column: 1.2 - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/951] -Signed-off-by: Peter Kjellerstedt <pkj@axis.com> ---- - libdnf/transaction/sql/migrate_tables_1_2.sql | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libdnf/transaction/sql/migrate_tables_1_2.sql b/libdnf/transaction/sql/migrate_tables_1_2.sql -index 49b75315..f80ad1c4 100644 ---- a/libdnf/transaction/sql/migrate_tables_1_2.sql -+++ b/libdnf/transaction/sql/migrate_tables_1_2.sql -@@ -1,9 +1,9 @@ - R"**( - BEGIN TRANSACTION; - ALTER TABLE trans -- ADD comment TEXT DEFAULT ""; -+ ADD comment TEXT DEFAULT ''; - UPDATE config -- SET value = "1.2" -+ SET value = '1.2' - WHERE key = 'version'; - COMMIT; - )**" diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.47.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb index 1b06d66b19..947b2f2348 100644 --- a/poky/meta/recipes-devtools/libdnf/libdnf_0.47.0.bb +++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb @@ -8,10 +8,9 @@ SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master \ file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \ file://0001-Add-WITH_TESTS-option.patch \ file://0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch \ - file://0001-Use-single-quotes-around-string-literals-used-in-SQL.patch \ " -SRCREV = "8330eea6985c4e4b53796f858de5b6b38b1ddf5c" +SRCREV = "46a28d0cf09277fffc11392e5e362a2eda0d53a8" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc index a0b54f57db..ffa17b3061 100644 --- a/poky/meta/recipes-devtools/meson/meson.inc +++ b/poky/meta/recipes-devtools/meson/meson.inc @@ -15,9 +15,8 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P file://cross-prop-default.patch \ file://0001-modules-python.py-do-not-substitute-python-s-install.patch \ file://0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch \ - file://0001-boost-Always-sort-shared-before-static-fixes-7171.patch \ " -SRC_URI[sha256sum] = "a7716eeae8f8dff002e4147642589ab6496ff839e4376a5aed761f83c1fa0455" +SRC_URI[sha256sum] = "f2bdf4cf0694e696b48261cdd14380fb1d0fe33d24744d8b2df0c12f33ebb662" SRC_URI_append_class-native = " \ file://0001-Make-CPU-family-warnings-fatal.patch \ diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch index 01a8bb3d53..39b1af52e7 100644 --- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch +++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch @@ -1,4 +1,4 @@ -From 830db2c7a136b2446d740c9ca025374352ffd16d Mon Sep 17 00:00:00 2001 +From 62c415eedb62905de76e2e0bbd156a947705cab2 Mon Sep 17 00:00:00 2001 From: Ross Burton <ross.burton@intel.com> Date: Tue, 3 Jul 2018 13:59:09 +0100 Subject: [PATCH] Make CPU family warnings fatal diff --git a/poky/meta/recipes-devtools/meson/meson/0001-boost-Always-sort-shared-before-static-fixes-7171.patch b/poky/meta/recipes-devtools/meson/meson/0001-boost-Always-sort-shared-before-static-fixes-7171.patch deleted file mode 100644 index 217218180e..0000000000 --- a/poky/meta/recipes-devtools/meson/meson/0001-boost-Always-sort-shared-before-static-fixes-7171.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5862ad6965c60caa861dfdcd29e499c34c4d00da Mon Sep 17 00:00:00 2001 -From: Daniel Mensinger <daniel@mensinger-ka.de> -Date: Thu, 21 May 2020 13:35:27 +0200 -Subject: [PATCH] boost: Always sort shared before static (fixes #7171) - -Upstream-Status: Backport [https://github.com/mesonbuild/meson/commit/5862ad6965c60caa861dfdcd29e499c34c4d00da] - -Signed-off-by: Andrew Geissler <geissonator@gmail.com> ---- - mesonbuild/dependencies/boost.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py -index 6e85c534..38497041 100644 ---- a/mesonbuild/dependencies/boost.py -+++ b/mesonbuild/dependencies/boost.py -@@ -189,13 +189,13 @@ class BoostLibraryFile(): - def __lt__(self, other: T.Any) -> bool: - if isinstance(other, BoostLibraryFile): - return ( -- self.mod_name, self.version_lib, self.arch, self.static, -+ self.mod_name, self.static, self.version_lib, self.arch, - not self.mt, not self.runtime_static, - not self.debug, self.runtime_debug, self.python_debug, - self.stlport, self.deprecated_iostreams, - self.name, - ) < ( -- other.mod_name, other.version_lib, other.arch, other.static, -+ other.mod_name, other.static, other.version_lib, other.arch, - not other.mt, not other.runtime_static, - not other.debug, other.runtime_debug, other.python_debug, - other.stlport, other.deprecated_iostreams, --- -2.26.2 - diff --git a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch index 246c4d7beb..bb06d99247 100644 --- a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch +++ b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch @@ -1,4 +1,4 @@ -From 45df8f0a71c6b60cb98a336f8690af04965dfa9b Mon Sep 17 00:00:00 2001 +From d976d5a8abd6d42edf794d2a4c211fc6697fb14c Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt <pkj@axis.com> Date: Thu, 26 Jul 2018 16:32:49 +0200 Subject: [PATCH] Support building allarch recipes again diff --git a/poky/meta/recipes-devtools/meson/meson_0.54.2.bb b/poky/meta/recipes-devtools/meson/meson_0.54.3.bb index de9b905c12..de9b905c12 100644 --- a/poky/meta/recipes-devtools/meson/meson_0.54.2.bb +++ b/poky/meta/recipes-devtools/meson/meson_0.54.3.bb diff --git a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.2.bb b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.3.bb index 67add2c25e..67add2c25e 100644 --- a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.2.bb +++ b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.3.bb diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch b/poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch deleted file mode 100644 index 945979bc8a..0000000000 --- a/poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch +++ /dev/null @@ -1,32 +0,0 @@ -Fix reproducibility issues in opkg-build - -There is a sorting problem with opkg-build where the ipk generated is depending -upon the order of files on disk. The reason is the --sort option to tar only -influences the orders of files tar reads, not those passed by the -T option. - -Add in a sort call to resolve this issue. To ensure consistent sorting we -also need to force to a specific locale (C) else the results are still not -deterministic. - -RP 2020/2/5 - -Upstream-Status: Submitted [https://groups.google.com/forum/#!topic/opkg-devel/YttZ73NLrYQ] -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> - -Index: opkg-utils-0.4.2/opkg-build -=================================================================== ---- opkg-utils-0.4.2.orig/opkg-build -+++ opkg-utils-0.4.2/opkg-build -@@ -305,8 +305,10 @@ if [ ! -z "$SOURCE_DATE_EPOCH" ]; then - mtime_args="--mtime=@$build_date --clamp-mtime" - fi - --( cd $pkg_dir/$CONTROL && find . -type f > $tmp_dir/control_list ) --( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print > $tmp_dir/file_list ) -+export LANG=C -+export LC_ALL=C -+( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list ) -+( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list ) - ( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) - ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz ) - rm $tmp_dir/file_list diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb index 9315240190..f9df58a295 100644 --- a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb +++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb @@ -8,12 +8,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}" SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ - file://fix-reproducibility.patch \ " UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" -SRC_URI[md5sum] = "cc210650644fcb9bba06ad5ec95a63ec" -SRC_URI[sha256sum] = "5929ad87d541789e0b82d626db01a1201ac48df6f49f2262fcfb86cf815e5d6c" +SRC_URI[md5sum] = "7bbadb3c381f3ea935b21d3bb8cc4671" +SRC_URI[sha256sum] = "046517600fb0aed6c4645edefe02281f4fa2f1c02f71596152d93172452c0b01" TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb index 66a74dc5ed..46b7aa2523 100644 --- a/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb +++ b/poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb @@ -17,8 +17,8 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz file://run-ptest \ " -SRC_URI[md5sum] = "bd13e5dfc1c2536f0c7b2e15f795278e" -SRC_URI[sha256sum] = "86887852c43457edfff9d8b6d9520f3f1cdd55f25eb600a6eb31e1c4e151e106" +SRC_URI[md5sum] = "86ec5eee9362aca0990994a402e077e9" +SRC_URI[sha256sum] = "dda452854bc0cd1334f7ba18a66003d1c12a98600c894111b56919b1ea434718" # This needs to be before ptest inherit, otherwise all ptest files end packaged # in libopkg package if OPKGLIBDIR == libdir, because default diff --git a/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch b/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch deleted file mode 100644 index 79cae0d6fa..0000000000 --- a/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a04a75f20f03aa08ce8118b3b0b3f93eb3e997c5 Mon Sep 17 00:00:00 2001 -From: Richard Leach <rich+perl@hyphen-dash-hyphen.info> -Date: Sun, 19 May 2019 20:16:41 +0000 -Subject: [PATCH] PATCH: [perl #134117] Close DATA in loc_tools.pl - -This prevents unexpected text and fixes test lib/warnings.t - -Upstream-Status: Backport [a04a75f20f03aa08ce8118b3b0b3f93eb3e997c5] - -Signed-off-by: Matthew Zeng <matthew.zeng@windriver.com> - ---- - t/loc_tools.pl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/t/loc_tools.pl b/t/loc_tools.pl -index c76e29388a..beebd98d88 100644 ---- a/t/loc_tools.pl -+++ b/t/loc_tools.pl -@@ -421,7 +421,7 @@ sub find_locales ($;$) { - } - - # The rest of the locales are in this file. -- push @Data, <DATA>; -+ push @Data, <DATA>; close DATA; - - foreach my $line (@Data) { - my ($locale_name, $language_codes, $country_codes, $encodings) = --- -2.25.0 diff --git a/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch b/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch deleted file mode 100644 index 1a531072a8..0000000000 --- a/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 31a2c5555f9ef32f35d7d5ce1fd09a010ba5f5c6 Mon Sep 17 00:00:00 2001 -From: Joshua Watt <JPEWhacker@gmail.com> -Date: Mon, 17 Jun 2019 10:47:15 -0500 -Subject: [PATCH 1/2] enc2xs: Add environment variable to suppress comments - -Comment generation in enc2xs can now be suppressed by setting the -ENC2XS_NO_COMMENTS environment variable. This allows enc2xs to produce -reproducible output by omitting the name of the generating program. - -Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> -Upstream-Status: Backport [https://github.com/dankogai/p5-encode/pull/145] ---- - cpan/Encode/bin/enc2xs | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs -index 619b64b757..bfce9ee735 100644 ---- a/cpan/Encode/bin/enc2xs -+++ b/cpan/Encode/bin/enc2xs -@@ -144,6 +144,7 @@ getopts('CM:SQqOo:f:n:v',\%opt); - $opt{M} and make_makefile_pl($opt{M}, @ARGV); - $opt{C} and make_configlocal_pm($opt{C}, @ARGV); - $opt{v} ||= $ENV{ENC2XS_VERBOSE}; -+$opt{q} ||= $ENV{ENC2XS_NO_COMMENTS}; - - sub verbose { - print STDERR @_ if $opt{v}; --- -2.21.0 - diff --git a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt index 9ecfce0011..e7cd551988 100644 --- a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt +++ b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt @@ -59,7 +59,6 @@ RDEPENDS_perl-module-archive-tar += "perl-module-io-file" RDEPENDS_perl-module-archive-tar += "perl-module-io-zlib" RDEPENDS_perl-module-archive-tar += "perl-module-strict" RDEPENDS_perl-module-archive-tar += "perl-module-vars" -RDEPENDS_perl-module-arybase += "perl-module-xsloader" RDEPENDS_perl-module-attribute-handlers += "perl-module-strict" RDEPENDS_perl-module-attribute-handlers += "perl-module-warnings" RDEPENDS_perl-module-attributes += "perl-module-exporter" @@ -109,9 +108,6 @@ RDEPENDS_perl-module-b-concise += "perl-module-exporter" RDEPENDS_perl-module-b-concise += "perl-module-feature" RDEPENDS_perl-module-b-concise += "perl-module-strict" RDEPENDS_perl-module-b-concise += "perl-module-warnings" -RDEPENDS_perl-module-b-debug += "perl-module-b" -RDEPENDS_perl-module-b-debug += "perl-module-config" -RDEPENDS_perl-module-b-debug += "perl-module-strict" RDEPENDS_perl-module-benchmark += "perl-module-exporter" RDEPENDS_perl-module-benchmark += "perl-module-strict" RDEPENDS_perl-module-bigint += "perl-module-constant" @@ -153,9 +149,6 @@ 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-carp += "perl-module-exporter" -RDEPENDS_perl-module-carp += "perl-module-strict" -RDEPENDS_perl-module-carp += "perl-module-warnings" RDEPENDS_perl-module--charnames += "perl-module-bytes" RDEPENDS_perl-module-charnames += "perl-module-bytes" RDEPENDS_perl-module-charnames += "perl-module--charnames" @@ -196,2313 +189,6 @@ RDEPENDS_perl-module-compress-zlib += "perl-module-warnings " RDEPENDS_perl-module-config-extensions += "perl-module-config" RDEPENDS_perl-module-config-extensions += "perl-module-exporter" RDEPENDS_perl-module-config-extensions += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-warnings" -RDEPENDS_perl-module-config-perl-v += "perl-module-config" -RDEPENDS_perl-module-config-perl-v += "perl-module-exporter" -RDEPENDS_perl-module-config-perl-v += "perl-module-strict" -RDEPENDS_perl-module-config-perl-v += "perl-module-vars" -RDEPENDS_perl-module-config-perl-v += "perl-module-warnings" -RDEPENDS_perl-module-constant += "perl-module-strict" -RDEPENDS_perl-module-constant += "perl-module-warnings-register" -RDEPENDS_perl-module-corelist += "perl-module-list-util" -RDEPENDS_perl-module-corelist += "perl-module-corelist" -RDEPENDS_perl-module-corelist += "perl-module-strict" -RDEPENDS_perl-module-corelist += "perl-module-version" -RDEPENDS_perl-module-corelist += "perl-module-warnings" -RDEPENDS_perl-module-cpan += "perl-module-b" -RDEPENDS_perl-module-cpan += "perl-module-config" -RDEPENDS_perl-module-cpan += "perl-module-cwd" -RDEPENDS_perl-module-cpan += "perl-module-data-dumper" -RDEPENDS_perl-module-cpan += "perl-module-dirhandle" -RDEPENDS_perl-module-cpan += "perl-module-errno" -RDEPENDS_perl-module-cpan += "perl-module-exporter" -RDEPENDS_perl-module-cpan += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-cpan += "perl-module-extutils-manifest" -RDEPENDS_perl-module-cpan += "perl-module-fcntl" -RDEPENDS_perl-module-cpan += "perl-module-file-basename" -RDEPENDS_perl-module-cpan += "perl-module-file-copy" -RDEPENDS_perl-module-cpan += "perl-module-file-find" -RDEPENDS_perl-module-cpan += "perl-module-filehandle" -RDEPENDS_perl-module-cpan += "perl-module-file-path" -RDEPENDS_perl-module-cpan += "perl-module-lib" -RDEPENDS_perl-module-cpan += "perl-module-net-ping" -RDEPENDS_perl-module-cpan += "perl-module-overload" -RDEPENDS_perl-module-cpan += "perl-module-posix" -RDEPENDS_perl-module-cpan += "perl-module-safe" -RDEPENDS_perl-module-cpan += "perl-module-strict" -RDEPENDS_perl-module-cpan += "perl-module-sys-hostname" -RDEPENDS_perl-module-cpan += "perl-module-term-readline" -RDEPENDS_perl-module-cpan += "perl-module-text-parsewords" -RDEPENDS_perl-module-cpan += "perl-module-text-wrap" -RDEPENDS_perl-module-cpan += "perl-module-time-local" -RDEPENDS_perl-module-cpan += "perl-module-vars" -RDEPENDS_perl-module-cpan += "perl-module-warnings" -RDEPENDS_perl-module-cwd += "perl-module-errno" -RDEPENDS_perl-module-cwd += "perl-module-exporter" -RDEPENDS_perl-module-cwd += "perl-module-strict" -RDEPENDS_perl-module-cwd += "perl-module-xsloader" -RDEPENDS_perl-module-data-dumper += "perl-module-bytes" -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-xsloader" -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" -RDEPENDS_perl-module-dbm-filter-encode += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter-int32 += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-int32 += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter-null += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-null += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter-utf8 += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-utf8 += "perl-module-warnings" -RDEPENDS_perl-module-db += "perl-module-strict" -RDEPENDS_perl-module-deprecate += "perl-module-strict" -RDEPENDS_perl-module-deprecate += "perl-module-warnings" -RDEPENDS_perl-module-devel-peek += "perl-module-exporter" -RDEPENDS_perl-module-devel-peek += "perl-module-xsloader" -RDEPENDS_perl-module-devel-ppport += "perl-module-file-find" -RDEPENDS_perl-module-devel-ppport += "perl-module-getopt-long" -RDEPENDS_perl-module-devel-ppport += "perl-module-strict" -RDEPENDS_perl-module-devel-ppport += "perl-module-vars" -RDEPENDS_perl-module-devel-selfstubber += "perl-module-selfloader" -RDEPENDS_perl-module-diagnostics += "perl-module-config" -RDEPENDS_perl-module-diagnostics += "perl-module-getopt-std" -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-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-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-xsloader" -RDEPENDS_perl-module-digest += "perl-module-strict" -RDEPENDS_perl-module-digest += "perl-module-vars" -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" -RDEPENDS_perl-module-digest-sha += "perl-module-fcntl" -RDEPENDS_perl-module-digest-sha += "perl-module-integer" -RDEPENDS_perl-module-digest-sha += "perl-module-strict" -RDEPENDS_perl-module-digest-sha += "perl-module-vars" -RDEPENDS_perl-module-digest-sha += "perl-module-warnings" -RDEPENDS_perl-module-digest-sha += "perl-module-xsloader" -RDEPENDS_perl-module-dynaloader += "perl-module-config" -RDEPENDS_perl-module-encode-alias += "perl-module-constant" -RDEPENDS_perl-module-encode-alias += "perl-module-encode" -RDEPENDS_perl-module-encode-alias += "perl-module-exporter" -RDEPENDS_perl-module-encode-alias += "perl-module-strict" -RDEPENDS_perl-module-encode-alias += "perl-module-warnings" -RDEPENDS_perl-module-encode-byte += "perl-module-encode" -RDEPENDS_perl-module-encode-byte += "perl-module-strict" -RDEPENDS_perl-module-encode-byte += "perl-module-warnings" -RDEPENDS_perl-module-encode-byte += "perl-module-xsloader" -RDEPENDS_perl-module-encode-cjkconstants += "perl-module-exporter" -RDEPENDS_perl-module-encode-cjkconstants += "perl-module-strict" -RDEPENDS_perl-module-encode-cjkconstants += "perl-module-warnings" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-encode" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-parent" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-strict" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-utf8" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-vars" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-warnings" -RDEPENDS_perl-module-encode-cn += "perl-module-encode" -RDEPENDS_perl-module-encode-cn += "perl-module-encode-cn-hz" -RDEPENDS_perl-module-encode-cn += "perl-module-strict" -RDEPENDS_perl-module-encode-cn += "perl-module-warnings" -RDEPENDS_perl-module-encode-cn += "perl-module-xsloader" -RDEPENDS_perl-module-encode-config += "perl-module-strict" -RDEPENDS_perl-module-encode-config += "perl-module-warnings" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-encode" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-strict" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-warnings" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-xsloader" -RDEPENDS_perl-module-encode-encoder += "perl-module-constant" -RDEPENDS_perl-module-encode-encoder += "perl-module-encode" -RDEPENDS_perl-module-encode-encoder += "perl-module-exporter" -RDEPENDS_perl-module-encode-encoder += "perl-module-overload" -RDEPENDS_perl-module-encode-encoder += "perl-module-strict" -RDEPENDS_perl-module-encode-encoder += "perl-module-warnings" -RDEPENDS_perl-module-encode-encoding += "perl-module-constant" -RDEPENDS_perl-module-encode-encoding += "perl-module-encode" -RDEPENDS_perl-module-encode-encoding += "perl-module-encode-mime-name" -RDEPENDS_perl-module-encode-encoding += "perl-module-strict" -RDEPENDS_perl-module-encode-encoding += "perl-module-warnings" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-encode" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-parent" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-strict" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-utf8" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-vars" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-warnings" -RDEPENDS_perl-module-encode-guess += "perl-module-bytes" -RDEPENDS_perl-module-encode-guess += "perl-module-constant" -RDEPENDS_perl-module-encode-guess += "perl-module-encode" -RDEPENDS_perl-module-encode-guess += "perl-module-encode-unicode" -RDEPENDS_perl-module-encode-guess += "perl-module-parent" -RDEPENDS_perl-module-encode-guess += "perl-module-strict" -RDEPENDS_perl-module-encode-guess += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-strict" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-vars" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-bytes" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode-jp-h2z" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-parent" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-strict" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp += "perl-module-encode" -RDEPENDS_perl-module-encode-jp += "perl-module-encode-jp-jis7" -RDEPENDS_perl-module-encode-jp += "perl-module-strict" -RDEPENDS_perl-module-encode-jp += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp += "perl-module-xsloader" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-encode" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-parent" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-strict" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-warnings" -RDEPENDS_perl-module-encode-kr += "perl-module-encode" -RDEPENDS_perl-module-encode-kr += "perl-module-encode-kr-2022-kr" -RDEPENDS_perl-module-encode-kr += "perl-module-strict" -RDEPENDS_perl-module-encode-kr += "perl-module-warnings" -RDEPENDS_perl-module-encode-kr += "perl-module-xsloader" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-constant" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-parent" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-strict" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-warnings" -RDEPENDS_perl-module-encode-mime-header += "perl-module-encode" -RDEPENDS_perl-module-encode-mime-header += "perl-module-mime-base64" -RDEPENDS_perl-module-encode-mime-header += "perl-module-parent" -RDEPENDS_perl-module-encode-mime-header += "perl-module-strict" -RDEPENDS_perl-module-encode-mime-header += "perl-module-warnings" -RDEPENDS_perl-module-encode-mime-name += "perl-module-strict" -RDEPENDS_perl-module-encode-mime-name += "perl-module-warnings" -RDEPENDS_perl-module-encode += "perl-module-bytes" -RDEPENDS_perl-module-encode += "perl-module-constant" -RDEPENDS_perl-module-encode += "perl-module-encode-alias" -RDEPENDS_perl-module-encode += "perl-module-encode-config" -RDEPENDS_perl-module-encode += "perl-module-encode-configlocal-pm" -RDEPENDS_perl-module-encode += "perl-module-encode-mime-name" -RDEPENDS_perl-module-encode += "perl-module-exporter" -RDEPENDS_perl-module-encode += "perl-module-parent" -RDEPENDS_perl-module-encode += "perl-module-storable" -RDEPENDS_perl-module-encode += "perl-module-strict" -RDEPENDS_perl-module-encode += "perl-module-warnings" -RDEPENDS_perl-module-encode += "perl-module-xsloader" -RDEPENDS_perl-module-encode-symbol += "perl-module-encode" -RDEPENDS_perl-module-encode-symbol += "perl-module-strict" -RDEPENDS_perl-module-encode-symbol += "perl-module-warnings" -RDEPENDS_perl-module-encode-symbol += "perl-module-xsloader" -RDEPENDS_perl-module-encode-tw += "perl-module-encode" -RDEPENDS_perl-module-encode-tw += "perl-module-strict" -RDEPENDS_perl-module-encode-tw += "perl-module-warnings" -RDEPENDS_perl-module-encode-tw += "perl-module-xsloader" -RDEPENDS_perl-module-encode-unicode += "perl-module-encode" -RDEPENDS_perl-module-encode-unicode += "perl-module-parent" -RDEPENDS_perl-module-encode-unicode += "perl-module-strict" -RDEPENDS_perl-module-encode-unicode += "perl-module-warnings" -RDEPENDS_perl-module-encode-unicode += "perl-module-xsloader" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-encode" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-mime-base64" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-parent" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-re" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-strict" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-warnings" -RDEPENDS_perl-module-encoding += "perl-module-config" -RDEPENDS_perl-module-encoding += "perl-module-constant" -RDEPENDS_perl-module-encoding += "perl-module-encode" -RDEPENDS_perl-module-encoding += "perl-module-filter-util-call" -RDEPENDS_perl-module-encoding += "perl-module-i18n-langinfo" -RDEPENDS_perl-module-encoding += "perl-module-posix" -RDEPENDS_perl-module-encoding += "perl-module-strict" -RDEPENDS_perl-module-encoding += "perl-module-utf8" -RDEPENDS_perl-module-encoding += "perl-module-warnings" -RDEPENDS_perl-module-encoding-warnings += "perl-module-strict" -RDEPENDS_perl-module-encoding-warnings += "perl-module-warnings" -RDEPENDS_perl-module-english += "perl-module-exporter" -RDEPENDS_perl-module-env += "perl-module-config" -RDEPENDS_perl-module-env += "perl-module-tie-array" -RDEPENDS_perl-module-errno += "perl-module-exporter" -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-extutils-cbuilder-base += "perl-module-config" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-cwd" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-dynaloader" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-extutils-mksymlists" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-file-temp" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-ipc-cmd" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-text-parsewords" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-path" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-config" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-config" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-bcc += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-bcc += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-gcc += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-gcc += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-msvc += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-msvc += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-io-file" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-warnings" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-exporter" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-extutils-command" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-extutils-install" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-getopt-long" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-strict" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-test-harness" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-warnings" -RDEPENDS_perl-module-extutils-command += "perl-module-exporter" -RDEPENDS_perl-module-extutils-command += "perl-module-file-copy" -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-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" -RDEPENDS_perl-module-extutils-constant-base += "perl-module-text-wrap" -RDEPENDS_perl-module-extutils-constant-base += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant += "perl-module-exporter" -RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-proxysubs" -RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-utils" -RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-xs" -RDEPENDS_perl-module-extutils-constant += "perl-module-filehandle" -RDEPENDS_perl-module-extutils-constant += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-extutils-constant-utils" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-extutils-constant-xs" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-constant" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-posix" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-data-dumper" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant-base" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant-utils" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-vars" -RDEPENDS_perl-module-extutils-embed += "perl-module-config" -RDEPENDS_perl-module-extutils-embed += "perl-module-exporter" -RDEPENDS_perl-module-extutils-embed += "perl-module-extutils-liblist" -RDEPENDS_perl-module-extutils-embed += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-embed += "perl-module-getopt-std" -RDEPENDS_perl-module-extutils-embed += "perl-module-strict" -RDEPENDS_perl-module-extutils-installed += "perl-module-config" -RDEPENDS_perl-module-extutils-installed += "perl-module-data-dumper" -RDEPENDS_perl-module-extutils-installed += "perl-module-extutils-makemaker" -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" -RDEPENDS_perl-module-extutils-install += "perl-module-exporter" -RDEPENDS_perl-module-extutils-install += "perl-module-extutils-packlist" -RDEPENDS_perl-module-extutils-install += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-install += "perl-module-file-compare" -RDEPENDS_perl-module-extutils-install += "perl-module-file-copy" -RDEPENDS_perl-module-extutils-install += "perl-module-file-find" -RDEPENDS_perl-module-extutils-install += "perl-module-file-path" -RDEPENDS_perl-module-extutils-install += "perl-module-strict" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-cwd" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-strict" -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-makemaker-config += "perl-module-config" -RDEPENDS_perl-module-extutils-makemaker-config += "perl-module-strict" -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 += "perl-module-b" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-cpan" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-cwd" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-exporter" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-version" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-manifest" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm" -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-version += "perl-module-strict" -RDEPENDS_perl-module-extutils-makemaker-version += "perl-module-vars" -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" -RDEPENDS_perl-module-extutils-manifest += "perl-module-file-copy" -RDEPENDS_perl-module-extutils-manifest += "perl-module-file-find" -RDEPENDS_perl-module-extutils-manifest += "perl-module-file-path" -RDEPENDS_perl-module-extutils-manifest += "perl-module-strict" -RDEPENDS_perl-module-extutils-manifest += "perl-module-warnings" -RDEPENDS_perl-module-extutils-miniperl += "perl-module-exporter" -RDEPENDS_perl-module-extutils-miniperl += "perl-module-extutils-embed" -RDEPENDS_perl-module-extutils-miniperl += "perl-module-strict" -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-mksymlists += "perl-module-config" -RDEPENDS_perl-module-extutils-mksymlists += "perl-module-exporter" -RDEPENDS_perl-module-extutils-mksymlists += "perl-module-strict" -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-any += "perl-module-autosplit" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-cpan" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-data-dumper" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-extutils-makemaker-config" -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-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-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-darwin += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-darwin += "perl-module-strict" -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-macos += "perl-module-strict" -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-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 += "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-qnx += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-qnx += "perl-module-strict" -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" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-mm-any" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-file-basename" -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-uwin += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-uwin += "perl-module-strict" -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" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-mm-any" -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-vos += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-vos += "perl-module-strict" -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-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-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" -RDEPENDS_perl-module-extutils-parsexs-eval += "perl-module-strict" -RDEPENDS_perl-module-extutils-parsexs-eval += "perl-module-warnings" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-config" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-cwd" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-exporter" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-constants" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-countlines" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-eval" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-utilities" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-re" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-strict" -RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-exporter" -RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-extutils-parsexs-constants" -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-testlib += "perl-module-cwd" -RDEPENDS_perl-module-extutils-testlib += "perl-module-lib" -RDEPENDS_perl-module-extutils-testlib += "perl-module-strict" -RDEPENDS_perl-module-extutils-testlib += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-exporter" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-extutils-typemaps" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-inputmap += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-inputmap += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-re" -RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-parsexs" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-parsexs-constants" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-inputmap" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-outputmap" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-type" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-extutils-typemaps" -RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-warnings" -RDEPENDS_perl-module-fatal += "perl-module-autodie" -RDEPENDS_perl-module-fatal += "perl-module-autodie-exception-system" -RDEPENDS_perl-module-fatal += "perl-module-autodie-hints" -RDEPENDS_perl-module-fatal += "perl-module-autodie-util" -RDEPENDS_perl-module-fatal += "perl-module-config" -RDEPENDS_perl-module-fatal += "perl-module-constant" -RDEPENDS_perl-module-fatal += "perl-module-fcntl" -RDEPENDS_perl-module-fatal += "perl-module-posix" -RDEPENDS_perl-module-fatal += "perl-module-strict" -RDEPENDS_perl-module-fatal += "perl-module-tie-refhash" -RDEPENDS_perl-module-fatal += "perl-module-warnings" -RDEPENDS_perl-module-fcntl += "perl-module-exporter" -RDEPENDS_perl-module-fcntl += "perl-module-strict" -RDEPENDS_perl-module-fcntl += "perl-module-xsloader" -RDEPENDS_perl-module-fields += "perl-module-base" -RDEPENDS_perl-module-fields += "perl-module-hash-util" -RDEPENDS_perl-module-fields += "perl-module-strict" -RDEPENDS_perl-module-file-basename += "perl-module-exporter" -RDEPENDS_perl-module-file-basename += "perl-module-re" -RDEPENDS_perl-module-file-basename += "perl-module-strict" -RDEPENDS_perl-module-file-basename += "perl-module-warnings" -RDEPENDS_perl-module-filecache += "perl-module-parent" -RDEPENDS_perl-module-filecache += "perl-module-strict" -RDEPENDS_perl-module-file-compare += "perl-module-exporter" -RDEPENDS_perl-module-file-compare += "perl-module-strict" -RDEPENDS_perl-module-file-compare += "perl-module-warnings" -RDEPENDS_perl-module-file-copy += "perl-module-config" -RDEPENDS_perl-module-file-copy += "perl-module-exporter" -RDEPENDS_perl-module-file-copy += "perl-module-file-basename" -RDEPENDS_perl-module-file-copy += "perl-module-strict" -RDEPENDS_perl-module-file-copy += "perl-module-warnings" -RDEPENDS_perl-module-file-dosglob += "perl-module-strict" -RDEPENDS_perl-module-file-dosglob += "perl-module-text-parsewords" -RDEPENDS_perl-module-file-dosglob += "perl-module-warnings" -RDEPENDS_perl-module-file-dosglob += "perl-module-xsloader" -RDEPENDS_perl-module-file-fetch += "perl-module-constant" -RDEPENDS_perl-module-file-fetch += "perl-module-cwd" -RDEPENDS_perl-module-file-fetch += "perl-module-file-basename" -RDEPENDS_perl-module-file-fetch += "perl-module-file-copy" -RDEPENDS_perl-module-file-fetch += "perl-module-filehandle" -RDEPENDS_perl-module-file-fetch += "perl-module-file-path" -RDEPENDS_perl-module-file-fetch += "perl-module-file-temp" -RDEPENDS_perl-module-file-fetch += "perl-module-ipc-cmd" -RDEPENDS_perl-module-file-fetch += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-file-fetch += "perl-module-load" -RDEPENDS_perl-module-file-fetch += "perl-module-params-check" -RDEPENDS_perl-module-file-fetch += "perl-module-strict" -RDEPENDS_perl-module-file-fetch += "perl-module-vars" -RDEPENDS_perl-module-file-find += "perl-module-config" -RDEPENDS_perl-module-file-find += "perl-module-cwd" -RDEPENDS_perl-module-file-find += "perl-module-exporter" -RDEPENDS_perl-module-file-find += "perl-module-file-basename" -RDEPENDS_perl-module-file-find += "perl-module-strict" -RDEPENDS_perl-module-file-find += "perl-module-warnings" -RDEPENDS_perl-module-file-find += "perl-module-warnings-register" -RDEPENDS_perl-module-file-globmapper += "perl-module-file-glob" -RDEPENDS_perl-module-file-globmapper += "perl-module-strict" -RDEPENDS_perl-module-file-globmapper += "perl-module-warnings" -RDEPENDS_perl-module-file-glob += "perl-module-exporter" -RDEPENDS_perl-module-file-glob += "perl-module-strict" -RDEPENDS_perl-module-file-glob += "perl-module-warnings" -RDEPENDS_perl-module-file-glob += "perl-module-xsloader" -RDEPENDS_perl-module-filehandle += "perl-module-exporter" -RDEPENDS_perl-module-filehandle += "perl-module-fcntl" -RDEPENDS_perl-module-filehandle += "perl-module-io-file" -RDEPENDS_perl-module-filehandle += "perl-module-strict" -RDEPENDS_perl-module-file-path += "perl-module-cwd" -RDEPENDS_perl-module-file-path += "perl-module-exporter" -RDEPENDS_perl-module-file-path += "perl-module-file-basename" -RDEPENDS_perl-module-file-path += "perl-module-strict" -RDEPENDS_perl-module-file-path += "perl-module-vars" -RDEPENDS_perl-module-file-spec += "perl-module-constant" -RDEPENDS_perl-module-file-spec += "perl-module-cwd" -RDEPENDS_perl-module-file-spec += "perl-module-strict" -RDEPENDS_perl-module-file-spec += "perl-module-file-spec-unix" -RDEPENDS_perl-module-file-stat += "perl-module-class-struct" -RDEPENDS_perl-module-file-stat += "perl-module-constant" -RDEPENDS_perl-module-file-stat += "perl-module-exporter" -RDEPENDS_perl-module-file-stat += "perl-module-fcntl" -RDEPENDS_perl-module-file-stat += "perl-module-overload " -RDEPENDS_perl-module-file-stat += "perl-module-strict" -RDEPENDS_perl-module-file-stat += "perl-module-warnings" -RDEPENDS_perl-module-file-stat += "perl-module-warnings-register" -RDEPENDS_perl-module-file-temp += "perl-module-carp" -RDEPENDS_perl-module-file-temp += "perl-module-constant" -RDEPENDS_perl-module-file-temp += "perl-module-cwd" -RDEPENDS_perl-module-file-temp += "perl-module-errno" -RDEPENDS_perl-module-file-temp += "perl-module-exporter" -RDEPENDS_perl-module-file-temp += "perl-module-fcntl" -RDEPENDS_perl-module-file-temp += "perl-module-file-path" -RDEPENDS_perl-module-file-temp += "perl-module-file-spec" -RDEPENDS_perl-module-file-temp += "perl-module-io-seekable" -RDEPENDS_perl-module-file-temp += "perl-module-overload" -RDEPENDS_perl-module-file-temp += "perl-module-parent" -RDEPENDS_perl-module-file-temp += "perl-module-posix" -RDEPENDS_perl-module-file-temp += "perl-module-scalar-util" -RDEPENDS_perl-module-file-temp += "perl-module-strict" -RDEPENDS_perl-module-file-temp += "perl-module-vars" -RDEPENDS_perl-module-filter-simple += "perl-module-filter-util-call" -RDEPENDS_perl-module-filter-simple += "perl-module-text-balanced" -RDEPENDS_perl-module-filter-util-call += "perl-module-exporter" -RDEPENDS_perl-module-filter-util-call += "perl-module-strict" -RDEPENDS_perl-module-filter-util-call += "perl-module-warnings" -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-getopt-long += "perl-module-constant" -RDEPENDS_perl-module-getopt-long += "perl-module-exporter" -RDEPENDS_perl-module-getopt-long += "perl-module-overload" -RDEPENDS_perl-module-getopt-long += "perl-module-pod-usage" -RDEPENDS_perl-module-getopt-long += "perl-module-strict" -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-hash-util-fieldhash += "perl-module-exporter" -RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-strict" -RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-warnings" -RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-xsloader" -RDEPENDS_perl-module-hash-util += "perl-module-exporter" -RDEPENDS_perl-module-hash-util += "perl-module-hash-util-fieldhash" -RDEPENDS_perl-module-hash-util += "perl-module-strict" -RDEPENDS_perl-module-hash-util += "perl-module-warnings" -RDEPENDS_perl-module-hash-util += "perl-module-warnings-register" -RDEPENDS_perl-module-hash-util += "perl-module-xsloader" -RDEPENDS_perl-module-i18n-collate += "perl-module-exporter" -RDEPENDS_perl-module-i18n-collate += "perl-module-overload" -RDEPENDS_perl-module-i18n-collate += "perl-module-posix" -RDEPENDS_perl-module-i18n-collate += "perl-module-strict" -RDEPENDS_perl-module-i18n-collate += "perl-module-warnings-register" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-exporter" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-strict" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-warnings" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-xsloader" -RDEPENDS_perl-module-i18n-langtags-detect += "perl-module-i18n-langtags" -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-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" -RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-strict" -RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-strict" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-strict" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-constant" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-encode" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-file-globmapper" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-strict " -RDEPENDS_perl-module-io-compress-base-common += "perl-module-strict" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-utf8" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-base += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-base += "perl-module-io-file" -RDEPENDS_perl-module-io-compress-base += "perl-module-io-handle " -RDEPENDS_perl-module-io-compress-base += "perl-module-strict " -RDEPENDS_perl-module-io-compress-base += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-adapter-bzip2" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-base" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-strict " -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-rawdeflate" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-zlib-constants" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-strict " -RDEPENDS_perl-module-io-compress-deflate += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-constant" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-strict " -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-rawdeflate" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-strict " -RDEPENDS_perl-module-io-compress-gzip += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-fcntl" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-base" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-strict " -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-constant" -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zip += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-zip += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-compress-zip += "perl-module-config" -RDEPENDS_perl-module-io-compress-zip += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-zip += "perl-module-fcntl" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-adapter-identity" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-bzip2 " -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-rawdeflate" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-zip-constants" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-compress-zip += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zip += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-constant" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-warnings" -RDEPENDS_perl-module-io-dir += "perl-module-exporter" -RDEPENDS_perl-module-io-dir += "perl-module-file-stat" -RDEPENDS_perl-module-io-dir += "perl-module-io-file" -RDEPENDS_perl-module-io-dir += "perl-module-strict" -RDEPENDS_perl-module-io-dir += "perl-module-tie-hash" -RDEPENDS_perl-module-io-file += "perl-module-carp" -RDEPENDS_perl-module-io-file += "perl-module-exporter" -RDEPENDS_perl-module-io-file += "perl-module-fcntl" -RDEPENDS_perl-module-io-file += "perl-module-io-seekable" -RDEPENDS_perl-module-io-file += "perl-module-selectsaver" -RDEPENDS_perl-module-io-file += "perl-module-strict" -RDEPENDS_perl-module-io-file += "perl-module-symbol" -RDEPENDS_perl-module-io-handle += "perl-module-exporter" -RDEPENDS_perl-module-io-handle += "perl-module-io" -RDEPENDS_perl-module-io-handle += "perl-module-io-file" -RDEPENDS_perl-module-io-handle += "perl-module-selectsaver" -RDEPENDS_perl-module-io-handle += "perl-module-strict" -RDEPENDS_perl-module-io += "perl-module-strict" -RDEPENDS_perl-module-io += "perl-module-warnings" -RDEPENDS_perl-module-io += "perl-module-xsloader" -RDEPENDS_perl-module-io-pipe += "perl-module-fcntl" -RDEPENDS_perl-module-io-pipe += "perl-module-io-handle" -RDEPENDS_perl-module-io-pipe += "perl-module-strict" -RDEPENDS_perl-module-io-poll += "perl-module-exporter" -RDEPENDS_perl-module-io-poll += "perl-module-io-handle" -RDEPENDS_perl-module-io-poll += "perl-module-strict" -RDEPENDS_perl-module-io-seekable += "perl-module-exporter" -RDEPENDS_perl-module-io-seekable += "perl-module-fcntl" -RDEPENDS_perl-module-io-seekable += "perl-module-io-handle" -RDEPENDS_perl-module-io-seekable += "perl-module-strict" -RDEPENDS_perl-module-io-select += "perl-module-exporter" -RDEPENDS_perl-module-io-select += "perl-module-strict" -RDEPENDS_perl-module-io-select += "perl-module-warnings-register" -RDEPENDS_perl-module-io-socket-inet += "perl-module-errno" -RDEPENDS_perl-module-io-socket-inet += "perl-module-exporter" -RDEPENDS_perl-module-io-socket-inet += "perl-module-io-socket" -RDEPENDS_perl-module-io-socket-inet += "perl-module-socket" -RDEPENDS_perl-module-io-socket-inet += "perl-module-strict" -RDEPENDS_perl-module-io-socket-ip += "perl-module-base" -RDEPENDS_perl-module-io-socket-ip += "perl-module-constant" -RDEPENDS_perl-module-io-socket-ip += "perl-module-errno" -RDEPENDS_perl-module-io-socket-ip += "perl-module-posix" -RDEPENDS_perl-module-io-socket-ip += "perl-module-socket" -RDEPENDS_perl-module-io-socket-ip += "perl-module-strict" -RDEPENDS_perl-module-io-socket-ip += "perl-module-warnings" -RDEPENDS_perl-module-io-socket += "perl-module-errno" -RDEPENDS_perl-module-io-socket += "perl-module-exporter" -RDEPENDS_perl-module-io-socket += "perl-module-io-handle" -RDEPENDS_perl-module-io-socket += "perl-module-io-select" -RDEPENDS_perl-module-io-socket += "perl-module-io-socket-inet" -RDEPENDS_perl-module-io-socket += "perl-module-io-socket-unix" -RDEPENDS_perl-module-io-socket += "perl-module-socket" -RDEPENDS_perl-module-io-socket += "perl-module-strict" -RDEPENDS_perl-module-io-socket-unix += "perl-module-io-socket" -RDEPENDS_perl-module-io-socket-unix += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-compress-raw-bzip2" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-io-compress-zip-constants " -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-adapter-inflate" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-gunzip" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-inflate" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-unzip" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-constant" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-io-file " -RDEPENDS_perl-module-io-uncompress-base += "perl-module-list-util" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-base += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-uncompress-adapter-bunzip2" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-compress-zlib-constants" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-uncompress-adapter-inflate" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-constant" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-fcntl" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-zip-constants" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-file" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-adapter-identity" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-adapter-inflate" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-posix" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-warnings" -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-ipc-cmd += "perl-module-constant" -RDEPENDS_perl-module-ipc-cmd += "perl-module-exporter" -RDEPENDS_perl-module-ipc-cmd += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-ipc-cmd += "perl-module-filehandle" -RDEPENDS_perl-module-ipc-cmd += "perl-module-io-handle" -RDEPENDS_perl-module-ipc-cmd += "perl-module-io-select" -RDEPENDS_perl-module-ipc-cmd += "perl-module-ipc-open3" -RDEPENDS_perl-module-ipc-cmd += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-ipc-cmd += "perl-module-load" -RDEPENDS_perl-module-ipc-cmd += "perl-module-params-check" -RDEPENDS_perl-module-ipc-cmd += "perl-module-posix" -RDEPENDS_perl-module-ipc-cmd += "perl-module-socket" -RDEPENDS_perl-module-ipc-cmd += "perl-module-strict" -RDEPENDS_perl-module-ipc-cmd += "perl-module-text-parsewords" -RDEPENDS_perl-module-ipc-cmd += "perl-module-time-hires" -RDEPENDS_perl-module-ipc-cmd += "perl-module-vars" -RDEPENDS_perl-module-ipc-msg += "perl-module-class-struct" -RDEPENDS_perl-module-ipc-msg += "perl-module-ipc-sysv" -RDEPENDS_perl-module-ipc-msg += "perl-module-strict" -RDEPENDS_perl-module-ipc-msg += "perl-module-vars" -RDEPENDS_perl-module-ipc-open2 += "perl-module-exporter" -RDEPENDS_perl-module-ipc-open2 += "perl-module-ipc-open3" -RDEPENDS_perl-module-ipc-open2 += "perl-module-strict" -RDEPENDS_perl-module-ipc-open3 += "perl-module-constant" -RDEPENDS_perl-module-ipc-open3 += "perl-module-exporter" -RDEPENDS_perl-module-ipc-open3 += "perl-module-fcntl" -RDEPENDS_perl-module-ipc-open3 += "perl-module-io-pipe" -RDEPENDS_perl-module-ipc-open3 += "perl-module-posix" -RDEPENDS_perl-module-ipc-open3 += "perl-module-strict" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-class-struct" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-ipc-sysv" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-strict" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-vars" -RDEPENDS_perl-module-ipc-sharedmem += "perl-module-class-struct" -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-json-pp-boolean += "perl-module-overload" -RDEPENDS_perl-module-json-pp-boolean += "perl-module-strict" -RDEPENDS_perl-module-json-pp += "perl-module-b" -RDEPENDS_perl-module-json-pp += "perl-module-bytes" -RDEPENDS_perl-module-json-pp += "perl-module-constant" -RDEPENDS_perl-module-json-pp += "perl-module-encode" -RDEPENDS_perl-module-json-pp += "perl-module-exporter" -RDEPENDS_perl-module-json-pp += "perl-module-json-pp-boolean" -RDEPENDS_perl-module-json-pp += "perl-module-math-bigfloat" -RDEPENDS_perl-module-json-pp += "perl-module-math-bigint" -RDEPENDS_perl-module-json-pp += "perl-module-overload" -RDEPENDS_perl-module-json-pp += "perl-module-strict" -RDEPENDS_perl-module-json-pp += "perl-module-subs" -RDEPENDS_perl-module-less += "perl-module-strict" -RDEPENDS_perl-module-less += "perl-module-warnings" -RDEPENDS_perl-module-lib += "perl-module-config" -RDEPENDS_perl-module-lib += "perl-module-strict" -RDEPENDS_perl-module-list-util += "perl-module-exporter" -RDEPENDS_perl-module-list-util += "perl-module-strict" -RDEPENDS_perl-module-list-util += "perl-module-warnings" -RDEPENDS_perl-module-list-util += "perl-module-xsloader" -RDEPENDS_perl-module-list-util-xs += "perl-module-list-util" -RDEPENDS_perl-module-list-util-xs += "perl-module-strict" -RDEPENDS_perl-module-list-util-xs += "perl-module-warnings" -RDEPENDS_perl-module-loaded += "perl-module-strict" -RDEPENDS_perl-module-loaded += "perl-module-vars" -RDEPENDS_perl-module-load += "perl-module-config" -RDEPENDS_perl-module-load += "perl-module-constant" -RDEPENDS_perl-module-load += "perl-module-exporter" -RDEPENDS_perl-module-load += "perl-module-filehandle" -RDEPENDS_perl-module-load += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-load += "perl-module-corelist" -RDEPENDS_perl-module-load += "perl-module-load" -RDEPENDS_perl-module-load += "perl-module-params-check" -RDEPENDS_perl-module-load += "perl-module-strict" -RDEPENDS_perl-module-load += "perl-module-vars" -RDEPENDS_perl-module-load += "perl-module-version" -RDEPENDS_perl-module-load += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-constant" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-country += "perl-module-if" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-country += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-if" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-language += "perl-module-if" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-language += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes += "perl-module-if" -RDEPENDS_perl-module-locale-codes += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-script += "perl-module-if" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-script += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-country += "perl-module-if" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-country += "perl-module-strict" -RDEPENDS_perl-module-locale-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-currency += "perl-module-if" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-language += "perl-module-if" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-language += "perl-module-strict" -RDEPENDS_perl-module-locale-language += "perl-module-warnings" -RDEPENDS_perl-module-locale-maketext-gutsloader += "perl-module-locale-maketext" -RDEPENDS_perl-module-locale-maketext-guts += "perl-module-locale-maketext" -RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags" -RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags-detect" -RDEPENDS_perl-module-locale-maketext += "perl-module-integer" -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-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-script += "perl-module-if" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-script += "perl-module-strict" -RDEPENDS_perl-module-locale-script += "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" -RDEPENDS_perl-module-math-bigfloat += "perl-module-overload" -RDEPENDS_perl-module-math-bigfloat += "perl-module-strict" -RDEPENDS_perl-module-math-bigfloat += "perl-module-warnings" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-exporter" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-math-bigfloat" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-overload" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-strict" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-constant" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-integer" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-math-bigint-lib" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-math-bigint-calc" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-xsloader" -RDEPENDS_perl-module-math-bigint-lib += "perl-module-overload" -RDEPENDS_perl-module-math-bigint-lib += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-lib += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint += "perl-module-exporter" -RDEPENDS_perl-module-math-bigint += "perl-module-math-bigfloat" -RDEPENDS_perl-module-math-bigint += "perl-module-math-complex" -RDEPENDS_perl-module-math-bigint += "perl-module-overload" -RDEPENDS_perl-module-math-bigint += "perl-module-strict" -RDEPENDS_perl-module-math-bigint += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-exporter" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-math-bigint" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-overload" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-warnings" -RDEPENDS_perl-module-math-bigrat += "perl-module-math-bigfloat" -RDEPENDS_perl-module-math-bigrat += "perl-module-math-bigint" -RDEPENDS_perl-module-math-bigrat += "perl-module-overload" -RDEPENDS_perl-module-math-bigrat += "perl-module-strict" -RDEPENDS_perl-module-math-bigrat += "perl-module-warnings" -RDEPENDS_perl-module-math-complex += "perl-module-config" -RDEPENDS_perl-module-math-complex += "perl-module-exporter" -RDEPENDS_perl-module-math-complex += "perl-module-overload" -RDEPENDS_perl-module-math-complex += "perl-module-strict" -RDEPENDS_perl-module-math-complex += "perl-module-warnings" -RDEPENDS_perl-module-math-trig += "perl-module-exporter" -RDEPENDS_perl-module-math-trig += "perl-module-math-complex" -RDEPENDS_perl-module-math-trig += "perl-module-strict" -RDEPENDS_perl-module-metadata += "perl-module-version" -RDEPENDS_perl-module-memoize-anydbm-file += "perl-module-vars" -RDEPENDS_perl-module-memoize += "perl-module-config" -RDEPENDS_perl-module-memoize += "perl-module-exporter" -RDEPENDS_perl-module-memoize += "perl-module-strict" -RDEPENDS_perl-module-memoize += "perl-module-vars" -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-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-mro += "perl-module-strict" -RDEPENDS_perl-module-mro += "perl-module-warnings" -RDEPENDS_perl-module-mro += "perl-module-xsloader" -RDEPENDS_perl-module-net-cmd += "perl-module-constant" -RDEPENDS_perl-module-net-cmd += "perl-module-errno" -RDEPENDS_perl-module-net-cmd += "perl-module-exporter" -RDEPENDS_perl-module-net-cmd += "perl-module-strict" -RDEPENDS_perl-module-net-cmd += "perl-module-warnings" -RDEPENDS_perl-module-net-config += "perl-module-exporter" -RDEPENDS_perl-module-net-config += "perl-module-socket" -RDEPENDS_perl-module-net-config += "perl-module-strict" -RDEPENDS_perl-module-net-config += "perl-module-warnings" -RDEPENDS_perl-module-net-domain += "perl-module-exporter" -RDEPENDS_perl-module-net-domain += "perl-module-net-config" -RDEPENDS_perl-module-net-domain += "perl-module-posix" -RDEPENDS_perl-module-net-domain += "perl-module-socket" -RDEPENDS_perl-module-net-domain += "perl-module-strict" -RDEPENDS_perl-module-net-domain += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-a += "perl-module-net-ftp-dataconn" -RDEPENDS_perl-module-net-ftp-a += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-a += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-errno" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-net-cmd" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-e += "perl-module-net-ftp-i" -RDEPENDS_perl-module-net-ftp-e += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-e += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-i += "perl-module-net-ftp-dataconn" -RDEPENDS_perl-module-net-ftp-i += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-i += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-l += "perl-module-net-ftp-i" -RDEPENDS_perl-module-net-ftp-l += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-l += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp += "perl-module-constant" -RDEPENDS_perl-module-net-ftp += "perl-module-fcntl" -RDEPENDS_perl-module-net-ftp += "perl-module-file-basename" -RDEPENDS_perl-module-net-ftp += "perl-module-io-socket" -RDEPENDS_perl-module-net-ftp += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-ftp += "perl-module-net-cmd" -RDEPENDS_perl-module-net-ftp += "perl-module-net-config" -RDEPENDS_perl-module-net-ftp += "perl-module-net-ftp-a" -RDEPENDS_perl-module-net-ftp += "perl-module-net-netrc" -RDEPENDS_perl-module-net-ftp += "perl-module-socket" -RDEPENDS_perl-module-net-ftp += "perl-module-strict" -RDEPENDS_perl-module-net-ftp += "perl-module-time-local" -RDEPENDS_perl-module-net-ftp += "perl-module-warnings" -RDEPENDS_perl-module-net-hostent += "perl-module-class-struct" -RDEPENDS_perl-module-net-hostent += "perl-module-exporter" -RDEPENDS_perl-module-net-hostent += "perl-module-socket" -RDEPENDS_perl-module-net-hostent += "perl-module-strict" -RDEPENDS_perl-module-net-netent += "perl-module-class-struct" -RDEPENDS_perl-module-net-netent += "perl-module-exporter" -RDEPENDS_perl-module-net-netent += "perl-module-socket" -RDEPENDS_perl-module-net-netent += "perl-module-strict" -RDEPENDS_perl-module-net-netrc += "perl-module-filehandle" -RDEPENDS_perl-module-net-netrc += "perl-module-strict" -RDEPENDS_perl-module-net-netrc += "perl-module-warnings" -RDEPENDS_perl-module-net-nntp += "perl-module-io-socket" -RDEPENDS_perl-module-net-nntp += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-nntp += "perl-module-net-cmd" -RDEPENDS_perl-module-net-nntp += "perl-module-net-config" -RDEPENDS_perl-module-net-nntp += "perl-module-strict" -RDEPENDS_perl-module-net-nntp += "perl-module-time-local" -RDEPENDS_perl-module-net-nntp += "perl-module-warnings" -RDEPENDS_perl-module-net-ping += "perl-module-constant" -RDEPENDS_perl-module-net-ping += "perl-module-exporter" -RDEPENDS_perl-module-net-ping += "perl-module-fcntl" -RDEPENDS_perl-module-net-ping += "perl-module-filehandle" -RDEPENDS_perl-module-net-ping += "perl-module-io-socket-inet" -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-pop3 += "perl-module-io-socket" -RDEPENDS_perl-module-net-pop3 += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-pop3 += "perl-module-mime-base64" -RDEPENDS_perl-module-net-pop3 += "perl-module-net-cmd" -RDEPENDS_perl-module-net-pop3 += "perl-module-net-config" -RDEPENDS_perl-module-net-pop3 += "perl-module-net-netrc" -RDEPENDS_perl-module-net-pop3 += "perl-module-strict" -RDEPENDS_perl-module-net-pop3 += "perl-module-warnings" -RDEPENDS_perl-module-net-protoent += "perl-module-class-struct" -RDEPENDS_perl-module-net-protoent += "perl-module-exporter" -RDEPENDS_perl-module-net-protoent += "perl-module-strict" -RDEPENDS_perl-module-net-servent += "perl-module-class-struct" -RDEPENDS_perl-module-net-servent += "perl-module-exporter" -RDEPENDS_perl-module-net-servent += "perl-module-strict" -RDEPENDS_perl-module-net-smtp += "perl-module-io-socket" -RDEPENDS_perl-module-net-smtp += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-smtp += "perl-module-mime-base64" -RDEPENDS_perl-module-net-smtp += "perl-module-net-cmd" -RDEPENDS_perl-module-net-smtp += "perl-module-net-config" -RDEPENDS_perl-module-net-smtp += "perl-module-socket" -RDEPENDS_perl-module-net-smtp += "perl-module-strict" -RDEPENDS_perl-module-net-smtp += "perl-module-warnings" -RDEPENDS_perl-module-net-time += "perl-module-exporter" -RDEPENDS_perl-module-net-time += "perl-module-io-select" -RDEPENDS_perl-module-net-time += "perl-module-io-socket" -RDEPENDS_perl-module-net-time += "perl-module-net-config" -RDEPENDS_perl-module-net-time += "perl-module-strict" -RDEPENDS_perl-module-net-time += "perl-module-warnings" -RDEPENDS_perl-module-next += "perl-module-overload" -RDEPENDS_perl-module-next += "perl-module-strict" -RDEPENDS_perl-module-next += "perl-module-warnings" -RDEPENDS_perl-module-ok += "perl-module-strict" -RDEPENDS_perl-module-ok += "perl-module-test-more" -RDEPENDS_perl-module-opcode += "perl-module-exporter" -RDEPENDS_perl-module-opcode += "perl-module-strict" -RDEPENDS_perl-module-opcode += "perl-module-subs" -RDEPENDS_perl-module-opcode += "perl-module-xsloader" -RDEPENDS_perl-module-open += "perl-module-encode" -RDEPENDS_perl-module-open += "perl-module-encoding" -RDEPENDS_perl-module-open += "perl-module-warnings" -RDEPENDS_perl-module-o += "perl-module-b" -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-warnings-register" -RDEPENDS_perl-module-overload += "perl-module-overloading" -RDEPENDS_perl-module-params-check += "perl-module-exporter" -RDEPENDS_perl-module-params-check += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-params-check += "perl-module-strict" -RDEPENDS_perl-module-params-check += "perl-module-vars" -RDEPENDS_perl-module-parent += "perl-module-strict" -RDEPENDS_perl-module-parent += "perl-module-vars" -RDEPENDS_perl-module-perlfaq += "perl-module-strict" -RDEPENDS_perl-module-perlfaq += "perl-module-warnings" -RDEPENDS_perl-module-perlio-encoding += "perl-module-strict" -RDEPENDS_perl-module-perlio-encoding += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-mmap += "perl-module-strict" -RDEPENDS_perl-module-perlio-mmap += "perl-module-warnings" -RDEPENDS_perl-module-perlio-mmap += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-scalar += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-via += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-via-quotedprint += "perl-module-mime-quotedprint" -RDEPENDS_perl-module-perlio-via-quotedprint += "perl-module-strict" -RDEPENDS_perl-module-pod-checker += "perl-module-base" -RDEPENDS_perl-module-pod-checker += "perl-module-exporter" -RDEPENDS_perl-module-pod-checker += "perl-module-strict" -RDEPENDS_perl-module-pod-checker += "perl-module-warnings" -RDEPENDS_perl-module-pod-escapes += "perl-module-exporter" -RDEPENDS_perl-module-pod-escapes += "perl-module-strict" -RDEPENDS_perl-module-pod-escapes += "perl-module-vars" -RDEPENDS_perl-module-pod-escapes += "perl-module-warnings" -RDEPENDS_perl-module-pod-find += "perl-module-config" -RDEPENDS_perl-module-pod-find += "perl-module-cwd" -RDEPENDS_perl-module-pod-find += "perl-module-exporter" -RDEPENDS_perl-module-pod-find += "perl-module-file-find" -RDEPENDS_perl-module-pod-find += "perl-module-strict" -RDEPENDS_perl-module-pod-find += "perl-module-vars" -RDEPENDS_perl-module-pod-functions += "perl-module-exporter" -RDEPENDS_perl-module-pod-functions += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-vars" -RDEPENDS_perl-module-pod-man += "perl-module-file-basename" -RDEPENDS_perl-module-pod-man += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-man += "perl-module-strict" -RDEPENDS_perl-module-pod-man += "perl-module-subs" -RDEPENDS_perl-module-pod-man += "perl-module-vars" -RDEPENDS_perl-module-pod-man += "perl-module-warnings" -RDEPENDS_perl-module-pod-parselink += "perl-module-exporter" -RDEPENDS_perl-module-pod-parselink += "perl-module-strict" -RDEPENDS_perl-module-pod-parselink += "perl-module-vars" -RDEPENDS_perl-module-pod-parselink += "perl-module-warnings" -RDEPENDS_perl-module-pod-parser += "perl-module-exporter" -RDEPENDS_perl-module-pod-parser += "perl-module-pod-inputobjects" -RDEPENDS_perl-module-pod-parser += "perl-module-strict" -RDEPENDS_perl-module-pod-parser += "perl-module-vars" -RDEPENDS_perl-module-pod-parseutils += "perl-module-strict" -RDEPENDS_perl-module-pod-parseutils += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-config" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-getoptsoo += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-getoptsoo += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc += "perl-module-config" -RDEPENDS_perl-module-pod-perldoc += "perl-module-encode" -RDEPENDS_perl-module-pod-perldoc += "perl-module-fcntl" -RDEPENDS_perl-module-pod-perldoc += "perl-module-file-basename" -RDEPENDS_perl-module-pod-perldoc += "perl-module-file-temp" -RDEPENDS_perl-module-pod-perldoc += "perl-module-pod-perldoc-getoptsoo" -RDEPENDS_perl-module-pod-perldoc += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc += "perl-module-text-parsewords" -RDEPENDS_perl-module-pod-perldoc += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-pod-text-color" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-pod-checker" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-encode" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-io-handle" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-io-select" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-ipc-open3" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-pod-man" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-pod-perldoc-topod" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-pod-man" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-pod-text-termcap" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-pod-text" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-warnings" -RDEPENDS_perl-module-pod-plaintext += "perl-module-pod-select" -RDEPENDS_perl-module-pod-plaintext += "perl-module-strict" -RDEPENDS_perl-module-pod-plaintext += "perl-module-vars" -RDEPENDS_perl-module-pod-select += "perl-module-pod-parser" -RDEPENDS_perl-module-pod-select += "perl-module-strict" -RDEPENDS_perl-module-pod-select += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-integer" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple-transcode" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-pod-simple-methody" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-text-wrap" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-debug += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-debug += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-debug += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-text-wrap" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-overload" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-pod-simple-blackbox" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-methody += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-methody += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-methody += "perl-module-vars" -RDEPENDS_perl-module-pod-simple += "perl-module-integer" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-escapes" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-blackbox" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-linksection" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-tiedoutfh" -RDEPENDS_perl-module-pod-simple += "perl-module-strict" -RDEPENDS_perl-module-pod-simple += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-progress += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-pod-simple-pullparsertoken" -RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparserendtoken" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparserstarttoken" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparsertexttoken" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-pod-simple-pullparsertoken" -RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-pod-simple-pullparsertoken" -RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-pullparsertoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-integer" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-pod-simple-pullparser" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-search += "perl-module-config" -RDEPENDS_perl-module-pod-simple-search += "perl-module-cwd" -RDEPENDS_perl-module-pod-simple-search += "perl-module-file-basename" -RDEPENDS_perl-module-pod-simple-search += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-search += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-text += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-text += "perl-module-pod-simple-methody" -RDEPENDS_perl-module-pod-simple-text += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-text += "perl-module-text-wrap" -RDEPENDS_perl-module-pod-simple-text += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-encode" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-vars" -RDEPENDS_perl-module-pod-text-color += "perl-module-pod-text" -RDEPENDS_perl-module-pod-text-color += "perl-module-strict" -RDEPENDS_perl-module-pod-text-color += "perl-module-term-ansicolor" -RDEPENDS_perl-module-pod-text-color += "perl-module-vars" -RDEPENDS_perl-module-pod-text-color += "perl-module-warnings" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-pod-text" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-strict" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-vars" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-warnings" -RDEPENDS_perl-module-pod-text += "perl-module-encode" -RDEPENDS_perl-module-pod-text += "perl-module-exporter" -RDEPENDS_perl-module-pod-text += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-text += "perl-module-strict" -RDEPENDS_perl-module-pod-text += "perl-module-vars" -RDEPENDS_perl-module-pod-text += "perl-module-warnings" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-pod-text" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-posix" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-strict" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-term-cap" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-vars" -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" -RDEPENDS_perl-module-posix += "perl-module-tie-hash" -RDEPENDS_perl-module-posix += "perl-module-warnings" -RDEPENDS_perl-module-posix += "perl-module-xsloader" -RDEPENDS_perl-module-re += "perl-module-exporter" -RDEPENDS_perl-module-re += "perl-module-strict" -RDEPENDS_perl-module-re += "perl-module-term-cap" -RDEPENDS_perl-module-re += "perl-module-warnings" -RDEPENDS_perl-module-re += "perl-module-xsloader" -RDEPENDS_perl-module-safe += "perl-module-b" -RDEPENDS_perl-module-safe += "perl-module-opcode" -RDEPENDS_perl-module-safe += "perl-module-strict" -RDEPENDS_perl-module-safe += "perl-module-utf8" -RDEPENDS_perl-module-scalar-util += "perl-module-carp" -RDEPENDS_perl-module-scalar-util += "perl-module-exporter" -RDEPENDS_perl-module-scalar-util += "perl-module-list-util" -RDEPENDS_perl-module-scalar-util += "perl-module-strict" -RDEPENDS_perl-module-scalar-util += "perl-module-warnings" -RDEPENDS_perl-module-sdbm-file += "perl-module-exporter" -RDEPENDS_perl-module-sdbm-file += "perl-module-strict" -RDEPENDS_perl-module-sdbm-file += "perl-module-tie-hash" -RDEPENDS_perl-module-sdbm-file += "perl-module-warnings" -RDEPENDS_perl-module-sdbm-file += "perl-module-xsloader" -RDEPENDS_perl-module-search-dict += "perl-module-exporter" -RDEPENDS_perl-module-search-dict += "perl-module-feature" -RDEPENDS_perl-module-search-dict += "perl-module-strict" -RDEPENDS_perl-module-selfloader += "perl-module-exporter" -RDEPENDS_perl-module-selfloader += "perl-module-io-handle" -RDEPENDS_perl-module-selfloader += "perl-module-strict" -RDEPENDS_perl-module-socket += "perl-module-exporter" -RDEPENDS_perl-module-socket += "perl-module-strict" -RDEPENDS_perl-module-socket += "perl-module-warnings-register" -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-storable += "perl-module-xsloader" -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" -RDEPENDS_perl-module-sub-util += "perl-module-warnings" -RDEPENDS_perl-module-sys-hostname += "perl-module-exporter" -RDEPENDS_perl-module-sys-hostname += "perl-module-posix" -RDEPENDS_perl-module-sys-hostname += "perl-module-strict" -RDEPENDS_perl-module-sys-hostname += "perl-module-warnings" -RDEPENDS_perl-module-sys-hostname += "perl-module-xsloader" -RDEPENDS_perl-module-sys-syslog += "perl-module-config" -RDEPENDS_perl-module-sys-syslog += "perl-module-constant" -RDEPENDS_perl-module-sys-syslog += "perl-module-dynaloader" -RDEPENDS_perl-module-sys-syslog += "perl-module-exporter" -RDEPENDS_perl-module-sys-syslog += "perl-module-fcntl" -RDEPENDS_perl-module-sys-syslog += "perl-module-file-basename" -RDEPENDS_perl-module-sys-syslog += "perl-module-posix" -RDEPENDS_perl-module-sys-syslog += "perl-module-socket" -RDEPENDS_perl-module-sys-syslog += "perl-module-strict" -RDEPENDS_perl-module-sys-syslog += "perl-module-sys-hostname" -RDEPENDS_perl-module-sys-syslog += "perl-module-vars" -RDEPENDS_perl-module-sys-syslog += "perl-module-warnings" -RDEPENDS_perl-module-sys-syslog += "perl-module-warnings-register" -RDEPENDS_perl-module-sys-syslog += "perl-module-xsloader" -RDEPENDS_perl-module-tap-base += "perl-module-base" -RDEPENDS_perl-module-tap-base += "perl-module-constant" -RDEPENDS_perl-module-tap-base += "perl-module-strict" -RDEPENDS_perl-module-tap-base += "perl-module-tap-object" -RDEPENDS_perl-module-tap-base += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-tap-formatter-color" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-constant" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-constant" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-file-path" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-posix" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-posix" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-file-session" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-session += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-session += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-session += "perl-module-warnings" -RDEPENDS_perl-module-tap-harness-env += "perl-module-constant" -RDEPENDS_perl-module-tap-harness-env += "perl-module-strict" -RDEPENDS_perl-module-tap-harness-env += "perl-module-tap-object" -RDEPENDS_perl-module-tap-harness-env += "perl-module-text-parsewords" -RDEPENDS_perl-module-tap-harness-env += "perl-module-warnings" -RDEPENDS_perl-module-tap-harness += "perl-module-base" -RDEPENDS_perl-module-tap-harness += "perl-module-carp" -RDEPENDS_perl-module-tap-harness += "perl-module-file-path" -RDEPENDS_perl-module-tap-harness += "perl-module-file-spec" -RDEPENDS_perl-module-tap-harness += "perl-module-io-handle" -RDEPENDS_perl-module-tap-harness += "perl-module-strict" -RDEPENDS_perl-module-tap-harness += "perl-module-tap-base" -RDEPENDS_perl-module-tap-harness += "perl-module-warnings" -RDEPENDS_perl-module-tap-object += "perl-module-strict" -RDEPENDS_perl-module-tap-object += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-base" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-benchmark" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-base" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-resultfactory" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-yamlish-reader" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-file-basename" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-config" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-io-handle" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-base" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-io-select" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser += "perl-module-base" -RDEPENDS_perl-module-tap-parser += "perl-module-carp" -RDEPENDS_perl-module-tap-parser += "perl-module-strict" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-grammar" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-resultfactory" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-source" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-executable" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-file" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-handle" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-perl" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-rawtap" -RDEPENDS_perl-module-tap-parser += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-base" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-bailout" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-comment" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-plan" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-pragma" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-test" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-unknown" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-version" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-yaml" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-result += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-job" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-spinner" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iterator-process" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iterator-stream" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iterator-stream" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-config" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iterator-array" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-source += "perl-module-base" -RDEPENDS_perl-module-tap-parser-source += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-source += "perl-module-file-basename" -RDEPENDS_perl-module-tap-parser-source += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-source += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-source += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-base" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-base" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-warnings" -RDEPENDS_perl-module-term-ansicolor += "perl-module-exporter" -RDEPENDS_perl-module-term-ansicolor += "perl-module-strict" -RDEPENDS_perl-module-term-ansicolor += "perl-module-warnings" -RDEPENDS_perl-module-term-cap += "perl-module-strict" -RDEPENDS_perl-module-term-cap += "perl-module-vars" -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-test-builder-formatter += "perl-module-strict" -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" -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-list-util" -RDEPENDS_perl-module-test-builder += "perl-module-overload" -RDEPENDS_perl-module-test-builder += "perl-module-strict" -RDEPENDS_perl-module-test-builder += "perl-module-scalar-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-test2-api" -RDEPENDS_perl-module-test-builder += "perl-module-test2-util" -RDEPENDS_perl-module-test-builder += "perl-module-warnings" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-strict" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-formatter" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-formatter-tap" -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-tester-color += "perl-module-strict" -RDEPENDS_perl-module-test-builder-tester-color += "perl-module-test-builder-tester" -RDEPENDS_perl-module-test-builder-tester += "perl-module-exporter" -RDEPENDS_perl-module-test-builder-tester += "perl-module-strict" -RDEPENDS_perl-module-test-builder-tester += "perl-module-test-builder" -RDEPENDS_perl-module-test-builder-tododiag += "perl-module-strict" -RDEPENDS_perl-module-test-builder-tododiag += "perl-module-warnings" -RDEPENDS_perl-module-test-harness += "perl-module-base" -RDEPENDS_perl-module-test-harness += "perl-module-config" -RDEPENDS_perl-module-test-harness += "perl-module-constant" -RDEPENDS_perl-module-test-harness += "perl-module-strict" -RDEPENDS_perl-module-test-harness += "perl-module-tap-harness" -RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-aggregator" -RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-source" -RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-sourcehandler-perl" -RDEPENDS_perl-module-test-harness += "perl-module-text-parsewords" -RDEPENDS_perl-module-test-harness += "perl-module-warnings" -RDEPENDS_perl-module-test-more += "perl-module-file-temp" -RDEPENDS_perl-module-test-more += "perl-module-strict" -RDEPENDS_perl-module-test-more += "perl-module-test-builder-module" -RDEPENDS_perl-module-test-more += "perl-module-warnings" -RDEPENDS_perl-module-test += "perl-module-exporter" -RDEPENDS_perl-module-test += "perl-module-file-temp" -RDEPENDS_perl-module-test += "perl-module-strict" -RDEPENDS_perl-module-test-simple += "perl-module-strict" -RDEPENDS_perl-module-test-simple += "perl-module-test-builder-module" -RDEPENDS_perl-module-test-tester-capture += "perl-module-config" -RDEPENDS_perl-module-test-tester-capture += "perl-module-strict" -RDEPENDS_perl-module-test-tester-capture += "perl-module-test-builder" -RDEPENDS_perl-module-test-tester-capture += "perl-module-threads-shared" -RDEPENDS_perl-module-test-tester-capture += "perl-module-vars" -RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-exporter" -RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-strict" -RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-test-tester-capture" -RDEPENDS_perl-module-test-tester-delegate += "perl-module-strict" -RDEPENDS_perl-module-test-tester-delegate += "perl-module-vars" -RDEPENDS_perl-module-test-tester-delegate += "perl-module-warnings" -RDEPENDS_perl-module-test-tester += "perl-module-exporter" -RDEPENDS_perl-module-test-tester += "perl-module-strict" -RDEPENDS_perl-module-test-tester += "perl-module-test-builder" -RDEPENDS_perl-module-test-tester += "perl-module-test-tester-capturerunner" -RDEPENDS_perl-module-test-tester += "perl-module-test-tester-delegate" -RDEPENDS_perl-module-test-tester += "perl-module-vars" -RDEPENDS_perl-module-test2-api += "perl-module-carp" -RDEPENDS_perl-module-test2-api += "perl-module-exporter" -RDEPENDS_perl-module-test2-api += "perl-module-scalar-util" -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-instance" -RDEPENDS_perl-module-test2-api += "perl-module-test2-api-stack" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event" -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-event-fail" -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-eventfacet-trace" -RDEPENDS_perl-module-test2-api += "perl-module-test2-hub" -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-context += "perl-module-carp" -RDEPENDS_perl-module-test2-api-context += "perl-module-scalar-util" -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-event-v2" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-eventfacet" -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-event += "perl-module-carp" -RDEPENDS_perl-module-test2-event += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-event += "perl-module-strict" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet" -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-v2 += "perl-module-carp" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-scalar-util" -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-strict" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-warnings" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-carp" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-test2-util" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-test2-util-hashbase" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-strict" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-warnings" -RDEPENDS_perl-module-test2-hub += "perl-module-carp" -RDEPENDS_perl-module-test2-hub += "perl-module-list-util" -RDEPENDS_perl-module-test2-hub += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-hub += "perl-module-strict" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-ok" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-pass" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-plan" -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-util += "perl-module-carp" -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-facets2legacy += "perl-module-base" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-carp" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-exporter" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-scalar-util" -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-carp" -RDEPENDS_perl-module-test2-util-hashbase += "perl-module-mro" -RDEPENDS_perl-module-test2-util-hashbase += "perl-module-strict" -RDEPENDS_perl-module-test2-util-hashbase += "perl-module-warnings" -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" -RDEPENDS_perl-module-text-parsewords += "perl-module-strict" -RDEPENDS_perl-module-text-tabs += "perl-module-exporter" -RDEPENDS_perl-module-text-tabs += "perl-module-strict" -RDEPENDS_perl-module-text-tabs += "perl-module-vars" -RDEPENDS_perl-module-text-wrap += "perl-module-exporter" -RDEPENDS_perl-module-text-wrap += "perl-module-re" -RDEPENDS_perl-module-text-wrap += "perl-module-strict" -RDEPENDS_perl-module-text-wrap += "perl-module-text-tabs" -RDEPENDS_perl-module-text-wrap += "perl-module-vars" -RDEPENDS_perl-module-text-wrap += "perl-module-warnings-register" -RDEPENDS_perl-module-thread += "perl-module-config" -RDEPENDS_perl-module-thread += "perl-module-exporter" -RDEPENDS_perl-module-thread += "perl-module-strict" -RDEPENDS_perl-module-thread += "perl-module-threads" -RDEPENDS_perl-module-thread += "perl-module-threads-shared" -RDEPENDS_perl-module-thread += "perl-module-warnings" -RDEPENDS_perl-module-thread-queue += "perl-module-strict" -RDEPENDS_perl-module-thread-queue += "perl-module-threads-shared" -RDEPENDS_perl-module-thread-queue += "perl-module-warnings" -RDEPENDS_perl-module-thread-semaphore += "perl-module-strict" -RDEPENDS_perl-module-thread-semaphore += "perl-module-threads-shared" -RDEPENDS_perl-module-thread-semaphore += "perl-module-warnings" -RDEPENDS_perl-module-threads += "perl-module-config" -RDEPENDS_perl-module-threads += "perl-module-overload" -RDEPENDS_perl-module-threads += "perl-module-strict" -RDEPENDS_perl-module-threads += "perl-module-warnings" -RDEPENDS_perl-module-threads += "perl-module-xsloader" -RDEPENDS_perl-module-threads-shared += "perl-module-strict" -RDEPENDS_perl-module-threads-shared += "perl-module-warnings" -RDEPENDS_perl-module-threads-shared += "perl-module-xsloader" -RDEPENDS_perl-module-tie-array += "perl-module-strict" -RDEPENDS_perl-module-tie-file += "perl-module-fcntl" -RDEPENDS_perl-module-tie-file += "perl-module-posix" -RDEPENDS_perl-module-tie-file += "perl-module-strict" -RDEPENDS_perl-module-tie-handle += "perl-module-tie-stdhandle" -RDEPENDS_perl-module-tie-handle += "perl-module-warnings-register" -RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-strict" -RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-xsloader" -RDEPENDS_perl-module-tie-hash += "perl-module-warnings-register" -RDEPENDS_perl-module-tie-hash += "perl-module-carp" -RDEPENDS_perl-module-tie-memoize += "perl-module-strict" -RDEPENDS_perl-module-tie-memoize += "perl-module-tie-hash" -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" -RDEPENDS_perl-module-tie-substrhash += "perl-module-integer" -RDEPENDS_perl-module-time-gmtime += "perl-module-exporter" -RDEPENDS_perl-module-time-gmtime += "perl-module-strict" -RDEPENDS_perl-module-time-gmtime += "perl-module-time-tm" -RDEPENDS_perl-module-time-hires += "perl-module-exporter" -RDEPENDS_perl-module-time-hires += "perl-module-strict" -RDEPENDS_perl-module-time-hires += "perl-module-xsloader" -RDEPENDS_perl-module-time-local += "perl-module-config" -RDEPENDS_perl-module-time-local += "perl-module-constant" -RDEPENDS_perl-module-time-local += "perl-module-exporter" -RDEPENDS_perl-module-time-local += "perl-module-parent" -RDEPENDS_perl-module-time-local += "perl-module-strict" -RDEPENDS_perl-module-time-localtime += "perl-module-exporter" -RDEPENDS_perl-module-time-localtime += "perl-module-strict" -RDEPENDS_perl-module-time-localtime += "perl-module-time-tm" -RDEPENDS_perl-module-time-piece += "perl-module-constant" -RDEPENDS_perl-module-time-piece += "perl-module-exporter" -RDEPENDS_perl-module-time-piece += "perl-module-integer" -RDEPENDS_perl-module-time-piece += "perl-module-overload" -RDEPENDS_perl-module-time-piece += "perl-module-strict" -RDEPENDS_perl-module-time-piece += "perl-module-time-local" -RDEPENDS_perl-module-time-piece += "perl-module-time-seconds" -RDEPENDS_perl-module-time-piece += "perl-module-xsloader" -RDEPENDS_perl-module-time-seconds += "perl-module-constant" -RDEPENDS_perl-module-time-seconds += "perl-module-exporter" -RDEPENDS_perl-module-time-seconds += "perl-module-overload" -RDEPENDS_perl-module-time-seconds += "perl-module-strict" -RDEPENDS_perl-module-time-tm += "perl-module-class-struct" -RDEPENDS_perl-module-time-tm += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-big5 += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-big5 += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-gb2312 += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-gb2312 += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-jisx0208 += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-jisx0208 += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-korean += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-korean += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-pinyin += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-pinyin += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-stroke += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-stroke += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-zhuyin += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-zhuyin += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-locale += "perl-module-base" -RDEPENDS_perl-module-unicode-collate-locale += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-locale += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate += "perl-module-constant" -RDEPENDS_perl-module-unicode-collate += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate += "perl-module-xsloader" -RDEPENDS_perl-module-unicode-normalize += "perl-module-exporter" -RDEPENDS_perl-module-unicode-normalize += "perl-module-strict" -RDEPENDS_perl-module-unicode-normalize += "perl-module-warnings" -RDEPENDS_perl-module-unicode-normalize += "perl-module-xsloader" -RDEPENDS_perl-module-unicode-ucd += "perl-module-charnames" -RDEPENDS_perl-module-unicode-ucd += "perl-module-exporter" -RDEPENDS_perl-module-unicode-ucd += "perl-module-feature" -RDEPENDS_perl-module-unicode-ucd += "perl-module-if" -RDEPENDS_perl-module-unicode-ucd += "perl-module-integer" -RDEPENDS_perl-module-unicode-ucd += "perl-module-strict" -RDEPENDS_perl-module-unicode-ucd += "perl-module-unicode-normalize" -RDEPENDS_perl-module-unicode-ucd += "perl-module-utf8-heavy" -RDEPENDS_perl-module-unicode-ucd += "perl-module-warnings" -RDEPENDS_perl-module-user-grent += "perl-module-class-struct" -RDEPENDS_perl-module-user-grent += "perl-module-exporter" -RDEPENDS_perl-module-user-grent += "perl-module-strict" -RDEPENDS_perl-module-user-pwent += "perl-module-class-struct" -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-utf8-heavy" -RDEPENDS_perl-module-version += "perl-module-strict" -RDEPENDS_perl-module-version += "perl-module-version-regex" -RDEPENDS_perl-module-version += "perl-module-warnings-register" -RDEPENDS_perl-module-version-regex += "perl-module-strict" -RDEPENDS_perl-module-xsloader += "perl-module-dynaloader" -RDEPENDS_perl-module-anydbm-file += "perl-module-strict" -RDEPENDS_perl-module-anydbm-file += "perl-module-warnings" -RDEPENDS_perl-module-app-cpan += "perl-module-config" -RDEPENDS_perl-module-app-cpan += "perl-module-constant" -RDEPENDS_perl-module-app-cpan += "perl-module-cpan" -RDEPENDS_perl-module-app-cpan += "perl-module-cwd" -RDEPENDS_perl-module-app-cpan += "perl-module-data-dumper" -RDEPENDS_perl-module-app-cpan += "perl-module-file-basename" -RDEPENDS_perl-module-app-cpan += "perl-module-file-find" -RDEPENDS_perl-module-app-cpan += "perl-module-getopt-std" -RDEPENDS_perl-module-app-cpan += "perl-module-if" -RDEPENDS_perl-module-app-cpan += "perl-module-net-ping" -RDEPENDS_perl-module-app-cpan += "perl-module-strict" -RDEPENDS_perl-module-app-cpan += "perl-module-user-pwent" -RDEPENDS_perl-module-app-cpan += "perl-module-vars" -RDEPENDS_perl-module-app-cpan += "perl-module-warnings" -RDEPENDS_perl-module-app-prove += "perl-module-app-prove-state" -RDEPENDS_perl-module-app-prove += "perl-module-base" -RDEPENDS_perl-module-app-prove += "perl-module-constant" -RDEPENDS_perl-module-app-prove += "perl-module-getopt-long" -RDEPENDS_perl-module-app-prove += "perl-module-strict" -RDEPENDS_perl-module-app-prove += "perl-module-tap-harness" -RDEPENDS_perl-module-app-prove += "perl-module-tap-harness-env" -RDEPENDS_perl-module-app-prove += "perl-module-text-parsewords" -RDEPENDS_perl-module-app-prove += "perl-module-warnings" -RDEPENDS_perl-module-app-prove-state += "perl-module-app-prove-state-result" -RDEPENDS_perl-module-app-prove-state += "perl-module-base" -RDEPENDS_perl-module-app-prove-state += "perl-module-constant" -RDEPENDS_perl-module-app-prove-state += "perl-module-file-find" -RDEPENDS_perl-module-app-prove-state += "perl-module-strict" -RDEPENDS_perl-module-app-prove-state += "perl-module-tap-parser-yamlish-reader" -RDEPENDS_perl-module-app-prove-state += "perl-module-tap-parser-yamlish-writer" -RDEPENDS_perl-module-app-prove-state += "perl-module-warnings" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-app-prove-state-result-test" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-constant" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-strict" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-warnings" -RDEPENDS_perl-module-app-prove-state-result-test += "perl-module-strict" -RDEPENDS_perl-module-app-prove-state-result-test += "perl-module-warnings" -RDEPENDS_perl-module-archive-tar-constant += "perl-module-constant" -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-warnings" -RDEPENDS_perl-module-archive-tar-file += "perl-module-archive-tar" -RDEPENDS_perl-module-archive-tar-file += "perl-module-archive-tar-constant" -RDEPENDS_perl-module-archive-tar-file += "perl-module-file-basename" -RDEPENDS_perl-module-archive-tar-file += "perl-module-io-file" -RDEPENDS_perl-module-archive-tar-file += "perl-module-strict" -RDEPENDS_perl-module-archive-tar-file += "perl-module-vars" -RDEPENDS_perl-module-archive-tar += "perl-module-archive-tar-constant" -RDEPENDS_perl-module-archive-tar += "perl-module-archive-tar-file" -RDEPENDS_perl-module-archive-tar += "perl-module-config" -RDEPENDS_perl-module-archive-tar += "perl-module-cwd" -RDEPENDS_perl-module-archive-tar += "perl-module-exporter" -RDEPENDS_perl-module-archive-tar += "perl-module-file-path" -RDEPENDS_perl-module-archive-tar += "perl-module-io-file" -RDEPENDS_perl-module-archive-tar += "perl-module-io-zlib" -RDEPENDS_perl-module-archive-tar += "perl-module-strict" -RDEPENDS_perl-module-archive-tar += "perl-module-vars" -RDEPENDS_perl-module-arybase += "perl-module-xsloader" -RDEPENDS_perl-module-attribute-handlers += "perl-module-strict" -RDEPENDS_perl-module-attribute-handlers += "perl-module-warnings" -RDEPENDS_perl-module-attributes += "perl-module-exporter" -RDEPENDS_perl-module-attributes += "perl-module-strict" -RDEPENDS_perl-module-attributes += "perl-module-warnings" -RDEPENDS_perl-module-attributes += "perl-module-xsloader" -RDEPENDS_perl-module-autodie-exception += "perl-module-constant" -RDEPENDS_perl-module-autodie-exception += "perl-module-fatal" -RDEPENDS_perl-module-autodie-exception += "perl-module-fcntl" -RDEPENDS_perl-module-autodie-exception += "perl-module-overload" -RDEPENDS_perl-module-autodie-exception += "perl-module-strict" -RDEPENDS_perl-module-autodie-exception += "perl-module-warnings" -RDEPENDS_perl-module-autodie-exception-system += "perl-module-parent" -RDEPENDS_perl-module-autodie-exception-system += "perl-module-strict" -RDEPENDS_perl-module-autodie-exception-system += "perl-module-warnings" -RDEPENDS_perl-module-autodie-hints += "perl-module-b" -RDEPENDS_perl-module-autodie-hints += "perl-module-constant" -RDEPENDS_perl-module-autodie-hints += "perl-module-strict" -RDEPENDS_perl-module-autodie-hints += "perl-module-warnings" -RDEPENDS_perl-module-autodie += "perl-module-constant" -RDEPENDS_perl-module-autodie += "perl-module-lib" -RDEPENDS_perl-module-autodie += "perl-module-parent" -RDEPENDS_perl-module-autodie += "perl-module-strict" -RDEPENDS_perl-module-autodie += "perl-module-warnings" -RDEPENDS_perl-module-autodie-scope-guard += "perl-module-strict" -RDEPENDS_perl-module-autodie-scope-guard += "perl-module-warnings" -RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-autodie-scope-guard" -RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-strict" -RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-warnings" -RDEPENDS_perl-module-autodie-skip += "perl-module-strict" -RDEPENDS_perl-module-autodie-skip += "perl-module-warnings" -RDEPENDS_perl-module-autodie-util += "perl-module-autodie-scope-guardstack" -RDEPENDS_perl-module-autodie-util += "perl-module-exporter" -RDEPENDS_perl-module-autodie-util += "perl-module-strict" -RDEPENDS_perl-module-autodie-util += "perl-module-warnings" -RDEPENDS_perl-module-autoloader += "perl-module-strict" -RDEPENDS_perl-module-autosplit += "perl-module-config" -RDEPENDS_perl-module-autosplit += "perl-module-exporter" -RDEPENDS_perl-module-autosplit += "perl-module-file-basename" -RDEPENDS_perl-module-autosplit += "perl-module-file-path" -RDEPENDS_perl-module-autosplit += "perl-module-strict" -RDEPENDS_perl-module-base += "perl-module-strict" -RDEPENDS_perl-module-b-concise += "perl-module-b" -RDEPENDS_perl-module-b-concise += "perl-module-b-op-private" -RDEPENDS_perl-module-b-concise += "perl-module-config" -RDEPENDS_perl-module-b-concise += "perl-module-exporter" -RDEPENDS_perl-module-b-concise += "perl-module-feature" -RDEPENDS_perl-module-b-concise += "perl-module-strict" -RDEPENDS_perl-module-b-concise += "perl-module-warnings" -RDEPENDS_perl-module-b-debug += "perl-module-b" -RDEPENDS_perl-module-b-debug += "perl-module-config" -RDEPENDS_perl-module-b-debug += "perl-module-strict" -RDEPENDS_perl-module-benchmark += "perl-module-exporter" -RDEPENDS_perl-module-benchmark += "perl-module-strict" -RDEPENDS_perl-module-bigint += "perl-module-constant" -RDEPENDS_perl-module-bigint += "perl-module-exporter" -RDEPENDS_perl-module-bigint += "perl-module-math-bigint" -RDEPENDS_perl-module-bigint += "perl-module-math-bigint-trace" -RDEPENDS_perl-module-bigint += "perl-module-overload" -RDEPENDS_perl-module-bigint += "perl-module-strict" -RDEPENDS_perl-module-bigint += "perl-module-warnings" -RDEPENDS_perl-module-bignum += "perl-module-bigint" -RDEPENDS_perl-module-bignum += "perl-module-exporter" -RDEPENDS_perl-module-bignum += "perl-module-math-bigfloat" -RDEPENDS_perl-module-bignum += "perl-module-math-bigfloat-trace" -RDEPENDS_perl-module-bignum += "perl-module-math-bigint" -RDEPENDS_perl-module-bignum += "perl-module-math-bigint-trace" -RDEPENDS_perl-module-bignum += "perl-module-overload" -RDEPENDS_perl-module-bignum += "perl-module-strict" -RDEPENDS_perl-module-bignum += "perl-module-warnings" -RDEPENDS_perl-module-bigrat += "perl-module-bigint" -RDEPENDS_perl-module-bigrat += "perl-module-exporter" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigfloat" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigint" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigint-trace" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigrat" -RDEPENDS_perl-module-bigrat += "perl-module-overload" -RDEPENDS_perl-module-bigrat += "perl-module-strict" -RDEPENDS_perl-module-bigrat += "perl-module-warnings" -RDEPENDS_perl-module-blib += "perl-module-cwd" -RDEPENDS_perl-module-b += "perl-module-exporter" -RDEPENDS_perl-module-b += "perl-module-xsloader" -RDEPENDS_perl-module-b-showlex += "perl-module-b" -RDEPENDS_perl-module-b-showlex += "perl-module-b-concise" -RDEPENDS_perl-module-b-showlex += "perl-module-b-terse" -RDEPENDS_perl-module-b-showlex += "perl-module-strict" -RDEPENDS_perl-module-b-terse += "perl-module-b" -RDEPENDS_perl-module-b-terse += "perl-module-b-concise" -RDEPENDS_perl-module-b-terse += "perl-module-strict" -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--charnames += "perl-module-bytes" -RDEPENDS_perl-module-charnames += "perl-module-bytes" -RDEPENDS_perl-module-charnames += "perl-module--charnames" -RDEPENDS_perl-module--charnames += "perl-module-re" -RDEPENDS_perl-module-charnames += "perl-module-re" -RDEPENDS_perl-module--charnames += "perl-module-strict" -RDEPENDS_perl-module-charnames += "perl-module-strict" -RDEPENDS_perl-module--charnames += "perl-module-warnings" -RDEPENDS_perl-module-charnames += "perl-module-warnings" -RDEPENDS_perl-module-class-struct += "perl-module-exporter" -RDEPENDS_perl-module-class-struct += "perl-module-strict" -RDEPENDS_perl-module-class-struct += "perl-module-warnings-register" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-bytes " -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-constant" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-dynaloader" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-exporter" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-strict " -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-warnings " -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-xsloader" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-bytes " -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-constant" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-dynaloader" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-exporter" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-strict " -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-warnings " -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-xsloader" -RDEPENDS_perl-module-compress-zlib += "perl-module-bytes " -RDEPENDS_perl-module-compress-zlib += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-compress-zlib += "perl-module-constant" -RDEPENDS_perl-module-compress-zlib += "perl-module-exporter" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-gzip" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-handle " -RDEPENDS_perl-module-compress-zlib += "perl-module-io-uncompress-gunzip" -RDEPENDS_perl-module-compress-zlib += "perl-module-strict " -RDEPENDS_perl-module-compress-zlib += "perl-module-warnings " -RDEPENDS_perl-module-config-extensions += "perl-module-config" -RDEPENDS_perl-module-config-extensions += "perl-module-exporter" -RDEPENDS_perl-module-config-extensions += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-warnings" RDEPENDS_perl-module-config-perl-v += "perl-module-config" RDEPENDS_perl-module-config-perl-v += "perl-module-exporter" RDEPENDS_perl-module-config-perl-v += "perl-module-strict" @@ -2534,7 +220,6 @@ RDEPENDS_perl-module-cpan += "perl-module-json-pp" RDEPENDS_perl-module-cpan += "perl-module-lib" RDEPENDS_perl-module-cpan += "perl-module-net-ping" RDEPENDS_perl-module-cpan += "perl-module-overload" -RDEPENDS_perl-module-cpan += "perl-module-parse-cpan-meta" RDEPENDS_perl-module-cpan += "perl-module-posix" RDEPENDS_perl-module-cpan += "perl-module-safe" RDEPENDS_perl-module-cpan += "perl-module-strict" @@ -2553,6 +238,13 @@ 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-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" @@ -2699,7 +391,6 @@ RDEPENDS_perl-module-encode += "perl-module-constant" RDEPENDS_perl-module-encode += "perl-module-encode-alias" RDEPENDS_perl-module-encode += "perl-module-encode-config" RDEPENDS_perl-module-encode += "perl-module-encode-configlocal-pm" -RDEPENDS_perl-module-encode += "perl-module-encode-encoding" RDEPENDS_perl-module-encode += "perl-module-encode-mime-name" RDEPENDS_perl-module-encode += "perl-module-exporter" RDEPENDS_perl-module-encode += "perl-module-parent" @@ -2886,7 +577,6 @@ RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-confi RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-version" RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-manifest" RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm-unix" 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" @@ -3082,7 +772,6 @@ RDEPENDS_perl-module-file-fetch += "perl-module-load" RDEPENDS_perl-module-file-fetch += "perl-module-params-check" RDEPENDS_perl-module-file-fetch += "perl-module-strict" RDEPENDS_perl-module-file-fetch += "perl-module-vars" -RDEPENDS_perl-module-file-find += "perl-module-config" RDEPENDS_perl-module-file-find += "perl-module-cwd" RDEPENDS_perl-module-file-find += "perl-module-exporter" RDEPENDS_perl-module-file-find += "perl-module-file-basename" @@ -3094,7 +783,6 @@ RDEPENDS_perl-module-file-globmapper += "perl-module-strict" RDEPENDS_perl-module-file-globmapper += "perl-module-warnings" RDEPENDS_perl-module-file-glob += "perl-module-exporter" RDEPENDS_perl-module-file-glob += "perl-module-strict" -RDEPENDS_perl-module-file-glob += "perl-module-warnings" RDEPENDS_perl-module-file-glob += "perl-module-xsloader" RDEPENDS_perl-module-filehandle += "perl-module-exporter" RDEPENDS_perl-module-filehandle += "perl-module-fcntl" @@ -3123,9 +811,7 @@ RDEPENDS_perl-module-file-temp += "perl-module-io-seekable" RDEPENDS_perl-module-file-temp += "perl-module-overload" RDEPENDS_perl-module-file-temp += "perl-module-parent" RDEPENDS_perl-module-file-temp += "perl-module-posix" -RDEPENDS_perl-module-file-temp += "perl-module-file-spec" RDEPENDS_perl-module-file-temp += "perl-module-strict" -RDEPENDS_perl-module-file-temp += "perl-module-vars" RDEPENDS_perl-module-filter-simple += "perl-module-filter-util-call" RDEPENDS_perl-module-filter-simple += "perl-module-text-balanced" RDEPENDS_perl-module-filter-util-call += "perl-module-exporter" @@ -3135,6 +821,11 @@ 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-gdbm-file += "perl-module-exporter" +RDEPENDS_perl-module-gdbm-file += "perl-module-strict" +RDEPENDS_perl-module-gdbm-file += "perl-module-tie-hash" +RDEPENDS_perl-module-gdbm-file += "perl-module-warnings" +RDEPENDS_perl-module-gdbm-file += "perl-module-xsloader" RDEPENDS_perl-module-getopt-long += "perl-module-constant" RDEPENDS_perl-module-getopt-long += "perl-module-exporter" RDEPENDS_perl-module-getopt-long += "perl-module-overload" @@ -3389,6 +1080,7 @@ RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-warnings" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-bytes" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-compress-raw-zlib" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-constant" +RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-encode" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-exporter " RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-fcntl" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-base-common" @@ -3486,116 +1178,6 @@ RDEPENDS_perl-module-load += "perl-module-strict" RDEPENDS_perl-module-load += "perl-module-vars" RDEPENDS_perl-module-load += "perl-module-version" RDEPENDS_perl-module-load += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-constant" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-country += "perl-module-if" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-country += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-if" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-language += "perl-module-if" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-language += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes += "perl-module-if" -RDEPENDS_perl-module-locale-codes += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-script += "perl-module-if" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-script += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-country += "perl-module-if" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-country += "perl-module-strict" -RDEPENDS_perl-module-locale-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-currency += "perl-module-if" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-language += "perl-module-if" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-language += "perl-module-strict" -RDEPENDS_perl-module-locale-language += "perl-module-warnings" RDEPENDS_perl-module-locale-maketext-gutsloader += "perl-module-locale-maketext" RDEPENDS_perl-module-locale-maketext-guts += "perl-module-locale-maketext" RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags" @@ -3605,12 +1187,6 @@ 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-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-script += "perl-module-if" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-script += "perl-module-strict" -RDEPENDS_perl-module-locale-script += "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" @@ -3622,8 +1198,6 @@ RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-math-bigfloat" RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-overload" RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-strict" RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-warnings" RDEPENDS_perl-module-math-bigint-calc += "perl-module-constant" RDEPENDS_perl-module-math-bigint-calc += "perl-module-integer" RDEPENDS_perl-module-math-bigint-calc += "perl-module-math-bigint-lib" @@ -3800,7 +1374,6 @@ RDEPENDS_perl-module-params-check += "perl-module-locale-maketext-simple" RDEPENDS_perl-module-params-check += "perl-module-strict" RDEPENDS_perl-module-params-check += "perl-module-vars" RDEPENDS_perl-module-parent += "perl-module-strict" -RDEPENDS_perl-module-parent += "perl-module-vars" RDEPENDS_perl-module-perlfaq += "perl-module-strict" RDEPENDS_perl-module-perlfaq += "perl-module-warnings" RDEPENDS_perl-module-perlio-encoding += "perl-module-strict" @@ -3820,16 +1393,8 @@ RDEPENDS_perl-module-pod-escapes += "perl-module-exporter" RDEPENDS_perl-module-pod-escapes += "perl-module-strict" RDEPENDS_perl-module-pod-escapes += "perl-module-vars" RDEPENDS_perl-module-pod-escapes += "perl-module-warnings" -RDEPENDS_perl-module-pod-find += "perl-module-config" -RDEPENDS_perl-module-pod-find += "perl-module-cwd" -RDEPENDS_perl-module-pod-find += "perl-module-exporter" -RDEPENDS_perl-module-pod-find += "perl-module-file-find" -RDEPENDS_perl-module-pod-find += "perl-module-strict" -RDEPENDS_perl-module-pod-find += "perl-module-vars" RDEPENDS_perl-module-pod-functions += "perl-module-exporter" RDEPENDS_perl-module-pod-functions += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-vars" RDEPENDS_perl-module-pod-man += "perl-module-file-basename" RDEPENDS_perl-module-pod-man += "perl-module-pod-simple" RDEPENDS_perl-module-pod-man += "perl-module-strict" @@ -3840,12 +1405,6 @@ RDEPENDS_perl-module-pod-parselink += "perl-module-exporter" RDEPENDS_perl-module-pod-parselink += "perl-module-strict" RDEPENDS_perl-module-pod-parselink += "perl-module-vars" RDEPENDS_perl-module-pod-parselink += "perl-module-warnings" -RDEPENDS_perl-module-pod-parser += "perl-module-exporter" -RDEPENDS_perl-module-pod-parser += "perl-module-pod-inputobjects" -RDEPENDS_perl-module-pod-parser += "perl-module-strict" -RDEPENDS_perl-module-pod-parser += "perl-module-vars" -RDEPENDS_perl-module-pod-parseutils += "perl-module-strict" -RDEPENDS_perl-module-pod-parseutils += "perl-module-vars" RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-config" RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-strict" RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-vars" @@ -3908,12 +1467,7 @@ RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-parent" RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-strict" RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-vars" RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-warnings" -RDEPENDS_perl-module-pod-plaintext += "perl-module-pod-select" -RDEPENDS_perl-module-pod-plaintext += "perl-module-strict" -RDEPENDS_perl-module-pod-plaintext += "perl-module-vars" -RDEPENDS_perl-module-pod-select += "perl-module-pod-parser" -RDEPENDS_perl-module-pod-select += "perl-module-strict" -RDEPENDS_perl-module-pod-select += "perl-module-vars" +RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-if" RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-integer" RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple" RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple-transcode" @@ -3932,6 +1486,9 @@ RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-strict" RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-pod-simple" RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-strict" RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-text-wrap" +RDEPENDS_perl-module-pod-simple-justpod += "perl-module-pod-simple-methody" +RDEPENDS_perl-module-pod-simple-justpod += "perl-module-strict" +RDEPENDS_perl-module-pod-simple-justpod += "perl-module-warnings" RDEPENDS_perl-module-pod-simple-linksection += "perl-module-overload" RDEPENDS_perl-module-pod-simple-linksection += "perl-module-pod-simple-blackbox" RDEPENDS_perl-module-pod-simple-linksection += "perl-module-strict" @@ -3962,6 +1519,7 @@ RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-pod-simple-p RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-strict" RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-vars" RDEPENDS_perl-module-pod-simple-pullparsertoken += "perl-module-strict" +RDEPENDS_perl-module-pod-simple-rtf += "perl-module-if" RDEPENDS_perl-module-pod-simple-rtf += "perl-module-integer" RDEPENDS_perl-module-pod-simple-rtf += "perl-module-pod-simple-pullparser" RDEPENDS_perl-module-pod-simple-rtf += "perl-module-strict" @@ -3987,8 +1545,6 @@ RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-vars" RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-strict" RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-vars" RDEPENDS_perl-module-pod-simple-transcode += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodedumb" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodesmart" RDEPENDS_perl-module-pod-simple-transcode += "perl-module-vars" RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-encode" RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-pod-simple" @@ -4055,7 +1611,6 @@ 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-storable += "perl-module-xsloader" 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" @@ -4082,7 +1637,6 @@ RDEPENDS_perl-module-sys-syslog += "perl-module-xsloader" RDEPENDS_perl-module-tap-base += "perl-module-base" RDEPENDS_perl-module-tap-base += "perl-module-constant" RDEPENDS_perl-module-tap-base += "perl-module-strict" -RDEPENDS_perl-module-tap-base += "perl-module-tap-object" RDEPENDS_perl-module-tap-base += "perl-module-warnings" RDEPENDS_perl-module-tap-formatter-base += "perl-module-base" RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix" @@ -4108,9 +1662,7 @@ RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-warnings" RDEPENDS_perl-module-tap-formatter-file += "perl-module-base" RDEPENDS_perl-module-tap-formatter-file += "perl-module-posix" RDEPENDS_perl-module-tap-formatter-file += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-base" RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-file-session" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-session" RDEPENDS_perl-module-tap-formatter-file += "perl-module-warnings" RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-base" RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-strict" @@ -4127,7 +1679,6 @@ RDEPENDS_perl-module-tap-harness += "perl-module-base" RDEPENDS_perl-module-tap-harness += "perl-module-file-path" RDEPENDS_perl-module-tap-harness += "perl-module-io-handle" RDEPENDS_perl-module-tap-harness += "perl-module-strict" -RDEPENDS_perl-module-tap-harness += "perl-module-tap-formatter-file" RDEPENDS_perl-module-tap-harness += "perl-module-warnings" RDEPENDS_perl-module-tap-object += "perl-module-strict" RDEPENDS_perl-module-tap-object += "perl-module-warnings" @@ -4252,7 +1803,6 @@ RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-constant" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings" RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base" @@ -4319,7 +1869,6 @@ RDEPENDS_perl-module-test-simple += "perl-module-test-builder-module" RDEPENDS_perl-module-test-tester-capture += "perl-module-config" RDEPENDS_perl-module-test-tester-capture += "perl-module-strict" RDEPENDS_perl-module-test-tester-capture += "perl-module-test-builder" -RDEPENDS_perl-module-test-tester-capture += "perl-module-threads-shared" RDEPENDS_perl-module-test-tester-capture += "perl-module-vars" RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-exporter" RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-strict" @@ -4367,6 +1916,7 @@ RDEPENDS_perl-module-threads += "perl-module-overload" RDEPENDS_perl-module-threads += "perl-module-strict" RDEPENDS_perl-module-threads += "perl-module-warnings" RDEPENDS_perl-module-threads += "perl-module-xsloader" +RDEPENDS_perl-module-threads-shared += "perl-module-config" RDEPENDS_perl-module-threads-shared += "perl-module-strict" RDEPENDS_perl-module-threads-shared += "perl-module-warnings" RDEPENDS_perl-module-threads-shared += "perl-module-xsloader" @@ -4374,10 +1924,10 @@ RDEPENDS_perl-module-tie-array += "perl-module-strict" RDEPENDS_perl-module-tie-file += "perl-module-fcntl" RDEPENDS_perl-module-tie-file += "perl-module-posix" RDEPENDS_perl-module-tie-file += "perl-module-strict" +RDEPENDS_perl-module-tie-file += "perl-module-warnings" RDEPENDS_perl-module-tie-handle += "perl-module-tie-stdhandle" RDEPENDS_perl-module-tie-handle += "perl-module-warnings-register" RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-strict" -RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-xsloader" RDEPENDS_perl-module-tie-hash += "perl-module-warnings-register" RDEPENDS_perl-module-tie-memoize += "perl-module-strict" RDEPENDS_perl-module-tie-memoize += "perl-module-tie-hash" @@ -4448,9 +1998,9 @@ RDEPENDS_perl-module-unicode-ucd += "perl-module-exporter" RDEPENDS_perl-module-unicode-ucd += "perl-module-feature" RDEPENDS_perl-module-unicode-ucd += "perl-module-if" RDEPENDS_perl-module-unicode-ucd += "perl-module-integer" +RDEPENDS_perl-module-unicode-ucd += "perl-module-re" RDEPENDS_perl-module-unicode-ucd += "perl-module-strict" RDEPENDS_perl-module-unicode-ucd += "perl-module-unicode-normalize" -RDEPENDS_perl-module-unicode-ucd += "perl-module-utf8-heavy" RDEPENDS_perl-module-unicode-ucd += "perl-module-warnings" RDEPENDS_perl-module-user-grent += "perl-module-class-struct" RDEPENDS_perl-module-user-grent += "perl-module-exporter" @@ -4460,7 +2010,6 @@ 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-utf8-heavy" RDEPENDS_perl-module-version += "perl-module-strict" RDEPENDS_perl-module-version += "perl-module-version-regex" RDEPENDS_perl-module-version += "perl-module-warnings-register" diff --git a/poky/meta/recipes-devtools/perl/perl_5.30.2.bb b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb index 88a1c9665a..1adfd90e73 100644 --- a/poky/meta/recipes-devtools/perl/perl_5.30.2.bb +++ b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ - https://github.com/arsv/perl-cross/releases/download/1.3.2/perl-cross-1.3.2.tar.gz;name=perl-cross \ + https://github.com/arsv/perl-cross/releases/download/1.3.4/perl-cross-1.3.4.tar.gz;name=perl-cross \ file://perl-rdepends.txt \ file://0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch \ file://0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch \ @@ -18,9 +18,7 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ file://perl-dynloader.patch \ file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ - file://0001-enc2xs-Add-environment-variable-to-suppress-comments.patch \ file://0002-Constant-Fix-up-shebang.patch \ - file://0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch \ file://determinism.patch \ " SRC_URI_append_class-native = " \ @@ -30,8 +28,8 @@ SRC_URI_append_class-target = " \ file://encodefix.patch \ " -SRC_URI[perl.sha256sum] = "66db7df8a91979eb576fac91743644da878244cf8ee152f02cd6f5cd7a731689" -SRC_URI[perl-cross.sha256sum] = "defa12f0ad7be0b6c48b4f76e2fb5b37c1b37fbeb6e9ebe938279cd539a0c20c" +SRC_URI[perl.sha256sum] = "efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4" +SRC_URI[perl-cross.sha256sum] = "755aa0ca8141a942188a269564f86c3c82349f82c346ed5c992495d7f35138ba" S = "${WORKDIR}/perl-${PV}" @@ -192,7 +190,6 @@ perl_package_preprocess () { ${PKGD}${bindir}/pod2text.perl \ ${PKGD}${bindir}/pod2usage.perl \ ${PKGD}${bindir}/podchecker.perl \ - ${PKGD}${bindir}/podselect.perl \ ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h \ ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/perl.h \ ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/pp.h \ @@ -212,7 +209,7 @@ inherit update-alternatives ALTERNATIVE_PRIORITY = "100" ALTERNATIVE_${PN}-misc = "corelist cpan enc2xs encguess h2ph h2xs instmodsh json_pp libnetcfg \ - piconv pl2pm pod2html pod2man pod2text pod2usage podchecker podselect \ + piconv pl2pm pod2html pod2man pod2text pod2usage podchecker \ prove ptar ptardiff ptargrep shasum splain xsubpp zipdetails" ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist" ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan" @@ -230,7 +227,6 @@ ALTERNATIVE_LINK_NAME[pod2man] = "${bindir}/pod2man" ALTERNATIVE_LINK_NAME[pod2text] = "${bindir}/pod2text" ALTERNATIVE_LINK_NAME[pod2usage] = "${bindir}/pod2usage" ALTERNATIVE_LINK_NAME[podchecker] = "${bindir}/podchecker" -ALTERNATIVE_LINK_NAME[podselect] = "${bindir}/podselect" ALTERNATIVE_LINK_NAME[prove] = "${bindir}/prove" ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar" ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff" diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch b/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch deleted file mode 100644 index f01e699de7..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 4e41a05de1f34ba00a68ca4f20fb49c4d1cbd2d0 Mon Sep 17 00:00:00 2001 -From: Richard Purdie <richard.purdie@linuxfoundation.org> -Date: Wed, 6 Nov 2019 12:17:46 +0000 -Subject: [PATCH] Add statx glibc/syscall support - -Modern distros (e.g. fedora30) are starting to use the new statx() syscall through -the newly exposed glibc wrapper function in software like coreutils (e.g. the ls -command). Add support to intercept this to pseudo. - -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> -Upstream-Status: Submitted [Emailed to seebs] ---- - ports/linux/guts/statx.c | 48 ++++++++++++++++++++++++++++++++++++++++ - ports/linux/portdefs.h | 1 + - ports/linux/wrapfuncs.in | 1 + - 3 files changed, 50 insertions(+) - create mode 100644 ports/linux/guts/statx.c - -diff --git a/ports/linux/statx/guts/statx.c b/ports/linux/statx/guts/statx.c -new file mode 100644 -index 0000000..a3259c4 ---- /dev/null -+++ b/ports/linux/statx/guts/statx.c -@@ -0,0 +1,42 @@ -+/* -+ * Copyright (c) 2019 Linux Foundation -+ * Author: Richard Purdie -+ * -+ * SPDX-License-Identifier: LGPL-2.1-only -+ * -+ * int -+ * statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) { -+ * int rc = -1; -+ */ -+ pseudo_msg_t *msg; -+ PSEUDO_STATBUF buf; -+ int save_errno; -+ -+ rc = real_statx(dirfd, pathname, flags, mask, statxbuf); -+ save_errno = errno; -+ if (rc == -1) { -+ return rc; -+ } -+ -+ buf.st_uid = statxbuf->stx_uid; -+ buf.st_gid = statxbuf->stx_gid; -+ buf.st_dev = makedev(statxbuf->stx_dev_major, statxbuf->stx_dev_minor); -+ buf.st_ino = statxbuf->stx_ino; -+ buf.st_mode = statxbuf->stx_mode; -+ buf.st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor); -+ buf.st_nlink = statxbuf->stx_nlink; -+ msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, pathname, &buf); -+ if (msg && msg->result == RESULT_SUCCEED) { -+ pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid); -+ statxbuf->stx_uid = msg->uid; -+ statxbuf->stx_gid = msg->gid; -+ statxbuf->stx_mode = msg->mode; -+ statxbuf->stx_rdev_major = major(msg->rdev); -+ statxbuf->stx_rdev_minor = minor(msg->rdev); -+ } else { -+ pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid); -+ } -+ errno = save_errno; -+/* return rc; -+ * } -+ */ -diff --git a/ports/linux/statx/portdefs.h b/ports/linux/statx/portdefs.h -new file mode 100644 -index 0000000..bf934dc ---- /dev/null -+++ b/ports/linux/statx/portdefs.h -@@ -0,0 +1,6 @@ -+/* -+ * SPDX-License-Identifier: LGPL-2.1-only -+ * -+ */ -+#include <sys/stat.h> -+#include <sys/sysmacros.h> -diff --git a/ports/linux/statx/wrapfuncs.in b/ports/linux/statx/wrapfuncs.in -new file mode 100644 -index 0000000..c9cd4c3 ---- /dev/null -+++ b/ports/linux/statx/wrapfuncs.in -@@ -0,0 +1 @@ -+int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf); -diff --git a/ports/linux/subports b/ports/linux/subports -index a29044a..49081bf 100755 ---- a/ports/linux/subports -+++ b/ports/linux/subports -@@ -54,3 +54,13 @@ else - fi - rm -f dummy.c dummy.o - -+cat > dummy.c <<EOF -+#define _GNU_SOURCE -+#include <sys/stat.h> -+struct statx x; -+EOF -+if ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then -+ echo "linux/statx" -+fi -+rm -f dummy.c dummy.o -+ --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch b/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch deleted file mode 100644 index b2dbdad278..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch +++ /dev/null @@ -1,34 +0,0 @@ -From dbd34b1b2af8fbf44a0d5c37abe3448405819823 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Wed, 28 Aug 2019 19:20:29 +0200 -Subject: [PATCH] maketables/wrappers: use Python 3 - -Changelog indicates they should be compatible. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - maketables | 2 +- - makewrappers | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/maketables b/maketables -index a211772..52285e2 100755 ---- a/maketables -+++ b/maketables -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # - # Copyright (c) 2008-2010, 2013 Wind River Systems, Inc. - # -diff --git a/makewrappers b/makewrappers -index e84607d..b34f7eb 100755 ---- a/makewrappers -+++ b/makewrappers -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # - # Copyright (c) 2008-2011,2013 Wind River Systems, Inc. - # diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch b/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch deleted file mode 100644 index 9c49e33b02..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b0902e36108b49e6bc88d6b251cc2f8cffcd5a13 Mon Sep 17 00:00:00 2001 -From: Ricardo Ribalda <ricardo@ribalda.com> -Date: Sun, 5 Apr 2020 11:40:30 +0000 -Subject: [PATCH] pseudo: On a DB fixup remove files that do not exist anymore - -If the user decides to fix a database, remove the files that do not -exist anymore. -If only DB test is selected do not change the behaviour (return error). - -Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com> -Upstream-Status: Submitted [https://lists.openembedded.org/g/openembedded-core/message/137045] ---- - pseudo.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/pseudo.c b/pseudo.c -index 0f5850e..98e5b0c 100644 ---- a/pseudo.c -+++ b/pseudo.c -@@ -1087,9 +1087,15 @@ pseudo_db_check(int fix) { - int fixup_needed = 0; - pseudo_debug(PDBGF_DB, "Checking <%s>\n", m->path); - if (lstat(m->path, &buf)) { -- errors = EXIT_FAILURE; -- pseudo_diag("can't stat <%s>\n", m->path); -- continue; -+ if (!fix) { -+ pseudo_diag("can't stat <%s>\n", m->path); -+ errors = EXIT_FAILURE; -+ continue; -+ } else { -+ pseudo_debug(PDBGF_DB, "can't stat <%s>\n", m->path); -+ fixup_needed = 2; -+ goto do_fixup; -+ } - } - /* can't check for device type mismatches, uid/gid, or - * permissions, because those are the very things we -@@ -1125,6 +1131,7 @@ pseudo_db_check(int fix) { - S_ISDIR(m->mode)); - fixup_needed = 2; - } -+ do_fixup: - if (fixup_needed) { - /* in fixup mode, either delete (mismatches) or - * correct (dev/ino). --- -2.21.1 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch b/poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch deleted file mode 100644 index 33d4ef3b2f..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a491aececfedf7313d29b80d626e0964fb533548 Mon Sep 17 00:00:00 2001 -From: Jacob Kroon <jacob.kroon@gmail.com> -Date: Sun, 3 May 2020 06:24:03 +0200 -Subject: [PATCH] pseudo_ipc.h: Fix enum typedef - -'pseudo_access_t' is a type, so use typedef. - -Fixes building pseudo with gcc 10 where -fno-common is the default. - -Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com> -Upstream-Status: Submitted [https://lists.openembedded.org/g/openembedded-core/message/137758] ---- - pseudo_ipc.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pseudo_ipc.h b/pseudo_ipc.h -index caeae5c..d945257 100644 ---- a/pseudo_ipc.h -+++ b/pseudo_ipc.h -@@ -29,7 +29,7 @@ typedef struct { - char path[]; - } pseudo_msg_t; - --enum { -+typedef enum { - PSA_EXEC = 1, - PSA_WRITE = (PSA_EXEC << 1), - PSA_READ = (PSA_WRITE << 1), --- -2.26.2 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch b/poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch deleted file mode 100644 index 17829ef3ac..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 86c9a5610e3333ad6aaadb1ac1e8b5a2c948d119 Mon Sep 17 00:00:00 2001 -From: Robert Yang <liezhi.yang@windriver.com> -Date: Mon, 25 Nov 2019 18:46:45 +0800 -Subject: [PATCH] realpath.c: Remove trailing slashes - -Linux system's realpath() remove trailing slashes, but pseudo's doesn't, need -make them identical. - -E.g., the following code (rel.c) prints '/tmp' with system's realpath, but -pseudo's realpath prints '/tmp/': - - #include <stdio.h> - #include <limits.h> - #include <stdlib.h> - - int main() { - char out[PATH_MAX]; - printf("%s\n", realpath("/tmp/", out)); - return 0; - } - -$ bitbake base-passwd -cdevshell # For pseudo env -$ gcc rel.c -$ ./a.out -/tmp/ (but should be /tmp) - -This patch fixes the problem. - -Upstream-Status: Submitted [https://lists.yoctoproject.org/g/poky/message/11879] - -Signed-off-by: Robert Yang <liezhi.yang@windriver.com> ---- - ports/unix/guts/realpath.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/ports/unix/guts/realpath.c b/ports/unix/guts/realpath.c ---- a/ports/unix/guts/realpath.c -+++ b/ports/unix/guts/realpath.c -@@ -14,7 +14,14 @@ - errno = ENAMETOOLONG; - return NULL; - } -- if ((len = strlen(rname)) >= pseudo_sys_path_max()) { -+ len = strlen(rname); -+ char *ep = rname + len - 1; -+ while (ep > rname && *ep == '/') { -+ --len; -+ *(ep--) = '\0'; -+ } -+ -+ if (len >= pseudo_sys_path_max()) { - errno = ENAMETOOLONG; - return NULL; - } --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch b/poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch deleted file mode 100644 index 161357d553..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 93d95ed2eaedcca110c214e1fe3f8896b1f6f853 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Tue, 17 Dec 2019 20:24:27 +0100 -Subject: [PATCH] xattr: adjust for attr 2.4.48 release - -Latest versions of attr have removed the xattr.h header, -with the rationale that libc is providing the same wrappers. - -attr/attributes.h is providing the ENOATTR definition. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - ports/linux/subports | 5 +++-- - ports/linux/xattr/portdefs.h | 3 ++- - 2 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/ports/linux/subports b/ports/linux/subports -index 2c43ac9..740ec83 100755 ---- a/ports/linux/subports -+++ b/ports/linux/subports -@@ -29,11 +29,12 @@ fi - if $port_xattr; then - cat > dummy.c <<EOF - #include <sys/types.h> --#include <attr/xattr.h> -+#include <sys/xattr.h> -+#include <attr/attributes.h> - int i; - EOF - if ! ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then -- echo >&2 "Warning: Can't compile trivial program using <attr/xattr.h>". -+ echo >&2 "Warning: Can't compile trivial program using <attr/attributes.h>". - echo >&2 " xattr support will require that header." - fi - echo "linux/xattr" -diff --git a/ports/linux/xattr/portdefs.h b/ports/linux/xattr/portdefs.h -index 56cd3ca..068d39a 100644 ---- a/ports/linux/xattr/portdefs.h -+++ b/ports/linux/xattr/portdefs.h -@@ -2,5 +2,6 @@ - * SPDX-License-Identifier: LGPL-2.1-only - * - */ --#include <attr/xattr.h> -+#include <sys/xattr.h> -+#include <attr/attributes.h> - #include <stdint.h> diff --git a/poky/meta/recipes-devtools/pseudo/files/moreretries.patch b/poky/meta/recipes-devtools/pseudo/files/moreretries.patch deleted file mode 100644 index adea2665b0..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/moreretries.patch +++ /dev/null @@ -1,19 +0,0 @@ -Increase the number of retries in pseudo due to occasional slow -server shutdowns. - -Upstream-Status: Pending -RP 2016/2/28 - -Index: git/pseudo_client.c -=================================================================== ---- git.orig/pseudo_client.c -+++ git/pseudo_client.c -@@ -1282,7 +1282,7 @@ pseudo_client_setup(void) { - } - } - --#define PSEUDO_RETRIES 20 -+#define PSEUDO_RETRIES 250 - static pseudo_msg_t * - pseudo_client_request(pseudo_msg_t *msg, size_t len, const char *path) { - pseudo_msg_t *response = 0; diff --git a/poky/meta/recipes-devtools/pseudo/files/seccomp.patch b/poky/meta/recipes-devtools/pseudo/files/seccomp.patch deleted file mode 100644 index 283f997941..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/seccomp.patch +++ /dev/null @@ -1,137 +0,0 @@ -Pseudo changes the syscall access patterns which makes it incompatible with -seccomp. Therefore intercept the seccomp syscall and alter it, pretending that -seccomp was setup when in fact we do nothing. If we error as unsupported, -utilities like file will exit with errors so we can't just disable it. - -Upstream-Status: Pending -RP 2020/4/3 -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> - -It fails to compile pseudo-native on centos 7: - -| ports/linux/pseudo_wrappers.c: In function ‘prctl’: -| ports/linux/pseudo_wrappers.c:129:14: error: ‘SECCOMP_SET_MODE_FILTER’ undeclared (first use in this function) -| if (cmd == SECCOMP_SET_MODE_FILTER) { -| ^ - -Add macro guard for seccomp to avoid the failure. - -Signed-off-by: Kai Kang <kai.kang@windriver.com> - -Index: git/ports/linux/pseudo_wrappers.c -=================================================================== ---- git.orig/ports/linux/pseudo_wrappers.c -+++ git/ports/linux/pseudo_wrappers.c -@@ -57,6 +57,7 @@ int pseudo_capset(cap_user_header_t hdrp - long - syscall(long number, ...) { - long rc = -1; -+ va_list ap; - - if (!pseudo_check_wrappers() || !real_syscall) { - /* rc was initialized to the "failure" value */ -@@ -77,6 +78,20 @@ syscall(long number, ...) { - (void) number; - #endif - -+#ifdef SYS_seccomp -+ /* pseudo and seccomp are incompatible as pseudo uses different syscalls -+ * so pretend to enable seccomp but really do nothing */ -+ if (number == SYS_seccomp) { -+ unsigned long cmd; -+ va_start(ap, number); -+ cmd = va_arg(ap, unsigned long); -+ va_end(ap); -+ if (cmd == SECCOMP_SET_MODE_FILTER) { -+ return 0; -+ } -+ } -+#endif -+ - /* gcc magic to attempt to just pass these args to syscall. we have to - * guess about the number of args; the docs discuss calling conventions - * up to 7, so let's try that? -@@ -92,3 +108,44 @@ static long wrap_syscall(long nr, va_lis - (void) ap; - return -1; - } -+ -+int -+prctl(int option, ...) { -+ int rc = -1; -+ va_list ap; -+ -+ if (!pseudo_check_wrappers() || !real_prctl) { -+ /* rc was initialized to the "failure" value */ -+ pseudo_enosys("prctl"); -+ return rc; -+ } -+ -+#ifdef SECCOMP_SET_MODE_FILTER -+ /* pseudo and seccomp are incompatible as pseudo uses different syscalls -+ * so pretend to enable seccomp but really do nothing */ -+ if (option == PR_SET_SECCOMP) { -+ unsigned long cmd; -+ va_start(ap, option); -+ cmd = va_arg(ap, unsigned long); -+ va_end(ap); -+ if (cmd == SECCOMP_SET_MODE_FILTER) { -+ return 0; -+ } -+ } -+#endif -+ -+ /* gcc magic to attempt to just pass these args to prctl. we have to -+ * guess about the number of args; the docs discuss calling conventions -+ * up to 5, so let's try that? -+ */ -+ void *res = __builtin_apply((void (*)()) real_prctl, __builtin_apply_args(), sizeof(long) * 5); -+ __builtin_return(res); -+} -+ -+/* unused. -+ */ -+static int wrap_prctl(int option, va_list ap) { -+ (void) option; -+ (void) ap; -+ return -1; -+} -Index: git/ports/linux/guts/prctl.c -=================================================================== ---- /dev/null -+++ git/ports/linux/guts/prctl.c -@@ -0,0 +1,15 @@ -+/* -+ * Copyright (c) 2020 Richard Purdie -+ * -+ * SPDX-License-Identifier: LGPL-2.1-only -+ * -+ * int prctl(int option, ...) -+ * int rc = -1; -+ */ -+ -+ /* we should never get here, prctl is hand-wrapped */ -+ rc = -1; -+ -+/* return rc; -+ * } -+ */ -Index: git/ports/linux/portdefs.h -=================================================================== ---- git.orig/ports/linux/portdefs.h -+++ git/ports/linux/portdefs.h -@@ -32,3 +32,5 @@ GLIBC_COMPAT_SYMBOL(memcpy,2.0); - - #include <linux/capability.h> - #include <sys/syscall.h> -+#include <sys/prctl.h> -+#include <linux/seccomp.h> -Index: git/ports/linux/wrapfuncs.in -=================================================================== ---- git.orig/ports/linux/wrapfuncs.in -+++ git/ports/linux/wrapfuncs.in -@@ -56,3 +56,4 @@ int getgrent_r(struct group *gbuf, char - int capset(cap_user_header_t hdrp, const cap_user_data_t datap); /* real_func=pseudo_capset */ - long syscall(long nr, ...); /* hand_wrapped=1 */ - int renameat2(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, unsigned int flags); /* flags=AT_SYMLINK_NOFOLLOW */ -+int prctl(int option, ...); /* hand_wrapped=1 */ diff --git a/poky/meta/recipes-devtools/pseudo/files/toomanyfiles.patch b/poky/meta/recipes-devtools/pseudo/files/toomanyfiles.patch deleted file mode 100644 index bda7e4b202..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/toomanyfiles.patch +++ /dev/null @@ -1,71 +0,0 @@ -From b0b25fbc041a148d1de09f5a6503cd95973ec77c Mon Sep 17 00:00:00 2001 -From: Richard Purdie <richard.purdie@linuxfoundation.org> -Date: Tue, 25 Apr 2017 15:25:54 +0100 -Subject: [PATCH 3/3] pseudo: Handle too many files deadlock - -Currently if we max out the maximum number of files, pseudo can deadlock, unable to -accept new connections yet unable to move forward and unblock the other processes -waiting either. - -Rather than hang, when this happens, close out inactive connections, allowing us -to accept the new ones. The disconnected clients will simply reconnect. There is -a small risk of data loss here sadly but its better than hanging. - -RP -2017/4/25 - -Upstream-Status: Submitted [Peter is aware of the issue] - ---- - pseudo_server.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/pseudo_server.c b/pseudo_server.c -index dac3258..15a3e8f 100644 ---- a/pseudo_server.c -+++ b/pseudo_server.c -@@ -802,6 +802,7 @@ pseudo_server_loop(void) { - struct sigaction eat_usr2 = { - .sa_handler = set_do_list_clients - }; -+ int hitmaxfiles; - - clients = malloc(16 * sizeof(*clients)); - -@@ -820,6 +821,7 @@ pseudo_server_loop(void) { - active_clients = 1; - max_clients = 16; - highest_client = 0; -+ hitmaxfiles = 0; - - pseudo_debug(PDBGF_SERVER, "server loop started.\n"); - if (listen_fd < 0) { -@@ -878,10 +880,15 @@ pseudo_server_loop(void) { - } else { - serve_client(i); - } -+ } else if (hitmaxfiles) { -+ /* Only close one per loop iteration in the interests of caution */ -+ close_client(i); -+ hitmaxfiles = 0; - } - if (die_forcefully) - break; - } -+ hitmaxfiles = 0; - if (!die_forcefully && - (FD_ISSET(clients[0].fd, &events) || - FD_ISSET(clients[0].fd, &reads))) { -@@ -903,6 +910,9 @@ pseudo_server_loop(void) { - */ - pseudo_server_timeout = DEFAULT_PSEUDO_SERVER_TIMEOUT; - die_peacefully = 0; -+ } else if (errno == EMFILE) { -+ hitmaxfiles = 1; -+ pseudo_debug(PDBGF_SERVER, "Hit max open files, dropping a client.\n"); - } - } - pseudo_debug(PDBGF_SERVER, "server loop complete [%d clients left]\n", active_clients); --- -2.15.1 - diff --git a/poky/meta/recipes-devtools/pseudo/files/xattr_version.patch b/poky/meta/recipes-devtools/pseudo/files/xattr_version.patch deleted file mode 100644 index a8b14bdd69..0000000000 --- a/poky/meta/recipes-devtools/pseudo/files/xattr_version.patch +++ /dev/null @@ -1,54 +0,0 @@ -On a tumbleweed system, "install X Y" was showing the error: - -pseudo: ENOSYS for 'fsetxattr'. - -which was being caused by dlsym() for that function returning NULL. This -appears to be due to it finding an unresolved symbol in libacl for this -symbol in libattr. It hasn't been resolved so its NULL. dlerror() returns -nothing since this is a valid symbol entry, its just not the one we want. - -We can add the glibc version string for the symbol we actually want so we get -that version rather than the libattr/libacl one. - -To quote libattr: -""" - These dumb wrappers are for backwards compatibility only. - Actual syscall wrappers are long gone to libc. -""" -and they are simply wrappers around the libc version so our attaching -to the libc versions should intercept any accesses via these too. - -RP 2020/06/22 -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org -Upstream-Status: Pending [discussed with seebs on irc and appears the correct fix] - - -Index: git/ports/linux/xattr/wrapfuncs.in -=================================================================== ---- git.orig/ports/linux/xattr/wrapfuncs.in -+++ git/ports/linux/xattr/wrapfuncs.in -@@ -1,12 +1,12 @@ --ssize_t getxattr(const char *path, const char *name, void *value, size_t size); /* flags=0 */ --ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size); /* flags=AT_SYMLINK_NOFOLLOW */ --ssize_t fgetxattr(int filedes, const char *name, void *value, size_t size); --int setxattr(const char *path, const char *name, const void *value, size_t size, int xflags); /* flags=0 */ --int lsetxattr(const char *path, const char *name, const void *value, size_t size, int xflags); /* flags=AT_SYMLINK_NOFOLLOW */ --int fsetxattr(int filedes, const char *name, const void *value, size_t size, int xflags); --ssize_t listxattr(const char *path, char *list, size_t size); /* flags=0 */ --ssize_t llistxattr(const char *path, char *list, size_t size); /* flags=AT_SYMLINK_NOFOLLOW */ --ssize_t flistxattr(int filedes, char *list, size_t size); --int removexattr(const char *path, const char *name); /* flags=0 */ --int lremovexattr(const char *path, const char *name); /* flags=AT_SYMLINK_NOFOLLOW */ --int fremovexattr(int filedes, const char *name); -+ssize_t getxattr(const char *path, const char *name, void *value, size_t size); /* flags=0, version="GLIBC_2.3" */ -+ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size); /* flags=AT_SYMLINK_NOFOLLOW, version="GLIBC_2.3" */ -+ssize_t fgetxattr(int filedes, const char *name, void *value, size_t size); /* version="GLIBC_2.3" */ -+int setxattr(const char *path, const char *name, const void *value, size_t size, int xflags); /* flags=0, version="GLIBC_2.3" */ -+int lsetxattr(const char *path, const char *name, const void *value, size_t size, int xflags); /* flags=AT_SYMLINK_NOFOLLOW, version="GLIBC_2.3" */ -+int fsetxattr(int filedes, const char *name, const void *value, size_t size, int xflags); /* version="GLIBC_2.3" */ -+ssize_t listxattr(const char *path, char *list, size_t size); /* flags=0, version="GLIBC_2.3" */ -+ssize_t llistxattr(const char *path, char *list, size_t size); /* flags=AT_SYMLINK_NOFOLLOW, version="GLIBC_2.3" */ -+ssize_t flistxattr(int filedes, char *list, size_t size); /* version="GLIBC_2.3" */ -+int removexattr(const char *path, const char *name); /* flags=0, version="GLIBC_2.3" */ -+int lremovexattr(const char *path, const char *name); /* flags=AT_SYMLINK_NOFOLLOW, version="GLIBC_2.3" */ -+int fremovexattr(int filedes, const char *name); /* version="GLIBC_2.3" */ diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb index 419bac19fe..fcadfd96ac 100644 --- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -1,22 +1,12 @@ require pseudo.inc -SRC_URI = "git://git.yoctoproject.org/pseudo \ +SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \ file://0001-configure-Prune-PIE-flags.patch \ file://fallback-passwd \ file://fallback-group \ - file://moreretries.patch \ - file://toomanyfiles.patch \ - file://0001-maketables-wrappers-use-Python-3.patch \ - file://0001-Add-statx.patch \ - file://0001-realpath.c-Remove-trailing-slashes.patch \ - file://0006-xattr-adjust-for-attr-2.4.48-release.patch \ - file://seccomp.patch \ - file://0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch \ - file://0001-pseudo_ipc.h-Fix-enum-typedef.patch \ - file://xattr_version.patch \ " -SRCREV = "060058bb29f70b244e685b3c704eb0641b736f73" +SRCREV = "067950bd9415fafcafb2bf32c0e10df4f2ac936c" S = "${WORKDIR}/git" PV = "1.9.0+git${SRCPV}" diff --git a/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch index 98a9705831..cdb6a473d2 100644 --- a/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch +++ b/poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch @@ -1,4 +1,4 @@ -From 672a75c8417ce08db9e31fc415ec445479231d5a Mon Sep 17 00:00:00 2001 +From 27f6687e49bf555fc494d2f14bae6ecd0fa30f14 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Thu, 10 Dec 2015 13:20:30 +0200 Subject: [PATCH] Don't search /usr and so on for libraries by default to @@ -14,11 +14,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index ba2b1f4..f94dce1 100644 +index 3a6a7b2..6c2c3da 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py -@@ -278,45 +278,13 @@ if sys.platform == 'win32': - add_system_root(os.path.join(conda_dir, 'Library')) +@@ -309,45 +309,13 @@ if sys.platform == 'win32': + add_system_root(os.path.join(conda_dir, 'Library')) else: - default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib', @@ -68,3 +68,6 @@ index ba2b1f4..f94dce1 100644 if os.path.join(sys.prefix, 'lib') not in default_lib_dirs: default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib')) +-- +2.17.1 + diff --git a/poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch b/poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch deleted file mode 100644 index a416244420..0000000000 --- a/poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch +++ /dev/null @@ -1,555 +0,0 @@ -From 00848d760fa3999e2bed759b585452b35d65d6ec Mon Sep 17 00:00:00 2001 -From: Changqing Li <changqing.li@windriver.com> -Date: Thu, 5 Mar 2020 12:02:35 +0800 -Subject: [PATCH] convert shebang from python to python3 - -Upstream-Status: Backport -[https://github.com/numpy/numpy/commit/583901a074dc65145d3d6136ba7dcd02634d680b] - -Signed-off-by: Changqing Li <changqing.li@windriver.com> - ---- - doc/DISTUTILS.rst.txt | 2 +- - doc/cdoc/numpyfilter.py | 2 +- - doc/postprocess.py | 2 +- - doc/summarize.py | 2 +- - numpy/distutils/conv_template.py | 2 +- - numpy/distutils/cpuinfo.py | 2 +- - numpy/distutils/from_template.py | 2 +- - numpy/distutils/setup.py | 2 +- - numpy/distutils/system_info.py | 2 +- - numpy/f2py/__init__.py | 2 +- - numpy/f2py/auxfuncs.py | 2 +- - numpy/f2py/capi_maps.py | 2 +- - numpy/f2py/cb_rules.py | 2 +- - numpy/f2py/cfuncs.py | 2 +- - numpy/f2py/common_rules.py | 2 +- - numpy/f2py/crackfortran.py | 2 +- - numpy/f2py/diagnose.py | 2 +- - numpy/f2py/f2py2e.py | 2 +- - numpy/f2py/f90mod_rules.py | 2 +- - numpy/f2py/func2subr.py | 2 +- - numpy/f2py/rules.py | 2 +- - numpy/f2py/setup.py | 2 +- - numpy/f2py/use_rules.py | 2 +- - numpy/linalg/lapack_lite/clapack_scrub.py | 2 +- - numpy/linalg/lapack_lite/make_lite.py | 2 +- - numpy/ma/bench.py | 2 +- - numpy/ma/setup.py | 2 +- - numpy/matrixlib/setup.py | 2 +- - numpy/random/_examples/cython/extending.pyx | 2 +- - numpy/random/_examples/cython/extending_distributions.pyx | 2 +- - numpy/setup.py | 2 +- - numpy/testing/print_coercion_tables.py | 2 +- - numpy/testing/setup.py | 2 +- - runtests.py | 2 +- - setup.py | 2 +- - tools/c_coverage/c_coverage_report.py | 2 +- - tools/changelog.py | 2 +- - tools/ci/push_docs_to_repo.py | 2 +- - tools/find_deprecated_escaped_characters.py | 2 +- - tools/refguide_check.py | 2 +- - tools/swig/test/setup.py | 2 +- - tools/swig/test/testArray.py | 2 +- - tools/swig/test/testFarray.py | 2 +- - tools/swig/test/testFlat.py | 2 +- - tools/swig/test/testFortran.py | 2 +- - tools/swig/test/testMatrix.py | 2 +- - tools/swig/test/testSuperTensor.py | 2 +- - tools/swig/test/testTensor.py | 2 +- - tools/swig/test/testVector.py | 2 +- - 49 files changed, 49 insertions(+), 49 deletions(-) - -diff --git a/doc/DISTUTILS.rst.txt b/doc/DISTUTILS.rst.txt -index bcef825..bc1700f 100644 ---- a/doc/DISTUTILS.rst.txt -+++ b/doc/DISTUTILS.rst.txt -@@ -59,7 +59,7 @@ SciPy pure Python package example - - Below is an example of a minimal ``setup.py`` file for a pure SciPy package:: - -- #!/usr/bin/env python -+ #!/usr/bin/env python3 - def configuration(parent_package='',top_path=None): - from numpy.distutils.misc_util import Configuration - config = Configuration('mypackage',parent_package,top_path) -diff --git a/doc/cdoc/numpyfilter.py b/doc/cdoc/numpyfilter.py -index 0ec5069..067bd36 100755 ---- a/doc/cdoc/numpyfilter.py -+++ b/doc/cdoc/numpyfilter.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - numpyfilter.py INPUTFILE - -diff --git a/doc/postprocess.py b/doc/postprocess.py -index 2e50c11..1be6f39 100755 ---- a/doc/postprocess.py -+++ b/doc/postprocess.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - %prog MODE FILES... - -diff --git a/doc/summarize.py b/doc/summarize.py -index cfce271..563af02 100755 ---- a/doc/summarize.py -+++ b/doc/summarize.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - summarize.py - -diff --git a/numpy/distutils/conv_template.py b/numpy/distutils/conv_template.py -index 3bcb7b8..88432c8 100644 ---- a/numpy/distutils/conv_template.py -+++ b/numpy/distutils/conv_template.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - takes templated file .xxx.src and produces .xxx file where .xxx is - .i or .c or .h, using the following template rules -diff --git a/numpy/distutils/cpuinfo.py b/numpy/distutils/cpuinfo.py -index bc97283..87502a9 100644 ---- a/numpy/distutils/cpuinfo.py -+++ b/numpy/distutils/cpuinfo.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - cpuinfo - -diff --git a/numpy/distutils/from_template.py b/numpy/distutils/from_template.py -index c5c1163..af75971 100644 ---- a/numpy/distutils/from_template.py -+++ b/numpy/distutils/from_template.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - process_file(filename) -diff --git a/numpy/distutils/setup.py b/numpy/distutils/setup.py -index 82a53bd..646921b 100644 ---- a/numpy/distutils/setup.py -+++ b/numpy/distutils/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - def configuration(parent_package='',top_path=None): -diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index 4f340b6..189081d 100644 ---- a/numpy/distutils/system_info.py -+++ b/numpy/distutils/system_info.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - This file defines a set of system_info classes for getting - information about various resources (libraries, library directories, -diff --git a/numpy/f2py/__init__.py b/numpy/f2py/__init__.py -index 42e3632..09a3657 100644 ---- a/numpy/f2py/__init__.py -+++ b/numpy/f2py/__init__.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """Fortran to Python Interface Generator. - - """ -diff --git a/numpy/f2py/auxfuncs.py b/numpy/f2py/auxfuncs.py -index 404bdbd..d23d959 100644 ---- a/numpy/f2py/auxfuncs.py -+++ b/numpy/f2py/auxfuncs.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Auxiliary functions for f2py2e. -diff --git a/numpy/f2py/capi_maps.py b/numpy/f2py/capi_maps.py -index ce79f68..e5d3fd2 100644 ---- a/numpy/f2py/capi_maps.py -+++ b/numpy/f2py/capi_maps.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Copyright 1999,2000 Pearu Peterson all rights reserved, -diff --git a/numpy/f2py/cb_rules.py b/numpy/f2py/cb_rules.py -index 183d7c2..93e93fe 100644 ---- a/numpy/f2py/cb_rules.py -+++ b/numpy/f2py/cb_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build call-back mechanism for f2py2e. -diff --git a/numpy/f2py/cfuncs.py b/numpy/f2py/cfuncs.py -index ccb7b3a..cdb783d 100644 ---- a/numpy/f2py/cfuncs.py -+++ b/numpy/f2py/cfuncs.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - C declarations, CPP macros, and C functions for f2py2e. -diff --git a/numpy/f2py/common_rules.py b/numpy/f2py/common_rules.py -index f61d881..fe510bf 100644 ---- a/numpy/f2py/common_rules.py -+++ b/numpy/f2py/common_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build common block mechanism for f2py2e. -diff --git a/numpy/f2py/crackfortran.py b/numpy/f2py/crackfortran.py -index 2aaf5d7..fb5ef2f 100755 ---- a/numpy/f2py/crackfortran.py -+++ b/numpy/f2py/crackfortran.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - crackfortran --- read fortran (77,90) code and extract declaration information. - -diff --git a/numpy/f2py/diagnose.py b/numpy/f2py/diagnose.py -index 0241fed..6c0304c 100644 ---- a/numpy/f2py/diagnose.py -+++ b/numpy/f2py/diagnose.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - import os -diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py -index d03eff9..c17bfd9 100755 ---- a/numpy/f2py/f2py2e.py -+++ b/numpy/f2py/f2py2e.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - f2py2e - Fortran to Python C/API generator. 2nd Edition. -diff --git a/numpy/f2py/f90mod_rules.py b/numpy/f2py/f90mod_rules.py -index 85eae80..70be128 100644 ---- a/numpy/f2py/f90mod_rules.py -+++ b/numpy/f2py/f90mod_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build F90 module support for f2py2e. -diff --git a/numpy/f2py/func2subr.py b/numpy/f2py/func2subr.py -index 6010d5a..fdea0c2 100644 ---- a/numpy/f2py/func2subr.py -+++ b/numpy/f2py/func2subr.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Rules for building C/API module with f2py2e. -diff --git a/numpy/f2py/rules.py b/numpy/f2py/rules.py -index f2f713b..f87b03c 100755 ---- a/numpy/f2py/rules.py -+++ b/numpy/f2py/rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Rules for building C/API module with f2py2e. -diff --git a/numpy/f2py/setup.py b/numpy/f2py/setup.py -index a8c1401..2e7a517 100644 ---- a/numpy/f2py/setup.py -+++ b/numpy/f2py/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - setup.py for installing F2PY - -diff --git a/numpy/f2py/use_rules.py b/numpy/f2py/use_rules.py -index 6f44f16..8214f42 100644 ---- a/numpy/f2py/use_rules.py -+++ b/numpy/f2py/use_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build 'use others module data' mechanism for f2py2e. -diff --git a/numpy/linalg/lapack_lite/clapack_scrub.py b/numpy/linalg/lapack_lite/clapack_scrub.py -index 4345861..91e66e7 100644 ---- a/numpy/linalg/lapack_lite/clapack_scrub.py -+++ b/numpy/linalg/lapack_lite/clapack_scrub.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - import sys, os -diff --git a/numpy/linalg/lapack_lite/make_lite.py b/numpy/linalg/lapack_lite/make_lite.py -index 61102d6..0211f4e 100755 ---- a/numpy/linalg/lapack_lite/make_lite.py -+++ b/numpy/linalg/lapack_lite/make_lite.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - Usage: make_lite.py <wrapped_routines_file> <lapack_dir> <output_dir> - -diff --git a/numpy/ma/bench.py b/numpy/ma/bench.py -index a9ba42d..a377436 100644 ---- a/numpy/ma/bench.py -+++ b/numpy/ma/bench.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - # -*- coding: utf-8 -*- - - from __future__ import division, print_function -diff --git a/numpy/ma/setup.py b/numpy/ma/setup.py -index d1d6c89..a04b79b 100644 ---- a/numpy/ma/setup.py -+++ b/numpy/ma/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - def configuration(parent_package='',top_path=None): -diff --git a/numpy/matrixlib/setup.py b/numpy/matrixlib/setup.py -index d0981d6..57534d1 100644 ---- a/numpy/matrixlib/setup.py -+++ b/numpy/matrixlib/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - def configuration(parent_package='', top_path=None): -diff --git a/numpy/random/_examples/cython/extending.pyx b/numpy/random/_examples/cython/extending.pyx -index 7a0dfe0..3a7f81a 100644 ---- a/numpy/random/_examples/cython/extending.pyx -+++ b/numpy/random/_examples/cython/extending.pyx -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - #cython: language_level=3 - - from libc.stdint cimport uint32_t -diff --git a/numpy/random/_examples/cython/extending_distributions.pyx b/numpy/random/_examples/cython/extending_distributions.pyx -index 1bef506..4da6a4b 100644 ---- a/numpy/random/_examples/cython/extending_distributions.pyx -+++ b/numpy/random/_examples/cython/extending_distributions.pyx -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - #cython: language_level=3 - """ - This file shows how the to use a BitGenerator to create a distribution. -diff --git a/numpy/setup.py b/numpy/setup.py -index 4ccdaee..db06c82 100644 ---- a/numpy/setup.py -+++ b/numpy/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - -diff --git a/numpy/testing/print_coercion_tables.py b/numpy/testing/print_coercion_tables.py -index 72b22ce..1e9a301 100755 ---- a/numpy/testing/print_coercion_tables.py -+++ b/numpy/testing/print_coercion_tables.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """Prints type-coercion tables for the built-in NumPy types - - """ -diff --git a/numpy/testing/setup.py b/numpy/testing/setup.py -index 7c3f2fb..bd315ee 100755 ---- a/numpy/testing/setup.py -+++ b/numpy/testing/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - -diff --git a/runtests.py b/runtests.py -index a38054f..383ddaa 100755 ---- a/runtests.py -+++ b/runtests.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - runtests.py [OPTIONS] [-- ARGS] - -diff --git a/setup.py b/setup.py -index d7f807b..705ea5d 100755 ---- a/setup.py -+++ b/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ NumPy is the fundamental package for array computing with Python. - - It provides: -diff --git a/tools/c_coverage/c_coverage_report.py b/tools/c_coverage/c_coverage_report.py -index 327f6dc..8837684 100755 ---- a/tools/c_coverage/c_coverage_report.py -+++ b/tools/c_coverage/c_coverage_report.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - A script to create C code-coverage reports based on the output of - valgrind's callgrind tool. -diff --git a/tools/changelog.py b/tools/changelog.py -index b135b14..5d8b33c 100755 ---- a/tools/changelog.py -+++ b/tools/changelog.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # -*- encoding:utf-8 -*- - """ - Script to generate contributor and pull request lists -diff --git a/tools/ci/push_docs_to_repo.py b/tools/ci/push_docs_to_repo.py -index a989668..ae53054 100755 ---- a/tools/ci/push_docs_to_repo.py -+++ b/tools/ci/push_docs_to_repo.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - - import argparse - import subprocess -diff --git a/tools/find_deprecated_escaped_characters.py b/tools/find_deprecated_escaped_characters.py -index 6f90001..10e0378 100644 ---- a/tools/find_deprecated_escaped_characters.py -+++ b/tools/find_deprecated_escaped_characters.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - r""" - Look for escape sequences deprecated in Python 3.6. - -diff --git a/tools/refguide_check.py b/tools/refguide_check.py -index 2c62809..a19a29e 100644 ---- a/tools/refguide_check.py -+++ b/tools/refguide_check.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - refguide_check.py [OPTIONS] [-- ARGS] - -diff --git a/tools/swig/test/setup.py b/tools/swig/test/setup.py -index 4ff870e..f8f05e6 100755 ---- a/tools/swig/test/setup.py -+++ b/tools/swig/test/setup.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - # System imports -diff --git a/tools/swig/test/testArray.py b/tools/swig/test/testArray.py -index 8d9c797..54ffe71 100755 ---- a/tools/swig/test/testArray.py -+++ b/tools/swig/test/testArray.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testFarray.py b/tools/swig/test/testFarray.py -index e8bf711..b377f7c 100755 ---- a/tools/swig/test/testFarray.py -+++ b/tools/swig/test/testFarray.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testFlat.py b/tools/swig/test/testFlat.py -index 71be277..55034bf 100755 ---- a/tools/swig/test/testFlat.py -+++ b/tools/swig/test/testFlat.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testFortran.py b/tools/swig/test/testFortran.py -index 426e894..0f7d0e6 100644 ---- a/tools/swig/test/testFortran.py -+++ b/tools/swig/test/testFortran.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testMatrix.py b/tools/swig/test/testMatrix.py -index 065be0d..854a23c 100755 ---- a/tools/swig/test/testMatrix.py -+++ b/tools/swig/test/testMatrix.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testSuperTensor.py b/tools/swig/test/testSuperTensor.py -index 97fe80c..31b63d0 100644 ---- a/tools/swig/test/testSuperTensor.py -+++ b/tools/swig/test/testSuperTensor.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - # System imports -diff --git a/tools/swig/test/testTensor.py b/tools/swig/test/testTensor.py -index ac1b749..f47d9e8 100755 ---- a/tools/swig/test/testTensor.py -+++ b/tools/swig/test/testTensor.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testVector.py b/tools/swig/test/testVector.py -index 45e763b..067b922 100755 ---- a/tools/swig/test/testVector.py -+++ b/tools/swig/test/testVector.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports diff --git a/poky/meta/recipes-devtools/python-numpy/python-numpy.inc b/poky/meta/recipes-devtools/python-numpy/python-numpy.inc index 75309e3080..e37ab399ed 100644 --- a/poky/meta/recipes-devtools/python-numpy/python-numpy.inc +++ b/poky/meta/recipes-devtools/python-numpy/python-numpy.inc @@ -1,15 +1,14 @@ SUMMARY = "A sophisticated Numeric Processing Package for Python" SECTION = "devel/python" LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & BSD & MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a32aba007a415aa8a1c708a0e2b86a1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=643d4e90100b7abe468c4db88127b895" SRCNAME = "numpy" SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ - file://0001-convert-shebang-from-python-to-python3.patch \ " -SRC_URI[sha256sum] = "2c095bd1c5290966cceee8b6ef5cd66f13cd0e9d6d0e8d6fc8961abd64a8e51f" +SRC_URI[sha256sum] = "153cf8b0176e57a611931981acfe093d2f7fef623b48f91176efa199798a6b90" UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" @@ -20,7 +19,7 @@ S = "${WORKDIR}/numpy-${PV}" CLEANBROKEN = "1" -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a" +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a" # install what is needed for numpy.test() RDEPENDS_${PN} = "${PYTHON_PN}-unittest \ diff --git a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.18.5.bb b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.19.0.bb index d388e88d25..d388e88d25 100644 --- a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.18.5.bb +++ b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.19.0.bb diff --git a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch index 5f99cd2512..201e3570d6 100644 --- a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch +++ b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch @@ -1,4 +1,4 @@ -From a8f871c9ebc4fcb99d4163b226aabeef26567099 Mon Sep 17 00:00:00 2001 +From 234c3da52da09b28db5b2c4d33ebe9c800c461ac Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Tue, 17 Jul 2018 10:13:38 +0800 Subject: [PATCH] conditionally do not fetch code by easy_install @@ -15,10 +15,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 1 file changed, 5 insertions(+) diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py -index 426301d..55c8062 100644 +index 5a9576f..f5961cb 100644 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py -@@ -649,6 +649,11 @@ class easy_install(Command): +@@ -656,6 +656,11 @@ class easy_install(Command): os.path.exists(tmpdir) and rmtree(rmtree_safe(tmpdir)) def easy_install(self, spec, deps=False): diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc index eee567ed2c..a0cd2a5fb4 100644 --- a/poky/meta/recipes-devtools/python/python-cython.inc +++ b/poky/meta/recipes-devtools/python/python-cython.inc @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" PYPI_PACKAGE = "Cython" BBCLASSEXTEND = "native nativesdk" -SRC_URI[sha256sum] = "97f98a7dc0d58ea833dc1f8f8b3ce07adf4c0f030d1886c5399a2135ed415258" +SRC_URI[sha256sum] = "22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7" UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar" inherit pypi diff --git a/poky/meta/recipes-devtools/python/python-setuptools.inc b/poky/meta/recipes-devtools/python/python-setuptools.inc index 3222de7079..ecf1205752 100644 --- a/poky/meta/recipes-devtools/python/python-setuptools.inc +++ b/poky/meta/recipes-devtools/python/python-setuptools.inc @@ -10,12 +10,9 @@ inherit pypi SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" -SRC_URI += "file://0001-change-shebang-to-python3.patch \ - file://0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch \ - " +SRC_URI += "file://0001-change-shebang-to-python3.patch" -SRC_URI[md5sum] = "6e9de90b242fdd60ef59f497424ce13a" -SRC_URI[sha256sum] = "145fa62b9d7bb544fce16e9b5a9bf4ab2032d2f758b7cd674af09a92736aff74" +SRC_URI[sha256sum] = "843037738d1e34e8b326b5e061f474aca6ef9d7ece41329afbc8aac6195a3920" DEPENDS += "${PYTHON_PN}" diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.19.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb index 2ce6bdbd68..2ce6bdbd68 100644 --- a/poky/meta/recipes-devtools/python/python3-cython_0.29.19.bb +++ b/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb index 4983ae527a..3a2d8733e9 100644 --- a/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb +++ b/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb @@ -12,6 +12,10 @@ inherit pypi setuptools3 SRC_URI[md5sum] = "083bd2cb0043c1e22a52cb9a05e31532" SRC_URI[sha256sum] = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60" -RDEPENDS_${PN} += "libarchive" +RDEPENDS_${PN} += "\ + libarchive \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-mmap \ +" BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch deleted file mode 100644 index 7e931c845c..0000000000 --- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch +++ /dev/null @@ -1,62 +0,0 @@ -From aae8cd3de3f289cea3db01212579913c925191e8 Mon Sep 17 00:00:00 2001 -From: Lauri Tirkkonen <lauri.tirkkonen.ext@nokia.com> -Date: Thu, 26 Mar 2020 14:24:25 +0000 -Subject: [PATCH] ScriptWriter: create more efficient /usr/bin wrappers - -Upstream setuptools writes scripts to /usr/bin that do insanely much -stuff at runtime. https://github.com/pypa/setuptools/issues/510 - -Since the script entry points are already known at build time, we can -just write those directly into the /usr/bin wrapper, avoiding the -expensive 'pkg_resources' import at runtime. The idea is from -https://github.com/ninjaaron/fast-entry_points but patched directly into -the native build of setuptools here, so that all Python modules under -bitbake automatically use it without needing additional build time -dependencies. - -Upstream-Status: Pending - -Signed-off-by: Lauri Tirkkonen <lauri.tirkkonen.ext@nokia.com> -Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> ---- - setuptools/command/easy_install.py | 14 ++++++-------- - 1 file changed, 6 insertions(+), 8 deletions(-) - -diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py -index 8fba7b41..03a72714 100755 ---- a/setuptools/command/easy_install.py -+++ b/setuptools/command/easy_install.py -@@ -2023,17 +2023,12 @@ class ScriptWriter(object): - """ - - template = textwrap.dedent(r""" -- # EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r -- __requires__ = %(spec)r -- import re - import sys -- from pkg_resources import load_entry_point -+ -+ from %(module)s import %(ep0)s - - if __name__ == '__main__': -- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) -- sys.exit( -- load_entry_point(%(spec)r, %(group)r, %(name)r)() -- ) -+ sys.exit(%(entrypoint)s()) - """).lstrip() - - command_spec_class = CommandSpec -@@ -2068,6 +2063,9 @@ class ScriptWriter(object): - for type_ in 'console', 'gui': - group = type_ + '_scripts' - for name, ep in dist.get_entry_map(group).items(): -+ module = ep.module_name -+ ep0 = ep.attrs[0] -+ entrypoint = '.'.join(ep.attrs) - cls._ensure_safe_name(name) - script_text = cls.template % locals() - args = cls._get_script_args(type_, name, header, script_text) --- -2.24.1 - diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_47.1.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb index 0dc1ed8622..0dc1ed8622 100644 --- a/poky/meta/recipes-devtools/python/python3-setuptools_47.1.1.bb +++ b/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb diff --git a/poky/meta/recipes-devtools/python/python3_3.8.3.bb b/poky/meta/recipes-devtools/python/python3_3.8.3.bb index 2eb2a422e6..a7cfbad5cd 100644 --- a/poky/meta/recipes-devtools/python/python3_3.8.3.bb +++ b/poky/meta/recipes-devtools/python/python3_3.8.3.bb @@ -350,6 +350,7 @@ FILES_${PN}-man = "${datadir}/man" # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395 RDEPENDS_libpython3_append_libc-glibc = " libgcc" +RDEPENDS_${PN}-ctypes_append_libc-glibc = " ${MLPREFIX}ldconfig" RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests unzip bzip2 libgcc tzdata-europe coreutils sed" RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9" RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}" diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc index 8b6157e69d..d41cc8f200 100644 --- a/poky/meta/recipes-devtools/qemu/qemu.inc +++ b/poky/meta/recipes-devtools/qemu/qemu.inc @@ -31,6 +31,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://0001-qemu-Do-not-include-file-if-not-exists.patch \ file://CVE-2020-13361.patch \ file://find_datadir.patch \ + file://CVE-2020-10761.patch \ " UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" @@ -139,7 +140,7 @@ PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+" PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+" PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2" -PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap attr," +PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap-ng attr," PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio," PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs," PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest" diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch new file mode 100644 index 0000000000..19f26ae5b0 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch @@ -0,0 +1,151 @@ +From 5c4fe018c025740fef4a0a4421e8162db0c3eefd Mon Sep 17 00:00:00 2001 +From: Eric Blake <eblake@redhat.com> +Date: Mon, 8 Jun 2020 13:26:37 -0500 +Subject: [PATCH] nbd/server: Avoid long error message assertions + CVE-2020-10761 + +Ever since commit 36683283 (v2.8), the server code asserts that error +strings sent to the client are well-formed per the protocol by not +exceeding the maximum string length of 4096. At the time the server +first started sending error messages, the assertion could not be +triggered, because messages were completely under our control. +However, over the years, we have added latent scenarios where a client +could trigger the server to attempt an error message that would +include the client's information if it passed other checks first: + +- requesting NBD_OPT_INFO/GO on an export name that is not present + (commit 0cfae925 in v2.12 echoes the name) + +- requesting NBD_OPT_LIST/SET_META_CONTEXT on an export name that is + not present (commit e7b1948d in v2.12 echoes the name) + +At the time, those were still safe because we flagged names larger +than 256 bytes with a different message; but that changed in commit +93676c88 (v4.2) when we raised the name limit to 4096 to match the NBD +string limit. (That commit also failed to change the magic number +4096 in nbd_negotiate_send_rep_err to the just-introduced named +constant.) So with that commit, long client names appended to server +text can now trigger the assertion, and thus be used as a denial of +service attack against a server. As a mitigating factor, if the +server requires TLS, the client cannot trigger the problematic paths +unless it first supplies TLS credentials, and such trusted clients are +less likely to try to intentionally crash the server. + +We may later want to further sanitize the user-supplied strings we +place into our error messages, such as scrubbing out control +characters, but that is less important to the CVE fix, so it can be a +later patch to the new nbd_sanitize_name. + +Consideration was given to changing the assertion in +nbd_negotiate_send_rep_verr to instead merely log a server error and +truncate the message, to avoid leaving a latent path that could +trigger a future CVE DoS on any new error message. However, this +merely complicates the code for something that is already (correctly) +flagging coding errors, and now that we are aware of the long message +pitfall, we are less likely to introduce such errors in the future, +which would make such error handling dead code. + +Reported-by: Xueqiang Wei <xuwei@redhat.com> +CC: qemu-stable@nongnu.org +Fixes: https://bugzilla.redhat.com/1843684 CVE-2020-10761 +Fixes: 93676c88d7 +Signed-off-by: Eric Blake <eblake@redhat.com> +Message-Id: <20200610163741.3745251-2-eblake@redhat.com> +Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> + +Upstream-Status: Backport [https://github.com/qemu/qemu/commit/5c4fe018c025740fef4a0a4421e8162db0c3eefd] +CVE: CVE-2020-10761 +Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com> + +--- + nbd/server.c | 23 ++++++++++++++++++++--- + tests/qemu-iotests/143 | 4 ++++ + tests/qemu-iotests/143.out | 2 ++ + 3 files changed, 26 insertions(+), 3 deletions(-) + +diff --git a/nbd/server.c b/nbd/server.c +index 02b1ed08014..20754e9ebc3 100644 +--- a/nbd/server.c ++++ b/nbd/server.c +@@ -217,7 +217,7 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, + + msg = g_strdup_vprintf(fmt, va); + len = strlen(msg); +- assert(len < 4096); ++ assert(len < NBD_MAX_STRING_SIZE); + trace_nbd_negotiate_send_rep_err(msg); + ret = nbd_negotiate_send_rep_len(client, type, len, errp); + if (ret < 0) { +@@ -231,6 +231,19 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, + return 0; + } + ++/* ++ * Return a malloc'd copy of @name suitable for use in an error reply. ++ */ ++static char * ++nbd_sanitize_name(const char *name) ++{ ++ if (strnlen(name, 80) < 80) { ++ return g_strdup(name); ++ } ++ /* XXX Should we also try to sanitize any control characters? */ ++ return g_strdup_printf("%.80s...", name); ++} ++ + /* Send an error reply. + * Return -errno on error, 0 on success. */ + static int GCC_FMT_ATTR(4, 5) +@@ -595,9 +608,11 @@ static int nbd_negotiate_handle_info(NBDClient *client, Error **errp) + + exp = nbd_export_find(name); + if (!exp) { ++ g_autofree char *sane_name = nbd_sanitize_name(name); ++ + return nbd_negotiate_send_rep_err(client, NBD_REP_ERR_UNKNOWN, + errp, "export '%s' not present", +- name); ++ sane_name); + } + + /* Don't bother sending NBD_INFO_NAME unless client requested it */ +@@ -995,8 +1010,10 @@ static int nbd_negotiate_meta_queries(NBDClient *client, + + meta->exp = nbd_export_find(export_name); + if (meta->exp == NULL) { ++ g_autofree char *sane_name = nbd_sanitize_name(export_name); ++ + return nbd_opt_drop(client, NBD_REP_ERR_UNKNOWN, errp, +- "export '%s' not present", export_name); ++ "export '%s' not present", sane_name); + } + + ret = nbd_opt_read(client, &nb_queries, sizeof(nb_queries), errp); +diff --git a/tests/qemu-iotests/143 b/tests/qemu-iotests/143 +index f649b361950..d2349903b1b 100755 +--- a/tests/qemu-iotests/143 ++++ b/tests/qemu-iotests/143 +@@ -58,6 +58,10 @@ _send_qemu_cmd $QEMU_HANDLE \ + $QEMU_IO_PROG -f raw -c quit \ + "nbd+unix:///no_such_export?socket=$SOCK_DIR/nbd" 2>&1 \ + | _filter_qemu_io | _filter_nbd ++# Likewise, with longest possible name permitted in NBD protocol ++$QEMU_IO_PROG -f raw -c quit \ ++ "nbd+unix:///$(printf %4096d 1 | tr ' ' a)?socket=$SOCK_DIR/nbd" 2>&1 \ ++ | _filter_qemu_io | _filter_nbd | sed 's/aaaa*aa/aa--aa/' + + _send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'quit' }" \ +diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out +index 1f4001c6013..fc9c0a761fa 100644 +--- a/tests/qemu-iotests/143.out ++++ b/tests/qemu-iotests/143.out +@@ -5,6 +5,8 @@ QA output created by 143 + {"return": {}} + qemu-io: can't open device nbd+unix:///no_such_export?socket=SOCK_DIR/nbd: Requested export not available + server reported: export 'no_such_export' not present ++qemu-io: can't open device nbd+unix:///aa--aa1?socket=SOCK_DIR/nbd: Requested export not available ++server reported: export 'aa--aa...' not present + { 'execute': 'quit' } + {"return": {}} + {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch deleted file mode 100644 index 7581887790..0000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 6a043145ca6e9c55184013841a67b2fef87e44c0 Mon Sep 17 00:00:00 2001 -From: Mark Adler <madler@alumni.caltech.edu> -Date: Wed, 21 Sep 2016 23:35:50 -0700 -Subject: [PATCH] Remove offset pointer optimization in inftrees.c. - -inftrees.c was subtracting an offset from a pointer to an array, -in order to provide a pointer that allowed indexing starting at -the offset. This is not compliant with the C standard, for which -the behavior of a pointer decremented before its allocated memory -is undefined. Per the recommendation of a security audit of the -zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this tiny optimization was removed, in order -to avoid the possibility of undefined behavior. - -CVE: CVE-2016-9840 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - inftrees.c | 18 ++++++++---------- - 1 file changed, 8 insertions(+), 10 deletions(-) - -diff --git a/zlib/inftrees.c b/zlib/inftrees.c -index 22fcd666..0d2670d5 100644 ---- a/zlib/inftrees.c -+++ b/zlib/inftrees.c -@@ -54,7 +54,7 @@ unsigned short FAR *work; - code FAR *next; /* next available space in table */ - const unsigned short FAR *base; /* base value table to use */ - const unsigned short FAR *extra; /* extra bits table to use */ -- int end; /* use base and extra for symbol > end */ -+ unsigned match; /* use base and extra for symbol >= match */ - unsigned short count[MAXBITS+1]; /* number of codes of each length */ - unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ - static const unsigned short lbase[31] = { /* Length codes 257..285 base */ -@@ -181,19 +181,17 @@ unsigned short FAR *work; - switch (type) { - case CODES: - base = extra = work; /* dummy value--not used */ -- end = 19; -+ match = 20; - break; - case LENS: - base = lbase; -- base -= 257; - extra = lext; -- extra -= 257; -- end = 256; -+ match = 257; - break; - default: /* DISTS */ - base = dbase; - extra = dext; -- end = -1; -+ match = 0; - } - - /* initialize state for loop */ -@@ -216,13 +214,13 @@ unsigned short FAR *work; - for (;;) { - /* create table entry */ - here.bits = (unsigned char)(len - drop); -- if ((int)(work[sym]) < end) { -+ if (work[sym] + 1 < match) { - here.op = (unsigned char)0; - here.val = work[sym]; - } -- else if ((int)(work[sym]) > end) { -- here.op = (unsigned char)(extra[work[sym]]); -- here.val = base[work[sym]]; -+ else if (work[sym] >= match) { -+ here.op = (unsigned char)(extra[work[sym] - match]); -+ here.val = base[work[sym] - match]; - } - else { - here.op = (unsigned char)(32 + 64); /* end of block */ diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch deleted file mode 100644 index 3942176de5..0000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch +++ /dev/null @@ -1,228 +0,0 @@ -From 9aaec95e82117c1cb0f9624264c3618fc380cecb Mon Sep 17 00:00:00 2001 -From: Mark Adler <madler@alumni.caltech.edu> -Date: Wed, 21 Sep 2016 22:25:21 -0700 -Subject: [PATCH] Use post-increment only in inffast.c. - -An old inffast.c optimization turns out to not be optimal anymore -with modern compilers, and furthermore was not compliant with the -C standard, for which decrementing a pointer before its allocated -memory is undefined. Per the recommendation of a security audit of -the zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this "optimization" was removed, in order to -avoid the possibility of undefined behavior. - -CVE: CVE-2016-9841 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - zlib/inffast.c | 81 +++++++++++++++++++++---------------------------------- - 1 file changed, 31 insertions(+), 50 deletions(-) - -diff --git a/zlib/inffast.c b/zlib/inffast.c -index bda59ceb..f0d163db 100644 ---- a/zlib/inffast.c -+++ b/zlib/inffast.c -@@ -10,25 +10,6 @@ - - #ifndef ASMINF - --/* Allow machine dependent optimization for post-increment or pre-increment. -- Based on testing to date, -- Pre-increment preferred for: -- - PowerPC G3 (Adler) -- - MIPS R5000 (Randers-Pehrson) -- Post-increment preferred for: -- - none -- No measurable difference: -- - Pentium III (Anderson) -- - M68060 (Nikl) -- */ --#ifdef POSTINC --# define OFF 0 --# define PUP(a) *(a)++ --#else --# define OFF 1 --# define PUP(a) *++(a) --#endif -- - /* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is -@@ -96,9 +77,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; -- in = strm->next_in - OFF; -+ in = strm->next_in; - last = in + (strm->avail_in - 5); -- out = strm->next_out - OFF; -+ out = strm->next_out; - beg = out - (start - strm->avail_out); - end = out + (strm->avail_out - 257); - #ifdef INFLATE_STRICT -@@ -119,9 +100,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - input data or output space */ - do { - if (bits < 15) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = lcode[hold & lmask]; -@@ -134,14 +115,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); -- PUP(out) = (unsigned char)(here.val); -+ *out++ = (unsigned char)(here.val); - } - else if (op & 16) { /* length base */ - len = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - len += (unsigned)hold & ((1U << op) - 1); -@@ -150,9 +131,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - } - Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = dcode[hold & dmask]; -@@ -165,10 +146,10 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - dist = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - } -@@ -196,30 +177,30 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - if (len <= op - whave) { - do { -- PUP(out) = 0; -+ *out++ = 0; - } while (--len); - continue; - } - len -= op - whave; - do { -- PUP(out) = 0; -+ *out++ = 0; - } while (--op > whave); - if (op == 0) { - from = out - dist; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--len); - continue; - } - #endif - } -- from = window - OFF; -+ from = window; - if (wnext == 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } -@@ -230,14 +211,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - if (op < len) { /* some from end of window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); -- from = window - OFF; -+ from = window; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } -@@ -248,35 +229,35 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - if (op < len) { /* some from window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } - } - while (len > 2) { -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -+ *out++ = *from++; -+ *out++ = *from++; -+ *out++ = *from++; - len -= 3; - } - if (len) { -- PUP(out) = PUP(from); -+ *out++ = *from++; - if (len > 1) -- PUP(out) = PUP(from); -+ *out++ = *from++; - } - } - else { - from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -+ *out++ = *from++; -+ *out++ = *from++; -+ *out++ = *from++; - len -= 3; - } while (len > 2); - if (len) { -- PUP(out) = PUP(from); -+ *out++ = *from++; - if (len > 1) -- PUP(out) = PUP(from); -+ *out++ = *from++; - } - } - } -@@ -313,8 +294,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - hold &= (1U << bits) - 1; - - /* update state and return */ -- strm->next_in = in + OFF; -- strm->next_out = out + OFF; -+ strm->next_in = in; -+ strm->next_out = out; - strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); - strm->avail_out = (unsigned)(out < end ? - 257 + (end - out) : 257 - (out - end)); diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch deleted file mode 100644 index 810d8a3fdb..0000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e54e1299404101a5a9d0cf5e45512b543967f958 Mon Sep 17 00:00:00 2001 -From: Mark Adler <madler@alumni.caltech.edu> -Date: Sat, 5 Sep 2015 17:45:55 -0700 -Subject: [PATCH] Avoid shifts of negative values inflateMark(). - -The C standard says that bit shifts of negative integers is -undefined. This casts to unsigned values to assure a known -result. - -CVE: CVE-2016-9842 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - inflate.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/zlib/inflate.c b/zlib/inflate.c -index 2889e3a0..a7184167 100644 ---- a/zlib/inflate.c -+++ b/zlib/inflate.c -@@ -1506,9 +1506,10 @@ z_streamp strm; - { - struct inflate_state FAR *state; - -- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16; -+ if (strm == Z_NULL || strm->state == Z_NULL) -+ return (long)(((unsigned long)0 - 1) << 16); - state = (struct inflate_state FAR *)strm->state; -- return ((long)(state->back) << 16) + -+ return (long)(((unsigned long)((long)state->back)) << 16) + - (state->mode == COPY ? state->length : - (state->mode == MATCH ? state->was - state->length : 0)); - } diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch deleted file mode 100644 index ea2e42fe76..0000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch +++ /dev/null @@ -1,53 +0,0 @@ -From d1d577490c15a0c6862473d7576352a9f18ef811 Mon Sep 17 00:00:00 2001 -From: Mark Adler <madler@alumni.caltech.edu> -Date: Wed, 28 Sep 2016 20:20:25 -0700 -Subject: [PATCH] Avoid pre-decrement of pointer in big-endian CRC calculation. - -There was a small optimization for PowerPCs to pre-increment a -pointer when accessing a word, instead of post-incrementing. This -required prefacing the loop with a decrement of the pointer, -possibly pointing before the object passed. This is not compliant -with the C standard, for which decrementing a pointer before its -allocated memory is undefined. When tested on a modern PowerPC -with a modern compiler, the optimization no longer has any effect. -Due to all that, and per the recommendation of a security audit of -the zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this "optimization" was removed, in order to -avoid the possibility of undefined behavior. - -CVE: CVE-2016-9843 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - crc32.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/zlib/crc32.c b/zlib/crc32.c -index 979a7190..05733f4e 100644 ---- a/zlib/crc32.c -+++ b/zlib/crc32.c -@@ -278,7 +278,7 @@ local unsigned long crc32_little(crc, buf, len) - } - - /* ========================================================================= */ --#define DOBIG4 c ^= *++buf4; \ -+#define DOBIG4 c ^= *buf4++; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] - #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 -@@ -300,7 +300,6 @@ local unsigned long crc32_big(crc, buf, len) - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; -- buf4--; - while (len >= 32) { - DOBIG32; - len -= 32; -@@ -309,7 +308,6 @@ local unsigned long crc32_big(crc, buf, len) - DOBIG4; - len -= 4; - } -- buf4++; - buf = (const unsigned char FAR *)buf4; - - if (len) do { diff --git a/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch b/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch index 3d27fe72cc..038a672095 100644 --- a/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch +++ b/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch @@ -1,20 +1,26 @@ +From 5ae38baadd40a996da3d19a147f37e7f1f3355bf Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Tue, 12 Apr 2016 15:51:54 +0100 +Subject: [PATCH] rsync: remove upstream's rebuild logic + Remove the Makefile rules to reinvoke autoconf, they're not out-of-tree safe and generally overcomplicated, and we ensure that autoreconf is invoked if required. Upstream-Status: Inappropriate Signed-off-by: Ross Burton <ross.burton@intel.com> +--- + Makefile.in | 50 -------------------------------------------------- + 1 file changed, 50 deletions(-) + diff --git a/Makefile.in b/Makefile.in -index 151247d..8f3fdb6 100644 +index 31ddc43..41c9a93 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -141,58 +141,6 @@ gen: conf proto.h man +@@ -167,56 +167,6 @@ gen: conf proto.h man gensend: gen - rsync -aivzc $(GENFILES) $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/ + rsync -aic $(GENFILES) $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/ --conf: -- cd $(srcdir) && $(MAKE) -f prepare-source.mak conf -- -aclocal.m4: $(srcdir)/m4/*.m4 - aclocal -I $(srcdir)/m4 - @@ -45,6 +51,7 @@ index 151247d..8f3fdb6 100644 - fi \ - fi - +-.PHONY: reconfigure -reconfigure: configure.sh - ./config.status --recheck - ./config.status @@ -64,6 +71,6 @@ index 151247d..8f3fdb6 100644 - fi \ - fi - - rsync-ssl: $(srcdir)/rsync-ssl.in Makefile - sed 's;\@bindir\@;$(bindir);g' <$(srcdir)/rsync-ssl.in >rsync-ssl - @chmod +x rsync-ssl + stunnel-rsyncd.conf: $(srcdir)/stunnel-rsyncd.conf.in Makefile + sed 's;\@bindir\@;$(bindir);g' <$(srcdir)/stunnel-rsyncd.conf.in >stunnel-rsyncd.conf + diff --git a/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb b/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb index 152ff02a25..ea6b1ce38f 100644 --- a/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb +++ b/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb @@ -3,27 +3,23 @@ HOMEPAGE = "http://rsync.samba.org/" BUGTRACKER = "http://rsync.samba.org/bugzilla.html" SECTION = "console/network" # GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0) +# Includes opennsh and xxhash dynamic link exception LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +LIC_FILES_CHKSUM = "file://COPYING;md5=9e5a4f9b3a253d51520617aa54f8eb26" DEPENDS = "popt" SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \ file://rsyncd.conf \ file://makefile-no-rebuild.patch \ - file://CVE-2016-9840.patch \ - file://CVE-2016-9841.patch \ - file://CVE-2016-9842.patch \ - file://CVE-2016-9843.patch \ -" + " -SRC_URI[md5sum] = "1581a588fde9d89f6bc6201e8129afaf" -SRC_URI[sha256sum] = "55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0" +SRC_URI[sha256sum] = "95f2dd62979b500a99b34c1a6453a0787ada0330e4bec7fcffad37b9062d58d3" # -16548 required for v3.1.3pre1. Already in v3.1.3. CVE_CHECK_WHITELIST += " CVE-2017-16548 " -inherit autotools +inherit autotools-brokensep PACKAGECONFIG ??= "acl attr \ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ @@ -32,12 +28,17 @@ PACKAGECONFIG ??= "acl attr \ PACKAGECONFIG[acl] = "--enable-acl-support,--disable-acl-support,acl," PACKAGECONFIG[attr] = "--enable-xattr-support,--disable-xattr-support,attr," PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[xxhash] = "--enable-xxhash,--disable-xxhash,xxhash" +PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd" # By default, if crosscompiling, rsync disables a number of # capabilities, hardlinking symlinks and special files (i.e. devices) CACHED_CONFIGUREVARS += "rsync_cv_can_hardlink_special=yes rsync_cv_can_hardlink_symlink=yes" EXTRA_OEMAKE = 'STRIP=""' +EXTRA_OECONF = "--disable-simd --disable-md2man --disable-asm" # rsync 3.0 uses configure.sh instead of configure, and # makefile checks the existence of configure.sh diff --git a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am index dcf64584d9..d4498947e8 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am +++ b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am @@ -46,6 +46,7 @@ runtest: else echo "FAIL: sample2 decompress"; fi @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\ else echo "FAIL: sample3 decompress"; fi + ./bzip2-tests/run-tests.sh --tests-dir="$(PWD)/bzip2-tests" install-ptest: sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ diff --git a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb index d58f553a49..70eb67f1f2 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb +++ b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb @@ -4,10 +4,25 @@ Huffman coding. Compression is generally considerably better than that achieved LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors." HOMEPAGE = "https://sourceware.org/bzip2/" SECTION = "console/utils" -LICENSE = "bzip2-1.0.6" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" +LICENSE = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib" +LICENSE_${PN} = "bzip2-1.0.6" +LICENSE_${PN}-dev = "bzip2-1.0.6" +LICENSE_${PN}-dbg = "bzip2-1.0.6" +LICENSE_${PN}-doc = "bzip2-1.0.6" +LICENSE_${PN}-src = "bzip2-1.0.6" +LICENSE_libbz2 = "bzip2-1.0.6" +LICENSE_${PN}-ptest = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib" + +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \ + file://${WORKDIR}/git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \ + file://${WORKDIR}/git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ + file://${WORKDIR}/git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \ + file://${WORKDIR}/git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ + file://${WORKDIR}/git/lbzip2/COPYING;md5=d32239bcb673463ab874e80d47fae504 \ +" SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ + git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \ file://configure.ac;subdir=${BP} \ file://Makefile.am;subdir=${BP} \ file://run-ptest \ @@ -15,6 +30,8 @@ SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" +SRCREV_bzip2-tests = "f9061c030a25de5b6829e1abf373057309c734c0" + UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" PACKAGES =+ "libbz2" @@ -34,12 +51,20 @@ do_configure_prepend () { } do_install_ptest () { + install -d ${D}${PTEST_PATH}/bzip2-tests + cp -r ${WORKDIR}/git/commons-compress ${D}${PTEST_PATH}/bzip2-tests/commons-compress + cp -r ${WORKDIR}/git/dotnetzip ${D}${PTEST_PATH}/bzip2-tests/dotnetzip + cp -r ${WORKDIR}/git/go ${D}${PTEST_PATH}/bzip2-tests/go + cp -r ${WORKDIR}/git/lbzip2 ${D}${PTEST_PATH}/bzip2-tests/lbzip2 + cp -r ${WORKDIR}/git/pyflate ${D}${PTEST_PATH}/bzip2-tests/pyflate + cp ${WORKDIR}/git/README ${D}${PTEST_PATH}/bzip2-tests/ + cp ${WORKDIR}/git/run-tests.sh ${D}${PTEST_PATH}/bzip2-tests/ sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile } FILES_libbz2 = "${libdir}/lib*${SOLIBS}" -RDEPENDS_${PN}-ptest += "make" +RDEPENDS_${PN}-ptest += "make bash" PROVIDES_append_class-native = " bzip2-replacement-native" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/cpio/cpio_2.13.bb b/poky/meta/recipes-extended/cpio/cpio_2.13.bb index 9e35a80f8b..94d86100c7 100644 --- a/poky/meta/recipes-extended/cpio/cpio_2.13.bb +++ b/poky/meta/recipes-extended/cpio/cpio_2.13.bb @@ -23,7 +23,9 @@ do_install () { if [ "${base_bindir}" != "${bindir}" ]; then install -d ${D}${base_bindir}/ mv "${D}${bindir}/cpio" "${D}${base_bindir}/cpio" - rmdir ${D}${bindir}/ + if [ "${sbindir}" != "${bindir}" ]; then + rmdir ${D}${bindir}/ + fi fi # Avoid conflicts with the version from tar @@ -46,4 +48,4 @@ ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio" ALTERNATIVE_PRIORITY[rmt] = "50" ALTERNATIVE_LINK_NAME[rmt] = "${sbindir}/rmt" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch index 877f4f0624..dba4494b91 100644 --- a/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch +++ b/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch @@ -1,4 +1,7 @@ -Define daddr_t if __DADDR_T_TYPE is not defined +From 55e11765af2bdc8adfac87dab1fb2682f7e6c236 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 9 Jun 2020 22:10:28 -0700 +Subject: [PATCH] Define daddr_t if __DADDR_T_TYPE is not defined glibc defined daddr_t but musl does not, ideally it should not be used and simple int type is enough. However, its better to leave glibc behavior @@ -7,9 +10,16 @@ as it is and only define it to int if daddr_t is not provided by libc Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + stress-ng.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/stress-ng.h b/stress-ng.h +index 1a66293..802dc25 100644 --- a/stress-ng.h +++ b/stress-ng.h -@@ -3750,6 +3750,10 @@ struct shim_statx { +@@ -3763,6 +3763,10 @@ struct shim_statx { uint64_t __spare2[14]; }; @@ -19,4 +29,4 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> + /* old ustat struct */ struct shim_ustat { - daddr_t f_tfree; + #if defined(HAVE_DADDR_T) diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.12.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb index c00086c095..f1d91da2b4 100644 --- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.12.bb +++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb @@ -9,7 +9,7 @@ SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ file://no_daddr_t.patch \ " -SRC_URI[sha256sum] = "0ccf437ca1876a3e8a55986c6481697045203a17f5994cb2f5096cd461d18031" +SRC_URI[sha256sum] = "b21436fdbd9dc482a3fd95ae27cccf0097d0f226361ea3785215f7a4ad50136b" DEPENDS = "coreutils-native" diff --git a/poky/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch b/poky/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch deleted file mode 100644 index eb36cd49bb..0000000000 --- a/poky/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 386e2c2fa2ab2e02ef71c268a57205139be329ab Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 31 Aug 2015 07:07:49 +0000 -Subject: [PATCH] Include sys/types.h for id_t definition - -/sudo_util.h:219:14: error: unknown type name 'id_t' - __dso_public id_t sudo_strtoid_v1(const char *str, const char *sep, - char **endp, const char **errstr); - ^ - make[1]: *** [preserve_fds.o] Error 1 - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - include/sudo_util.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/include/sudo_util.h b/include/sudo_util.h -index 89c9f89..ac0855a 100644 ---- a/include/sudo_util.h -+++ b/include/sudo_util.h -@@ -17,6 +17,8 @@ - #ifndef SUDO_UTIL_H - #define SUDO_UTIL_H - -+#include <sys/types.h> -+ - #ifdef HAVE_STDBOOL_H - # include <stdbool.h> - #else --- -2.5.1 - diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.0.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb index 76266537b6..aac505af60 100644 --- a/poky/meta/recipes-extended/sudo/sudo_1.9.0.bb +++ b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb @@ -2,13 +2,11 @@ require sudo.inc SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - file://0001-Include-sys-types.h-for-id_t-definition.patch \ " PAM_SRC_URI = "file://sudo.pam" -SRC_URI[md5sum] = "060b91a6b171cb7ce587222664549b2c" -SRC_URI[sha256sum] = "ab231439c5dfdf4ecbef74f10d5f7e9686c2255c2f3887085b5c5e13281bf95c" +SRC_URI[sha256sum] = "294116cefe10a02773917fc7440d8384b925955bc96a6e0eaa1977c83b34adff" DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" @@ -39,8 +37,8 @@ do_install_append () { chmod 4111 ${D}${bindir}/sudo chmod 0440 ${D}${sysconfdir}/sudoers - # Explicitly remove the /run directory to avoid QA error - rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo + # Explicitly remove the /sudo directory to avoid QA error + rmdir -p --ignore-fail-on-non-empty ${D}/sudo } FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb index 473e1fc0be..2d78bea2c8 100644 --- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb +++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb @@ -4,7 +4,9 @@ BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues" SECTION = "x11/gnome" LICENSE = "LGPL-3.0 | CC-BY-SA-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c" +LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \ + file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \ + file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02" inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/poky/meta/recipes-gnome/gtk+/gtk+3.inc index e1ecf504a0..8d5edb7ee8 100644 --- a/poky/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/poky/meta/recipes-gnome/gtk+/gtk+3.inc @@ -1,3 +1,4 @@ + SUMMARY = "Multi-platform toolkit for creating GUIs" DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites." @@ -31,6 +32,13 @@ do_configure_prepend() { ln -s ${TARGET_PREFIX}libtool libtool #delete a file that will get confused with generated one in ${B} rm -f ${S}/gtk/gtktypefuncs.c + + # These files are generated by wayland-scanner but will race over modification + # time between the copies in the sysroot from wayland-protocols and the copy + # in the source tree. Solve the race by deleting so they need to be regenerated. + # 3.24.22 will not be shipping these files so this can be deleted then: + # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2183 + rm -f ${S}/modules/input/text-input-unstable-v3*.[ch] } EXTRA_OECONF += " \ diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.20.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.21.bb index e5744a4b05..70c0e66db7 100644 --- a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.20.bb +++ b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.21.bb @@ -8,8 +8,8 @@ SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar file://0003-Add-disable-opengl-configure-option.patch \ file://link_fribidi.patch \ " -SRC_URI[md5sum] = "b302acc0a4b42e2980ef18628f9ce951" -SRC_URI[sha256sum] = "2dac69f716e8d04ba7a95091589e2baaec95dcace932cb15839163db479b1df3" +SRC_URI[md5sum] = "95afed6c860d27de827db66434d681da" +SRC_URI[sha256sum] = "aeea6ae7cd35e83dfc7699be716519faefca346c62e784dd1a37d9df94c08f52" S = "${WORKDIR}/gtk+-${PV}" diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch b/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch new file mode 100644 index 0000000000..328984a63f --- /dev/null +++ b/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch @@ -0,0 +1,92 @@ +From bb9765a926588ebfe1eb324fbbe8fc22d419eebe Mon Sep 17 00:00:00 2001 +From: Max Krummenacher <max.krummenacher@toradex.com> +Date: Thu, 25 Jun 2020 11:27:40 +0000 +Subject: [PATCH] configure.ac: don't require eglmesaext.h + +E.g. the Vivante EGL implementation does not provide eglmesaext.h. + +The commit moves the check for header file existence outside of the +check for existence of a egl packageconfig and makes the existence +of eglmesaext.h optional. + +fixes commit fb1acfec ("Fix building against libglvnd-provided EGL headers") +Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> + +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/28] +Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> +--- + configure.ac | 51 ++++++++++++++++++++++++++++++++------------------- + 1 file changed, 32 insertions(+), 19 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b7ba95d..0d1d8de 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1212,22 +1212,6 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"], + PKG_CHECK_EXISTS([egl], + [COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES egl"], + [ +- AC_CHECK_HEADERS( +- [EGL/egl.h], +- [], +- [AC_MSG_ERROR([Unable to locate required EGL headers])]) +- AC_CHECK_HEADERS( +- [EGL/eglext.h], +- [], +- [AC_MSG_ERROR([Unable to locate required EGL headers])], +- [#include <EGL/egl.h>]) +- AC_CHECK_HEADERS( +- [EGL/eglmesaext.h], +- [], +- [AC_MSG_ERROR([Unable to locate required EGL headers])], +- [#include <EGL/egl.h> +-#include <EGL/eglext.h>]) +- + AC_CHECK_LIB(EGL, [eglInitialize], + [COGL_EXTRA_LDFLAGS="$COGL_EXTRA_LDFLAGS -lEGL"], + [AC_MSG_ERROR([Unable to locate required EGL library])]) +@@ -1236,9 +1220,38 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"], + ] + ) + +- COGL_EGL_INCLUDES="#include <EGL/egl.h> +-#include <EGL/eglext.h> +-#include <EGL/eglmesaext.h>" ++dnl Test for the existence of egl headers. ++dnl egl*.h includes eglplatform.h which on __unix__ defaults to a X11 platform. ++dnl In that case AC_CHECK_HEADERS failes if X11 headers are not available. ++dnl Set the usual include guard define and, if the EGL implementation doesn't ++dnl use that guard fall back to USE_OZONE and EGL_NO_X11 platforms which don't ++dnl require additional headers. ++ AC_CHECK_HEADERS( ++ [EGL/egl.h], ++ [COGL_EGL_INCLUDES="#include <EGL/egl.h>"], ++ [AC_MSG_ERROR([Unable to locate required EGL headers])], ++ [#define __egl_h_ ++ #define USE_OZONE ++ #define EGL_NO_X11]) ++ AC_CHECK_HEADERS( ++ [EGL/eglext.h], ++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES ++#include <EGL/eglext.h>"], ++ [AC_MSG_ERROR([Unable to locate required EGL headers])], ++ [#define __eglext_h_ ++ #define USE_OZONE ++ #define EGL_NO_X11 ++$COGL_EGL_INCLUDES]) ++ AC_CHECK_HEADERS( ++ [EGL/eglmesaext.h], ++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES ++#include <EGL/eglmesaext.h>"], ++ [], ++ [#define __eglmesaext_h_ ++#define USE_OZONE ++#define EGL_NO_X11 ++$COGL_EGL_INCLUDES]) ++ + AC_SUBST([COGL_EGL_INCLUDES]) + ]) + +-- +2.20.1 + diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb b/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb index 78f6b0e7a3..b9446fab38 100644 --- a/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb +++ b/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb @@ -1,5 +1,6 @@ require cogl-1.0.inc +SRC_URI += "file://0001-configure.ac-don-t-require-eglmesaext.h.patch" SRC_URI[archive.sha256sum] = "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759" LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84" diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb index 62ad504270..9729fb5dd5 100644 --- a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb +++ b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb @@ -14,8 +14,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ file://0001-libjpeg-turbo-fix-package_qa-error.patch \ " -SRC_URI[md5sum] = "d01d9e0c28c27bc0de9f4e2e8ff49855" -SRC_URI[sha256sum] = "33dd8547efd5543639e890efbf2ef52d5a21df81faf41bb940657af916a23406" +SRC_URI[md5sum] = "3a7dc293918775fc933f81e2bce36464" +SRC_URI[sha256sum] = "16f8f6f2715b3a38ab562a84357c793dd56ae9899ce130563c72cd93d8357b5d" UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/" UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/" diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch index cd35a1f850..91e59d14ed 100644 --- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch +++ b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch @@ -1,4 +1,4 @@ -From df835389699b32bb6610b39972502e323f8e09e5 Mon Sep 17 00:00:00 2001 +From dd1d15c75f6ff8ee96cf1e7b74e582bff3183ef6 Mon Sep 17 00:00:00 2001 From: Alistair Francis <alistair@alistair23.me> Date: Thu, 14 Nov 2019 13:08:31 -0800 Subject: [PATCH] meson.build: make TLS ELF optional @@ -15,10 +15,10 @@ Signed-off-by: Alistair Francis <alistair@alistair23.me> 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 09e3759..a954118 100644 +index 261b588..311436e 100644 --- a/meson.build +++ b/meson.build -@@ -387,7 +387,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat +@@ -392,7 +392,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat endif # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS. @@ -28,10 +28,10 @@ index 09e3759..a954118 100644 endif diff --git a/meson_options.txt b/meson_options.txt -index 626baf3..637ff14 100644 +index ab43150..d7b1555 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -341,6 +341,12 @@ option( +@@ -355,6 +355,12 @@ option( value : true, description : 'Enable direct rendering in GLX and EGL for DRI', ) @@ -42,5 +42,5 @@ index 626baf3..637ff14 100644 + description : 'Enable TLS support in ELF', +) option( - 'I-love-half-baked-turnips', + 'prefer-iris', type : 'boolean', diff --git a/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch b/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch index 901feca556..dacb1ea1c8 100644 --- a/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch +++ b/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch @@ -1,4 +1,4 @@ -From 38a313474e127d61e749866423e708fc86ed9ec5 Mon Sep 17 00:00:00 2001 +From 281a636353666bfdd373c62591e744087e750e89 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Wed, 4 Dec 2019 14:15:28 -0800 Subject: [PATCH] vc4: use intmax_t for formatted output of timespec members @@ -13,13 +13,14 @@ error: format specifies type 'long' but the argument has type 'time_t' (aka 'lon Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2966] Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- src/gallium/drivers/v3d/v3d_bufmgr.c | 4 ++-- src/gallium/drivers/vc4/vc4_bufmgr.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/v3d/v3d_bufmgr.c b/src/gallium/drivers/v3d/v3d_bufmgr.c -index b3e4d053cc0..c514bf00bf0 100644 +index 31a0803..cc2e2af 100644 --- a/src/gallium/drivers/v3d/v3d_bufmgr.c +++ b/src/gallium/drivers/v3d/v3d_bufmgr.c @@ -80,8 +80,8 @@ v3d_bo_dump_stats(struct v3d_screen *screen) @@ -27,27 +28,24 @@ index b3e4d053cc0..c514bf00bf0 100644 struct timespec time; clock_gettime(CLOCK_MONOTONIC, &time); - fprintf(stderr, " now: %ld\n", -- time.tv_sec); +- (long)time.tv_sec); + fprintf(stderr, " now: %jd\n", + (intmax_t)time.tv_sec); } } diff --git a/src/gallium/drivers/vc4/vc4_bufmgr.c b/src/gallium/drivers/vc4/vc4_bufmgr.c -index 5ec360934c0..bf05f6cadd6 100644 +index a786e8e..975d49e 100644 --- a/src/gallium/drivers/vc4/vc4_bufmgr.c +++ b/src/gallium/drivers/vc4/vc4_bufmgr.c -@@ -107,8 +107,8 @@ vc4_bo_dump_stats(struct vc4_screen *screen) +@@ -99,8 +99,8 @@ vc4_bo_dump_stats(struct vc4_screen *screen) struct timespec time; clock_gettime(CLOCK_MONOTONIC, &time); - fprintf(stderr, " now: %ld\n", -- time.tv_sec); +- (long)time.tv_sec); + fprintf(stderr, " now: %jd\n", + (intmax_t)time.tv_sec); } } --- -2.24.0 - diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.7.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb index e50782be1c..e50782be1c 100644 --- a/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.7.bb +++ b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc index 965e12d17e..4fe5f025eb 100644 --- a/poky/meta/recipes-graphics/mesa/mesa.inc +++ b/poky/meta/recipes-graphics/mesa/mesa.inc @@ -23,8 +23,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ " -SRC_URI[md5sum] = "609cb7664204e031d4c65c602c652a28" -SRC_URI[sha256sum] = "fe6e258fe772c3cd2ac01741bf7408058c3ac02d66acff9a6e669bd72e3ea178" +SRC_URI[sha256sum] = "283dff72814c8a80ce1ff8271e3f055895d26f4da3f4362acc49193e635780cb" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)" diff --git a/poky/meta/recipes-graphics/mesa/mesa_20.0.7.bb b/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb index d17d9eb04b..96e8aa38d6 100644 --- a/poky/meta/recipes-graphics/mesa/mesa_20.0.7.bb +++ b/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb @@ -1 +1,2 @@ require ${BPN}.inc + diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb index 47950c8633..e531ffc408 100644 --- a/poky/meta/recipes-graphics/piglit/piglit_git.bb +++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb @@ -10,7 +10,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "5cc4fd749375f37e8e8725a86072d8cff7173b98" +SRCREV = "7d76fca56e8ca72ab6809f6f0234b5971af5690a" # (when PV goes above 1.0 remove the trailing r) PV = "1.0+gitr${SRCPV}" diff --git a/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb b/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb index c9e28d9bba..301ea1c243 100644 --- a/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb +++ b/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb @@ -19,4 +19,7 @@ SRC_URI[sha256sum] = "de9b8f617b68a70f6caf87da01fcf0ebd2b75690cdcba9c921d0ef54fa EXTRA_OECONF = "ac_cv_path_MCOOKIE=${bindir}/mcookie" +PACKAGECONFIG ??= "rxvt" +PACKAGECONFIG[rxvt] = "--with-xterm=rxvt,,,rxvt-unicode" + RDEPENDS_${PN} += "util-linux-mcookie" diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200519.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb index 18f44bccae..392e03a10a 100644 --- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200519.bb +++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb @@ -126,7 +126,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ - file://WHENCE;md5=c15cee50b1a59d27106a37c2929d5291 \ + file://WHENCE;md5=d373d30188c38dabffec0d3cc87abbfd \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -198,7 +198,7 @@ PE = "1" SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "584c49c58291136b966ceffb0a456a672c23d4d759bab8bf86cbbe28061e415e" +SRC_URI[sha256sum] = "962d3ae197d226c8259f9cc7746f7ef12a9d23787cd56bd27302021ba6339722" inherit allarch diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb index 8a61b22761..175836ef94 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' -LINUX_VERSION ?= "5.7-rc+" +LINUX_VERSION ?= "5.8-rc+" LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index a9213c2439..a4b593b96d 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "1afad41c91e13f957bbe61fa7fdc05a77e84d489" -SRCREV_meta ?= "aafb8f095e97013d6e55b09ed150369cbe0c6476" +SRCREV_machine ?= "6415a4e7c405526f97049ede833f52127a5ce7a1" +SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.4.43" +LINUX_VERSION ?= "5.4.50" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb index aab53bed6a..0622d33835 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.4.43" +LINUX_VERSION ?= "5.4.50" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "c3864bf2906c5075305bf675c27788505ea93047" -SRCREV_machine ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_meta ?= "aafb8f095e97013d6e55b09ed150369cbe0c6476" +SRCREV_machine_qemuarm ?= "1a8a14e45f01cfee926c5b35d2d67e6f1a7eebfc" +SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb index 01795e6166..2476b3502c 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base" KBRANCH_qemux86-64 ?= "v5.4/standard/base" KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "6c628db39bf48f7dd6cd95ae826bcaa18a56df1d" -SRCREV_machine_qemuarm64 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemumips ?= "c0cd2937ae195344ece04663b30b2049427b3c57" -SRCREV_machine_qemuppc ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemuriscv64 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemux86 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemux86-64 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemumips64 ?= "6254ff1d776b75bc3d9c2c66c083fbc622091cd4" -SRCREV_machine ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_meta ?= "aafb8f095e97013d6e55b09ed150369cbe0c6476" +SRCREV_machine_qemuarm ?= "99743105f331e90852ccb9e72ce26134dbcafec6" +SRCREV_machine_qemuarm64 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemumips ?= "886870e5abaeaaf753fb50a1e5be56336c44c642" +SRCREV_machine_qemuppc ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemuriscv64 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemux86 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemux86-64 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemumips64 ?= "7548abbb409eeef6f0575eed25231090f902559e" +SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" # remap qemuarm to qemuarma15 for the 5.4 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.43" +LINUX_VERSION ?= "5.4.50" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb index 8d3fb475c0..c0df0cab33 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb +++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb @@ -32,11 +32,11 @@ python do_package_prepend() { BBCLASSEXTEND = "devupstream:target" LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128" DEFAULT_PREFERENCE_class-devupstream = "-1" -SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.11 \ +SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.12 \ file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ " -SRCREV_class-devupstream = "17c413953603f063f2a9d6c3788bec914ce6f955" -PV_class-devupstream = "2.11.2+git${SRCPV}" +SRCREV_class-devupstream = "11441f8f17f7825f529e2f6c54d3605771709260" +PV_class-devupstream = "2.12.1+git${SRCPV}" S_class-devupstream = "${WORKDIR}/git" SRCREV_FORMAT ?= "lttng_git" diff --git a/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb index 0f3df5577b..881b7db92e 100644 --- a/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb +++ b/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb @@ -24,7 +24,7 @@ do_install () { PACKAGE_WRITE_DEPS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}" pkg_postinst_${PN} () { - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if type systemctl >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPTS="--root=$D" fi diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc index 116e83fe0f..4ec0703f2b 100644 --- a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc +++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc @@ -1,7 +1,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "044a0640985ef007c0b2fb6eaf660d9d51800cda" -PV = "4.2" +SRCREV = "c9c23c987d819d07c6b96b54f8e03188fecd9e46" +PV = "4.3" SRC_URI = "git://sourceware.org/git/systemtap.git \ file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \ diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb index 9a4082ff94..1eb56f4053 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.2.bb +++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb @@ -8,8 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ " SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[md5sum] = "82cdc23a5233d5ed319d2cbc89af5ca5" -SRC_URI[sha256sum] = "d8e853d8805574777bbe40937812ad1419c9ea7210e176f0def3e6ed255ab3ec" +SRC_URI[sha256sum] = "1244585515fbebce7d0e53656c1fb614f99accb8413115ce3efb9a9309c4c892" inherit autotools pkgconfig diff --git a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb index 2901794cb9..fd949be8a0 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.2.bb +++ b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb @@ -5,7 +5,7 @@ LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[sha256sum] = "b472d6b567c78173bd69543d9cffc9e379c80eb763c3afc8d5b24d5610d19425" +SRC_URI[sha256sum] = "833f99b2cbda34e0cfef867ef1d2e6a74fe276bb7fc525a573be32077f629dff" inherit allarch diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb index 1a524d49b2..19eeabff78 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.2.bb +++ b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb @@ -5,7 +5,7 @@ LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[sha256sum] = "7ebfd929bc85a51f16fa3c8c4db13faa2ea6ff2b2266fc36d6198bdafe73c40c" +SRC_URI[sha256sum] = "1bc24da04bb27a75e323c9f0fb03e44705b6bb8a8baf255b94b41d457d590d00" inherit allarch diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb index 048fef68a5..048fef68a5 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.2.bb +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc index 8bbc5d3ef3..b523a5a832 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc @@ -21,8 +21,7 @@ PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2" -SRC_URI[md5sum] = "00612234ff4722c8f7f8f7a83ff9bc63" -SRC_URI[sha256sum] = "44807bd578c5f6df6e91a11b8d37e546424a5a1ea8d8e659ee359fe01730e4f3" +SRC_URI[sha256sum] = "ff19ae48c22938de7a491bdb39db74a2eee2546013f39bf1a86185e426f921aa" # On build machines with python-docutils (not python3-docutils !!) installed # rst2man (not rst2man.py) is detected and compile fails with diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb index ff8945e5c7..3430288da4 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.2.bb +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb @@ -1 +1,2 @@ require alsa-utils.inc + diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb index 2b0c38d782..b4cf278cb2 100644 --- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb +++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb @@ -57,6 +57,7 @@ PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" # features to support PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec," PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2" PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-aac,fdk-aac" PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" diff --git a/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb index cc7a7e78e2..e23d23d9ca 100644 --- a/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb +++ b/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb @@ -15,6 +15,7 @@ S = "${WORKDIR}/git" inherit meson pkgconfig features_check +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)" ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb index 1e530519f3..a0f3b5d9cd 100644 --- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb +++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb @@ -17,7 +17,7 @@ SRC_URI = "git://git.tartarus.org/simon/puzzles.git \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "66b9e8c7de0eecb3d85d9a1766fab1082848448b" +SRCREV = "9aa7b7cdfb2bcd200f45941a58d6ae698882a2d4" PE = "2" PV = "0.0+git${SRCPV}" diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc index b568f04580..b064a63caa 100644 --- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc +++ b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc @@ -30,6 +30,8 @@ EXTRA_OECONF = "--enable-xim \ --enable-combining --disable-perl \ --with-x=${STAGING_DIR_HOST}${prefix}" +EXTRA_OECONF_append_libc-musl = " --disable-wtmp" + PACKAGECONFIG ??= "" PACKAGECONFIG[startup] = "--enable-startup-notification,--disable-startup-notification,startup-notification," diff --git a/poky/meta/recipes-support/curl/curl_7.71.0.bb b/poky/meta/recipes-support/curl/curl_7.71.1.bb index c1abe01380..f028f1fdd5 100644 --- a/poky/meta/recipes-support/curl/curl_7.71.0.bb +++ b/poky/meta/recipes-support/curl/curl_7.71.1.bb @@ -9,7 +9,7 @@ SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ file://0001-replace-krb5-config-with-pkg-config.patch \ " -SRC_URI[sha256sum] = "600f00ac2481a89548a4141ddf983fd9386165e1960bac91d0a1c81dca5dd341" +SRC_URI[sha256sum] = "9d52a4d80554f9b0d460ea2be5d7be99897a1a9f681ffafe739169afd6b4f224" CVE_PRODUCT = "curl libcurl" inherit autotools pkgconfig binconfig multilib_header diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_147.bb b/poky/meta/recipes-support/diffoscope/diffoscope_150.bb index 3db38fa324..58bd60a2c2 100644 --- a/poky/meta/recipes-support/diffoscope/diffoscope_147.bb +++ b/poky/meta/recipes-support/diffoscope/diffoscope_150.bb @@ -7,7 +7,7 @@ PYPI_PACKAGE = "diffoscope" inherit pypi setuptools3 -SRC_URI[sha256sum] = "5b5fdaa4d900c891b319e4b9a006eb16824a0b61fdbe15e75acbbe35602e2da6" +SRC_URI[sha256sum] = "0b9e4ae401fe4cbb8ce89b0bcabe608581d0ed53b91a28f18337179c7494af57" RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic" diff --git a/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb b/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb index 6f9868ffea..9d02f5c794 100644 --- a/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb +++ b/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb @@ -5,7 +5,7 @@ BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" -SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http" +SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http;branch=main;" SRCREV = "a36019e5014bff251f83d522ddcfebaecf52afd3" # inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which diff --git a/poky/meta/recipes-support/libcheck/libcheck_0.14.0.bb b/poky/meta/recipes-support/libcheck/libcheck_0.15.0.bb index a88f009cdb..177c0edc8f 100644 --- a/poky/meta/recipes-support/libcheck/libcheck_0.14.0.bb +++ b/poky/meta/recipes-support/libcheck/libcheck_0.15.0.bb @@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1" SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \ file://not-echo-compiler-info-to-check_stdint.h.patch" -SRC_URI[md5sum] = "270e82a445be6026040267a5e11cc94b" -SRC_URI[sha256sum] = "bd0f0ca1be65b70238b32f8e9fe5d36dc2fbf7a759b7edf28e75323a7d74f30b" +SRC_URI[sha256sum] = "aea2e3c68fa6e1e92378e744b1c0db350ccda4b6bd0d19530d0ae185b3d1ac60" UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/" S = "${WORKDIR}/check-${PV}" diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch new file mode 100644 index 0000000000..20610bee5d --- /dev/null +++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch @@ -0,0 +1,43 @@ +From 6efe006e99a7e739afbf7fe8937445c82630fc8f Mon Sep 17 00:00:00 2001 +From: David Michael <fedora.dm0@gmail.com> +Date: Mon, 1 Jun 2020 10:24:53 -0400 +Subject: [PATCH] build: Fix cross-compiling into a separate build dir. + +* configure.ac: Create the src directory before writing into it. +* src/Makefile.am (EXTRA_DIST): Add gen-lock-obj.sh. + +-- + +Upstream-Status: Backport +Signed-off-by: David Michael <fedora.dm0@gmail.com> +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + configure.ac | 1 + + src/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index def8bba..8c0d845 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -598,6 +598,7 @@ if test x$cross_compiling = xyes; then + case $host in + *-*-linux*) + lock_obj_h_generated=yes ++ mkdir src + LOCK_ABI_VERSION=1 host=$host host_alias=$host_alias \ + CC=$CC OBJDUMP=$host_alias-objdump \ + ac_ext=$ac_ext ac_objext=$ac_objext \ +diff --git a/src/Makefile.am b/src/Makefile.am +index 2fb83c0..d773877 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -102,7 +102,7 @@ EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \ + gpg-error.vers gpg-error.def.in \ + versioninfo.rc.in gpg-error.w32-manifest.in \ + gpg-error-config-test.sh gpg-error.pc.in \ +- $(lock_obj_pub) ++ gen-lock-obj.sh $(lock_obj_pub) + + BUILT_SOURCES = $(srcdir)/err-sources.h $(srcdir)/err-codes.h \ + code-to-errno.h code-from-errno.h \ diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/0005-src-gen-lock-obj.sh-add-a-file.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/0005-src-gen-lock-obj.sh-add-a-file.patch new file mode 100644 index 0000000000..e6f6c09bac --- /dev/null +++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/0005-src-gen-lock-obj.sh-add-a-file.patch @@ -0,0 +1,134 @@ +From fcb414abb62223e66dba413d0ca86eab3ea5bbc3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Sun, 21 Jun 2020 13:54:47 +0000 +Subject: [PATCH] src-gen-lock-obj.sh: add a file + +This is erroneously missing from the tarball; it will show +up in the next release tarball, as upstream has fixed the +packaging in master. + +Upstream-Status: Inappropriate +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + src/gen-lock-obj.sh | 112 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 112 insertions(+) + create mode 100755 src/gen-lock-obj.sh + +diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh +new file mode 100755 +index 0000000..13858cf +--- /dev/null ++++ b/src/gen-lock-obj.sh +@@ -0,0 +1,112 @@ ++#! /bin/sh ++# ++# gen-lock-obj.sh - Build tool to construct the lock object. ++# ++# Copyright (C) 2020 g10 Code GmbH ++# ++# This file is part of libgpg-error. ++# ++# libgpg-error is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public License ++# as published by the Free Software Foundation; either version 2.1 of ++# the License, or (at your option) any later version. ++# ++# libgpg-error is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with this program; if not, see <https://www.gnu.org/licenses/>. ++# ++ ++# ++# Following variables should be defined to invoke this script ++# ++# CC ++# OBJDUMP ++# AWK ++# ac_ext ++# ac_object ++# host ++# LOCK_ABI_VERSION ++# ++# An example: ++# ++# LOCK_ABI_VERSION=1 host=x86_64-pc-linux-gnu host_alias=x86_64-linux-gnu \ ++# CC=$host_alias-gcc OBJDUMP=$host_alias-objdump ac_ext=c ac_objext=o \ ++# AWK=gawk ./gen-lock-obj.sh ++# ++ ++AWK_VERSION_OUTPUT=$($AWK 'BEGIN { print PROCINFO["version"] }') ++if test -n "$AWK_VERSION_OUTPUT"; then ++ # It's GNU awk, which supports PROCINFO. ++ AWK_OPTION=--non-decimal-data ++fi ++ ++cat <<'EOF' >conftest.$ac_ext ++#include <pthread.h> ++pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; ++EOF ++ ++if $CC -c conftest.$ac_ext; then : ++ ac_mtx_size=$($OBJDUMP -j .bss -t conftest.$ac_objext \ ++ | $AWK $AWK_OPTION ' ++/mtx$/ { mtx_size = int("0x" $5) } ++END { print mtx_size }') ++else ++ echo "Can't determine mutex size" ++ exit 1 ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++cat <<EOF ++## lock-obj-pub.$host.h ++## File created by gen-lock-obj.sh - DO NOT EDIT ++## To be included by mkheader into gpg-error.h ++ ++typedef struct ++{ ++ long _vers; ++ union { ++ volatile char _priv[$ac_mtx_size]; ++ long _x_align; ++ long *_xp_align; ++ } u; ++} gpgrt_lock_t; ++ ++EOF ++ ++# FIXME: Support different alignment conditions of: ++# ++# USE_16BYTE_ALIGNMENT ++# USE_DOUBLE_FOR_ALIGNMENT ++# USE_LONG_DOUBLE_FOR_ALIGNMENT ++# ++ ++echo -n "#define GPGRT_LOCK_INITIALIZER {$LOCK_ABI_VERSION,{{" ++ ++i=0 ++while test "$i" -lt $ac_mtx_size; do ++ if test "$i" -ne 0 -a "$(( $i % 8 ))" -eq 0; then ++ echo ' \' ++ echo -n " " ++ fi ++ echo -n '0' ++ if test "$i" -lt $(($ac_mtx_size - 1)); then ++ echo -n ',' ++ fi ++ i=$(( i + 1 )) ++done ++ ++cat <<'EOF' ++}}} ++## ++## Local Variables: ++## mode: c ++## buffer-read-only: t ++## End: ++## ++EOF ++ ++exit 0 diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.37.bb b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.37.bb deleted file mode 100644 index b9a2b01c20..0000000000 --- a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.37.bb +++ /dev/null @@ -1,72 +0,0 @@ -SUMMARY = "Small library that defines common error values for all GnuPG components" -HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/" -BUGTRACKER = "https://bugs.g10code.com/gnupg/index" - -LICENSE = "GPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://src/gpg-error.h.in;beginline=2;endline=18;md5=cd91e3ad1265a0c268efad541a39345e \ - file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7" - - -SECTION = "libs" - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \ - file://pkgconfig.patch \ - file://0001-Do-not-fail-when-testing-config-scripts.patch \ - " - -SRC_URI[md5sum] = "729f22d917494fdc4b54fce5aa6547c7" -SRC_URI[sha256sum] = "b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763" - -BINCONFIG = "${bindir}/gpg-error-config" - -inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script - -MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config" - -CPPFLAGS += "-P" -do_compile_prepend() { - TARGET_FILE=linux-gnu - if [ ${TARGET_OS} = "mingw32" ]; then - # There are no arch specific syscfg files for mingw32 - TARGET_FILE= - elif [ ${TARGET_ARCH} = "arc" ]; then - # ARC syscfg file is automatically aliased to i686-pc-linux-gnu - TARGET_FILE= - elif [ ${TARGET_OS} != "linux" ]; then - TARGET_FILE=${TARGET_OS} - fi - - case ${TARGET_ARCH} in - aarch64_be) TUPLE=aarch64-unknown-linux-gnu ;; - arm) TUPLE=arm-unknown-linux-gnueabi ;; - armeb) TUPLE=arm-unknown-linux-gnueabi ;; - i586|i686) TUPLE=i686-unknown-linux-gnu;; - mips64*) TUPLE=mips64el-unknown-linux-gnuabi64 ;; - mips*el) TUPLE=mipsel-unknown-linux-gnu ;; - mips*) TUPLE=mips-unknown-linux-gnu ;; - x86_64) TUPLE=x86_64-unknown-linux-gnu ;; - ppc) TUPLE=powerpc-unknown-linux-gnu ;; - ppc64) TUPLE=powerpc64-unknown-linux-gnu ;; - ppc64le) TUPLE=powerpc64le-unknown-linux-gnu ;; - *) TUPLE=${TARGET_ARCH}-unknown-linux-gnu ;; - esac - - if [ -n "$TARGET_FILE" ]; then - cp ${S}/src/syscfg/lock-obj-pub.$TUPLE.h \ - ${S}/src/syscfg/lock-obj-pub.$TARGET_FILE.h - fi -} - -do_install_append() { - # we don't have common lisp in OE - rm -rf "${D}${datadir}/common-lisp/" - oe_multilib_header gpg-error.h gpgrt.h -} - -FILES_${PN}-dev += "${bindir}/gpg-error" -FILES_${PN}-doc += "${datadir}/libgpg-error/errorref.txt" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.38.bb b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.38.bb new file mode 100644 index 0000000000..9a3ec9b5bd --- /dev/null +++ b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.38.bb @@ -0,0 +1,42 @@ +SUMMARY = "Small library that defines common error values for all GnuPG components" +HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/" +BUGTRACKER = "https://bugs.g10code.com/gnupg/index" + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://src/gpg-error.h.in;beginline=2;endline=18;md5=d82591bc81561f617da71e00ff4a9d79 \ + file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \ + " + + +SECTION = "libs" + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \ + file://pkgconfig.patch \ + file://0001-Do-not-fail-when-testing-config-scripts.patch \ + file://0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch \ + file://0005-src-gen-lock-obj.sh-add-a-file.patch \ + " + +SRC_URI[sha256sum] = "d8988275aa69d7149f931c10442e9e34c0242674249e171592b430ff7b3afd02" + +BINCONFIG = "${bindir}/gpg-error-config" + +inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script + +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config" + +CPPFLAGS += "-P" + +do_install_append() { + # we don't have common lisp in OE + rm -rf "${D}${datadir}/common-lisp/" + oe_multilib_header gpg-error.h gpgrt.h +} + +FILES_${PN}-dev += "${bindir}/gpg-error" +FILES_${PN}-doc += "${datadir}/libgpg-error/errorref.txt" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libnl/libnl_3.5.0.bb b/poky/meta/recipes-support/libnl/libnl_3.5.0.bb index c0609c4d90..9d0e1441a9 100644 --- a/poky/meta/recipes-support/libnl/libnl_3.5.0.bb +++ b/poky/meta/recipes-support/libnl/libnl_3.5.0.bb @@ -40,3 +40,5 @@ FILES_${PN}-route = "${libdir}/libnl-route-3.so.*" FILES_${PN}-xfrm = "${libdir}/libnl-xfrm-3.so.*" RREPLACES_${PN}-genl = "libnl-genl2" RCONFLICTS_${PN}-genl = "libnl-genl2" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/scripts/lib/checklayer/__init__.py b/poky/scripts/lib/checklayer/__init__.py index 1138000275..f625d59896 100644 --- a/poky/scripts/lib/checklayer/__init__.py +++ b/poky/scripts/lib/checklayer/__init__.py @@ -59,9 +59,14 @@ def _get_layer_collections(layer_path, lconf=None, data=None): pattern = ldata.getVar('BBFILE_PATTERN_%s' % name) depends = ldata.getVar('LAYERDEPENDS_%s' % name) compat = ldata.getVar('LAYERSERIES_COMPAT_%s' % name) + try: + depDict = bb.utils.explode_dep_versions2(depends or "") + except bb.utils.VersionStringException as vse: + bb.fatal('Error parsing LAYERDEPENDS_%s: %s' % (name, str(vse))) + collections[name]['priority'] = priority collections[name]['pattern'] = pattern - collections[name]['depends'] = depends + collections[name]['depends'] = ' '.join(depDict.keys()) collections[name]['compat'] = compat return collections diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py index ebe72282bb..0c1de8cdc7 100644 --- a/poky/scripts/lib/devtool/upgrade.py +++ b/poky/scripts/lib/devtool/upgrade.py @@ -550,12 +550,12 @@ def upgrade(args, config, basepath, workspace): try: logger.info('Extracting current version source...') rev1, srcsubdir1 = standard._extract_source(srctree, False, 'devtool-orig', False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) - old_licenses = _extract_licenses(srctree, rd.getVar('LIC_FILES_CHKSUM')) + old_licenses = _extract_licenses(srctree, (rd.getVar('LIC_FILES_CHKSUM') or "")) logger.info('Extracting upgraded version source...') rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch, args.srcrev, args.srcbranch, args.branch, args.keep_temp, tinfoil, rd) - new_licenses = _extract_licenses(srctree, rd.getVar('LIC_FILES_CHKSUM')) + new_licenses = _extract_licenses(srctree, (rd.getVar('LIC_FILES_CHKSUM') or "")) license_diff = _generate_license_diff(old_licenses, new_licenses) rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses, srctree, args.keep_failure) except bb.process.CmdError as e: diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu index 85f323a712..f2168c18a3 100755 --- a/poky/scripts/runqemu +++ b/poky/scripts/runqemu @@ -1241,7 +1241,9 @@ class BaseConfig(object): vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format) # All branches above set vm_drive. - self.rootfs_options = '%s -no-reboot' % vm_drive + self.rootfs_options = vm_drive + if not self.fstype in self.vmtypes: + self.rootfs_options += ' -no-reboot' self.kernel_cmdline = 'root=%s rw' % (self.get('QB_KERNEL_ROOT')) if self.fstype == 'nfs': |