2005-08-31 10:45:47 +00:00
|
|
|
DEPLOY_DIR_SRC ?= "${DEPLOY_DIR}/source"
|
2005-10-10 10:41:35 +00:00
|
|
|
EXCLUDE_FROM ?= ".pc autom4te.cache"
|
2005-08-31 10:45:47 +00:00
|
|
|
|
|
|
|
# used as part of a path. make sure it's set
|
|
|
|
DISTRO ?= "openembedded"
|
|
|
|
|
|
|
|
def get_src_tree(d):
|
|
|
|
|
2012-03-03 10:59:25 +00:00
|
|
|
workdir = d.getVar('WORKDIR', True)
|
2005-08-31 10:45:47 +00:00
|
|
|
if not workdir:
|
|
|
|
bb.error("WORKDIR not defined, unable to find source tree.")
|
|
|
|
return
|
|
|
|
|
Convert to use direct access to the data store (instead of bb.data.*Var*())
This is the result of running the following over the metadata:
sed \
-e 's:bb.data.\(setVar([^,()]*,[^,()]*\), *\([^ )]*\) *):\2.\1):g' \
-e 's:bb.data.\(setVarFlag([^,()]*,[^,()]*,[^,()]*\), *\([^) ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^() ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,()]*\), *\([^) ]*\) *):\2.\1):g' \
-i `grep -ril bb.data *`
(From OE-Core rev: b22831fd63164c4db9c0b72934d7d734a6585251)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-09 15:00:01 +00:00
|
|
|
s = d.getVar('S', 0)
|
2005-08-31 10:45:47 +00:00
|
|
|
if not s:
|
|
|
|
bb.error("S not defined, unable to find source tree.")
|
|
|
|
return
|
|
|
|
|
|
|
|
s_tree_raw = s.split('/')[1]
|
2012-03-03 11:21:22 +00:00
|
|
|
s_tree = d.expand(s_tree_raw)
|
2005-08-31 10:45:47 +00:00
|
|
|
|
|
|
|
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
|
2011-04-29 04:49:31 +00:00
|
|
|
bbnote "Creating .orig.tar.gz in ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz"
|
2005-10-10 10:41:35 +00:00
|
|
|
tar cvzf ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz --exclude-from temp/exclude-from-file $src_tree
|
2011-02-09 04:16:41 +00:00
|
|
|
tar -cf - -C $src_tree -ps . | tar -xf - -C $src_tree.orig
|
2005-08-31 10:45:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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() {
|
|
|
|
|
2012-03-03 10:59:25 +00:00
|
|
|
workdir = d.getVar('WORKDIR', True)
|
|
|
|
distro = d.getVar('DISTRO', True)
|
2005-08-31 10:45:47 +00:00
|
|
|
s_tree = get_src_tree(d)
|
|
|
|
openembeddeddir = os.path.join(workdir, s_tree, distro)
|
2012-03-03 11:21:22 +00:00
|
|
|
dumpfile = os.path.join(openembeddeddir, d.expand("${P}-${PR}.showdata.dump"))
|
2005-08-31 10:45:47 +00:00
|
|
|
|
|
|
|
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():
|
Convert to use direct access to the data store (instead of bb.data.*Var*())
This is the result of running the following over the metadata:
sed \
-e 's:bb.data.\(setVar([^,()]*,[^,()]*\), *\([^ )]*\) *):\2.\1):g' \
-e 's:bb.data.\(setVarFlag([^,()]*,[^,()]*,[^,()]*\), *\([^) ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^() ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,()]*\), *\([^) ]*\) *):\2.\1):g' \
-i `grep -ril bb.data *`
(From OE-Core rev: b22831fd63164c4db9c0b72934d7d734a6585251)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-09 15:00:01 +00:00
|
|
|
if d.getVarFlag(e, 'python'):
|
2012-03-03 10:59:25 +00:00
|
|
|
f.write("\npython %s () {\n%s}\n" % (e, d.getVar(e, True)))
|
2005-08-31 10:45:47 +00:00
|
|
|
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
|
|
|
|
|
2011-04-29 04:49:31 +00:00
|
|
|
bbnote "Creating .diff.gz in ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz"
|
2005-08-31 10:45:47 +00:00
|
|
|
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
|
|
|
|
|