{"thread":{"id":"12115","subject":"[PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","startedAt":"2008-02-15T18:29:23Z","lastAt":"2008-02-19T01:25:25Z","messageCount":11,"participants":["Kristian Høgsberg","Jakub Narebski","Andreas Ericsson","Junio C Hamano","Jay Soffian"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"68829","messageId":"1203100163-17509-1-git-send-email-krh@redhat.com","threadId":"12115","inReplyTo":null,"subject":"[PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Kristian Høgsberg","fromEmail":"krh@redhat.com","sentAt":"2008-02-15T18:29:23Z","receivedAt":"2008-02-15T18:29:23Z","isPatch":true,"sender":{"key":"krh@redhat.com","avatar":"https://gravatar.com/avatar/763dee6f9594ac474f725b137a39565792928e583ddf59b32befc2907409027e?d=mp&s=160"},"body":"---\n\nSo here's change to fix my favorite annoyance with the git rpm\npackaging: don't pull in tla when I say yum install git!  The decision\nto make 'git' a metapackage is to say the least unconventional and\ncontinues to surprise people (here's today discussion:\nhttp://marc.info/?t=120309228600004&r=1&w=2).\n\nI know it's late and most people who use the git rpms are used to installing\ngit-core by now, but myself and most of my Red Hat co-workers (who should\nknow a thing or two about rpm packaging) have been fooled by the 'git'\nrpm that pulls in everything.  There's really no precendence for this, quite\nthe opposite: you wouldn't expect yum install gcc to pull in fortran, right?\n\nThe patch below only affects people who know that 'git' is a metapackage\nand actually use that to pull in everything (but who does?).  The patch\nrenames the 'git-core' rpm to just 'git', but adds a 'Provides: git-core'\nthere so people who have trained themselves to say yum install git-core\nwont get burned.\n\ncheers,\nKristian\n\n git.spec.in |   65 ++++++++++++++++++++++++++++++----------------------------\n 1 files changed, 34 insertions(+), 31 deletions(-)\n\ndiff --git a/git.spec.in b/git.spec.in\nindex 3f9f888..51ddc08 100644\n--- a/git.spec.in\n+++ b/git.spec.in\n@@ -3,7 +3,7 @@\n Name: \t\tgit\n Version: \t@@VERSION@@\n Release: \t1%{?dist}\n-Summary:  \tGit core and tools\n+Summary:  \tCore git tools\n License: \tGPL\n Group: \t\tDevelopment/Tools\n URL: \t\thttp://kernel.org/pub/software/scm/git/\n@@ -11,80 +11,83 @@ Source: \thttp://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz\n BuildRequires:\tzlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel, gettext  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}\n BuildRoot:\t%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)\n \n-Requires:\tgit-core = %{version}-%{release}\n-Requires:\tgit-svn = %{version}-%{release}\n-Requires:\tgit-cvs = %{version}-%{release}\n-Requires:\tgit-arch = %{version}-%{release}\n-Requires:\tgit-email = %{version}-%{release}\n-Requires:\tgitk = %{version}-%{release}\n-Requires:\tgit-gui = %{version}-%{release}\n Requires:\tperl-Git = %{version}-%{release}\n+Requires:\tzlib >= 1.2, rsync, curl, less, openssh-clients, expat\n+Provides:\tgit-core = %{version}-%{release}\n+Obsoletes:\tgit-core < %{version}-%{release}\n \n %description\n Git is a fast, scalable, distributed revision control system with an\n unusually rich command set that provides both high-level operations\n and full access to internals.\n \n-This is a dummy package which brings in all subpackages.\n+These are the core tools with minimal dependencies.\n \n-%package core\n-Summary:\tCore git tools\n+%package all\n+Summary:\tMeta-package to pull in all git tools\n Group:\t\tDevelopment/Tools\n-Requires:\tzlib >= 1.2, rsync, curl, less, openssh-clients, expat\n-Obsoletes:\tgit-p4\n-%description core\n+Requires:\tgit = %{version}-%{release}\n+Requires:\tgit-svn = %{version}-%{release}\n+Requires:\tgit-cvs = %{version}-%{release}\n+Requires:\tgit-arch = %{version}-%{release}\n+Requires:\tgit-email = %{version}-%{release}\n+Requires:\tgitk = %{version}-%{release}\n+Requires:\tgit-gui = %{version}-%{release}\n+Obsoletes:\tgit < %{version}-%{release}\n+\n+%description all\n Git is a fast, scalable, distributed revision control system with an\n unusually rich command set that provides both high-level operations\n and full access to internals.\n \n-These are the core tools with minimal dependencies.\n+This is a dummy package which brings in all subpackages.\n \n %package svn\n Summary:        Git tools for importing Subversion repositories\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, subversion\n+Requires:       git = %{version}-%{release}, subversion\n %description svn\n Git tools for importing Subversion repositories.\n \n %package cvs\n Summary:        Git tools for importing CVS repositories\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, cvs, cvsps\n+Requires:       git = %{version}-%{release}, cvs, cvsps\n %description cvs\n Git tools for importing CVS repositories.\n \n %package arch\n Summary:        Git tools for importing Arch repositories\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, tla\n+Requires:       git = %{version}-%{release}, tla\n %description arch\n Git tools for importing Arch repositories.\n \n %package email\n Summary:        Git tools for sending email\n Group:          Development/Tools\n-Requires:\tgit-core = %{version}-%{release}\n+Requires:\tgit = %{version}-%{release}\n %description email\n Git tools for sending email.\n \n %package gui\n Summary:        Git GUI tool\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, tk >= 8.4\n+Requires:       git = %{version}-%{release}, tk >= 8.4\n %description gui\n Git GUI tool\n \n %package -n gitk\n Summary:        Git revision tree visualiser ('gitk')\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, tk >= 8.4\n+Requires:       git = %{version}-%{release}, tk >= 8.4\n %description -n gitk\n Git revision tree visualiser ('gitk')\n \n %package -n perl-Git\n Summary:        Perl interface to Git\n Group:          Development/Libraries\n-Requires:       git-core = %{version}-%{release}\n+Requires:       git = %{version}-%{release}\n Requires:       perl(:MODULE_COMPAT_%(eval \"`%{__perl} -V:version`\"; echo $version))\n BuildRequires:  perl(Error)\n \n@@ -121,8 +124,12 @@ rm -rf $RPM_BUILD_ROOT%{_mandir}\n %clean\n rm -rf $RPM_BUILD_ROOT\n \n-%files\n-# These are no files in the root package\n+%files -f bin-man-doc-files\n+%defattr(-,root,root)\n+%{_datadir}/git-core/\n+%doc README COPYING Documentation/*.txt\n+%{!?_without_docs: %doc Documentation/*.html Documentation/howto}\n+%{!?_without_docs: %doc Documentation/technical}\n \n %files svn\n %defattr(-,root,root)\n@@ -173,14 +180,10 @@ rm -rf $RPM_BUILD_ROOT\n %files -n perl-Git -f perl-files\n %defattr(-,root,root)\n \n-%files core -f bin-man-doc-files\n-%defattr(-,root,root)\n-%{_datadir}/git-core/\n-%doc README COPYING Documentation/*.txt\n-%{!?_without_docs: %doc Documentation/*.html Documentation/howto}\n-%{!?_without_docs: %doc Documentation/technical}\n-\n %changelog\n+* Fri Feb 15 2008 Kristian HÃ¸gsberg <krh@redhat.com>\n+- Rename git-core to just git and rename meta package from git to git-all.\n+\n * Sun Feb 03 2008 James Bowes <jbowes@dangerouslyinc.com>\n - Add a BuildRequires for gettext\n \n-- \n1.5.4.1.123.g012f\n"},{"id":"68835","messageId":"m3tzkaau75.fsf@localhost.localdomain","threadId":"12115","inReplyTo":"1203100163-17509-1-git-send-email-krh@redhat.com","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-02-15T19:36:50Z","receivedAt":"2008-02-15T19:36:50Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Kristian Høgsberg <krh@redhat.com> writes:\n\n> So here's change to fix my favorite annoyance with the git rpm\n> packaging: don't pull in tla when I say yum install git!  The decision\n> to make 'git' a metapackage is to say the least unconventional and\n> continues to surprise people (here's today discussion:\n> http://marc.info/?t=120309228600004&r=1&w=2).\n> \n> I know it's late and most people who use the git rpms are used to installing\n> git-core by now, but myself and most of my Red Hat co-workers (who should\n> know a thing or two about rpm packaging) have been fooled by the 'git'\n> rpm that pulls in everything.  There's really no precendence for this, quite\n> the opposite: you wouldn't expect yum install gcc to pull in fortran, right?\n\nI think I'd rather have git RPM as metapackage, but not such wide\none. I'd like for git RPM to install git-core, git-email, git, git-gui\nand perl-Git; I agree that bits about interaction with other SCMs\nshould be not included in git (meta)package, as this requires to\nactually have all those SCMs...\n\nJust my 2 eurocents\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"68838","messageId":"47B5FF57.5080204@op5.se","threadId":"12115","inReplyTo":"1203100163-17509-1-git-send-email-krh@redhat.com","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-02-15T21:08:39Z","receivedAt":"2008-02-15T21:08:39Z","isPatch":true,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Kristian Høgsberg wrote:\n> ---\n> \n> So here's change to fix my favorite annoyance with the git rpm\n> packaging: don't pull in tla when I say yum install git!  The decision\n> to make 'git' a metapackage is to say the least unconventional and\n> continues to surprise people (here's today discussion:\n> http://marc.info/?t=120309228600004&r=1&w=2).\n> \n> I know it's late and most people who use the git rpms are used to installing\n> git-core by now, but myself and most of my Red Hat co-workers (who should\n> know a thing or two about rpm packaging) have been fooled by the 'git'\n> rpm that pulls in everything.  There's really no precendence for this, quite\n> the opposite: you wouldn't expect yum install gcc to pull in fortran, right?\n> \n> The patch below only affects people who know that 'git' is a metapackage\n> and actually use that to pull in everything (but who does?).  The patch\n> renames the 'git-core' rpm to just 'git', but adds a 'Provides: git-core'\n> there so people who have trained themselves to say yum install git-core\n> wont get burned.\n> \n\nNeat, and very nicely done. However, why not add \"git-extras\" package as\nmeta-package that does what just plain \"git\" package used to do, and\nmentioning the git-extras rpm in the %description of git's package?\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"68841","messageId":"1203111468.18847.1.camel@gaara.boston.redhat.com","threadId":"12115","inReplyTo":"47B5FF57.5080204@op5.se","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Kristian Høgsberg","fromEmail":"krh@redhat.com","sentAt":"2008-02-15T21:37:48Z","receivedAt":"2008-02-15T21:37:48Z","isPatch":true,"sender":{"key":"krh@redhat.com","avatar":"https://gravatar.com/avatar/763dee6f9594ac474f725b137a39565792928e583ddf59b32befc2907409027e?d=mp&s=160"},"body":"On Fri, 2008-02-15 at 22:08 +0100, Andreas Ericsson wrote:\n> Kristian Høgsberg wrote:\n> > ---\n> > \n> > So here's change to fix my favorite annoyance with the git rpm\n> > packaging: don't pull in tla when I say yum install git!  The decision\n> > to make 'git' a metapackage is to say the least unconventional and\n> > continues to surprise people (here's today discussion:\n> > http://marc.info/?t=120309228600004&r=1&w=2).\n> > \n> > I know it's late and most people who use the git rpms are used to installing\n> > git-core by now, but myself and most of my Red Hat co-workers (who should\n> > know a thing or two about rpm packaging) have been fooled by the 'git'\n> > rpm that pulls in everything.  There's really no precendence for this, quite\n> > the opposite: you wouldn't expect yum install gcc to pull in fortran, right?\n> > \n> > The patch below only affects people who know that 'git' is a metapackage\n> > and actually use that to pull in everything (but who does?).  The patch\n> > renames the 'git-core' rpm to just 'git', but adds a 'Provides: git-core'\n> > there so people who have trained themselves to say yum install git-core\n> > wont get burned.\n> > \n> \n> Neat, and very nicely done. However, why not add \"git-extras\" package as\n> meta-package that does what just plain \"git\" package used to do, and\n> mentioning the git-extras rpm in the %description of git's package?\n\nIt's already there, I called it git-all though.  Mentioning it in the\ngit rpm description is a good idea.  How about this wording:\n\n\"Git is a fast, scalable, distributed revision control system with an\nunusually rich command set that provides both high-level operations\nand full access to internals.\n\nThe git rpm installs the core tools with minimal dependencies.  To\ninstall all git packages, including tools for integrating with other\nSCMs, install the git-all meta-package.\"\n\nKristian\n"},{"id":"68889","messageId":"7vskztb88j.fsf@gitster.siamese.dyndns.org","threadId":"12115","inReplyTo":"1203100163-17509-1-git-send-email-krh@redhat.com","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-16T08:45:00Z","receivedAt":"2008-02-16T08:45:00Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Kristian Høgsberg <krh@redhat.com> writes:\n\n> ---\n>\n> So here's change to fix my favorite annoyance with the git rpm\n> packaging: don't pull in tla when I say yum install git!  The decision\n> to make 'git' a metapackage is to say the least unconventional and\n> continues to surprise people (here's today discussion:\n> http://marc.info/?t=120309228600004&r=1&w=2).\n>\n> I know it's late and most people who use the git rpms are used to installing\n> git-core by now, but myself and most of my Red Hat co-workers (who should\n> know a thing or two about rpm packaging) have been fooled by the 'git'\n> rpm that pulls in everything.  There's really no precendence for this, quite\n> the opposite: you wouldn't expect yum install gcc to pull in fortran, right?\n>\n> The patch below only affects people who know that 'git' is a metapackage\n> and actually use that to pull in everything (but who does?).  The patch\n> renames the 'git-core' rpm to just 'git', but adds a 'Provides: git-core'\n> there so people who have trained themselves to say yum install git-core\n> wont get burned.\n\nWhy all of these good information is below the three-dash lines\nand without Sign-off?\n\nThe spec file I ship in git.git was written by somebody else for\nLinus a long time ago, augmented with patches from others over\ntime, and I freely admit that I am RPM challenged.  I do not\nexactly know what I have been shipping, and I do not personally\nmanage an RPM based system.  Having no way of testing any\nchanges myself makes me first go hide whenever I see a patch to\nthe spec file and then re-approach the patch slowly, prodding\nwith ten-foot pole.  The only thing that is saving the world\nfrom disaster is that Distro people tend to have and do use\ntheir own spec file, not mine ;-)\n\nSo I am more than Ok with a patch like this from somebody whose\nRPM skills and common sense I can trust.\n\nI have to wonder where the git-p4 obsoletion went, though.\n"},{"id":"68957","messageId":"7vskzs2exj.fsf@gitster.siamese.dyndns.org","threadId":"12115","inReplyTo":"1203100163-17509-1-git-send-email-krh@redhat.com","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-17T07:57:28Z","receivedAt":"2008-02-17T07:57:28Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thanks for updates to the spec file, but I need a bit of help\nhere on two problems.\n\nIf I understand you correctly, it should now create \"git\"\npackage, instead of \"git-core\", that contains the really core\nparts, and other pieces such as \"git-svn\" and friends will stay\npretty much the same.  In addition, the new \"git\" package will\nalso say \"this provides git-core, so install this when the user\nasks to install git-core\".\n\nWhere does \"git-all\" you talked about in your message come into\nthe picture?  The \"make rpm\" procedure produced these files for\nme:\n\nWrote: /home/junio/rpms/SRPMS/git-1.5.4.2-1.src.rpm\nWrote: /home/junio/rpms/RPMS/i386/git-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/git-svn-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/git-cvs-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/git-arch-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/git-email-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/git-gui-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/gitk-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/perl-Git-1.5.4.2-1.i386.rpm\nWrote: /home/junio/rpms/RPMS/i386/git-debuginfo-1.5.4.2-1.i386.rpm\n\nAfter I throw in these 9 i386.rpm files in my local yum\nrepository and say \"yum install git-all\", I get \"No Match for\nargument: git-all\".  This is problem #1.\n\n\"yum install git\" and \"yum install git-core\" do not give such an\nerror but the latter gives quite a bunch of errors (\"yum install\ngit\" goes alright).  This is problem #2.\n\nNote that I want to make sure that the upgrade to go smoothly,\nso I populated both 1.5.4 RPM and 1.5.4.2 RPM in the repository,\nwhich is to emulate what we do on k.org machines.\n\nThe errors start like this.  It looks to me that \"Provides:\ngit-core\" is not being honored.\n\nDependencies Resolved\n\n=============================================================================\n Package                 Arch       Version          Repository        Size\n=============================================================================\nInstalling:\n git-core                i386       1.5.4-1          local             3.6 M\nInstalling for dependencies:\n git                     i386       1.5.4.2-1        local             3.6 M\n perl-Git                i386       1.5.4.2-1        local              14 k\n\nTransaction Summary\n=============================================================================\nInstall      3 Package(s)\nUpdate       0 Package(s)\nRemove       0 Package(s)\nTotal download size: 7.3 M\nIs this ok [y/N]: y\nDownloading Packages:\nRunning Transaction Test\nFinished Transaction Test\n\n\nTransaction Check Error:   file /usr/bin/git conflicts between attempted installs of git-1.5.4.2-1 and git-core-1.5.4-1\n  file /usr/bin/git-add conflicts between attempted installs of git-1.5.4.2-1 and git-core-1.5.4-1\n  file /usr/bin/git-am conflicts between attempted installs of git-1.5.4.2-1 and git-core-1.5.4-1\n  ...\n"},{"id":"69156","messageId":"76718490802180651h2ad61c4cg50bae97000957397@mail.gmail.com","threadId":"12115","inReplyTo":"7vskzs2exj.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Jay Soffian","fromEmail":"jaysoffian@gmail.com","sentAt":"2008-02-18T14:51:02Z","receivedAt":"2008-02-18T14:51:02Z","isPatch":true,"sender":{"key":"jaysoffian@gmail.com","avatar":"https://avatars.githubusercontent.com/u/155970?v=4"},"body":"On Feb 17, 2008 2:57 AM, Junio C Hamano <gitster@pobox.com> wrote:\n\n> \"yum install git\" and \"yum install git-core\" do not give such an\n> error but the latter gives quite a bunch of errors (\"yum install\n> git\" goes alright).  This is problem #2.\n\nYou probably want \"yum upgrade git-core\".\n\nThe \"problem\" is that yum by default doesn't process RPM renames (obsoletes)\nunless you either have obsoletes=1 in your yum.conf, use \"yum --obsoletes\nupdate\" or use \"yum upgrade\".\n\nj.\n"},{"id":"69169","messageId":"1203350676.4082.0.camel@gaara.boston.redhat.com","threadId":"12115","inReplyTo":"76718490802180651h2ad61c4cg50bae97000957397@mail.gmail.com","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Kristian Høgsberg","fromEmail":"krh@redhat.com","sentAt":"2008-02-18T16:04:36Z","receivedAt":"2008-02-18T16:04:36Z","isPatch":true,"sender":{"key":"krh@redhat.com","avatar":"https://gravatar.com/avatar/763dee6f9594ac474f725b137a39565792928e583ddf59b32befc2907409027e?d=mp&s=160"},"body":"On Mon, 2008-02-18 at 09:51 -0500, Jay Soffian wrote:\n> On Feb 17, 2008 2:57 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> \n> > \"yum install git\" and \"yum install git-core\" do not give such an\n> > error but the latter gives quite a bunch of errors (\"yum install\n> > git\" goes alright).  This is problem #2.\n> \n> You probably want \"yum upgrade git-core\".\n> \n> The \"problem\" is that yum by default doesn't process RPM renames (obsoletes)\n> unless you either have obsoletes=1 in your yum.conf, use \"yum --obsoletes\n> update\" or use \"yum upgrade\".\n\nAh, that's what it is.  Thanks, I wasn't aware of this issue.\n\nKristian\n"},{"id":"69183","messageId":"7v7ih2p0wk.fsf@gitster.siamese.dyndns.org","threadId":"12115","inReplyTo":"1203350676.4082.0.camel@gaara.boston.redhat.com","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-18T18:36:27Z","receivedAt":"2008-02-18T18:36:27Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Kristian Høgsberg <krh@redhat.com> writes:\n\n> On Mon, 2008-02-18 at 09:51 -0500, Jay Soffian wrote:\n>> On Feb 17, 2008 2:57 AM, Junio C Hamano <gitster@pobox.com> wrote:\n>> \n>> > \"yum install git\" and \"yum install git-core\" do not give such an\n>> > error but the latter gives quite a bunch of errors (\"yum install\n>> > git\" goes alright).  This is problem #2.\n>> \n>> You probably want \"yum upgrade git-core\".\n>> \n>> The \"problem\" is that yum by default doesn't process RPM renames (obsoletes)\n>> unless you either have obsoletes=1 in your yum.conf, use \"yum --obsoletes\n>> update\" or use \"yum upgrade\".\n>\n> Ah, that's what it is.  Thanks, I wasn't aware of this issue.\n\nDoes that mean that the test I did and the problem I saw were\nend-user errors and that there is no proble with your patch and\nI can use it as-is to cut 1.5.4.3 and future ones?\n\nThat's a great news.\n\nBut perhaps we would need some description/warning to help end\nusers as clueless as I am with respect to yum in the release\nnotes and/or announcements?\n\nCould you resend the patch with a commit log message that I can\nlater reuse parts from for such a purpose, with a sign-off\nplease?\n"},{"id":"69193","messageId":"1203361247.4082.8.camel@gaara.boston.redhat.com","threadId":"12115","inReplyTo":"7v7ih2p0wk.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Kristian Høgsberg","fromEmail":"krh@redhat.com","sentAt":"2008-02-18T19:00:47Z","receivedAt":"2008-02-18T19:00:47Z","isPatch":true,"sender":{"key":"krh@redhat.com","avatar":"https://gravatar.com/avatar/763dee6f9594ac474f725b137a39565792928e583ddf59b32befc2907409027e?d=mp&s=160"},"body":"\nOn Mon, 2008-02-18 at 10:36 -0800, Junio C Hamano wrote:\n> Kristian Høgsberg <krh@redhat.com> writes:\n> \n> > On Mon, 2008-02-18 at 09:51 -0500, Jay Soffian wrote:\n> >> On Feb 17, 2008 2:57 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> >> \n> >> > \"yum install git\" and \"yum install git-core\" do not give such an\n> >> > error but the latter gives quite a bunch of errors (\"yum install\n> >> > git\" goes alright).  This is problem #2.\n> >> \n> >> You probably want \"yum upgrade git-core\".\n> >> \n> >> The \"problem\" is that yum by default doesn't process RPM renames (obsoletes)\n> >> unless you either have obsoletes=1 in your yum.conf, use \"yum --obsoletes\n> >> update\" or use \"yum upgrade\".\n> >\n> > Ah, that's what it is.  Thanks, I wasn't aware of this issue.\n> \n> Does that mean that the test I did and the problem I saw were\n> end-user errors and that there is no proble with your patch and\n> I can use it as-is to cut 1.5.4.3 and future ones?\n> \n> That's a great news.\n> \n> But perhaps we would need some description/warning to help end\n> users as clueless as I am with respect to yum in the release\n> notes and/or announcements?\n\nWe could, but could you provide a little more detail about the system\nyou tested on?  I have \n\n  obsoletes=1\n\nin my /etc/yum.conf, which has been default in Fedora since October\n2004.\n\n> Could you resend the patch with a commit log message that I can\n> later reuse parts from for such a purpose, with a sign-off\n> please?\n\nYup, I'm getting a new patch together to address the comments from your\nearlier mail.  Also, I had the git-all package in there, but it turns\nout that without a %files section, rpm doesn't create the rpm.  New\npatch coming up in a few minutes.\n\nKristian\n"},{"id":"69220","messageId":"1203384325-32097-1-git-send-email-krh@redhat.com","threadId":"12115","inReplyTo":"7v7ih2p0wk.fsf@gitster.siamese.dyndns.org","subject":"[PATCH] Rename git-core rpm to just git and rename the meta-pacakge to git-all.","fromName":"Kristian Høgsberg","fromEmail":"krh@redhat.com","sentAt":"2008-02-19T01:25:25Z","receivedAt":"2008-02-19T01:25:25Z","isPatch":true,"sender":{"key":"krh@redhat.com","avatar":"https://gravatar.com/avatar/763dee6f9594ac474f725b137a39565792928e583ddf59b32befc2907409027e?d=mp&s=160"},"body":"This fixes my favorite annoyance with the git rpm packaging: don't pull\nin tla when I say yum install git!  You wouldn't expect yum install gcc\nto pull in gcc-gfortran, right?\n\nWith this change, and blanket 'yum update' will automatically pull in the\nnew 'git' package and push out the old 'git-core', and if the old 'git'\npackage was installed 'git-all' will be pulled in instead.  A couple of\nthings do break though: 'yum update git-core', because yum behaves\ndifferently when given a specific package name - it doesn't follow obsoletes.\n\nInstead, 'yum install git' will pull in the new git rpm, which will then\npush out the old 'git-core'.  Similarly, to get the newest version of\nthe meta package, 'yum install git-all' will install git-all, which then\npushes out the old 'git' meta package.\n\nSigned-off-by: Kristian Høgsberg <krh@redhat.com>\n---\n\nHere's the updated patch.  I did spend some time trying to better handle\nthe 'yum update git-core' case, but yum doesn't work that way.  When an\nexplicit package name is given, yum doesn't use Obsoletes to find the\nlatest version, but it does for just 'yum update'.  Yes, I think yum is\nbroken in that respect.\n\nOther changes: added back the git-p4 obsoletion I dropped, added parts of\nmy rant to the commit message, added an empty %files section for the\ngit-all package so it's actually created, hard code the obsoletes versions\nto < 1.5.4.2.\n\nI tried 'yum install git-core' on a system with no git packages as you\ndescribed in your email, and both rpm versions in the repo, but I didn't\nsee the errors you mentioned, I just got 'git' installed.  Perhaps you\nneed to issue a 'yum clean all' and rebuild the yum repo metadata?\n\nKristian\n\n[ Sent to Junio earlier, forgot to Cc the list ]\n\n git.spec.in |   69 +++++++++++++++++++++++++++++++++-------------------------\n 1 files changed, 39 insertions(+), 30 deletions(-)\n\ndiff --git a/git.spec.in b/git.spec.in\nindex 3f9f888..97a26be 100644\n--- a/git.spec.in\n+++ b/git.spec.in\n@@ -3,7 +3,7 @@\n Name: \t\tgit\n Version: \t@@VERSION@@\n Release: \t1%{?dist}\n-Summary:  \tGit core and tools\n+Summary:  \tCore git tools\n License: \tGPL\n Group: \t\tDevelopment/Tools\n URL: \t\thttp://kernel.org/pub/software/scm/git/\n@@ -11,80 +11,86 @@ Source: \thttp://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz\n BuildRequires:\tzlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel, gettext  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}\n BuildRoot:\t%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)\n \n-Requires:\tgit-core = %{version}-%{release}\n-Requires:\tgit-svn = %{version}-%{release}\n-Requires:\tgit-cvs = %{version}-%{release}\n-Requires:\tgit-arch = %{version}-%{release}\n-Requires:\tgit-email = %{version}-%{release}\n-Requires:\tgitk = %{version}-%{release}\n-Requires:\tgit-gui = %{version}-%{release}\n Requires:\tperl-Git = %{version}-%{release}\n+Requires:\tzlib >= 1.2, rsync, curl, less, openssh-clients, expat\n+Provides:\tgit-core = %{version}-%{release}\n+Obsoletes:\tgit-core <= 1.5.4.2\n+Obsoletes:\tgit-p4\n \n %description\n Git is a fast, scalable, distributed revision control system with an\n unusually rich command set that provides both high-level operations\n and full access to internals.\n \n-This is a dummy package which brings in all subpackages.\n+The git rpm installs the core tools with minimal dependencies.  To\n+install all git packages, including tools for integrating with other\n+SCMs, install the git-all meta-package.\n \n-%package core\n-Summary:\tCore git tools\n+%package all\n+Summary:\tMeta-package to pull in all git tools\n Group:\t\tDevelopment/Tools\n-Requires:\tzlib >= 1.2, rsync, curl, less, openssh-clients, expat\n-Obsoletes:\tgit-p4\n-%description core\n+Requires:\tgit = %{version}-%{release}\n+Requires:\tgit-svn = %{version}-%{release}\n+Requires:\tgit-cvs = %{version}-%{release}\n+Requires:\tgit-arch = %{version}-%{release}\n+Requires:\tgit-email = %{version}-%{release}\n+Requires:\tgitk = %{version}-%{release}\n+Requires:\tgit-gui = %{version}-%{release}\n+Obsoletes:\tgit <= 1.5.4.2\n+\n+%description all\n Git is a fast, scalable, distributed revision control system with an\n unusually rich command set that provides both high-level operations\n and full access to internals.\n \n-These are the core tools with minimal dependencies.\n+This is a dummy package which brings in all subpackages.\n \n %package svn\n Summary:        Git tools for importing Subversion repositories\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, subversion\n+Requires:       git = %{version}-%{release}, subversion\n %description svn\n Git tools for importing Subversion repositories.\n \n %package cvs\n Summary:        Git tools for importing CVS repositories\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, cvs, cvsps\n+Requires:       git = %{version}-%{release}, cvs, cvsps\n %description cvs\n Git tools for importing CVS repositories.\n \n %package arch\n Summary:        Git tools for importing Arch repositories\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, tla\n+Requires:       git = %{version}-%{release}, tla\n %description arch\n Git tools for importing Arch repositories.\n \n %package email\n Summary:        Git tools for sending email\n Group:          Development/Tools\n-Requires:\tgit-core = %{version}-%{release}\n+Requires:\tgit = %{version}-%{release}\n %description email\n Git tools for sending email.\n \n %package gui\n Summary:        Git GUI tool\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, tk >= 8.4\n+Requires:       git = %{version}-%{release}, tk >= 8.4\n %description gui\n Git GUI tool\n \n %package -n gitk\n Summary:        Git revision tree visualiser ('gitk')\n Group:          Development/Tools\n-Requires:       git-core = %{version}-%{release}, tk >= 8.4\n+Requires:       git = %{version}-%{release}, tk >= 8.4\n %description -n gitk\n Git revision tree visualiser ('gitk')\n \n %package -n perl-Git\n Summary:        Perl interface to Git\n Group:          Development/Libraries\n-Requires:       git-core = %{version}-%{release}\n+Requires:       git = %{version}-%{release}\n Requires:       perl(:MODULE_COMPAT_%(eval \"`%{__perl} -V:version`\"; echo $version))\n BuildRequires:  perl(Error)\n \n@@ -121,8 +127,12 @@ rm -rf $RPM_BUILD_ROOT%{_mandir}\n %clean\n rm -rf $RPM_BUILD_ROOT\n \n-%files\n-# These are no files in the root package\n+%files -f bin-man-doc-files\n+%defattr(-,root,root)\n+%{_datadir}/git-core/\n+%doc README COPYING Documentation/*.txt\n+%{!?_without_docs: %doc Documentation/*.html Documentation/howto}\n+%{!?_without_docs: %doc Documentation/technical}\n \n %files svn\n %defattr(-,root,root)\n@@ -173,14 +183,13 @@ rm -rf $RPM_BUILD_ROOT\n %files -n perl-Git -f perl-files\n %defattr(-,root,root)\n \n-%files core -f bin-man-doc-files\n-%defattr(-,root,root)\n-%{_datadir}/git-core/\n-%doc README COPYING Documentation/*.txt\n-%{!?_without_docs: %doc Documentation/*.html Documentation/howto}\n-%{!?_without_docs: %doc Documentation/technical}\n+%files all\n+# No files for you!\n \n %changelog\n+* Fri Feb 15 2008 Kristian Høgsberg <krh@redhat.com>\n+- Rename git-core to just git and rename meta package from git to git-all.\n+\n * Sun Feb 03 2008 James Bowes <jbowes@dangerouslyinc.com>\n - Add a BuildRequires for gettext\n \n-- \n1.5.4.1.123.gf3c6\n"}]}