Aug 28

Written by m4r3k and tagged by , , .

opensuse logo

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.

2 Responses

  1. M4r3k’s web » Blog Archive » Jaký byl Hackweek #3 v Pražském SUSE? Says:

    [...] 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. [...]

  2. Scenario - openSUSE Forums Says:

    [...] 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 [...]

Leave a Comment


Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.