tools/gbs.git
12 years agoMerge "Cleaned up runtime package dependencies" into devel
Qiang Z Zhang [Thu, 18 Oct 2012 06:01:17 +0000 (23:01 -0700)]
Merge "Cleaned up runtime package dependencies" into devel

12 years agoCleaned up runtime package dependencies
Ed Bartosh [Wed, 17 Oct 2012 11:07:49 +0000 (14:07 +0300)]
Cleaned up runtime package dependencies

Gbs doesn't depend on rpm directly since it started to use
git-buildpackage. It doesn't depend on build since it started to use
depanneur. It doesn't depend on createrepo since local build mode was
dropped in favor of using depanneur. Binfmt-support and qemu are not
used at all. Dependency to python-pycurl was missing in debian/control.
Dependency to python >= 2.5 was replaced with dependency to
python >= 2.7 as gbs now uses argparse.

Change-Id: I1d6f840ab7cefcf5d6a17db3d08e859b8afb8655
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
12 years agosubmit: fix crash in guessing remote in case upstream is not set
Markus Lehtonen [Wed, 17 Oct 2012 07:33:26 +0000 (10:33 +0300)]
submit: fix crash in guessing remote in case upstream is not set

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoRemove setup qemu env code, fix #466
Zhang Qiang [Tue, 16 Oct 2012 21:57:58 +0000 (05:57 +0800)]
Remove setup qemu env code, fix #466

this work should be done in build script.

also remove dependency of qemu-arm-static, which should depend by
build.

Change-Id: I7801938955022c3bec1e707a9bbfb9675751f794

12 years agosubmit: try to guess the remote server
Markus Lehtonen [Tue, 16 Oct 2012 08:01:07 +0000 (11:01 +0300)]
submit: try to guess the remote server

If the current branch has upstream set, use it's remote as the server to
push to. Only uses 'origin' as default if no upstream is set.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoMerge "Make build/remotebuild profile selectable from cmdline" into devel
Qiang Z Zhang [Tue, 16 Oct 2012 13:51:35 +0000 (06:51 -0700)]
Merge "Make build/remotebuild profile selectable from cmdline" into devel

12 years agoMerge "Unify color of debug message in gbs, gbp and depanneur." into devel
Qiang Z Zhang [Tue, 16 Oct 2012 10:33:15 +0000 (03:33 -0700)]
Merge "Unify color of debug message in gbs, gbp and depanneur." into devel

12 years agoMake build/remotebuild profile selectable from cmdline
Markus Lehtonen [Fri, 12 Oct 2012 05:20:08 +0000 (08:20 +0300)]
Make build/remotebuild profile selectable from cmdline

Implements a new cmdline option to select the profile to use for
building. User can give the profile name without the "profile." prefix.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoMake local buildroot configurable in config file
Markus Lehtonen [Mon, 24 Sep 2012 10:47:22 +0000 (13:47 +0300)]
Make local buildroot configurable in config file

The buildroot can be set under the 'general' section as a global setting
and/or under individual profiles as a profile-wide setting.

Setting supports string substitution for ${tmpdir} and ${profile}.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoMerge "empty commit message is not allowed for gbs submit, #468" into devel
Zhang Qiang [Fri, 12 Oct 2012 10:18:15 +0000 (03:18 -0700)]
Merge "empty commit message is not allowed for gbs submit, #468" into devel

12 years agoMerge "More correct way to parse repo url" into devel
Zhang Qiang [Fri, 12 Oct 2012 10:17:54 +0000 (03:17 -0700)]
Merge "More correct way to parse repo url" into devel

12 years agoMerge "Fixed bug in command line aliases implementation" into devel
Qiang Z Zhang [Fri, 12 Oct 2012 10:16:25 +0000 (03:16 -0700)]
Merge "Fixed bug in command line aliases implementation" into devel

12 years agoempty commit message is not allowed for gbs submit, #468
Zhang Qiang [Fri, 12 Oct 2012 02:10:15 +0000 (10:10 +0800)]
empty commit message is not allowed for gbs submit, #468

Change-Id: Ie89de3c755602ecbf0be09c4d69e9873c1b1a7ef

12 years agoUnify color of debug message in gbs, gbp and depanneur.
Huang Hao [Fri, 12 Oct 2012 09:10:49 +0000 (17:10 +0800)]
Unify color of debug message in gbs, gbp and depanneur.

Fix #450.

Change-Id: Ifdd796f6b4747e0a8903f41be24f1ee9af0cf3ed

12 years agoMore correct way to parse repo url
Zhang Qiang [Fri, 12 Oct 2012 00:46:16 +0000 (08:46 +0800)]
More correct way to parse repo url

