* [PATCH 0/3] Fix issue with unpopulated buildhistory depends files
@ 2014-03-05 12:39 Laurentiu Palcu
2014-03-05 12:39 ` [PATCH 1/3] package_manager.py: make list_installed() list pkg dependencies too Laurentiu Palcu
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Laurentiu Palcu @ 2014-03-05 12:39 UTC (permalink / raw)
To: openembedded-core
The following changes since commit f03955041d0e44d377ca1c4def630982f24f1e8b:
Revert "ncurses: use ln -r to generate relative symlink" (2014-03-03 15:55:27 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib lpalcu/b5904_buildhistory_depends_empty
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/b5904_buildhistory_depends_empty
Laurentiu Palcu (3):
package_manager.py: make list_installed() list pkg dependencies too
buildhistory.bbclass: Fix dependency files creation
populate_sdk_*.bbclass: remove old rootfs_list_installed_depends()
meta/classes/buildhistory.bbclass | 9 ++++++++-
meta/classes/populate_sdk_deb.bbclass | 5 -----
meta/classes/populate_sdk_ipk.bbclass | 4 ----
meta/classes/populate_sdk_rpm.bbclass | 4 ----
meta/lib/oe/package_manager.py | 31 +++++++++++++++++++++++++++++++
5 files changed, 39 insertions(+), 14 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH 1/3] package_manager.py: make list_installed() list pkg dependencies too 2014-03-05 12:39 [PATCH 0/3] Fix issue with unpopulated buildhistory depends files Laurentiu Palcu @ 2014-03-05 12:39 ` Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 3/3] populate_sdk_*.bbclass: remove old rootfs_list_installed_depends() Laurentiu Palcu 2 siblings, 0 replies; 12+ messages in thread From: Laurentiu Palcu @ 2014-03-05 12:39 UTC (permalink / raw) To: openembedded-core list_installed("deps") will now return the package dependencies. Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> --- meta/lib/oe/package_manager.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index ff4f1de..f2c88bb 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -765,7 +765,22 @@ class RpmPM(PackageManager): self.image_rpmlib, symlinks=True) + def _list_pkg_deps(self): + cmd = [bb.utils.which(os.getenv('PATH'), "rpmresolve"), + "-t", self.image_rpmlib] + + try: + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip() + except subprocess.CalledProcessError as e: + bb.fatal("Cannot get the package dependencies. Command '%s' " + "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output)) + + return output + def list_installed(self, format=None): + if format == "deps": + return self._list_pkg_deps() + cmd = self.rpm_cmd + ' --root ' + self.target_rootfs cmd += ' -D "_dbpath /var/lib/rpm" -qa' cmd += " --qf '[%{NAME} %{ARCH} %{VERSION} %{PACKAGEORIGIN}\n]'" @@ -1131,6 +1146,9 @@ class OpkgPM(PackageManager): elif format == "ver": cmd = "%s %s status | %s -v" % \ (self.opkg_cmd, self.opkg_args, opkg_query_cmd) + elif format == "deps": + cmd = "%s %s status | %s" % \ + (self.opkg_cmd, self.opkg_args, opkg_query_cmd) else: cmd = "%s %s list_installed | cut -d' ' -f1" % \ (self.opkg_cmd, self.opkg_args) @@ -1494,6 +1512,8 @@ class DpkgPM(PackageManager): cmd.append("-f=${Package} ${Package}_${Version}_${Architecture}.deb ${PackageArch}\n") elif format == "ver": cmd.append("-f=${Package} ${PackageArch} ${Version}\n") + elif format == "deps": + cmd.append("-f=Package: ${Package}\nDepends: ${Depends}\nRecommends: ${Recommends}\n\n") else: cmd.append("-f=${Package}\n") @@ -1514,6 +1534,17 @@ class DpkgPM(PackageManager): tmp_output += "%s %s %s\n" % (pkg, pkg_file, pkg_arch) output = tmp_output + elif format == "deps": + opkg_query_cmd = bb.utils.which(os.getenv('PATH'), "opkg-query-helper.py") + + try: + output = subprocess.check_output("echo -e '%s' | %s" % + (output, opkg_query_cmd), + stderr=subprocess.STDOUT, + shell=True) + except subprocess.CalledProcessError as e: + bb.fatal("Cannot compute packages dependencies. Command '%s' " + "returned %d:\n%s" % (e.cmd, e.returncode, e.output)) return output -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-05 12:39 [PATCH 0/3] Fix issue with unpopulated buildhistory depends files Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 1/3] package_manager.py: make list_installed() list pkg dependencies too Laurentiu Palcu @ 2014-03-05 12:39 ` Laurentiu Palcu 2014-03-06 21:55 ` Richard Purdie 2014-03-05 12:39 ` [PATCH 3/3] populate_sdk_*.bbclass: remove old rootfs_list_installed_depends() Laurentiu Palcu 2 siblings, 1 reply; 12+ messages in thread From: Laurentiu Palcu @ 2014-03-05 12:39 UTC (permalink / raw) To: openembedded-core Call the new python routines. [YOCTO #5904] Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> --- meta/classes/buildhistory.bbclass | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index ef4135b..01b0082 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass @@ -319,6 +319,12 @@ python buildhistory_list_installed() { with open(pkgs_list_file, 'w') as pkgs_list: pkgs_list.write(list_installed_packages(d, 'file')) + + pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), + "bh_installed_pkgs_deps.txt") + + with open(pkgs_deps_file, 'w') as pkgs_deps: + pkgs_deps.write(list_installed_packages(d, 'deps')) } @@ -338,7 +344,8 @@ buildhistory_get_installed() { # Produce dependency graph # First, quote each name to handle characters that cause issues for dot - rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp + cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ + rm ${WORKDIR}/bh_installed_pkgs_deps.txt # Change delimiter from pipe to -> and set style for recommend lines sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp # Add header, sorted and de-duped contents and footer and then delete the temp file -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-05 12:39 ` [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation Laurentiu Palcu @ 2014-03-06 21:55 ` Richard Purdie 2014-03-07 6:35 ` Laurentiu Palcu 0 siblings, 1 reply; 12+ messages in thread From: Richard Purdie @ 2014-03-06 21:55 UTC (permalink / raw) To: Laurentiu Palcu; +Cc: openembedded-core On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: > Call the new python routines. > > [YOCTO #5904] > > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> > --- > meta/classes/buildhistory.bbclass | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass > index ef4135b..01b0082 100644 > --- a/meta/classes/buildhistory.bbclass > +++ b/meta/classes/buildhistory.bbclass > @@ -319,6 +319,12 @@ python buildhistory_list_installed() { > > with open(pkgs_list_file, 'w') as pkgs_list: > pkgs_list.write(list_installed_packages(d, 'file')) > + > + pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > + "bh_installed_pkgs_deps.txt") > + > + with open(pkgs_deps_file, 'w') as pkgs_deps: > + pkgs_deps.write(list_installed_packages(d, 'deps')) > } > > > @@ -338,7 +344,8 @@ buildhistory_get_installed() { > > # Produce dependency graph > # First, quote each name to handle characters that cause issues for dot > - rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp > + cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ > + rm ${WORKDIR}/bh_installed_pkgs_deps.txt > # Change delimiter from pipe to -> and set style for recommend lines > sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp > # Add header, sorted and de-duped contents and footer and then delete the temp file With this patch, a bitbake core-image-minimal -c populate_sdk resulted in: ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: The stack trace of python calls that resulted in this exception/failure was: File: 'buildhistory_list_installed', lineno: 18, function: <module> 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) 0016: 0017: *** 0018:buildhistory_list_installed(d) 0019: File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), 0006: "bh_installed_pkgs.txt") 0007: 0008: with open(pkgs_list_file, 'w') as pkgs_list: *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) 0010: 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), 0012: "bh_installed_pkgs_deps.txt") 0013: File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages 0717: if img_type == "rpm": 0718: return RpmPM(d, 0719: rootfs_dir, 0720: d.getVar('TARGET_VENDOR', True) *** 0721: ).list_installed(format) 0722: elif img_type == "ipk": 0723: return OpkgPM(d, 0724: rootfs_dir, 0725: d.getVar("IPKGCONF_TARGET", True), File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed 0850: pkg = line.split()[0] 0851: arch = line.split()[1] 0852: ver = line.split()[2] 0853: pkgorigin = line.split()[3] *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) 0855: 0856: if format == "arch": 0857: output.append('%s %s' % (new_pkg, new_arch)) 0858: elif format == "file": File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe 0472: 0473: if found == 1 and fixed_arch == fixed_cmp_arch: 0474: break 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) *** 0476: return new_pkg, new_arch 0477: 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): 0479: for arch in feed_archs: 0480: arch = arch.replace('-', '_') Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment ERROR: Function failed: buildhistory_list_installed ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-06 21:55 ` Richard Purdie @ 2014-03-07 6:35 ` Laurentiu Palcu 2014-03-08 8:23 ` Hongxu Jia 2014-03-26 9:15 ` Sarbu, Florin-Ionut (Florin) 0 siblings, 2 replies; 12+ messages in thread From: Laurentiu Palcu @ 2014-03-07 6:35 UTC (permalink / raw) To: Richard Purdie; +Cc: openembedded-core On Thu, Mar 06, 2014 at 09:55:38PM +0000, Richard Purdie wrote: > On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: > > Call the new python routines. > > > > [YOCTO #5904] > > > > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> > > --- > > meta/classes/buildhistory.bbclass | 9 ++++++++- > > 1 file changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass > > index ef4135b..01b0082 100644 > > --- a/meta/classes/buildhistory.bbclass > > +++ b/meta/classes/buildhistory.bbclass > > @@ -319,6 +319,12 @@ python buildhistory_list_installed() { > > > > with open(pkgs_list_file, 'w') as pkgs_list: > > pkgs_list.write(list_installed_packages(d, 'file')) > > + > > + pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > > + "bh_installed_pkgs_deps.txt") > > + > > + with open(pkgs_deps_file, 'w') as pkgs_deps: > > + pkgs_deps.write(list_installed_packages(d, 'deps')) > > } > > > > > > @@ -338,7 +344,8 @@ buildhistory_get_installed() { > > > > # Produce dependency graph > > # First, quote each name to handle characters that cause issues for dot > > - rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp > > + cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ > > + rm ${WORKDIR}/bh_installed_pkgs_deps.txt > > # Change delimiter from pipe to -> and set style for recommend lines > > sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp > > # Add header, sorted and de-duped contents and footer and then delete the temp file > > With this patch, a bitbake core-image-minimal -c populate_sdk resulted No, not quite. The bug appears to be in RpmPM._pkg_translate_smart_to_oe(), which none of my patches touched. CCing Hongxu. laurentiu > in: > > ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: > > The stack trace of python calls that resulted in this exception/failure was: > File: 'buildhistory_list_installed', lineno: 18, function: <module> > 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: > 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) > 0016: > 0017: > *** 0018:buildhistory_list_installed(d) > 0019: > File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed > 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), > 0006: "bh_installed_pkgs.txt") > 0007: > 0008: with open(pkgs_list_file, 'w') as pkgs_list: > *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) > 0010: > 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > 0012: "bh_installed_pkgs_deps.txt") > 0013: > File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages > 0717: if img_type == "rpm": > 0718: return RpmPM(d, > 0719: rootfs_dir, > 0720: d.getVar('TARGET_VENDOR', True) > *** 0721: ).list_installed(format) > 0722: elif img_type == "ipk": > 0723: return OpkgPM(d, > 0724: rootfs_dir, > 0725: d.getVar("IPKGCONF_TARGET", True), > File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed > 0850: pkg = line.split()[0] > 0851: arch = line.split()[1] > 0852: ver = line.split()[2] > 0853: pkgorigin = line.split()[3] > *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) > 0855: > 0856: if format == "arch": > 0857: output.append('%s %s' % (new_pkg, new_arch)) > 0858: elif format == "file": > File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe > 0472: > 0473: if found == 1 and fixed_arch == fixed_cmp_arch: > 0474: break > 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) > *** 0476: return new_pkg, new_arch > 0477: > 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): > 0479: for arch in feed_archs: > 0480: arch = arch.replace('-', '_') > Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment > > ERROR: Function failed: buildhistory_list_installed > ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-07 6:35 ` Laurentiu Palcu @ 2014-03-08 8:23 ` Hongxu Jia 2014-03-10 7:46 ` Laurentiu Palcu 2014-03-26 9:15 ` Sarbu, Florin-Ionut (Florin) 1 sibling, 1 reply; 12+ messages in thread From: Hongxu Jia @ 2014-03-08 8:23 UTC (permalink / raw) To: Laurentiu Palcu, Richard Purdie; +Cc: openembedded-core [-- Attachment #1: Type: text/plain, Size: 5430 bytes --] On 03/07/2014 02:35 PM, Laurentiu Palcu wrote: > On Thu, Mar 06, 2014 at 09:55:38PM +0000, Richard Purdie wrote: >> On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: >>> Call the new python routines. >>> >>> [YOCTO #5904] >>> >>> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> >>> --- >>> meta/classes/buildhistory.bbclass | 9 ++++++++- >>> 1 file changed, 8 insertions(+), 1 deletion(-) >>> >>> diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass >>> index ef4135b..01b0082 100644 >>> --- a/meta/classes/buildhistory.bbclass >>> +++ b/meta/classes/buildhistory.bbclass >>> @@ -319,6 +319,12 @@ python buildhistory_list_installed() { >>> >>> with open(pkgs_list_file, 'w') as pkgs_list: >>> pkgs_list.write(list_installed_packages(d, 'file')) >>> + >>> + pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), >>> + "bh_installed_pkgs_deps.txt") >>> + >>> + with open(pkgs_deps_file, 'w') as pkgs_deps: >>> + pkgs_deps.write(list_installed_packages(d, 'deps')) >>> } >>> >>> >>> @@ -338,7 +344,8 @@ buildhistory_get_installed() { >>> >>> # Produce dependency graph >>> # First, quote each name to handle characters that cause issues for dot >>> - rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp >>> + cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ >>> + rm ${WORKDIR}/bh_installed_pkgs_deps.txt >>> # Change delimiter from pipe to -> and set style for recommend lines >>> sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp >>> # Add header, sorted and de-duped contents and footer and then delete the temp file >> With this patch, a bitbake core-image-minimal -c populate_sdk resulted > No, not quite. The bug appears to be in > RpmPM._pkg_translate_smart_to_oe(), which none of my patches touched. > > CCing Hongxu. Hi Laurentiu and Richard, The reason is pkg's arch was not found in the multilib arch list. I could not reproduce the defect on my local build with these patches applyed. The attach a patch that add some trace code to see which pkg's arch is not found in this situation. //Hongxu > laurentiu > >> in: >> >> ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: >> >> The stack trace of python calls that resulted in this exception/failure was: >> File: 'buildhistory_list_installed', lineno: 18, function: <module> >> 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: >> 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) >> 0016: >> 0017: >> *** 0018:buildhistory_list_installed(d) >> 0019: >> File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed >> 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), >> 0006: "bh_installed_pkgs.txt") >> 0007: >> 0008: with open(pkgs_list_file, 'w') as pkgs_list: >> *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) >> 0010: >> 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), >> 0012: "bh_installed_pkgs_deps.txt") >> 0013: >> File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages >> 0717: if img_type == "rpm": >> 0718: return RpmPM(d, >> 0719: rootfs_dir, >> 0720: d.getVar('TARGET_VENDOR', True) >> *** 0721: ).list_installed(format) >> 0722: elif img_type == "ipk": >> 0723: return OpkgPM(d, >> 0724: rootfs_dir, >> 0725: d.getVar("IPKGCONF_TARGET", True), >> File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed >> 0850: pkg = line.split()[0] >> 0851: arch = line.split()[1] >> 0852: ver = line.split()[2] >> 0853: pkgorigin = line.split()[3] >> *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) >> 0855: >> 0856: if format == "arch": >> 0857: output.append('%s %s' % (new_pkg, new_arch)) >> 0858: elif format == "file": >> File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe >> 0472: >> 0473: if found == 1 and fixed_arch == fixed_cmp_arch: >> 0474: break >> 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) >> *** 0476: return new_pkg, new_arch >> 0477: >> 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): >> 0479: for arch in feed_archs: >> 0480: arch = arch.replace('-', '_') >> Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment >> >> ERROR: Function failed: buildhistory_list_installed >> ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d >> >> [-- Attachment #2: 0001-package_manager.py-add-trace-code-in-_pkg_translate_.patch --] [-- Type: text/x-patch, Size: 1615 bytes --] From 78f580e8f58ac852061b2b5879c4111607d20f45 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Sat, 8 Mar 2014 16:17:49 +0800 Subject: [PATCH] package_manager.py: add trace code in _pkg_translate_smart_to_oe There is a error while invoking RpmPM._pkg_translate_smart_to_oe(), the reason is pkg's arch was not found in the multilib arch list. Add some trace code to see which pkg's arch is not found. Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/lib/oe/package_manager.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index 76d0ce5..4cbf623 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -400,6 +400,7 @@ class RpmPM(PackageManager): ''' def _pkg_translate_smart_to_oe(self, pkg, arch): new_pkg = pkg + new_arch = "" fixed_arch = arch.replace('_', '-') found = 0 for mlib in self.ml_prefix_list: @@ -426,6 +427,13 @@ class RpmPM(PackageManager): if found == 1 and fixed_arch == fixed_cmp_arch: break #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) + + if new_arch == "": + bb.warn('%s, %s is not found' % (pkg, arch)) + for mlib in self.ml_prefix_list: + bb.warn('%s: %s' % (mlib, ' '.join(self.ml_prefix_list[mlib]))) + new_arch = arch + return new_pkg, new_arch def _search_pkg_name_in_feeds(self, pkg, feed_archs): -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-08 8:23 ` Hongxu Jia @ 2014-03-10 7:46 ` Laurentiu Palcu 0 siblings, 0 replies; 12+ messages in thread From: Laurentiu Palcu @ 2014-03-10 7:46 UTC (permalink / raw) To: Hongxu Jia; +Cc: openembedded-core I succeeded to replicate this. I'll take a look at it. laurentiu On Sat, Mar 08, 2014 at 04:23:22PM +0800, Hongxu Jia wrote: > On 03/07/2014 02:35 PM, Laurentiu Palcu wrote: > >On Thu, Mar 06, 2014 at 09:55:38PM +0000, Richard Purdie wrote: > >>On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: > >>>Call the new python routines. > >>> > >>>[YOCTO #5904] > >>> > >>>Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> > >>>--- > >>> meta/classes/buildhistory.bbclass | 9 ++++++++- > >>> 1 file changed, 8 insertions(+), 1 deletion(-) > >>> > >>>diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass > >>>index ef4135b..01b0082 100644 > >>>--- a/meta/classes/buildhistory.bbclass > >>>+++ b/meta/classes/buildhistory.bbclass > >>>@@ -319,6 +319,12 @@ python buildhistory_list_installed() { > >>> with open(pkgs_list_file, 'w') as pkgs_list: > >>> pkgs_list.write(list_installed_packages(d, 'file')) > >>>+ > >>>+ pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > >>>+ "bh_installed_pkgs_deps.txt") > >>>+ > >>>+ with open(pkgs_deps_file, 'w') as pkgs_deps: > >>>+ pkgs_deps.write(list_installed_packages(d, 'deps')) > >>> } > >>> > >>>@@ -338,7 +344,8 @@ buildhistory_get_installed() { > >>> # Produce dependency graph > >>> # First, quote each name to handle characters that cause issues for dot > >>>- rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp > >>>+ cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ > >>>+ rm ${WORKDIR}/bh_installed_pkgs_deps.txt > >>> # Change delimiter from pipe to -> and set style for recommend lines > >>> sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp > >>> # Add header, sorted and de-duped contents and footer and then delete the temp file > >>With this patch, a bitbake core-image-minimal -c populate_sdk resulted > >No, not quite. The bug appears to be in > >RpmPM._pkg_translate_smart_to_oe(), which none of my patches touched. > > > >CCing Hongxu. > > Hi Laurentiu and Richard, > > The reason is pkg's arch was not found in the multilib arch list. > > I could not reproduce the defect on my local build with these > patches applyed. > > The attach a patch that add some trace code to see which > pkg's arch is not found in this situation. > > //Hongxu > > >laurentiu > > > >>in: > >> > >>ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: > >> > >>The stack trace of python calls that resulted in this exception/failure was: > >>File: 'buildhistory_list_installed', lineno: 18, function: <module> > >> 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: > >> 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) > >> 0016: > >> 0017: > >> *** 0018:buildhistory_list_installed(d) > >> 0019: > >>File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed > >> 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), > >> 0006: "bh_installed_pkgs.txt") > >> 0007: > >> 0008: with open(pkgs_list_file, 'w') as pkgs_list: > >> *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) > >> 0010: > >> 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > >> 0012: "bh_installed_pkgs_deps.txt") > >> 0013: > >>File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages > >> 0717: if img_type == "rpm": > >> 0718: return RpmPM(d, > >> 0719: rootfs_dir, > >> 0720: d.getVar('TARGET_VENDOR', True) > >> *** 0721: ).list_installed(format) > >> 0722: elif img_type == "ipk": > >> 0723: return OpkgPM(d, > >> 0724: rootfs_dir, > >> 0725: d.getVar("IPKGCONF_TARGET", True), > >>File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed > >> 0850: pkg = line.split()[0] > >> 0851: arch = line.split()[1] > >> 0852: ver = line.split()[2] > >> 0853: pkgorigin = line.split()[3] > >> *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) > >> 0855: > >> 0856: if format == "arch": > >> 0857: output.append('%s %s' % (new_pkg, new_arch)) > >> 0858: elif format == "file": > >>File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe > >> 0472: > >> 0473: if found == 1 and fixed_arch == fixed_cmp_arch: > >> 0474: break > >> 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) > >> *** 0476: return new_pkg, new_arch > >> 0477: > >> 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): > >> 0479: for arch in feed_archs: > >> 0480: arch = arch.replace('-', '_') > >>Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment > >> > >>ERROR: Function failed: buildhistory_list_installed > >>ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d > >> > >> > > From 78f580e8f58ac852061b2b5879c4111607d20f45 Mon Sep 17 00:00:00 2001 > From: Hongxu Jia <hongxu.jia@windriver.com> > Date: Sat, 8 Mar 2014 16:17:49 +0800 > Subject: [PATCH] package_manager.py: add trace code in > _pkg_translate_smart_to_oe > > There is a error while invoking RpmPM._pkg_translate_smart_to_oe(), > the reason is pkg's arch was not found in the multilib arch list. > > Add some trace code to see which pkg's arch is not found. > > Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> > --- > meta/lib/oe/package_manager.py | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py > index 76d0ce5..4cbf623 100644 > --- a/meta/lib/oe/package_manager.py > +++ b/meta/lib/oe/package_manager.py > @@ -400,6 +400,7 @@ class RpmPM(PackageManager): > ''' > def _pkg_translate_smart_to_oe(self, pkg, arch): > new_pkg = pkg > + new_arch = "" > fixed_arch = arch.replace('_', '-') > found = 0 > for mlib in self.ml_prefix_list: > @@ -426,6 +427,13 @@ class RpmPM(PackageManager): > if found == 1 and fixed_arch == fixed_cmp_arch: > break > #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) > + > + if new_arch == "": > + bb.warn('%s, %s is not found' % (pkg, arch)) > + for mlib in self.ml_prefix_list: > + bb.warn('%s: %s' % (mlib, ' '.join(self.ml_prefix_list[mlib]))) > + new_arch = arch > + > return new_pkg, new_arch > > def _search_pkg_name_in_feeds(self, pkg, feed_archs): > -- > 1.8.1.2 > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-07 6:35 ` Laurentiu Palcu 2014-03-08 8:23 ` Hongxu Jia @ 2014-03-26 9:15 ` Sarbu, Florin-Ionut (Florin) 2014-03-26 10:09 ` Laurentiu Palcu 1 sibling, 1 reply; 12+ messages in thread From: Sarbu, Florin-Ionut (Florin) @ 2014-03-26 9:15 UTC (permalink / raw) To: PALCU, LAURENTIU, Richard Purdie; +Cc: openembedded-core@lists.openembedded.org I get the same error on do_rootfs for a rpm based image: Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment Florin ________________________________________ From: openembedded-core-bounces@lists.openembedded.org [openembedded-core-bounces@lists.openembedded.org] on behalf of Laurentiu Palcu [laurentiu.palcu@intel.com] Sent: Friday, March 07, 2014 8:35 AM To: Richard Purdie Cc: openembedded-core@lists.openembedded.org Subject: Re: [OE-core] [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation On Thu, Mar 06, 2014 at 09:55:38PM +0000, Richard Purdie wrote: > On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: > > Call the new python routines. > > > > [YOCTO #5904] > > > > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> > > --- > > meta/classes/buildhistory.bbclass | 9 ++++++++- > > 1 file changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass > > index ef4135b..01b0082 100644 > > --- a/meta/classes/buildhistory.bbclass > > +++ b/meta/classes/buildhistory.bbclass > > @@ -319,6 +319,12 @@ python buildhistory_list_installed() { > > > > with open(pkgs_list_file, 'w') as pkgs_list: > > pkgs_list.write(list_installed_packages(d, 'file')) > > + > > + pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > > + "bh_installed_pkgs_deps.txt") > > + > > + with open(pkgs_deps_file, 'w') as pkgs_deps: > > + pkgs_deps.write(list_installed_packages(d, 'deps')) > > } > > > > > > @@ -338,7 +344,8 @@ buildhistory_get_installed() { > > > > # Produce dependency graph > > # First, quote each name to handle characters that cause issues for dot > > - rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp > > + cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ > > + rm ${WORKDIR}/bh_installed_pkgs_deps.txt > > # Change delimiter from pipe to -> and set style for recommend lines > > sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp > > # Add header, sorted and de-duped contents and footer and then delete the temp file > > With this patch, a bitbake core-image-minimal -c populate_sdk resulted No, not quite. The bug appears to be in RpmPM._pkg_translate_smart_to_oe(), which none of my patches touched. CCing Hongxu. laurentiu > in: > > ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: > > The stack trace of python calls that resulted in this exception/failure was: > File: 'buildhistory_list_installed', lineno: 18, function: <module> > 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: > 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) > 0016: > 0017: > *** 0018:buildhistory_list_installed(d) > 0019: > File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed > 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), > 0006: "bh_installed_pkgs.txt") > 0007: > 0008: with open(pkgs_list_file, 'w') as pkgs_list: > *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) > 0010: > 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > 0012: "bh_installed_pkgs_deps.txt") > 0013: > File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages > 0717: if img_type == "rpm": > 0718: return RpmPM(d, > 0719: rootfs_dir, > 0720: d.getVar('TARGET_VENDOR', True) > *** 0721: ).list_installed(format) > 0722: elif img_type == "ipk": > 0723: return OpkgPM(d, > 0724: rootfs_dir, > 0725: d.getVar("IPKGCONF_TARGET", True), > File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed > 0850: pkg = line.split()[0] > 0851: arch = line.split()[1] > 0852: ver = line.split()[2] > 0853: pkgorigin = line.split()[3] > *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) > 0855: > 0856: if format == "arch": > 0857: output.append('%s %s' % (new_pkg, new_arch)) > 0858: elif format == "file": > File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe > 0472: > 0473: if found == 1 and fixed_arch == fixed_cmp_arch: > 0474: break > 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) > *** 0476: return new_pkg, new_arch > 0477: > 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): > 0479: for arch in feed_archs: > 0480: arch = arch.replace('-', '_') > Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment > > ERROR: Function failed: buildhistory_list_installed > ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d > > _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-26 9:15 ` Sarbu, Florin-Ionut (Florin) @ 2014-03-26 10:09 ` Laurentiu Palcu 2014-03-26 11:45 ` Florin Sarbu 0 siblings, 1 reply; 12+ messages in thread From: Laurentiu Palcu @ 2014-03-26 10:09 UTC (permalink / raw) To: Sarbu, Florin-Ionut (Florin); +Cc: openembedded-core@lists.openembedded.org On Wed, Mar 26, 2014 at 09:15:43AM +0000, Sarbu, Florin-Ionut (Florin) wrote: > I get the same error on do_rootfs for a rpm based image: > > Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment Does this happen on latest master? Do you have the 4 patches, starting with this one http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=d91e35640d19471213122d36288315f071c37432 in your tree? Did you activate buildhistory? Can you provide more info regarding the steps you followed to reproduce this? laurentiu > > Florin > ________________________________________ > From: openembedded-core-bounces@lists.openembedded.org [openembedded-core-bounces@lists.openembedded.org] on behalf of Laurentiu Palcu [laurentiu.palcu@intel.com] > Sent: Friday, March 07, 2014 8:35 AM > To: Richard Purdie > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core] [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation > > On Thu, Mar 06, 2014 at 09:55:38PM +0000, Richard Purdie wrote: > > On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: > > > Call the new python routines. > > > > > > [YOCTO #5904] > > > > > > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> > > > --- > > > meta/classes/buildhistory.bbclass | 9 ++++++++- > > > 1 file changed, 8 insertions(+), 1 deletion(-) > > > > > > diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass > > > index ef4135b..01b0082 100644 > > > --- a/meta/classes/buildhistory.bbclass > > > +++ b/meta/classes/buildhistory.bbclass > > > @@ -319,6 +319,12 @@ python buildhistory_list_installed() { > > > > > > with open(pkgs_list_file, 'w') as pkgs_list: > > > pkgs_list.write(list_installed_packages(d, 'file')) > > > + > > > + pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > > > + "bh_installed_pkgs_deps.txt") > > > + > > > + with open(pkgs_deps_file, 'w') as pkgs_deps: > > > + pkgs_deps.write(list_installed_packages(d, 'deps')) > > > } > > > > > > > > > @@ -338,7 +344,8 @@ buildhistory_get_installed() { > > > > > > # Produce dependency graph > > > # First, quote each name to handle characters that cause issues for dot > > > - rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp > > > + cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ > > > + rm ${WORKDIR}/bh_installed_pkgs_deps.txt > > > # Change delimiter from pipe to -> and set style for recommend lines > > > sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp > > > # Add header, sorted and de-duped contents and footer and then delete the temp file > > > > With this patch, a bitbake core-image-minimal -c populate_sdk resulted > No, not quite. The bug appears to be in > RpmPM._pkg_translate_smart_to_oe(), which none of my patches touched. > > CCing Hongxu. > > laurentiu > > > in: > > > > ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: > > > > The stack trace of python calls that resulted in this exception/failure was: > > File: 'buildhistory_list_installed', lineno: 18, function: <module> > > 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: > > 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) > > 0016: > > 0017: > > *** 0018:buildhistory_list_installed(d) > > 0019: > > File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed > > 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), > > 0006: "bh_installed_pkgs.txt") > > 0007: > > 0008: with open(pkgs_list_file, 'w') as pkgs_list: > > *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) > > 0010: > > 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > > 0012: "bh_installed_pkgs_deps.txt") > > 0013: > > File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages > > 0717: if img_type == "rpm": > > 0718: return RpmPM(d, > > 0719: rootfs_dir, > > 0720: d.getVar('TARGET_VENDOR', True) > > *** 0721: ).list_installed(format) > > 0722: elif img_type == "ipk": > > 0723: return OpkgPM(d, > > 0724: rootfs_dir, > > 0725: d.getVar("IPKGCONF_TARGET", True), > > File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed > > 0850: pkg = line.split()[0] > > 0851: arch = line.split()[1] > > 0852: ver = line.split()[2] > > 0853: pkgorigin = line.split()[3] > > *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) > > 0855: > > 0856: if format == "arch": > > 0857: output.append('%s %s' % (new_pkg, new_arch)) > > 0858: elif format == "file": > > File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe > > 0472: > > 0473: if found == 1 and fixed_arch == fixed_cmp_arch: > > 0474: break > > 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) > > *** 0476: return new_pkg, new_arch > > 0477: > > 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): > > 0479: for arch in feed_archs: > > 0480: arch = arch.replace('-', '_') > > Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment > > > > ERROR: Function failed: buildhistory_list_installed > > ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d > > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-26 10:09 ` Laurentiu Palcu @ 2014-03-26 11:45 ` Florin Sarbu 2014-03-26 13:30 ` Laurentiu Palcu 0 siblings, 1 reply; 12+ messages in thread From: Florin Sarbu @ 2014-03-26 11:45 UTC (permalink / raw) To: Laurentiu Palcu; +Cc: openembedded-core@lists.openembedded.org On 03/26/2014 12:09 PM, Laurentiu Palcu wrote: > On Wed, Mar 26, 2014 at 09:15:43AM +0000, Sarbu, Florin-Ionut (Florin) wrote: >> I get the same error on do_rootfs for a rpm based image: >> >> Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment > Does this happen on latest master? Yes. > Do you have the 4 patches, starting with this one > > http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=d91e35640d19471213122d36288315f071c37432 > > in your tree? Yes, I have that commit in poky. > Did you activate buildhistory? Can you provide more info > regarding the steps you followed to reproduce this? I am trying to build the gemini-image from the meta-ivi layer git@git.yoctoproject.org:meta-ivi.git The build steps are those from the README.md file Florin > > laurentiu >> Florin >> ________________________________________ >> From: openembedded-core-bounces@lists.openembedded.org [openembedded-core-bounces@lists.openembedded.org] on behalf of Laurentiu Palcu [laurentiu.palcu@intel.com] >> Sent: Friday, March 07, 2014 8:35 AM >> To: Richard Purdie >> Cc: openembedded-core@lists.openembedded.org >> Subject: Re: [OE-core] [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation >> >> On Thu, Mar 06, 2014 at 09:55:38PM +0000, Richard Purdie wrote: >>> On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: >>>> Call the new python routines. >>>> >>>> [YOCTO #5904] >>>> >>>> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> >>>> --- >>>> meta/classes/buildhistory.bbclass | 9 ++++++++- >>>> 1 file changed, 8 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass >>>> index ef4135b..01b0082 100644 >>>> --- a/meta/classes/buildhistory.bbclass >>>> +++ b/meta/classes/buildhistory.bbclass >>>> @@ -319,6 +319,12 @@ python buildhistory_list_installed() { >>>> >>>> with open(pkgs_list_file, 'w') as pkgs_list: >>>> pkgs_list.write(list_installed_packages(d, 'file')) >>>> + >>>> + pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), >>>> + "bh_installed_pkgs_deps.txt") >>>> + >>>> + with open(pkgs_deps_file, 'w') as pkgs_deps: >>>> + pkgs_deps.write(list_installed_packages(d, 'deps')) >>>> } >>>> >>>> >>>> @@ -338,7 +344,8 @@ buildhistory_get_installed() { >>>> >>>> # Produce dependency graph >>>> # First, quote each name to handle characters that cause issues for dot >>>> - rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp >>>> + cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ >>>> + rm ${WORKDIR}/bh_installed_pkgs_deps.txt >>>> # Change delimiter from pipe to -> and set style for recommend lines >>>> sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp >>>> # Add header, sorted and de-duped contents and footer and then delete the temp file >>> With this patch, a bitbake core-image-minimal -c populate_sdk resulted >> No, not quite. The bug appears to be in >> RpmPM._pkg_translate_smart_to_oe(), which none of my patches touched. >> >> CCing Hongxu. >> >> laurentiu >> >>> in: >>> >>> ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: >>> >>> The stack trace of python calls that resulted in this exception/failure was: >>> File: 'buildhistory_list_installed', lineno: 18, function: <module> >>> 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: >>> 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) >>> 0016: >>> 0017: >>> *** 0018:buildhistory_list_installed(d) >>> 0019: >>> File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed >>> 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), >>> 0006: "bh_installed_pkgs.txt") >>> 0007: >>> 0008: with open(pkgs_list_file, 'w') as pkgs_list: >>> *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) >>> 0010: >>> 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), >>> 0012: "bh_installed_pkgs_deps.txt") >>> 0013: >>> File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages >>> 0717: if img_type == "rpm": >>> 0718: return RpmPM(d, >>> 0719: rootfs_dir, >>> 0720: d.getVar('TARGET_VENDOR', True) >>> *** 0721: ).list_installed(format) >>> 0722: elif img_type == "ipk": >>> 0723: return OpkgPM(d, >>> 0724: rootfs_dir, >>> 0725: d.getVar("IPKGCONF_TARGET", True), >>> File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed >>> 0850: pkg = line.split()[0] >>> 0851: arch = line.split()[1] >>> 0852: ver = line.split()[2] >>> 0853: pkgorigin = line.split()[3] >>> *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) >>> 0855: >>> 0856: if format == "arch": >>> 0857: output.append('%s %s' % (new_pkg, new_arch)) >>> 0858: elif format == "file": >>> File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe >>> 0472: >>> 0473: if found == 1 and fixed_arch == fixed_cmp_arch: >>> 0474: break >>> 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) >>> *** 0476: return new_pkg, new_arch >>> 0477: >>> 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): >>> 0479: for arch in feed_archs: >>> 0480: arch = arch.replace('-', '_') >>> Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment >>> >>> ERROR: Function failed: buildhistory_list_installed >>> ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d >>> >>> >> _______________________________________________ >> Openembedded-core mailing list >> Openembedded-core@lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation 2014-03-26 11:45 ` Florin Sarbu @ 2014-03-26 13:30 ` Laurentiu Palcu 0 siblings, 0 replies; 12+ messages in thread From: Laurentiu Palcu @ 2014-03-26 13:30 UTC (permalink / raw) To: Florin Sarbu; +Cc: openembedded-core@lists.openembedded.org Please file a bug on this. thanks, laurentiu On Wed, Mar 26, 2014 at 01:45:40PM +0200, Florin Sarbu wrote: > On 03/26/2014 12:09 PM, Laurentiu Palcu wrote: > >On Wed, Mar 26, 2014 at 09:15:43AM +0000, Sarbu, Florin-Ionut (Florin) wrote: > >>I get the same error on do_rootfs for a rpm based image: > >> > >>Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment > >Does this happen on latest master? > Yes. > >Do you have the 4 patches, starting with this one > > > >http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=d91e35640d19471213122d36288315f071c37432 > > > >in your tree? > Yes, I have that commit in poky. > > Did you activate buildhistory? Can you provide more info > >regarding the steps you followed to reproduce this? > I am trying to build the gemini-image from the meta-ivi layer > git@git.yoctoproject.org:meta-ivi.git The build steps are those from > the README.md file > > Florin > > > >laurentiu > >>Florin > >>________________________________________ > >>From: openembedded-core-bounces@lists.openembedded.org [openembedded-core-bounces@lists.openembedded.org] on behalf of Laurentiu Palcu [laurentiu.palcu@intel.com] > >>Sent: Friday, March 07, 2014 8:35 AM > >>To: Richard Purdie > >>Cc: openembedded-core@lists.openembedded.org > >>Subject: Re: [OE-core] [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation > >> > >>On Thu, Mar 06, 2014 at 09:55:38PM +0000, Richard Purdie wrote: > >>>On Wed, 2014-03-05 at 14:39 +0200, Laurentiu Palcu wrote: > >>>>Call the new python routines. > >>>> > >>>>[YOCTO #5904] > >>>> > >>>>Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> > >>>>--- > >>>> meta/classes/buildhistory.bbclass | 9 ++++++++- > >>>> 1 file changed, 8 insertions(+), 1 deletion(-) > >>>> > >>>>diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass > >>>>index ef4135b..01b0082 100644 > >>>>--- a/meta/classes/buildhistory.bbclass > >>>>+++ b/meta/classes/buildhistory.bbclass > >>>>@@ -319,6 +319,12 @@ python buildhistory_list_installed() { > >>>> > >>>> with open(pkgs_list_file, 'w') as pkgs_list: > >>>> pkgs_list.write(list_installed_packages(d, 'file')) > >>>>+ > >>>>+ pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > >>>>+ "bh_installed_pkgs_deps.txt") > >>>>+ > >>>>+ with open(pkgs_deps_file, 'w') as pkgs_deps: > >>>>+ pkgs_deps.write(list_installed_packages(d, 'deps')) > >>>> } > >>>> > >>>> > >>>>@@ -338,7 +344,8 @@ buildhistory_get_installed() { > >>>> > >>>> # Produce dependency graph > >>>> # First, quote each name to handle characters that cause issues for dot > >>>>- rootfs_list_installed_depends | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp > >>>>+ cat ${WORKDIR}/bh_installed_pkgs_deps.txt | sed 's:\([^| ]*\):"\1":g' > $1/depends.tmp && \ > >>>>+ rm ${WORKDIR}/bh_installed_pkgs_deps.txt > >>>> # Change delimiter from pipe to -> and set style for recommend lines > >>>> sed -i -e 's:|: -> :' -e 's:"\[REC\]":[style=dotted]:' -e 's:$:;:' $1/depends.tmp > >>>> # Add header, sorted and de-duped contents and footer and then delete the temp file > >>>With this patch, a bitbake core-image-minimal -c populate_sdk resulted > >>No, not quite. The bug appears to be in > >>RpmPM._pkg_translate_smart_to_oe(), which none of my patches touched. > >> > >>CCing Hongxu. > >> > >>laurentiu > >> > >>>in: > >>> > >>>ERROR: Error executing a python function in /media/build1/poky/meta/recipes-core/images/core-image-minimal.bb: > >>> > >>>The stack trace of python calls that resulted in this exception/failure was: > >>>File: 'buildhistory_list_installed', lineno: 18, function: <module> > >>> 0014: with open(pkgs_deps_file, 'w') as pkgs_deps: > >>> 0015: pkgs_deps.write(list_installed_packages(d, 'deps')) > >>> 0016: > >>> 0017: > >>> *** 0018:buildhistory_list_installed(d) > >>> 0019: > >>>File: 'buildhistory_list_installed', lineno: 9, function: buildhistory_list_installed > >>> 0005: pkgs_list_file = os.path.join(d.getVar('WORKDIR', True), > >>> 0006: "bh_installed_pkgs.txt") > >>> 0007: > >>> 0008: with open(pkgs_list_file, 'w') as pkgs_list: > >>> *** 0009: pkgs_list.write(list_installed_packages(d, 'file')) > >>> 0010: > >>> 0011: pkgs_deps_file = os.path.join(d.getVar('WORKDIR', True), > >>> 0012: "bh_installed_pkgs_deps.txt") > >>> 0013: > >>>File: '/media/build1/poky/meta/lib/oe/rootfs.py', lineno: 721, function: list_installed_packages > >>> 0717: if img_type == "rpm": > >>> 0718: return RpmPM(d, > >>> 0719: rootfs_dir, > >>> 0720: d.getVar('TARGET_VENDOR', True) > >>> *** 0721: ).list_installed(format) > >>> 0722: elif img_type == "ipk": > >>> 0723: return OpkgPM(d, > >>> 0724: rootfs_dir, > >>> 0725: d.getVar("IPKGCONF_TARGET", True), > >>>File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 854, function: list_installed > >>> 0850: pkg = line.split()[0] > >>> 0851: arch = line.split()[1] > >>> 0852: ver = line.split()[2] > >>> 0853: pkgorigin = line.split()[3] > >>> *** 0854: new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) > >>> 0855: > >>> 0856: if format == "arch": > >>> 0857: output.append('%s %s' % (new_pkg, new_arch)) > >>> 0858: elif format == "file": > >>>File: '/media/build1/poky/meta/lib/oe/package_manager.py', lineno: 476, function: _pkg_translate_smart_to_oe > >>> 0472: > >>> 0473: if found == 1 and fixed_arch == fixed_cmp_arch: > >>> 0474: break > >>> 0475: #bb.note('%s, %s -> %s, %s' % (pkg, arch, new_pkg, new_arch)) > >>> *** 0476: return new_pkg, new_arch > >>> 0477: > >>> 0478: def _search_pkg_name_in_feeds(self, pkg, feed_archs): > >>> 0479: for arch in feed_archs: > >>> 0480: arch = arch.replace('-', '_') > >>>Exception: UnboundLocalError: local variable 'new_arch' referenced before assignment > >>> > >>>ERROR: Function failed: buildhistory_list_installed > >>>ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.d > >>> > >>> > >>_______________________________________________ > >>Openembedded-core mailing list > >>Openembedded-core@lists.openembedded.org > >>http://lists.openembedded.org/mailman/listinfo/openembedded-core > ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/3] populate_sdk_*.bbclass: remove old rootfs_list_installed_depends() 2014-03-05 12:39 [PATCH 0/3] Fix issue with unpopulated buildhistory depends files Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 1/3] package_manager.py: make list_installed() list pkg dependencies too Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation Laurentiu Palcu @ 2014-03-05 12:39 ` Laurentiu Palcu 2 siblings, 0 replies; 12+ messages in thread From: Laurentiu Palcu @ 2014-03-05 12:39 UTC (permalink / raw) To: openembedded-core We're using the python routines now. Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> --- meta/classes/populate_sdk_deb.bbclass | 5 ----- meta/classes/populate_sdk_ipk.bbclass | 4 ---- meta/classes/populate_sdk_rpm.bbclass | 4 ---- 3 files changed, 13 deletions(-) diff --git a/meta/classes/populate_sdk_deb.bbclass b/meta/classes/populate_sdk_deb.bbclass index 462525f..833feca 100644 --- a/meta/classes/populate_sdk_deb.bbclass +++ b/meta/classes/populate_sdk_deb.bbclass @@ -10,8 +10,3 @@ do_populate_sdk[lockfiles] += "${DEPLOY_DIR_DEB}/deb.lock" # This will of course only work after rootfs_deb_do_rootfs or populate_sdk_deb has been called DPKG_QUERY_COMMAND = "${STAGING_BINDIR_NATIVE}/dpkg-query --admindir=$INSTALL_ROOTFS_DEB/var/lib/dpkg" - -rootfs_list_installed_depends() { - # Cheat here a little bit by using the opkg query helper util - ${DPKG_QUERY_COMMAND} -W -f='Package: ${Package}\nDepends: ${Depends}\nRecommends: ${Recommends}\n\n' | opkg-query-helper.py -} diff --git a/meta/classes/populate_sdk_ipk.bbclass b/meta/classes/populate_sdk_ipk.bbclass index 4c23f05..e2e3523 100644 --- a/meta/classes/populate_sdk_ipk.bbclass +++ b/meta/classes/populate_sdk_ipk.bbclass @@ -2,7 +2,3 @@ do_populate_sdk[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:d do_populate_sdk[recrdeptask] += "do_package_write_ipk" do_populate_sdk[lockfiles] += "${WORKDIR}/ipk.lock" - -rootfs_list_installed_depends() { - opkg-cl ${OPKG_ARGS} status | opkg-query-helper.py -} diff --git a/meta/classes/populate_sdk_rpm.bbclass b/meta/classes/populate_sdk_rpm.bbclass index 06605d3..0fdef3b 100644 --- a/meta/classes/populate_sdk_rpm.bbclass +++ b/meta/classes/populate_sdk_rpm.bbclass @@ -16,7 +16,3 @@ do_populate_sdk[recrdeptask] += "do_package_write_rpm" rpmlibdir = "/var/lib/rpm" do_populate_sdk[lockfiles] += "${DEPLOY_DIR_RPM}/rpm.lock" - -rootfs_list_installed_depends() { - rpmresolve -t $INSTALL_ROOTFS_RPM/${rpmlibdir} -} -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2014-03-26 13:33 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-03-05 12:39 [PATCH 0/3] Fix issue with unpopulated buildhistory depends files Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 1/3] package_manager.py: make list_installed() list pkg dependencies too Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 2/3] buildhistory.bbclass: Fix dependency files creation Laurentiu Palcu 2014-03-06 21:55 ` Richard Purdie 2014-03-07 6:35 ` Laurentiu Palcu 2014-03-08 8:23 ` Hongxu Jia 2014-03-10 7:46 ` Laurentiu Palcu 2014-03-26 9:15 ` Sarbu, Florin-Ionut (Florin) 2014-03-26 10:09 ` Laurentiu Palcu 2014-03-26 11:45 ` Florin Sarbu 2014-03-26 13:30 ` Laurentiu Palcu 2014-03-05 12:39 ` [PATCH 3/3] populate_sdk_*.bbclass: remove old rootfs_list_installed_depends() Laurentiu Palcu
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.