@@ -80,20 +80,23 @@ def _make_commit_msg(group):
versions = list(dict.fromkeys(_get_version(p) for p in group['pkgs']))
return "{}: upgrade {}".format(pn, ",".join(versions))
-def _get_changelog(pn, workdir):
- """Read the changelog generated by devtool upgrade and copy it to workdir.
- Returns the changelog text or None."""
- changelog_path = os.path.join(os.environ.get('BUILDDIR', ''),
- 'workspace', 'changelogs', '{}.txt'.format(pn))
+def _get_changelog(pkg_ctx, workdir):
+ """Copy the changelog generated by devtool upgrade to workdir and
+ store the changelog data in pkg_ctx."""
+ pn = pkg_ctx['PN']
+ base_path = os.path.join(os.environ.get('BUILDDIR', ''),
+ 'workspace', 'changelogs', pn)
+ changelog_path = base_path + '.txt'
if os.path.isfile(changelog_path):
try:
with open(changelog_path, 'r', encoding='utf-8', errors='replace') as f:
text = f.read()
shutil.copy2(changelog_path, os.path.join(workdir, '{}-changelog.txt'.format(pn)))
- return text
except OSError as e:
W('Failed to copy changelog for {}: {}'.format(pn, e))
- return None
+ return
+ if text:
+ pkg_ctx['changelog_text'] = text
def _append_changelog_to_commit_msg(group, opts):
@@ -119,9 +122,7 @@ def _devtool_upgrade(devtool, bb, git, opts, pkg_ctx, workdir):
devtool_output = devtool.upgrade(pkg_ctx['PN'], pkg_ctx['NPV'], pkg_ctx['NSRCREV'])
D(" 'devtool upgrade' printed:\n%s" %(devtool_output))
# Copy changelog before checking for conflicts — it's useful even on failure
- changelog_text = _get_changelog(pkg_ctx['PN'], workdir)
- if changelog_text:
- pkg_ctx['changelog_text'] = changelog_text
+ _get_changelog(pkg_ctx, workdir)
# If devtool failed to rebase patches, it does not fail, but we should
if 'conflict' in devtool_output:
raise DevtoolError("Running 'devtool upgrade' for recipe %s failed." %(pkg_ctx['PN']), devtool_output)