Meego Wiki
Views

Build Infrastructure/Packagers Developers/CLI Part 4

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Localcheckbuild)
(Localcheckbuild)
Line 1: Line 1:
= Localcheckbuild =
= Localcheckbuild =
-
localcheckbuild tool is one osc plugin which is used to list the dependant package list and local-build them with the new update packages to ensure your update doesn't break anything in Trunk:Testing, Trunk:Handset, Trunk:Netbook and Trunk:IVI projects.<BR>
+
localcheckbuild tool is one osc plugin which is used to list the dependant package list and local-build them with the new update packages to ensure your update doesn't break anything in Trunk:Testing, Trunk:Handset, Trunk:Netbook and Trunk:IVI projects.All the build work will implement in your local machine, it doesn’t create any linking/copying on Server side.<BR>
-
All the build work will implement in your local machine, it doesn’t create any linking/copying on Server side.<BR>
+
== Workflow ==
== Workflow ==
The workflow of this plugin is:<BR>
The workflow of this plugin is:<BR>

Revision as of 06:45, 19 November 2010

Contents

Localcheckbuild

localcheckbuild tool is one osc plugin which is used to list the dependant package list and local-build them with the new update packages to ensure your update doesn't break anything in Trunk:Testing, Trunk:Handset, Trunk:Netbook and Trunk:IVI projects.All the build work will implement in your local machine, it doesn’t create any linking/copying on Server side.

Workflow

The workflow of this plugin is:

  • Check packages in repos of Trunk:Testing, Trunk:Netbook, Trunk:Handset, Trunk:IVI to get the package list which depends on the one you want to check(reuse “osc resolvedeps” plugin);
  • Download new RPMs of your updated package and check out the sources of packages in dependant list;
  • Run“osc build –prefer-pkgs=xxx” to build the package and check the result in the list one by one.
    • --prefer-pkgs option ensures it uses the new updated RPMs when installing the build-root;
    • Since we use the "osc build" tool, the repos the tool pulls from is OBS download repository like http://download.meego.com/live/Trunk:/Testing/standard/, http://download.meego.com/live/Trunk:/Netbook/Testing/ .... , user can’t specify the repos currently.
    • Trunk:Netbook, Trunk:Handset, Trunk:IVI build against both Trunk/Trunk:Testing on OBS. In this tool, we only check the build against Trunk:Testing by default since it includes the latest packages.

Installation

  • Ensure the osc local build tool works in the silent mode, please add below lines to your /etc/sudoers:
  Defaults    env_keep += "http_proxy no_proxy HTTP_PROXY NO_PROXY"
  $YOUR_USERNAME         ALL=(ALL)       NOPASSWD: /usr/bin/build

Usage

  osc localcheckbuild [-r] [-y] [--repourl=TEXT] [--excludepkgs=TEXT] [--buildpkgs=TEXT] PRJECTNAME PACKAGENAME REPOSITORY ARCH
The arguments REPOSITORY and ARCH are the first two columns in the 'osc repos' output.
Examples:
      osc localcheckbuild devel:qt-mtf qt testing i586
Options:
    -h, --help         show this help message and exit
    --repourl=TEXT     Repository of the new package, default is the OBS download repository
    --buildpkgs=TEXT   The package list that will be built, the tool will skip checking dependencies and build the packages in
                       this list directly, example: --buildpkgs="at-spi gtk2"
    --excludepkgs=TEXT
                       The package list that will not be built, example: --excludepkgs="bash gcc"
    -c, --continuebuild
                       Continue the build check, it will skip the packages that have been built
    -y, --yes          Answer yes for all questions
    -r, --recursive    Check recursively if all the packages which depends on me can be built successfully
#osc localcheckbuild devel:qt-mtf qt testing i586
......
There are 79 packages in the dependant list.
Packages in the to-be-built list : 43
 * Trunk:Netbook : 4
   garage-netbook-ui  marble  stellarium  vym
 * Trunk:Handset : 20
   libofono-qt  libseaside  meego-handset-calendar  meego-handset-chat  meego-handset-dialer  meego-handset-email  meego-handset-mannequin  meego-handset-music  meego-handset-people  meego-handset-photos  meego-handset-sms  meego-handset-socialweb  meego-handset-statusindicators  meego-handset-video  meegotouch-inputmethodbridges  meegotouchcp-bluetooth  meegotouchcp-chat  meegotouchcp-connman  meegotouchcp-socialweb  meegotouchcp-telephony
 * Trunk:Testing : 17
   PackageKit  buteo-mtp  buteo-sync-plugins  buteo-syncfw  buteo-syncml  clutter-qt  cmake-gui  garage-client-services  libiodata  meego-lsb  min  phonesim  poppler  sensorfw  syncevolution  timed  libqmlog
 * Trunk:IVI : 2
   ividesktop  ivihome
Packages in the skip list : 36
 * 36 packages have been in the project devel:qt-mtf, please check the build result on OBS directly.
   automoc4  contactsd  contextkit  contextkit-maemo  libaccounts-qt  libcontentaction  qt-mobility  libmeegochat  libmeegotouch  qmf  phonon  libqttracker  qtwebkit  libsignon  libsocialweb-qt  marmazon  meegotouch-applauncherd  meegotouch-applifed  meegotouch-compositor  meegotouch-controlpanel  meegotouch-feedback  meegotouch-feedbackreactionmaps  meegotouch-home  meegotouch-inputmethodengine  meegotouch-inputmethodframework  meegotouch-inputmethodkeyboard  meegotouch-systemui  qca2  qjson  qt-creator  qt-obex-ftp-library  qt-web-runtime  qtcontacts-tracker  telepathy-qt4  kcalcore  mkcal
Total: 79, To be built: 43, Skip: 36.
......
Log file: /var/tmp/buildcheck-qt-i586/buildcheck-qt.log.
  Total: 43, success: 41, fail: 2
  Failure list: 
    Trunk:Netbook/vym : Build failed.
    Trunk:Handset/meegotouchcp-connman : Build failed.
  *Please check logfile in /var/tmp/buildcheck-qt-i586/LOG for more details.

Be noted that it may take a few hours to implement the build work which depends on the length of the dependant package list and the network speed.

You can also exclude some packages and specify some packages to check:

# Only build meegotouchcp-connman vym packages
osc localcheckbuild devel:qt-mtf qt testing i586 --buildpkgs="meegotouchcp-connman vym"
# Do not build buteo-mtp  buteo-sync-plugins  buteo-syncfw packages
osc localcheckbuild devel:qt-mtf qt testing i586 --excludepkgs="buteo-mtp  buteo-sync-plugins  buteo-syncfw"

Todo list

  • Support the option of excluding or specifying a specific project in OBS
  • Better analysis and sum-up for the build failure result and error handling
Personal tools