git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Linus Torvalds <torvalds@osdl.org>
Date
Nov 13, 2005, 19:49 UTC
Message-ID
<Pine.LNX.4.64.0511131137470.3263@g5.osdl.org>
In-Reply-To
<437788A0.6030103@op5.se>
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
Previous: Andreas EricssonNext: Andreas Ericsson
Message 4 of 10 in “Add expat and expat-devel dependencies (for http-push) to RPM spec.”
  1. 1/2 Add expat and expat-devel dependencies (for http-push) to RPM spec.Thomas Matysik, Nov 13, 2005
  2. Linus TorvaldsNov 13, 2005
  3. Andreas EricssonNov 13, 2005
  4. Linus TorvaldsNov 13, 2005
  5. Andreas EricssonNov 13, 2005
  6. Linus TorvaldsNov 13, 2005
  7. David KågedalNov 14, 2005
  8. Junio C HamanoNov 14, 2005
  9. Andreas EricssonNov 14, 2005
  10. Thomas MatysikNov 14, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.