aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/allarch.bbclass4
-rw-r--r--meta/classes/buildhistory.bbclass2
-rw-r--r--meta/classes/cross-canadian.bbclass5
-rw-r--r--meta/classes/image.bbclass2
-rw-r--r--meta/classes/license.bbclass3
-rw-r--r--meta/classes/multilib.bbclass1
-rw-r--r--meta/classes/package.bbclass14
-rw-r--r--meta/classes/package_rpm.bbclass2
-rw-r--r--meta/classes/packageinfo.bbclass35
-rw-r--r--meta/conf/bitbake.conf2
-rw-r--r--meta/conf/multilib.conf1
-rw-r--r--meta/lib/oe/packagedata.py43
-rw-r--r--meta/recipes-devtools/gcc/gcc-common.inc4
-rwxr-xr-xscripts/oe-pkgdata-util36
14 files changed, 49 insertions, 105 deletions
diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
index 8669470e60..5e13a5b8a8 100644
--- a/meta/classes/allarch.bbclass
+++ b/meta/classes/allarch.bbclass
@@ -2,6 +2,10 @@
# This class is used for architecture independent recipes/data files (usally scripts)
#
+# Expand STAGING_DIR_HOST since for cross-canadian/native/nativesdk, this will
+# point elsewhere after these changes.
+STAGING_DIR_HOST := "${STAGING_DIR_HOST}"
+
PACKAGE_ARCH = "all"
python () {
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index 080f2c79b3..3da03c8485 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -340,7 +340,7 @@ buildhistory_get_installed() {
cat $pkgcache | while read pkg pkgfile pkgarch
do
for vendor in ${TARGET_VENDOR} ${MULTILIB_VENDORS} ; do
- size=`oe-pkgdata-util read-value ${TMPDIR}/pkgdata $vendor-${TARGET_OS} "PKGSIZE" ${pkg}_${pkgarch}`
+ size=`oe-pkgdata-util read-value ${PKGDATA_DIR} "PKGSIZE" ${pkg}_${pkgarch}`
if [ "$size" != "" ] ; then
echo "$size $pkg" >> $1/installed-package-sizes.tmp
fi
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
index 87dd9948e7..c22be1a030 100644
--- a/meta/classes/cross-canadian.bbclass
+++ b/meta/classes/cross-canadian.bbclass
@@ -31,7 +31,6 @@ STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}"
PATH_append = ":${TMPDIR}/sysroots/${HOST_ARCH}/${bindir_cross}"
-PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}"
PKGHIST_DIR = "${TMPDIR}/pkghistory/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/"
HOST_ARCH = "${SDK_ARCH}"
@@ -89,10 +88,6 @@ FILES_${PN}-dbg += "${prefix}/.debug \
export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
-# Cross-canadian packages need to pull in nativesdk dynamic libs
-SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/"
-SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/"
-
do_populate_sysroot[stamp-extra-info] = ""
USE_NLS = "${SDKUSE_NLS}"
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index f1e62f1454..889547a441 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -484,7 +484,7 @@ rootfs_install_complementary() {
# Use the magic script to do all the work for us :)
: > ${WORKDIR}/complementary_pkgs.txt
for vendor in '${TARGET_VENDOR}' ${MULTILIB_VENDORS} ; do
- oe-pkgdata-util glob ${TMPDIR}/pkgdata $vendor-${TARGET_OS} ${WORKDIR}/installed_pkgs.txt "$GLOBS" >> ${WORKDIR}/complementary_pkgs.txt
+ oe-pkgdata-util glob ${PKGDATA_DIR} ${WORKDIR}/installed_pkgs.txt "$GLOBS" >> ${WORKDIR}/complementary_pkgs.txt
done
# Install the packages, if any
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 621c1b2f55..0160313e2e 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -28,8 +28,7 @@ license_create_manifest() {
fi
touch ${LICENSE_MANIFEST}
for pkg in ${INSTALLED_PKGS}; do
- # not the best way to do this but licenses are not arch dependant iirc
- filename=`ls ${TMPDIR}/pkgdata/*/runtime-reverse/${pkg}| head -1`
+ filename=`ls ${PKGDATA_DIR}/runtime-reverse/${pkg}| head -1`
pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
# check to see if the package name exists in the manifest. if so, bail.
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index dac160e17e..9503096245 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -47,7 +47,6 @@ python multilib_virtclass_handler () {
e.data.setVar("MLPREFIX", variant + "-")
e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
- e.data.setVar("SHLIBSDIR_virtclass-multilib-" + variant ,e.data.getVar("SHLIBSDIR", False) + "/" + variant)
e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override)
# Expand the WHITELISTs with multilib prefix
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 599df246f0..fbb68391b9 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1304,17 +1304,8 @@ python package_do_filedeps() {
d.setVar("FILERPROVIDESFLIST_" + pkg, " ".join(provides_files[pkg]))
}
-def getshlibsdirs(d):
- dirs = []
- triplets = (d.getVar("PKGTRIPLETS") or "").split()
- for t in triplets:
- dirs.append("${TMPDIR}/pkgdata/" + t + "/shlibs/")
- return " ".join(dirs)
-getshlibsdirs[vardepsexclude] = "PKGTRIPLETS"
-
-SHLIBSDIRS = "${@getshlibsdirs(d)}"
-SHLIBSDIR = "${TMPDIR}/pkgdata/${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/shlibs"
-SHLIBSWORKDIR = "${PKGDESTWORK}/shlibs"
+SHLIBSDIRS = "${PKGDATA_DIR}/${MLPREFIX}shlibs"
+SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs"
python package_do_shlibs() {
import re, pipes
@@ -1953,6 +1944,7 @@ do_packagedata[sstate-name] = "packagedata"
do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}"
do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}"
do_packagedata[sstate-lockfile-shared] = "${PACKAGELOCK}"
+do_packagedata[stamp-extra-info] = "${MACHINE}"
python do_packagedata_setscene () {
sstate_setscene(d)
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 2a7e1642f8..fd861e980d 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -109,7 +109,7 @@ translate_smart_to_oe() {
fi
# Workaround for bug 3565
# Simply look to see if we know of a package with that name, if not try again!
- filename=`ls ${TMPDIR}/pkgdata/*/runtime-reverse/$new_pkg 2>/dev/null | head -n 1`
+ filename=`ls ${PKGDATA_DIR}/runtime-reverse/$new_pkg 2>/dev/null | head -n 1`
if [ -n "$filename" ] ; then
found=1
break
diff --git a/meta/classes/packageinfo.bbclass b/meta/classes/packageinfo.bbclass
index 42fcd04150..7d60ace1dc 100644
--- a/meta/classes/packageinfo.bbclass
+++ b/meta/classes/packageinfo.bbclass
@@ -1,27 +1,20 @@
python packageinfo_handler () {
import oe.packagedata
pkginfolist = []
- tmpdir = e.data.getVar('TMPDIR', True)
- target_vendor = e.data.getVar('TARGET_VENDOR', True)
- target_os = e.data.getVar('TARGET_OS', True)
- package_archs = e.data.getVar('PACKAGE_ARCHS', True)
- packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1]
- deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging
-
- for arch in package_archs.split():
- pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/'
- if os.path.exists(pkgdata_dir):
- for root, dirs, files in os.walk(pkgdata_dir):
- for pkgname in files:
- if pkgname.endswith('.packaged'):
- pkgname = pkgname[:-9]
- pkgdatafile = root + pkgname
- try:
- sdata = oe.packagedata.read_pkgdatafile(pkgdatafile)
- sdata['PKG'] = pkgname
- pkginfolist.append(sdata)
- except Exception as e:
- bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e)))
+
+ pkgdata_dir = e.data.getVar("PKGDATA_DIR", True) + '/runtime/'
+ if os.path.exists(pkgdata_dir):
+ for root, dirs, files in os.walk(pkgdata_dir):
+ for pkgname in files:
+ if pkgname.endswith('.packaged'):
+ pkgname = pkgname[:-9]
+ pkgdatafile = root + pkgname
+ try:
+ sdata = oe.packagedata.read_pkgdatafile(pkgdatafile)
+ sdata['PKG'] = pkgname
+ pkginfolist.append(sdata)
+ except Exception as e:
+ bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e)))
bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data)
}
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 9eed72ad3f..58d0c206b7 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -382,7 +382,7 @@ DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images/${MACHINE}"
DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools"
-PKGDATA_DIR = "${TMPDIR}/pkgdata/${MULTIMACH_TARGET_SYS}"
+PKGDATA_DIR = "${STAGING_DIR_HOST}/pkgdata"
##################################################################
# SDK variables.
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index 9ff06cc768..733236d6bb 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -8,6 +8,7 @@ MULTILIBS ??= "multilib:lib32"
STAGING_DIR_HOST = "${STAGING_DIR}/${MLPREFIX}${MACHINE}"
STAGING_DIR_TARGET = "${STAGING_DIR}/${MLPREFIX}${MACHINE}"
+PKGDATA_DIR = "${STAGING_DIR}/${MACHINE}/pkgdata"
INHERIT += "multilib_global"
diff --git a/meta/lib/oe/packagedata.py b/meta/lib/oe/packagedata.py
index 14c38bdc0f..cd5f0445f5 100644
--- a/meta/lib/oe/packagedata.py
+++ b/meta/lib/oe/packagedata.py
@@ -23,21 +23,7 @@ def read_pkgdatafile(fn):
return pkgdata
-def all_pkgdatadirs(d):
- dirs = []
- triplets = (d.getVar("PKGMLTRIPLETS") or "").split()
- for t in triplets:
- dirs.append(t + "/runtime/")
- return dirs
-
def get_subpkgedata_fn(pkg, d):
- dirs = all_pkgdatadirs(d)
-
- pkgdata = d.expand('${TMPDIR}/pkgdata/')
- for dir in dirs:
- fn = pkgdata + dir + pkg
- if os.path.exists(fn):
- return fn
return d.expand('${PKGDATA_DIR}/runtime/%s' % pkg)
def has_subpkgdata(pkg, d):
@@ -70,29 +56,24 @@ def read_subpkgdata_dict(pkg, d):
def _pkgmap(d):
"""Return a dictionary mapping package to recipe name."""
- target_os = d.getVar("TARGET_OS", True)
- target_vendor = d.getVar("TARGET_VENDOR", True)
- basedir = os.path.dirname(d.getVar("PKGDATA_DIR", True))
-
- dirs = ("%s%s-%s" % (arch, target_vendor, target_os)
- for arch in d.getVar("PACKAGE_ARCHS", True).split())
+ pkgdatadir = d.getVar("PKGDATA_DIR", True)
pkgmap = {}
- for pkgdatadir in (os.path.join(basedir, sys) for sys in dirs):
+ try:
+ files = os.listdir(pkgdatadir)
+ except OSError:
+ bb.warn("No files in %s?" % pkgdatadir)
+ files = []
+
+ for pn in filter(lambda f: not os.path.isdir(os.path.join(pkgdatadir, f)), files):
try:
- files = os.listdir(pkgdatadir)
+ pkgdata = read_pkgdatafile(os.path.join(pkgdatadir, pn))
except OSError:
continue
- for pn in filter(lambda f: not os.path.isdir(os.path.join(pkgdatadir, f)), files):
- try:
- pkgdata = read_pkgdatafile(os.path.join(pkgdatadir, pn))
- except OSError:
- continue
-
- packages = pkgdata.get("PACKAGES") or ""
- for pkg in packages.split():
- pkgmap[pkg] = pn
+ packages = pkgdata.get("PACKAGES") or ""
+ for pkg in packages.split():
+ pkgmap[pkg] = pn
return pkgmap
diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index d20be9f8ff..062ccc7c03 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -60,10 +60,6 @@ def get_tune_parameters(tune, d):
get_tune_parameters[vardepsexclude] = "AVAILTUNES"
-# We really need HOST_SYS here for some packages and TARGET_SYS for others.
-# For now, libgcc is most important so we fix for that - RP.
-SHLIBSDIR = "${STAGING_DIR_TARGET}/shlibs"
-
DEBIANNAME_${MLPREFIX}libgcc = "libgcc1"
MIRRORS =+ "\
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index c63f87d7e6..dcdfe25dfd 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -41,17 +41,13 @@ def usage():
def glob(args):
- if len(args) < 4:
+ if len(args) < 3:
usage()
sys.exit(1)
pkgdata_dir = args[0]
- target_suffix = args[1]
- pkglist_file = args[2]
- globs = args[3].split()
-
- if target_suffix.startswith("-"):
- target_suffix = target_suffix[1:]
+ pkglist_file = args[1]
+ globs = args[2].split()
skipregex = re.compile("-locale-|^locale-base-|-dev$|-doc$|-dbg$|-staticdev$|^kernel-module-")
@@ -63,7 +59,6 @@ def glob(args):
continue
pkg = fields[0]
arch = fields[1]
- multimach_target_sys = "%s-%s" % (arch, target_suffix)
# Skip packages for which there is no point applying globs
if skipregex.search(pkg):
@@ -86,9 +81,9 @@ def glob(args):
# Define some functions
def revpkgdata(pkgn):
- return os.path.join(pkgdata_dir, multimach_target_sys, "runtime-reverse", pkgn)
+ return os.path.join(pkgdata_dir, "runtime-reverse", pkgn)
def fwdpkgdata(pkgn):
- return os.path.join(pkgdata_dir, multimach_target_sys, "runtime", pkgn)
+ return os.path.join(pkgdata_dir, "runtime", pkgn)
def readpn(pkgdata_file):
pn = ""
with open(pkgdata_file, 'r') as f:
@@ -156,17 +151,13 @@ def glob(args):
print("\n".join(mappedpkgs))
def read_value(args):
- if len(args) < 4:
+ if len(args) < 3:
usage()
sys.exit(1)
pkgdata_dir = args[0]
- target_suffix = args[1]
- var = args[2]
- packages = args[3].split()
-
- if target_suffix.startswith("-"):
- target_suffix = target_suffix[1:]
+ var = args[1]
+ packages = args[2].split()
def readvar(pkgdata_file, var):
val = ""
@@ -177,23 +168,16 @@ def read_value(args):
return val
if debug:
- print "read-value('%s', '%s', '%s' '%s'" % (pkgdata_dir, target_suffix, var, packages)
+ print "read-value('%s', '%s' '%s'" % (pkgdata_dir, var, packages)
for package in packages:
pkg_split = package.split('_')
pkg_name = pkg_split[0]
pkg_arch = '_'.join(pkg_split[1:])
if debug:
print "package: name: '%s', arch: '%s'" % (pkg_name, pkg_arch)
- multimach_target_sys = "%s-%s" % (pkg_arch, target_suffix)
- revlink = os.path.join(pkgdata_dir, multimach_target_sys, "runtime-reverse", pkg_name)
+ revlink = os.path.join(pkgdata_dir, "runtime-reverse", pkg_name)
if debug:
print(revlink)
- if not os.path.exists(revlink):
- # [YOCTO #4227] try to drop -gnueabi from TARGET_OS
- multimach_target_sys = '-'.join(multimach_target_sys.split('-')[:-1])
- revlink = os.path.join(pkgdata_dir, multimach_target_sys, "runtime-reverse", pkg_name)
- if debug:
- print(revlink)
if os.path.exists(revlink):
mappedpkg = os.path.basename(os.readlink(revlink))
qvar = var