[OE-core] [PATCH 0/5] network based PR service

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Thu May 19 11:01:59 UTC 2011


2011/5/19 Lianhao Lu <lianhao.lu at intel.com>

> From: Lianhao Lu <lianhao.lu at intel.com>
>
> This series of 5 patches implemented the network based PR service and
> enabled
> the poky to use it during the task do_package and do_package_write_xxx. By
> using the network based PR service and the basichash for
> BB_SIGNATURE_HANDLER,
> the poky user may not need to bump the PR manually everytime he/she changes
> the recipe. The package will get automatically rebuilt and new revision
> number
> reflecting the change will be included in the package feed.
>
> The first patch "[PATCH 1/5] Added the PR service." implemented the network
> based PR service on the server side. It is a XMLRPC server with the sqlite3
> as the backend database. The users query an automated value from this
> service
> by giving  a tuple of (version, checksum). The returned value will
> be used as a part of the package revision value during the package feed
> creation process. The following algorihtm is used so this PR service could
> give
> multiple build servers new values for the new index tuple and same values
> for
> the same index tuple:
>
> IF the index tuple(version, checksum) is found,  THEN
>    return the value.
> ELSE
>    find the max value in the database with the same version.
>    increment it and save it into the database along with the index tuple.
>    return the incremented value.
>    (Note: If no matching version is found, save and return the value of 0).
> ENDIF
>
> To start the network based PR service daemon, run the following command
> after
> "sourcing" the environment file oe-init-build-env:
>
>  bitbake-prserv --start
>
> See bitbake-prserv --help to see a detailed description of the options.
>
> The remaining 4 patches enable the poky to use the PR service. In order to
> use
> it, the user needs to set 2 varialbes of PRSERV_HOST and PRSERV_PORT (which
> specify the PR service ip address and port, default is "localhost" and
> "8585"
> respectively) in the file conf/local.conf under the building directory.
> Unsetting these 2 variables would disable the poky to use the PR service
> for
> backward compatibility.
>
> The following important new variables are introduced in bitbake.conf:
>
> PRFORMAT: The final value goes into the package revision. Default is
> something
> like PR.PRAUTO, where PRAUTO is the value returned by the PR service.
>
> PRAUTOINX: The version part of the index tuple for the PR service. Default
> is PF.
> The checksum of that tuple is the task checksum of do_package.
>
> Pull URL: git://git.pokylinux.org/poky-contrib.git
>  Branch: llu/PR-service
>  Browse:
> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=llu/PR-service
>
> Thanks,
>    Lianhao Lu <lianhao.lu at intel.com>
> ---
>
>
> Lianhao Lu (5):
>  Added the PR service.
>  conf/bitbake.conf: Added variables for PR service.
>  classes/package(prserv).bbclass: Added PR service support.
>  classes/package_xxx.class: Added PR service support.
>  meta-yocto/local.conf.sample: Added PRSERV_HOST and PRSERV_PORT.
>
>  bitbake/bin/bitbake-prserv        |   53 ++++++++++
>  bitbake/lib/prserv/__init__.py    |   11 ++
>  bitbake/lib/prserv/db.py          |  100 +++++++++++++++++++
>  bitbake/lib/prserv/serv.py        |  198
> +++++++++++++++++++++++++++++++++++++
>  meta-yocto/conf/local.conf.sample |    5 +
>  meta/classes/package.bbclass      |   36 +++++--
>  meta/classes/package_deb.bbclass  |    6 +-
>  meta/classes/package_ipk.bbclass  |    6 +-
>  meta/classes/package_rpm.bbclass  |    4 +-
>  meta/classes/package_tar.bbclass  |    4 +-
>  meta/classes/prserv.bbclass       |   29 ++++++
>  meta/conf/bitbake.conf            |   14 +++-
>  12 files changed, 443 insertions(+), 23 deletions(-)
>  create mode 100755 bitbake/bin/bitbake-prserv
>  create mode 100644 bitbake/lib/prserv/__init__.py
>  create mode 100644 bitbake/lib/prserv/db.py
>  create mode 100644 bitbake/lib/prserv/serv.py
>  create mode 100644 meta/classes/prserv.bbclass
>
>
> What should I do to either disable this for some recipes, or use a
different (private) server?
We do not wish to rely on an external server for proprietary recipes (or for
recipes for which we made a local change in an overlay).
How is this case handled?

Frans



More information about the Openembedded-core mailing list