Thread (8 messages) flat view 8 messages, 4 authors, 2016-06-15

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

From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:42:11


On Sun, 13 Nov 2005, Andreas Ericsson wrote:
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).
Actually, the "git://" protocol (and local filesystem ones) doesn't need 
any external programs. So if you just want to follow another repository, 
you can do so even without ssh or rsync installed.

But yes, the nice thing about ssh(+git):// and rsync:// is that since we 
don't link against them or depend on them in general, you can certainly 
install git without having them, and don't need to make a dependency of 
it.

If there's some way to "suggest" ssh when installing git, that would be 
good, but I don't think rpm has that. And if somebody doesn't have ssh 
installed, they probably don't have a network, so maybe even that is 
unnecessary.

So depending on the curl _program_ would fall under the same harmless case 
as depending on ssh and rsync, but the thing is, we depend on it as a 
library, which is why we should split things up.
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...).
Yes. 

NOTE! Git does actually require the "merge" program, which sometimes comes 
with the diff3 package, and more often comes with rcs.  As with ssh and 
rsync, it's an external program and only really required if you do 
development (you can fast-forward something that you're only tracking 
read-only without it), so in theory you don't absolutely need it, but we 
do have a dependency on RCS right now due to that.

Which is a bit strange, and sometimes wrong (the same machine that doesn't 
have curl installed also doesn't have rcs installed, but I compile git on 
it anyway, and it works fine, since I use that machine only as a backup 
thing to receive git packs - in case kernel.org goes down _and_ all my 
home machines magically turn into pumpkins, I'll still have another site 
I can get my git repos from).
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.
Yeah, that "git-core-xxx" thing is a bit strange, but on the other hand, 
it does make it clear that they all come from the same SRPM (the 
"git-core" SRPM) so in the end I think it's actually a good idea.

			Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help