diff options
author | Felix Domke <tmbinc@elitedvb.ne> | 2005-09-19 22:39:39 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-09-19 22:39:39 +0000 |
commit | 006e1136f3b03ca01743f98f15a4e4e815764975 (patch) | |
tree | 8d00eda2a485643dedb39160de643be664255847 /classes | |
parent | b2b536a88641bd9707177cdcd4a2ae381e7ddc6e (diff) | |
parent | da316135d0e1a9d930e010de7dee14009aed93dd (diff) | |
download | openembedded-006e1136f3b03ca01743f98f15a4e4e815764975.tar.gz |
propagate from branch 'org.openembedded.dev' (head 0f9c1705855ae1ba77ca449fa9fbf0db178a10f3)
to branch 'org.openembedded.dreambox' (head 31ac9b0d46b66a3fd1261c2d90cd2193a2d46820)
Diffstat (limited to 'classes')
-rw-r--r-- | classes/autotools.bbclass | 13 | ||||
-rw-r--r-- | classes/base.bbclass | 16 | ||||
-rw-r--r-- | classes/binconfig.bbclass | 13 | ||||
-rw-r--r-- | classes/debian.bbclass | 2 | ||||
-rw-r--r-- | classes/efl.bbclass | 76 | ||||
-rw-r--r-- | classes/gpe.bbclass | 3 | ||||
-rw-r--r-- | classes/kernel.bbclass | 3 | ||||
-rw-r--r-- | classes/module.bbclass | 12 | ||||
-rw-r--r-- | classes/native.bbclass | 7 | ||||
-rw-r--r-- | classes/nslu2-jffs2-image.bbclass (renamed from classes/nslu2_flashimg.bbclass) | 0 | ||||
-rw-r--r-- | classes/nslu2-mirrors.bbclass | 4 | ||||
-rw-r--r-- | classes/nslu2-ramdisk-image.bbclass | 18 | ||||
-rw-r--r-- | classes/package.bbclass | 3 | ||||
-rw-r--r-- | classes/package_ipk.bbclass | 1 | ||||
-rw-r--r-- | classes/pkgconfig.bbclass | 2 | ||||
-rw-r--r-- | classes/qt3e.bbclass | 11 | ||||
-rw-r--r-- | classes/qt3x11.bbclass | 3 | ||||
-rw-r--r-- | classes/qt4x11.bbclass | 1 | ||||
-rw-r--r-- | classes/scons.bbclass | 13 | ||||
-rw-r--r-- | classes/sourcepkg.bbclass | 111 | ||||
-rw-r--r-- | classes/tinderclient.bbclass | 119 | ||||
-rw-r--r-- | classes/xfce.bbclass | 15 |
22 files changed, 375 insertions, 71 deletions
diff --git a/classes/autotools.bbclass b/classes/autotools.bbclass index 1d6a607559..ec1d4af1a4 100644 --- a/classes/autotools.bbclass +++ b/classes/autotools.bbclass @@ -140,11 +140,14 @@ autotools_do_install() { STAGE_TEMP="${WORKDIR}/temp-staging" autotools_stage_includes() { - rm -rf ${STAGE_TEMP} - mkdir -p ${STAGE_TEMP} - make DESTDIR="${STAGE_TEMP}" install - cp -a ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} - rm -rf ${STAGE_TEMP} + if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ] + then + rm -rf ${STAGE_TEMP} + mkdir -p ${STAGE_TEMP} + make DESTDIR="${STAGE_TEMP}" install + cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} + rm -rf ${STAGE_TEMP} + fi } EXPORT_FUNCTIONS do_configure do_install diff --git a/classes/base.bbclass b/classes/base.bbclass index 1da58a924e..18d51a02ed 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -187,7 +187,7 @@ oe_libinstall() { __runcmd install -m 0644 $dota $destpath/ fi dotlai=$libname.lai - if [ -f "$dotlai" -o -n "$libtool" ]; then + if [ -f "$dotlai" -a -n "$libtool" ]; then __runcmd install -m 0644 $dotlai $destpath/$libname.la fi @@ -371,7 +371,7 @@ def oe_unpack_file(file, data, url = None): destdir = "." elif not os.access("%s/%s" % (os.getcwd(), destdir), os.F_OK): os.makedirs("%s/%s" % (os.getcwd(), destdir)) - cmd = 'cp -a %s %s/%s/' % (file, os.getcwd(), destdir) + cmd = 'cp -pPR %s %s/%s/' % (file, os.getcwd(), destdir) else: (type, host, path, user, pswd, parm) = bb.decodeurl(url) if not 'patch' in parm: @@ -496,8 +496,16 @@ python base_eventhandler() { note(msg) if name.startswith("BuildStarted"): - statusvars = ['TARGET_ARCH', 'TARGET_OS', 'MACHINE', 'DISTRO', - 'TARGET_FPU'] + bb.data.setVar( 'BB_VERSION', bb.__version__, e.data ) + path_to_bbfiles = bb.data.getVar( 'BBFILES', e.data, 1 ) + path_to_packages = path_to_bbfiles[:path_to_bbfiles.index( "packages" )] + monotone_revision = "<unknown>" + try: + monotone_revision = file( "%s/MT/revision" % path_to_packages ).read().strip() + except IOError: + pass + bb.data.setVar( 'OE_REVISION', monotone_revision, e.data ) + statusvars = ['BB_VERSION', 'OE_REVISION', 'TARGET_ARCH', 'TARGET_OS', 'MACHINE', 'DISTRO', 'TARGET_FPU'] statuslines = ["%-13s = \"%s\"" % (i, bb.data.getVar(i, e.data, 1) or '') for i in statusvars] statusmsg = "\nOE Build Configuration:\n%s\n" % '\n'.join(statuslines) print statusmsg diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass index c660fd9cae..a599dec3f2 100644 --- a/classes/binconfig.bbclass +++ b/classes/binconfig.bbclass @@ -19,11 +19,16 @@ def get_binconfig_mangle(d): s += " -e 's:OEEXECPREFIX:${STAGING_LIBDIR}/..:'" return s +# Native package configurations go in ${BINDIR}/<name>-config-native to prevent a collision with cross packages +def is_native(d): + import bb.data + return ["","-native"][bb.data.inherits_class('native', d)] + do_stage_append() { for config in `find ${S} -name '*-config'`; do - configname=`basename $config` - install -d ${STAGING_BINDIR}/${HOST_SYS} - cat $config | sed ${@get_binconfig_mangle(d)} > ${STAGING_BINDIR}/${HOST_SYS}/$configname - chmod u+x ${STAGING_BINDIR}/${HOST_SYS}/$configname + configname=`basename $config`${@is_native(d)} + install -d ${STAGING_BINDIR} + cat $config | sed ${@get_binconfig_mangle(d)} > ${STAGING_BINDIR}/$configname + chmod u+x ${STAGING_BINDIR}/$configname done } diff --git a/classes/debian.bbclass b/classes/debian.bbclass index 2480ffd664..d66c1fc763 100644 --- a/classes/debian.bbclass +++ b/classes/debian.bbclass @@ -79,7 +79,7 @@ python debian_package_name_hook () { if pkg == orig_pkg: newpkg = pkgname else: - newpkg = pkg.replace(orig_pkg, devname) + newpkg = pkg.replace(orig_pkg, devname, 1) if newpkg != pkg: bb.data.setVar('PKG_' + pkg, newpkg, d) diff --git a/classes/efl.bbclass b/classes/efl.bbclass new file mode 100644 index 0000000000..16c2dba0b8 --- /dev/null +++ b/classes/efl.bbclass @@ -0,0 +1,76 @@ +MAINTAINER = "Justin Patrin <papercrane@reversefold.com>" +HOMEPAGE = "http://www.enlightenment.org" +SECTION = "e/libs" + +SRCNAME = "${@bb.data.getVar('PN', d, 1).replace('-native', '')}" +SRC_URI = "http://enlightenment.freedesktop.org/files/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit autotools pkgconfig binconfig + +do_prepsources () { + make clean distclean || true +} +addtask prepsources after do_fetch before do_unpack + +INHIBIT_AUTO_STAGE_INCLUDES = "1" +INHIBIT_NATIVE_STAGE_INSTALL = "1" + +libdirectory = "src/lib" +libraries = "lib${SRCNAME}" +headers = "${@bb.data.getVar('SRCNAME',d,1).capitalize()}.h" + +def binconfig_suffix(d): + import bb + return ["","-native"][bb.data.inherits_class('native', d)] + +export CURL_CONFIG = "${STAGING_BINDIR}/curl-config${@binconfig_suffix(d)}" +export EDB_CONFIG = "${STAGING_BINDIR}/edb-config${@binconfig_suffix(d)}" +export EET_CONFIG = "${STAGING_BINDIR}/eet-config${@binconfig_suffix(d)}" +export EVAS_CONFIG = "${STAGING_BINDIR}/evas-config${@binconfig_suffix(d)}" +export ECORE_CONFIG = "${STAGING_BINDIR}/ecore-config${@binconfig_suffix(d)}" +export EMBRYO_CONFIG = "${STAGING_BINDIR}/embryo-config${@binconfig_suffix(d)}" +export ENGRAVE_CONFIG = "${STAGING_BINDIR}/engrave-config${@binconfig_suffix(d)}" +export ENLIGHTENMENT_CONFIG = "${STAGING_BINDIR}/enlightenment-config${@binconfig_suffix(d)}" +export EPSILON_CONFIG = "${STAGING_BINDIR}/epsilon-config${@binconfig_suffix(d)}" +export EPEG_CONFIG = "${STAGING_BINDIR}/epeg-config${@binconfig_suffix(d)}" +export ESMART_CONFIG = "${STAGING_BINDIR}/esmart-config${@binconfig_suffix(d)}" +export FREETYPE_CONFIG = "${STAGING_BINDIR}/freetype-config${@binconfig_suffix(d)}" +export IMLIB2_CONFIG = "${STAGING_BINDIR}/imlib2-config${@binconfig_suffix(d)}" + +do_stage_append () { + for i in ${libraries} + do + oe_libinstall -C ${libdirectory} $i ${STAGING_LIBDIR} + done + for i in ${headers} + do + install -m 0644 ${libdirectory}/$i ${STAGING_INCDIR} + done + + # Install binaries automatically for native builds + if [ "${@binconfig_suffix(d)}" = "-native" ] + then + + # Most EFL binaries start with the package name + for i in src/bin/${SRCNAME}* + do + if [ -x $i -a -f $i ] + then + + # Don't install anything with an extension (.so, etc) + if echo $i | grep -v \\. + then + ${HOST_SYS}-libtool --mode=install install -m 0755 $i ${STAGING_BINDIR} + fi + fi + done + fi +} + +PACKAGES = "${SRCNAME} ${SRCNAME}-themes ${SRCNAME}-dev ${SRCNAME}-examples" +FILES_${SRCNAME} = "${libdir}/lib*.so*" +FILES_${SRCNAME}-themes = "${datadir}/${SRCNAME}/themes ${datadir}/${SRCNAME}/data ${datadir}/${SRCNAME}/fonts ${datadir}/${SRCNAME}/pointers ${datadir}/${SRCNAME}/images ${datadir}/${SRCNAME}/users ${datadir}/${SRCNAME}/images ${datadir}/${SRCNAME}/styles" +FILES_${SRCNAME}-dev += "${bindir}/${SRCNAME}-config ${libdir}/pkgconfig ${libdir}/lib*.?a ${datadir}/${SRCNAME}/include" +FILES_${SRCNAME}-examples = "${bindir} ${datadir}" + diff --git a/classes/gpe.bbclass b/classes/gpe.bbclass index 3b0cd0a001..8cd9e4fc5d 100644 --- a/classes/gpe.bbclass +++ b/classes/gpe.bbclass @@ -1,5 +1,6 @@ DEPENDS_prepend = "coreutils-native virtual/libintl intltool-native " -SRC_URI = "${GPE_MIRROR}/${PN}-${PV}.tar.gz" +GPE_TARBALL_SUFFIX ?= "gz" +SRC_URI = "${GPE_MIRROR}/${PN}-${PV}.tar.${GPE_TARBALL_SUFFIX}" FILES_${PN} += "${datadir}/gpe ${datadir}/application-registry" inherit gettext diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index 8b2186dec6..ff9aeeab78 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -193,6 +193,7 @@ module_autoload_rfcomm = "rfcomm" module_autoload_sa1100-rtc = "sa1100-rtc" # alias defaults (alphabetically sorted) +module_conf_af_packet = "alias net-pf-17 af_packet" module_conf_bluez = "alias net-pf-31 bluez" module_conf_bnep = "alias bt-proto-4 bnep" module_conf_hci_uart = "alias tty-ldisc-15 hci_uart" @@ -229,7 +230,7 @@ python populate_packages_prepend () { kernelver = bb.data.getVar('PV', d, 1) + bb.data.getVar('KERNEL_LOCALVERSION', d, 1) kernelver_stripped = kernelver - m = re.match('^(.*-hh.*)\..*$', kernelver) + m = re.match('^(.*-hh.*)[\.\+].*$', kernelver) if m: kernelver_stripped = m.group(1) path = bb.data.getVar("PATH", d, 1) diff --git a/classes/module.bbclass b/classes/module.bbclass index 4da3f5f30b..8a13f1f858 100644 --- a/classes/module.bbclass +++ b/classes/module.bbclass @@ -34,6 +34,18 @@ module_do_install() { oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" modules_install } +pkg_postinst_append () { + if [ -n "$D" ]; then + exit 1 + fi + depmod -A + update-modules || true +} + +pkg_postrm_append () { + update-modules || true +} + EXPORT_FUNCTIONS do_compile do_install FILES_${PN} = "/etc /lib/modules" diff --git a/classes/native.bbclass b/classes/native.bbclass index 3391694838..955a8ae646 100644 --- a/classes/native.bbclass +++ b/classes/native.bbclass @@ -50,14 +50,17 @@ libdir = "${exec_prefix}/lib" includedir = "${exec_prefix}/include" oldincludedir = "${exec_prefix}/include" -# Datadir is made arch depenedent here, primarily +# Datadir is made arch dependent here, primarily # for autoconf macros, and other things that # may be manipulated to handle crosscompilation # issues. datadir = "${exec_prefix}/share" do_stage () { - oe_runmake install + if [ "${INHIBIT_NATIVE_STAGE_INSTALL}" != "1" ] + then + oe_runmake install + fi } do_install () { diff --git a/classes/nslu2_flashimg.bbclass b/classes/nslu2-jffs2-image.bbclass index 56ad0f0659..56ad0f0659 100644 --- a/classes/nslu2_flashimg.bbclass +++ b/classes/nslu2-jffs2-image.bbclass diff --git a/classes/nslu2-mirrors.bbclass b/classes/nslu2-mirrors.bbclass new file mode 100644 index 0000000000..1181edc716 --- /dev/null +++ b/classes/nslu2-mirrors.bbclass @@ -0,0 +1,4 @@ +MIRRORS_append () { +ftp://.*/.*/ http://sources.nslu2-linux.org/sources/ +http://.*/.*/ http://sources.nslu2-linux.org/sources/ +} diff --git a/classes/nslu2-ramdisk-image.bbclass b/classes/nslu2-ramdisk-image.bbclass new file mode 100644 index 0000000000..0b545854fd --- /dev/null +++ b/classes/nslu2-ramdisk-image.bbclass @@ -0,0 +1,18 @@ +NSLU2_SLUGIMAGE_ARGS ?= "" + +nslu2_pack_image () { + install -d ${DEPLOY_DIR_IMAGE}/slug + install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \ + ${STAGING_LIBDIR}/nslu2-binaries/Trailer \ + ${STAGING_LIBDIR}/nslu2-binaries/SysConf \ + ${DEPLOY_DIR_IMAGE}/slug/ + install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${IMAGE_BASENAME} ${DEPLOY_DIR_IMAGE}/slug/vmlinuz + install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2.gz ${DEPLOY_DIR_IMAGE}/slug/ramdisk.ext2.gz + cd ${DEPLOY_DIR_IMAGE}/slug + slugimage -p -b RedBoot -s SysConf -r Ramdisk:ramdisk.ext2.gz -t Trailer \ + -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ramdisk.img ${NSLU2_SLUGIMAGE_ARGS} + rm -rf ${DEPLOY_DIR_IMAGE}/slug +} + +EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware' +IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; " diff --git a/classes/package.bbclass b/classes/package.bbclass index 9928849add..b6337a3982 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -481,7 +481,8 @@ python package_do_pkgconfig () { pkgconfig_needed[pkg] += exp.replace(',', ' ').split() for pkg in packages.split(): - pkgs_file = os.path.join(shlibs_dir, pkg + ".pclist") + ppkg = bb.data.getVar("PKG_" + pkg, d, 1) or pkg + pkgs_file = os.path.join(shlibs_dir, ppkg + ".pclist") if os.path.exists(pkgs_file): os.remove(pkgs_file) if pkgconfig_provided[pkg] != []: diff --git a/classes/package_ipk.bbclass b/classes/package_ipk.bbclass index 3c6125d9e3..6d3e1eb686 100644 --- a/classes/package_ipk.bbclass +++ b/classes/package_ipk.bbclass @@ -145,6 +145,7 @@ python do_package_ipk () { fields.append(["Maintainer: %s\n", ['MAINTAINER']]) fields.append(["Architecture: %s\n", ['PACKAGE_ARCH']]) fields.append(["OE: %s\n", ['P']]) + fields.append(["Homepage: %s\n", ['HOMEPAGE']]) def pullData(l, d): l2 = [] diff --git a/classes/pkgconfig.bbclass b/classes/pkgconfig.bbclass index e89e827fc8..62f15f312d 100644 --- a/classes/pkgconfig.bbclass +++ b/classes/pkgconfig.bbclass @@ -20,7 +20,7 @@ def get_pkgconfig_mangle(d): return s do_stage_append () { - for pc in `find ${S} -name '*.pc'`; do + for pc in `find ${S} -name '*.pc' | grep -v -- '-uninstalled.pc$'`; do pcname=`basename $pc` install -d ${PKG_CONFIG_PATH} cat $pc | sed ${@get_pkgconfig_mangle(d)} > ${PKG_CONFIG_PATH}/$pcname diff --git a/classes/qt3e.bbclass b/classes/qt3e.bbclass new file mode 100644 index 0000000000..c34d7c04f5 --- /dev/null +++ b/classes/qt3e.bbclass @@ -0,0 +1,11 @@ +# +# 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 OE_QMAKE_UIC="${STAGING_BINDIR}/uic3" +export OE_QMAKE_MOC="${STAGING_BINDIR}/moc3" +export OE_QMAKE_CXXFLAGS="${CXXFLAGS} " +export OE_QMAKE_INCDIR_QT="${QTEDIR}/include" +export OE_QMAKE_LIBDIR_QT="${QTEDIR}/lib" +export OE_QMAKE_LIBS_QT="qte" diff --git a/classes/qt3x11.bbclass b/classes/qt3x11.bbclass index 2a2f3d5bbd..1023a1f800 100644 --- a/classes/qt3x11.bbclass +++ b/classes/qt3x11.bbclass @@ -1,10 +1,11 @@ +DEPENDS += "qt3-x11" # # override variables set by qmake-base to compile Qt/X11 apps # export QTDIR="${STAGING_DIR}/${HOST_SYS}/qt3" export OE_QMAKE_UIC="${STAGING_BINDIR}/uic3" export OE_QMAKE_MOC="${STAGING_BINDIR}/moc3" -export OE_QMAKE_CXXFLAGS="${CXXFLAGS}" +export OE_QMAKE_CXXFLAGS="${CXXFLAGS} -DQT_NO_XIM" export OE_QMAKE_INCDIR_QT="${QTDIR}/include" export OE_QMAKE_LIBDIR_QT="${QTDIR}/lib" export OE_QMAKE_LIBS_QT="qt" diff --git a/classes/qt4x11.bbclass b/classes/qt4x11.bbclass index d4ca0073df..92885aa7ee 100644 --- a/classes/qt4x11.bbclass +++ b/classes/qt4x11.bbclass @@ -1,3 +1,4 @@ +DEPENDS += "qt4-x11" # # override variables set by qmake-base to compile Qt/X11 apps # diff --git a/classes/scons.bbclass b/classes/scons.bbclass new file mode 100644 index 0000000000..3160eca69a --- /dev/null +++ b/classes/scons.bbclass @@ -0,0 +1,13 @@ +DEPENDS += "python-scons-native" + +scons_do_compile() { + ${STAGING_BINDIR}/scons || \ + oefatal "scons build execution failed." +} + +scons_do_install() { + ${STAGING_BINDIR}/scons install || \ + oefatal "scons install execution failed." +} + +EXPORT_FUNCTIONS do_compile do_install diff --git a/classes/sourcepkg.bbclass b/classes/sourcepkg.bbclass new file mode 100644 index 0000000000..3eeff91333 --- /dev/null +++ b/classes/sourcepkg.bbclass @@ -0,0 +1,111 @@ +DEPLOY_DIR_SRC ?= "${DEPLOY_DIR}/source" +EXCLUDE_FROM ?= ".pc" + +# used as part of a path. make sure it's set +DISTRO ?= "openembedded" + +def get_src_tree(d): + import bb + import os, os.path + + workdir = bb.data.getVar('WORKDIR', d, 1) + if not workdir: + bb.error("WORKDIR not defined, unable to find source tree.") + return + + s = bb.data.getVar('S', d, 0) + if not s: + bb.error("S not defined, unable to find source tree.") + return + + s_tree_raw = s.split('/')[1] + s_tree = bb.data.expand(s_tree_raw, d) + + src_tree_path = os.path.join(workdir, s_tree) + try: + os.listdir(src_tree_path) + except OSError: + bb.fatal("Expected to find source tree in '%s' which doesn't exist." % src_tree_path) + bb.debug("Assuming source tree is '%s'" % src_tree_path) + + return s_tree + +sourcepkg_do_create_orig_tgz(){ + + mkdir -p ${DEPLOY_DIR_SRC} + cd ${WORKDIR} + for i in ${EXCLUDE_FROM}; do + echo $i >> temp/exclude-from-file + done + + src_tree=${@get_src_tree(d)} + + echo $src_tree + oenote "Creating .orig.tar.gz in ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz" + tar cvzf ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz $src_tree --exclude-from temp/exclude-from-file + cp -pPR $src_tree $src_tree.orig +} + +sourcepkg_do_archive_bb() { + + src_tree=${@get_src_tree(d)} + dest=${WORKDIR}/$src_tree/${DISTRO} + mkdir -p $dest + + cp ${FILE} $dest +} + +python sourcepkg_do_dumpdata() { + import os + import os.path + + workdir = bb.data.getVar('WORKDIR', d, 1) + distro = bb.data.getVar('DISTRO', d, 1) + s_tree = get_src_tree(d) + openembeddeddir = os.path.join(workdir, s_tree, distro) + dumpfile = os.path.join(openembeddeddir, bb.data.expand("${P}-${PR}.showdata.dump",d)) + + try: + os.mkdir(openembeddeddir) + except OSError: + # dir exists + pass + + bb.note("Dumping metadata into '%s'" % dumpfile) + f = open(dumpfile, "w") + # emit variables and shell functions + bb.data.emit_env(f, d, True) + # emit the metadata which isnt valid shell + for e in d.keys(): + if bb.data.getVarFlag(e, 'python', d): + f.write("\npython %s () {\n%s}\n" % (e, bb.data.getVar(e, d, 1))) + f.close() +} + +sourcepkg_do_create_diff_gz(){ + + cd ${WORKDIR} + for i in ${EXCLUDE_FROM}; do + echo $i >> temp/exclude-from-file + done + + + src_tree=${@get_src_tree(d)} + + for i in `find . -maxdepth 1 -type f`; do + mkdir -p $src_tree/${DISTRO}/files + cp $i $src_tree/${DISTRO}/files + done + + oenote "Creating .diff.gz in ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz" + LC_ALL=C TZ=UTC0 diff --exclude-from=temp/exclude-from-file -Naur $src_tree.orig $src_tree | gzip -c > ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz + rm -rf $src_tree.orig +} + +EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_dumpdata do_create_diff_gz + +addtask create_orig_tgz after do_unpack before do_patch +addtask archive_bb after do_patch before do_dumpdata +addtask dumpdata after archive_bb before do_create_diff_gz +addtask create_diff_gz after do_dump_data before do_configure + diff --git a/classes/tinderclient.bbclass b/classes/tinderclient.bbclass index 1553d16319..290166bb03 100644 --- a/classes/tinderclient.bbclass +++ b/classes/tinderclient.bbclass @@ -1,31 +1,77 @@ -def base_tinder_time(): - import time - return time.strftime('%m/%d/%Y %H:%M:%S', time.localtime()) +def tinder_tz_offset(off): + # get the offset.n minutes Either it is a number like + # +200 or -300 + try: + return int(off) + except ValueError: + if off == "Europe/Berlin": + return 120 + else: + return 0 + +def tinder_tinder_time(offset): + import datetime + td = datetime.timedelta(minutes=tinder_tz_offset(offset)) + time = datetime.datetime.utcnow() + td + return time.strftime('%m/%d/%Y %H:%M:%S') + +def tinder_tinder_start(date,offset): + import datetime, time + td = datetime.timedelta(minutes=tinder_tz_offset(offset)) + ti = time.strptime(date, "%m/%d/%Y %H:%M:%S") + time = datetime.datetime(*ti[0:7])+td + return time.strftime('%m/%d/%Y %H:%M:%S') + +def tinder_send_email(da, header, log): + import smtplib + from bb import data + from email.MIMEText import MIMEText + msg = MIMEText(header +'\n' + log) + msg['Subject'] = data.getVar('TINDER_SUBJECT',da, True) or "Tinder-Client build log" + msg['To'] = data.getVar('TINDER_MAILTO' ,da, True) + msg['From'] = data.getVar('TINDER_FROM', da, True) + + + s = smtplib.SMTP() + s.connect() + s.sendmail(data.getVar('TINDER_FROM', da, True), [data.getVar('TINDER_MAILTO', da, True)], msg.as_string()) + s.close() + +def tinder_send_http(da, header, log): + from bb import data + import httplib, urllib + cont = "\n%s\n%s" % ( header, log) + headers = {"Content-type": "multipart/form-data" } + + conn = httplib.HTTPConnection(data.getVar('TINDER_HOST',da, True)) + conn.request("POST", data.getVar('TINDER_URL',da,True), cont, headers) + conn.close() + # Prepare tinderbox mail header -def base_prepare_mail_header(data, status): - import bb +def tinder_prepare_mail_header(da, status): + from bb import data - str = "tinderbox: administrator: %s\n" % bb.data.getVar('TINDER_ADMIN', data, True) - str += "tinderbox: starttime: %s\n" % bb.data.getVar('TINDER_START', bb.make.cfg, True) - str += "tinderbox: buildname: %s\n" % bb.data.getVar('TINDER_BUILD', data, True) - str += "tinderbox: errorparser: %s\n" % bb.data.getVar('TINDER_ERROR', data, True) + str = "tinderbox: administrator: %s\n" % data.getVar('TINDER_ADMIN', da, True) + str += "tinderbox: starttime: %s\n" % tinder_tinder_start(data.getVar('TINDER_START', da, True) or data.getVar('BUILDSTART', da, True), data.getVar('TINDER_TZ', da, True)) + str += "tinderbox: buildname: %s\n" % data.getVar('TINDER_BUILD', da, True) + str += "tinderbox: errorparser: %s\n" % data.getVar('TINDER_ERROR', da, True) str += "tinderbox: status: %s\n" % status - str += "tinderbox: timenow: %s\n" % base_tinder_time() - str += "tinderbox: tree: %s\n" % bb.data.getVar('TINDER_TREE', data, True) + str += "tinderbox: timenow: %s\n" % tinder_tinder_time(data.getVar('TINDER_TZ', da, True)) + str += "tinderbox: tree: %s\n" % data.getVar('TINDER_TREE', da, True) str += "tinderbox: buildfamily: %s\n" % "unix" str += "tinderbox: END" return str -def base_do_tinder_report(event): +def tinder_do_tinder_report(event): """ Report to the tinderbox. Either we will report every step (depending on TINDER_VERBOSE_REPORT) at the end we will send the tinderclient.log """ from bb.event import getName - from bb import data, make, mkdirhier + from bb import data, mkdirhier import os, glob # variables @@ -36,8 +82,7 @@ def base_do_tinder_report(event): # Check what we need to do Build* shows we start or are done if name == "BuildStarted": - data.setVar('TINDER_START', base_tinder_time(), event.data) - header = base_prepare_mail_header(event.data, 'building') + header = tinder_prepare_mail_header(event.data, 'building') # generate for var in os.environ: log += "%s=%s\n" % (var, os.environ[var]) @@ -51,25 +96,25 @@ def base_do_tinder_report(event): if name == "PkgFailed" or name == "BuildCompleted": status = 'build_failed' - if name == "BuildCompleted": - status = "success" - header = base_prepare_mail_header(event.data, status) - # append the log - log_file = data.getVar('TINDER_LOG', event.data, True) - file = open(log_file, 'r') - for line in file.readlines(): - log += line + if name == "BuildCompleted": + status = "success" + header = tinder_prepare_mail_header(event.data, status) + # append the log + log_file = data.getVar('TINDER_LOG', event.data, True) + file = open(log_file, 'r') + for line in file.readlines(): + log += line if verbose and name == "TaskStarted": - header = base_prepare_mail_header(event.data, 'building') + header = tinder_prepare_mail_header(event.data, 'building') log = "Task %s started" % event.task if verbose and name == "PkgStarted": - header = base_prepare_mail_header(event.data, 'building') + header = tinder_prepare_mail_header(event.data, 'building') log = "Package %s started" % data.getVar('P', event.data, True) if verbose and name == "PkgSucceeded": - header = base_prepare_mail_header(event.data, 'building') + header = tinder_prepare_mail_header(event.data, 'building') log = "Package %s done" % data.getVar('P', event.data, True) # Append the Task Log @@ -85,7 +130,7 @@ def base_do_tinder_report(event): # append to the log if verbose: - header = base_prepare_mail_header(event.data, 'building') + header = tinder_prepare_mail_header(event.data, 'building') for line in log_txt: log += line @@ -93,25 +138,21 @@ def base_do_tinder_report(event): if len(log) == 0 or len(header) == 0: return - import smtplib - from email.MIMEText import MIMEText - msg = MIMEText(header +'\n' + log) - msg['Subject'] = "Tinder-Client build log" - msg['To'] = data.getVar('TINDER_MAILTO',event.data, True) - msg['From'] = data.getVar('TINDER_FROM', event.data, True) + log_post_method = tinder_send_email + if data.getVar('TINDER_SENDLOG', event.data, True) == "http": + log_post_method = tinder_send_http + log_post_method(event.data, header, log) - s = smtplib.SMTP() - s.connect() - s.sendmail(data.getVar('TINDER_FROM', event.data, True), [data.getVar('TINDER_MAILTO', event.data, True)], msg.as_string()) - s.close() addhandler tinderclient_eventhandler -python base_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": - base_do_tinder_report(e) + tinder_do_tinder_report(e) return NotHandled } diff --git a/classes/xfce.bbclass b/classes/xfce.bbclass index 10098da8ea..793348597f 100644 --- a/classes/xfce.bbclass +++ b/classes/xfce.bbclass @@ -4,13 +4,10 @@ # Global class to make it easier to maintain XFCE packages -HOMEPAGE="http://www.xfce.org" -LICENSE="LGPL-2" +HOMEPAGE = "http://www.xfce.org" +LICENSE = "LGPL-2" -SRC_URI="http://www.us.xfce.org/archive/xfce-${PV}/src/${PN}-${PV}.tar.gz" - -# Most, but not *all* packages use pkgconfig, so we can't include it here -# too +SRC_URI = "http://www.us.xfce.org/archive/xfce-${PV}/src/${PN}-${PV}.tar.gz" inherit autotools @@ -18,9 +15,5 @@ EXTRA_OECONF += "--with-pluginsdir=${libdir}/xfce4/panel-plugins/" # FIXME: Put icons in their own package too? -PACKAGES += "${PN}-mcs-plugins ${PN}-plugins" - FILES_${PN} += "${datadir}/icons/* ${datadir}/applications/* ${libdir}/xfce4/modules/*.so*" -FILES_${PN}-plugins += "${libdir}/xfce4/panel-plugins/*.so*" -FILES_${PN}-doc += " ${datadir}/xfce4/doc" -FILES_${PN}-mcs-plugins="${libdir}/xfce4/mcs-plugins/*.so" +FILES_${PN}-doc += "${datadir}/xfce4/doc" |