Only continue with PageNotFound exception, other exceptions, such as
AuthFailed, TimeoutError, UrlError, raise exception and exit directly.

Change-Id: I5f98d632f3af88223c266dba1a35e253c7767b1c

12 years agoFixed bug in command line aliases implementation
Ed Bartosh [Tue, 9 Oct 2012 14:00:51 +0000 (17:00 +0300)]
Fixed bug in command line aliases implementation

If --conf global option is used its argument considered as subcommand
name. This change fixes this.

Change-Id: Idc67a5257a941d3fcc065443d2017b021b469317
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
12 years agoFixed getting workdir in remotebuild mode
Ed Bartosh [Thu, 11 Oct 2012 11:36:24 +0000 (14:36 +0300)]
Fixed getting workdir in remotebuild mode

Used the same approach as in other modules: workdir is assigned to git
topdir.

Fixes: #464

Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
Change-Id: Idda3abf63580669b36c7a4c4c06b94fd0357856e

12 years agoMerge "Used guess_spec in changelog mode" into devel
Qiang Z Zhang [Wed, 10 Oct 2012 08:52:13 +0000 (01:52 -0700)]
Merge "Used guess_spec in changelog mode" into devel

12 years agoUsed guess_spec in changelog mode
Ed Bartosh [Tue, 9 Oct 2012 14:24:40 +0000 (17:24 +0300)]
Used guess_spec in changelog mode

This change fixes confusing behaviour of changelog mode. When there are
more than one .spec file in packaging/ directory first one is picked up
for processing. Users were confused, because there was not way to
understand which spec will be used and there was not way to specify spec
to proceed with.

Fixes: #399

Change-Id: I65d546b1c0d2fee93bdad8ed03c39d1588edf7d8
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
12 years agocheck the existance of 'source_rpm' before using it
Zhang Qiang [Tue, 9 Oct 2012 07:47:13 +0000 (15:47 +0800)]
check the existance of 'source_rpm' before using it

Change-Id: I132dde430d123191b7ebe207eafbce8175ff079b

12 years agoImplemented command line parsing using argparse
Ed Bartosh [Tue, 25 Sep 2012 15:07:17 +0000 (18:07 +0300)]
Implemented command line parsing using argparse

Fixes: #259

Change-Id: I25c6eabfedc30f089a0c5cb4cebaac3b31b97c8c

12 years agocmd_export: use gbp to build src rpm
Markus Lehtonen [Thu, 27 Sep 2012 16:31:52 +0000 (19:31 +0300)]
cmd_export: use gbp to build src rpm

Fixes #396

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoDon't rely on absolute path of Depanneur
Markus Lehtonen [Mon, 24 Sep 2012 11:15:55 +0000 (14:15 +0300)]
Don't rely on absolute path of Depanneur

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoUse os.system to ignore INT/QUIT signal while calling depanneur
Zhang Qiang [Mon, 24 Sep 2012 06:00:44 +0000 (14:00 +0800)]
Use os.system to ignore INT/QUIT signal while calling depanneur

subprocess.call does not ignore INT/QUIT signal, which result in
gbs exit first before depanneur finished

Change-Id: I88dccad5295f29f07c9d6206287f0f2b6210e5e0

12 years agoBetter help text for --upstream-tag option
Markus Lehtonen [Fri, 21 Sep 2012 07:37:26 +0000 (10:37 +0300)]
Better help text for --upstream-tag option

See #379.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoexport: handle new gbp return value
Markus Lehtonen [Fri, 21 Sep 2012 07:29:25 +0000 (10:29 +0300)]
export: handle new gbp return value

GBP now distinguishes tarball/patch generation errors from other errors.
Fixes a problem where GBS thought that all GBP errors where related to
tarball/patch generation, and, possibly printed a misleading warning and
re-tried GBP export in vain.

See #382.

Change-Id: If2128c5dbc49bae6fb597770d9452e2f93713982
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoRepo or OBS section can inherit only user or password from profile.
Huang Hao [Fri, 21 Sep 2012 06:39:53 +0000 (14:39 +0800)]
Repo or OBS section can inherit only user or password from profile.

- Fix #387, add test cases for this.
- inline user/password have the hight priority.

Change-Id: I6a8d8f6d81d012596e7383d65279060d9cfac0c9

12 years agoCheck the format of build conf release-0.10 0.10
Zhang Qiang [Fri, 21 Sep 2012 08:13:56 +0000 (16:13 +0800)]
Check the format of build conf

build conf must end with .conf and can't contain '-'.

