mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
Add source package to ${PACKAGES}
Permanently adds the -src source package to ${PACKAGES} instead of
relying on creating it dynamically at packaging time. The source package
is now defined in bitbake.conf, just like -dev and -dbg packages.
For compatibility, the -src package is still added dynamically if it was
missing, since some recipes have a tendency to completely override
PACKAGES and do so without manually adding back the -src package.
This allows RDEPENDS on the -src packages, which wasn't previously
possible.
[YOCTO #13203]
(From OE-Core rev: b25e1edf0204fc2f64aa8d66e09b8e2d67b90e17)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
bb4597c4d9
commit
ccc413fd93
@@ -1128,7 +1128,7 @@ python populate_packages () {
|
|||||||
workdir = d.getVar('WORKDIR')
|
workdir = d.getVar('WORKDIR')
|
||||||
outdir = d.getVar('DEPLOY_DIR')
|
outdir = d.getVar('DEPLOY_DIR')
|
||||||
dvar = d.getVar('PKGD')
|
dvar = d.getVar('PKGD')
|
||||||
packages = d.getVar('PACKAGES')
|
packages = d.getVar('PACKAGES').split()
|
||||||
pn = d.getVar('PN')
|
pn = d.getVar('PN')
|
||||||
|
|
||||||
bb.utils.mkdirhier(outdir)
|
bb.utils.mkdirhier(outdir)
|
||||||
@@ -1138,32 +1138,34 @@ python populate_packages () {
|
|||||||
|
|
||||||
split_source_package = (d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg')
|
split_source_package = (d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg')
|
||||||
|
|
||||||
# If debug-with-srcpkg mode is enabled then the src package is added
|
# If debug-with-srcpkg mode is enabled then add the source package if it
|
||||||
# into the package list and the source directory as its main content
|
# doesn't exist and add the source file contents to the source package.
|
||||||
if split_source_package:
|
if split_source_package:
|
||||||
src_package_name = ('%s-src' % d.getVar('PN'))
|
src_package_name = ('%s-src' % d.getVar('PN'))
|
||||||
packages += (' ' + src_package_name)
|
if not src_package_name in packages:
|
||||||
|
packages.append(src_package_name)
|
||||||
d.setVar('FILES_%s' % src_package_name, '/usr/src/debug')
|
d.setVar('FILES_%s' % src_package_name, '/usr/src/debug')
|
||||||
|
|
||||||
# Sanity check PACKAGES for duplicates
|
# Sanity check PACKAGES for duplicates
|
||||||
# Sanity should be moved to sanity.bbclass once we have the infrastructure
|
# Sanity should be moved to sanity.bbclass once we have the infrastructure
|
||||||
package_dict = {}
|
package_dict = {}
|
||||||
|
|
||||||
for i, pkg in enumerate(packages.split()):
|
for i, pkg in enumerate(packages):
|
||||||
if pkg in package_dict:
|
if pkg in package_dict:
|
||||||
msg = "%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg
|
msg = "%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg
|
||||||
package_qa_handle_error("packages-list", msg, d)
|
package_qa_handle_error("packages-list", msg, d)
|
||||||
# If debug-with-srcpkg mode is enabled then the src package will have
|
# Ensure the source package gets the chance to pick up the source files
|
||||||
# priority over dbg package when assigning the files.
|
# before the debug package by ordering it first in PACKAGES. Whether it
|
||||||
# This allows src package to include source files and remove them from dbg.
|
# actually picks up any source files is controlled by
|
||||||
elif split_source_package and pkg.endswith("-src"):
|
# PACKAGE_DEBUG_SPLIT_STYLE.
|
||||||
|
elif pkg.endswith("-src"):
|
||||||
package_dict[pkg] = (10, i)
|
package_dict[pkg] = (10, i)
|
||||||
elif autodebug and pkg.endswith("-dbg"):
|
elif autodebug and pkg.endswith("-dbg"):
|
||||||
package_dict[pkg] = (30, i)
|
package_dict[pkg] = (30, i)
|
||||||
else:
|
else:
|
||||||
package_dict[pkg] = (50, i)
|
package_dict[pkg] = (50, i)
|
||||||
package_list = sorted(package_dict.keys(), key=package_dict.get)
|
packages = sorted(package_dict.keys(), key=package_dict.get)
|
||||||
d.setVar('PACKAGES', ' '.join(package_list))
|
d.setVar('PACKAGES', ' '.join(packages))
|
||||||
pkgdest = d.getVar('PKGDEST')
|
pkgdest = d.getVar('PKGDEST')
|
||||||
|
|
||||||
seen = []
|
seen = []
|
||||||
@@ -1181,7 +1183,7 @@ python populate_packages () {
|
|||||||
if "/.debug/" in path or path.endswith("/.debug"):
|
if "/.debug/" in path or path.endswith("/.debug"):
|
||||||
debug.append(path)
|
debug.append(path)
|
||||||
|
|
||||||
for pkg in package_list:
|
for pkg in packages:
|
||||||
root = os.path.join(pkgdest, pkg)
|
root = os.path.join(pkgdest, pkg)
|
||||||
bb.utils.mkdirhier(root)
|
bb.utils.mkdirhier(root)
|
||||||
|
|
||||||
@@ -1252,7 +1254,7 @@ python populate_packages () {
|
|||||||
|
|
||||||
# Handle LICENSE_EXCLUSION
|
# Handle LICENSE_EXCLUSION
|
||||||
package_list = []
|
package_list = []
|
||||||
for pkg in packages.split():
|
for pkg in packages:
|
||||||
if d.getVar('LICENSE_EXCLUSION-' + pkg):
|
if d.getVar('LICENSE_EXCLUSION-' + pkg):
|
||||||
msg = "%s has an incompatible license. Excluding from packaging." % pkg
|
msg = "%s has an incompatible license. Excluding from packaging." % pkg
|
||||||
package_qa_handle_error("incompatible-license", msg, d)
|
package_qa_handle_error("incompatible-license", msg, d)
|
||||||
|
|||||||
+10
-1
@@ -237,6 +237,10 @@ DESCRIPTION ?= "${SUMMARY}."
|
|||||||
#SUMMARY_${PN} ?= "${SUMMARY}"
|
#SUMMARY_${PN} ?= "${SUMMARY}"
|
||||||
#DESCRIPTION_${PN} ?= "${DESCRIPTION}"
|
#DESCRIPTION_${PN} ?= "${DESCRIPTION}"
|
||||||
|
|
||||||
|
SUMMARY_${PN}-src ?= "${SUMMARY} - Source files"
|
||||||
|
DESCRIPTION_${PN}-src ?= "${DESCRIPTION} \
|
||||||
|
This package contains sources for debugging purposes."
|
||||||
|
|
||||||
SUMMARY_${PN}-dbg ?= "${SUMMARY} - Debugging files"
|
SUMMARY_${PN}-dbg ?= "${SUMMARY} - Debugging files"
|
||||||
DESCRIPTION_${PN}-dbg ?= "${DESCRIPTION} \
|
DESCRIPTION_${PN}-dbg ?= "${DESCRIPTION} \
|
||||||
This package contains ELF symbols and related sources for debugging purposes."
|
This package contains ELF symbols and related sources for debugging purposes."
|
||||||
@@ -285,7 +289,7 @@ SOLIBSDEV_darwin = ".dylibbroken"
|
|||||||
PACKAGE_DEBUG_SPLIT_STYLE ?= "debug-with-srcpkg"
|
PACKAGE_DEBUG_SPLIT_STYLE ?= "debug-with-srcpkg"
|
||||||
|
|
||||||
PACKAGE_BEFORE_PN ?= ""
|
PACKAGE_BEFORE_PN ?= ""
|
||||||
PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
|
PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
|
||||||
PACKAGES_DYNAMIC = "^${PN}-locale-.*"
|
PACKAGES_DYNAMIC = "^${PN}-locale-.*"
|
||||||
FILES = ""
|
FILES = ""
|
||||||
|
|
||||||
@@ -324,6 +328,11 @@ FILES_${PN}-dbg = "/usr/lib/debug /usr/src/debug"
|
|||||||
SECTION_${PN}-dbg = "devel"
|
SECTION_${PN}-dbg = "devel"
|
||||||
ALLOW_EMPTY_${PN}-dbg = "1"
|
ALLOW_EMPTY_${PN}-dbg = "1"
|
||||||
|
|
||||||
|
# The files list for source packages are dynamically set based on
|
||||||
|
# PACKAGE_DEBUG_SPLIT_STYLE
|
||||||
|
FILES_${PN}-src = ""
|
||||||
|
SECTION_${PN}-src = "devel"
|
||||||
|
|
||||||
FILES_${PN}-locale = "${datadir}/locale"
|
FILES_${PN}-locale = "${datadir}/locale"
|
||||||
|
|
||||||
# File manifest
|
# File manifest
|
||||||
|
|||||||
Reference in New Issue
Block a user