classes/package(prserv).bbclass: Get PRAUTO and use PKGV/PKGR.
1. Added package_get_auto_pr to PACKAGEFUNCS to get the auto incremented value(PRAUTO) from remote PR service. 2. use PKGV/PKGR for pkgdata which will be used by package_write_xxx. 3. Added supporting functions in prserv.bbclass. (From OE-Core rev: b1f6120c04731d3d66f322ce550b0d223c118dab) Signed-off-by: Lianhao Lu <lianhao.lu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
f906608f68
commit
66d27435be
|
@ -7,34 +7,37 @@
|
||||||
#
|
#
|
||||||
# There are the following default steps but PACKAGEFUNCS can be extended:
|
# There are the following default steps but PACKAGEFUNCS can be extended:
|
||||||
#
|
#
|
||||||
# a) perform_packagecopy - Copy D into PKGD
|
# a) package_get_auto_pr - get PRAUTO from remote PR service
|
||||||
#
|
#
|
||||||
# b) package_do_split_locales - Split out the locale files, updates FILES and PACKAGES
|
# b) perform_packagecopy - Copy D into PKGD
|
||||||
#
|
#
|
||||||
# c) split_and_strip_files - split the files into runtime and debug and strip them.
|
# c) package_do_split_locales - Split out the locale files, updates FILES and PACKAGES
|
||||||
|
#
|
||||||
|
# d) split_and_strip_files - split the files into runtime and debug and strip them.
|
||||||
# Debug files include debug info split, and associated sources that end up in -dbg packages
|
# Debug files include debug info split, and associated sources that end up in -dbg packages
|
||||||
#
|
#
|
||||||
# d) populate_packages - Split the files in PKGD into separate packages in PKGDEST/<pkgname>
|
# e) populate_packages - Split the files in PKGD into separate packages in PKGDEST/<pkgname>
|
||||||
# Also triggers the binary stripping code to put files in -dbg packages.
|
# Also triggers the binary stripping code to put files in -dbg packages.
|
||||||
#
|
#
|
||||||
# e) package_do_filedeps - Collect perfile run-time dependency metadata
|
# f) package_do_filedeps - Collect perfile run-time dependency metadata
|
||||||
# The data is stores in FILER{PROVIDES,DEPENDS}_file_pkg variables with
|
# The data is stores in FILER{PROVIDES,DEPENDS}_file_pkg variables with
|
||||||
# a list of affected files in FILER{PROVIDES,DEPENDS}FLIST_pkg
|
# a list of affected files in FILER{PROVIDES,DEPENDS}FLIST_pkg
|
||||||
#
|
#
|
||||||
# f) package_do_shlibs - Look at the shared libraries generated and autotmatically add any
|
# g) package_do_shlibs - Look at the shared libraries generated and autotmatically add any
|
||||||
# depenedencies found. Also stores the package name so anyone else using this library
|
# depenedencies found. Also stores the package name so anyone else using this library
|
||||||
# knows which package to depend on.
|
# knows which package to depend on.
|
||||||
#
|
#
|
||||||
# g) package_do_pkgconfig - Keep track of which packages need and provide which .pc files
|
# h) package_do_pkgconfig - Keep track of which packages need and provide which .pc files
|
||||||
#
|
#
|
||||||
# h) read_shlibdeps - Reads the stored shlibs information into the metadata
|
# i) read_shlibdeps - Reads the stored shlibs information into the metadata
|
||||||
#
|
#
|
||||||
# i) package_depchains - Adds automatic dependencies to -dbg and -dev packages
|
# j) package_depchains - Adds automatic dependencies to -dbg and -dev packages
|
||||||
#
|
#
|
||||||
# j) emit_pkgdata - saves the packaging data into PKGDATA_DIR for use in later
|
# k) emit_pkgdata - saves the packaging data into PKGDATA_DIR for use in later
|
||||||
# packaging steps
|
# packaging steps
|
||||||
|
|
||||||
inherit packagedata
|
inherit packagedata
|
||||||
|
inherit prserv
|
||||||
|
|
||||||
PKGD = "${WORKDIR}/package"
|
PKGD = "${WORKDIR}/package"
|
||||||
PKGDEST = "${WORKDIR}/packages-split"
|
PKGDEST = "${WORKDIR}/packages-split"
|
||||||
|
@ -326,6 +329,15 @@ def runtime_mapping_rename (varname, d):
|
||||||
# Package functions suitable for inclusion in PACKAGEFUNCS
|
# Package functions suitable for inclusion in PACKAGEFUNCS
|
||||||
#
|
#
|
||||||
|
|
||||||
|
python package_get_auto_pr() {
|
||||||
|
if d.getVar('USE_PR_SERV', True):
|
||||||
|
auto_pr=prserv_get_pr_auto(d)
|
||||||
|
if auto_pr is None:
|
||||||
|
bb.fatal("Can NOT get auto PR revision from remote PR service")
|
||||||
|
return
|
||||||
|
d.setVar('PRAUTO',str(auto_pr))
|
||||||
|
}
|
||||||
|
|
||||||
python package_do_split_locales() {
|
python package_do_split_locales() {
|
||||||
if (bb.data.getVar('PACKAGE_NO_LOCALE', d, True) == '1'):
|
if (bb.data.getVar('PACKAGE_NO_LOCALE', d, True) == '1'):
|
||||||
bb.debug(1, "package requested not splitting locales")
|
bb.debug(1, "package requested not splitting locales")
|
||||||
|
@ -773,6 +785,8 @@ python emit_pkgdata() {
|
||||||
write_if_exists(sf, pkg, 'PN')
|
write_if_exists(sf, pkg, 'PN')
|
||||||
write_if_exists(sf, pkg, 'PV')
|
write_if_exists(sf, pkg, 'PV')
|
||||||
write_if_exists(sf, pkg, 'PR')
|
write_if_exists(sf, pkg, 'PR')
|
||||||
|
write_if_exists(sf, pkg, 'PKGV')
|
||||||
|
write_if_exists(sf, pkg, 'PKGR')
|
||||||
write_if_exists(sf, pkg, 'DESCRIPTION')
|
write_if_exists(sf, pkg, 'DESCRIPTION')
|
||||||
write_if_exists(sf, pkg, 'SUMMARY')
|
write_if_exists(sf, pkg, 'SUMMARY')
|
||||||
write_if_exists(sf, pkg, 'RDEPENDS')
|
write_if_exists(sf, pkg, 'RDEPENDS')
|
||||||
|
@ -911,9 +925,9 @@ python package_do_shlibs() {
|
||||||
|
|
||||||
workdir = bb.data.getVar('WORKDIR', d, True)
|
workdir = bb.data.getVar('WORKDIR', d, True)
|
||||||
|
|
||||||
ver = bb.data.getVar('PV', d, True)
|
ver = bb.data.getVar('PKGV', d, True)
|
||||||
if not ver:
|
if not ver:
|
||||||
bb.error("PV not defined")
|
bb.error("PKGV not defined")
|
||||||
return
|
return
|
||||||
|
|
||||||
pkgdest = bb.data.getVar('PKGDEST', d, True)
|
pkgdest = bb.data.getVar('PKGDEST', d, True)
|
||||||
|
@ -1025,6 +1039,12 @@ python package_do_shlibs() {
|
||||||
needs_ldconfig = False
|
needs_ldconfig = False
|
||||||
bb.debug(2, "calculating shlib provides for %s" % pkg)
|
bb.debug(2, "calculating shlib provides for %s" % pkg)
|
||||||
|
|
||||||
|
pkgver = bb.data.getVar('PKGV_' + pkg, d, True)
|
||||||
|
if not pkgver:
|
||||||
|
pkgver = bb.data.getVar('PV_' + pkg, d, True)
|
||||||
|
if not pkgver:
|
||||||
|
pkgver = ver
|
||||||
|
|
||||||
needed[pkg] = []
|
needed[pkg] = []
|
||||||
sonames = list()
|
sonames = list()
|
||||||
renames = list()
|
renames = list()
|
||||||
|
@ -1048,10 +1068,10 @@ python package_do_shlibs() {
|
||||||
fd = open(shlibs_file, 'w')
|
fd = open(shlibs_file, 'w')
|
||||||
for s in sonames:
|
for s in sonames:
|
||||||
fd.write(s + '\n')
|
fd.write(s + '\n')
|
||||||
shlib_provider[s] = (pkg, ver)
|
shlib_provider[s] = (pkg, pkgver)
|
||||||
fd.close()
|
fd.close()
|
||||||
fd = open(shver_file, 'w')
|
fd = open(shver_file, 'w')
|
||||||
fd.write(ver + '\n')
|
fd.write(pkgver + '\n')
|
||||||
fd.close()
|
fd.close()
|
||||||
if needs_ldconfig and use_ldconfig:
|
if needs_ldconfig and use_ldconfig:
|
||||||
bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg)
|
bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg)
|
||||||
|
@ -1348,7 +1368,8 @@ python package_depchains() {
|
||||||
}
|
}
|
||||||
|
|
||||||
PACKAGE_PREPROCESS_FUNCS ?= ""
|
PACKAGE_PREPROCESS_FUNCS ?= ""
|
||||||
PACKAGEFUNCS ?= "perform_packagecopy \
|
PACKAGEFUNCS ?= "package_get_auto_pr \
|
||||||
|
perform_packagecopy \
|
||||||
${PACKAGE_PREPROCESS_FUNCS} \
|
${PACKAGE_PREPROCESS_FUNCS} \
|
||||||
package_do_split_locales \
|
package_do_split_locales \
|
||||||
split_and_strip_files \
|
split_and_strip_files \
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
def prserv_make_conn(d):
|
||||||
|
import prserv.serv
|
||||||
|
host=d.getVar("PRSERV_HOST",True)
|
||||||
|
port=d.getVar("PRSERV_PORT",True)
|
||||||
|
try:
|
||||||
|
conn=None
|
||||||
|
conn=prserv.serv.PRServerConnection(host,int(port))
|
||||||
|
d.setVar("__PRSERV_CONN",conn)
|
||||||
|
except Exception, exc:
|
||||||
|
bb.fatal("Connecting to PR service %s:%s failed: %s" % (host, port, str(exc)))
|
||||||
|
|
||||||
|
return conn
|
||||||
|
|
||||||
|
def prserv_get_pr_auto(d):
|
||||||
|
if not d.getVar('USE_PR_SERV', True):
|
||||||
|
bb.warn("Not using network based PR service")
|
||||||
|
return None
|
||||||
|
|
||||||
|
conn=d.getVar("__PRSERV_CONN", True)
|
||||||
|
if conn is None:
|
||||||
|
conn=prserv_make_conn(d)
|
||||||
|
if conn is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
version=d.getVar("PF", True)
|
||||||
|
checksum=d.getVar("BB_TASKHASH", True)
|
||||||
|
auto_rev=conn.getPR(version,checksum)
|
||||||
|
bb.debug(1,"prserv_get_pr_auto: version: %s checksum: %s result %d" % (version, checksum, auto_rev))
|
||||||
|
return auto_rev
|
Loading…
Reference in New Issue