Change-Id: I44dc370b40844a0c1b911c50cd4f22cfe644bd5c

12 years agoFormat default config template.
Huang Hao [Fri, 21 Sep 2012 05:15:40 +0000 (13:15 +0800)]
Format default config template.

- Add more comments and two tizen url to default config template.
- Remove useless config item buildconf and build_cmd

Change-Id: I0faec1b20ad1a41044f6115770fb087371f70303

12 years agoCheck if specified build conf exists.
Zhang Qiang [Thu, 20 Sep 2012 08:32:00 +0000 (16:32 +0800)]
Check if specified build conf exists.

Change-Id: Ia2488a6e6841a7f87397c5c1f595bccc2b737e06

12 years agoUse abspath for build.conf.
Huang Hao [Thu, 20 Sep 2012 08:20:33 +0000 (16:20 +0800)]
Use abspath for build.conf.

Change-Id: Ia739ff531f8a32906ac3f4913fd753960d77ec84

12 years agoCorrect setting gbs build root order
Zhang Qiang [Thu, 20 Sep 2012 06:23:03 +0000 (14:23 +0800)]
Correct setting gbs build root order

--buildroot option first, then TIZEN_BUILD_ROOT env var, and last
choice ~/GBS-ROOT/, which is the default.

Change-Id: Ieae8c7170c0f3e58a676351d3f34ad6a4ed5a87e

12 years agoMerge "patch-generation: filter out changes to packaging dir" into release-0.10
Qiang Z Zhang [Thu, 20 Sep 2012 07:51:57 +0000 (00:51 -0700)]
Merge "patch-generation: filter out changes to packaging dir" into release-0.10

12 years agopatch-generation: filter out changes to packaging dir
Markus Lehtonen [Wed, 19 Sep 2012 05:35:33 +0000 (08:35 +0300)]
patch-generation: filter out changes to packaging dir

Utilize the ignore-path functionality of git-buildpackage to ignore
changes made to the packaging files when generating patches.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoUpdate gbs version from source
Zhang Qiang [Thu, 20 Sep 2012 04:20:49 +0000 (12:20 +0800)]
Update gbs version from source

This affect output of gbs --version

Change-Id: Ia994406218fc41e08c544c7509ffe409aca9d2cb

12 years agoUpdate gbs build help info use build instead of localbuild
Zhang Qiang [Thu, 20 Sep 2012 04:09:50 +0000 (12:09 +0800)]
Update gbs build help info use build instead of localbuild

Change-Id: I50e182dbf7d626989b51c811d891296b16210fe0

12 years agoDon't use local build conf, give error msg instead
Zhang Qiang [Thu, 20 Sep 2012 03:11:51 +0000 (11:11 +0800)]
Don't use local build conf, give error msg instead

local build conf is out of date, and should be discarded.

Change-Id: Iba23ae5cfe082b8e11aac033e0128cf047506a5b

12 years agoMerge "transfer correct gbs export options to depanneur" into release-0.10
Zhang Qiang [Thu, 20 Sep 2012 05:06:36 +0000 (22:06 -0700)]
Merge "transfer correct gbs export options to depanneur" into release-0.10

12 years agoSmall changes to usage format
Huang Hao [Thu, 20 Sep 2012 03:49:13 +0000 (11:49 +0800)]
Small changes to usage format

Change-Id: I1778037d94a9c5ef56be7352a9b9f9fda688d678

12 years agotransfer correct gbs export options to depanneur
Zhang Qiang [Wed, 19 Sep 2012 13:44:23 +0000 (21:44 +0800)]
transfer correct gbs export options to depanneur

Change-Id: If988d075a91392434d0619662e131291d0bc2123

12 years agobump to version 0.10
Zhang Qiang [Wed, 19 Sep 2012 09:15:56 +0000 (17:15 +0800)]
bump to version 0.10

This commit is for new gbs 0.10 release branch (release-0.10).

Change-Id: Ice6b60b9974a2cbaf272a3a491dab3e1b4f24a20

12 years agoUpdate chroot module
Zhang Qiang [Wed, 19 Sep 2012 09:03:53 +0000 (17:03 +0800)]
Update chroot module

As depanneur is used to create build, and multiple build root will
be created if --threads=<> specified, so we remove -A option.
The build root should be specified while using gbs chroot, just as
chroot command.

Change-Id: I014e441f2ff206002595bd3acf54ff749ffcf353

12 years agoUse build-experimental to replace build module
Zhang Qiang [Wed, 19 Sep 2012 02:19:08 +0000 (10:19 +0800)]
Use build-experimental to replace build module

