{"thread":{"id":"2483","subject":"[PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","startedAt":"2005-11-13T04:56:55Z","lastAt":"2005-11-14T17:25:06Z","messageCount":10,"participants":["Thomas Matysik","Linus Torvalds","Andreas Ericsson","Junio C Hamano","David Kågedal"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"11718","messageId":"4376C797.3050600@matysik.co.nz","threadId":"2483","inReplyTo":null,"subject":"[PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Thomas Matysik","fromEmail":"thomas@matysik.co.nz","sentAt":"2005-11-13T04:56:55Z","receivedAt":"2005-11-13T04:56:55Z","isPatch":true,"sender":{"key":"thomas@matysik.co.nz","avatar":null},"body":"\nSigned-off-by: Thomas Matysik <thomas@matysik.co.nz>\n---\n\n git-core.spec.in |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\napplies-to: 76d3d1c302c20b82fd976e958aabd19f7f01e7b5\nb33499b703fbeac7e055a50a7f250ed71a516517\ndiff --git a/git-core.spec.in b/git-core.spec.in\nindex cf7e942..91f8677 100644\n--- a/git-core.spec.in\n+++ b/git-core.spec.in\n@@ -7,9 +7,9 @@ License: \tGPL\n Group: \t\tDevelopment/Tools\n URL: \t\thttp://kernel.org/pub/software/scm/git/\n Source: \thttp://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz\n-BuildRequires:\tzlib-devel >= 1.2, openssl-devel, curl-devel  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}\n+BuildRequires:\tzlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}\n BuildRoot:\t%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)\n-Requires:\tzlib >= 1.2, rsync, rcs, curl, less, openssh-clients, python >= 2.3, tk >= 8.4\n+Requires:\tzlib >= 1.2, rsync, rcs, curl, less, openssh-clients, python >= 2.3, tk >= 8.4, expat\n\n %description\n This is a stupid (but extremely fast) directory content manager.  It\n---\n0.99.9g\n"},{"id":"11734","messageId":"Pine.LNX.4.64.0511130942490.3263@g5.osdl.org","threadId":"2483","inReplyTo":"4376C797.3050600@matysik.co.nz","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-11-13T17:46:58Z","receivedAt":"2005-11-13T17:46:58Z","isPatch":true,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nQuite frankly, I'd really prefer to see the git-core-http as a separate \npackage.\n\nI think it's ludicrous that people want to split out gitk (because it \nwants tcl/tk), but that we then add all of these really obscure \ndependencies for the http part. \n\nThere are probably more boxes with tcl/tk on them than there are boxes \nwith curl and expat (on one box I use, I already have to compile with \nNO_CURL=1 to avoid getting the http programs.\n\n\t\tLinus\n"},{"id":"11736","messageId":"437788A0.6030103@op5.se","threadId":"2483","inReplyTo":"Pine.LNX.4.64.0511130942490.3263@g5.osdl.org","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2005-11-13T18:40:32Z","receivedAt":"2005-11-13T18:40:32Z","isPatch":true,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Linus Torvalds wrote:\n> \n> Quite frankly, I'd really prefer to see the git-core-http as a separate \n> package.\n> \n\nThis would get rid of expat and curl dependencies. ssh, rsync and git \nprotocols use external programs so they aren't exactly required (from \nthe rpm point of view anyways, they'll just fail if rsync or ssh isn't \ninstalled). I.e. Good idea, but see below.\n\n> I think it's ludicrous that people want to split out gitk (because it \n> wants tcl/tk), but that we then add all of these really obscure \n> dependencies for the http part. \n> \n\nCouldn't agree more. Moving out the {cvs,arch,svn}-import scripts made \nsense because they were only faintly related to git day-to-day \noperations and forced some really ridiculous dependencies down users \nthroats (git requiring subversion was a funny one...).\n\nIt *might* make sense to build a very minimalistic package for \nserver-side use only, but for client-side use it's really only confusing \nto have a dozen packages to install to get the full functionality.\n\nWhile we're on the subject of confusing; How about not naming non-core \npackages git-core? It feels wrong to have git-core-http, git-core-cvs \nand git-core-svn since they, strictly speaking, aren't required for core \noperations.\n\nSo, to be nicely constructive then I suggest we create the following \npackages;\n\ngit-core; Low-level stuff with as few dependencies as possible (ssh and \nopenssl should suffice, really). This should be everything needed for \nrunning a server and should be required by all other git-* packages. It \nwill most likely be enough to run most client-side things as well.\n\ngit; holds all client side stuff useful for humans interfacing with git \nthat introduces \"normal\" dependencies not necessarily found everywhere \n(gitk and suchlike).\n\ngit-email; This one only uses Email::Valid->address(), so I'll import \nthat function from the perl module so this dependency can be dropped and \ngit-send-email can be in the 'git' package.\n\n\nPrograms introducing obscene or plain weird dependencies (cvsimport, \nsvnimport) can be put into their own package, but we should really try \nto keep those extra packages to a minimum and simply force users who \nwant all the fluffy niceties of the 'git' package to install whatever's \nrequired (or install with --nodeps, or from source, or...).\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"11738","messageId":"Pine.LNX.4.64.0511131137470.3263@g5.osdl.org","threadId":"2483","inReplyTo":"437788A0.6030103@op5.se","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-11-13T19:49:07Z","receivedAt":"2005-11-13T19:49:07Z","isPatch":true,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Sun, 13 Nov 2005, Andreas Ericsson wrote:\n> \n> This would get rid of expat and curl dependencies. ssh, rsync and git\n> protocols use external programs so they aren't exactly required (from the rpm\n> point of view anyways, they'll just fail if rsync or ssh isn't installed).\n\nActually, the \"git://\" protocol (and local filesystem ones) doesn't need \nany external programs. So if you just want to follow another repository, \nyou can do so even without ssh or rsync installed.\n\nBut yes, the nice thing about ssh(+git):// and rsync:// is that since we \ndon't link against them or depend on them in general, you can certainly \ninstall git without having them, and don't need to make a dependency of \nit.\n\nIf there's some way to \"suggest\" ssh when installing git, that would be \ngood, but I don't think rpm has that. And if somebody doesn't have ssh \ninstalled, they probably don't have a network, so maybe even that is \nunnecessary.\n\nSo depending on the curl _program_ would fall under the same harmless case \nas depending on ssh and rsync, but the thing is, we depend on it as a \nlibrary, which is why we should split things up.\n\n> Moving out the {cvs,arch,svn}-import scripts made sense because they \n> were only faintly related to git day-to-day operations and forced some \n> really ridiculous dependencies down users throats (git requiring \n> subversion was a funny one...).\n\nYes. \n\nNOTE! Git does actually require the \"merge\" program, which sometimes comes \nwith the diff3 package, and more often comes with rcs.  As with ssh and \nrsync, it's an external program and only really required if you do \ndevelopment (you can fast-forward something that you're only tracking \nread-only without it), so in theory you don't absolutely need it, but we \ndo have a dependency on RCS right now due to that.\n\nWhich is a bit strange, and sometimes wrong (the same machine that doesn't \nhave curl installed also doesn't have rcs installed, but I compile git on \nit anyway, and it works fine, since I use that machine only as a backup \nthing to receive git packs - in case kernel.org goes down _and_ all my \nhome machines magically turn into pumpkins, I'll still have another site \nI can get my git repos from).\n\n> While we're on the subject of confusing; How about not naming non-core\n> packages git-core? It feels wrong to have git-core-http, git-core-cvs and\n> git-core-svn since they, strictly speaking, aren't required for core\n> operations.\n\nYeah, that \"git-core-xxx\" thing is a bit strange, but on the other hand, \nit does make it clear that they all come from the same SRPM (the \n\"git-core\" SRPM) so in the end I think it's actually a good idea.\n\n\t\t\tLinus\n"},{"id":"11740","messageId":"4377A3E1.7070003@op5.se","threadId":"2483","inReplyTo":"Pine.LNX.4.64.0511131137470.3263@g5.osdl.org","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2005-11-13T20:36:49Z","receivedAt":"2005-11-13T20:36:49Z","isPatch":true,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Linus Torvalds wrote:\n> \n> If there's some way to \"suggest\" ssh when installing git, that would be \n> good, but I don't think rpm has that.\n\nIt hasn't. It was designed to update software non-interactively.\n\n> And if somebody doesn't have ssh \n> installed, they probably don't have a network, so maybe even that is \n> unnecessary.\n> \n\nI *think* the ssh transport should work nicely over rsh as well. I don't \nhave the slightest idea of where to find an rsh installation to test it \nwith though.\n\n> So depending on the curl _program_ would fall under the same harmless case \n> as depending on ssh and rsync, but the thing is, we depend on it as a \n> library, which is why we should split things up.\n> \n\nTrue. But HTTP is a very simple protocol and git only uses a very small \nportion of curl's capabilities so it wouldn't be rocket-science to hack \nup some micro-replacement and always use the shipped stuff.\n\n> \n>>Moving out the {cvs,arch,svn}-import scripts made sense because they \n>>were only faintly related to git day-to-day operations and forced some \n>>really ridiculous dependencies down users throats (git requiring \n>>subversion was a funny one...).\n> \n> \n> Yes. \n> \n> NOTE! Git does actually require the \"merge\" program,\n\nThat depends on how it's used. If some script expects 'merge' to be \nthere and does things that might break the index if it isn't, then it's \nrequired.\n\n> which sometimes comes \n> with the diff3 package, and more often comes with rcs.  As with ssh and \n> rsync, it's an external program and only really required if you do \n> development (you can fast-forward something that you're only tracking \n> read-only without it), so in theory you don't absolutely need it, but we \n> do have a dependency on RCS right now due to that.\n> \n\nIt could require /usr/bin/merge instead. Seeing as people who install \npackages usually installs other things as packages too this would \nprobably make more sense.\n\n> Which is a bit strange, and sometimes wrong (the same machine that doesn't \n> have curl installed also doesn't have rcs installed, but I compile git on \n> it anyway, and it works fine, since I use that machine only as a backup \n> thing to receive git packs - in case kernel.org goes down _and_ all my \n> home machines magically turn into pumpkins, I'll still have another site \n> I can get my git repos from).\n> \n\nStill though, be kind to the fairy godmother. ;)\n\n> \n>>While we're on the subject of confusing; How about not naming non-core\n>>packages git-core? It feels wrong to have git-core-http, git-core-cvs and\n>>git-core-svn since they, strictly speaking, aren't required for core\n>>operations.\n> \n> \n> Yeah, that \"git-core-xxx\" thing is a bit strange, but on the other hand, \n> it does make it clear that they all come from the same SRPM (the \n> \"git-core\" SRPM) so in the end I think it's actually a good idea.\n> \n\nThe change would only mean that all packages will come from the \"git\" \nSRPM rather than the \"git-core\" SRPM so this point is moot unless there \nwill ever be such a thing as the \"git\" SRPM to contend with (which will \nbe less likely if we're it, so to speak).\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"11742","messageId":"Pine.LNX.4.64.0511131248190.3263@g5.osdl.org","threadId":"2483","inReplyTo":"4377A3E1.7070003@op5.se","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-11-13T20:51:03Z","receivedAt":"2005-11-13T20:51:03Z","isPatch":true,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Sun, 13 Nov 2005, Andreas Ericsson wrote:\n> \n> I *think* the ssh transport should work nicely over rsh as well. I don't have\n> the slightest idea of where to find an rsh installation to test it with\n> though.\n\nYou're right, it should be possible to just do a\n\n\texport GIT_SSH=rsh\n\nand things should just work.\n\nBut I don't have any machines that allow rsh either ;)\n\n\t\tLinus\n"},{"id":"11748","messageId":"4377DA5D.9090002@matysik.co.nz","threadId":"2483","inReplyTo":"Pine.LNX.4.64.0511130942490.3263@g5.osdl.org","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Thomas Matysik","fromEmail":"thomas@matysik.co.nz","sentAt":"2005-11-14T00:29:17Z","receivedAt":"2005-11-14T00:29:17Z","isPatch":true,"sender":{"key":"thomas@matysik.co.nz","avatar":null},"body":"Linus Torvalds wrote:\n> \n> Quite frankly, I'd really prefer to see the git-core-http as a separate \n> package.\n> \n> I think it's ludicrous that people want to split out gitk (because it \n> wants tcl/tk), but that we then add all of these really obscure \n> dependencies for the http part. \n\nWell, splitting out http occurred to me, but personally I don't have a\nproblem with installing expat (I'd need it eventually anyway) and I\nfigured anyone who did have a problem would say something.  ;-)\n\nThe reason for this patch is that the RPM currently fails to build\nwithout expat-dev.\n\nThe reason for wanting to split out gitk is that, for a machine where I\nwill never run gitk, I think the following dependency list is ludicrous:\n\n fontconfig\n freetype\n tcl\n tk\n xorg-x11-Mesa-libGL\n xorg-x11-libs\n"},{"id":"11763","messageId":"7vr79j1wfl.fsf@assigned-by-dhcp.cox.net","threadId":"2483","inReplyTo":"437788A0.6030103@op5.se","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-11-14T08:10:54Z","receivedAt":"2005-11-14T08:10:54Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"> Linus Torvalds wrote:\n>> Quite frankly, I'd really prefer to see the git-core-http as a\n>> separate package.\n>>\n>> I think it's ludicrous that people want to split out gitk (because\n>> it wants tcl/tk), but that we then add all of these really obscure\n>> dependencies for the http part.\n\nOne thing we could do is to push http-push out of the common\npackage and keep http-fetch.  I personally feel that the http\ncommit walker is as much core as gitk is.  If you are git://\ncapable that is great, and if you are git+ssh:// capable that\nmay be even nicer because you could push.  But let's face it:\nthere are always more pullers than pushers, and everybody can\ntalk http over his firewall.\n\nAndreas Ericsson <ae@op5.se> writes:\n\n> git-email; This one only uses Email::Valid->address(), so I'll import \n> that function from the perl module so this dependency can be dropped and \n> git-send-email can be in the 'git' package.\n\nHmph.  This should have occurred to somebody when we did the same\nwith subprocess.py, but obviously it went unnoticed.\n\n> Programs introducing obscene or plain weird dependencies (cvsimport, \n> svnimport) can be put into their own package, but we should really try \n> to keep those extra packages to a minimum and simply force users who \n> want all the fluffy niceties of the 'git' package to install whatever's \n> required (or install with --nodeps, or from source, or...).\n\nI am not so sure about that.  Why should the number of packages\nmatter?  We could argue that the current splitting of RPM\npackages is half-done in that sense --- we lack the \"tying\ntogether\" package which itself is empty but depends on\nsubpackages that implements common client-side.  Call that\ngit-scm (or \"git\") and have the end users install it, then it\nwould pull what it depends on along with it.  No?\n"},{"id":"11765","messageId":"43785168.7050808@op5.se","threadId":"2483","inReplyTo":"7vr79j1wfl.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2005-11-14T08:57:12Z","receivedAt":"2005-11-14T08:57:12Z","isPatch":true,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Junio C Hamano wrote:\n> Andreas Ericsson <ae@op5.se> writes:\n> \n> \n>>git-email; This one only uses Email::Valid->address(), so I'll import \n>>that function from the perl module so this dependency can be dropped and \n>>git-send-email can be in the 'git' package.\n> \n> \n> Hmph.  This should have occurred to somebody when we did the same\n> with subprocess.py, but obviously it went unnoticed.\n> \n\nApparently it's not so easy. The Email::Valid thing contains a regex \nsome 5000 chars long. I personally think it's a fair bit overkill for \nthe purpose of send-email so we could well do with a much simpler \nverification.\n\n> \n>>Programs introducing obscene or plain weird dependencies (cvsimport, \n>>svnimport) can be put into their own package, but we should really try \n>>to keep those extra packages to a minimum and simply force users who \n>>want all the fluffy niceties of the 'git' package to install whatever's \n>>required (or install with --nodeps, or from source, or...).\n> \n> \n> I am not so sure about that.  Why should the number of packages\n> matter?\n\n\nBecause it's a nuisance to keep track of them.\n\n\n>  We could argue that the current splitting of RPM\n> packages is half-done in that sense --- we lack the \"tying\n> together\" package which itself is empty but depends on\n> subpackages that implements common client-side.  Call that\n> git-scm (or \"git\") and have the end users install it, then it\n> would pull what it depends on along with it.  No?\n> \n\nIsn't this exactly what I suggested (apart from git-scm)? client-side \nstuff goes in \"git\", basic functionality (server side stuff) in git-core \nand git-* for special functionality introducing odd dependencies (cvs, \nsvn, http).\n\nSince all packages would require git-core we can tack everything that \ndoesn't require anything special in there and server-side installs will \nbe smooth as you please.\n\nThis change should be done before 1.0 though, since people will probably \nexpect some sort of package naming stability later.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"11872","messageId":"u5tacg716rx.fsf@fidgit.hq.vtech","threadId":"2483","inReplyTo":"Pine.LNX.4.64.0511131248190.3263@g5.osdl.org","subject":"Re: [PATCH 1/2] Add expat and expat-devel dependencies (for http-push) to RPM spec.","fromName":"David Kågedal","fromEmail":"davidk@lysator.liu.se","sentAt":"2005-11-14T17:25:06Z","receivedAt":"2005-11-14T17:25:06Z","isPatch":true,"sender":{"key":"davidk@lysator.liu.se","avatar":"https://avatars.githubusercontent.com/u/60530?v=4"},"body":"Linus Torvalds <torvalds@osdl.org> writes:\n\n> On Sun, 13 Nov 2005, Andreas Ericsson wrote:\n>> \n>> I *think* the ssh transport should work nicely over rsh as well. I don't have\n>> the slightest idea of where to find an rsh installation to test it with\n>> though.\n>\n> You're right, it should be possible to just do a\n>\n> \texport GIT_SSH=rsh\n>\n> and things should just work.\n>\n> But I don't have any machines that allow rsh either ;)\n\nI do it all the time with a kerberos rsh.  It works fine.\n\n-- \nDavid Kågedal\n"}]}