[OE-core] [PATCH] python: Upgrade both python and python-native to 2.7.14

Alejandro Enedino Hernandez Samaniego alejandro.enedino.hernandez-samaniego at xilinx.com
Mon Jan 29 23:54:37 UTC 2018


Hey Derek,


Likely caused by an incomplete python-native build:


I did a quick build for python-native (2.7.14) and looking at do_compile 
I get:


Python build finished, but the necessary bits to build these modules 
were not found:
_bsddb             _tkinter           bsddb185
dbm                dl                 imageop
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the 
module's name.

Failed to build these modules:
gdbm


So whats happening is that python-native does not contain those files, 
and the script to create the manifest runs against python-native, hence 
why its dropping the files (it assumes they were dropped from the python 
release).

So we just need to make sure we have a complete python-native build and 
the script should run fine, the same goes for python3.


In gdbm's case, we had the same error for python3 and it was fixed here:


http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=2afde7e7bd866c4d3d059229c3c2201b7096e5e6


Cheers,


Alejandro


On 01/29/2018 12:32 PM, Derek Straka wrote:
> Nope.  I'm using Ubuntu 16.04.
>
> On Mon, Jan 29, 2018 at 3:17 PM, Tim Orling <ticotimo at gmail.com 
> <mailto:ticotimo at gmail.com>> wrote:
>
>
>     On Mon, Jan 29, 2018 at 12:02 PM Derek Straka <derek at asterius.io
>     <mailto:derek at asterius.io>> wrote:
>
>         It looks like the .so files (specifically gdbm and bsddb) are
>         getting dropped from the manifest when I run the create
>         manifest task.  I'll have to take a look at why those aren't
>         getting pulled into the dependency list.
>
>
>     Are you on Fedora-27 by any chance? It broke for me. Worked on
>     Fedora-26.
>
>
>         On Mon, Jan 29, 2018 at 2:49 PM, Derek Straka
>         <derek at asterius.io <mailto:derek at asterius.io>> wrote:
>
>             Oh no, I did not.  I will send a v2 with an updated
>             manifest.  Thanks for catching that.
>
>             -Derek
>
>             On Mon, Jan 29, 2018 at 2:23 PM, Alejandro Enedino
>             Hernandez Samaniego
>             <alejandro.enedino.hernandez-samaniego at xilinx.com
>             <mailto:alejandro.enedino.hernandez-samaniego at xilinx.com>>
>             wrote:
>
>                 Hey Derek,
>
>
>                 Just a quick question, did you run the create manifest
>                 task along with the upgrade?
>
>
>                 Cheers,
>
>
>                 Alejandro
>
>
>
>                 On 01/26/2018 11:25 AM, Derek Straka wrote:
>
>                     Rebased:
>                        - python/01-use-proper-tools-for-cross-build.patch
>                        - python/fix-makefile-for-ptest.patch
>                        - python/parallel-makeinst-create-bindir.patch
>
>                     Removed Upstreamed Patch:
>                        - python/Don-t-use-getentropy-on-Linux.patch
>
>                     Updated license checksum for changes in the
>                     copyright date.  The license
>                     terms remain unchanged
>
>                     Added an extra do_compile item to create the
>                     native pgen that no longer
>                     gets compiled by default
>
>                     Signed-off-by: Derek Straka <derek at asterius.io
>                     <mailto:derek at asterius.io>>
>                     ---
>                       ...on-native_2.7.13.bb
>                     <http://on-native_2.7.13.bb> =>
>                     python-native_2.7.14.bb
>                     <http://python-native_2.7.14.bb>} |  6 ++++
>                     meta/recipes-devtools/python/python.inc          
>                     |  6 ++--
>                     .../01-use-proper-tools-for-cross-build.patch    
>                     | 17 +++++----
>                       .../python/Don-t-use-getentropy-on-Linux.patch  
>                      | 41 ----------------------
>                       .../python/python/fix-makefile-for-ptest.patch  
>                      |  6 ++--
>                     .../python/parallel-makeinst-create-bindir.patch
>                      | 12 +++----
>                       .../python/{python_2.7.13.bb
>                     <http://python_2.7.13.bb> => python_2.7.14.bb
>                     <http://python_2.7.14.bb>} |  1 -
>                       7 files changed, 28 insertions(+), 61 deletions(-)
>                       rename
>                     meta/recipes-devtools/python/{python-native_2.7.13.bb
>                     <http://python-native_2.7.13.bb> =>
>                     python-native_2.7.14.bb
>                     <http://python-native_2.7.14.bb>} (94%)
>                       delete mode 100644
>                     meta/recipes-devtools/python/python/Don-t-use-getentropy-on-Linux.patch
>                       rename
>                     meta/recipes-devtools/python/{python_2.7.13.bb
>                     <http://python_2.7.13.bb> => python_2.7.14.bb
>                     <http://python_2.7.14.bb>} (99%)
>
>                     diff --git
>                     a/meta/recipes-devtools/python/python-native_2.7.13.bb
>                     <http://python-native_2.7.13.bb>
>                     b/meta/recipes-devtools/python/python-native_2.7.14.bb
>                     <http://python-native_2.7.14.bb>
>                     similarity index 94%
>                     rename from
>                     meta/recipes-devtools/python/python-native_2.7.13.bb
>                     <http://python-native_2.7.13.bb>
>                     rename to
>                     meta/recipes-devtools/python/python-native_2.7.14.bb
>                     <http://python-native_2.7.14.bb>
>                     index 2b74003..622cb38 100644
>                     ---
>                     a/meta/recipes-devtools/python/python-native_2.7.13.bb
>                     <http://python-native_2.7.13.bb>
>                     +++
>                     b/meta/recipes-devtools/python/python-native_2.7.14.bb
>                     <http://python-native_2.7.14.bb>
>                     @@ -36,6 +36,12 @@ do_configure_append() {
>                             autoreconf --verbose --install --force
>                     --exclude=autopoint
>                     ../Python-${PV}/Modules/_ctypes/libffi
>                       }
>                       +# Regenerate all of the generated files
>                     +# This ensures that pgen and friends get created
>                     during the compile phase
>                     +do_compile_prepend() {
>                     +    oe_runmake regen-all
>                     +}
>                     +
>                       do_install() {
>                             oe_runmake 'DESTDIR=${D}' install
>                             install -d ${D}${bindir}/${PN}
>                     diff --git
>                     a/meta/recipes-devtools/python/python.inc
>                     b/meta/recipes-devtools/python/python.inc
>                     index b40f551..979b601 100644
>                     --- a/meta/recipes-devtools/python/python.inc
>                     +++ b/meta/recipes-devtools/python/python.inc
>                     @@ -5,12 +5,12 @@ SECTION = "devel/python"
>                       # bump this on every change in
>                     contrib/python/generate-manifest-2.7.py
>                     <http://generate-manifest-2.7.py>
>                       INC_PR = "r1"
>                       -LIC_FILES_CHKSUM =
>                     "file://LICENSE;md5=6b60258130e4ed10d3101517eb5b9385"
>                     +LIC_FILES_CHKSUM =
>                     "file://LICENSE;md5=f741e51de91d4eeea5930b9c3c7fa69d"
>                         SRC_URI =
>                     "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz
>                     <http://www.python.org/ftp/python/$%7BPV%7D/Python-$%7BPV%7D.tar.xz>"
>                       -SRC_URI[md5sum] =
>                     "53b43534153bb2a0363f08bae8b9d990"
>                     -SRC_URI[sha256sum] =
>                     "35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731"
>                     +SRC_URI[md5sum] = "1f6db41ad91d9eb0a6f0c769b8613c5b"
>                     +SRC_URI[sha256sum] =
>                     "71ffb26e09e78650e424929b2b457b9c912ac216576e6bd9e7d204ed03296a66"
>                         # python recipe is actually python 2.x
>                       # also, exclude pre-releases for both python 2.x
>                     and 3.x
>                     diff --git
>                     a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
>                     b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
>                     index 366ce3e..e795a74 100644
>                     ---
>                     a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
>                     +++
>                     b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
>                     @@ -9,6 +9,9 @@ Signed-off-by: Paul Eggleton
>                     <paul.eggleton at linux.intel.com
>                     <mailto:paul.eggleton at linux.intel.com>>
>                       Rebased for python-2.7.9
>                       Signed-off-by: Alejandro Hernandez
>                     <alejandro.hernandez at linux.intel.com
>                     <mailto:alejandro.hernandez at linux.intel.com>>
>                       +Rebased for python-2.7.14
>                     +Signed-off-by: Derek Straka <derek at asterius.io
>                     <mailto:derek at asterius.io>>
>                     +
>                       Index: Python-2.7.13/Makefile.pre.in
>                     <http://Makefile.pre.in>
>                     ===================================================================
>                       --- Python-2.7.13.orig/Makefile.pre.in
>                     <http://Makefile.pre.in>
>                     @@ -30,14 +33,14 @@ Index:
>                     Python-2.7.13/Makefile.pre.in <http://Makefile.pre.in>
>                           # Create build directory and generate the
>                     sysconfig build-time data there.
>                        # pybuilddir.txt contains the name of the build
>                     dir and is used for
>                     -@@ -681,7 +682,7 @@ Modules/pwdmodule.o:
>                     $(srcdir)/Modules/p
>                     -
>                     - $(GRAMMAR_H): @GENERATED_COMMENT@
>                     $(GRAMMAR_INPUT) $(PGEN)
>                     +@@ -663,7 +663,7 @@
>                     +       # Regenerate Include/graminit.h and
>                     Python/graminit.c
>                     +       # from Grammar/Grammar using pgen
>                             @$(MKDIR_P) Include
>                     --      $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H)
>                     $(GRAMMAR_C)
>                     -+      $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H)
>                     $(GRAMMAR_C)
>                     - $(GRAMMAR_C): @GENERATED_COMMENT@ $(GRAMMAR_H)
>                     -       touch $(GRAMMAR_C)
>                     +-      $(PGEN) $(srcdir)/Grammar/Grammar \
>                     ++      $(HOSTPGEN) $(srcdir)/Grammar/Grammar \
>                     +  $(srcdir)/Include/graminit.h \
>                     +  $(srcdir)/Python/graminit.c
>                          @@ -1121,27 +1122,27 @@ libinstall:       
>                     build_all $(srcdir)/Lib/$(PL
>                     $(DESTDIR)$(LIBDEST)/distutils/tests ; \
>                     diff --git
>                     a/meta/recipes-devtools/python/python/Don-t-use-getentropy-on-Linux.patch
>                     b/meta/recipes-devtools/python/python/Don-t-use-getentropy-on-Linux.patch
>                     deleted file mode 100644
>                     index 38e5377..0000000
>                     ---
>                     a/meta/recipes-devtools/python/python/Don-t-use-getentropy-on-Linux.patch
>                     +++ /dev/null
>                     @@ -1,41 +0,0 @@
>                     -Upstream-Status: Backport
>                     -
>                     -Signed-off-by: Andreas Oberritter
>                     <obi at opendreambox.org <mailto:obi at opendreambox.org>>
>                     -
>                     -From 905d1b30ac7cb0e31c57cec0533825c8f170b942 Mon
>                     Sep 17 00:00:00 2001
>                     -From: Victor Stinner <victor.stinner at gmail.com
>                     <mailto:victor.stinner at gmail.com>>
>                     -Date: Mon, 9 Jan 2017 11:10:41 +0100
>                     -Subject: [PATCH] Don't use getentropy() on Linux
>                     -
>                     -Issue #29188: Support glibc 2.24 on Linux: don't
>                     use getentropy() function but
>                     -read from /dev/urandom to get random bytes, for
>                     example in os.urandom().  On
>                     -Linux, getentropy() is implemented which
>                     getrandom() is blocking mode, whereas
>                     -os.urandom() should not block.
>                     -
>                     -(cherry picked from commit
>                     2687486756721e39164fa9f597e468c35d495227)
>                     ----
>                     - Python/random.c | 11 +++++++++--
>                     - 1 file changed, 9 insertions(+), 2 deletions(-)
>                     -
>                     -diff --git a/Python/random.c b/Python/random.c
>                     -index b4bc1f3..f3f5d14 100644
>                     ---- a/Python/random.c
>                     -+++ b/Python/random.c
>                     -@@ -94,8 +94,15 @@ win32_urandom(unsigned char
>                     *buffer, Py_ssize_t size, int raise)
>                     - }
>                     -
>                     - /* Issue #25003: Don't use getentropy() on
>                     Solaris (available since
>                     -- * Solaris 11.3), it is blocking whereas
>                     os.urandom() should not block. */
>                     --#elif defined(HAVE_GETENTROPY) && !defined(sun)
>                     -+   Solaris 11.3), it is blocking whereas
>                     os.urandom() should not block.
>                     -+
>                     -+   Issue #29188: Don't use getentropy() on Linux
>                     since the glibc 2.24
>                     -+   implements it with the getrandom() syscall
>                     which can fail with ENOSYS,
>                     -+   and this error is not supported in
>                     py_getentropy() and getrandom() is called
>                     -+   with flags=0 which blocks until system
>                     urandom is initialized, which is not
>                     -+   the desired behaviour to seed the Python hash
>                     secret nor for os.urandom():
>                     -+   see the PEP 524 which was only implemented in
>                     Python 3.6. */
>                     -+#elif defined(HAVE_GETENTROPY) && !defined(sun)
>                     && !defined(linux)
>                     - #define PY_GETENTROPY 1
>                     -
>                     - /* Fill buffer with size pseudo-random bytes
>                     generated by getentropy().
>                     diff --git
>                     a/meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch
>                     b/meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch
>                     index 669112d..90dcd57 100644
>                     ---
>                     a/meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch
>                     +++
>                     b/meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch
>                     @@ -15,7 +15,7 @@ diff -ruN a/Makefile.pre.in
>                     <http://Makefile.pre.in> b/Makefile.pre.in
>                     <http://Makefile.pre.in>
>                       +TESTOPTS=    -l -v $(EXTRATESTOPTS)
>                        TESTPROG= $(srcdir)/Lib/test/regrtest.py
>                       -TESTPYTHON=  $(RUNSHARED) ./$(BUILDPYTHON) -Wd
>                     -3 -E -tt $(TESTPYTHONOPTS)
>                     --test:         all platform
>                     +-test:  @DEF_MAKE_RULE@ platform
>                       -             -find $(srcdir)/Lib -name
>                     '*.py[co]' -print | xargs rm -f
>                       +TESTPYTHON=  $(RUNSHARED) $(BUILDPYTHON) -Wd -3
>                     -E -tt $(TESTPYTHONOPTS)
>                       +test: build-test
>                     @@ -26,8 +26,8 @@ diff -ruN a/Makefile.pre.in
>                     <http://Makefile.pre.in> b/Makefile.pre.in
>                     <http://Makefile.pre.in>
>                     -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
>                     $(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
>                        -+build-test:        all platform
>                     ++build-test:  @DEF_MAKE_RULE@ platform
>                       +
>                     - testall:      all platform
>                     + testall: @DEF_MAKE_RULE@ platform
>                                     -find $(srcdir)/Lib -name
>                     '*.py[co]' -print | xargs rm -f
>                     $(TESTPYTHON) $(srcdir)/Lib/compileall.py
>                     diff --git
>                     a/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch
>                     b/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch
>                     index 951cb46..abab41e 100644
>                     ---
>                     a/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch
>                     +++
>                     b/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch
>                     @@ -8,12 +8,12 @@ Upstream-Status: Pending
>                         --- Python-2.7.3.orig/Makefile.pre.in
>                     <http://Makefile.pre.in>
>                       +++ Python-2.7.3/Makefile.pre.in
>                     <http://Makefile.pre.in>
>                     -@@ -1008,7 +1008,7 @@ LIBPL=  $(LIBP)/config
>                     +@@ -1187,7 +1187,7 @@
>                        LIBPC=  $(LIBDIR)/pkgconfig
>                     -
>                     - libainstall:  all python-config
>                     +
>                     + libainstall: @DEF_MAKE_RULE@ python-config
>                       -     @for i in $(LIBDIR) $(LIBP) $(LIBPL)
>                     $(LIBPC); \
>                       +     @for i in $(LIBDIR) $(LIBP) $(LIBPL)
>                     $(LIBPC) $(BINDIR); \
>                     -       do \
>                     -               if test ! -d $(DESTDIR)$$i; then \
>                     -                       echo "Creating directory
>                     $$i"; \
>                     +       do \
>                     +               if test ! -d $(DESTDIR)$$i; then \
>                     +                       echo "Creating directory
>                     $$i"; \
>                     diff --git
>                     a/meta/recipes-devtools/python/python_2.7.13.bb
>                     <http://python_2.7.13.bb>
>                     b/meta/recipes-devtools/python/python_2.7.14.bb
>                     <http://python_2.7.14.bb>
>                     similarity index 99%
>                     rename from
>                     meta/recipes-devtools/python/python_2.7.13.bb
>                     <http://python_2.7.13.bb>
>                     rename to
>                     meta/recipes-devtools/python/python_2.7.14.bb
>                     <http://python_2.7.14.bb>
>                     index dbafb95..13455ff 100644
>                     ---
>                     a/meta/recipes-devtools/python/python_2.7.13.bb
>                     <http://python_2.7.13.bb>
>                     +++
>                     b/meta/recipes-devtools/python/python_2.7.14.bb
>                     <http://python_2.7.14.bb>
>                     @@ -28,7 +28,6 @@ SRC_URI += "\
>                     file://parallel-makeinst-create-bindir.patch \
>                     file://use_sysroot_ncurses_instead_of_host.patch \
>                     file://add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch
>                     \
>                     - file://Don-t-use-getentropy-on-Linux.patch \
>                     file://pass-missing-libraries-to-Extension-for-mul.patch
>                     \
>                     file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch
>                     \
>                       "
>
>
>
>         --
>         _______________________________________________
>         Openembedded-core mailing list
>         Openembedded-core at lists.openembedded.org
>         <mailto:Openembedded-core at lists.openembedded.org>
>         http://lists.openembedded.org/mailman/listinfo/openembedded-core
>         <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180129/d650bbb5/attachment-0002.html>


More information about the Openembedded-core mailing list