diff --git a/openembedded/classes/base.bbclass b/openembedded/classes/base.bbclass index 9b87828594..21feaab6e6 100644 --- a/openembedded/classes/base.bbclass +++ b/openembedded/classes/base.bbclass @@ -371,7 +371,11 @@ def oe_unpack_file(file, data, url = None): elif file.endswith('.bz2'): cmd = 'bzip2 -dc %s > %s' % (file, efile) elif file.endswith('.zip'): - cmd = 'unzip -q %s' % file + cmd = 'unzip -q' + (type, host, path, user, pswd, parm) = bb.decodeurl(url) + if 'dos' in parm: + cmd = '%s -a' % cmd + cmd = '%s %s' % (cmd, file) elif os.path.isdir(file): filesdir = os.path.realpath(bb.data.getVar("FILESDIR", data, 1)) destdir = "." @@ -449,7 +453,7 @@ python base_do_patch() { if not "patch" in parm: continue - bb.fetch.init([url], d) + bb.fetch.init([url],d) url = bb.encodeurl((type, host, path, user, pswd, [])) local = os.path.join('/', bb.fetch.localpath(url, d)) diff --git a/openembedded/classes/kernel.bbclass b/openembedded/classes/kernel.bbclass index bbe047a2f1..471acd4a61 100644 --- a/openembedded/classes/kernel.bbclass +++ b/openembedded/classes/kernel.bbclass @@ -150,7 +150,7 @@ kernel_do_install() { else oenote "no modules to install" fi - + install -d ${D}/${KERNEL_IMAGEDEST} install -d ${D}/boot install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_RELEASE} @@ -391,9 +391,16 @@ python populate_packages_prepend () { v = bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) or "0" if v == "1": kv = bb.data.getVar("KERNEL_MAJOR_VERSION", d, 1) - packages = bb.data.getVar("PACKAGES", d, 1) + packages = bb.data.getVar("PACKAGES", d, 1).split() module_re = re.compile("^kernel-module-") - for p in packages.split(): + + newmetapkg = "kernel-modules-%s" % kv + bb.data.setVar('ALLOW_EMPTY_' + newmetapkg, "1", d) + bb.data.setVar('FILES_' + newmetapkg, "", d) + + newmetapkg_rdepends = [] + + for p in packages: if not module_re.match(p): continue pkg = bb.data.getVar("PKG_%s" % p, d, 1) or p @@ -405,4 +412,11 @@ python populate_packages_prepend () { else: rprovides = pkg bb.data.setVar("RPROVIDES_%s" % p, rprovides, d) + newmetapkg_rdepends.append(newpkg) + + bb.data.setVar('RDEPENDS_' + newmetapkg, ' '.join(newmetapkg_rdepends), d) + bb.data.setVar('DESCRIPTION_' + newmetapkg, 'Kernel modules meta package', d) + packages.append(newmetapkg) + bb.data.setVar('PACKAGES', ' '.join(packages), d) + } diff --git a/openembedded/classes/package.bbclass b/openembedded/classes/package.bbclass index 71795e8bb6..fbeabb64b3 100644 --- a/openembedded/classes/package.bbclass +++ b/openembedded/classes/package.bbclass @@ -68,7 +68,7 @@ python package_mapping_rename_hook () { } -def do_split_packages(d, root, file_regex, output_pattern, description, postinst=None, recursive=False, hook=None, extra_depends=None, aux_files_pattern=None, postrm=None, allow_dirs=False, prepend=False, match_path=False): +def do_split_packages(d, root, file_regex, output_pattern, description, postinst=None, recursive=False, hook=None, extra_depends=None, aux_files_pattern=None, postrm=None, allow_dirs=False, prepend=False, match_path=False, aux_files_pattern_verbatim=None): import os, os.path, bb dvar = bb.data.getVar('D', d, 1) @@ -125,6 +125,12 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst the_files.append(fp % on) else: the_files.append(aux_files_pattern % on) + if aux_files_pattern_verbatim: + if type(aux_files_pattern_verbatim) is list: + for fp in aux_files_pattern_verbatim: + the_files.append(fp % m.group(1)) + else: + the_files.append(aux_files_pattern_verbatim % m.group(1)) bb.data.setVar('FILES_' + pkg, " ".join(the_files), d) if extra_depends != '': the_depends = bb.data.getVar('RDEPENDS_' + pkg, d, 1) diff --git a/openembedded/classes/tinderclient.bbclass b/openembedded/classes/tinderclient.bbclass index 1c6a6c497f..f9243f7108 100644 --- a/openembedded/classes/tinderclient.bbclass +++ b/openembedded/classes/tinderclient.bbclass @@ -1,9 +1,6 @@ def tinder_form_data(bound, dict, log): - """ - Create the boundary for the HTTP Post - """ output = [] - + #br # for each key in the dictionary for name in dict: output.append( "--" + bound ) @@ -214,7 +211,7 @@ def tinder_print_env(): return "\n".join(output) % vars() -def tinder_tinder_start(d): +def tinder_tinder_start(d, event): """ PRINT the configuration of this build """ @@ -223,13 +220,18 @@ def tinder_tinder_start(d): config = tinder_print_info(d) #env = tinder_print_env() time_end = tinder_time_string() + packages = " ".join( event.getPkgs() ) output = [] output.append( "---> TINDERBOX PRINTING CONFIGURATION %(time_start)s" ) output.append( config ) #output.append( env ) output.append( "<--- TINDERBOX FINISHED PRINTING CONFIGURATION %(time_end)s" ) - output.append( "" ) + output.append( "---> TINDERBOX BUILDING '%(packages)s'" ) + output.append( "<--- TINDERBOX STARTING BUILD NOW" ) + + output.append( "" ) + return "\n".join(output) % vars() def tinder_do_tinder_report(event): @@ -252,11 +254,11 @@ def tinder_do_tinder_report(event): name = getName(event) log = "" status = 1 - + #print asd # Check what we need to do Build* shows we start or are done if name == "BuildStarted": tinder_build_start(event.data) - log = tinder_tinder_start(event.data) + log = tinder_tinder_start(event.data,event) try: # truncate the tinder log file @@ -290,8 +292,18 @@ def tinder_do_tinder_report(event): log += "<--- TINDERBOX Package %s failed (FAILURE)\n" % data.getVar('P', event.data, True) status = 200 elif name == "BuildCompleted": - log += "Build Completed\n" + log += "Build Completed\n" status = 100 + elif name == "MultipleProviders": + log += "---> TINDERBOX Multiple Providers\n" + log += "multiple providers are available (%s);\n" % ", ".join(event.getCandidates()) + log += "consider defining PREFERRED_PROVIDER_%s\n" % event.getItem() + log += "is runtime: %d\n" % event.isRuntime() + log += "<--- TINDERBOX Multiple Providers\n" + elif name == "NoProvider": + log += "Error: No Provider for: %s\n" % event.getItem() + log += "Error:Was Runtime: %d\n" % event.isRuntime() + status = 200 # now post the log if len(log) == 0: @@ -307,7 +319,6 @@ addhandler tinderclient_eventhandler python tinderclient_eventhandler() { from bb import note, error, data from bb.event import NotHandled - do_tinder_report = data.getVar('TINDER_REPORT', e.data, True) if do_tinder_report and do_tinder_report == "1": tinder_do_tinder_report(e)