All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
To: yocto@yoctoproject.org, yocto@emagii.com
Subject: Re: poky using native pkg_resources module
Date: Fri, 29 Sep 2017 13:18:22 -0500	[thread overview]
Message-ID: <414ca678-5e11-319d-7688-bc5127712b3a@linux.intel.com> (raw)
In-Reply-To: <c8eaf63b-d9a3-8456-3dc8-de387ad131d6@emagii.com>

Hey Ulf,



On 09/29/2017 04:05 AM, Ulf Samuelsson wrote:
> It looks like the pkg_resource module is using the native installation
>
>
> I cloned poky early september, and could complete a build.
>
> When I clone poky today, the build fails.
>
> As part of "do_image_wic" from image_types_wic.bbclass
>
> A python program in 'bmap-tools-native' is executing
>
>     "from pkg_resources import load_entry_point"
>
> grep'ing for pkg_resources in bmap-tools-native reveals:
>
> bmaptool:        from pkg_resources import load_entry_point
> easy3_install:        from pkg_resources import load_entry_point
> easy_install-3.5:    from pkg_resources import load_entry_point
> =============================
> pkg_resources.py is not available inside poky at the moment.
>
> It is (or used to be) part of python-setuptools.

Correct, it was and still is part of setuptools
>
> On Ubuntu, it is present in: 
> "http://archive.ubuntu.com/ubuntu/pool/main/p/python-setuptools/python-setuptools_3.3.orig.tar.gz"
> and used in Ubuntu 14.04 and 16.04 to generate the
>     "python3-pkg-resource" package.
>
> When python-setuptools is generated by Yocto, it is partly
> a class, but the python-setuptools-native recipe downloads
>     "https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-26.2.7.zip" 
>

This should be setuptools-36.2.7 btw

> which does not contain "pkg_resources.py"

Its not partly a class, it uses a class to install the package along 
with distutils.
>
> =============================
> When bmaptool imports pkg_resources, it will not find anything in the
> yocto build, but will find the native 
> "/usr/lib/python3/dist-packages/pkg_resources.py" from
>
> This requires bmap-tools == 3.4, but the native bmap-tools in 
> Ubuntu-14.04 is 2.5, and in Ubuntu-16.04 it is 3.2 so the build fails.
>
> Maybe Ubuntu-17.04 supports bmap-tools 3.4 and it will build there,
> but using the native pkg_resource is of course not a good idea?

There is something wrong with your build although I am not sure what it 
is, pkg_resources is still part of python(3)-setuptools, in fact you can 
check that in several ways

if you do a devshell on python3-setuptools-native you can see the 
extracted package contains the pkg_resources folder (so it is still part 
of the package)
then if you do a devshell after do_install, you can check the image 
directory and find the setuptools.egg file, which is what python-native 
uses later, if you unzip that
egg file, you can see that pkg_resources is there, so it was in fact 
packaged on Yocto / by bitbake.

Lastly, you can also do a
$ bitbake bmap-tools-native -c devshell

you can then check that python3-native is in fact executing by doing a

$ which python3

that should point to python3-native (the one you just built)

assuming you got python3-native correctly, execute python3

once in python you can do a


from pkg_resources import load_entry_point # which would import the module

# check where the module is being loaded from
import sys
sys.modules['pkg_resources']

That should print out the location of the imported module, and you can 
see there that infact it was imported from the setuptools.egg file you 
just built before, like this:

 >>> sys.modules['pkg_resources']
<module 'pkg_resources' from 
'$HOME/builds/qemux86-64/tmp/work/x86_64-linux/bmap-tools-native/3.4-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/setuptools-36.2.7-py3.5.egg/pkg_resources/__init__.py'>

>
> Upgrading to a non-LTS Ubuntu is not something I would like to do...
> ============================================================================================ 
>
>
> Error report
>
> ============================================================================================ 
>
>
> | DEBUG: Executing shell function do_image_wic
> | wic create 
> "/home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/../meta-emagii/wic/emagii_beaglebone.wks" 
> --vars 
> "/home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/sysroots/beaglebone/imgdata/" 
> -e "emagii-image" -o 
> "/home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/deploy-emagii-image-image-complete/emagii-image-beaglebone-20170929070314/"
> | INFO: Creating image(s)...
> |
> | INFO: The new image(s) can be found here:
> | 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/deploy-emagii-image-image-complete/emagii-image-beaglebone-20170929070314/emagii_beaglebone-201709290903-mmcblk.direct
> |
> | The following build artifacts were used to create the image(s):
> |   ROOTFS_DIR: 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/deploy-emagii-image-image-complete/emagii-image-beaglebone-20170929070314/tmp.wic.slysr_64/rootfs_copy
> |   BOOTIMG_DIR: 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/recipe-sysroot/usr/share
> |   KERNEL_DIR: 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/deploy/images/beaglebone
> |   NATIVE_SYSROOT: 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/recipe-sysroot-native
> |
> | INFO: The image(s) were created using OE kickstart file:
> | 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/../meta-emagii/wic/emagii_beaglebone.wks
> | Traceback (most recent call last):
> |   File 
> "/home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/recipe-sysroot-native/usr/bin/bmaptool", 
> line 6, in <module>
> |     from pkg_resources import load_entry_point
> |   File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2749, 
> in <module>
> |     working_set = WorkingSet._build_master()
> |   File "/usr/lib/python3/dist-packages/pkg_resources.py", line 444, 
> in _build_master
> |     ws.require(__requires__)
> |   File "/usr/lib/python3/dist-packages/pkg_resources.py", line 725, 
> in require
> |     needed = self.resolve(parse_requirements(requirements))
> |   File "/usr/lib/python3/dist-packages/pkg_resources.py", line 628, 
> in resolve
> |     raise DistributionNotFound(req)
> | pkg_resources.DistributionNotFound: bmap-tools==3.4
> | WARNING: 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/temp/run.do_image_wic.19342:1 
> exit 1 from 'bmaptool create 
> emagii-image-beaglebone-20170929070314.rootfs.wic -o 
> emagii-image-beaglebone-20170929070314.rootfs.wic.bmap'
> | ERROR: Function failed: do_image_wic (log file is located at 
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/tmp/work/beaglebone-poky-linux-gnueabi/emagii-image/1.0-r0/temp/log.do_image_wic.19342)
> ERROR: Task 
> (/home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/../meta-emagii/recipes-images/images/emagii-image.bb:do_image_wic) 
> failed with exit code '1'
> NOTE: Tasks Summary: Attempted 3187 tasks of which 3186 didn't need to 
> be rerun and 1 failed.
>
> Summary: 1 task failed:
>
> /home/ulf/Kunder/eMagii/Disk/yocto-arm/poky-arm/build/../meta-emagii/recipes-images/images/emagii-image.bb:do_image_wic 
>
> Summary: There was 1 WARNING message shown.
> Summary: There was 1 ERROR message shown, returning a non-zero exit code.
>
>
>
> Best Regards
> Ulf Samuelsson



  reply	other threads:[~2017-09-29 18:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-29  9:05 poky using native pkg_resources module Ulf Samuelsson
2017-09-29 18:18 ` Alejandro Hernandez [this message]
2017-09-30 18:31   ` Ulf Samuelsson
2017-09-30 18:49     ` Alejandro Hernandez
2017-09-30 19:32     ` Alejandro Hernandez
2017-09-30 22:27       ` Ulf Samuelsson
2017-10-02 17:01         ` Alejandro Hernandez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=414ca678-5e11-319d-7688-bc5127712b3a@linux.intel.com \
    --to=alejandro.hernandez@linux.intel.com \
    --cc=yocto@emagii.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is 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.