We have tested new new build module 'build-experimental' for several
circles, and its compartiable with build module, no any regression
issue, so let's use this module to replace current build module.

Change-Id: I58ea77cb86f21d32a5819bb0213291e407f810e5

12 years agouse 'warning' instead of 'warn'
Zhang Qiang [Tue, 18 Sep 2012 01:41:57 +0000 (09:41 +0800)]
use 'warning' instead of 'warn'

Change-Id: I0b60aa144acffac2b2b16765a6e63a9724add6a8

12 years agoshow local repo dir with correct disto and show build root dir
Zhang Qiang [Mon, 17 Sep 2012 08:02:18 +0000 (16:02 +0800)]
show local repo dir with correct disto and show build root dir

* show correct local repo dir: for different ditros(tizen, tizen2.0,
ect) different local repos are generated.
* show build root dirs, user can see this info and chroot it easily.

Change-Id: Ib8c071da842d1194c05499a605cb76718ef894a3

12 years agoMerge "Add a default parser in ConfigMgr" into devel
Qiang Z Zhang [Tue, 18 Sep 2012 02:30:23 +0000 (19:30 -0700)]
Merge "Add a default parser in ConfigMgr" into devel

12 years agoAdd a default parser in ConfigMgr
Huang Hao [Mon, 17 Sep 2012 07:23:12 +0000 (15:23 +0800)]
Add a default parser in ConfigMgr

- Fix bug#333.
- Change config item like %(xxx)s to ${xxx} in DEFAULTS
    dict, otherwise InterpolationError will be raised
- Transform ${upstream_tag} back to %(upstream_tag)s before
    calling gbp, which does not change functionality of gbp

Change-Id: I3ba122ef4a633c23d59e136773ae98d1e280dab3

12 years agoMerge "Display meaningful info when parsing repo urls" into devel
Qiang Z Zhang [Tue, 18 Sep 2012 02:29:40 +0000 (19:29 -0700)]
Merge "Display meaningful info when parsing repo urls" into devel

12 years agoDisplay meaningful info when parsing repo urls
Huang Hao [Mon, 17 Sep 2012 09:15:08 +0000 (17:15 +0800)]
Display meaningful info when parsing repo urls

Fix bug#340

Change-Id: I786bb6a3f622eca1e6087cab3fc0f2a3eaa214ea

12 years agoAdd more description about gbs build-experimental help info fix#350
Zhang Qiang [Mon, 17 Sep 2012 06:53:09 +0000 (14:53 +0800)]
Add more description about gbs build-experimental help info fix#350

Change-Id: I373ed324c16136e82a1c172092e3baefd2f37a87

12 years agoAdd --buildroot option for chroot to chroot specified dir
Zhang Qiang [Mon, 17 Sep 2012 02:15:16 +0000 (10:15 +0800)]
Add --buildroot option for chroot to chroot specified dir

Change-Id: I0d52fdec52a0e2e7f20207bd672d7f18400d0576

12 years agoUpdate packaging files
Zhang Qiang [Wed, 12 Sep 2012 13:53:50 +0000 (21:53 +0800)]
Update packaging files

* Update dependency:
  build 2012.09.12
  gbp:  0822
  depanneur: 0.1
* Update Makefile:
  dsc depend on tarball

Change-Id: I8ccdd2320b06699f37f705aea181b96673f88d5a

12 years agoCatch ConfigParser.Error when reading config
Huang Hao [Thu, 13 Sep 2012 08:11:11 +0000 (16:11 +0800)]
Catch ConfigParser.Error when reading config

Change-Id: I8ce04f7c9200ce02df62526144bf9a1dd9d13144

12 years agoChange error message showed to user.
Huang Hao [Thu, 13 Sep 2012 12:39:06 +0000 (20:39 +0800)]
Change error message showed to user.

- show user the correct message if section name specified by
    general.profile does not exist
- remove default value of remotebuild.build_server in code. if
    there is no [remotebuild] section in config file, gbs rb will
    do remote build with tizen.org. It's wried to user.
- complain no obs api found when running gbs rb, do not complain
    when parsing config file.

Change-Id: I7766a7ee04eec3e992e450aa26d0263ee45311fe

12 years agoconf: fix bug in config template generation
Markus Lehtonen [Thu, 13 Sep 2012 05:41:06 +0000 (08:41 +0300)]
conf: fix bug in config template generation

Use shutil.move() instead of os.rename() which fails if the template
file would be renamed over file system boundaries.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoSupport squashing patches in patch generation
Markus Lehtonen [Mon, 20 Aug 2012 14:23:26 +0000 (17:23 +0300)]
Support squashing patches in patch generation

