Subject: Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.

From: Andreas Ericsson <[email-masked]>
Date: Sun, 13 Nov 2005 19:40:32 +0100

Linus Torvalds wrote:
> 
> Quite frankly, I'd really prefer to see the git-core-http as a separate 
> package.
> 

This would get rid of expat and curl dependencies. ssh, rsync and git 
protocols use external programs so they aren't exactly required (from 
the rpm point of view anyways, they'll just fail if rsync or ssh isn't 
installed). I.e. Good idea, but see below.

> I think it's ludicrous that people want to split out gitk (because it 
> wants tcl/tk), but that we then add all of these really obscure 
> dependencies for the http part. 
> 

Couldn't agree more. Moving out the {cvs,arch,svn}-import scripts made 
sense because they were only faintly related to git day-to-day 
operations and forced some really ridiculous dependencies down users 
throats (git requiring subversion was a funny one...).

It *might* make sense to build a very minimalistic package for 
server-side use only, but for client-side use it's really only confusing 
to have a dozen packages to install to get the full functionality.

While we're on the subject of confusing; How about not naming non-core 
packages git-core? It feels wrong to have git-core-http, git-core-cvs 
and git-core-svn since they, strictly speaking, aren't required for core 
operations.

So, to be nicely constructive then I suggest we create the following 
packages;

git-core; Low-level stuff with as few dependencies as possible (ssh and 
openssl should suffice, really). This should be everything needed for 
running a server and should be required by all other git-* packages. It 
will most likely be enough to run most client-side things as well.

git; holds all client side stuff useful for humans interfacing with git 
that introduces "normal" dependencies not necessarily found everywhere 
(gitk and suchlike).

git-email; This one only uses Email::Valid->address(), so I'll import 
that function from the perl module so this dependency can be dropped and 
git-send-email can be in the 'git' package.

Programs introducing obscene or plain weird dependencies (cvsimport, 
svnimport) can be put into their own package, but we should really try 
to keep those extra packages to a minimum and simply force users who 
want all the fluffy niceties of the 'git' package to install whatever's 
required (or install with --nodeps, or from source, or...).

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231