]> git.pld-linux.org Git - packages/git-core.git/blob - git-core.spec
- up to 1.6.5; use Linus sha1 implementation
[packages/git-core.git] / git-core.spec
1 #
2 # Conditional build:
3 %bcond_without  tests   # don't perform make test
4 %bcond_without  doc     # skip building/packaging docs/manuals (takes some time)
5 #
6 %include        /usr/lib/rpm/macros.perl
7 Summary:        The stupid content tracker
8 Summary(pl.UTF-8):      Prymitywne narzędzie do śledzenia treści
9 Name:           git-core
10 Version:        1.6.5
11 Release:        1
12 License:        GPL v2
13 Group:          Development/Tools
14 Source0:        http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.bz2
15 # Source0-md5:  da86c1736c55edb9f446828581137b51
16 Source1:        %{name}-gitweb.conf
17 Source2:        %{name}-gitweb-httpd.conf
18 Source3:        %{name}.sysconfig
19 Source4:        %{name}.inet
20 Source5:        %{name}.init
21 URL:            http://git-scm.com/
22 BuildRequires:  autoconf
23 BuildRequires:  automake
24 BuildRequires:  curl-devel
25 BuildRequires:  docbook-dtd45-xml
26 BuildRequires:  expat-devel
27 BuildRequires:  gettext-devel
28 BuildRequires:  openssl-devel
29 BuildRequires:  perl-Error
30 BuildRequires:  perl-base
31 BuildRequires:  python
32 BuildRequires:  rpm-perlprov >= 4.1-13
33 BuildRequires:  rpmbuild(macros) >= 1.264
34 BuildRequires:  zlib-devel
35 %if %{with doc}
36 BuildRequires:  asciidoc >= 7.1.2-3
37 BuildRequires:  xmlto
38 %endif
39 %if %{with tests}
40 # tests failed sometimes when using nserver/cvsnt client so enforce pure cvs here
41 BuildRequires:  cvs-gnu-client < 1.13
42 BuildRequires:  cvs-gnu-client >= 1.12
43 BuildRequires:  pdksh >= 5.2.14-46
44 %endif
45 Requires:       coreutils
46 Requires:       diffutils
47 Requires:       findutils
48 Requires:       grep
49 Requires:       openssh-clients
50 Requires:       perl-Error
51 Requires:       sed
52 Suggests:       git-core-cvs
53 Suggests:       git-core-svn
54 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55
56 # html docs have links to txt files
57 %define         _noautocompressdoc      *.txt
58
59 %define         webapp          gitweb
60 %define         webappdir       %{_sysconfdir}/webapps/%{webapp}
61 %define         appdir          %{_datadir}/%{webapp}
62 %define         cgibindir       %{_prefix}/lib/cgi-bin
63
64 %description
65 "git" can mean anything, depending on your mood.
66
67  - random three-letter combination that is pronounceable, and not
68    actually used by any common UNIX command. The fact that it is a
69    mispronunciation of "get" may or may not be relevant.
70  - stupid. contemptible and despicable. simple. Take your pick from the
71    dictionary of slang.
72  - "global information tracker": you're in a good mood, and it actually
73    works for you. Angels sing, and a light suddenly fills the room.
74  - "goddamn idiotic truckload of sh*t": when it breaks
75
76 This is a stupid (but extremely fast) directory content manager. It
77 doesn't do a whole lot, but what it 'does' do is track directory
78 contents efficiently.
79
80 %description -l pl.UTF-8
81 "git" może oznaczać cokolwiek, w zależności od nastroju.
82
83  - losową kombinację trzech liter, która jest wymawialna i właściwie
84    nie używana przez żadne popularne polecenie uniksowe. Fakt, że jest to
85    błędna pisownia słowa "get" może mieć lub nie mieć znaczenia.
86  - głupi, pogardliwy, prosty. Można wybrać ze słownika slangu.
87  - "global information tracker" (narzędzie do globalnego śledzenia
88    informacji) - jeśli jesteśmy w dobrym nastroju i git akurat działa.
89    Anioły śpiewają, a światło niespodziewanie wypełnia pokój.
90  - "goddamn idiotic truckload of sh*t" (przeklęty idiotyczny ładunek
91    g*) - kiedy się zepsuje.
92
93 Jest to prymitywny (ale bardzo szybki) zarządca treści słownikowej.
94 Nie robi wiele, ale to, co "robi", to wydajne śledzenie zawartości
95 katalogu.
96
97 %package daemon-inetd
98 Summary:        Files necessary to run git-daemon as an inetd service
99 Summary(pl.UTF-8):      Pliki niezbędne do uruchomienia git-daemona w trybie usługi inetd
100 Group:          Networking/Daemons
101 Requires:       %{name} = %{version}-%{release}
102 Requires:       setup >= 2.4.11-1
103 Provides:       git-core-daemon
104 Obsoletes:      git-core-daemon
105 Obsoletes:      git-core-daemon-standalone
106
107 %description daemon-inetd
108 Git-daemon is a really simple TCP git daemon that can serve git
109 repositories. This package provides all necessarry files to run
110 git-daemon as an inetd service.
111
112 %description daemon-inetd -l pl.UTF-8
113 Git-daemon to prosty demon git korzystający z protokołu TCP do
114 udostępniania repozytoriów git. Ten pakiet dostarcza pliki potrzebne
115 do uruchomienia git-demona w trybie usługi inetd.
116
117 %package daemon-standalone
118 Summary:        Files necessary to run git-daemon as a standalone service
119 Summary(pl.UTF-8):      Pliki niezbędne do uruchomienia git-daemona w trybie usługi samodzielnej
120 Group:          Networking/Daemons
121 Requires:       %{name} = %{version}-%{release}
122 Provides:       git-core-daemon
123 Obsoletes:      git-core-daemon
124 Obsoletes:      git-core-daemon-inetd
125
126 %description daemon-standalone
127 Git-daemon is a really simple TCP git daemon that can serve git
128 repositories. This package provides all necessarry files to run
129 git-daemon as an standalone service.
130
131 %description daemon-standalone -l pl.UTF-8
132 Git-daemon to prosty demon git korzystający z protokołu TCP do
133 udostępniania repozytoriów git. Ten pakiet dostarcza pliki potrzebne
134 do uruchomienia git-daemona w trybie usługi samodzielnej.
135
136 %package devel
137 Summary:        Header files for git-core
138 Summary(pl.UTF-8):      Pliki nagłówkowe dla git-core
139 Group:          Development/Libraries
140
141 %description devel
142 Header files for git-core.
143
144 %description devel -l pl.UTF-8
145 Pliki nagłówkowe dla git-core.
146
147 %package gitk
148 Summary:        Tcl/Tk interface to the Git version control system
149 Summary(pl.UTF-8):      Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
150 Group:          Development/Tools
151 Requires:       %{name} = %{version}-%{release}
152 Requires:       tk
153
154 %description gitk
155 gitk displays changes in a repository or a selected set of commits.
156 This includes visualizing the commit graph, showing information
157 related to each commit, and the files in the trees of each revision.
158
159 Historically, gitk was the first repository browser. It's written in
160 Tcl/Tk and started off in a separate repository but was later merged
161 into the main git repository.
162
163 %description gitk -l pl.UTF-8
164 gitk wyświetla zmiany w repozytorium lub wybranym zbiorze commitów.
165 Oznacza to wizualizację grafu commitów, wyświetlanie informacji
166 związanych z każdym z commitów oraz listę plików dla każdej rewizji.
167
168 Z historycznego punktu widzenia gitk był pierwszą przeglądarką
169 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
170 osobnym repozytorium, ale z czasem został włączony do głównego
171 repozytorium gita.
172
173 %package gitweb
174 Summary:        Web frontend to git
175 Summary(pl.UTF-8):      Webowy frontend do git
176 Group:          Development/Tools
177 Requires:       %{name} = %{version}-%{release}
178 Requires:       webapps
179
180 %description gitweb
181 This package provides a web interface for browsing git repositories.
182
183 %description gitweb -l pl.UTF-8
184 Pakiet ten dostarcza interfejs WWW do przeglądania repozytoriów gita.
185
186 %package gitview
187 Summary:        A GTK+ based repository browser for git
188 Summary(pl.UTF-8):      Oparta na GTK+ przeglądarka repozytorium gita
189 Group:          Development/Tools
190 Requires:       %{name} = %{version}-%{release}
191 Requires:       python >= 1:2.4
192 Requires:       python-pycairo >= 1.0
193 Requires:       python-pygobject
194 Requires:       python-pygtk-gtk >= 2:2.8
195 Suggests:       python-gnome-desktop-gtksourceview
196
197 %description gitview
198 A GTK+ based repository browser for git.
199
200 %description gitview -l pl.UTF-8
201 Oparta na GTK+ przeglądarka repozytorium gita.
202
203 %package gui
204 Summary:        Tcl/Tk interface to the Git version control system
205 Summary(pl.UTF-8):      Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
206 Group:          Development/Tools
207 Requires:       %{name} = %{version}-%{release}
208 Requires:       tk
209
210 %description gui
211 Displays changes in a repository or a selected set of commits. This
212 includes visualizing the commit graph, showing information related to
213 each commit, and the files in the trees of each revision.
214
215 Historically, gitk was the first repository browser. It's written in
216 Tcl/Tk and started off in a separate repository but was later merged
217 into the main git repository.
218
219 %description gui -l pl.UTF-8
220 Wyświetla zmiany w repozytorium lub wybranym zbiorze commitów. Oznacza
221 to wizualizację grafu commitów, wyświetlanie informacji związanych z
222 każdym z commitów oraz listę plików dla każdej rewizji.
223
224 Z punktu widzenia historii, gitk był pierwszą przeglądarką
225 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
226 osobnym repozytorium, ale z czasem został włączony do głównego
227 repozytorium gita.
228
229 %package svn
230 Summary:        Subversion support for Git
231 Summary(pl.UTF-8):      Obsługa Subversion dla Git
232 Group:          Development/Tools
233 Requires:       %{name} = %{version}-%{release}
234
235 %description svn
236 Subversion support for Git.
237
238 %description svn -l pl.UTF-8
239 Obsługa Subversion dla Git.
240
241 %package cvs
242 Summary:        CVS support for Git
243 Summary(pl.UTF-8):      Obsługa CVS dla Git
244 Group:          Development/Tools
245 Requires:       %{name} = %{version}-%{release}
246 Requires:       cvsps >= 2.1-2
247 Requires:       rcs
248
249 %description cvs
250 CVS support for Git.
251
252 %description cvs -l pl.UTF-8
253 Obsługa CVS dla Git.
254
255 %package -n bash-completion-git
256 Summary:        bash-completion for git
257 Summary(pl.UTF-8):      bashowe uzupełnianie nazw dla gita
258 Group:          Applications/Shells
259 Requires:       bash-completion
260
261 %description -n bash-completion-git
262 This package provides bash-completion for git.
263
264 %description -n bash-completion-git -l pl.UTF-8
265 Pakiet ten dostarcza bashowe uzupełnianie nazw dla gita.
266
267 %package -n perl-Git
268 Summary:        Perl interface to the Git version control system
269 Summary(pl.UTF-8):      Perlowy interfejs do systemu kontroli wersji Git
270 Group:          Development/Languages/Perl
271 Requires:       %{name} = %{version}-%{release}
272 Obsoletes:      perl-git-core
273
274 %description -n perl-Git
275 This module provides Perl scripts easy way to interface the Git
276 version control system. The modules have an easy and well-tested way
277 to call arbitrary Git commands; in the future, the interface will also
278 provide specialized methods for doing easily operations which are not
279 totally trivial to do over the generic command interface.
280
281 %description -n perl-Git -l pl.UTF-8
282 Ten moduł umożliwia skryptom Perla współpracę z systemem kontroli
283 wersji Git. W łatwy i dobrze przetestowany sposób pozwala wywoływać
284 dowolne polecenia Gita; w przyszłości interfejs udostępni także
285 specjalne metody do łatwego wykonywania operacji nietrywialnych do
286 wykonania przy użyciu ogólnego interfejsu poleceń.
287
288 %package -n vim-syntax-gitcommit
289 Summary:        Vim syntax: gitcommit
290 Summary(pl.UTF-8):      Składnia dla Vima: gitcommit
291 Group:          Applications/Editors/Vim
292 # for _vimdatadir existence
293 Requires:       vim-rt >= 4:6.3.058-3
294
295 %description -n vim-syntax-gitcommit
296 This plugin provides syntax highlighting for git's commit messages.
297
298 %description -n vim-syntax-gitcommit -l pl.UTF-8
299 Ta wtyczka dostarcza podświetlanie składni dla treści commitów gita.
300
301 %prep
302 %setup -q -n git-%{version}
303
304 %build
305 %{__aclocal}
306 %{__autoconf}
307 %configure \
308         --with-openssl
309
310 %{__make} \
311         BLK_SHA1=1 \
312         INSTALLDIRS=vendor \
313         GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
314         GITWEB_PROJECTROOT="/var/lib/git" \
315         GITWEB_CSS="/gitweb/gitweb.css" \
316         GITWEB_LOGO="/gitweb/git-logo.png" \
317         GITWEB_FAVICON="/gitweb/git-favicon.png"
318
319 %{?with_doc:%{__make} -C Documentation}
320
321 %{?with_tests:%{__make} test}
322
323 %install
324 rm -rf $RPM_BUILD_ROOT
325 install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_localstatedir}/lib/git}
326 install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
327 install -d $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
328 install -d $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
329 install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
330
331 %{__make} install \
332         INSTALLDIRS=vendor \
333         DESTDIR=$RPM_BUILD_ROOT
334
335 %if %{with doc}
336 %{__make} -C Documentation install \
337         DESTDIR=$RPM_BUILD_ROOT
338 %endif
339
340 # header files and lib
341 install *.h $RPM_BUILD_ROOT%{_includedir}/%{name}
342 install xdiff/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/xdiff
343 install libgit.a $RPM_BUILD_ROOT%{_libdir}
344 install xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
345
346 # bash completion
347 install contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
348
349 # vim syntax
350 cat > $RPM_BUILD_ROOT/%{_datadir}/vim/vimfiles/syntax/gitcommit.vim << 'EOF'
351 autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG    setf gitcommit
352 autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
353 autocmd BufNewFile,BufRead git-rebase-todo         setf gitrebase
354 autocmd BufNewFile,BufRead .msg.[0-9]*
355         \ if getline(1) =~ '^From.*# This line is ignored.$' |
356         \   setf gitsendemail |
357         \ endif
358 autocmd BufNewFile,BufRead *.git/**
359         \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
360         \   setf git |
361         \ endif
362 EOF
363
364 # gitweb
365 install gitweb/*.css gitweb/*.png $RPM_BUILD_ROOT%{appdir}
366 install gitweb/gitweb.cgi $RPM_BUILD_ROOT%{cgibindir}
367 install %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
368 install %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
369 install %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
370
371 # gitview
372 install contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
373
374 # git-daemon related files
375 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
376 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
377 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
378
379 # paths cleanup
380 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
381 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
382
383 # remove unneeded files
384 rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
385 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
386 rm -f $RPM_BUILD_ROOT%{perl_vendorlib}/Error.pm
387 rm -f $RPM_BUILD_ROOT%{_mandir}/man3/private-Error.3*
388
389 %clean
390 rm -rf $RPM_BUILD_ROOT
391
392 %post daemon-inetd
393 %service -q rc-inetd reload
394
395 %postun daemon-inetd
396 if [ "$1" = "0" ]; then
397         %service -q rc-inetd reload
398 fi
399
400 %post daemon-standalone
401 /sbin/chkconfig --add git-daemon
402 %service git-daemon restart "git-daemon"
403
404 %preun daemon-standalone
405 if [ "$1" = "0" ]; then
406         %service git-daemon stop
407         /sbin/chkconfig --del git-daemon
408 fi
409
410 %triggerin gitweb -- apache1 < 1.3.37-3, apache1-base
411 %webapp_register apache %{webapp}
412
413 %triggerun gitweb -- apache1 < 1.3.37-3, apache1-base
414 %webapp_unregister apache %{webapp}
415
416 %triggerin gitweb -- apache < 2.2.0, apache-base
417 %webapp_register httpd %{webapp}
418
419 %triggerun gitweb -- apache < 2.2.0, apache-base
420 %webapp_unregister httpd %{webapp}
421
422 %files
423 %defattr(644,root,root,755)
424 %doc README contrib
425 %if %{with doc}
426 %doc Documentation/RelNotes*
427 %doc Documentation/*.html Documentation/howto Documentation/technical
428 %{_mandir}/man1/git-*.1*
429 %exclude %{_mandir}/man1/git-svn.1*
430 %exclude %{_mandir}/man1/git-cvs*.1*
431 %{_mandir}/man1/git.1*
432 %{_mandir}/man5/gitattributes.5*
433 %{_mandir}/man5/githooks.5*
434 %{_mandir}/man5/gitignore.5*
435 %{_mandir}/man5/gitmodules.5*
436 %{_mandir}/man5/gitrepository-layout.5*
437 %{_mandir}/man7/gitcli.7*
438 %{_mandir}/man7/gitcore-tutorial.7*
439 %{_mandir}/man7/gitdiffcore.7*
440 %{_mandir}/man7/gitglossary.7*
441 %{_mandir}/man7/gittutorial-2.7*
442 %{_mandir}/man7/gittutorial.7*
443 %{_mandir}/man7/gitworkflows.7*
444 %endif
445 %attr(755,root,root) %{_bindir}/git
446 %attr(755,root,root) %{_bindir}/git-*
447 %dir %{_libdir}/%{name}
448 %attr(755,root,root) %{_libdir}/%{name}/*-*
449 %attr(755,root,root) %{_libdir}/%{name}/git
450 %exclude %{_libdir}/%{name}/git-gui
451 %exclude %{_libdir}/%{name}/git-svn
452 %exclude %{_libdir}/%{name}/git-cvs*
453 %{_datadir}/%{name}
454 %{_localstatedir}/lib/git
455
456 %files daemon-inetd
457 %defattr(644,root,root,755)
458 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/git-daemon
459
460 %files daemon-standalone
461 %defattr(644,root,root,755)
462 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/git-daemon
463 %attr(754,root, root) /etc/rc.d/init.d/git-daemon
464
465 %files devel
466 %defattr(644,root,root,755)
467 %{_includedir}/git-core
468 %{_libdir}/libgit.a
469 %{_libdir}/libgit_xdiff.a
470
471 %files gitk
472 %defattr(644,root,root,755)
473 %if %{with doc}
474 %{_mandir}/man1/gitk.1*
475 %endif
476 %attr(755,root,root) %{_bindir}/gitk
477 %dir %{_datadir}/gitk
478 %dir %{_datadir}/gitk/lib
479 %dir %{_datadir}/gitk/lib/msgs
480 %lang(de) %{_datadir}/gitk/lib/msgs/de.msg
481 %lang(es) %{_datadir}/gitk/lib/msgs/es.msg
482 %lang(it) %{_datadir}/gitk/lib/msgs/it.msg
483 %lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
484 %lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
485
486 %files gitweb
487 %defattr(644,root,root,755)
488 %doc gitweb/{README,INSTALL}
489 %dir %{webappdir}
490 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitweb.conf
491 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/apache.conf
492 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/httpd.conf
493 %attr(755,root,root) %{cgibindir}/gitweb.cgi
494 %{appdir}
495
496 %files gitview
497 %defattr(644,root,root,755)
498 %doc contrib/gitview/gitview.txt
499 %attr(755,root,root) %{_bindir}/gitview
500
501 %files gui
502 %defattr(644,root,root,755)
503 %attr(755,root,root) %{_libdir}/%{name}/git-gui
504 %dir %{_datadir}/git-gui
505 %dir %{_datadir}/git-gui/lib
506 %dir %{_datadir}/git-gui/lib/msgs
507 %{_datadir}/git-gui/lib/git-gui.ico
508 %{_datadir}/git-gui/lib/tclIndex
509 %{_datadir}/git-gui/lib/*.js
510 %{_datadir}/git-gui/lib/*.tcl
511 %lang(de) %{_datadir}/git-gui/lib/msgs/de.msg
512 %lang(fr) %{_datadir}/git-gui/lib/msgs/fr.msg
513 %lang(hu) %{_datadir}/git-gui/lib/msgs/hu.msg
514 %lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
515 %lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
516 %lang(nb) %{_datadir}/git-gui/lib/msgs/nb.msg
517 %lang(ru) %{_datadir}/git-gui/lib/msgs/ru.msg
518 %lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
519 %lang(zh_cn) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
520
521 %files svn
522 %defattr(644,root,root,755)
523 %attr(755,root,root) %{_libdir}/%{name}/git-svn
524 %if %{with doc}
525 %{_mandir}/man1/git-svn.1*
526 %endif
527
528 %files cvs
529 %defattr(644,root,root,755)
530 %attr(755,root,root) %{_libdir}/%{name}/git-cvs*
531 %if %{with doc}
532 %{_mandir}/man1/git-cvs*.1*
533 %{_mandir}/man7/gitcvs-migration.7*
534 %endif
535
536 %files -n bash-completion-git
537 %defattr(644,root,root,755)
538 %{_sysconfdir}/bash_completion.d/*
539
540 %files -n perl-Git
541 %defattr(644,root,root,755)
542 %{perl_vendorlib}/Git.pm
543 %{_mandir}/man3/Git.3pm*
544
545 %files -n vim-syntax-gitcommit
546 %defattr(644,root,root,755)
547 %doc contrib/vim/README
548 %{_datadir}/vim/vimfiles/syntax/*
This page took 0.0703 seconds and 4 git commands to generate.