Add new command line and config file option to squash commits in patch
generation into a one monolithic diff. One usage example could be e.g.
in linux kernel to squash commits between base version and stable branch
head into one .diff.

This patch directly facilitates git-buildpackage and just passes the new
option to it.

Command line option takes preference over the config file.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agofirst version of localbuild integrated with depanneur
Zhang Qiang [Wed, 5 Sep 2012 04:22:21 +0000 (12:22 +0800)]
first version of localbuild integrated with depanneur

Available features:
* multiple packages build
* parallel build with multiple threads
* dependency build automaticlly
* local repo generated

Already implemented depanneur options:
* --clean, --clean-once, --overwrite
* --incremental, --keepgoing, --no-configure
* --exclude, --exclude-from-file
* --thread
* --binary-list
* --debug

Usage Example:
$ mkdir tizen-packages
$ cp package1 package2 package3 ... tizen-packages/
$ gbs localbuild -A ia32 tizen-packages # build all packages under tizen-packages
$ cd tizen-packages/
$ gbs localbuild -A ia32 # build all packages under current dir
$ gbs localbuild -A ia32 --overwrite --include-all
$ gbs localbuild -A i586 --threads=2
$ gbs localbuild -A i586 --threads=2 --exclude=dlog --exclude=eglibc
$ gbs localbuild -A i586 --threads=4 --binary-list=/path/to/pkgs.list
$ cd package1/
$ gbs localbuild -A i586 --incremental # only support build one package

Change-Id: I8e214601cc3021c33c8a95b00477bd18546e05c3

12 years agoMerge "More changes to support profile style of config." into devel
Qiang Z Zhang [Thu, 13 Sep 2012 02:39:15 +0000 (19:39 -0700)]
Merge "More changes to support profile style of config." into devel

12 years agoMore changes to support profile style of config.
Huang Hao [Tue, 11 Sep 2012 10:48:47 +0000 (18:48 +0800)]
More changes to support profile style of config.

- proflie section header should start with "proflie_", obs
    section header should start with "obs_", repo section
    header should start with "repo_".
- add base_prj and target_prj config to obs section
- generate profile style of config file in ~/.gbs.conf if no
    config file were found
- clean all parsers in function reset_from_conf()
- as described in issue#255, remove config file in cwd
- if current config is subcommand oriented style, convert it to
    profile oriented style into ~/.gbs.conf.template. Leave it
    original config file unchange.
- BrainConfigParser.set() is not compatible with super set, so
    change name to set_into_file()
- add class RepoConf and OBSConf to repo section info and obs
    section info, including section name which is useful for
    auto new style config generation.
- only update gbs.conf that we had changed and catch permission
    exception.
- add /etc/gbs.conf back.

Change-Id: I1dcee2814a7d5430ac3329a2c018e98b48734569

12 years agoHide "man" subcommand which was introduced by osc.cmdln.
Huang Hao [Wed, 12 Sep 2012 03:31:51 +0000 (11:31 +0800)]
Hide "man" subcommand which was introduced by osc.cmdln.

osc.cmdln add do_man() and hide() to cmdln.1.0.0. do_man() is a
subcommand to generate man page. hide() is a decorator to hide
subcommand in help message, but user can still use it.

Change-Id: I2f4167211397698b8f84635347cfdb2f7c4e3b3c

12 years agoUse GBS temp dir for GBP, too
Markus Lehtonen [Tue, 11 Sep 2012 08:59:23 +0000 (11:59 +0300)]
Use GBS temp dir for GBP, too

Fixes #332.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoFix typo in gbp error message
Markus Lehtonen [Tue, 11 Sep 2012 09:01:32 +0000 (12:01 +0300)]
Fix typo in gbp error message

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoMerge "Little refactor and add test cases to conf.py" into devel experimental
Qiang Z Zhang [Mon, 10 Sep 2012 09:05:59 +0000 (02:05 -0700)]
Merge "Little refactor and add test cases to conf.py" into devel

12 years agoFix minor bugs
Huang Hao [Mon, 10 Sep 2012 08:05:35 +0000 (16:05 +0800)]
Fix minor bugs

- catch ValueError for url given by --repository
- prompt user if can't find obs api
- use empty password if no passwd item found for obs

Change-Id: I5c8942619cf11a019b1964c235c7f90edb78a8ee

12 years agoLittle refactor and add test cases to conf.py
Huang Hao [Fri, 7 Sep 2012 12:06:08 +0000 (20:06 +0800)]
Little refactor and add test cases to conf.py

- change BrainConfigParser.read() to read_one() since the code only
    use this function to read one config file. It's simpler.
