building from git using custom koji install

Jesus Rodriguez jesusr at redhat.com
Thu Jul 24 13:32:34 UTC 2008


On Wed, Jul 23, 2008 at 11:51:36PM -0400, Mike Bonnet wrote:
> On Wed, 2008-07-23 at 23:06 -0400, Doug Ledford wrote:
> > On Wed, 2008-07-23 at 22:27 -0400, Jesus Rodriguez wrote:
> > > On Wed, Jul 23, 2008 at 09:50:13PM -0400, Mike McLean wrote:
> > > > Jesus M. Rodriguez wrote:
> > > >> So am I correct in my assumption that koji expects the scm
> > > >> repository to house a single package?
> > > >
> > > > Yes. Furthermore, koji assumes that the simple command 'make srpm'  
> > > > issued from the checkout will create a single source rpm. There is not  
> > > > enough information passed to koji for it to handle anything otherwise.
> > > >
> > > > In your SCM layout with multiple packages, how do you generate the  
> > > > different srpms? Is there a real reason that they are all in one module?
> > > 
> > > We generate different srpms with the Makefile that exists in each
> > > subdirectory. For example, if you want an srpm for the web module
> > > cd spacewalk.git/web; make srpm
> > > 
> > > Want one for the java code, then cd spacewalk.git/java.
> > > 
> > > With SVN it seems completely doable because I could give the
> > > path to repo/spacewalk/java and have koji checkout just that
> > > directory. Seems to be a limitation of GIT in this case
> > > (or we're using it wrong) :)
> > 
> > Well, git was intentionally written to be basically a state machine of
> > the entire project.  So, housing more than one project in a single git
> > repo isn't wrong, but it does tie your various projects together at the
> > state machine level.  This is why you can't checkout just one
> > subdirectory from git, you have to grab the entire project.  I think I
> > heard mumblings of someone wanting to make subprojects work nicely in
> > git, but I haven't heard if it ever got off the ground.
> > 
> > Regardless though, koji won't work with what your current SCM layout
> > without modification to the koji code.
> 
> While that's true, I'm not sure we're definitely handling things
> correctly in the git case.  The git support in Koji hasn't gotten a lot
> of testing, and there are a lot of ways to setup a git repo.  However, I
> think that multiple projects in the same repo is probably something we
> want to support (since we support it in cvs and svn).
> 
> The SCM URL you pass to Koji has a format of:
> 
> scheme://[user@]host/path/to/repo?path/to/module#revision_or_tag_identifier
> 
> With git we combine the /path/to/repo and the path/to/module into a
> single URL we pass to "git clone", essentially collapsing them both into
> a full module path (this is also what we do with svn).  Would it be more
> appropriate to treat the /path/to/repo as the location of the git repo
> which we would pass to "git clone", and /path/to/module as a
> subdirectory in the repo, which we would use as the base directory of
> the build, and look there for a .spec file?

Yep, that would actually work in our case.  Because then I could do the
following:

    git://git.fedorahosted.org/git/spacewalk.git?web#HEAD

web would contain the .spec file.

-- 
jesus m. rodriguez     | jesusr at redhat.com
sr. software engineer  | irc: zeus
red hat network        | 919.754.4413 (w)
rhce # 805008586930012 | 919.623.0080 (c)
+-------------------------------------------+
|  "Those who cannot learn from history     |
|   are doomed to repeat it."               |
|                       -- George Santayana |
+-------------------------------------------+




More information about the Fedora-buildsys-list mailing list