After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 333425 - jhbuild needs to support git now for cairo
jhbuild needs to support git now for cairo
Status: RESOLVED FIXED
Product: jhbuild
Classification: Infrastructure
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: James Henstridge
Jhbuild QA
: 333449 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-03-05 00:46 UTC by Elijah Newren
Modified: 2006-05-02 07:09 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GIT support (16.32 KB, patch)
2006-04-24 10:19 UTC, Frederic Peters
none Details | Review
GIT support (using git, not cogito) (15.71 KB, patch)
2006-04-24 21:30 UTC, Frederic Peters
none Details | Review

Description Elijah Newren 2006-03-05 00:46:58 UTC
cairo is now using git instead of cvs.  There is an out of date copy of cairo in cvs still, but using it will cause pycairo compilation to fail (see https://bugs.freedesktop.org/show_bug.cgi?id=6133).
Comment 1 James Henstridge 2006-03-06 02:48:51 UTC
*** Bug 333449 has been marked as a duplicate of this bug. ***
Comment 2 Christian Kirbach 2006-03-17 09:45:52 UTC
arg this still applys.

is anyone looking into this? is jhbuild ready for git?
Comment 3 James Henstridge 2006-03-17 10:19:32 UTC
I won't really have a chance to look into this til I get back to .au in a week.  I'd like to make it easier to drop in support for new revision control systems easily though.
Comment 4 Behdad Esfahbod 2006-03-17 15:48:11 UTC
I made cairo-1-0 in freedesktop.modules to use the cairo-1.0.4 tarball for now.
Comment 5 Behdad Esfahbod 2006-03-17 15:51:52 UTC
And I made 2.14 moduleset to use cairo-1-0 and pycairo-1-0.  That should do it.
Comment 6 Jonathon Jongsma 2006-04-05 01:04:12 UTC
Shouldn't the cairo-1-0 target have dependencies though?
Comment 7 Luca Ferretti 2006-04-17 17:12:03 UTC
(In reply to comment #6)
> Shouldn't the cairo-1-0 target have dependencies though?
> 

Yes, see bug 338789
Comment 8 Frederic Peters 2006-04-24 10:19:22 UTC
Created attachment 64188 [details] [review]
GIT support

Printing support landed in GTK+ and it seems to require a cairo version not available as a tarball; enough motivation to get this basic git support rolling (note I never used git before).

This is modelled on subversion support and only has been roughly tested.
Comment 9 Behdad Esfahbod 2006-04-24 21:15:11 UTC
Ideally we really want to use git itself (git-*), instead of cogito (cg-*).  Note that git-clone (or cg-clone) clones all the repo history right now.  That's not quite a problem for cairo at this point, but eventually we want to do a shallow clone.  That feature is not implemented in git yet, but planned.  See this message for details:

  http://lists.freedesktop.org/archives/cairo/2006-April/006705.html
Comment 10 Frederic Peters 2006-04-24 21:20:57 UTC
As I wrote I had no experience with git/cogito before cooking this patch and cairo download instructions only talked about cogito.  I'll read about it and update the patch to use git.

(and I was wrong in my previous comment about gtk+ now requiring cairo from git, --enable-pdf is available in 1.0.4).
Comment 11 Frederic Peters 2006-04-24 21:30:41 UTC
Created attachment 64241 [details] [review]
GIT support (using git, not cogito)

Moving from cogito to git was easy.
Comment 12 James Henstridge 2006-04-25 13:37:02 UTC
Frederic: thanks for looking into this.  I'll try and make time to review the patch soon.  With this and the Darcs support patch recently merged, it is becoming more apparent that the support code for version control systems needs refactoring to reduce the amount of work to add new ones.

Behdad: Is there any particular reason to favour the low level utility over the higher level one?  Does cogito add any policy over using the low level git commands?  If we use the low level commands, can we end up with a tree that cogito can't handle?
Comment 13 Behdad Esfahbod 2006-04-25 14:04:34 UTC
No, the repository is all the same.  It's just that cogito depends on git, so working with git proper drops an unneeded dependency.
Comment 14 James Henstridge 2006-04-26 03:43:39 UTC
I realise that cogito uses git internally.  With a number of layered systems, the higher levels sometimes make assumptions about the repository that the lower levels don't.  If you use the low level tools to manipulate the repository you can confuse the high level tools.  Consider the case of using the RCS utilities to directly manipulate a CVS repository.

So my question was whether the same might be true for git/cogito.  If it is and everyone uses cogito anyway, then it would make sense for jhbuild to do so too.
Comment 15 Behdad Esfahbod 2006-04-26 04:24:26 UTC
I personally use git to hack on cairo, and all other cairo developers I know use git too.
Comment 16 James Henstridge 2006-05-01 02:35:19 UTC
I'm in the middle of refactoring the version control interfaces inside jhbuild, so have not merged your patch as is.  The changes in my bzr branch should all be merged to CVS now.

Instead, I've committed a modified version of jhbuild/utils/git.py as jhbuild/versioncontrol/git.py, using the new interfaces.  I haven't added any moduleset specific support yet, but you should be able to use the following with this one file added:

  <repository type="git" name="cairographics.org"
      href="git://git.cairographics.org/git/" />

  <svnmodule id="cairo" repo="cairographics.org">
    <dependencies>
      ...
    </dependencies>
  </svnmodule>

(I know that it says svnmodule, but it'll be using a GitBranch for all the version control stuff, since that is the named repository).

Eventually we'll allow syntax something like this:

  <autogenmodule id="cairo">
    <branch repo="cairographics.org" module="cairo" />
    <dependencies>
      ...
    </dependencies>
  </autogenmodule>

I'd appreciate if someone tries this out to verify that it all works correctly.
Comment 17 James Henstridge 2006-05-01 11:46:11 UTC
Okay, I've updated freedesktop.modules and gnome-2.16.modules, so it should be pulling Cairo from GIT now.

I needed to make the git support code tell Python's URL parser that git:// URIs act similarly to http:// URIs as far as relative paths go, but it seems to be working.

I think that's enough to close the bug.  Please reopen if things appear broken.  If there are enhancements that should be made to the git support (e.g. shared repositories?) please file new bug reports.
Comment 18 Frederic Peters 2006-05-02 07:06:42 UTC
versioncontrol.py is missing from CVS.
Comment 19 Frederic Peters 2006-05-02 07:09:20 UTC
Oops, sorry, too early in the morning, thins are fine now.