From 9c144f0bf3404b31709b8756b61d80a4453e3369 Mon Sep 17 00:00:00 2001 From: Michael Lauer Date: Wed, 20 Feb 2008 17:47:31 +0000 Subject: export SDL_CONFIG for those sdl programs who are not yet using pkgconfig. closes #500 --- classes/sdl.bbclass | 2 ++ 1 file changed, 2 insertions(+) (limited to 'classes') diff --git a/classes/sdl.bbclass b/classes/sdl.bbclass index 23cbf10919..dc4cd8ffa2 100644 --- a/classes/sdl.bbclass +++ b/classes/sdl.bbclass @@ -8,6 +8,8 @@ APPDESKTOP ?= "${WORKDIR}/${PN}.desktop" APPNAME ?= "${PN}" APPIMAGE ?= "${WORKDIR}/${PN}.png" +export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" + sdl_do_sdl_install() { install -d ${D}${datadir}/applications install -d ${D}${datadir}/pixmaps -- cgit v1.2.3 From 1d0ad602b2a9ccc30d87a7bcf5cf4c01fcf6c188 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 21 Feb 2008 11:35:44 +0000 Subject: sanity.bbclass: Add ABI version number and checks so we can warn users when the 'abi' of TMPDIR changes. Add checks for qemu in various scenarios from poky. Add check TMPDIR hasn't moved from poky. Remove now unneeded bitbake version check. --- classes/sanity.bbclass | 67 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 10 deletions(-) (limited to 'classes') diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass index 9994febf0d..9ef2f09fe0 100644 --- a/classes/sanity.bbclass +++ b/classes/sanity.bbclass @@ -2,6 +2,15 @@ # Sanity check the users setup for common misconfigurations # +# +# SANITY_ABI allows us to notify users when the format of TMPDIR changes in +# an incompatible way. Such changes should usually be detailed in the commit +# that breaks the format and have been previously discussed on the mailing list +# with general agreement from the core team. +# +SANITY_ABI = "0" +SANITY_ABIFILE = "${TMPDIR}/abi_version" + def raise_sanity_error(msg): import bb bb.fatal(""" Openembedded's config sanity checker detected a potential misconfiguration. @@ -31,7 +40,7 @@ def check_sanity(e): from distutils.version import LooseVersion except ImportError: def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1 - import os + import os, commands # Check the bitbake version meets minimum requirements minversion = data.getVar('BB_MIN_VERSION', e.data , True) @@ -64,8 +73,8 @@ def check_sanity(e): # Check that the MACHINE is valid, if it is set if data.getVar('MACHINE', e.data, True): - if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data): - messages = messages + 'Please set a valid MACHINE in your local.conf\n' + if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data): + messages = messages + 'Please set a valid MACHINE in your local.conf\n' # Check that the DISTRO is valid # need to take into account DISTRO renaming DISTRO @@ -85,6 +94,19 @@ def check_sanity(e): required_utilities = "patch help2man diffstat texi2html makeinfo cvs svn bzip2 tar gzip gawk md5sum" + if data.getVar('TARGET_ARCH', e.data, True) == "arm": + # qemu-native needs gcc 3.x + if "qemu-native" not in assume_provided and "gcc3-native" in assume_provided: + gcc_version = commands.getoutput("${BUILD_PREFIX}gcc --version | head -n 1 | cut -f 3 -d ' '") + + if not check_gcc3(e.data) and gcc_version[0] != '3': + messages = messages + "gcc3-native was in ASSUME_PROVIDED but the gcc-3.x binary can't be found in PATH" + missing = missing + "gcc-3.x (needed for qemu-native)," + + if "qemu-native" in assume_provided: + if not check_app_exists("qemu-arm", e.data): + messages = messages + "qemu-native was in ASSUME_PROVIDED but the QEMU binaries (qemu-arm) can't be found in PATH" + for util in required_utilities.split(): if not check_app_exists( util, e.data ): missing = missing + "%s," % util @@ -100,7 +122,37 @@ def check_sanity(e): oes_bb_conf = data.getVar( 'OES_BITBAKE_CONF', e.data, True ) if not oes_bb_conf: - messages = messages + 'You do not include OpenEmbeddeds version of conf/bitbake.conf\n' + messages = messages + 'You do not include OpenEmbeddeds version of conf/bitbake.conf. This means your environment is misconfigured, in particular check BBPATH.\n' + + # + # Check that TMPDIR hasn't changed location since the last time we were run + # + tmpdir = data.getVar('TMPDIR', e.data, True) + checkfile = os.path.join(tmpdir, "saved_tmpdir") + if os.path.exists(checkfile): + f = file(checkfile, "r") + if (f.read().strip() != tmpdir): + messages = messages + "Error, TMPDIR has changed location. You need to either move it back to %s or rebuild\n" % tmpdir + else: + f = file(checkfile, "w") + f.write(tmpdir) + f.close() + + # + # Check the 'ABI' of TMPDIR + # + current_abi = data.getVar('SANITY_ABI', e.data, True) + abifile = data.getVar('SANITY_ABIFILE', e.data, True) + if os.path.exists(abifile): + f = file(abifile, "r") + abi = f.read().strip() + if (abi != current_abi): + # Code to convert from one ABI to another could go here if possible. + messages = messages + "Error, TMPDIR has changed ABI (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi) + else: + f = file(abifile, "w") + f.write(current_abi) + f.close() if messages != "": raise_sanity_error(messages) @@ -115,12 +167,7 @@ python check_sanity_eventhandler() { except ImportError: def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1 - if (LooseVersion(bb.__version__) > LooseVersion("1.8.6")): - if getName(e) == "ConfigParsed": - check_sanity(e) - return NotHandled - - if getName(e) == "BuildStarted": + if getName(e) == "ConfigParsed": check_sanity(e) return NotHandled -- cgit v1.2.3 From 4bc37472f48c57a434b5fc479050541cfe869e75 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 21 Feb 2008 13:17:28 +0000 Subject: sanity.bbclass: Remove some now unneeded code --- classes/sanity.bbclass | 5 ----- 1 file changed, 5 deletions(-) (limited to 'classes') diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass index 9ef2f09fe0..08b077a1e1 100644 --- a/classes/sanity.bbclass +++ b/classes/sanity.bbclass @@ -162,11 +162,6 @@ python check_sanity_eventhandler() { from bb import note, error, data, __version__ from bb.event import getName - try: - from distutils.version import LooseVersion - except ImportError: - def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1 - if getName(e) == "ConfigParsed": check_sanity(e) -- cgit v1.2.3 From 8063e34bb175e058ea2de0d8fffc03011f68c3ee Mon Sep 17 00:00:00 2001 From: Rolf Leggewie Date: Thu, 21 Feb 2008 16:18:33 +0000 Subject: fix mirror handling for openmoko, oplinux and nylon. Closes 3585. * patch from 3585 is now fully applied --- classes/nylon-mirrors.bbclass | 8 ++++---- classes/oplinux-mirrors.bbclass | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'classes') diff --git a/classes/nylon-mirrors.bbclass b/classes/nylon-mirrors.bbclass index 25a8b87d9b..02fddc01ba 100644 --- a/classes/nylon-mirrors.bbclass +++ b/classes/nylon-mirrors.bbclass @@ -1,6 +1,6 @@ MIRRORS_append () { -ftp://.*/.*/ http://meshcube.org/nylon/stable/sources/ -https?://.*/.*/ http://meshcube.org/nylon/stable/sources/ -ftp://.*/.*/ http://meshcube.org/nylon/unstable/sources/ -https?://.*/.*/ http://meshcube.org/nylon/unstable/sources/ +ftp://.*/.* http://meshcube.org/nylon/stable/sources/ +https?://.*/.* http://meshcube.org/nylon/stable/sources/ +ftp://.*/.* http://meshcube.org/nylon/unstable/sources/ +https?://.*/.* http://meshcube.org/nylon/unstable/sources/ } \ No newline at end of file diff --git a/classes/oplinux-mirrors.bbclass b/classes/oplinux-mirrors.bbclass index c76e822ce3..59c199485c 100644 --- a/classes/oplinux-mirrors.bbclass +++ b/classes/oplinux-mirrors.bbclass @@ -2,13 +2,13 @@ # Released under the MIT license (see packages/COPYING) MIRRORS_append () { -ftp://.*/.*/ http://digital-opsis.com/oplinux/stable/sources/ -https?://.*/.*/ http://digital-opsis.com/oplinux/stable/sources/ -ftp://.*/.*/ http://digital-opsis.com/oplinux/unstable/sources/ -https?://.*/.*/ http://digital-opsis.com/oplinux/unstable/sources/ +ftp://.*/.* http://digital-opsis.com/oplinux/stable/sources/ +https?://.*/.* http://digital-opsis.com/oplinux/stable/sources/ +ftp://.*/.* http://digital-opsis.com/oplinux/unstable/sources/ +https?://.*/.* http://digital-opsis.com/oplinux/unstable/sources/ -ftp://.*/.*/ http://digital-opsis.com/oplinux-uclibc/stable/sources/ -https?://.*/.*/ http://digital-opsis.com/oplinux-uclibc/stable/sources/ -ftp://.*/.*/ http://digital-opsis.com/oplinux-uclibc/unstable/sources/ -https?://.*/.*/ http://digital-opsis.com/oplinux-uclibc/unstable/sources/ +ftp://.*/.* http://digital-opsis.com/oplinux-uclibc/stable/sources/ +https?://.*/.* http://digital-opsis.com/oplinux-uclibc/stable/sources/ +ftp://.*/.* http://digital-opsis.com/oplinux-uclibc/unstable/sources/ +https?://.*/.* http://digital-opsis.com/oplinux-uclibc/unstable/sources/ } -- cgit v1.2.3 From c75944cb1477cf822e252faeb9ebaf56c2286acf Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 21 Feb 2008 22:38:48 +0000 Subject: kernel-arch.bbclass: Fix obvious typo supposedly causing issues with x86_64. --- classes/kernel-arch.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/kernel-arch.bbclass b/classes/kernel-arch.bbclass index b45f3f9696..5e5d9a94a8 100644 --- a/classes/kernel-arch.bbclass +++ b/classes/kernel-arch.bbclass @@ -5,7 +5,7 @@ # valid_archs = "alpha cris ia64 \ - x86_64,i386 x86 \ + x86_64 i386 x86 \ m68knommu m68k ppc powerpc ppc64 \ sparc sparc64 \ arm arm26 \ -- cgit v1.2.3 From 37f2fe4b801df832e93553a08eff24fec736c7d4 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 21 Feb 2008 22:56:03 +0000 Subject: kernel.bbclass: Fis typo in do_builtin_initramfs. --- classes/kernel.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index 1e325323df..459c553ffe 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -70,7 +70,7 @@ INITRAMFS_IMAGE_TARGET ?= "initramfs-image" do_builtin_initramfs() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - cp "${DEPLOY_DIR_IMAME}/${INITRAMFS_SYMLINK_NAME}" usr/initramfs_data.cpio.gz + cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_SYMLINK_NAME}" usr/initramfs_data.cpio.gz oe_runmake ${KERNEL_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" install -d ${DEPLOY_DIR_IMAGE} install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}-initramfs.bin -- cgit v1.2.3 From 6ca016b5ae51f6384315e5648915d0e94a48ba97 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 23 Feb 2008 18:07:14 +0000 Subject: sanity: Move variable declarations to sanity.conf to workaround problems with bitbake 1.8.10 --- classes/sanity.bbclass | 9 --------- 1 file changed, 9 deletions(-) (limited to 'classes') diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass index 08b077a1e1..f0ffa5c31a 100644 --- a/classes/sanity.bbclass +++ b/classes/sanity.bbclass @@ -2,15 +2,6 @@ # Sanity check the users setup for common misconfigurations # -# -# SANITY_ABI allows us to notify users when the format of TMPDIR changes in -# an incompatible way. Such changes should usually be detailed in the commit -# that breaks the format and have been previously discussed on the mailing list -# with general agreement from the core team. -# -SANITY_ABI = "0" -SANITY_ABIFILE = "${TMPDIR}/abi_version" - def raise_sanity_error(msg): import bb bb.fatal(""" Openembedded's config sanity checker detected a potential misconfiguration. -- cgit v1.2.3 From bbaf9d820b71fa259dc9c5ca28c059108d8f8203 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 23 Feb 2008 19:17:11 +0000 Subject: sanity.bbclass: Cope with empty abi files generated by previous issues --- classes/sanity.bbclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass index f0ffa5c31a..44c74a0354 100644 --- a/classes/sanity.bbclass +++ b/classes/sanity.bbclass @@ -137,7 +137,10 @@ def check_sanity(e): if os.path.exists(abifile): f = file(abifile, "r") abi = f.read().strip() - if (abi != current_abi): + if not abi.isdigit(): + f = file(abifile, "w") + f.write(current_abi) + elif (abi != current_abi): # Code to convert from one ABI to another could go here if possible. messages = messages + "Error, TMPDIR has changed ABI (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi) else: -- cgit v1.2.3 From 8447a7a247485df03adfe336c4e098e29ff777c2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 23 Feb 2008 19:18:27 +0000 Subject: base.bbclass: Cleanups possible with recent improvements in bitbake syntax --- classes/base.bbclass | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index 3250e0ca43..f38a5b7fbc 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -85,7 +85,7 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data): def base_dep_prepend(d): - import bb; + import bb # # Ideally this will check a flag so we will operate properly in # the case where host == build == target, for now we don't work in @@ -814,6 +814,20 @@ python read_subpackage_metadata () { bb.data.setVar(key, sdata[key], d) } +# Make sure MACHINE isn't exported +# (breaks binutils at least) +MACHINE[unexport] = "1" + +# Make sure TARGET_ARCH isn't exported +# (breaks Makefiles using implicit rules, e.g. quilt, as GNU make has this +# in them, undocumented) +TARGET_ARCH[unexport] = "1" + +# Make sure DISTRO isn't exported +# (breaks sysvinit at least) +DISTRO[unexport] = "1" + + def base_after_parse(d): import bb, os, exceptions @@ -833,8 +847,6 @@ def base_after_parse(d): if this_machine and not re.match(need_machine, this_machine): raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine) - - pn = bb.data.getVar('PN', d, 1) # OBSOLETE in bitbake 1.7.4 @@ -846,22 +858,6 @@ def base_after_parse(d): if use_nls != None: bb.data.setVar('USE_NLS', use_nls, d) - # Make sure MACHINE isn't exported - # (breaks binutils at least) - bb.data.delVarFlag('MACHINE', 'export', d) - bb.data.setVarFlag('MACHINE', 'unexport', 1, d) - - # Make sure TARGET_ARCH isn't exported - # (breaks Makefiles using implicit rules, e.g. quilt, as GNU make has this - # in them, undocumented) - bb.data.delVarFlag('TARGET_ARCH', 'export', d) - bb.data.setVarFlag('TARGET_ARCH', 'unexport', 1, d) - - # Make sure DISTRO isn't exported - # (breaks sysvinit at least) - bb.data.delVarFlag('DISTRO', 'export', d) - bb.data.setVarFlag('DISTRO', 'unexport', 1, d) - # Git packages should DEPEND on git-native srcuri = bb.data.getVar('SRC_URI', d, 1) if "git://" in srcuri: @@ -891,7 +887,7 @@ def base_after_parse(d): if len(paths) == 0: return - for s in bb.data.getVar('SRC_URI', d, 1).split(): + for s in srcuri.split(): if not s.startswith("file://"): continue local = bb.data.expand(bb.fetch.localpath(s, d), d) -- cgit v1.2.3 From 3388719cb1741964a43d7eb1cb093e3fcb0a8f56 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 23 Feb 2008 23:40:47 +0000 Subject: base.bbclass: Optimise get_subpkgedata_fn() to minimise expand calls --- classes/base.bbclass | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index f38a5b7fbc..2f74104185 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -777,8 +777,10 @@ def get_subpkgedata_fn(pkg, d): import bb, os archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ") archs.reverse() + pkgdata = bb.data.expand('${STAGING_DIR}/pkgdata/', d) + targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d) for arch in archs: - fn = bb.data.expand('${STAGING_DIR}/pkgdata/' + arch + '${TARGET_VENDOR}-${TARGET_OS}/runtime/%s' % pkg, d) + fn = pkgdata + arch + targetdir + pkg if os.path.exists(fn): return fn return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d) -- cgit v1.2.3 From 89edf25da6cbf515358aaa5fd64987d2a04bbc4f Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 24 Feb 2008 23:35:07 +0000 Subject: package.bbclass: shlib postinst: Check for ldconfig presence before running it. * This helps uclibc systems where ldconfig is optional, in particular 3rd-party systems like OpenWRT. * Per RFC on the list. --- classes/package.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/package.bbclass b/classes/package.bbclass index e267478561..cb4417fc7f 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -515,7 +515,7 @@ emit_pkgdata[dirs] = "${PKGDATA_DIR}/runtime" ldconfig_postinst_fragment() { if [ x"$D" = "x" ]; then - ldconfig + [ -x /sbin/ldconfig ] && /sbin/ldconfig fi } -- cgit v1.2.3 From 5f4deee606d344af8e8aa7f0b3e07f64e7574b6c Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 26 Feb 2008 17:53:29 +0000 Subject: seppuku.bbclass/tinderclient.bbclass: Use exec_func, not exec_task for clean function --- classes/seppuku.bbclass | 2 +- classes/tinderclient.bbclass | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'classes') diff --git a/classes/seppuku.bbclass b/classes/seppuku.bbclass index 834bee34b4..2e097a812e 100644 --- a/classes/seppuku.bbclass +++ b/classes/seppuku.bbclass @@ -303,7 +303,7 @@ python seppuku_eventhandler() { if name == "PkgFailed": if not bb.data.getVar('SEPPUKU_AUTOBUILD', data, True) == "0": - build.exec_task('do_clean', data) + build.exec_func('do_clean', data) elif name == "TaskFailed": cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) diff --git a/classes/tinderclient.bbclass b/classes/tinderclient.bbclass index bc004efb26..0b7fc1d843 100644 --- a/classes/tinderclient.bbclass +++ b/classes/tinderclient.bbclass @@ -328,7 +328,7 @@ def tinder_do_tinder_report(event): log += "<--- TINDERBOX Package %s done (SUCCESS)\n" % data.getVar('PF', event.data, True) elif name == "PkgFailed": if not data.getVar('TINDER_AUTOBUILD', event.data, True) == "0": - build.exec_task('do_clean', event.data) + build.exec_func('do_clean', event.data) log += "<--- TINDERBOX Package %s failed (FAILURE)\n" % data.getVar('PF', event.data, True) status = 200 # remember the failure for the -k case -- cgit v1.2.3 From b9c6764ba5a7f2d439088f42d7d2b82403f2e2b0 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 26 Feb 2008 17:54:55 +0000 Subject: rm_work.bbclass: Add event handler to take care of removing stamps when trying to rebuild packages after sources have been removed. Needs bitbake 1.8 svn to have any effect. --- classes/rm_work.bbclass | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'classes') diff --git a/classes/rm_work.bbclass b/classes/rm_work.bbclass index 4efd39c557..97de5e2774 100644 --- a/classes/rm_work.bbclass +++ b/classes/rm_work.bbclass @@ -25,3 +25,23 @@ do_rm_work_all () { } do_rm_work_all[recrdeptask] = "do_rm_work" addtask rm_work_all after do_rm_work + + +addhandler rmwork_stampfixing_eventhandler +python rmwork_stampfixing_eventhandler() { + from bb.event import getName + import os + + if getName(e) == "StampUpdate": + for (fn, task) in e.targets: + if task == 'rm_work_all': + continue + stamp = "%s.do_rm_work" % e.stampPrefix[fn] + if os.path.exists(stamp): + dir = "%s.*" % e.stampPrefix[fn] + bb.note("Removing stamps: " + dir) + os.system('rm -f '+ dir) + + return NotHandled +} + -- cgit v1.2.3 From 600a590fb7459be81ee6bdb21fbb57dedd44af24 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 26 Feb 2008 17:57:51 +0000 Subject: base.bbclass: Add code to make 'rebuild' continue to work after changes in bitbake. Bitbake 1.8.10 users should be unaffected, bitbake 1.8.11 users will need the latest svn stable branch bitbake. Only the rebuild task is affected by the changes --- classes/base.bbclass | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index 2f74104185..089cd5acd3 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -424,13 +424,21 @@ python base_do_clean() { os.system('rm -f '+ dir) } +#Uncomment this for bitbake 1.8.12 +#addtask rebuild after do_${BB_DEFAULT_TASK} addtask rebuild do_rebuild[dirs] = "${TOPDIR}" do_rebuild[nostamp] = "1" python base_do_rebuild() { """rebuild a package""" - bb.build.exec_task('do_clean', d) - bb.build.exec_task('do_' + bb.data.getVar('BB_DEFAULT_TASK', d, 1), d) + from bb import __version__ + try: + from distutils.version import LooseVersion + except ImportError: + def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1 + if (LooseVersion(__version__) < LooseVersion('1.8.11')): + bb.build.exec_func('do_clean', d) + bb.build.exec_task('do_' + bb.data.getVar('BB_DEFAULT_TASK', d, 1), d) } addtask mrproper @@ -442,7 +450,7 @@ python base_do_mrproper() { if dir == '/': bb.build.FuncFailed("wrong DATADIR") bb.debug(2, "removing " + dir) os.system('rm -rf ' + dir) - bb.build.exec_task('do_clean', d) + bb.build.exec_func('do_clean', d) } addtask fetch @@ -663,6 +671,17 @@ python base_eventhandler() { if pesteruser: bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) + # + # Handle removing stamps for 'rebuild' task + # + if name.startswith("StampUpdate"): + for (fn, task) in e.targets: + #print "%s %s" % (task, fn) + if task == "do_rebuild": + dir = "%s.*" % e.stampPrefix[fn] + bb.note("Removing stamps: " + dir) + os.system('rm -f '+ dir) + if not data in e.__dict__: return NotHandled @@ -900,7 +919,19 @@ def base_after_parse(d): return python () { + import bb + from bb import __version__ base_after_parse(d) + + # Remove this for bitbake 1.8.12 + try: + from distutils.version import LooseVersion + except ImportError: + def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1 + if (LooseVersion(__version__) >= LooseVersion('1.8.11')): + deps = bb.data.getVarFlag('do_rebuild', 'deps', d) or [] + deps.append('do_' + bb.data.getVar('BB_DEFAULT_TASK', d, 1)) + bb.data.setVarFlag('do_rebuild', 'deps', deps, d) } def check_app_exists(app, d): -- cgit v1.2.3 From cce74cd0f9a4c0cfd1ffd8170e58d645d635bc7e Mon Sep 17 00:00:00 2001 From: Michael Lauer Date: Thu, 28 Feb 2008 11:33:09 +0000 Subject: distutils-base.bbclass: package ${PN}-dev first, so that pkgconfig gets a chance to land there --- classes/distutils-base.bbclass | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'classes') diff --git a/classes/distutils-base.bbclass b/classes/distutils-base.bbclass index 5150be76b9..c4551ace83 100644 --- a/classes/distutils-base.bbclass +++ b/classes/distutils-base.bbclass @@ -11,8 +11,17 @@ def python_dir(d): raise "No Python in STAGING_INCDIR. Forgot to build python-native ?" PYTHON_DIR = "${@python_dir(d)}" + +PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}" + FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*" -FILES_${PN}-dbg = "${libdir}/${PYTHON_DIR}/site-packages/.debug \ - ${libdir}/${PYTHON_DIR}/site-packages/*/.debug \ - ${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug" +FILES_${PN}-dev += "\ + ${libdir}/pkgconfig \ + ${libdir}/${PYTHON_DIR}/site-packages/*.la \ +" +FILES_${PN}-dbg = "\ + ${libdir}/${PYTHON_DIR}/site-packages/.debug \ + ${libdir}/${PYTHON_DIR}/site-packages/*/.debug \ + ${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug \ +" -- cgit v1.2.3 From acf313c21359e68fcba042d80ea0e0353aae7b92 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 28 Feb 2008 11:45:52 +0000 Subject: sip(3).bbclass: Fix do_generate task dependencies (#3765) --- classes/sip.bbclass | 2 ++ classes/sip3.bbclass | 2 ++ 2 files changed, 4 insertions(+) (limited to 'classes') diff --git a/classes/sip.bbclass b/classes/sip.bbclass index ae186bd04a..30c08b1ed9 100644 --- a/classes/sip.bbclass +++ b/classes/sip.bbclass @@ -55,6 +55,8 @@ sip_do_generate() { done } +do_generate[deptask] = "do_populate_staging" + EXPORT_FUNCTIONS do_generate addtask generate after do_unpack do_patch before do_configure diff --git a/classes/sip3.bbclass b/classes/sip3.bbclass index 1dd42ba86b..7ecc63bf02 100644 --- a/classes/sip3.bbclass +++ b/classes/sip3.bbclass @@ -53,6 +53,8 @@ sip3_do_generate() { done } +do_generate[deptask] = "do_populate_staging" + EXPORT_FUNCTIONS do_generate addtask generate after do_unpack do_patch before do_configure -- cgit v1.2.3 From 70d0879a2267b4f02025ff0f323c3659fa81d68d Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 28 Feb 2008 11:54:41 +0000 Subject: mono.bclass: Fix the location used for mono clilibs information to be host specific otherwise this will break when multiple arch builds are made. shlibs was fixed in a similar way. Note that mono apps will need to be rebuilt after this change --- classes/mono.bbclass | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'classes') diff --git a/classes/mono.bbclass b/classes/mono.bbclass index ccb16d9acc..cf8dd15bdf 100644 --- a/classes/mono.bbclass +++ b/classes/mono.bbclass @@ -52,6 +52,8 @@ def mono_find_provides_and_requires(files, d): requires = [e for e in requires if not e in provides] return provides, requires +CLILIBSDIR = "${STAGING_DIR_HOST}/clilibs" + python mono_do_clilibs() { import bb, os, re, os.path @@ -70,14 +72,9 @@ python mono_do_clilibs() { bb.error("WORKDIR not defined") return - staging = bb.data.getVar('STAGING_DIR', d, 1) - if not staging: - bb.error("STAGING_DIR not defined") - return - pkgdest = bb.data.getVar('PKGDEST', d, 1) - clilibs_dir = os.path.join(staging, "clilibs") + clilibs_dir = bb.data.getVar('CLILIBSDIR', d, 1) bb.mkdirhier(clilibs_dir) provides, requires = {}, {} -- cgit v1.2.3 From 410a115fbb75f0b715399d927f1d67b5c512fdf8 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 28 Feb 2008 12:03:50 +0000 Subject: classes: Improve various staging variable references --- classes/package.bbclass | 2 +- classes/package_ipk.bbclass | 4 ++++ classes/qt3e.bbclass | 4 ++-- classes/qt3x11.bbclass | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/package.bbclass b/classes/package.bbclass index cb4417fc7f..325c0b52f5 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -519,7 +519,7 @@ if [ x"$D" = "x" ]; then fi } -SHLIBSDIR = "${STAGING_DIR}/${HOST_SYS}/shlibs" +SHLIBSDIR = "${STAGING_DIR_HOST}/shlibs" python package_do_shlibs() { import os, re, os.path diff --git a/classes/package_ipk.bbclass b/classes/package_ipk.bbclass index de7f0fe0c4..2feaeba3b3 100644 --- a/classes/package_ipk.bbclass +++ b/classes/package_ipk.bbclass @@ -12,6 +12,10 @@ python package_ipk_fn () { } python package_ipk_install () { + # + # Warning - this function is not multimachine safe (see stagingdir reference)! + # + import os, sys pkg = bb.data.getVar('PKG', d, 1) pkgfn = bb.data.getVar('PKGFN', d, 1) diff --git a/classes/qt3e.bbclass b/classes/qt3e.bbclass index 98c47adb90..35958b34ab 100644 --- a/classes/qt3e.bbclass +++ b/classes/qt3e.bbclass @@ -1,8 +1,8 @@ # # override variables set by qmake_base to compile Qt/X11 apps # -export QTDIR="${STAGING_DIR}/${HOST_SYS}/qte3" -export QTEDIR="${STAGING_DIR}/${HOST_SYS}/qte3" +export QTDIR="${STAGING_DIR_HOST}/qte3" +export QTEDIR="${STAGING_DIR_HOST}/qte3" export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic3" export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc3" export OE_QMAKE_CXXFLAGS="${CXXFLAGS} " diff --git a/classes/qt3x11.bbclass b/classes/qt3x11.bbclass index 67f2cf7348..5408b7f342 100644 --- a/classes/qt3x11.bbclass +++ b/classes/qt3x11.bbclass @@ -3,7 +3,7 @@ EXTRA_QMAKEVARS_POST += "CONFIG+=thread" # # override variables set by qmake_base to compile Qt/X11 apps # -export QTDIR = "${STAGING_DIR}/${HOST_SYS}/qt3" +export QTDIR = "${STAGING_DIR_HOST}/qt3" export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/uic3" export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/moc3" export OE_QMAKE_CXXFLAGS = "${CXXFLAGS} -DQT_NO_XIM" -- cgit v1.2.3 From 6d4e75963cac25b5b936c3c72f5734634d6fd06a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 28 Feb 2008 13:21:07 +0000 Subject: distutils.bbclass: Tweak staging variables --- classes/distutils.bbclass | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/distutils.bbclass b/classes/distutils.bbclass index 18aee09a26..fa34565eaf 100644 --- a/classes/distutils.bbclass +++ b/classes/distutils.bbclass @@ -13,16 +13,15 @@ distutils_do_compile() { } distutils_stage_headers() { - install -d ${STAGING_DIR_HOST}${layout_prefix}/lib/${PYTHON_DIR}/site-packages + install -d ${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ ${STAGING_BINDIR_NATIVE}/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \ oefatal "python setup.py install_headers execution failed." } distutils_stage_all() { - install -d ${STAGING_DIR_HOST}${layout_prefix}/lib/${PYTHON_DIR}/site-packages - # is this missing a lib below? - PYTHONPATH=${STAGING_DIR_HOST}${layout_prefix}/${PYTHON_DIR}/site-packages \ + install -d ${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages + PYTHONPATH=${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages \ BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \ oefatal "python setup.py install (stage) execution failed." -- cgit v1.2.3 From def428fe2497719bd7dd6405df2fe8c5f1f63bca Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 28 Feb 2008 13:29:47 +0000 Subject: rootfs_deb.bbclass: Fix apt.conf handling (from poky) --- classes/rootfs_deb.bbclass | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'classes') diff --git a/classes/rootfs_deb.bbclass b/classes/rootfs_deb.bbclass index c2c4a764e4..5237285e4c 100644 --- a/classes/rootfs_deb.bbclass +++ b/classes/rootfs_deb.bbclass @@ -10,12 +10,8 @@ fakeroot rootfs_deb_do_rootfs () { mkdir -p ${IMAGE_ROOTFS}/var/dpkg/info mkdir -p ${IMAGE_ROOTFS}/var/dpkg/updates - mkdir -p ${STAGING_ETCDIR_NATIVE}/apt/ - rm -f ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev rm -f ${STAGING_ETCDIR_NATIVE}/apt/preferences - > ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev - > ${STAGING_ETCDIR_NATIVE}/apt/preferences > ${IMAGE_ROOTFS}/var/dpkg/status > ${IMAGE_ROOTFS}/var/dpkg/available # > ${STAGING_DIR}/var/dpkg/status @@ -40,9 +36,9 @@ fakeroot rootfs_deb_do_rootfs () { priority=$(expr $priority + 5) done - tac ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev > ${STAGING_DIR}/etc/apt/sources.list + tac ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev > ${STAGING_ETCDIR_NATIVE}/apt/sources.list - cat "${STAGING_DIR}/etc/apt/apt.conf.sample" \ + cat "${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample" \ | sed -e 's#Architecture ".*";#Architecture "${TARGET_ARCH}";#' \ > "${STAGING_ETCDIR_NATIVE}/apt/apt-rootfs.conf" -- cgit v1.2.3 From ae34dd31f15536b14493dcb91eba0209f3e18bd0 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 28 Feb 2008 13:30:58 +0000 Subject: package_deb.bbclass: Update apt.conf location (from poky) --- classes/package_deb.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'classes') diff --git a/classes/package_deb.bbclass b/classes/package_deb.bbclass index 1a3622c3bb..22b6166685 100644 --- a/classes/package_deb.bbclass +++ b/classes/package_deb.bbclass @@ -28,7 +28,7 @@ python do_package_deb_install () { pkgfn = bb.data.getVar('PKGFN', d, 1) rootfs = bb.data.getVar('IMAGE_ROOTFS', d, 1) debdir = bb.data.getVar('DEPLOY_DIR_DEB', d, 1) - stagingdir = bb.data.getVar('STAGING_DIR', d, 1) + apt_config = bb.data.expand('${STAGING_ETCDIR_NATIVE}/apt/apt.conf', d) stagingbindir = bb.data.getVar('STAGING_BINDIR_NATIVE', d, 1) tmpdir = bb.data.getVar('TMPDIR', d, 1) @@ -55,7 +55,7 @@ python do_package_deb_install () { # Set up environment apt_config_backup = os.getenv('APT_CONFIG') - os.putenv('APT_CONFIG', os.path.join(stagingdir, 'etc', 'apt', 'apt.conf')) + os.putenv('APT_CONFIG', apt_config) path = os.getenv('PATH') os.putenv('PATH', '%s:%s' % (stagingbindir, os.getenv('PATH'))) -- cgit v1.2.3