dolibarr_opensuse.spec 14 KB

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