git.spec.inon commit expose a helper function peel_to_type(). (8177631)
   1# Pass --without docs to rpmbuild if you don't want the documentation
   2
   3Name:           git
   4Version:        @@VERSION@@
   5Release:        1%{?dist}
   6Summary:        Git core and tools
   7License:        GPL
   8Group:          Development/Tools
   9URL:            http://kernel.org/pub/software/scm/git/
  10Source:         http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz
  11BuildRequires:  zlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel, gettext  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
  12BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
  13
  14Requires:       git-core = %{version}-%{release}
  15Requires:       git-svn = %{version}-%{release}
  16Requires:       git-cvs = %{version}-%{release}
  17Requires:       git-arch = %{version}-%{release}
  18Requires:       git-email = %{version}-%{release}
  19Requires:       gitk = %{version}-%{release}
  20Requires:       git-gui = %{version}-%{release}
  21Requires:       perl-Git = %{version}-%{release}
  22
  23%description
  24Git is a fast, scalable, distributed revision control system with an
  25unusually rich command set that provides both high-level operations
  26and full access to internals.
  27
  28This is a dummy package which brings in all subpackages.
  29
  30%package core
  31Summary:        Core git tools
  32Group:          Development/Tools
  33Requires:       zlib >= 1.2, rsync, curl, less, openssh-clients, expat
  34Obsoletes:      git-p4
  35%description core
  36Git is a fast, scalable, distributed revision control system with an
  37unusually rich command set that provides both high-level operations
  38and full access to internals.
  39
  40These are the core tools with minimal dependencies.
  41
  42%package svn
  43Summary:        Git tools for importing Subversion repositories
  44Group:          Development/Tools
  45Requires:       git-core = %{version}-%{release}, subversion
  46%description svn
  47Git tools for importing Subversion repositories.
  48
  49%package cvs
  50Summary:        Git tools for importing CVS repositories
  51Group:          Development/Tools
  52Requires:       git-core = %{version}-%{release}, cvs, cvsps
  53%description cvs
  54Git tools for importing CVS repositories.
  55
  56%package arch
  57Summary:        Git tools for importing Arch repositories
  58Group:          Development/Tools
  59Requires:       git-core = %{version}-%{release}, tla
  60%description arch
  61Git tools for importing Arch repositories.
  62
  63%package email
  64Summary:        Git tools for sending email
  65Group:          Development/Tools
  66Requires:       git-core = %{version}-%{release}
  67%description email
  68Git tools for sending email.
  69
  70%package gui
  71Summary:        Git GUI tool
  72Group:          Development/Tools
  73Requires:       git-core = %{version}-%{release}, tk >= 8.4
  74%description gui
  75Git GUI tool
  76
  77%package -n gitk
  78Summary:        Git revision tree visualiser ('gitk')
  79Group:          Development/Tools
  80Requires:       git-core = %{version}-%{release}, tk >= 8.4
  81%description -n gitk
  82Git revision tree visualiser ('gitk')
  83
  84%package -n perl-Git
  85Summary:        Perl interface to Git
  86Group:          Development/Libraries
  87Requires:       git-core = %{version}-%{release}
  88Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
  89BuildRequires:  perl(Error)
  90
  91%description -n perl-Git
  92Perl interface to Git
  93
  94%define path_settings ETC_GITCONFIG=/etc/gitconfig prefix=%{_prefix} mandir=%{_mandir} htmldir=%{_docdir}/%{name}-core-%{version}
  95
  96%prep
  97%setup -q
  98
  99%build
 100make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" \
 101     %{path_settings} \
 102     all %{!?_without_docs: doc}
 103
 104%install
 105rm -rf $RPM_BUILD_ROOT
 106make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" DESTDIR=$RPM_BUILD_ROOT \
 107     %{path_settings} \
 108     INSTALLDIRS=vendor install %{!?_without_docs: install-doc}
 109find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
 110find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';'
 111find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} ';'
 112
 113(find $RPM_BUILD_ROOT%{_bindir} -type f | grep -vE "archimport|svn|cvs|email|gitk|git-gui|git-citool" | sed -e s@^$RPM_BUILD_ROOT@@)               > bin-man-doc-files
 114(find $RPM_BUILD_ROOT%{perl_vendorlib} -type f | sed -e s@^$RPM_BUILD_ROOT@@) >> perl-files
 115%if %{!?_without_docs:1}0
 116(find $RPM_BUILD_ROOT%{_mandir} $RPM_BUILD_ROOT/Documentation -type f | grep -vE "archimport|svn|git-cvs|email|gitk|git-gui|git-citool" | sed -e s@^$RPM_BUILD_ROOT@@ -e 's/$/*/' ) >> bin-man-doc-files
 117%else
 118rm -rf $RPM_BUILD_ROOT%{_mandir}
 119%endif
 120
 121%clean
 122rm -rf $RPM_BUILD_ROOT
 123
 124%files
 125# These are no files in the root package
 126
 127%files svn
 128%defattr(-,root,root)
 129%{_bindir}/*svn*
 130%doc Documentation/*svn*.txt
 131%{!?_without_docs: %{_mandir}/man1/*svn*.1*}
 132%{!?_without_docs: %doc Documentation/*svn*.html }
 133
 134%files cvs
 135%defattr(-,root,root)
 136%doc Documentation/*git-cvs*.txt
 137%{_bindir}/*cvs*
 138%{!?_without_docs: %{_mandir}/man1/*cvs*.1*}
 139%{!?_without_docs: %doc Documentation/*git-cvs*.html }
 140
 141%files arch
 142%defattr(-,root,root)
 143%doc Documentation/git-archimport.txt
 144%{_bindir}/git-archimport
 145%{!?_without_docs: %{_mandir}/man1/git-archimport.1*}
 146%{!?_without_docs: %doc Documentation/git-archimport.html }
 147
 148%files email
 149%defattr(-,root,root)
 150%doc Documentation/*email*.txt
 151%{_bindir}/*email*
 152%{!?_without_docs: %{_mandir}/man1/*email*.1*}
 153%{!?_without_docs: %doc Documentation/*email*.html }
 154
 155%files gui
 156%defattr(-,root,root)
 157%{_bindir}/git-gui
 158%{_bindir}/git-citool
 159%{_datadir}/git-gui/
 160%{!?_without_docs: %{_mandir}/man1/git-gui.1*}
 161%{!?_without_docs: %doc Documentation/git-gui.html}
 162%{!?_without_docs: %{_mandir}/man1/git-citool.1*}
 163%{!?_without_docs: %doc Documentation/git-citool.html}
 164
 165%files -n gitk
 166%defattr(-,root,root)
 167%doc Documentation/*gitk*.txt
 168%{_bindir}/*gitk*
 169%{_datadir}/gitk/
 170%{!?_without_docs: %{_mandir}/man1/*gitk*.1*}
 171%{!?_without_docs: %doc Documentation/*gitk*.html }
 172
 173%files -n perl-Git -f perl-files
 174%defattr(-,root,root)
 175
 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}
 182
 183%changelog
 184* Sun Feb 03 2008 James Bowes <jbowes@dangerouslyinc.com>
 185- Add a BuildRequires for gettext
 186
 187* Fri Jan 11 2008 Junio C Hamano <gitster@pobox.com>
 188- Include gitk message files
 189
 190* Sun Jan 06 2008 James Bowes <jbowes@dangerouslyinc.com>
 191- Make the metapackage require the same version of the subpackages.
 192
 193* Wed Dec 12 2007 Junio C Hamano <gitster@pobox.com>
 194- Adjust htmldir to point at /usr/share/doc/git-core-$version/
 195
 196* Sun Jul 15 2007 Sean Estabrooks <seanlkml@sympatico.ca>
 197- Removed p4import.
 198
 199* Tue Jun 26 2007 Quy Tonthat <qtonthat@gmail.com>
 200- Fixed problems looking for wrong manpages.
 201
 202* Thu Jun 21 2007 Shawn O. Pearce <spearce@spearce.org>
 203- Added documentation files for git-gui
 204
 205* Tue May 13 2007 Quy Tonthat <qtonthat@gmail.com>
 206- Added lib files for git-gui
 207- Added Documentation/technical (As needed by Git Users Manual)
 208
 209* Tue May 8 2007 Quy Tonthat <qtonthat@gmail.com>
 210- Added howto files
 211
 212* Tue Mar 27 2007 Eygene Ryabinkin <rea-git@codelabs.ru>
 213- Added the git-p4 package: Perforce import stuff.
 214
 215* Mon Feb 13 2007 Nicolas Pitre <nico@cam.org>
 216- Update core package description (Git isn't as stupid as it used to be)
 217
 218* Mon Feb 12 2007 Junio C Hamano <junkio@cox.net>
 219- Add git-gui and git-citool.
 220
 221* Mon Nov 14 2005 H. Peter Anvin <hpa@zytor.com> 0.99.9j-1
 222- Change subpackage names to git-<name> instead of git-core-<name>
 223- Create empty root package which brings in all subpackages
 224- Rename git-tk -> gitk
 225
 226* Thu Nov 10 2005 Chris Wright <chrisw@osdl.org> 0.99.9g-1
 227- zlib dependency fix
 228- Minor cleanups from split
 229- Move arch import to separate package as well
 230
 231* Tue Sep 27 2005 Jim Radford <radford@blackbean.org>
 232- Move programs with non-standard dependencies (svn, cvs, email)
 233  into separate packages
 234
 235* Tue Sep 27 2005 H. Peter Anvin <hpa@zytor.com>
 236- parallelize build
 237- COPTS -> CFLAGS
 238
 239* Fri Sep 16 2005 Chris Wright <chrisw@osdl.org> 0.99.6-1
 240- update to 0.99.6
 241
 242* Fri Sep 16 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
 243- Linus noticed that less is required, added to the dependencies
 244
 245* Sun Sep 11 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
 246- Updated dependencies
 247- Don't assume manpages are gzipped
 248
 249* Thu Aug 18 2005 Chris Wright <chrisw@osdl.org> 0.99.4-4
 250- drop sh_utils, sh-utils, diffutils, mktemp, and openssl Requires
 251- use RPM_OPT_FLAGS in spec file, drop patch0
 252
 253* Wed Aug 17 2005 Tom "spot" Callaway <tcallawa@redhat.com> 0.99.4-3
 254- use dist tag to differentiate between branches
 255- use rpm optflags by default (patch0)
 256- own %{_datadir}/git-core/
 257
 258* Mon Aug 15 2005 Chris Wright <chrisw@osdl.org>
 259- update spec file to fix Buildroot, Requires, and drop Vendor
 260
 261* Sun Aug 07 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
 262- Redid the description
 263- Cut overlong make line, loosened changelog a bit
 264- I think Junio (or perhaps OSDL?) should be vendor...
 265
 266* Thu Jul 14 2005 Eric Biederman <ebiederm@xmission.com>
 267- Add the man pages, and the --without docs build option
 268
 269* Wed Jul 7 2005 Chris Wright <chris@osdl.org>
 270- initial git spec file