Written by m4r3k and tagged by linux, openSUSE, programování.

During Hackweek I am working on better upstream integration for BuildService and OSC. Right now I have almost fully working osc build --upstream-update. I have a demonstration for you, how I building SVN version of OSC client. :-) This upstream stuff should support a lot of upstream integration method like SVN, BZR, GIT, CVS, HTTP(S).
Current _upstream XML syntax
<upstream>
<source>
<!--
HINT: If you need more than one download, it is not problem, just add more section like svn with all compulsory tags,
if you need more http(s) download DO NOT add new http(s) section, just add url tag only!
-->
<svn>
<url></url> <!-- svn repository url e.q. https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/ (compulsory)-->
<destdir></destdir> <!-- directory for checkout e.q. buildservice-svn (compulsory) -->
<file></file> <!-- name of tarball... syntax is name.tar.[gz,bz2,lzma] e.q. buildservice-svn.tar.lzma (compulsory) -->
<rev></rev> <!-- revision number, passed as svn co $url $destdir -r $rev (optional - remove tag) -->
</svn>
<cvs>
<cvsroot></cvsroot> <!-- passed as -d to cvs command (compulsory) -->
<path>path on CVS server</path> <!-- path on CVS server (compulsory) -->
<file></file> <!-- name of tarball... syntax is name.tar.[gz,bz2,lzma] e.q. buildservice-svn.tar.lzma (compulsory) -->
</cvs>
<git>
<url></url> <!-- git repository url (compulsory) -->
<destdir></destdir> <!-- directory for checkout (compulsory) -->
<file></file> <!-- name of tarball... syntax is name.tar.[gz,bz2,lzma] (compulsory) -->
</git>
<bzr>
<url></url> <!-- bzr repository url (compulsory)-->
<destdir></destdir> <!-- destination directory for checkout (compulsory) -->
<file></file> <!-- name of tarball... syntax is name.tar.[gz,bz2,lzma] (compulsory) -->
<rev></rev> <!-- revision number, (optional - remove tag) -->
</bzr>
<http>
<url></url> <!-- http download url -->
<url></url> <!-- http download url -->
</http>
<https>
<url></url> <!-- https download url, downloaded with no-check-certificate -->
<url></url> <!-- https download url, downloaded with no-check-certificate -->
</https>
</source>
</upstream>
Building SVN version of OSC using my upstream integration
Used _upstream XML
<upstream>
<source>
<svn>
<url>https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc</url>
<destdir>osc</destdir>
<file>osc-svn.tar.bz2</file>
<!-- <rev></rev> -->
</svn>
</source>
</upstream>
Video presentation :-)
I tried upload this video at Google Video Service, but unfortunately quality wasn’t very good (text was unreadable) so here is download link. :-)
Current limitations of my solution
Currently I don’t have any solution for updating Version: tag in spec file, this is one of think I need to figure out.
August 29th, 2008 at 11:57 pm
[...] Něco jako před půl hodinou jsem dorazil z Prahy zpět do Ostravy. V Praze jsem byl od neděle do dneška na Hackweeku, během něhož jsem pracoval na vylepšení upstream integrace v BuildService. [...]
September 21st, 2008 at 8:38 am
[...] an ongoing project to enable OBS to check out code from CVS, SVN, etc. It was worked on during the Hackweek. But it does not completely automate the system because 1) there is no way to schedule it to run [...]