git.spec.inon commit provide a nice @{...} syntax to always mean the current branch reflog (11cf880)
   1# Pass --without docs to rpmbuild if you don't want the documentation
   2Name:           git
   3Version:        @@VERSION@@
   4Release:        1%{?dist}
   5Summary:        Git core and tools
   6License:        GPL
   7Group:          Development/Tools
   8URL:            http://kernel.org/pub/software/scm/git/
   9Source:         http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz
  10BuildRequires:  zlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
  11BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
  12Requires:       git-core, git-svn, git-cvs, git-arch, git-email, gitk, perl-Git
  13
  14%description
  15This is a stupid (but extremely fast) directory content manager.  It
  16doesn't do a whole lot, but what it _does_ do is track directory
  17contents efficiently. It is intended to be the base of an efficient,
  18distributed source code management system. This package includes
  19rudimentary tools that can be used as a SCM, but you should look
  20elsewhere for tools for ordinary humans layered on top of this.
  21
  22This is a dummy package which brings in all subpackages.
  23
  24%package core
  25Summary:        Core git tools
  26Group:          Development/Tools
  27Requires:       zlib >= 1.2, rsync, curl, less, openssh-clients, expat
  28%description core
  29This is a stupid (but extremely fast) directory content manager.  It
  30doesn't do a whole lot, but what it _does_ do is track directory
  31contents efficiently. It is intended to be the base of an efficient,
  32distributed source code management system. This package includes
  33rudimentary tools that can be used as a SCM, but you should look
  34elsewhere for tools for ordinary humans layered on top of this.
  35
  36These are the core tools with minimal dependencies.
  37
  38%package svn
  39Summary:        Git tools for importing Subversion repositories
  40Group:          Development/Tools
  41Requires:       git-core = %{version}-%{release}, subversion
  42%description svn
  43Git tools for importing Subversion repositories.
  44
  45%package cvs
  46Summary:        Git tools for importing CVS repositories
  47Group:          Development/Tools
  48Requires:       git-core = %{version}-%{release}, cvs, cvsps
  49%description cvs
  50Git tools for importing CVS repositories.
  51
  52%package arch
  53Summary:        Git tools for importing Arch repositories
  54Group:          Development/Tools
  55Requires:       git-core = %{version}-%{release}, tla
  56%description arch
  57Git tools for importing Arch repositories.
  58
  59%package email
  60Summary:        Git tools for sending email
  61Group:          Development/Tools
  62Requires:       git-core = %{version}-%{release} 
  63%description email
  64Git tools for sending email.
  65
  66%package -n gitk
  67Summary:        Git revision tree visualiser ('gitk')
  68Group:          Development/Tools
  69Requires:       git-core = %{version}-%{release}, tk >= 8.4
  70%description -n gitk
  71Git revision tree visualiser ('gitk')
  72
  73%package -n perl-Git
  74Summary:        Perl interface to Git
  75Group:          Development/Libraries
  76Requires:       git-core = %{version}-%{release}
  77Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
  78BuildRequires:  perl(Error)
  79
  80%description -n perl-Git
  81Perl interface to Git
  82
  83%prep
  84%setup -q
  85
  86%build
  87make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" WITH_OWN_SUBPROCESS_PY=YesPlease \
  88     prefix=%{_prefix} all %{!?_without_docs: doc}
  89
  90%install
  91rm -rf $RPM_BUILD_ROOT
  92make %{_smp_mflags} DESTDIR=$RPM_BUILD_ROOT WITH_OWN_SUBPROCESS_PY=YesPlease \
  93     prefix=%{_prefix} mandir=%{_mandir} INSTALLDIRS=vendor \
  94     install %{!?_without_docs: install-doc}
  95find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
  96find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';'
  97find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} ';'
  98
  99(find $RPM_BUILD_ROOT%{_bindir} -type f | grep -vE "archimport|svn|cvs|email|gitk" | sed -e s@^$RPM_BUILD_ROOT@@)               > bin-man-doc-files
 100(find $RPM_BUILD_ROOT%{perl_vendorlib} -type f | sed -e s@^$RPM_BUILD_ROOT@@) >> perl-files
 101%if %{!?_without_docs:1}0
 102(find $RPM_BUILD_ROOT%{_mandir} $RPM_BUILD_ROOT/Documentation -type f | grep -vE "archimport|svn|git-cvs|email|gitk" | sed -e s@^$RPM_BUILD_ROOT@@ -e 's/$/*/' ) >> bin-man-doc-files
 103%else
 104rm -rf $RPM_BUILD_ROOT%{_mandir}
 105%endif
 106
 107%clean
 108rm -rf $RPM_BUILD_ROOT
 109
 110%files
 111# These are no files in the root package
 112
 113%files svn
 114%defattr(-,root,root)
 115%{_bindir}/*svn*
 116%doc Documentation/*svn*.txt
 117%{!?_without_docs: %{_mandir}/man1/*svn*.1*}
 118%{!?_without_docs: %doc Documentation/*svn*.html }
 119
 120%files cvs
 121%defattr(-,root,root)
 122%doc Documentation/*git-cvs*.txt
 123%{_bindir}/*cvs*
 124%{!?_without_docs: %{_mandir}/man1/*cvs*.1*}
 125%{!?_without_docs: %doc Documentation/*git-cvs*.html }
 126
 127%files arch
 128%defattr(-,root,root)
 129%doc Documentation/git-archimport.txt
 130%{_bindir}/git-archimport
 131%{!?_without_docs: %{_mandir}/man1/git-archimport.1*}
 132%{!?_without_docs: %doc Documentation/git-archimport.html }
 133
 134%files email
 135%defattr(-,root,root)
 136%doc Documentation/*email*.txt
 137%{_bindir}/*email*
 138%{!?_without_docs: %{_mandir}/man1/*email*.1*}
 139%{!?_without_docs: %doc Documentation/*email*.html }
 140
 141%files -n gitk
 142%defattr(-,root,root)
 143%doc Documentation/*gitk*.txt
 144%{_bindir}/*gitk*
 145%{!?_without_docs: %{_mandir}/man1/*gitk*.1*}
 146%{!?_without_docs: %doc Documentation/*gitk*.html }
 147
 148%files -n perl-Git -f perl-files
 149%defattr(-,root,root)
 150
 151%files core -f bin-man-doc-files
 152%defattr(-,root,root)
 153%{_datadir}/git-core/
 154%doc README COPYING Documentation/*.txt
 155%{!?_without_docs: %doc Documentation/*.html }
 156
 157%changelog
 158* Mon Nov 14 2005 H. Peter Anvin <hpa@zytor.com> 0.99.9j-1
 159- Change subpackage names to git-<name> instead of git-core-<name>
 160- Create empty root package which brings in all subpackages
 161- Rename git-tk -> gitk
 162
 163* Thu Nov 10 2005 Chris Wright <chrisw@osdl.org> 0.99.9g-1
 164- zlib dependency fix
 165- Minor cleanups from split
 166- Move arch import to separate package as well
 167
 168* Tue Sep 27 2005 Jim Radford <radford@blackbean.org>
 169- Move programs with non-standard dependencies (svn, cvs, email)
 170  into separate packages
 171
 172* Tue Sep 27 2005 H. Peter Anvin <hpa@zytor.com>
 173- parallelize build
 174- COPTS -> CFLAGS
 175
 176* Fri Sep 16 2005 Chris Wright <chrisw@osdl.org> 0.99.6-1
 177- update to 0.99.6
 178
 179* Fri Sep 16 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
 180- Linus noticed that less is required, added to the dependencies
 181
 182* Sun Sep 11 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
 183- Updated dependencies
 184- Don't assume manpages are gzipped
 185
 186* Thu Aug 18 2005 Chris Wright <chrisw@osdl.org> 0.99.4-4
 187- drop sh_utils, sh-utils, diffutils, mktemp, and openssl Requires
 188- use RPM_OPT_FLAGS in spec file, drop patch0
 189
 190* Wed Aug 17 2005 Tom "spot" Callaway <tcallawa@redhat.com> 0.99.4-3
 191- use dist tag to differentiate between branches
 192- use rpm optflags by default (patch0)
 193- own %{_datadir}/git-core/
 194
 195* Mon Aug 15 2005 Chris Wright <chrisw@osdl.org>
 196- update spec file to fix Buildroot, Requires, and drop Vendor
 197
 198* Sun Aug 07 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
 199- Redid the description
 200- Cut overlong make line, loosened changelog a bit
 201- I think Junio (or perhaps OSDL?) should be vendor...
 202
 203* Thu Jul 14 2005 Eric Biederman <ebiederm@xmission.com>
 204- Add the man pages, and the --without docs build option
 205
 206* Wed Jul 7 2005 Chris Wright <chris@osdl.org>
 207- initial git spec file