services/obs-service-git-buildpackage.git
10 years agoNew option for creating a git-meta file
Markus Lehtonen [Tue, 1 Apr 2014 11:51:58 +0000 (14:51 +0300)]
New option for creating a git-meta file

Add a new 'git-meta' option for writing metadata about the exported
treeish into a text file in json format. The argument for the option is
the filename to write into.

NOTE! Be careful with the filename: the service fails if the filename
already exists in the exported files.

Change-Id: I7e7c1ce6559ac7ef27ea5fda1619c280cdcc76f0
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoutils: new method for writing git tree-ish meta informat
Markus Lehtonen [Tue, 1 Apr 2014 10:46:17 +0000 (13:46 +0300)]
utils: new method for writing git tree-ish meta informat

Implement a new write_treeish_meta() function that writes meta
information about a git tree-ish into a file in json format.

Change-Id: I7f7b265be335fc2670c66d25f6c97516cae74e12
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoMirrorGitRepository: add get_tag_info() method
Markus Lehtonen [Tue, 1 Apr 2014 09:15:48 +0000 (12:15 +0300)]
MirrorGitRepository: add get_tag_info() method

For getting data about a tag - similar to get_commit_info().

Change-Id: I158b9fffd831842253147bec8d88ecee511ee0c1
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agopackaging: start development cycle for 0.6
Markus Lehtonen [Tue, 11 Jun 2013 11:22:26 +0000 (14:22 +0300)]
packaging: start development cycle for 0.6

Change-Id: Ib629104a3a74af43e6de762357a390a1dc9b5962
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoRelease 0.5
Markus Lehtonen [Wed, 5 Mar 2014 15:51:12 +0000 (15:51 +0000)]
Release 0.5

Change-Id: I989f52447e465ebb28ccdc4f448016fe44fd583c

10 years agogbp.conf: add gbp-rpm-ch settings and ignore branch
Markus Lehtonen [Wed, 5 Mar 2014 13:42:39 +0000 (15:42 +0200)]
gbp.conf: add gbp-rpm-ch settings and ignore branch

Change-Id: I85e9dd99862fcfd0cdc7a711612d22de505b26e6
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoMirrorGitRepository: fix git-fetch failure when local HEAD is invalid
Markus Lehtonen [Wed, 5 Mar 2014 12:04:57 +0000 (14:04 +0200)]
MirrorGitRepository: fix git-fetch failure when local HEAD is invalid

Git fetch fails if local HEAD is a non-symbolic ref and points to a
non-existent object.

We get into this state in CachedRepo if the remote HEAD is invalid (e.g.
points to a non-existent branch) as we forcefully invalidate local HEAD
in this case, too.

Change-Id: I68dff3b4692bef0c3b5399f06c7097af1cf104b3
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoMirrorGitRepository: methods for setting/getting ref
Markus Lehtonen [Wed, 5 Mar 2014 11:48:39 +0000 (13:48 +0200)]
MirrorGitRepository: methods for setting/getting ref

Implement methods for setting and getting refs.  These handle symbolic
and non-symbolic refs automatically.

Change-Id: Idc3dcc389722c569ddc725097115408455de498a
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoCachedRepo: trivial typo fixes in some code comments
Markus Lehtonen [Wed, 5 Mar 2014 09:56:29 +0000 (11:56 +0200)]
CachedRepo: trivial typo fixes in some code comments

Change-Id: If22edde90b45bf5a48b71cdfe741b27b1409f9e5
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoCachedRepo: implement close() method
Markus Lehtonen [Tue, 4 Mar 2014 13:45:47 +0000 (15:45 +0200)]
CachedRepo: implement close() method

For invalidating the object without the need of deleting it.

Change-Id: I6e5210c06f7eb559609d956456be958a8a4232c2
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoCachedRepo: make attribute variables private
Markus Lehtonen [Tue, 4 Mar 2014 13:40:12 +0000 (15:40 +0200)]
CachedRepo: make attribute variables private

Change-Id: Ia0b31f32203d5cac7a3360f69557bcb62f270b6e
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoCachedRepo: close the lock file when unlocking
Markus Lehtonen [Tue, 4 Mar 2014 12:54:53 +0000 (14:54 +0200)]
CachedRepo: close the lock file when unlocking

Change-Id: I8bf56bff0ca63ed4b6c0fef8b28ab36a7d4f7668
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agopackaging: add %defattr to all %files sections
Markus Lehtonen [Wed, 15 Jan 2014 13:18:10 +0000 (15:18 +0200)]
packaging: add %defattr to all %files sections

Change-Id: I6de131d173fc990bb0b95341440fb934b3a05576
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agocosmetic: give log string arguments as function parameters
Markus Lehtonen [Thu, 5 Dec 2013 13:51:35 +0000 (15:51 +0200)]
cosmetic: give log string arguments as function parameters