- remove BrainConfigParser.check_opt() since no code use it.
- remove else branch in ConfigMgr.get() since the code can still
    work if val is empty string. Also add a test case for it.
- remove ConfigMgr.set() since no code use it. passwdx set back
    in _check_passwd(), and we will not use this set() function to
    add option into config file.
- change implementation of Fixture class, it doesn't call start()
    and stop() methods which introduced by mock0.7
- add more test cases for conf.py

Change-Id: I598f8943f98f067aa584fa4be811492c70226f23

12 years agorename conf as correct tizen release name
Zhang Qiang [Sun, 9 Sep 2012 22:52:18 +0000 (06:52 +0800)]
rename conf as correct tizen release name

This renameing phrase is needed by depanneur

Change-Id: I9cf110fcce94911ed0de2e2bac360c0e7f80737a

12 years agoSupport profile oriented style of config.
Huang Hao [Fri, 7 Sep 2012 07:47:18 +0000 (15:47 +0800)]
Support profile oriented style of config.

- support profile oriented style. It is compatible with subcommand
    oriented style.
- add a class Profile to store url/user/password of repos and api.
- add a class BizConfigManager extending from ConfigMgr. It
    handles profile info and does not care about multi-levels and
    passwdx issues. It returns current profile instance even
    config file has subcommand oriented style.
- make two functions decode_passwdx, encode_passwd to convert
    between passwd and passwdx.
- move get_repos_conf() from cmd_build.py to conf.py and split it
    into two parts
    _parse_build_repos() and _build_profile_by_subcommand()
- add test cases in test_profile.py

Change-Id: I81b2906456766f1061ccef9e7d51fea794c59409

12 years agoSupport ini section header like [section "name"].
Huang Hao [Fri, 7 Sep 2012 05:11:07 +0000 (13:11 +0800)]
Support ini section header like [section "name"].

Add a class SectionPattern to support section header style like
[section "name"]. It's also compatible with style like [section].

Change-Id: I6c35eb00a2f3be912cee34f421173fb0523aa191

12 years agoAdd upstream-branch and upstream-tag options
Markus Lehtonen [Fri, 17 Aug 2012 13:58:10 +0000 (16:58 +0300)]
Add upstream-branch and upstream-tag options

Add config file and command line options to specify the upstream branch
name and upstream tag format for build, export and remotebuild commands.
This is needed in order to be able to support different maintenance
models of non-native packages (with patch-generation enabled):
1. If upstream sources are imported with GBS, these options are not
   needed
2. However, if maintainer uses upstream git tree directly, he needs to
   be able to specify the tag format - otherwise gbp is unable to
   create orig source archive or generate patches

Command line option takes preference over the config file.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoEnable patch-generation
Markus Lehtonen [Fri, 17 Aug 2012 10:03:55 +0000 (13:03 +0300)]
Enable patch-generation

This commit enables the "proper" maintenance model of packages. That is,
create a real upstream source archive (matching the upstream tag) and
patches on top of that. It facilitates the patch compression support in
git-buildpackage: patches bigger that 100kB are compressed with gzip.
GBP also modifies the spec file to contain the new list of patches.

GBS enables this mode if the git tree has 'upstream' branch. It tries to
checkout the orig tarball with pristine-tar, if 'pristine-tar'
branch is found. If this fails, it tries to create the orig tarball from
a git tag corresponding the upstream version.

GBS falls back to the old method of generating one monolithic tarball if
exporting of packaging files (i.e. upstream archive and patch
generation) in this new mode fails.

NOTE: .spec file autoupdate feature is limited and might not work with
more exotic packaging. E.g. patches inside conditionals are not
supported, at the moment.

TODO: Currently, also packaging-only commits generate patches which is
only noise from source code perspective. This needs to be fixed in
git-buildpackage.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agouse iter var 'i' to replace repo, which already has been used
Zhang Qiang [Fri, 7 Sep 2012 05:49:48 +0000 (13:49 +0800)]
use iter var 'i' to replace repo, which already has been used

Change-Id: Ia7a05fade7ef7271888008f3d8c4f1357288c07f

12 years agofix undefined var backtrace issue.
Zhang Qiang [Fri, 7 Sep 2012 05:12:45 +0000 (13:12 +0800)]
fix undefined var backtrace issue.

Change-Id: I5d29c49a5f70e8fed1911992d0d4bae3095c96eb

12 years agocall build with --clean if target build root in not-ready stat.
Zhang Qiang [Fri, 7 Sep 2012 04:56:28 +0000 (12:56 +0800)]
call build with --clean if target build root in not-ready stat.

