dolibarr_opensuse.spec 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  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: http://www.dolibarr.org
  19. Source0: http://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 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/dolibarr_48x48.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/asterisk
  133. %_datadir/dolibarr/htdocs/barcode
  134. %_datadir/dolibarr/htdocs/bookmarks
  135. %_datadir/dolibarr/htdocs/cashdesk
  136. %_datadir/dolibarr/htdocs/categories
  137. %_datadir/dolibarr/htdocs/comm
  138. %_datadir/dolibarr/htdocs/commande
  139. %_datadir/dolibarr/htdocs/compta
  140. %_datadir/dolibarr/htdocs/conf
  141. %_datadir/dolibarr/htdocs/contact
  142. %_datadir/dolibarr/htdocs/contrat
  143. %_datadir/dolibarr/htdocs/core
  144. %_datadir/dolibarr/htdocs/cron
  145. %_datadir/dolibarr/htdocs/don
  146. %_datadir/dolibarr/htdocs/ecm
  147. %_datadir/dolibarr/htdocs/expedition
  148. %_datadir/dolibarr/htdocs/expensereport
  149. %_datadir/dolibarr/htdocs/exports
  150. %_datadir/dolibarr/htdocs/externalsite
  151. %_datadir/dolibarr/htdocs/fichinter
  152. %_datadir/dolibarr/htdocs/fourn
  153. %_datadir/dolibarr/htdocs/ftp
  154. %_datadir/dolibarr/htdocs/holiday
  155. %_datadir/dolibarr/htdocs/hrm
  156. %_datadir/dolibarr/htdocs/imports
  157. %_datadir/dolibarr/htdocs/includes
  158. %_datadir/dolibarr/htdocs/install
  159. %_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
  160. %_datadir/dolibarr/htdocs/livraison
  161. %_datadir/dolibarr/htdocs/loan
  162. %_datadir/dolibarr/htdocs/mailmanspip
  163. %_datadir/dolibarr/htdocs/margin
  164. %_datadir/dolibarr/htdocs/multicurrency
  165. %_datadir/dolibarr/htdocs/opensurvey
  166. %_datadir/dolibarr/htdocs/paybox
  167. %_datadir/dolibarr/htdocs/paypal
  168. %_datadir/dolibarr/htdocs/printing
  169. %_datadir/dolibarr/htdocs/product
  170. %_datadir/dolibarr/htdocs/projet
  171. %_datadir/dolibarr/htdocs/public
  172. %_datadir/dolibarr/htdocs/resource
  173. %_datadir/dolibarr/htdocs/societe
  174. %_datadir/dolibarr/htdocs/supplier_proposal
  175. %_datadir/dolibarr/htdocs/support
  176. %_datadir/dolibarr/htdocs/theme
  177. %_datadir/dolibarr/htdocs/user
  178. %_datadir/dolibarr/htdocs/webservices
  179. %_datadir/dolibarr/htdocs/websites
  180. %_datadir/dolibarr/htdocs/*.ico
  181. %_datadir/dolibarr/htdocs/*.patch
  182. %_datadir/dolibarr/htdocs/*.php
  183. %_datadir/dolibarr/htdocs/*.txt
  184. %dir %{_sysconfdir}/dolibarr
  185. %defattr(0664, root, www)
  186. %config(noreplace) %{_sysconfdir}/dolibarr/conf.php
  187. %config(noreplace) %{_sysconfdir}/dolibarr/apache.conf
  188. %config(noreplace) %{_sysconfdir}/dolibarr/install.forced.php
  189. %config(noreplace) %{_sysconfdir}/dolibarr/file_contexts.dolibarr
  190. #---- post (after unzip during install)
  191. %post
  192. echo Run post script of packager dolibarr_opensuse.spec
  193. # Define vars
  194. export docdir="/var/lib/dolibarr/documents"
  195. export apachelink="%{_sysconfdir}/apache2/conf.d/dolibarr.conf"
  196. export apacheuser='wwwrun';
  197. export apachegroup='www';
  198. # Remove dolibarr install/upgrade lock file if it exists
  199. %{__rm} -f $docdir/install.lock
  200. # Create empty directory for uploaded files and generated documents
  201. echo Create document directory $docdir
  202. %{__mkdir} -p $docdir
  203. # Set correct owner on config files
  204. %{__chown} -R root:$apachegroup /etc/dolibarr/*
  205. # If a conf already exists and its content was already completed by installer
  206. export config=%{_sysconfdir}/dolibarr/conf.php
  207. if [ -s $config ] && grep -q "File generated by" $config
  208. then
  209. # File already exist. We add params not found.
  210. echo Add new params to overwrite path to use shared libraries/fonts
  211. grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
  212. grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
  213. #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
  214. grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
  215. 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
  216. #grep -q -c "dolibarr_lib_PHPEXCEL_PATH" $config || echo "<?php \$dolibarr_lib_PHPEXCEL_PATH=''; ?>" >> $config
  217. #grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
  218. grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
  219. grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
  220. grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
  221. grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
  222. 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
  223. fi
  224. # Create a config link dolibarr.conf
  225. if [ ! -L $apachelink ]; then
  226. apachelinkdir=`dirname $apachelink`
  227. if [ -d $apachelinkdir ]; then
  228. echo Create dolibarr web server config link from %{_sysconfdir}/dolibarr/apache.conf to $apachelink
  229. ln -fs %{_sysconfdir}/dolibarr/apache.conf $apachelink
  230. else
  231. echo Do not create link $apachelink - web server conf dir $apachelinkdir not found. web server package may not be installed
  232. fi
  233. fi
  234. echo Set permission to $apacheuser:$apachegroup on /var/lib/dolibarr
  235. %{__chown} -R $apacheuser:$apachegroup /var/lib/dolibarr
  236. %{__chmod} -R o-w /var/lib/dolibarr
  237. # Restart web server
  238. echo Restart web server
  239. if [ -f %{_sysconfdir}/init.d/httpd ]; then
  240. %{_sysconfdir}/init.d/httpd restart
  241. fi
  242. if [ -f %{_sysconfdir}/init.d/apache2 ]; then
  243. %{_sysconfdir}/init.d/apache2 restart
  244. fi
  245. # Restart mysql
  246. echo Restart mysql
  247. if [ -f /etc/init.d/mysqld ]; then
  248. /sbin/service mysqld restart
  249. fi
  250. if [ -f /etc/init.d/mysql ]; then
  251. /sbin/service mysql restart
  252. fi
  253. # Show result
  254. echo
  255. echo "----- Dolibarr %version-%release - (c) Dolibarr dev team -----"
  256. echo "Dolibarr files are now installed (into /usr/share/dolibarr)."
  257. echo "To finish installation and use Dolibarr, click on the menu"
  258. echo "entry Dolibarr ERP-CRM or call the following page from your"
  259. echo "web browser:"
  260. echo "http://localhost/dolibarr/"
  261. echo "-------------------------------------------------------"
  262. echo
  263. #---- postun (after upgrade or uninstall)
  264. %postun
  265. if [ "x$1" = "x0" ] ;
  266. then
  267. # Remove
  268. echo "Removed package"
  269. # Define vars
  270. export apachelink="%{_sysconfdir}/apache2/conf.d/dolibarr.conf"
  271. # Remove apache link
  272. if [ -L $apachelink ] ;
  273. then
  274. echo "Delete apache config link for Dolibarr ($apachelink)"
  275. %{__rm} -f $apachelink
  276. status=purge
  277. fi
  278. # Restart web servers if required
  279. if [ "x$status" = "xpurge" ] ;
  280. then
  281. # Restart web server
  282. echo Restart web server
  283. if [ -f %{_sysconfdir}/init.d/httpd ]; then
  284. %{_sysconfdir}/init.d/httpd restart
  285. fi
  286. if [ -f %{_sysconfdir}/init.d/apache2 ]; then
  287. %{_sysconfdir}/init.d/apache2 restart
  288. fi
  289. fi
  290. else
  291. # Upgrade
  292. echo "No remove action done (this is an upgrade)"
  293. fi
  294. # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
  295. %changelog
  296. __CHANGELOGSTRING__