Mailinglist Archive: opensuse-buildservice (258 mails)

< Previous Next >
RE: [opensuse-buildservice] Integrating SCM with OBS
  • From: <Michael_E_Brown@xxxxxxxx>
  • Date: Fri, 13 Aug 2010 10:23:43 -0500
  • Message-id: <F757EE5C3631ED4DBDFD7709119219FE03C33A8CAA@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Below is similar to what we do at Dell. Integrating this server side would have
extremely limited usefulness for us, at least.

The problem with integrating this into the server side is that all of our
packages require "./autogen.sh && ./configure && make dist" to even create a
buildable tarball. This isnt something you really want to do on the server
side. Additionally, we keep our spec file in SCM and create it using configure,
so you cant even pull out a specfile from scm.

So we end up with a client machine that polls SCM and basically runs a script
similar to what you have below.
--
Michael
________________________________________
From: Marcus Meissner [meissner@xxxxxxx]
Sent: Friday, August 13, 2010 4:31 AM
To: Adrian Schröter
Cc: opensuse-buildservice@xxxxxxxxxxxx; brook.hong@xxxxxxxxx
Subject: Re: [opensuse-buildservice] Integrating SCM with OBS

On Fri, Aug 13, 2010 at 11:23:30AM +0200, Adrian Schröter wrote:

Hi,

This all is way too bloated.


I mean you can just use a simple osc client checkout/update/checkout.

Feed in some kind lists and you are set.

e.g. for wine in OBS I have this simple script which pulls daily git
snapshots, including detecting unchanged state and seperating local
patches:

#!/bin/bash -x
bsdir="/suse/meissner/projects/Emulators:Wine/wine-snapshot"
snapdir=/suse/meissner/projects/snapshot-wine/
xdate=`date +%Y%m%d`

cd $bsdir
cd $snapdir/wine
git pull
chars=`git diff '@{1 day ago}' | wc -c`
if [ "$chars" == "0" ]; then
echo "*** No git change found from yesterday, not rebuilding
package."
exit 0
fi
rm $bsdir/wine-*.tar.bz2
winever=`cat VERSION|sed -e 's/Wine version //;s/1.2-/1.2./;'`
git archive origin --prefix=wine-$winever.$xdate/ | bzip2
$bsdir/wine-$winever.$xdate.tar.bz2
# perhaps split into seperate patches
git diff origin..master > $bsdir/susepatches.patch
cd $bsdir
perl -pi -e "s/Version:.*/Version:$winever.$xdate/;" wine-snapshot.spec
osc addremove
osc ci -m "$xdate git checkout"


So why not just write such little helpers for tar downloads, git
checkouts, svn checkouts, and then use a simple list or XML file as
configuration.

Should really be doable in 200 lines of code, all client-side, without lots of
server magic.

Ciao, Marcus
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups