]> git.pld-linux.org Git - packages/dokuwiki.git/blob - dokuwiki.spec
6450a242222ee43eed925d548ec758b66e61067d
[packages/dokuwiki.git] / dokuwiki.spec
1 %define         subver  2014-09-29d
2 %define         ver             %(echo %{subver} | tr -d -)
3 #define         snap    1
4 #define         rc_     1
5 %define         php_min_version 5.2.4
6 %include        /usr/lib/rpm/macros.php
7 Summary:        PHP-based Wiki webapplication
8 Summary(pl.UTF-8):      Aplikacja WWW Wiki oparta na PHP
9 Name:           dokuwiki
10 Version:        %{ver}
11 Release:        1
12 License:        GPL v2
13 Group:          Applications/WWW
14 # Source0Download: http://download.dokuwiki.org/archive
15 Source0:        http://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
16 # Source0-md5:  2bf2d6c242c00e9c97f0647e71583375
17 Source1:        %{name}-apache.conf
18 Source2:        %{name}-lighttpd.conf
19 Source3:        http://glen.alkohol.ee/pld/jude.png
20 # Source3-md5:  623344128960e18f86097dfee213ad4a
21 Source4:        eventum.gif
22 Source6:        pld_button.png
23 # Source6-md5:  185afa921e81bd726b9f0f9f0909dc6e
24 Source7:        cacti.gif
25 Source8:        nagios.gif
26 Source9:        http://trac.edgewall.org/export/9404/trunk/doc/trac_icon_16x16.png
27 # Source9-md5:  0c19ed35bf677f33f6bea14b3a8a2e10
28 Source10:       pld.gif
29 Source11:       http://glen.alkohol.ee/pld/astah.png
30 # Source11-md5: b1c999e6988440c9e2af6a12e9a56451
31 Patch66:        %{name}-config.patch
32 Patch0:         %{name}-paths.patch
33 Patch1:         system-jquery.patch
34 Patch2:         style-width.patch
35 Patch3:         undeprecate.patch
36 Patch4:         %{name}-geshi.patch
37 Patch5:         %{name}-http_auth-option.patch
38 Patch6:         %{name}-nice_exit.patch
39 Patch8:         %{name}-notify-respect-minor.patch
40 Patch10:        %{name}-mailtext.patch
41 Patch11:        %{name}-notifyns.patch
42 Patch14:        interwiki-outputonly.patch
43 Patch15:        simplepie.patch
44 Patch19:        pld-branding.patch
45 Patch20:        fixprivilegeescalationbug.diff
46 Patch21:        task-1821.patch
47 Patch22:        adldap.patch
48 Patch24:        more-buttons.patch
49 Patch25:        system-phpseclib.patch
50 Patch26:        system-lessphp.patch
51 Patch27:        iconsizes-dump.patch
52 URL:            https://www.dokuwiki.org/
53 BuildRequires:  fslint
54 BuildRequires:  rpm-php-pearprov >= 4.4.2-11
55 BuildRequires:  rpmbuild(macros) >= 1.693
56 Requires:       jquery >= 1.8
57 #Requires:      jquery >= 1.9.1
58 Requires:       jquery-cookie
59 #Requires:      jquery-migrate
60 #Requires:      jquery-ui >= 1.10.2
61 Requires:       jquery-ui >= 1.8
62 Requires:       lessphp >= 0.3.9
63 Requires:       php(core) >= %{php_min_version}
64 Requires:       php(session)
65 Requires:       php(xml)
66 Requires:       php-geshi >= 1.0.7.19
67 Requires:       php-seclib >= 0.3.5
68 Requires:       php-simplepie >= 1.0.1
69 Requires:       webapps
70 Requires:       webserver(access)
71 Requires:       webserver(alias)
72 Requires:       webserver(php)
73 Suggests:       php-adldap >= 4.0.4
74 Suggests:       php-gd
75 Obsoletes:      dokuwiki-plugin-jquery
76 Conflicts:      dokuwiki-plugin-icalevents < 20120909
77 # can use gz compression to store attic pages
78 Suggests:       php-zlib
79 BuildArch:      noarch
80 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81
82 %define         _webapps        /etc/webapps
83 %define         _webapp         %{name}
84 %define         _sysconfdir     %{_webapps}/%{_webapp}
85 %define         _appdir         %{_datadir}/%{_webapp}
86 %define         _localstatedir  /var/lib/%{name}
87 %define         _cachedir               /var/cache/%{name}
88 %define         find_lang       %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
89
90 # bad depsolver
91 %define         _noautopear     pear./usr/share/php/geshi.php pear./usr/share/php/adLDAP.php
92
93 # exclude optional php dependencies
94 %define         _noautophp      php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
95
96 %define         _noautoreq      %{_noautophp} %{_noautopear}
97
98 %description
99 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
100 creating documentation of any kind. It is targeted at developer teams,
101 workgroups and small companies. It has a simple but powerful syntax
102 which makes sure the datafiles remain readable outside the Wiki and
103 eases the creation of structured texts. All data is stored in plain
104 text files - no database is required.
105
106 %description -l pl.UTF-8
107 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
108 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
109 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
110 ale mającą duże możliwości składnię, dzięki której pliki danych
111 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
112 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
113 nie jest wymagana baza danych.
114
115 %package setup
116 Summary:        DokuWiki setup package
117 Summary(pl.UTF-8):      Pakiet do wstępnej konfiguracji DokuWiki
118 Group:          Applications/WWW
119 Requires:       %{name} = %{version}-%{release}
120
121 %description setup
122 Install this package to configure initial DokuWiki installation. You
123 should uninstall this package when you're done, as it considered
124 insecure to keep the setup files in place.
125
126 %description setup -l pl.UTF-8
127 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
128 po pierwszej instalacji. Potem należy go odinstalować, jako że
129 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
130
131 %prep
132 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
133 %if 0%{?snap:1}
134 mv *-dokuwiki-*/* .
135 test -e VERSION || echo %{subver}-git > VERSION
136 %endif
137 install -d data/pages/playground
138 test -e data/pages/playground/playground.txt || \
139 echo '====== PlayGround ======' >  data/pages/playground/playground.txt
140
141 %patch0 -p1
142 %patch1 -p1
143 %patch2 -p1
144 %patch3 -p1
145 %patch4 -p1
146 %patch5 -p1
147 %patch6 -p1
148 %patch8 -p1
149 %patch10 -p1
150 %patch11 -p1
151 %patch14 -p1
152 %patch15 -p1
153 %patch19 -p1
154 %patch20 -p1
155 %patch21 -p1
156 %patch22 -p1
157 %patch24 -p1
158 %patch25 -p1
159 %patch26 -p1
160 %patch27 -p1
161
162 %patch66 -p1
163
164 # package as basenames, upgrade overwrite protected with .rpmnew
165 mv conf/local.php{.dist,}
166 mv conf/acl.auth.php{.dist,}
167 mv conf/users.auth.php{.dist,}
168 mv conf/mysql.conf.php{.example,}
169
170 find -name _dummy | xargs %{__rm}
171 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
172 %{__rm} {conf,inc,bin,data,inc/lang}/.htaccess
173
174 # we just don't package deleted files, these get removed automatically on rpm upgrades
175 %{__rm} data/deleted.files
176 # source for security.png
177 %{__rm} data/security.xcf
178
179 # use system geshi package
180 %{__rm} inc/geshi.php
181 %{__rm} -r inc/geshi
182
183 # use system adldap package
184 %{__rm} -r lib/plugins/authad/adLDAP
185
186 # use system simplepie package
187 %{__rm} inc/SimplePie.php
188
189 # use system lessphp package
190 %{__rm} inc/lessc.inc.php
191
192 # use system lib
193 %{__rm} -r inc/phpseclib
194
195 # flash source on git tarballs
196 rm -rf lib/plugins/testing
197 rm -rf lib/plugins/*/_test
198
199 # use system packages
200 %{__rm} lib/scripts/jquery/update.sh
201 %{__rm} lib/scripts/jquery/jquery-ui.js
202 %{__rm} lib/scripts/jquery/jquery-ui.min.js
203 %{__rm} lib/scripts/jquery/jquery.cookie.js
204 %{__rm} lib/scripts/jquery/jquery.js
205 %{__rm} lib/scripts/jquery/jquery.min.js
206 %{__rm} lib/scripts/jquery/jquery-migrate.js
207 %{__rm} lib/scripts/jquery/jquery-migrate.min.js
208 %{__rm} -r lib/scripts/jquery/jquery-ui-theme
209
210 # cleanup backups after patching
211 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
212
213 %build
214 md5=$(md5sum -b conf/dokuwiki.php | awk '{print $1}')
215 if ! grep $md5 install.php; then
216         : update %{name}-config.patch -- it is outdated
217         exit 1
218 fi
219
220 %install
221 rm -rf $RPM_BUILD_ROOT
222 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}/{bin,inc,lib}}
223
224 # hardlink test
225 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
226
227 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
228 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
229 cp -a$l bin/* $RPM_BUILD_ROOT%{_appdir}/bin
230 cp -a$l inc/* $RPM_BUILD_ROOT%{_appdir}/inc
231 cp -a$l lib/* $RPM_BUILD_ROOT%{_appdir}/lib
232 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
233 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
234 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
235 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
236 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
237 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
238 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
239 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
240 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
241 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
242 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
243 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
244
245 ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
246 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
247 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
248 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
249 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
250 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
251
252 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
253 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
254
255 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
256
257 # hardlink identical icons.
258 findup -m $RPM_BUILD_ROOT
259
260 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
261 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
262 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
263
264 # find locales
265 %find_lang %{name}.lang
266
267 %clean
268 rm -rf $RPM_BUILD_ROOT
269
270 %post setup
271 chmod 770 %{_sysconfdir}
272 chmod 660 %{_sysconfdir}/local.php
273 chmod 660 %{_sysconfdir}/plugins.local.php
274
275 %postun setup
276 if [ "$1" = "0" ]; then
277         if [ -f %{_sysconfdir}/dokuwiki.php ]; then
278                 chmod 750 %{_sysconfdir}
279                 chmod 640 %{_sysconfdir}/local.php
280                 chmod 640 %{_sysconfdir}/plugins.local.php
281         fi
282 fi
283
284 %triggerin -- apache1 < 1.3.37-3, apache1-base
285 %webapp_register apache %{_webapp}
286
287 %triggerun -- apache1 < 1.3.37-3, apache1-base
288 %webapp_unregister apache %{_webapp}
289
290 %triggerin -- apache < 2.2.0, apache-base
291 %webapp_register httpd %{_webapp}
292
293 %triggerun -- apache < 2.2.0, apache-base
294 %webapp_unregister httpd %{_webapp}
295
296 %triggerin -- lighttpd
297 %webapp_register lighttpd %{_webapp}
298
299 %triggerun -- lighttpd
300 %webapp_unregister lighttpd %{_webapp}
301
302 %pretrans
303 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
304         mv -f %{_appdir}/data/* %{_localstatedir}
305         rm -rf %{_appdir}/data
306 fi
307 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
308         mv -f %{_appdir}/conf/* %{_sysconfdir}
309         rm -rf %{_appdir}/conf
310 fi
311 if [ -d %{_localstatedir}/cache ]; then
312         rm -rf %{_localstatedir}/cache
313 fi
314 exit 0
315
316 %files -f %{name}.lang
317 %defattr(644,root,root,755)
318 %doc README
319 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
320 %dir %attr(750,root,http) %{_sysconfdir}/lang
321 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
322 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
323 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
324 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
325
326 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
327 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
328 %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
329
330 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
331 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
332 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
333 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
334 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
335 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
336 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
337 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
338 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
339 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
340 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
341 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
342
343 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
344 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
345
346 # use local.php, local.protected.php, etc for local changes
347 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
348 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
349 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
350 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
351 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
352 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
353
354 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
355 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
356 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
357
358 %dir %{_appdir}
359 %{_appdir}/VERSION
360 %{_appdir}/doku.php
361 %{_appdir}/feed.php
362 %{_appdir}/index.php
363 %dir %{_appdir}/bin
364 %attr(755,root,root) %{_appdir}/bin/dwpage.php
365 %attr(755,root,root) %{_appdir}/bin/gittool.php
366 %attr(755,root,root) %{_appdir}/bin/indexer.php
367 %attr(755,root,root) %{_appdir}/bin/render.php
368 %attr(755,root,root) %{_appdir}/bin/striplangs.php
369 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
370
371 %dir %{_appdir}/inc
372 %{_appdir}/inc/*.php
373 %{_appdir}/inc/preload.php.dist
374 %{_appdir}/inc/parser
375
376 %dir %{_appdir}/lib
377 # allow plugins dir permission change to allow installation of plugins from admin
378 # however does not work with rpm 4.5
379 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
380 %{_appdir}/lib/plugins/*.php
381 %dir %{_appdir}/lib/plugins/acl
382 %{_appdir}/lib/plugins/acl/*.*
383 %{_appdir}/lib/plugins/acl/pix
384 %dir %{_appdir}/lib/plugins/authad
385 %{_appdir}/lib/plugins/authad/*.php
386 %{_appdir}/lib/plugins/authad/*.txt
387 %{_appdir}/lib/plugins/authad/conf
388 %dir %{_appdir}/lib/plugins/authldap
389 %{_appdir}/lib/plugins/authldap/*.php
390 %{_appdir}/lib/plugins/authldap/*.txt
391 %{_appdir}/lib/plugins/authldap/conf
392 %dir %{_appdir}/lib/plugins/authmysql
393 %{_appdir}/lib/plugins/authmysql/*.php
394 %{_appdir}/lib/plugins/authmysql/*.txt
395 %{_appdir}/lib/plugins/authmysql/conf
396 %{_appdir}/lib/plugins/authpgsql/*.php
397 %{_appdir}/lib/plugins/authpgsql/conf
398 %{_appdir}/lib/plugins/authpgsql/*.txt
399 %dir %{_appdir}/lib/plugins/authpgsql
400 %dir %{_appdir}/lib/plugins/authplain
401 %{_appdir}/lib/plugins/authplain/*.php
402 %{_appdir}/lib/plugins/authplain/*.txt
403 %dir %{_appdir}/lib/plugins/config
404 %{_appdir}/lib/plugins/config/*.*
405 %{_appdir}/lib/plugins/config/images
406 %{_appdir}/lib/plugins/config/settings
407 %dir %{_appdir}/lib/plugins/extension
408 %{_appdir}/lib/plugins/extension/*.*
409 %{_appdir}/lib/plugins/extension/helper
410 %{_appdir}/lib/plugins/extension/images
411 %dir %{_appdir}/lib/plugins/revert
412 %{_appdir}/lib/plugins/revert/*.*
413 %dir %{_appdir}/lib/plugins/safefnrecode
414 %{_appdir}/lib/plugins/safefnrecode/*.*
415 %dir %{_appdir}/lib/plugins/usermanager
416 %{_appdir}/lib/plugins/usermanager/*.*
417 %{_appdir}/lib/plugins/usermanager/images
418 %dir %{_appdir}/lib/plugins/info
419 %{_appdir}/lib/plugins/info/*.*
420 %dir %{_appdir}/lib/plugins/popularity
421 %{_appdir}/lib/plugins/popularity/*.*
422
423 %{_appdir}/lib/images
424 %{_appdir}/lib/scripts
425 %{_appdir}/lib/styles
426 %{_appdir}/lib/tpl
427 %{_appdir}/lib/exe
428
429 %dir %attr(770,root,http) %{_localstatedir}
430 %dir %attr(770,root,http) %{_localstatedir}/attic
431 %dir %attr(770,root,http) %{_localstatedir}/index
432 %dir %attr(770,root,http) %{_localstatedir}/locks
433 %dir %attr(770,root,http) %{_localstatedir}/media
434 %dir %attr(770,root,http) %{_localstatedir}/media_attic
435 %dir %attr(770,root,http) %{_localstatedir}/media_meta
436 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
437 %dir %attr(770,root,http) %{_localstatedir}/meta
438 %dir %attr(770,root,http) %{_localstatedir}/pages
439 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
440 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
441 %dir %attr(770,root,http) %{_localstatedir}/tmp
442
443 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
444 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
445 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
446 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
447 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
448 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/security.png
449
450 %dir %attr(770,root,http) %{_cachedir}
451
452 %files setup
453 %defattr(644,root,root,755)
454 %{_appdir}/install.php
This page took 0.05512 seconds and 2 git commands to generate.