]> git.pld-linux.org Git - packages/xmlrpc-c.git/blame - xmlrpc-c.spec
- rel 4; rebuild with fixed w3c-libwww
[packages/xmlrpc-c.git] / xmlrpc-c.spec
CommitLineData
94b562a0 1Summary: XML-RPC C library - an implementation of the xmlrpc protocol
b4876a5b 2Summary(pl.UTF-8): Biblioteka XML-RPC C - implementacja protokołu xmlrpc
94b562a0 3Name: xmlrpc-c
91f35318 4Version: 1.32.05
7b209e04 5Release: 4
f53f9028 6License: XML-RPC for C License (BSD-like)
94b562a0 7Group: Libraries
3671422b
JB
8# svn co http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
9# Unfortunately, upstream does not tag versions so we must fetch from the branch
10# and check which version was used for it
91f35318 11# 1.32.05 is svn r2451
3671422b 12Source0: %{name}-%{version}.tar.xz
91f35318 13# Source0-md5: c80cfb54a6e26247369de042474e08e0
94b562a0 14Patch0: %{name}-fastdep.patch
cb36d9b7 15Patch1: %{name}-soname.patch
6d2b4673 16Patch2: %{name}-cflags.patch
91f35318 17Patch3: %{name}-cmake-fix.patch
7ea33722 18Patch4: %{name}-format.patch
3671422b
JB
19# patches 10+ come from Fedora
20Patch10: %{name}-cmake.patch
21Patch11: %{name}-printf-size_t.patch
22Patch12: %{name}-longlong.patch
23Patch13: %{name}-uninit-curl.patch
24Patch14: %{name}-30x-redirect.patch
25Patch15: %{name}-check-vasprintf-return-value.patch
26Patch16: %{name}-include-string_int.h.patch
94b562a0 27URL: http://xmlrpc-c.sourceforge.net/
a129e9aa 28BuildRequires: cmake >= 2.6
698b9077 29BuildRequires: curl-devel
dcde1631 30BuildRequires: libstdc++-devel
f53f9028 31BuildRequires: libxml2-devel >= 2.0
cc22c62a 32BuildRequires: ncurses-devel >= 5.7-21
71492220 33BuildRequires: pkgconfig
c23dac2f 34BuildRequires: readline-devel
5e7b2e2d 35BuildRequires: rpmbuild(macros) >= 1.577
3671422b 36BuildRequires: tar >= 1:1.22
7b209e04 37BuildRequires: w3c-libwww-devel >= 5.4.0-20
3671422b 38BuildRequires: xz
94b562a0
MK
39BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
40
94b562a0 41%description
65007067
ER
42XML-RPC is a quick-and-easy way to make procedure calls over the
43Internet. It converts the procedure call into XML document, sends it
44to a remote server using HTTP, and gets back the response as XML.
45
46This library provides a modular implementation of XML-RPC for C.
d593da55 47
4b75e3e6 48%description -l pl.UTF-8
a129e9aa
JB
49XML-RPC to szybki i łatwy w użyciu sposób wywoływania procedur poprzez
50Internet. Przekształca wywołanie procedury na dokument XML, wysyła do
51zdalnego serwera poprzez HTTP i odbiera odpowiedź jako XML.
52
53Ta biblioteka udostepnia modularną implementacją XML-RPC dla języka C.
94b562a0 54
c7fe4465
JB
55%package devel
56Summary: C header files for xmlrpc-c base libraries
57Summary(pl.UTF-8): Pliki nagłówkowe C dla głównych bibliotek xmlrpc-c
58Group: Development/Libraries
65007067 59Requires: %{name} = %{version}-%{release}
c7fe4465
JB
60Requires: curl-devel
61Requires: expat-devel
62Requires: libxml2-devel >= 2.0
63Requires: w3c-libwww-devel
65007067 64
c7fe4465
JB
65%description devel
66C header files for xmlrpc-c base libraries.
a129e9aa 67
c7fe4465
JB
68%description devel -l pl.UTF-8
69Pliki nagłówkowe C dla głównych bibliotek xmlrpc-c.
a129e9aa 70
65007067 71%package client
a129e9aa
JB
72Summary: C client library for xmlrpc-c
73Summary(pl.UTF-8): Biblioteka kliencka C xmlrpc-c
65007067
ER
74Group: Libraries
75Requires: %{name} = %{version}-%{release}
65007067
ER
76
77%description client
78XML-RPC is a quick-and-easy way to make procedure calls over the
79Internet. It converts the procedure call into XML document, sends it
80to a remote server using HTTP, and gets back the response as XML.
81
82This library provides a modular implementation of XML-RPC for C
83clients.
84
a129e9aa
JB
85%description client -l pl.UTF-8
86XML-RPC to szybki i łatwy w użyciu sposób wywoływania procedur poprzez
87Internet. Przekształca wywołanie procedury na dokument XML, wysyła do
88zdalnego serwera poprzez HTTP i odbiera odpowiedź jako XML.
89
90Ta biblioteka udostepnia modularną implementacją XML-RPC dla klientów
91w języku C.
92
c7fe4465
JB
93%package client-devel
94Summary: C header files for xmlrpc-c client library
95Summary(pl.UTF-8): Pliki nagłówkowe C dla biblioteki klienckiej xmlrpc-c
96Group: Development/Libraries
97Requires: %{name}-client = %{version}-%{release}
98Requires: %{name}-devel = %{version}-%{release}
99
100%description client-devel
101C header files for xmlrpc-c client library.
102
103%description client-devel -l pl.UTF-8
104Pliki nagłówkowe C dla biblioteki klienckiej xmlrpc-c.
105
106%package server
107Summary: C server libraries for xmlrpc-c
108Summary(pl.UTF-8): Biblioteki serwerowe C xmlrpc-c
109Group: Libraries
110Requires: %{name} = %{version}-%{release}
111
112%description server
113XML-RPC is a quick-and-easy way to make procedure calls over the
114Internet. It converts the procedure call into XML document, sends it
115to a remote server using HTTP, and gets back the response as XML.
116
117These libraries provide a modular implementation of XML-RPC for C
118servers.
119
120%description server -l pl.UTF-8
121XML-RPC to szybki i łatwy w użyciu sposób wywoływania procedur poprzez
122Internet. Przekształca wywołanie procedury na dokument XML, wysyła do
123zdalnego serwera poprzez HTTP i odbiera odpowiedź jako XML.
124
125Te biblioteki udostepniają modularną implementacją XML-RPC dla
126serwerów w języku C.
127
128%package server-devel
129Summary: C header files for xmlrpc-c server libraries
130Summary(pl.UTF-8): Pliki nagłówkowe C dla bibliotek serwerowych xmlrpc-c
131Group: Development/Libraries
132Requires: %{name}-server = %{version}-%{release}
133Requires: %{name}-devel = %{version}-%{release}
134
135%description server-devel
136C header files for xmlrpc-c server libraries.
137
138%description server-devel -l pl.UTF-8
139Pliki nagłówkowe C dla bibliotek serwerowych xmlrpc-c.
140
141%package c++
142Summary: C++ libraries for xmlrpc-c
143Summary(pl.UTF-8): Biblioteki C++ xmlrpc-c
144Group: Libraries
145Requires: %{name} = %{version}-%{release}
c7fe4465
JB
146
147%description c++
148XML-RPC is a quick-and-easy way to make procedure calls over the
149Internet. It converts the procedure call into XML document, sends it
150to a remote server using HTTP, and gets back the response as XML.
151
152This library provides a modular implementation of XML-RPC for C++.
153
154%description c++ -l pl.UTF-8
155XML-RPC to szybki i łatwy w użyciu sposób wywoływania procedur poprzez
156Internet. Przekształca wywołanie procedury na dokument XML, wysyła do
157zdalnego serwera poprzez HTTP i odbiera odpowiedź jako XML.
158
159Ta biblioteka udostepnia modularną implementacją XML-RPC dla języka
160C++.
161
162%package c++-devel
163Summary: C++ header files for xmlrpc-c base libraries
164Summary(pl.UTF-8): Pliki nagłówkowe C++ głównych bibliotek xmlrpc-c
165Group: Development/Libraries
166Requires: %{name}-c++ = %{version}-%{release}
167Requires: %{name}-devel = %{version}-%{release}
813189af 168Requires: libstdc++-devel
c7fe4465
JB
169
170%description c++-devel
171C++ header files for xmlrpc-c base libraries.
172
173%description c++-devel -l pl.UTF-8
174Pliki nagłówkowe C++ głównych bibliotek xmlrpc-c.
175
65007067 176%package client++
a129e9aa
JB
177Summary: C++ client library for xmlrpc-c
178Summary(pl.UTF-8): Biblioteka kliencka C++ xmlrpc-c
65007067 179Group: Libraries
8e5ab56c
JB
180Requires: %{name}-c++ = %{version}-%{release}
181Requires: %{name}-client = %{version}-%{release}
65007067
ER
182
183%description client++
184XML-RPC is a quick-and-easy way to make procedure calls over the
185Internet. It converts the procedure call into XML document, sends it
186to a remote server using HTTP, and gets back the response as XML.
187
188This library provides a modular implementation of XML-RPC for C++
189clients.
190
a129e9aa
JB
191%description client++ -l pl.UTF-8
192XML-RPC to szybki i łatwy w użyciu sposób wywoływania procedur poprzez
193Internet. Przekształca wywołanie procedury na dokument XML, wysyła do
194zdalnego serwera poprzez HTTP i odbiera odpowiedź jako XML.
195
196Ta biblioteka udostepnia modularną implementacją XML-RPC dla klientów
197w języku C++.
198
c7fe4465
JB
199%package client++-devel
200Summary: C++ header files for xmlrpc-c client library
201Summary(pl.UTF-8): Pliki nagłówkowe C++ biblioteki klienckiej xmlrpc-c
202Group: Development/Libraries
203Requires: %{name}-c++-devel = %{version}-%{release}
204Requires: %{name}-client++ = %{version}-%{release}
205Requires: %{name}-client-devel = %{version}-%{release}
206
207%description client++-devel
208C++ header files for xmlrpc-c client library.
209
210%description client++-devel -l pl.UTF-8
211Pliki nagłówkowe C++ biblioteki klienckiej xmlrpc-c.
212
213%package server++
214Summary: C++ server libraries for xmlrpc-c
215Summary(pl.UTF-8): Biblioteki serwerowe C++ xmlrpc-c
216Group: Libraries
217Requires: %{name}-c++ = %{version}-%{release}
218Requires: %{name}-server = %{version}-%{release}
219
220%description server++
221XML-RPC is a quick-and-easy way to make procedure calls over the
222Internet. It converts the procedure call into XML document, sends it
223to a remote server using HTTP, and gets back the response as XML.
224
225These libraries provide a modular implementation of XML-RPC for C++
226servers.
227
228%description server++ -l pl.UTF-8
229XML-RPC to szybki i łatwy w użyciu sposób wywoływania procedur poprzez
230Internet. Przekształca wywołanie procedury na dokument XML, wysyła do
231zdalnego serwera poprzez HTTP i odbiera odpowiedź jako XML.
232
233Te biblioteki udostepniają modularną implementacją XML-RPC dla
234serwerów w języku C++.
235
236%package server++-devel
237Summary: C++ header files for xmlrpc-c server libraries
238Summary(pl.UTF-8): Pliki nagłówkowe C dla bibliotek serwerowych xmlrpc-c
239Group: Development/Libraries
240Requires: %{name}-c++-devel = %{version}-%{release}
241Requires: %{name}-server++ = %{version}-%{release}
242Requires: %{name}-server-devel = %{version}-%{release}
243
244%description server++-devel
245C++ header files for xmlrpc-c server libraries.
246
247%description server++-devel -l pl.UTF-8
248Pliki nagłówkowe C++ dla bibliotek serwerowych xmlrpc-c.
249
65007067
ER
250%package apps
251Summary: Sample XML-RPC applications
a129e9aa 252Summary(pl.UTF-8): Przykładowe aplikacje XML-RPC
65007067 253Group: Applications/Networking
171430eb
JB
254Requires: %{name} = %{version}-%{release}
255Requires: %{name}-c++ = %{version}-%{release}
256Requires: %{name}-client = %{version}-%{release}
257Requires: %{name}-client++ = %{version}-%{release}
65007067
ER
258
259%description apps
260XML-RPC is a quick-and-easy way to make procedure calls over the
261Internet. It converts the procedure call into XML document, sends it
262to a remote server using HTTP, and gets back the response as XML.
263
264This package contains some handy XML-RPC demo applications.
265
a129e9aa
JB
266%description apps -l pl.UTF-8
267XML-RPC to szybki i łatwy w użyciu sposób wywoływania procedur poprzez
268Internet. Przekształca wywołanie procedury na dokument XML, wysyła do
269zdalnego serwera poprzez HTTP i odbiera odpowiedź jako XML.
270
271Ten pakiet zawiera kilka podręcznych aplikacji demonstracyjnych
272XML-RPC.
273
94b562a0 274%prep
3671422b 275%setup -q -n %{name}
94b562a0 276%patch0 -p1
6d2b4673 277%patch2 -p1
3671422b
JB
278%patch10 -p1
279%patch11 -p1
280%patch12 -p1
281%patch13 -p1
282%patch14 -p1
283%patch15 -p1
284%patch16 -p1
65007067 285%patch1 -p1
91f35318 286%patch3 -p1
7ea33722 287%patch4 -p1
65007067 288
94b562a0 289%build
65007067
ER
290mkdir -p build
291cd build
292%cmake .. \
293 -D_lib:STRING=%{_lib} \
5e7b2e2d
JB
294 -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
295 -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
65007067 296 -DMUST_BUILD_CURL_CLIENT:BOOL=ON \
382cf26a 297 -DMUST_BUILD_LIBWWW_CLIENT:BOOL=ON \
65007067
ER
298 -DBUILD_SHARED_LIBS:BOOL=ON \
299 -DENABLE_TOOLS:BOOL=ON
300
5e7b2e2d 301%{__make}
94b562a0
MK
302
303%install
304rm -rf $RPM_BUILD_ROOT
305
65007067 306%{__make} -C build install \
c315407d 307 DESTDIR=$RPM_BUILD_ROOT \
65007067 308
8e5ab56c 309chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
94b562a0 310
8e5ab56c 311# Win32-specific
a129e9aa 312%{__rm} $RPM_BUILD_ROOT%{_includedir}/xmlrpc_server_w32httpsys.h \
f53f9028
JB
313 $RPM_BUILD_ROOT%{_includedir}/xmlrpc-c/server_w32httpsys.h
314
94b562a0
MK
315%clean
316rm -rf $RPM_BUILD_ROOT
317
e3bc354f 318%post -p /sbin/ldconfig
319%postun -p /sbin/ldconfig
94b562a0 320
65007067
ER
321%post client -p /sbin/ldconfig
322%postun client -p /sbin/ldconfig
323
c7fe4465
JB
324%post server -p /sbin/ldconfig
325%postun server -p /sbin/ldconfig
326
65007067
ER
327%post c++ -p /sbin/ldconfig
328%postun c++ -p /sbin/ldconfig
329
330%post client++ -p /sbin/ldconfig
331%postun client++ -p /sbin/ldconfig
332
c7fe4465
JB
333%post server++ -p /sbin/ldconfig
334%postun server++ -p /sbin/ldconfig
335
94b562a0
MK
336%files
337%defattr(644,root,root,755)
f53f9028 338%doc README doc/{COPYING,CREDITS,HISTORY,SECURITY,TODO}
f53f9028
JB
339%attr(755,root,root) %{_libdir}/libxmlrpc-c.so.*.*
340%attr(755,root,root) %ghost %{_libdir}/libxmlrpc-c.so.3
341%attr(755,root,root) %{_libdir}/libxmlrpc_abyss.so.*.*
342%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_abyss.so.3
c7fe4465
JB
343%attr(755,root,root) %{_libdir}/libxmlrpc_util.so.*.*
344%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_util.so.3
345
346%files devel
347%defattr(644,root,root,755)
348%doc doc/{DEVELOPING,TESTING}
349%attr(755,root,root) %{_bindir}/xmlrpc-c-config
350%attr(755,root,root) %{_libdir}/libxmlrpc-c.so
351%attr(755,root,root) %{_libdir}/libxmlrpc_abyss.so
352%attr(755,root,root) %{_libdir}/libxmlrpc_util.so
353%dir %{_includedir}/xmlrpc-c
354%{_includedir}/xmlrpc-c/abyss*.h
355%{_includedir}/xmlrpc-c/base.h
356%{_includedir}/xmlrpc-c/c_util.h
357%{_includedir}/xmlrpc-c/config.h
358%{_includedir}/xmlrpc-c/inttypes.h
359%{_includedir}/xmlrpc-c/json.h
360%{_includedir}/xmlrpc-c/oldxmlrpc.h
361%{_includedir}/xmlrpc-c/transport.h
362%{_includedir}/xmlrpc-c/util.h
363%{_includedir}/xmlrpc.h
c7fe4465
JB
364%{_pkgconfigdir}/xmlrpc.pc
365%{_pkgconfigdir}/xmlrpc_abyss.pc
366%{_pkgconfigdir}/xmlrpc_util.pc
367
368%files client
369%defattr(644,root,root,755)
370%attr(755,root,root) %{_libdir}/libxmlrpc_client.so.*.*
371%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_client.so.3
372
373%files client-devel
374%defattr(644,root,root,755)
375%attr(755,root,root) %{_libdir}/libxmlrpc_client.so
376%{_includedir}/xmlrpc-c/client*.h
377%{_includedir}/xmlrpc_client.h
378%{_pkgconfigdir}/xmlrpc_client.pc
379
380%files server
381%defattr(644,root,root,755)
f53f9028
JB
382%attr(755,root,root) %{_libdir}/libxmlrpc_server.so.*.*
383%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server.so.3
384%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss.so.*.*
385%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_abyss.so.3
386%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi.so.*.*
387%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_cgi.so.3
65007067 388
c7fe4465 389%files server-devel
65007067 390%defattr(644,root,root,755)
c7fe4465
JB
391%attr(755,root,root) %{_libdir}/libxmlrpc_server.so
392%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss.so
393%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi.so
394%{_includedir}/xmlrpc-c/server.h
395%{_includedir}/xmlrpc-c/server_abyss.h
396%{_includedir}/xmlrpc-c/server_cgi.h
06382d95
SS
397%{_includedir}/xmlrpc_abyss.h
398%{_includedir}/xmlrpc_cgi.h
c7fe4465
JB
399%{_includedir}/xmlrpc_server.h
400%{_pkgconfigdir}/xmlrpc_server.pc
401%{_pkgconfigdir}/xmlrpc_server_abyss.pc
402%{_pkgconfigdir}/xmlrpc_server_cgi.pc
65007067
ER
403
404%files c++
405%defattr(644,root,root,755)
f53f9028 406%attr(755,root,root) %{_libdir}/libxmlrpc++.so.*.*
91f35318 407%attr(755,root,root) %ghost %{_libdir}/libxmlrpc++.so.8
f53f9028 408%attr(755,root,root) %{_libdir}/libxmlrpc_cpp.so.*.*
91f35318 409%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_cpp.so.8
f53f9028 410%attr(755,root,root) %{_libdir}/libxmlrpc_packetsocket.so.*.*
91f35318 411%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_packetsocket.so.8
c7fe4465
JB
412
413%files c++-devel
414%defattr(644,root,root,755)
415%attr(755,root,root) %{_libdir}/libxmlrpc++.so
416%attr(755,root,root) %{_libdir}/libxmlrpc_cpp.so
417%attr(755,root,root) %{_libdir}/libxmlrpc_packetsocket.so
418%{_includedir}/xmlrpc-c/base.hpp
419%{_includedir}/xmlrpc-c/girerr.hpp
420%{_includedir}/xmlrpc-c/girmem.hpp
421%{_includedir}/xmlrpc-c/oldcppwrapper.hpp
422%{_includedir}/xmlrpc-c/packetsocket.hpp
423%{_includedir}/xmlrpc-c/registry.hpp
424%{_includedir}/xmlrpc-c/timeout.hpp
425%{_includedir}/xmlrpc-c/xml.hpp
426%{_includedir}/XmlRpcCpp.h
427%{_pkgconfigdir}/xmlrpc++.pc
428%{_pkgconfigdir}/xmlrpc_cpp.pc
429%{_pkgconfigdir}/xmlrpc_packetsocket.pc
430
431%files client++
432%defattr(644,root,root,755)
433%attr(755,root,root) %{_libdir}/libxmlrpc_client++.so.*.*
91f35318 434%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_client++.so.8
c7fe4465
JB
435
436%files client++-devel
437%defattr(644,root,root,755)
438%attr(755,root,root) %{_libdir}/libxmlrpc_client++.so
439%{_includedir}/xmlrpc-c/client*.hpp
440%{_pkgconfigdir}/xmlrpc_client++.pc
441
442%files server++
443%defattr(644,root,root,755)
f53f9028 444%attr(755,root,root) %{_libdir}/libxmlrpc_server++.so.*.*
91f35318 445%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server++.so.8
f53f9028 446%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss++.so.*.*
91f35318 447%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_abyss++.so.8
3671422b 448%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi++.so.*.*
91f35318 449%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_cgi++.so.8
f53f9028 450%attr(755,root,root) %{_libdir}/libxmlrpc_server_pstream++.so.*.*
91f35318 451%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_pstream++.so.8
65007067 452
c7fe4465 453%files server++-devel
65007067 454%defattr(644,root,root,755)
c7fe4465
JB
455%attr(755,root,root) %{_libdir}/libxmlrpc_server++.so
456%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss++.so
457%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi++.so
458%attr(755,root,root) %{_libdir}/libxmlrpc_server_pstream++.so
459%{_includedir}/xmlrpc-c/server_abyss.hpp
460%{_includedir}/xmlrpc-c/server_pstream.hpp
461%{_pkgconfigdir}/xmlrpc_server++.pc
462%{_pkgconfigdir}/xmlrpc_server_abyss++.pc
463%{_pkgconfigdir}/xmlrpc_server_cgi++.pc
464%{_pkgconfigdir}/xmlrpc_server_pstream++.pc
65007067
ER
465
466%files apps
467%defattr(644,root,root,755)
a129e9aa 468%doc tools/xmlrpc/xmlrpc.html tools/xmlrpc_transport/xmlrpc_transport.html
65007067 469%attr(755,root,root) %{_bindir}/xmlrpc
91f35318 470%attr(755,root,root) %{_bindir}/xmlrpc_parsecall
65007067
ER
471%attr(755,root,root) %{_bindir}/xmlrpc_transport
472%attr(755,root,root) %{_bindir}/xml-rpc-api2cpp
b5bacc71 473%attr(755,root,root) %{_bindir}/xml-rpc-api2txt
65007067 474%attr(755,root,root) %{_bindir}/xmlrpc_cpp_proxy
cc22c62a 475%attr(755,root,root) %{_bindir}/xmlrpc_pstream
8e5ab56c
JB
476%{_mandir}/man1/xml-rpc-api2cpp.1*
477%{_mandir}/man1/xml-rpc-api2txt.1*
This page took 0.118987 seconds and 4 git commands to generate.