Skip to content

Commit 7c33d3a

Browse files
Kristian Høgsberggitster
authored andcommitted
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>
1 parent 066a526 commit 7c33d3a

File tree

1 file changed

+39
-30
lines changed

1 file changed

+39
-30
lines changed

git.spec.in

Lines changed: 39 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,88 +3,94 @@
33
Name: git
44
Version: @@VERSION@@
55
Release: 1%{?dist}
6-
Summary: Git core and tools
6+
Summary: Core git tools
77
License: GPL
88
Group: Development/Tools
99
URL: http://kernel.org/pub/software/scm/git/
1010
Source: http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz
1111
BuildRequires: zlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel, gettext %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
1212
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
1313

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}
2114
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
2219

2320
%description
2421
Git is a fast, scalable, distributed revision control system with an
2522
unusually rich command set that provides both high-level operations
2623
and full access to internals.
2724

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.
2928

30-
%package core
31-
Summary: Core git tools
29+
%package all
30+
Summary: Meta-package to pull in all git tools
3231
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
3642
Git is a fast, scalable, distributed revision control system with an
3743
unusually rich command set that provides both high-level operations
3844
and full access to internals.
3945

40-
These are the core tools with minimal dependencies.
46+
This is a dummy package which brings in all subpackages.
4147

4248
%package svn
4349
Summary: Git tools for importing Subversion repositories
4450
Group: Development/Tools
45-
Requires: git-core = %{version}-%{release}, subversion
51+
Requires: git = %{version}-%{release}, subversion
4652
%description svn
4753
Git tools for importing Subversion repositories.
4854

4955
%package cvs
5056
Summary: Git tools for importing CVS repositories
5157
Group: Development/Tools
52-
Requires: git-core = %{version}-%{release}, cvs, cvsps
58+
Requires: git = %{version}-%{release}, cvs, cvsps
5359
%description cvs
5460
Git tools for importing CVS repositories.
5561

5662
%package arch
5763
Summary: Git tools for importing Arch repositories
5864
Group: Development/Tools
59-
Requires: git-core = %{version}-%{release}, tla
65+
Requires: git = %{version}-%{release}, tla
6066
%description arch
6167
Git tools for importing Arch repositories.
6268

6369
%package email
6470
Summary: Git tools for sending email
6571
Group: Development/Tools
66-
Requires: git-core = %{version}-%{release}
72+
Requires: git = %{version}-%{release}
6773
%description email
6874
Git tools for sending email.
6975

7076
%package gui
7177
Summary: Git GUI tool
7278
Group: Development/Tools
73-
Requires: git-core = %{version}-%{release}, tk >= 8.4
79+
Requires: git = %{version}-%{release}, tk >= 8.4
7480
%description gui
7581
Git GUI tool
7682

7783
%package -n gitk
7884
Summary: Git revision tree visualiser ('gitk')
7985
Group: Development/Tools
80-
Requires: git-core = %{version}-%{release}, tk >= 8.4
86+
Requires: git = %{version}-%{release}, tk >= 8.4
8187
%description -n gitk
8288
Git revision tree visualiser ('gitk')
8389

8490
%package -n perl-Git
8591
Summary: Perl interface to Git
8692
Group: Development/Libraries
87-
Requires: git-core = %{version}-%{release}
93+
Requires: git = %{version}-%{release}
8894
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
8995
BuildRequires: perl(Error)
9096

@@ -121,8 +127,12 @@ rm -rf $RPM_BUILD_ROOT%{_mandir}
121127
%clean
122128
rm -rf $RPM_BUILD_ROOT
123129

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}
126136

127137
%files svn
128138
%defattr(-,root,root)
@@ -173,14 +183,13 @@ rm -rf $RPM_BUILD_ROOT
173183
%files -n perl-Git -f perl-files
174184
%defattr(-,root,root)
175185

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!
182188

183189
%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+
184193
* Sun Feb 03 2008 James Bowes <jbowes@dangerouslyinc.com>
185194
- Add a BuildRequires for gettext
186195

0 commit comments

Comments
 (0)