Change-Id: Ib4975532931850964804e2763f945b8ca3ae110e
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoRemove one unneeded/broken debug output
Markus Lehtonen [Thu, 5 Dec 2013 13:11:15 +0000 (15:11 +0200)]
Remove one unneeded/broken debug output

Change-Id: I5042a61a12c859818557d7d58acf8b49bb648904
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoConfig file option for gbp tmp directory
Markus Lehtonen [Thu, 5 Dec 2013 09:53:02 +0000 (11:53 +0200)]
Config file option for gbp tmp directory

Add a new config file option for configuring the temporary directory
that git-buildpackage uses when it is run.

Change-Id: I6d52c522b217ee1473931b1011fe7e679048903e
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agotests: utilize ok_() and eq_() from nose tools
Markus Lehtonen [Thu, 5 Dec 2013 08:19:34 +0000 (10:19 +0200)]
tests: utilize ok_() and eq_() from nose tools

In order to getter better assert messages.

Change-Id: Ibb57a3d2f71884e63e0f9294f26eb1b38e32d962
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoConfig option to set user/group for running GBP
Markus Lehtonen [Thu, 5 Dec 2013 07:55:59 +0000 (09:55 +0200)]
Config option to set user/group for running GBP

Add new options to the configuration file to be able to set the
user/group under which git-buildpackage(-rpm) is being run.

Change-Id: Ife74047c08ca02177ce23ea4a3bbaf4d1b08c767
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agorefactor: move gbp export into a separate function
Markus Lehtonen [Thu, 5 Dec 2013 13:30:32 +0000 (15:30 +0200)]
refactor: move gbp export into a separate function

Change-Id: I51b0ed18e20558e29a9e362aa0f741052864c944
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoRun GBP in a separate thread
Markus Lehtonen [Thu, 5 Dec 2013 07:25:49 +0000 (09:25 +0200)]
Run GBP in a separate thread

Change-Id: I26e2d194fd3243b703ff741f3d0a12c6a5770cba
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoutils: set $HOME when doing fork_call()
Markus Lehtonen [Thu, 5 Dec 2013 09:29:43 +0000 (11:29 +0200)]
utils: set $HOME when doing fork_call()

Change-Id: I9d8bf770536e34c8a9d6495aa39327cc7a6bd6c2
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoSupport function calls with demoted privileges
Markus Lehtonen [Wed, 4 Dec 2013 08:00:11 +0000 (10:00 +0200)]
Support function calls with demoted privileges

Implement base functionality to do function calls with different
UID/GID. This is done by spawning a child process, then changing UID/GID
and doing the function call there.

The functionality is added in a new python module, in a new RPM
subpackage - in order to be easily utilize this in the GBS source
service, too.

Change-Id: I1ac345501d692fa11fdb83d3d8ea563780bafcbb
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agopackaging: start development cycle for 0.5
Markus Lehtonen [Tue, 11 Jun 2013 11:22:26 +0000 (14:22 +0300)]
packaging: start development cycle for 0.5

Change-Id: Ib3d363b876b8a0f57d3fd837f5b5a8127e75d82c
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoRelease 0.4
Markus Lehtonen [Tue, 15 Oct 2013 11:31:18 +0000 (14:31 +0300)]
Release 0.4

Change-Id: Ic98410fa2d33b013d4907f65feb6bf07fa8f2761
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agorepocache: change cached repo dir name
Markus Lehtonen [Wed, 9 Oct 2013 09:38:51 +0000 (12:38 +0300)]
repocache: change cached repo dir name

Change the cached repo directory from "<base>/<reponame>_<hash>" to
"<base>/<hash>/<reponame>". That is, add another directory level to the
cache. This change makes gbp (and gbs) see the same project directory
name as the developers in their normal workflow, making spec file
guessing work identically for developers and the source service, for
example.

NOTE! Repository cache should be manually cleaned after this commit, in
order to get rid of the stale, unused caches.

Change-Id: I2ba4000928f5a645d76f69e7b02c619d09757d67
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agotests: make sure to restore dir permissions
Markus Lehtonen [Wed, 9 Oct 2013 11:38:52 +0000 (14:38 +0300)]
tests: make sure to restore dir permissions

So that tests don't leave stale temporary directories in case of tests
fail.

Change-Id: I06aa23b2ec6805b18a3c597101ab186b8aa24abc
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agorepocache: more verbose debug messages
Markus Lehtonen [Tue, 8 Oct 2013 10:20:20 +0000 (13:20 +0300)]
repocache: more verbose debug messages

Change-Id: I3c47b97b1e67066d13176c36a340d2d6a8625cd6
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agopackaging: start development cycle for 0.4
Markus Lehtonen [Tue, 11 Jun 2013 11:22:26 +0000 (14:22 +0300)]
packaging: start development cycle for 0.4

