GNOME Bugzilla – Bug 333425
jhbuild needs to support git now for cairo
Last modified: 2006-05-02 07:09:20 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).
*** Bug 333449 has been marked as a duplicate of this bug. ***
arg this still applys. is anyone looking into this? is jhbuild ready for git?
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.
I made cairo-1-0 in freedesktop.modules to use the cairo-1.0.4 tarball for now.
And I made 2.14 moduleset to use cairo-1-0 and pycairo-1-0. That should do it.
Shouldn't the cairo-1-0 target have dependencies though?
(In reply to comment #6) > Shouldn't the cairo-1-0 target have dependencies though? > Yes, see bug 338789
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.
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
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).
Created attachment 64241 [details] [review] GIT support (using git, not cogito) Moving from cogito to git was easy.
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?
No, the repository is all the same. It's just that cogito depends on git, so working with git proper drops an unneeded dependency.
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.
I personally use git to hack on cairo, and all other cairo developers I know use git too.
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.
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.
versioncontrol.py is missing from CVS.
Oops, sorry, too early in the morning, thins are fine now.