dolibarr_opensuse.spec 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. #---------------------------------------------------------
  2. # Spec file to build a rpm file
  3. #
  4. # This is an example to build a rpm file. You can use this
  5. # file to build a package for your own distributions and
  6. # edit it if you need to match your rules.
  7. # --------------------------------------------------------
  8. Name: dolibarr
  9. Version: __VERSION__
  10. Release: __RELEASE__
  11. Summary: ERP and CRM software for small and medium companies or foundations
  12. Summary(es): Software ERP y CRM para pequeñas y medianas empresas, asociaciones o autónomos
  13. Summary(fr): Logiciel ERP & CRM de gestion de PME/PMI, auto-entrepreneurs ou associations
  14. Summary(it): Programmo gestionale per piccole imprese, fondazioni e liberi professionisti
  15. License: GPL-3.0+
  16. #Packager: Laurent Destailleur (Eldy) <eldy@users.sourceforge.net>
  17. Vendor: Dolibarr dev team
  18. URL: https://www.dolibarr.org
  19. Source0: https://www.dolibarr.org/files/lastbuild/package_rpm_opensuse/%{name}-%{version}.tgz
  20. Patch0: %{name}-forrpm.patch
  21. BuildArch: noarch
  22. BuildRoot: %{_tmppath}/%{name}-%{version}-build
  23. Group: Productivity/Office/Management
  24. Requires: apache2, apache2-mod_php5, php5 >= 5.3.0, php5-gd, php5-ldap, php5-imap, php5-mysql, php5-openssl, dejavu
  25. Requires: mysql-community-server, mysql-community-server-client
  26. %if 0%{?suse_version}
  27. BuildRequires: update-desktop-files fdupes
  28. %endif
  29. # Set yes to build test package, no for release (this disable need of /usr/bin/php not found by OpenSuse)
  30. AutoReqProv: no
  31. %description
  32. An easy to use CRM & ERP open source/free software package for small
  33. and medium companies, foundations or freelances. It includes different
  34. features for Enterprise Resource Planning (ERP) and Customer Relationship
  35. Management (CRM) but also for different other activities.
  36. Dolibarr was designed to provide only features you need and be easy to
  37. use.
  38. %description -l es
  39. Un software ERP y CRM para pequeñas y medianas empresas, asociaciones
  40. o autónomos. Incluye diferentes funcionalidades para la Planificación
  41. de Recursos Empresariales (ERP) y Gestión de la Relación con los
  42. Clientes (CRM) así como para para otras diferentes actividades.
  43. Dolibarr ha sido diseñado para suministrarle solamente las funcionalidades
  44. que necesita y haciendo hincapié en su facilidad de uso.
  45. %description -l fr
  46. Logiciel ERP & CRM de gestion de PME/PMI, autoentrepreneurs,
  47. artisans ou associations. Il permet de gérer vos clients, prospect,
  48. fournisseurs, devis, factures, comptes bancaires, agenda, campagnes mailings
  49. et bien d'autres choses dans une interface pensée pour la simplicité.
  50. %description -l it
  51. Un programmo gestionale per piccole e medie
  52. imprese, fondazioni e liberi professionisti. Include varie funzionalità per
  53. Enterprise Resource Planning e gestione dei clienti (CRM), ma anche ulteriori
  54. attività. Progettato per poter fornire solo ciò di cui hai bisogno
  55. ed essere facile da usare.
  56. Programmo web, progettato per poter fornire solo ciò di
  57. cui hai bisogno ed essere facile da usare.
  58. #---- prep
  59. %prep
  60. %setup -q
  61. %patch0 -p0 -b .patch
  62. #---- build
  63. %build
  64. # Nothing to build
  65. #---- install
  66. %install
  67. %{__rm} -rf $RPM_BUILD_ROOT
  68. %{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
  69. %{__install} -m 644 build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php
  70. %{__install} -m 644 build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf
  71. %{__install} -m 644 build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr
  72. %{__install} -m 644 build/rpm/install.forced.php.opensuse $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
  73. %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
  74. %{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
  75. %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
  76. #desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
  77. %{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
  78. %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm
  79. %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz
  80. %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs
  81. %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts
  82. %{__cp} -pr build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm
  83. %{__cp} -pr build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz
  84. %{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name}
  85. %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name}
  86. %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source
  87. %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts
  88. # Lang
  89. echo "%defattr(0644, root, root, 0755)" > %{name}.lang
  90. echo "%dir %{_datadir}/%{name}/htdocs/langs" >> %{name}.lang
  91. for i in $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/langs/*_*
  92. do
  93. lang=$(basename $i)
  94. lang1=`expr substr $lang 1 2`;
  95. lang2=`expr substr $lang 4 2 | tr "[:upper:]" "[:lower:]"`;
  96. echo "%dir %{_datadir}/%{name}/htdocs/langs/${lang}" >> %{name}.lang
  97. if [ "$lang1" = "$lang2" ] ; then
  98. echo "%lang(${lang1}) %{_datadir}/%{name}/htdocs/langs/${lang}/*.lang"
  99. else
  100. echo "%lang(${lang}) %{_datadir}/%{name}/htdocs/langs/${lang}/*.lang"
  101. fi
  102. done >>%{name}.lang
  103. %if 0%{?suse_version}
  104. # Enable this command to tag desktop file for suse
  105. %suse_update_desktop_file dolibarr
  106. # Enable this command to allow suse detection of duplicate files and create hardlinks instead
  107. %fdupes $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs
  108. %endif
  109. #---- clean
  110. %clean
  111. %{__rm} -rf $RPM_BUILD_ROOT
  112. #---- files
  113. %files -f %{name}.lang
  114. %defattr(0755, root, root, 0755)
  115. %dir %_datadir/dolibarr
  116. %dir %_datadir/dolibarr/scripts
  117. %_datadir/dolibarr/scripts/*
  118. %defattr(-, root, root, 0755)
  119. %doc COPYING ChangeLog doc/index.html htdocs/langs/HOWTO-Translation.txt
  120. %_datadir/pixmaps/dolibarr.png
  121. %_datadir/applications/dolibarr.desktop
  122. %dir %_datadir/dolibarr/build
  123. %dir %_datadir/dolibarr/build/rpm
  124. %_datadir/dolibarr/build/rpm/*
  125. %dir %_datadir/dolibarr/build/tgz
  126. %_datadir/dolibarr/build/tgz/*
  127. %dir %_datadir/dolibarr/htdocs
  128. %_datadir/dolibarr/htdocs/accountancy
  129. %_datadir/dolibarr/htdocs/adherents
  130. %_datadir/dolibarr/htdocs/admin
  131. %_datadir/dolibarr/htdocs/api
  132. %_datadir/dolibarr/htdocs/asset
  133. %_datadir/dolibarr/htdocs/asterisk
  134. %_datadir/dolibarr/htdocs/barcode
  135. %_datadir/dolibarr/htdocs/blockedlog
  136. %_datadir/dolibarr/htdocs/bookmarks
  137. %_datadir/dolibarr/htdocs/bom
  138. %_datadir/dolibarr/htdocs/cashdesk
  139. %_datadir/dolibarr/htdocs/categories
  140. %_datadir/dolibarr/htdocs/collab
  141. %_datadir/dolibarr/htdocs/comm
  142. %_datadir/dolibarr/htdocs/commande
  143. %_datadir/dolibarr/htdocs/compta
  144. %_datadir/dolibarr/htdocs/conf
  145. %_datadir/dolibarr/htdocs/contact
  146. %_datadir/dolibarr/htdocs/contrat
  147. %_datadir/dolibarr/htdocs/core
  148. %_datadir/dolibarr/htdocs/cron
  149. %_datadir/dolibarr/htdocs/custom
  150. %_datadir/dolibarr/htdocs/datapolicy
  151. %_datadir/dolibarr/htdocs/dav
  152. %_datadir/dolibarr/htdocs/debugbar
  153. %_datadir/dolibarr/htdocs/delivery
  154. %_datadir/dolibarr/htdocs/don
  155. %_datadir/dolibarr/htdocs/ecm
  156. %_datadir/dolibarr/htdocs/emailcollector
  157. %_datadir/dolibarr/htdocs/eventorganization
  158. %_datadir/dolibarr/htdocs/expedition
  159. %_datadir/dolibarr/htdocs/expensereport
  160. %_datadir/dolibarr/htdocs/exports
  161. %_datadir/dolibarr/htdocs/externalsite
  162. %_datadir/dolibarr/htdocs/fichinter
  163. %_datadir/dolibarr/htdocs/fourn
  164. %_datadir/dolibarr/htdocs/ftp
  165. %_datadir/dolibarr/htdocs/holiday
  166. %_datadir/dolibarr/htdocs/hrm
  167. %_datadir/dolibarr/htdocs/imports
  168. %_datadir/dolibarr/htdocs/includes
  169. %_datadir/dolibarr/htdocs/install
  170. %_datadir/dolibarr/htdocs/intracommreport
  171. %_datadir/dolibarr/htdocs/knowledgemanagement
  172. %_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
  173. %_datadir/dolibarr/htdocs/loan
  174. %_datadir/dolibarr/htdocs/mailmanspip
  175. %_datadir/dolibarr/htdocs/margin
  176. %_datadir/dolibarr/htdocs/modulebuilder
  177. %_datadir/dolibarr/htdocs/mrp
  178. %_datadir/dolibarr/htdocs/multicurrency
  179. %_datadir/dolibarr/htdocs/opensurvey
  180. %_datadir/dolibarr/htdocs/partnership
  181. %_datadir/dolibarr/htdocs/paybox
  182. %_datadir/dolibarr/htdocs/paypal
  183. %_datadir/dolibarr/htdocs/printing
  184. %_datadir/dolibarr/htdocs/product
  185. %_datadir/dolibarr/htdocs/projet
  186. %_datadir/dolibarr/htdocs/public
  187. %_datadir/dolibarr/htdocs/recruitment
  188. %_datadir/dolibarr/htdocs/reception
  189. %_datadir/dolibarr/htdocs/resource
  190. %_datadir/dolibarr/htdocs/salaries
  191. %_datadir/dolibarr/htdocs/societe
  192. %_datadir/dolibarr/htdocs/stripe
  193. %_datadir/dolibarr/htdocs/supplier_proposal
  194. %_datadir/dolibarr/htdocs/support
  195. %_datadir/dolibarr/htdocs/theme
  196. %_datadir/dolibarr/htdocs/takepos
  197. %_datadir/dolibarr/htdocs/ticket
  198. %_datadir/dolibarr/htdocs/user
  199. %_datadir/dolibarr/htdocs/variants
  200. %_datadir/dolibarr/htdocs/webservices
  201. %_datadir/dolibarr/htdocs/website
  202. %_datadir/dolibarr/htdocs/workstation
  203. %_datadir/dolibarr/htdocs/zapier
  204. %_datadir/dolibarr/htdocs/*.ico
  205. %_datadir/dolibarr/htdocs/*.patch
  206. %_datadir/dolibarr/htdocs/*.php
  207. %_datadir/dolibarr/htdocs/*.txt
  208. %dir %{_sysconfdir}/dolibarr
  209. %defattr(0664, root, www)
  210. %config(noreplace) %{_sysconfdir}/dolibarr/conf.php
  211. %config(noreplace) %{_sysconfdir}/dolibarr/apache.conf
  212. %config(noreplace) %{_sysconfdir}/dolibarr/install.forced.php
  213. %config(noreplace) %{_sysconfdir}/dolibarr/file_contexts.dolibarr
  214. #---- post (after unzip during install)
  215. %post
  216. echo Run post script of packager dolibarr_opensuse.spec
  217. # Define vars
  218. export docdir="/var/lib/dolibarr/documents"
  219. export apachelink="%{_sysconfdir}/apache2/conf.d/dolibarr.conf"
  220. export apacheuser='wwwrun';
  221. export apachegroup='www';
  222. # Remove dolibarr install/upgrade lock file if it exists
  223. %{__rm} -f $docdir/install.lock
  224. # Create empty directory for uploaded files and generated documents
  225. echo Create document directory $docdir
  226. %{__mkdir} -p $docdir
  227. # Set correct owner on config files
  228. %{__chown} -R root:$apachegroup /etc/dolibarr/*
  229. # If a conf already exists and its content was already completed by installer
  230. export config=%{_sysconfdir}/dolibarr/conf.php
  231. if [ -s $config ] && grep -q "File generated by" $config
  232. then
  233. # File already exist. We add params not found.
  234. echo Add new params to overwrite path to use shared libraries/fonts
  235. grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
  236. grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
  237. #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
  238. grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
  239. grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config
  240. #grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
  241. grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
  242. grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
  243. grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
  244. grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
  245. grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/DejaVuSans-Bold.ttf'; ?>" >> $config
  246. fi
  247. # Create a config link dolibarr.conf
  248. if [ ! -L $apachelink ]; then
  249. apachelinkdir=`dirname $apachelink`
  250. if [ -d $apachelinkdir ]; then
  251. echo Create dolibarr web server config link from %{_sysconfdir}/dolibarr/apache.conf to $apachelink
  252. ln -fs %{_sysconfdir}/dolibarr/apache.conf $apachelink
  253. else
  254. echo Do not create link $apachelink - web server conf dir $apachelinkdir not found. web server package may not be installed
  255. fi
  256. fi
  257. echo Set permission to $apacheuser:$apachegroup on /var/lib/dolibarr
  258. %{__chown} -R $apacheuser:$apachegroup /var/lib/dolibarr
  259. %{__chmod} -R o-w /var/lib/dolibarr
  260. # Restart web server
  261. echo Restart web server
  262. if [ -f %{_sysconfdir}/init.d/httpd ]; then
  263. %{_sysconfdir}/init.d/httpd restart
  264. fi
  265. if [ -f %{_sysconfdir}/init.d/apache2 ]; then
  266. %{_sysconfdir}/init.d/apache2 restart
  267. fi
  268. # Restart mysql
  269. echo Restart mysql
  270. if [ -f /etc/init.d/mysqld ]; then
  271. /sbin/service mysqld restart
  272. fi
  273. if [ -f /etc/init.d/mysql ]; then
  274. /sbin/service mysql restart
  275. fi
  276. # Show result
  277. echo
  278. echo "----- Dolibarr %version-%release - (c) Dolibarr dev team -----"
  279. echo "Dolibarr files are now installed (into /usr/share/dolibarr)."
  280. echo "To finish installation and use Dolibarr, click on the menu"
  281. echo "entry Dolibarr ERP-CRM or call the following page from your"
  282. echo "web browser:"
  283. echo "http://localhost/dolibarr/"
  284. echo "-------------------------------------------------------"
  285. echo
  286. #---- postun (after upgrade or uninstall)
  287. %postun
  288. if [ "x$1" = "x0" ] ;
  289. then
  290. # Remove
  291. echo "Removed package"
  292. # Define vars
  293. export apachelink="%{_sysconfdir}/apache2/conf.d/dolibarr.conf"
  294. # Remove apache link
  295. if [ -L $apachelink ] ;
  296. then
  297. echo "Delete apache config link for Dolibarr ($apachelink)"
  298. %{__rm} -f $apachelink
  299. status=purge
  300. fi
  301. # Restart web servers if required
  302. if [ "x$status" = "xpurge" ] ;
  303. then
  304. # Restart web server
  305. echo Restart web server
  306. if [ -f %{_sysconfdir}/init.d/httpd ]; then
  307. %{_sysconfdir}/init.d/httpd restart
  308. fi
  309. if [ -f %{_sysconfdir}/init.d/apache2 ]; then
  310. %{_sysconfdir}/init.d/apache2 restart
  311. fi
  312. fi
  313. else
  314. # Upgrade
  315. echo "No remove action done (this is an upgrade)"
  316. fi
  317. # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
  318. %changelog
  319. __CHANGELOGSTRING__