diff options
-rw-r--r-- | classes/sourcepkg.bbclass | 110 | ||||
-rw-r--r-- | conf/machine/nokia770.conf | 6 | ||||
-rw-r--r-- | conf/machine/tune-arm926ejs.conf | 2 |
3 files changed, 107 insertions, 11 deletions
diff --git a/classes/sourcepkg.bbclass b/classes/sourcepkg.bbclass index 52cf2647b6..ee022c99d2 100644 --- a/classes/sourcepkg.bbclass +++ b/classes/sourcepkg.bbclass @@ -1,13 +1,111 @@ +DEPLOY_DIR_SRC ?= "${DEPLOY_DIR}/source" +EXCLUDE_FROM ?= ".pc" -do_tarballing(){ +# used as part of a path. make sure it's set +DISTRO ?= "openembedded" - mkdir -p ${DL_DIR}/sourcepkg/ +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} - echo '.pc' > tar-exclude - tar cjvf ${DL_DIR}/sourcepkg/${P}.tar.bz2 `basename ${S}` -X tar-exclude - md5sum ${DL_DIR}/sourcepkg/${P}.tar.bz2 > ${DL_DIR}/sourcepkg/${P}.tar.bz2.md5 + 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 -a $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 } -addtask tarballing after do_patch before do_configure +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/conf/machine/nokia770.conf b/conf/machine/nokia770.conf index c928093855..8b657281c7 100644 --- a/conf/machine/nokia770.conf +++ b/conf/machine/nokia770.conf @@ -11,8 +11,8 @@ XSERVER = "xserver-kdrive-omap" # 800x480 is big enough for me GUI_MACHINE_CLASS = "bigscreen" -GPE_EXTRA_DEPENDS += "gaim sylpheed gpe-mini-browser" -GPE_EXTRA_INSTALL += "gaim sylpheed gpe-mini-browser" +GPE_EXTRA_DEPENDS += "gaim sylpheed gpe-mini-browser tscalib" +GPE_EXTRA_INSTALL += "gaim sylpheed gpe-mini-browser tscalib" # Use tune-arm926 per default. Machine independent feeds should be built with tune-strongarm. include conf/machine/tune-arm926ejs.conf @@ -56,5 +56,3 @@ pcmcia-cs apm ppp wireless-tools console-tools" include conf/machine/handheld-common.conf - - diff --git a/conf/machine/tune-arm926ejs.conf b/conf/machine/tune-arm926ejs.conf index 563586c902..4e62a749dc 100644 --- a/conf/machine/tune-arm926ejs.conf +++ b/conf/machine/tune-arm926ejs.conf @@ -1,2 +1,2 @@ -TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ej-s" +TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ejs" PACKAGE_ARCH = "armv5te" |