Change-Id: I693e2c42331773f445a5a173e882403f77a72f8d

12 years agofix reference undefined var backtrace issue
Zhang Qiang [Fri, 7 Sep 2012 04:40:59 +0000 (12:40 +0800)]
fix reference undefined var backtrace issue

Change-Id: I3509afc223c211449ddee62a9482d7cc955b0a34

12 years agoMove gbp argument creation into one function
Markus Lehtonen [Thu, 6 Sep 2012 10:43:37 +0000 (13:43 +0300)]
Move gbp argument creation into one function

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoMerge "Fix KeyError in ConfigMgr._get" into devel
Qiang Z Zhang [Fri, 7 Sep 2012 03:04:09 +0000 (20:04 -0700)]
Merge "Fix KeyError in ConfigMgr._get" into devel

12 years agoFix KeyError in ConfigMgr._get
Huang Hao [Fri, 7 Sep 2012 02:32:49 +0000 (10:32 +0800)]
Fix KeyError in ConfigMgr._get

In function ConfigMrg._get() if NoOptionError occurs and section
name is not in self.DEFAULTS, KeyError will be raised.

Change-Id: Iaa08c032eae45b1cc95294a4c7975d0aedb10405

12 years agoMerge "Add tests for getting config value." into devel
Qiang Z Zhang [Fri, 7 Sep 2012 02:36:33 +0000 (19:36 -0700)]
Merge "Add tests for getting config value." into devel

12 years agoAdd tests for getting config value.
Huang Hao [Thu, 6 Sep 2012 12:59:53 +0000 (20:59 +0800)]
Add tests for getting config value.

Fixture object can setup the 3 levels of different mocking config
files which locate in tests/testdata/ini/.

Change-Id: I079498ca086f3435916467adbfa94c3fa0809565

12 years agocmd_build: Implemented output repository creation.
Ed Bartosh [Mon, 3 Sep 2012 11:28:04 +0000 (14:28 +0300)]
cmd_build: Implemented output repository creation.

When -o commandline option is used packages are copied to specified
output directory and now createrepo is called to create rpm repo out
of that directory.

Fixes: #74, #201

Change-Id: Ie06536fe367509bbd38088b4d6120da5436b7542

12 years agoChange tab to spaces
Huang Hao [Thu, 6 Sep 2012 07:47:42 +0000 (15:47 +0800)]
Change tab to spaces

Change-Id: I1b939a7f2cfe1644eaa6df8b7cba860b075f154e

12 years agoCode cleanup.
Ed Bartosh [Thu, 30 Aug 2012 11:33:18 +0000 (14:33 +0300)]
Code cleanup.

A bit of pylinting. Also runner/embed function has been removed as
it's not used in gbs.

Change-Id: I25f19ccc17811759db2ebeaa29f16e0f52ffba19

12 years agoGet rid of unused build_root config parameter
Zhang Qiang [Wed, 5 Sep 2012 07:23:37 +0000 (15:23 +0800)]
Get rid of unused build_root config parameter

It's not used anywhere in the code, so let's remove it.
Fixes #293

Change-Id: I15d18f64ae6f3aef2481773acabeee50253a6323

12 years agoMerge "Introduced base_prj and target_prj config parameters." into devel
Qiang Z Zhang [Wed, 5 Sep 2012 08:19:48 +0000 (01:19 -0700)]
Merge "Introduced base_prj and target_prj config parameters." into devel

12 years agoMerge "Used username as part of temporary directory." into devel
Qiang Z Zhang [Wed, 5 Sep 2012 05:04:32 +0000 (22:04 -0700)]
Merge "Used username as part of temporary directory." into devel

12 years agoIntroduced base_prj and target_prj config parameters.
Ed Bartosh [Mon, 3 Sep 2012 13:36:48 +0000 (16:36 +0300)]
Introduced base_prj and target_prj config parameters.

Saves a lot of typing in command line.
Fixes #242

Change-Id: Ie2b057bee031d18d89816123078826b17eed71fb

12 years agoUsed username as part of temporary directory.
Ed Bartosh [Thu, 30 Aug 2012 08:29:21 +0000 (11:29 +0300)]
Used username as part of temporary directory.

Temporary directory is used as a base path for buildroot, cachedir and
others temporary directories. Making it to contain username solves
conflicts when gbs is run by more than one user on the same machine at
the same time.

Fixes: #283, #278, #244

Change-Id: Iafb9f83691e945d7148ef70f059096dada2cc701

12 years agoCheck build.xml format and warn user if build.conf does not exist
Huang Hao [Wed, 29 Aug 2012 08:05:38 +0000 (16:05 +0800)]
Check build.xml format and warn user if build.conf does not exist

