summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openembedded.org>2007-08-09 08:41:19 +0000
committerMarcin Juszkiewicz <hrw@openembedded.org>2007-08-09 08:41:19 +0000
commit9d829ed05c295df608b4fc108eb1c628fd06fd39 (patch)
treec1b27cfe4498f8abef1a61325922906f3e6a32ff /classes
parent1434b204e16e87b7f59f074f3036d5dcbcf0116f (diff)
parent6ccac10beeaaa02a86081bd6179fd57c208ad6b1 (diff)
merge of '76e1e69496801009ea0aa69c84f76e858978ab99'
and 'db976a98427dd6a195e2cf167e225de2d0206aea'
Diffstat (limited to 'classes')
-rw-r--r--classes/autotools.bbclass11
-rw-r--r--classes/base.bbclass200
-rw-r--r--classes/binconfig.bbclass2
-rw-r--r--classes/cpan-base.bbclass55
-rw-r--r--classes/cpan.bbclass52
-rw-r--r--classes/cpan_build.bbclass47
-rw-r--r--classes/devshell.bbclass9
-rw-r--r--classes/distutils-base.bbclass6
-rw-r--r--classes/distutils.bbclass37
-rw-r--r--classes/dsmg600-image.bbclass3
-rw-r--r--classes/e.bbclass15
-rw-r--r--classes/efl.bbclass53
-rw-r--r--classes/efl_base.bbclass20
-rw-r--r--classes/efl_library.bbclass9
-rw-r--r--classes/gconf.bbclass2
-rw-r--r--classes/gtk-icon-cache.bbclass3
-rw-r--r--classes/icecc.bbclass4
-rw-r--r--classes/image.bbclass33
-rw-r--r--classes/insane.bbclass60
-rw-r--r--classes/kernel-arch.bbclass6
-rw-r--r--classes/kernel.bbclass30
-rw-r--r--classes/lsppchd-image.bbclass10
-rw-r--r--classes/lsppchg-image.bbclass10
-rw-r--r--classes/magicbox-image.bbclass37
-rw-r--r--classes/meta.bbclass5
-rw-r--r--classes/n2100-image.bbclass32
-rw-r--r--classes/nas100d-image.bbclass3
-rw-r--r--classes/native.bbclass3
-rw-r--r--classes/nslu2-image.bbclass4
-rw-r--r--classes/nylon-image.bbclass5
-rw-r--r--classes/openmoko-base.bbclass1
-rw-r--r--classes/openmoko-panel-plugin.bbclass4
-rw-r--r--classes/openmoko2.bbclass33
-rw-r--r--classes/opie.bbclass19
-rw-r--r--classes/oplinux-mirrors.bbclass14
-rw-r--r--classes/own-mirrors.bbclass4
-rw-r--r--classes/package.bbclass26
-rw-r--r--classes/package_deb.bbclass18
-rw-r--r--classes/package_ipk.bbclass10
-rw-r--r--classes/package_tar.bbclass2
-rw-r--r--classes/palmtop.bbclass7
-rw-r--r--classes/patch.bbclass135
-rw-r--r--classes/pkgconfig.bbclass11
-rw-r--r--classes/qmake-base.bbclass2
-rw-r--r--classes/qpf.bbclass4
-rw-r--r--classes/qt4x11.bbclass1
-rw-r--r--classes/rm_work.bbclass7
-rw-r--r--classes/rootfs_deb.bbclass25
-rw-r--r--classes/rootfs_ipk.bbclass9
-rw-r--r--classes/sanity.bbclass15
-rw-r--r--classes/sdk.bbclass32
-rw-r--r--classes/seppuku.bbclass180
-rw-r--r--classes/siteinfo.bbclass9
-rw-r--r--classes/storcenter-image.bbclass30
-rw-r--r--classes/tinderclient.bbclass4
-rw-r--r--classes/turbostation-image.bbclass32
-rw-r--r--classes/update-rc.d.bbclass10
-rw-r--r--classes/xfce.bbclass9
58 files changed, 1109 insertions, 310 deletions
diff --git a/classes/autotools.bbclass b/classes/autotools.bbclass
index 33546e0eb6..fccf2b6d80 100644
--- a/classes/autotools.bbclass
+++ b/classes/autotools.bbclass
@@ -15,6 +15,10 @@ def autotools_dep_prepend(d):
if not pn in ['libtool', 'libtool-native', 'libtool-cross']:
deps += 'libtool-native '
+ if not bb.data.inherits_class('native', d) \
+ and not bb.data.inherits_class('cross', d) \
+ and not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1):
+ deps += 'libtool-cross '
return deps + 'gnu-config-native '
@@ -135,6 +139,13 @@ autotools_do_configure() {
autotools_do_install() {
oe_runmake 'DESTDIR=${D}' install
+
+ for i in `find ${D} -name "*.la"` ; do \
+ sed -i -e s:${STAGING_LIBDIR}:${libdir}:g $i
+ sed -i -e s:${D}::g $i
+ sed -i -e 's:-I${WORKDIR}\S*: :g' $i
+ sed -i -e 's:-L${WORKDIR}\S*: :g' $i
+ done
}
STAGE_TEMP="${WORKDIR}/temp-staging"
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 53139e19fa..1294e41c65 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -10,6 +10,67 @@ def base_path_join(a, *p):
path += '/' + b
return path
+# for MD5/SHA handling
+def base_chk_load_parser(config_path):
+ import ConfigParser, os, bb
+ parser = ConfigParser.ConfigParser()
+ if not len(parser.read(config_path)) == 1:
+ bb.note("Can not open the '%s' ini file" % config_path)
+ raise Exception("Can not open the '%s'" % config_path)
+
+ return parser
+
+def base_chk_file(parser, pn, pv, src_uri, localpath, data):
+ import os, bb
+ # Try PN-PV-SRC_URI first and then try PN-SRC_URI
+ # we rely on the get method to create errors
+ pn_pv_src = "%s-%s-%s" % (pn,pv,src_uri)
+ pn_src = "%s-%s" % (pn,src_uri)
+ if parser.has_section(pn_pv_src):
+ md5 = parser.get(pn_pv_src, "md5")
+ sha256 = parser.get(pn_pv_src, "sha256")
+ elif parser.has_section(pn_src):
+ md5 = parser.get(pn_src, "md5")
+ sha256 = parser.get(pn_src, "sha256")
+ elif parser.has_section(src_uri):
+ md5 = parser.get(src_uri, "md5")
+ sha256 = parser.get(src_uri, "sha256")
+ else:
+ return False
+ #raise Exception("Can not find a section for '%s' '%s' and '%s'" % (pn,pv,src_uri))
+
+ # md5 and sha256 should be valid now
+ if not os.path.exists(localpath):
+ bb.note("The localpath does not exist '%s'" % localpath)
+ raise Exception("The path does not exist '%s'" % localpath)
+
+
+ # call md5(sum) and shasum
+ try:
+ md5pipe = os.popen('md5sum ' + localpath)
+ md5data = (md5pipe.readline().split() or [ "" ])[0]
+ md5pipe.close()
+ except OSError:
+ raise Exception("Executing md5sum failed")
+
+ try:
+ shapipe = os.popen('PATH=%s oe_sha256sum %s' % (bb.data.getVar('PATH', data, True), localpath))
+ shadata = (shapipe.readline().split() or [ "" ])[0]
+ shapipe.close()
+ except OSError:
+ raise Exception("Executing shasum failed")
+
+ if not md5 == md5data:
+ bb.note("The MD5Sums did not match. Wanted: '%s' and Got: '%s'" % (md5,md5data))
+ raise Exception("MD5 Sums do not match. Wanted: '%s' Got: '%s'" % (md5, md5data))
+
+ if not sha256 == shadata:
+ bb.note("The SHA256 Sums do not match. Wanted: '%s' Got: '%s'" % (sha256,shadata))
+ raise Exception("SHA256 Sums do not match. Wanted: '%s' Got: '%s'" % (sha256, shadata))
+
+ return True
+
+
def base_dep_prepend(d):
import bb;
#
@@ -17,17 +78,13 @@ def base_dep_prepend(d):
# the case where host == build == target, for now we don't work in
# that case though.
#
- deps = ""
+ deps = "shasum-native "
+ if bb.data.getVar('PN', d, True) == "shasum-native":
+ deps = ""
# INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not
# we need that built is the responsibility of the patch function / class, not
# the application.
- patchdeps = bb.data.getVar("PATCHTOOL", d, 1)
- if patchdeps:
- patchdeps = "%s-native" % patchdeps
- if not patchdeps in bb.data.getVar("PROVIDES", d, 1):
- deps = patchdeps
-
if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d):
if (bb.data.getVar('HOST_SYS', d, 1) !=
bb.data.getVar('BUILD_SYS', d, 1)):
@@ -218,8 +275,12 @@ oe_libinstall() {
# If such file doesn't exist, try to cut version suffix
if [ ! -f "$lafile" ]; then
- libname=`echo "$libname" | sed 's/-[0-9.]*$//'`
- lafile=$libname.la
+ libname1=`echo "$libname" | sed 's/-[0-9.]*$//'`
+ lafile1=$libname.la
+ if [ -f "$lafile1" ]; then
+ libname=$libname1
+ lafile=$lafile1
+ fi
fi
if [ -f "$lafile" ]; then
@@ -378,6 +439,7 @@ python base_do_mrproper() {
addtask fetch
do_fetch[dirs] = "${DL_DIR}"
+do_fetch[depends] = "shasum-native:do_populate_staging"
python base_do_fetch() {
import sys
@@ -402,6 +464,40 @@ python base_do_fetch() {
except bb.fetch.FetchError:
(type, value, traceback) = sys.exc_info()
raise bb.build.FuncFailed("Fetch failed: %s" % value)
+ except bb.fetch.MD5SumError:
+ (type, value, traceback) = sys.exc_info()
+ raise bb.build.FuncFailed("MD5 failed: %s" % value)
+ except:
+ (type, value, traceback) = sys.exc_info()
+ raise bb.build.FuncFailed("Unknown fetch Error: %s" % value)
+
+
+ # Verify the SHA and MD5 sums we have in OE and check what do
+ # in
+ check_sum = bb.which(bb.data.getVar('BBPATH', d, True), "conf/checksums.ini")
+ if not check_sum:
+ bb.note("No conf/checksums.ini found, not checking checksums")
+ return
+
+ try:
+ parser = base_chk_load_parser(check_sum)
+ except:
+ bb.note("Creating the CheckSum parser failed")
+ return
+
+ pv = bb.data.getVar('PV', d, True)
+ pn = bb.data.getVar('PN', d, True)
+
+ # Check each URI
+ for url in src_uri.split():
+ localpath = bb.data.expand(bb.fetch.localpath(url, localdata), localdata)
+ (type,host,path,_,_,_) = bb.decodeurl(url)
+ uri = "%s://%s%s" % (type,host,path)
+ try:
+ if not base_chk_file(parser, pn, pv,uri, localpath, d):
+ bb.note("%s-%s-%s has no section, not checking URI" % (pn,pv,uri))
+ except Exception:
+ raise bb.build.FuncFailed("Checksum of '%s' failed" % uri)
}
addtask fetchall after do_fetch
@@ -696,9 +792,9 @@ python read_subpackage_metadata () {
bb.data.setVar(key, sdata[key], d)
}
-def base_after_parse_two(d):
- import bb
- import exceptions
+def base_after_parse(d):
+ import bb, os, exceptions
+
source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0)
if not source_mirror_fetch:
need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1)
@@ -715,6 +811,8 @@ def base_after_parse_two(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
@@ -726,20 +824,33 @@ def base_after_parse_two(d):
if use_nls != None:
bb.data.setVar('USE_NLS', use_nls, d)
-def base_after_parse(d):
- import bb, os
-
- # Make sure MACHINE *isn't* exported
+ # 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 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:
+ depends = bb.data.getVarFlag('do_fetch', 'depends', d) or ""
+ depends = depends + " git-native:do_populate_staging"
+ bb.data.setVarFlag('do_fetch', 'depends', depends, d)
mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1)
old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1)
if (old_arch == mach_arch):
# Nothing to do
return
- if (bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) == '0'):
+ override = bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1)
+
+ if not override or override == '0':
return
+
paths = []
for p in [ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ]:
paths.append(bb.data.expand(os.path.join(p, mach_arch), d))
@@ -751,12 +862,64 @@ def base_after_parse(d):
bb.data.setVar('PACKAGE_ARCH', mach_arch, d)
return
+#
+# Various backwards compatibility stuff to be removed
+# when we switch to bitbake 1.8.2+ as a minimum version
+#
+def base_oldbitbake_workarounds(d):
+ import bb
+ from bb import __version__
+ from distutils.version import LooseVersion
+
+ if (LooseVersion(__version__) > "1.8.0"):
+ return
+
+ pn = bb.data.getVar('PN', d, True)
+ srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, True)
+ if srcdate != None:
+ bb.data.setVar('SRCDATE', srcdate, d)
+ depends = bb.data.getVar('DEPENDS', d, False)
+ patchdeps = bb.data.getVar("PATCHTOOL", d, True)
+ if patchdeps:
+ patchdeps = "%s-native " % patchdeps
+ if not patchdeps in bb.data.getVar("PROVIDES", d, True):
+ depends = patchdeps + depends
+ if bb.data.inherits_class('rootfs_ipk', d):
+ depends = "ipkg-native ipkg-utils-native fakeroot-native " + depends
+ if bb.data.inherits_class('rootfs_deb', d):
+ depends = "dpkg-native apt-native fakeroot-native " + depends
+ if bb.data.inherits_class('image', d):
+ depends = "makedevs-native " + depends
+ for type in (bb.data.getVar('IMAGE_FSTYPES', d, True) or "").split():
+ deps = bb.data.getVar('IMAGE_DEPENDS_%s' % type, d) or ""
+ if deps:
+ depends = depends + " %s" % deps
+ for dep in (bb.data.getVar('EXTRA_IMAGEDEPENDS', d, True) or "").split():
+ depends = depends + " %s" % dep
+
+ packages = bb.data.getVar('PACKAGES', d, True)
+ if packages != '':
+ if bb.data.inherits_class('package_ipk', d):
+ depends = "ipkg-utils-native " + depends
+ if bb.data.inherits_class('package_deb', d):
+ depends = "dpkg-native " + depends
+ if bb.data.inherits_class('package', d):
+ depends = "${PACKAGE_DEPENDS} fakeroot-native " + depends
+
+ bb.data.setVar('DEPENDS', depends, d)
python () {
- base_after_parse_two(d)
+ base_oldbitbake_workarounds(d)
base_after_parse(d)
}
+# Remove me when we switch to bitbake 1.8.8
+def base_get_srcrev(d):
+ import bb
+
+ if hasattr(bb.fetch, "get_srcrev"):
+ return bb.fetch.get_srcrev(d)
+ return "NOT IMPLEMENTED"
# Patch handling
inherit patch
@@ -821,6 +984,7 @@ ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.tux.org/pub/sites/vic
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://gd.tuwien.ac.at/utils/admin-tools/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://sunsite.ualberta.ca/pub/Mirror/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://the.wiretapped.net/pub/security/host-security/lsof/
+http://www.apache.org/dist http://archive.apache.org/dist
}
diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass
index dadf2dddfc..497b78f454 100644
--- a/classes/binconfig.bbclass
+++ b/classes/binconfig.bbclass
@@ -18,6 +18,8 @@ def get_binconfig_mangle(d):
s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'"
s += " -e 's:OEPREFIX:${STAGING_LIBDIR}/..:'"
s += " -e 's:OEEXECPREFIX:${STAGING_LIBDIR}/..:'"
+ s += " -e 's:-I${WORKDIR}:-I${STAGING_INCDIR}:'"
+ s += " -e 's:-L${WORKDIR}:-L${STAGING_LIBDIR}:'"
return s
BINCONFIG_GLOB ?= "*-config"
diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
new file mode 100644
index 0000000000..cc0d11e515
--- /dev/null
+++ b/classes/cpan-base.bbclass
@@ -0,0 +1,55 @@
+#
+# cpan-base providers various perl related information needed for building
+# cpan modules
+#
+FILES_${PN} += "${libdir}/perl5 ${datadir}/perl5"
+
+DEPENDS += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}"
+RDEPENDS += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
+
+# Determine the staged version of perl from the perl configuration file
+def get_perl_version(d):
+ import os, bb, re
+ cfg = bb.data.expand('${STAGING_DIR}/${HOST_SYS}/perl/config.sh', d)
+ try:
+ f = open(cfg, 'r')
+ except IOError:
+ return None
+ l = f.readlines();
+ f.close();
+ r = re.compile("version='(\d\.\d\.\d)'")
+ for s in l:
+ m = r.match(s)
+ if m:
+ return m.group(1)
+ return None
+
+# Only 5.8.7 and 5.8.4 existed at the time we moved to the new layout
+def is_new_perl(d):
+ ver = get_perl_version(d)
+ if ver == "5.8.4" or ver == "5.8.7":
+ return "no"
+ return "yes"
+
+# Determine where the library directories are
+def perl_get_libdirs(d):
+ import bb
+ libdir = bb.data.getVar('libdir', d, 1)
+ if is_new_perl(d) == "yes":
+ libdirs = libdir + '/perl5'
+ else:
+ libdirs = libdir + '/*/*/perl5'
+ return libdirs
+
+def is_target(d):
+ import bb
+ if not bb.data.inherits_class('native', d):
+ return "yes"
+ return "no"
+
+IS_NEW_PERL = "${@is_new_perl(d)}"
+PERLLIBDIRS = "${@perl_get_libdirs(d)}"
+
+FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
+ ${PERLLIBDIRS}/auto/*/*/.debug \
+ ${PERLLIBDIRS}/auto/*/*/*/.debug"
diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 74bbebf882..3250528c7a 100644
--- a/classes/cpan.bbclass
+++ b/classes/cpan.bbclass
@@ -1,32 +1,52 @@
#
# This is for perl modules that use the old Makefile.PL build system
#
-FILES_${PN} += '${libdir}/perl5'
-EXTRA_CPANFLAGS = ""
+inherit cpan-base
-DEPENDS += "perl-native"
-RDEPENDS += "perl"
+EXTRA_CPANFLAGS ?= ""
+
+# Env var which tells perl if it should use host (no) or target (yes) settings
+export PERLCONFIGTARGET = "${@is_target(d)}"
+
+# Env var which tells perl where the perl include files are
+export PERL_INC = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}/CORE"
cpan_do_configure () {
- perl Makefile.PL ${EXTRA_CPANFLAGS}
+ yes '' | perl Makefile.PL ${EXTRA_CPANFLAGS}
if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
. ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
- sed -i -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:" \
- -e "s:\(SITEARCHEXP = \).*:\1${sitearchexp}:" \
- -e "s:\(INSTALLVENDORLIB = \).*:\1${D}${libdir}/perl5/site_perl/${version}:" \
- -e "s:\(INSTALLVENDORARCH = \).*:\1${D}${libdir}/perl5/site_perl/${version}:" \
- -e "s:\(LDDLFLAGS.*\)${STAGING_DIR}/${BUILD_SYS}/lib:\1${STAGING_LIBDIR}:" \
- Makefile
+ if [ "${IS_NEW_PERL}" = "yes" ]; then
+ sed -i -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:" \
+ -e "s:\(SITEARCHEXP = \).*:\1${sitearchexp}:" \
+ -e "s:\(INSTALLVENDORLIB = \).*:\1${D}${datadir}/perl5:" \
+ -e "s:\(INSTALLVENDORARCH = \).*:\1${D}${libdir}/perl5:" \
+ -e "s:\(LDDLFLAGS.*\)${STAGING_DIR}/${BUILD_SYS}/lib:\1${STAGING_LIBDIR}:" \
+ Makefile
+ else
+ sed -i -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:" \
+ -e "s:\(SITEARCHEXP = \).*:\1${sitearchexp}:" \
+ -e "s:\(INSTALLVENDORLIB = \).*:\1${D}${libdir}/perl5/site_perl/${version}:" \
+ -e "s:\(INSTALLVENDORARCH = \).*:\1${D}${libdir}/perl5/site_perl/${version}:" \
+ -e "s:\(LDDLFLAGS.*\)${STAGING_DIR}/${BUILD_SYS}/lib:\1${STAGING_LIBDIR}:" \
+ Makefile
+ fi
fi
}
cpan_do_compile () {
- # You must use gcc to link on sh
- OPTIONS=""
- if test ${TARGET_ARCH} = "sh3" -o ${TARGET_ARCH} = "sh4"; then
- OPTIONS="LD=${TARGET_ARCH}-${TARGET_OS}-gcc"
+ if [ "${IS_NEW_PERL}" = "yes" ]; then
+ oe_runmake PASTHRU_INC="${CFLAGS}" CCFLAGS="${CFLAGS}" LD="${CCLD}"
+ else
+ # You must use gcc to link on sh
+ OPTIONS=""
+ if test ${TARGET_ARCH} = "sh3" -o ${TARGET_ARCH} = "sh4"; then
+ OPTIONS="LD=${TARGET_ARCH}-${TARGET_OS}-gcc"
+ fi
+ if test ${TARGET_ARCH} = "powerpc" ; then
+ OPTIONS="LD=${TARGET_ARCH}-${TARGET_OS}-gcc"
+ fi
+ oe_runmake PASTHRU_INC="${CFLAGS}" CCFLAGS="${CFLAGS}" $OPTIONS
fi
- oe_runmake PASTHRU_INC="${CFLAGS}" CCFLAGS="${CFLAGS}" $OPTIONS
}
cpan_do_install () {
diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass
index 0660ef9b82..63e716c099 100644
--- a/classes/cpan_build.bbclass
+++ b/classes/cpan_build.bbclass
@@ -1,16 +1,14 @@
#
# This is for perl modules that use the new Build.PL build system
#
-INHIBIT_NATIVE_STAGE_INSTALL = "1"
-FILES_${PN} += '${libdir}/perl5'
+inherit cpan-base
-DEPENDS += "perl-native"
-RDEPENDS += "perl"
+INHIBIT_NATIVE_STAGE_INSTALL = "1"
#
# We also need to have built libmodule-build-perl-native for
# everything except libmodule-build-perl-native itself (which uses
-# this class, but uses itself as the probider of
+# this class, but uses itself as the provider of
# libmodule-build-perl)
#
def cpan_build_dep_prepend(d):
@@ -24,24 +22,29 @@ def cpan_build_dep_prepend(d):
DEPENDS_prepend = "${@cpan_build_dep_prepend(d)}"
-def is_crosscompiling(d):
- import bb
- if not bb.data.inherits_class('native', d):
- return "yes"
- return "no"
-
cpan_build_do_configure () {
- if [ ${@is_crosscompiling(d)} == "yes" ]; then
+ if [ ${@is_target(d)} == "yes" ]; then
# build for target
. ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
- perl Build.PL --installdirs vendor \
- --destdir ${D} \
- --install_path lib="${libdir}/perl5/site_perl/${version}" \
- --install_path arch="${libdir}/perl5/site_perl/${version}/${TARGET_SYS}" \
- --install_path script=${bindir} \
- --install_path bin=${bindir} \
- --install_path bindoc=${mandir}/man1 \
- --install_path libdoc=${mandir}/man3
+ if [ "${IS_NEW_PERL}" = "yes" ]; then
+ perl Build.PL --installdirs vendor \
+ --destdir ${D} \
+ --install_path lib="${datadir}/perl5" \
+ --install_path arch="${libdir}/perl5" \
+ --install_path script=${bindir} \
+ --install_path bin=${bindir} \
+ --install_path bindoc=${mandir}/man1 \
+ --install_path libdoc=${mandir}/man3
+ else
+ perl Build.PL --installdirs vendor \
+ --destdir ${D} \
+ --install_path lib="${libdir}/perl5/site_perl/${version}" \
+ --install_path arch="${libdir}/perl5/site_perl/${version}/${TARGET_SYS}" \
+ --install_path script=${bindir} \
+ --install_path bin=${bindir} \
+ --install_path bindoc=${mandir}/man1 \
+ --install_path libdoc=${mandir}/man3
+ fi
else
# build for host
perl Build.PL --installdirs site
@@ -53,13 +56,13 @@ cpan_build_do_compile () {
}
cpan_build_do_install () {
- if [ ${@is_crosscompiling(d)} == "yes" ]; then
+ if [ ${@is_target(d)} == "yes" ]; then
perl Build install
fi
}
do_stage_append () {
- if [ ${@is_crosscompiling(d)} == "no" ]; then
+ if [ ${@is_target(d)} == "no" ]; then
perl Build install
fi
}
diff --git a/classes/devshell.bbclass b/classes/devshell.bbclass
index 14f957e12b..35456b517b 100644
--- a/classes/devshell.bbclass
+++ b/classes/devshell.bbclass
@@ -2,9 +2,14 @@ EXTRA_OEMAKE[export] = "1"
do_devshell[dirs] = "${S}"
do_devshell[nostamp] = "1"
-do_devshell[interactive] = "1"
+
devshell_do_devshell() {
- bash -i
+ export TERMWINDOWTITLE="Bitbake Developer Shell"
+ ${TERMCMD}
+ if [ $? -ne 0 ]; then
+ echo "Fatal: '${TERMCMD}' not found. Check TERMCMD variable."
+ exit 1
+ fi
}
addtask devshell after do_patch
diff --git a/classes/distutils-base.bbclass b/classes/distutils-base.bbclass
index 15e945d518..c3f325768d 100644
--- a/classes/distutils-base.bbclass
+++ b/classes/distutils-base.bbclass
@@ -7,8 +7,12 @@ def python_dir(d):
staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 )
if os.path.exists( "%s/python2.3" % staging_incdir ): return "python2.3"
if os.path.exists( "%s/python2.4" % staging_incdir ): return "python2.4"
+ if os.path.exists( "%s/python2.5" % staging_incdir ): return "python2.5"
raise "No Python in STAGING_INCDIR. Forgot to build python-native ?"
PYTHON_DIR = "${@python_dir(d)}"
-FILES_