@matheusbsbs / matheus-bagliano / commits / 7c33d3a511
Fork 0

Rename git-core rpm to just git and rename the meta-pacakge to git-all.

This fixes my favorite annoyance with the git rpm packaging: don't pull in tla when I say yum install git! You wouldn't expect yum install gcc to pull in gcc-gfortran, right? With this change, and blanket 'yum update' will automatically pull in the new 'git' package and push out the old 'git-core', and if the old 'git' package was installed 'git-all' will be pulled in instead. A couple of things do break though: 'yum update git-core', because yum behaves differently when given a specific package name - it doesn't follow obsoletes. Instead, 'yum install git' will pull in the new git rpm, which will then push out the old 'git-core'. Similarly, to get the newest version of the meta package, 'yum install git-all' will install git-all, which then pushes out the old 'git' meta package. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Kristian Høgsberg committed Feb 18, 2008 at 18:11 UTC 7c33d3a5116fd72877802288cca6735642bb5d6f
1 file changed +39 -30
git.spec.in
+39 -30
@@ -3,7 +3,7 @@
3 Name: git
4 Version: @@VERSION@@
5 Release: 1%{?dist}
6 -Summary: Git core and tools
6 +Summary: Core git tools
7 License: GPL
8 Group: Development/Tools
9 URL: http://kernel.org/pub/software/scm/git/
@@ -11,80 +11,86 @@ Source: http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz
11 BuildRequires: zlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel, gettext %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
12 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
13
14 -Requires: git-core = %{version}-%{release}
15 -Requires: git-svn = %{version}-%{release}
16 -Requires: git-cvs = %{version}-%{release}
17 -Requires: git-arch = %{version}-%{release}
18 -Requires: git-email = %{version}-%{release}
19 -Requires: gitk = %{version}-%{release}
20 -Requires: git-gui = %{version}-%{release}
14 Requires: perl-Git = %{version}-%{release}
15 +Requires: zlib >= 1.2, rsync, curl, less, openssh-clients, expat
16 +Provides: git-core = %{version}-%{release}
17 +Obsoletes: git-core <= 1.5.4.2
18 +Obsoletes: git-p4
19
20 %description
21 Git is a fast, scalable, distributed revision control system with an
22 unusually rich command set that provides both high-level operations
23 and full access to internals.
24
28 -This is a dummy package which brings in all subpackages.
25 +The git rpm installs the core tools with minimal dependencies. To
26 +install all git packages, including tools for integrating with other
27 +SCMs, install the git-all meta-package.
28
30 -%package core
31 -Summary: Core git tools
29 +%package all
30 +Summary: Meta-package to pull in all git tools
31 Group: Development/Tools
33 -Requires: zlib >= 1.2, rsync, curl, less, openssh-clients, expat
34 -Obsoletes: git-p4
35 -%description core
32 +Requires: git = %{version}-%{release}
33 +Requires: git-svn = %{version}-%{release}
34 +Requires: git-cvs = %{version}-%{release}
35 +Requires: git-arch = %{version}-%{release}
36 +Requires: git-email = %{version}-%{release}
37 +Requires: gitk = %{version}-%{release}
38 +Requires: git-gui = %{version}-%{release}
39 +Obsoletes: git <= 1.5.4.2
40 +
41 +%description all
42 Git is a fast, scalable, distributed revision control system with an
43 unusually rich command set that provides both high-level operations
44 and full access to internals.
45
40 -These are the core tools with minimal dependencies.
46 +This is a dummy package which brings in all subpackages.
47
48 %package svn
49 Summary: Git tools for importing Subversion repositories
50 Group: Development/Tools
45 -Requires: git-core = %{version}-%{release}, subversion
51 +Requires: git = %{version}-%{release}, subversion
52 %description svn
53 Git tools for importing Subversion repositories.
54
55 %package cvs
56 Summary: Git tools for importing CVS repositories
57 Group: Development/Tools
52 -Requires: git-core = %{version}-%{release}, cvs, cvsps
58 +Requires: git = %{version}-%{release}, cvs, cvsps
59 %description cvs
60 Git tools for importing CVS repositories.
61
62 %package arch
63 Summary: Git tools for importing Arch repositories
64 Group: Development/Tools
59 -Requires: git-core = %{version}-%{release}, tla
65 +Requires: git = %{version}-%{release}, tla
66 %description arch
67 Git tools for importing Arch repositories.
68
69 %package email
70 Summary: Git tools for sending email
71 Group: Development/Tools
66 -Requires: git-core = %{version}-%{release}
72 +Requires: git = %{version}-%{release}
73 %description email
74 Git tools for sending email.
75
76 %package gui
77 Summary: Git GUI tool
78 Group: Development/Tools
73 -Requires: git-core = %{version}-%{release}, tk >= 8.4
79 +Requires: git = %{version}-%{release}, tk >= 8.4
80 %description gui
81 Git GUI tool
82
83 %package -n gitk
84 Summary: Git revision tree visualiser ('gitk')
85 Group: Development/Tools
80 -Requires: git-core = %{version}-%{release}, tk >= 8.4
86 +Requires: git = %{version}-%{release}, tk >= 8.4
87 %description -n gitk
88 Git revision tree visualiser ('gitk')
89
90 %package -n perl-Git
91 Summary: Perl interface to Git
92 Group: Development/Libraries
87 -Requires: git-core = %{version}-%{release}
93 +Requires: git = %{version}-%{release}
94 Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
95 BuildRequires: perl(Error)
96
@@ -121,8 +127,12 @@ rm -rf $RPM_BUILD_ROOT%{_mandir}
127 %clean
128 rm -rf $RPM_BUILD_ROOT
129
124 -%files
125 -# These are no files in the root package
130 +%files -f bin-man-doc-files
131 +%defattr(-,root,root)
132 +%{_datadir}/git-core/
133 +%doc README COPYING Documentation/*.txt
134 +%{!?_without_docs: %doc Documentation/*.html Documentation/howto}
135 +%{!?_without_docs: %doc Documentation/technical}
136
137 %files svn
138 %defattr(-,root,root)
@@ -173,14 +183,13 @@ rm -rf $RPM_BUILD_ROOT
183 %files -n perl-Git -f perl-files
184 %defattr(-,root,root)
185
176 -%files core -f bin-man-doc-files
177 -%defattr(-,root,root)
178 -%{_datadir}/git-core/
179 -%doc README COPYING Documentation/*.txt
180 -%{!?_without_docs: %doc Documentation/*.html Documentation/howto}
181 -%{!?_without_docs: %doc Documentation/technical}
186 +%files all
187 +# No files for you!
188
189 %changelog
190 +* Fri Feb 15 2008 Kristian Høgsberg <krh@redhat.com>
191 +- Rename git-core to just git and rename meta package from git to git-all.
192 +
193 * Sun Feb 03 2008 James Bowes <jbowes@dangerouslyinc.com>
194 - Add a BuildRequires for gettext
195