summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/.mtn2git_empty0
-rw-r--r--classes/angstrom.bbclass19
-rw-r--r--classes/autotools.bbclass91
-rw-r--r--classes/autotools_stage.bbclass5
-rw-r--r--classes/base.bbclass612
-rw-r--r--classes/binconfig.bbclass47
-rw-r--r--classes/canadian-cross.bbclass81
-rw-r--r--classes/canadian-native.bbclass71
-rw-r--r--classes/canadian-sdk.bbclass102
-rw-r--r--classes/canadian.bbclass29
-rw-r--r--classes/chicken.bbclass11
-rw-r--r--classes/clean.bbclass53
-rw-r--r--classes/cmake.bbclass44
-rw-r--r--classes/corecdp-mirrors.bbclass4
-rw-r--r--classes/cpan-base.bbclass6
-rw-r--r--classes/cpan.bbclass5
-rw-r--r--classes/cpan_build.bbclass3
-rw-r--r--classes/cross-canadian.bbclass46
-rw-r--r--classes/cross.bbclass34
-rw-r--r--classes/crosssdk.bbclass15
-rw-r--r--classes/debian.bbclass4
-rw-r--r--classes/devshell.bbclass3
-rw-r--r--classes/dietlibc.bbclass30
-rw-r--r--classes/distutils-base.bbclass24
-rw-r--r--classes/distutils-common-base.bbclass30
-rw-r--r--classes/distutils-native-base.bbclass3
-rw-r--r--classes/distutils.bbclass23
-rw-r--r--classes/dsmg600-image.bbclass5
-rw-r--r--classes/e.bbclass14
-rw-r--r--classes/efl.bbclass29
-rw-r--r--classes/failure-cleanup.bbclass18
-rw-r--r--classes/fso-plugin.bbclass4
-rw-r--r--classes/gconf.bbclass11
-rw-r--r--classes/gettext.bbclass2
-rw-r--r--classes/gitver.bbclass64
-rw-r--r--classes/glibc-package.bbclass305
-rw-r--r--classes/glx-use-tls.bbclass7
-rw-r--r--classes/gnome.bbclass14
-rw-r--r--classes/gtk-icon-cache.bbclass17
-rw-r--r--classes/icecc.bbclass43
-rw-r--r--classes/image.bbclass79
-rw-r--r--classes/insane.bbclass161
-rw-r--r--classes/java-library.bbclass16
-rw-r--r--classes/java-native.bbclass11
-rw-r--r--classes/java.bbclass81
-rw-r--r--classes/kernel-arch.bbclass2
-rw-r--r--classes/kernel.bbclass138
-rw-r--r--classes/lib_package.bbclass7
-rw-r--r--classes/linux-kernel-base.bbclass6
-rw-r--r--classes/lockdown.bbclass41
-rw-r--r--classes/lsppchd-image.bbclass10
-rw-r--r--classes/lsppchg-image.bbclass10
-rw-r--r--classes/manifest.bbclass2
-rw-r--r--classes/mime.bbclass56
-rw-r--r--classes/module-base.bbclass4
-rw-r--r--classes/module.bbclass19
-rw-r--r--classes/module_strip.bbclass32
-rw-r--r--classes/n2100-image.bbclass2
-rw-r--r--classes/nas100d-image.bbclass5
-rw-r--r--classes/native.bbclass103
-rw-r--r--classes/nativesdk.bbclass78
-rw-r--r--classes/nylon-image.bbclass3
-rw-r--r--classes/nylon-mirrors.bbclass8
-rw-r--r--classes/oestats-client.bbclass43
-rw-r--r--classes/openmoko-base.bbclass1
-rw-r--r--classes/openmoko2.bbclass2
-rw-r--r--classes/package.bbclass360
-rw-r--r--classes/package_dbg.bbclass125
-rw-r--r--classes/package_deb.bbclass55
-rw-r--r--classes/package_ipk.bbclass63
-rw-r--r--classes/package_rpm.bbclass151
-rw-r--r--classes/package_tar.bbclass18
-rw-r--r--classes/packaged-staging.bbclass82
-rw-r--r--classes/packagedata.bbclass73
-rw-r--r--classes/packagehistory.bbclass97
-rw-r--r--classes/patch.bbclass41
-rw-r--r--classes/pkgconfig.bbclass17
-rw-r--r--classes/qemu.bbclass15
-rw-r--r--classes/qmake2.bbclass8
-rw-r--r--classes/qmake_base.bbclass5
-rw-r--r--classes/qt4e.bbclass17
-rw-r--r--classes/qt4x11.bbclass5
-rw-r--r--classes/qtopia4core.bbclass13
-rw-r--r--classes/recipe_sanity.bbclass179
-rw-r--r--classes/rm_work.bbclass5
-rw-r--r--classes/rootfs_deb.bbclass60
-rw-r--r--classes/rootfs_ipk.bbclass58
-rw-r--r--classes/rootfs_rpm.bbclass210
-rw-r--r--classes/rpm_core.bbclass16
-rw-r--r--classes/sanity.bbclass70
-rw-r--r--classes/scons.bbclass10
-rw-r--r--classes/sdk.bbclass17
-rw-r--r--classes/seppuku.bbclass6
-rw-r--r--classes/siteinfo.bbclass45
-rw-r--r--classes/sourcepkg.bbclass13
-rw-r--r--classes/src_distribute.bbclass47
-rw-r--r--classes/src_distribute_local.bbclass58
-rw-r--r--classes/srctree.bbclass115
-rw-r--r--classes/task-metadata-track.bbclass96
-rw-r--r--classes/testlab.bbclass2
-rw-r--r--classes/tinderclient.bbclass27
-rw-r--r--classes/update-alternatives.bbclass1
-rw-r--r--classes/update-rc.d.bbclass22
-rw-r--r--classes/vala.bbclass14
-rw-r--r--classes/xfce.bbclass11
-rw-r--r--classes/xfce46.bbclass28
-rw-r--r--classes/xlibs.bbclass4
107 files changed, 3990 insertions, 1117 deletions
diff --git a/classes/.mtn2git_empty b/classes/.mtn2git_empty
deleted file mode 100644
index e69de29bb2..0000000000
--- a/classes/.mtn2git_empty
+++ /dev/null
diff --git a/classes/angstrom.bbclass b/classes/angstrom.bbclass
new file mode 100644
index 0000000000..4a810a638a
--- /dev/null
+++ b/classes/angstrom.bbclass
@@ -0,0 +1,19 @@
+# anonymous support class for angstrom
+#
+# Features:
+#
+# * blacklist handling, set ANGSTROM_BLACKLIST_pn-blah = "message"
+#
+
+python () {
+ import bb
+
+ blacklist = bb.data.getVar("ANGSTROM_BLACKLIST", d, 1)
+ pkgnm = bb.data.getVar("PN", d, 1)
+
+ if blacklist:
+ bb.note("Angstrom DOES NOT support %s because %s" % (pkgnm, blacklist))
+ raise bb.parse.SkipPackage("Angstrom DOES NOT support %s because %s" % (pkgnm, blacklist))
+
+}
+
diff --git a/classes/autotools.bbclass b/classes/autotools.bbclass
index b4e78f8118..1ea4b6f1d0 100644
--- a/classes/autotools.bbclass
+++ b/classes/autotools.bbclass
@@ -1,11 +1,7 @@
-inherit base
-
# use autotools_stage_all for native packages
AUTOTOOLS_NATIVE_STAGE_INSTALL = "1"
def autotools_dep_prepend(d):
- import bb;
-
if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
return ''
@@ -20,18 +16,22 @@ def autotools_dep_prepend(d):
deps += 'libtool-native '
if not bb.data.inherits_class('native', d) \
and not bb.data.inherits_class('cross', d) \
+ and not bb.data.inherits_class('sdk', d) \
and not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1):
deps += 'libtool-cross '
return deps + 'gnu-config-native '
EXTRA_OEMAKE = ""
+
DEPENDS_prepend = "${@autotools_dep_prepend(d)}"
+DEPENDS_virtclass-native_prepend = "${@autotools_dep_prepend(d)}"
+DEPENDS_virtclass-nativesdk_prepend = "${@autotools_dep_prepend(d)}"
+
acpaths = "default"
EXTRA_AUTORECONF = "--exclude=autopoint"
def autotools_set_crosscompiling(d):
- import bb
if not bb.data.inherits_class('native', d):
return " cross_compiling=yes"
return ""
@@ -114,7 +114,7 @@ autotools_do_configure() {
else
CONFIGURE_AC=configure.ac
fi
- if grep "^AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
+ if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
: do nothing -- we still have an old unmodified configure.ac
else
@@ -122,19 +122,19 @@ autotools_do_configure() {
echo "no" | glib-gettextize --force --copy
fi
fi
- if grep "^[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
+ mkdir -p m4
+ if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
oenote Executing intltoolize --copy --force --automake
intltoolize --copy --force --automake
fi
oenote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
- mkdir -p m4
autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed."
cd $olddir
fi
;;
esac
if [ -e ${S}/configure ]; then
- oe_runconf
+ oe_runconf $@
else
oenote "nothing to configure"
fi
@@ -142,13 +142,22 @@ 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
+PACKAGE_PREPROCESS_FUNCS += "autotools_prepackage_lamangler"
+
+autotools_prepackage_lamangler () {
+ for i in `find ${PKGD} -name "*.la"` ; do \
+ sed -i -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${libdir}/\1,g' $i
+ sed -i -e s:${CROSS_DIR}/${HOST_SYS}::g $i
+ sed -i -e s:${CROSS_DIR}::g $i
+ sed -i -e s:${STAGING_LIBDIR}:${libdir}:g $i
+ sed -i -e s:${STAGING_DIR_HOST}::g $i
+ sed -i -e s:${STAGING_DIR}::g $i
+ sed -i -e s:${S}::g $i
+ sed -i -e s:${T}::g $i
+ sed -i -e s:${D}::g $i
+ done
}
STAGE_TEMP="${WORKDIR}/temp-staging"
@@ -165,14 +174,11 @@ autotools_stage_includes() {
}
autotools_stage_dir() {
- from="$1"
- to="$2"
- # This will remove empty directories so we can ignore them
- rmdir "$from" 2> /dev/null || true
- if [ -d "$from" ]; then
- mkdir -p "$to"
- cp -fpPR "$from"/* "$to"
- fi
+ sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2
+}
+
+autotools_stage_libdir() {
+ sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2
}
autotools_stage_all() {
@@ -183,46 +189,9 @@ autotools_stage_all() {
rm -rf ${STAGE_TEMP}
mkdir -p ${STAGE_TEMP}
oe_runmake DESTDIR="${STAGE_TEMP}" install
- autotools_stage_dir ${STAGE_TEMP}/${includedir} ${STAGING_INCDIR}
- if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
- autotools_stage_dir ${STAGE_TEMP}/${bindir} ${STAGING_DIR_HOST}${layout_bindir}
- autotools_stage_dir ${STAGE_TEMP}/${sbindir} ${STAGING_DIR_HOST}${layout_sbindir}
- autotools_stage_dir ${STAGE_TEMP}/${base_bindir} ${STAGING_DIR_HOST}${layout_base_bindir}
- autotools_stage_dir ${STAGE_TEMP}/${base_sbindir} ${STAGING_DIR_HOST}${layout_base_sbindir}
- autotools_stage_dir ${STAGE_TEMP}/${libexecdir} ${STAGING_DIR_HOST}${layout_libexecdir}
- fi
- if [ -d ${STAGE_TEMP}/${libdir} ]
- then
- olddir=`pwd`
- cd ${STAGE_TEMP}/${libdir}
- las=$(find . -name \*.la -type f)
- cd $olddir
- echo "Found la files: $las"
- for i in $las
- do
- sed -e 's/^installed=yes$/installed=no/' \
- -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR}/\1,g' \
- -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${STAGING_LIBDIR},g" \
- -i ${STAGE_TEMP}/${libdir}/$i
- done
- autotools_stage_dir ${STAGE_TEMP}/${libdir} ${STAGING_LIBDIR}
- fi
- # Ok, this is nasty. pkgconfig.bbclass is usually used to install .pc files,
- # however some packages rely on the presence of .pc files to enable/disable
- # their configurataions in which case we better should not install everything
- # unconditionally, but rather depend on the actual results of make install.
- # The good news though: a) there are not many packages doing this and
- # b) packaged staging will fix that anyways. :M:
- if [ "${AUTOTOOLS_STAGE_PKGCONFIG}" = "1" ]
- then
- if [ -e ${STAGE_TEMP}/${libdir}/pkgconfig/ ] ; then
- echo "cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/"
- cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/
- fi
- fi
rm -rf ${STAGE_TEMP}/${mandir} || true
rm -rf ${STAGE_TEMP}/${infodir} || true
- autotools_stage_dir ${STAGE_TEMP}/${datadir} ${STAGING_DATADIR}
+ sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX}
rm -rf ${STAGE_TEMP}
}
diff --git a/classes/autotools_stage.bbclass b/classes/autotools_stage.bbclass
new file mode 100644
index 0000000000..ff0f4cd880
--- /dev/null
+++ b/classes/autotools_stage.bbclass
@@ -0,0 +1,5 @@
+inherit autotools
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 540b891669..e6cfeccc46 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -10,18 +10,97 @@ def base_path_join(a, *p):
path += '/' + b
return path
+def base_path_relative(src, dest):
+ """ Return a relative path from src to dest.
+
+ >>> base_path_relative("/usr/bin", "/tmp/foo/bar")
+ ../../tmp/foo/bar
+
+ >>> base_path_relative("/usr/bin", "/usr/lib")
+ ../lib
+
+ >>> base_path_relative("/tmp", "/tmp/foo/bar")
+ foo/bar
+ """
+ from os.path import sep, pardir, normpath, commonprefix
+
+ destlist = normpath(dest).split(sep)
+ srclist = normpath(src).split(sep)
+
+ # Find common section of the path
+ common = commonprefix([destlist, srclist])
+ commonlen = len(common)
+
+ # Climb back to the point where they differentiate
+ relpath = [ pardir ] * (len(srclist) - commonlen)
+ if commonlen < len(destlist):
+ # Add remaining portion
+ relpath += destlist[commonlen:]
+
+ return sep.join(relpath)
+
+def base_path_out(path, d):
+ """ Prepare a path for display to the user. """
+ rel = base_path_relative(d.getVar("TOPDIR", 1), path)
+ if len(rel) > len(path):
+ return path
+ else:
+ return rel
+
# for MD5/SHA handling
-def base_chk_load_parser(config_path):
- import ConfigParser, os, bb
+def base_chk_load_parser(config_paths):
+ import ConfigParser
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)
+ if len(parser.read(config_paths)) < 1:
+ ra