mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 23:02:22 +02:00
generate-manifest-3.5.py: add logic to generate native manifest
python3-native supposes to RPROVIDE all native packages as added in generate-manifest-3.5.py, but it does not so far, this leads a problem that sometimes bitbake cant find a runtime provider for a python3-*-native when a new runtime dependency on it being required, this usualy happens after a new native python3-* recipe is created or the old native python3-* recipes are upgraded. To avoid manually extending RPROVIDE every time when a new runtime dependency is introduced, an argument '-n/--native' is added to the manifest generator, allowing it create a native python3 manifest, with a RPROVIDE line only, the RPROVIDE should contain all the sub-packages. The generated python-native-3.5-manifest.inc is also added which is included by python3-native recipe. (From OE-Core rev: 800753069f667cd1664d70b3779150c467e3b3fe) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -13,9 +13,13 @@
|
||||
# 2014 Khem Raj <raj.khem@gmail.com>
|
||||
# Added python3 support
|
||||
#
|
||||
# February 26, 2017 -- Ming Liu <peter.x.liu@external.atlascopco.com>
|
||||
# * Updated to support generating manifest for native python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import argparse
|
||||
|
||||
VERSION = "3.5.0"
|
||||
|
||||
@@ -24,16 +28,17 @@ __version__ = "20140131"
|
||||
|
||||
class MakefileMaker:
|
||||
|
||||
def __init__( self, outfile ):
|
||||
def __init__( self, outfile, isNative ):
|
||||
"""initialize"""
|
||||
self.packages = {}
|
||||
self.targetPrefix = "${libdir}/python%s/" % VERSION[:3]
|
||||
self.isNative = isNative
|
||||
self.output = outfile
|
||||
self.out( """
|
||||
# WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file.
|
||||
# Generator: '%s' Version %s (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
|
||||
# Generator: '%s%s' Version %s (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
|
||||
# Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy
|
||||
""" % ( sys.argv[0], __version__ ) )
|
||||
""" % ( sys.argv[0], ' --native' if isNative else '', __version__ ) )
|
||||
|
||||
#
|
||||
# helper functions
|
||||
@@ -78,6 +83,20 @@ class MakefileMaker:
|
||||
|
||||
global VERSION
|
||||
|
||||
#
|
||||
# generate rprovides line for native
|
||||
#
|
||||
|
||||
if self.isNative:
|
||||
rprovideLine = 'RPROVIDES+="'
|
||||
for name in sorted(self.packages):
|
||||
rprovideLine += "%s-native " % name.replace( '${PN}', 'python3' )
|
||||
rprovideLine += '"'
|
||||
|
||||
self.out( rprovideLine )
|
||||
self.out( "" )
|
||||
return
|
||||
|
||||
#
|
||||
# generate provides line
|
||||
#
|
||||
@@ -160,17 +179,21 @@ class MakefileMaker:
|
||||
self.doEpilog()
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser( description='generate python3 manifest' )
|
||||
parser.add_argument( '-n', '--native', help='generate manifest for native python3', action='store_true' )
|
||||
parser.add_argument( 'outfile', metavar='OUTPUT_FILE', nargs='?', default='', help='Output file (defaults to stdout)' )
|
||||
args = parser.parse_args()
|
||||
|
||||
if len( sys.argv ) > 1:
|
||||
if args.outfile:
|
||||
try:
|
||||
os.unlink(sys.argv[1])
|
||||
os.unlink( args.outfile )
|
||||
except Exception:
|
||||
sys.exc_clear()
|
||||
outfile = open( sys.argv[1], "w" )
|
||||
outfile = open( args.outfile, "w" )
|
||||
else:
|
||||
outfile = sys.stdout
|
||||
|
||||
m = MakefileMaker( outfile )
|
||||
m = MakefileMaker( outfile, args.native )
|
||||
|
||||
# Add packages here. Only specify dlopen-style library dependencies here, no ldd-style dependencies!
|
||||
# Parameters: revision, name, description, dependencies, filenames
|
||||
|
||||
Reference in New Issue
Block a user