Fix Bug #284. Method SafeURL.urljoin is useless now, so remove it.

Change-Id: I09cb7d6046e3acd3388bb482c8aa2ddef75da0d5

12 years agoAdd class SafeURL to hide user/passwd info in url string.
Huang Hao [Mon, 27 Aug 2012 12:47:24 +0000 (20:47 +0800)]
Add class SafeURL to hide user/passwd info in url string.

Try to fix bug#233, gerrit#894 is a hotfix for this issue in v0.9.
Create SafeURL object from repoN.url/user/passwd in config file,
this safe url is a string object, can be directly print to console.
When pass to build script, use its property "full" with user/passwd
info.

Change-Id: I667989e61a26a00a54255dd7c859e46553814f8f

12 years agoMerge "Used current user's name instead of config option." into devel
Qiang Z Zhang [Thu, 30 Aug 2012 00:24:22 +0000 (17:24 -0700)]
Merge "Used current user's name instead of config option." into devel

12 years agoMerge "Used shorter import." into devel
Qiang Z Zhang [Thu, 30 Aug 2012 00:15:51 +0000 (17:15 -0700)]
Merge "Used shorter import." into devel

12 years agoUsed current user's name instead of config option.
Ed Bartosh [Tue, 28 Aug 2012 11:46:13 +0000 (14:46 +0300)]
Used current user's name instead of config option.

In cmd_build user name from [remotebuild] section of configuration file
was used as a part of temporary directory name. This approach is confusing
(why anything from remotebuild is used in build mode?) and it also caused
gbs crash when the same name is mentioned in [remotebuild] section for
different local users.

Fixes #283

Change-Id: Ie789564811aa0a9271962d7584421592c215ef7d

12 years agoMerge "Workarounded osc bug by retrying to call it 3 times." into devel
Qiang Z Zhang [Tue, 28 Aug 2012 14:30:06 +0000 (07:30 -0700)]
Merge "Workarounded osc bug by retrying to call it 3 times." into devel

12 years agoMerge "Use ctrl-c to interrupt pycurl downloading" into devel
Qiang Z Zhang [Tue, 28 Aug 2012 14:05:40 +0000 (07:05 -0700)]
Merge "Use ctrl-c to interrupt pycurl downloading" into devel

12 years agoUsed shorter import.
Ed Bartosh [Thu, 23 Aug 2012 14:48:58 +0000 (17:48 +0300)]
Used shorter import.

Using ObsError instead of using errors.ObsError. Makes lines
shorter. Eliminates several pylint complains.

Change-Id: Ib7e9e58cbfcd6553f91b147a83688666a0467003

12 years agoWorkarounded osc bug by retrying to call it 3 times.
Ed Bartosh [Thu, 23 Aug 2012 14:29:42 +0000 (17:29 +0300)]
Workarounded osc bug by retrying to call it 3 times.

Sometimes core.http_GET returns empty responce, which leeds to
core.ET.ParseError: no element found: line 1, column 0. Trying to send
request again solves the problem in most of the cases.

Fixes #252

Change-Id: I9b418393110464abf2f698136fe36e4c3dddfba3

12 years agoEnable reading multiple config files (#27)
Markus Lehtonen [Fri, 17 Aug 2012 12:55:44 +0000 (15:55 +0300)]
Enable reading multiple config files (#27)

When updating an existing key, it is set in the config file that it was
read from.

When adding a new key, it is added to the "highest priority" config file
that has the desired section.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoUse ctrl-c to interrupt pycurl downloading
Huang Hao [Mon, 27 Aug 2012 08:28:33 +0000 (16:28 +0800)]
Use ctrl-c to interrupt pycurl downloading

pycurl.perform() blocks ctrl-c. If forget to set proxy, we have to
wait 30 seconds till connecting timeout.

Change-Id: I7f22fc110221afd08c1fe01b545a14a0d518e9d5

12 years agoconf: don't use '/etc/gbs.conf'
Markus Lehtonen [Mon, 27 Aug 2012 07:58:56 +0000 (10:58 +0300)]
conf: don't use '/etc/gbs.conf'

Drop the usage of the system level config file.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoBig overhaul of BrainConfigParser class
Markus Lehtonen [Thu, 23 Aug 2012 09:02:16 +0000 (12:02 +0300)]
Big overhaul of BrainConfigParser class

Fixes problems in setting options in the BrainConfigParser class.
Previously, linenumber pointers would get out-of-sync when
updating/inserting/replacing new options with the set() method. Now we
always parse the actual file contents when running set(), thus we never
get out-of-sync.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>