(→workflow) |
|||
| Line 6: | Line 6: | ||
* Download new RPMs of your updated package and check out the sources of packages in dependant list; | * Download new RPMs of your updated package and check out the sources of packages in dependant list; | ||
* Runn “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. | * Runn “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. | ||
| - | |||
| - | |||
== Installation == | == Installation == | ||
* Ensure the osc local build tool works in the silent mode, please add below lines to your /etc/sudoers: | * 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" | Defaults env_keep += "http_proxy no_proxy HTTP_PROXY NO_PROXY" | ||
$YOUR_USERNAME ALL=(ALL) NOPASSWD: /usr/bin/build | $YOUR_USERNAME ALL=(ALL) NOPASSWD: /usr/bin/build | ||
| + | |||
| + | * Download and install/upgrade packages to the latest version:osc, meego-osc-plugins, build packages from http://download.meego.com/live/devel:/tools:/building.<BR> | ||
* Enable the local build support for arm arch:<BR> | * Enable the local build support for arm arch:<BR> | ||
** Ubuntu: install package qemu-kvm-extras-static. <BR> | ** Ubuntu: install package qemu-kvm-extras-static. <BR> | ||
** Opensuse: install package qemu-svn. (http://download.opensuse.org/repositories/openSUSE:/Tools)<BR> | ** Opensuse: install package qemu-svn. (http://download.opensuse.org/repositories/openSUSE:/Tools)<BR> | ||
| - | ** Fedora: install package qemu-svn. (This package doesn't include in fedora repo, you can install it from opensuse repos. Eg: qemu-svn-0.11git2009.08.10.0340-12.7.i586.rpm from http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/i586) | + | ** Fedora: install package qemu-svn. (This package doesn't include in fedora repo, you can install it from opensuse repos. Eg: qemu-svn-0.11git2009.08.10.0340-12.7.i586.rpm from http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/i586) |
| - | + | ||
| - | + | ||
| - | + | ||
== Usage == | == Usage == | ||
osc localcheckbuild [-r] [-y] [--repourl=TEXT] [--excludepkgs=TEXT] [--buildpkgs=TEXT] PRJECTNAME PACKAGENAME REPOSITORY ARCH | osc localcheckbuild [-r] [-y] [--repourl=TEXT] [--excludepkgs=TEXT] [--buildpkgs=TEXT] PRJECTNAME PACKAGENAME REPOSITORY ARCH | ||
| Line 60: | Line 57: | ||
Trunk:Handset/meegotouchcp-connman : Build failed. | Trunk:Handset/meegotouchcp-connman : Build failed. | ||
*Please check logfile in /var/tmp/buildcheck-qt-i586/LOG for more details. | *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 speed | + | 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. |
| - | + | So you might find this tool very useful as trying to upgrade a package. Before you submit a sr in devel:qt-mtf, using it if it breaks anything in Trunk:Testing and Trunk:Handset should be a good idea. It’s easy to use. I ever tried Qt, it takes just four hours to local build all packages having dependencies on Qt, in an i5 machine, actually much time spent on downloading. You can also exclude some packages or specify some packages to check. In the future we could include/exclude a specific project to check, in the plate already. Your comments are really appreciated. | |
| - | + | You can also exclude some packages and specify some packages to check | |
| - | #osc localcheckbuild devel:qt-mtf qt testing i586 --buildpkgs="meegotouchcp-connman" | + | # 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 == | == Todo list == | ||
* Support the option of excluding or specifying a specific project in OBS | * 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 | * Better analysis and sum-up for the build failure result and error handling | ||
Contents |
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 the update works fine.All the build work will implement in your local machine, it doesn’t create any linking/copying on Server side.
The workflow of this plugin is:
Defaults env_keep += "http_proxy no_proxy HTTP_PROXY NO_PROXY" $YOUR_USERNAME ALL=(ALL) NOPASSWD: /usr/bin/build
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. So you might find this tool very useful as trying to upgrade a package. Before you submit a sr in devel:qt-mtf, using it if it breaks anything in Trunk:Testing and Trunk:Handset should be a good idea. It’s easy to use. I ever tried Qt, it takes just four hours to local build all packages having dependencies on Qt, in an i5 machine, actually much time spent on downloading. You can also exclude some packages or specify some packages to check. In the future we could include/exclude a specific project to check, in the plate already. Your comments are really appreciated. 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"