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:
|
||||
#
|
||||
# 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
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
|
||||
inherit packagedata
|
||||
inherit prserv
|
||||
|
||||
PKGD = "${WORKDIR}/package"
|
||||
PKGDEST = "${WORKDIR}/packages-split"
|
||||
|
@ -326,6 +329,15 @@ def runtime_mapping_rename (varname, d):
|
|||
# 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() {
|
||||
if (bb.data.getVar('PACKAGE_NO_LOCALE', d, True) == '1'):
|
||||
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, 'PV')
|
||||
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, 'SUMMARY')
|
||||
write_if_exists(sf, pkg, 'RDEPENDS')
|
||||
|
@ -911,9 +925,9 @@ python package_do_shlibs() {
|
|||
|
||||
workdir = bb.data.getVar('WORKDIR', d, True)
|
||||
|
||||
ver = bb.data.getVar('PV', d, True)
|
||||
ver = bb.data.getVar('PKGV', d, True)
|
||||
if not ver:
|
||||
bb.error("PV not defined")
|
||||
bb.error("PKGV not defined")
|
||||
return
|
||||
|
||||
pkgdest = bb.data.getVar('PKGDEST', d, True)
|
||||
|
@ -1025,6 +1039,12 @@ python package_do_shlibs() {
|
|||
needs_ldconfig = False
|
||||
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] = []
|
||||
sonames = list()
|
||||
renames = list()
|
||||
|
@ -1048,10 +1068,10 @@ python package_do_shlibs() {
|
|||
fd = open(shlibs_file, 'w')
|
||||
for s in sonames:
|
||||
fd.write(s + '\n')
|
||||
shlib_provider[s] = (pkg, ver)
|
||||
shlib_provider[s] = (pkg, pkgver)
|
||||
fd.close()
|
||||
fd = open(shver_file, 'w')
|
||||
fd.write(ver + '\n')
|
||||
fd.write(pkgver + '\n')
|
||||
fd.close()
|
||||
if needs_ldconfig and use_ldconfig:
|
||||
bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg)
|
||||
|
@ -1348,7 +1368,8 @@ python package_depchains() {
|
|||
}
|
||||
|
||||
PACKAGE_PREPROCESS_FUNCS ?= ""
|
||||
PACKAGEFUNCS ?= "perform_packagecopy \
|
||||
PACKAGEFUNCS ?= "package_get_auto_pr \
|
||||
perform_packagecopy \
|
||||
${PACKAGE_PREPROCESS_FUNCS} \
|
||||
package_do_split_locales \
|
||||
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