Change-Id: Ibd3956a60ca1f9fcf60c158fe903541ffbda4a41
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoRelease 0.3
Markus Lehtonen [Thu, 8 Aug 2013 08:42:13 +0000 (11:42 +0300)]
Release 0.3

Change-Id: I7347563e29d0f8b5121d58c635975ab0a54a622e
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agotests: split repocache tests into separate file
Markus Lehtonen [Wed, 12 Jun 2013 06:26:53 +0000 (09:26 +0300)]
tests: split repocache tests into separate file

Change-Id: I973a0decab628804c899f97e2b4804fae984b215
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoMove the Git repository cache in separate subpackage
Markus Lehtonen [Tue, 11 Jun 2013 14:19:52 +0000 (17:19 +0300)]
Move the Git repository cache in separate subpackage

Move the Git repository cache implementation/API into a separate python
module and into a separate RPM subpackage. Makes it easier for other
packages to depend on the repository cache API.

Change-Id: Ic234921241ea154c051cdd308a15a65706e4bd9c
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agoAdd .gitignore
Markus Lehtonen [Tue, 11 Jun 2013 11:25:15 +0000 (14:25 +0300)]
Add .gitignore

Change-Id: I4fed7de8b67aee3267ea947325bce7fd071da677
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
10 years agopackaging: start next development cycle
Markus Lehtonen [Tue, 11 Jun 2013 11:22:26 +0000 (14:22 +0300)]
packaging: start next development cycle

Change spec file so that pre-releases are easily done.

Change-Id: I040b693a27f2dc3461293fd88ca2c1479ffb345a
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoRelease 0.2
Markus Lehtonen [Fri, 3 May 2013 12:18:40 +0000 (15:18 +0300)]
Release 0.2

Change-Id: Ide0dacea0fc1c8cd93e940776d571b69ae094e58
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agogbp.conf: set tag format
Markus Lehtonen [Fri, 3 May 2013 12:22:05 +0000 (15:22 +0300)]
gbp.conf: set tag format

Change-Id: I6ca24baa1cc253072b891777c34ce80df21ac12a
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoFix gbp arguments
Markus Lehtonen [Fri, 26 Apr 2013 14:40:38 +0000 (17:40 +0300)]
Fix gbp arguments

Replace argv0 stub with the real program name so that gbp correctly
parses its config files.

Change-Id: I00ea542bee1b96603f30e128ef5ad95c2da1933e
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoAdd support for Deb packages and selective building
Markus Lehtonen [Mon, 22 Apr 2013 14:02:40 +0000 (17:02 +0300)]
Add support for Deb packages and selective building

Add support for generating (exporting) Debian source package with
git-buildpackage.

Also, adds new options 'rpm' and 'deb' for selecting whether to generate
rpm and/or deb packaging sources. These options are tri-state with
'auto' trying to determine if the corresponding packaging is available.

Change-Id: Ie3dda1f471a64665009fb9557ed62c1d2d0f3610
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoSupport for config files
Markus Lehtonen [Fri, 19 Apr 2013 13:44:52 +0000 (16:44 +0300)]
Support for config files

Initial support for reading service configuration from a file. For now,
there is only one configuration setting, i.e. 'repo-cache-dir'.
All configuration settings can be overridden with environment variables,
if needed.

By default, the service tries to read
'/etc/obs/services/git-buildpackage' and '~/.obs/git-buildpackage'.
Other file(s) can be defined with the --config cmdline option.

Change-Id: I65d5ee26b3798646e49615d98019673ce5606d5d
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agotests: more isolation for test cases
Markus Lehtonen [Fri, 19 Apr 2013 13:30:04 +0000 (16:30 +0300)]
tests: more isolation for test cases

Run every test case in its own temp directory. Similarly, use test case
specific cache directory that lies outside the temp directory.

Also, create the test case specific orig repo by copying rather than
cloning in order to get an identical copy with all refs.

Change-Id: I42e1ae889118924b4d4482b3780efd13632e6567
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agopackaging: refine unit tests
Markus Lehtonen [Thu, 18 Apr 2013 11:35:17 +0000 (14:35 +0300)]
packaging: refine unit tests

Don't force do_unittests in spec. Also, fake username and email in
'%check' section to work around unconfigured git.

Change-Id: Ibb0da9d8a40eb15e517c293c225577f5c28f3c54
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agopylint fix: rename global variable logger to LOGGER
Markus Lehtonen [Wed, 17 Apr 2013 12:35:50 +0000 (15:35 +0300)]
pylint fix: rename global variable logger to LOGGER

Change-Id: I745c10f9b8fd84da0fad788af3bf81864c9755a4
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoCachedRepo: do force clean when updating working copy
Markus Lehtonen [Wed, 17 Apr 2013 11:50:41 +0000 (14:50 +0300)]
CachedRepo: do force clean when updating working copy

Just in case - this should be never ever really be necessary unless
somebody manually hacks the cached repositorys introducing local
changes.

Change-Id: I5fe76ffcfb63d750bf3ec4bd85ead9ba0c5c0064
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoCachedRepo: do force checkout when updating working copy
Markus Lehtonen [Wed, 17 Apr 2013 11:50:41 +0000 (14:50 +0300)]
CachedRepo: do force checkout when updating working copy

The index of cached repo may be out-of-sync with FETCH_HEAD. In this
case normal checkout fails.

Change-Id: Id2ec2a41bccde49bc4a2622d771517ab95ba7254
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agotests: run every testcase with clean orig repo
Markus Lehtonen [Wed, 17 Apr 2013 11:33:10 +0000 (14:33 +0300)]
tests: run every testcase with clean orig repo

This way "upstream changes" made inside test cases don't affect other
tests.

Change-Id: I297afde17d9835992a0635be59799ff1c1904165
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoRelease 0.1
Markus Lehtonen [Thu, 4 Apr 2013 07:25:12 +0000 (10:25 +0300)]
Release 0.1

Change-Id: If1415ece9c525fc7357813f41248d0f92d83f8e4
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agosetup.py: parse version from spec
Markus Lehtonen [Fri, 5 Apr 2013 06:41:02 +0000 (09:41 +0300)]
setup.py: parse version from spec

Change-Id: I337d3d65a81e082382149fb98ec386c4bcd60f28
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agotests: enable xml nose report in config
Markus Lehtonen [Fri, 5 Apr 2013 06:41:37 +0000 (09:41 +0300)]
tests: enable xml nose report in config

Change-Id: Idd6d1420f374e7d57815af67edd5963a6349a5e5
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoCachedRepository: option to not update submodules
Markus Lehtonen [Thu, 4 Apr 2013 08:40:22 +0000 (11:40 +0300)]
CachedRepository: option to not update submodules

Change-Id: Ifbc603e1355da46a2eb1c0e21e5db1ac0897d885
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoUtilize non-bare mirrored git clone
Markus Lehtonen [Thu, 28 Mar 2013 07:46:09 +0000 (09:46 +0200)]
Utilize non-bare mirrored git clone

Makes submodules available. Also, makes it possible to utilize the
cached repositories for GBS.

Instead of a bare mirrored clone, create a special clone that mirrors
all remote refs, and, has a working copy. In short:
- create a git config that mirrors all remote refs directly, we don't
  expect any local changes or refs
- always fetch HEAD of remote repo
- when updating from remote, do a fetch with force and prune so that we
  stay in sync with the remote

Leaves the support for bare (mirrored) repos into CachedRepo class,
although this is not used by the service, currently.

Change-Id: I1496425b50a990aa83b5f08a03eeacafb074bb7b
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agotests: more extensive unit tests
Markus Lehtonen [Mon, 25 Mar 2013 13:49:13 +0000 (15:49 +0200)]
tests: more extensive unit tests

Change-Id: I7c030d50d8a5bafa93073c7f33e6633ba6e6365c
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agopackaging: initial RPM packaging
Markus Lehtonen [Wed, 27 Mar 2013 10:15:01 +0000 (12:15 +0200)]
packaging: initial RPM packaging

Change-Id: I57732c6e3ef2d3d5b322b4e2b7328a38f5847db0
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoAdd .gbp.conf
Markus Lehtonen [Wed, 27 Mar 2013 10:15:34 +0000 (12:15 +0200)]
Add .gbp.conf

Change-Id: Idafa14514d1787186f9e4e3b4280831004697cc7
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agotests: Add initial unit tests
Markus Lehtonen [Sat, 23 Mar 2013 06:55:25 +0000 (08:55 +0200)]
tests: Add initial unit tests

Very simple basic tests.

Also, add config files for nose and coverage.

Change-Id: I37ab5d2027701799c8502df41e97e1f0cf089c03
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoUse python distutils
Markus Lehtonen [Sat, 23 Mar 2013 07:53:14 +0000 (09:53 +0200)]
Use python distutils

Change-Id: I3172b0abadb90e079494b5b1607511e1509c88f8
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoInitial version
Markus Lehtonen [Thu, 21 Mar 2013 14:39:11 +0000 (16:39 +0200)]
Initial version

First version of the git-buildpackage OBS source service. Contains very
basic functionality for basically specifying the (remote) repo url and
revision to be exported.

Also, adds an implementation of a thread-safe repository cache.

Change-Id: I7dab6216ad6dce19415daae06f3f4dfec4e33da3
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11 years agoInitial empty repository
Eduard Bartosh [Wed, 27 Mar 2013 08:46:16 +0000 (01:46 -0700)]
Initial empty repository