Name: dolibarr Version: 23.0.1 Release: %autorelease Summary: ERP and CRM software for small and medium companies or foundations License: GPL-3.0-or-later and GPL-2.0-or-later and LicenseRef-Callaway-BSD and LGPLv2 URL: https://www.dolibarr.org Source0: https://www.dolibarr.org/files/stable/standard/%{name}-%{version}.tgz Patch0: %{name}-forrpm.patch BuildArch: noarch Requires: httpd, php, php-cli, php-gd, php-ldap, php-mysqli, php-soap, dejavu-sans-fonts, php-zip, php-intl Requires: mariadb-server, mariadb #BuildRequires: desktop-file-utils # Set yes to build test package, no for release (this disable need of /usr/bin/php not found by OpenSuse) AutoReqProv: no %description An easy to use CRM & ERP open source/free software package for small and medium companies, foundations or freelances. It includes different features for Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM) but also for different other activities. Dolibarr was designed to provide only features you need and be easy to use. #---- prep %prep %setup -q %patch 0 -p0 -b .patch rm htdocs/includes/restler/framework/Luracast/Restler/explorer/css/typography.css rm htdocs/install/doctemplates/supplier_invoices/index.html rm htdocs/install/doctemplates/supplier_orders/index.html rm htdocs/install/lib/index.html rm htdocs/conf/.htaccess rm htdocs/includes/.htaccess rm htdocs/install/doctemplates/websites/website_template-corporate/containers/.htaccess rm htdocs/install/doctemplates/websites/website_template-homesubmenu_dev/containers/.htaccess rm htdocs/install/doctemplates/websites/website_template-noimg_dev/containers/.htaccess rm htdocs/install/doctemplates/websites/website_template-restaurant_dev/containers/.htaccess rm htdocs/install/doctemplates/websites/website_template-stellar/containers/.htaccess #licence mv htdocs/includes/geoPHP/LICENSE geoPHP-LICENSE mv htdocs/includes/odtphp/zip/pclzip/gnu-lgpl.txt pclzip-gnu-lpgl-LICENSE # Deal with licenses automatically find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' \) | { while read a ; do mv "$a" $(echo $a | sed "s_^./__" | tr "/ " "__" )-LICENSE ; done ; } find . -mindepth 2 -name '*COPYING*' | { while read a ; do mv "$a" $(echo $a | sed "s_^./__" | tr "/ " "__" )-COPYING ; done ; } # case-sensitive list of partial matches to exclude from the nextcloud integrity checker # include readme, license, other docs, and any files we move or patch during the build excludedFilenames=" README readme LICENSE LICENCE license copying COPYING AUTHORS htaccess gitignore user.ini update.admin.php Updater.php occ Checker.php " #---- build %build # Nothing to build #---- install %install %{__rm} -rf $RPM_BUILD_ROOT %{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} %{__install} -m 644 dev/build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php %{__install} -m 644 dev/build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf %{__install} -m 644 dev/build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr %{__install} -m 644 dev/build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps %{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications %{__install} -m 644 dev/build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts %{__cp} -pr dev/build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm %{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name} %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/nusoap %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts # Lang echo "%defattr(0644, root, root, 0755)" > %{name}.lang echo "%dir %{_datadir}/%{name}/htdocs/langs" >> %{name}.lang for i in $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/langs/*_* do lang=$(basename $i) lang1=`expr substr $lang 1 2`; lang2=`expr substr $lang 4 2 | tr "[:upper:]" "[:lower:]"`; echo "%dir %{_datadir}/%{name}/htdocs/langs/${lang}" >> %{name}.lang if [ "$lang1" = "$lang2" ] ; then echo "%lang(${lang1}) %{_datadir}/%{name}/htdocs/langs/${lang}/*.lang" else echo "%lang(${lang}) %{_datadir}/%{name}/htdocs/langs/${lang}/*.lang" fi done >>%{name}.lang #---- files %files -f %{name}.lang %defattr(0755, root, root, 0755) %dir %_datadir/dolibarr %dir %_datadir/dolibarr/scripts %_datadir/dolibarr/scripts/* %defattr(-, root, root, 0755) %doc COPYING ChangeLog doc/index.html htdocs/langs/HOWTO-Translation.txt %_datadir/pixmaps/dolibarr.png %_datadir/applications/dolibarr.desktop %dir %_datadir/dolibarr/dev/build %dir %_datadir/dolibarr/dev/build/rpm %_datadir/dolibarr/dev/build/rpm/* %dir %_datadir/dolibarr/dev/build/tgz %_datadir/dolibarr/dev/build/tgz/* %dir %_datadir/dolibarr/htdocs %_datadir/dolibarr/htdocs/accountancy %_datadir/dolibarr/htdocs/adherents %_datadir/dolibarr/htdocs/admin %_datadir/dolibarr/htdocs/ai %_datadir/dolibarr/htdocs/api %_datadir/dolibarr/htdocs/asset %_datadir/dolibarr/htdocs/asterisk %_datadir/dolibarr/htdocs/barcode %_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks %_datadir/dolibarr/htdocs/bookcal %_datadir/dolibarr/htdocs/bom %_datadir/dolibarr/htdocs/categories %_datadir/dolibarr/htdocs/collab %_datadir/dolibarr/htdocs/comm %_datadir/dolibarr/htdocs/commande %_datadir/dolibarr/htdocs/compta %_datadir/dolibarr/htdocs/conf %_datadir/dolibarr/htdocs/contact %_datadir/dolibarr/htdocs/contrat %_datadir/dolibarr/htdocs/core %_datadir/dolibarr/htdocs/cron %_datadir/dolibarr/htdocs/custom %_datadir/dolibarr/htdocs/datapolicy %_datadir/dolibarr/htdocs/dav %_datadir/dolibarr/htdocs/debugbar %_datadir/dolibarr/htdocs/delivery %_datadir/dolibarr/htdocs/don %_datadir/dolibarr/htdocs/ecm %_datadir/dolibarr/htdocs/emailcollector %_datadir/dolibarr/htdocs/eventorganization %_datadir/dolibarr/htdocs/expedition %_datadir/dolibarr/htdocs/expensereport %_datadir/dolibarr/htdocs/exports %_datadir/dolibarr/htdocs/fichinter %_datadir/dolibarr/htdocs/fourn %_datadir/dolibarr/htdocs/ftp %_datadir/dolibarr/htdocs/holiday %_datadir/dolibarr/htdocs/hrm %_datadir/dolibarr/htdocs/imports %_datadir/dolibarr/htdocs/includes %_datadir/dolibarr/htdocs/install %_datadir/dolibarr/htdocs/intracommreport %_datadir/dolibarr/htdocs/knowledgemanagement %_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt %_datadir/dolibarr/htdocs/loan %_datadir/dolibarr/htdocs/mailmanspip %_datadir/dolibarr/htdocs/margin %_datadir/dolibarr/htdocs/modulebuilder %_datadir/dolibarr/htdocs/mrp %_datadir/dolibarr/htdocs/multicurrency %_datadir/dolibarr/htdocs/opensurvey %_datadir/dolibarr/htdocs/partnership %_datadir/dolibarr/htdocs/paybox %_datadir/dolibarr/htdocs/paypal %_datadir/dolibarr/htdocs/printing %_datadir/dolibarr/htdocs/product %_datadir/dolibarr/htdocs/projet %_datadir/dolibarr/htdocs/public %_datadir/dolibarr/htdocs/recruitment %_datadir/dolibarr/htdocs/reception %_datadir/dolibarr/htdocs/resource %_datadir/dolibarr/htdocs/salaries %_datadir/dolibarr/htdocs/societe %_datadir/dolibarr/htdocs/stripe %_datadir/dolibarr/htdocs/subtotals %_datadir/dolibarr/htdocs/supplier_proposal %_datadir/dolibarr/htdocs/theme %_datadir/dolibarr/htdocs/takepos %_datadir/dolibarr/htdocs/ticket %_datadir/dolibarr/htdocs/user %_datadir/dolibarr/htdocs/variants %_datadir/dolibarr/htdocs/webhook %_datadir/dolibarr/htdocs/webportal %_datadir/dolibarr/htdocs/webservices %_datadir/dolibarr/htdocs/website %_datadir/dolibarr/htdocs/workstation %_datadir/dolibarr/htdocs/zapier %_datadir/dolibarr/htdocs/*.ico %_datadir/dolibarr/htdocs/*.patch %_datadir/dolibarr/htdocs/*.php %_datadir/dolibarr/htdocs/*.txt %dir %{_sysconfdir}/dolibarr %defattr(0664, root, apache) %config(noreplace) %{_sysconfdir}/dolibarr/conf.php %config(noreplace) %{_sysconfdir}/dolibarr/apache.conf %config(noreplace) %{_sysconfdir}/dolibarr/install.forced.php %config(noreplace) %{_sysconfdir}/dolibarr/file_contexts.dolibarr #---- post (after unzip during install) %post echo Run post script of packager dolibarr_fedora.spec # Define vars export docdir="/var/lib/dolibarr/documents" export apachelink="%{_sysconfdir}/httpd/conf.d/dolibarr.conf" export apacheuser='apache'; export apachegroup='apache'; # Remove dolibarr install/upgrade lock file if it exists %{__rm} -f $docdir/install.lock # Create empty directory for uploaded files and generated documents echo Create document directory $docdir %{__mkdir} -p $docdir # Set correct owner on config files %{__chown} -R root:$apachegroup /etc/dolibarr/* # If a conf already exists and its content was already completed by installer export config=%{_sysconfdir}/dolibarr/conf.php if [ -s $config ] && grep -q "File generated by" $config then # File already exist. We add params not found. echo Add new params to overwrite path to use shared libraries/fonts grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "" >> $config #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "" >> $config grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "" >> $config grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "" >> $config #grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "" >> $config grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "" >> $config grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "" >> $config grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "" >> $config grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "" >> $config grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "" >> $config fi # Create config for SE Linux echo Add SE Linux permissions for dolibarr # semanage add records into /etc/selinux/targeted/contexts/files/file_contexts.local semanage fcontext -a -t httpd_sys_script_rw_t "/etc/dolibarr(/.*?)" semanage fcontext -a -t httpd_sys_script_rw_t "/var/lib/dolibarr(/.*?)" restorecon -R -v /etc/dolibarr restorecon -R -v /var/lib/dolibarr # Create a config link dolibarr.conf if [ ! -L $apachelink ]; then apachelinkdir=`dirname $apachelink` if [ -d $apachelinkdir ]; then echo Create dolibarr web server config link from %{_sysconfdir}/dolibarr/apache.conf to $apachelink ln -fs %{_sysconfdir}/dolibarr/apache.conf $apachelink else echo Do not create link $apachelink - web server conf dir $apachelinkdir not found. web server package may not be installed fi fi echo Set permission to $apacheuser:$apachegroup on /var/lib/dolibarr %{__chown} -R $apacheuser:$apachegroup /var/lib/dolibarr %{__chmod} -R o-w /var/lib/dolibarr # Restart web server echo Restart web server /usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || : # Restart mysql server echo Restart mysql server /usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || : # Show result echo echo "----- Dolibarr %version-%release - (c) Dolibarr dev team -----" echo "Dolibarr files are now installed (into /usr/share/dolibarr)." echo "To finish installation and use Dolibarr, click on the menu" echo "entry Dolibarr ERP-CRM or call the following page from your" echo "web browser:" echo "http://localhost/dolibarr/" echo "-------------------------------------------------------" echo %check find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' -o -name '*COPYING*' \) nb=$( find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' -o -name '*COPYING*' \) | wc -l ) if [ $nb -gt 0 ] then false Found unexpected licenses to verify fi #---- postun (after upgrade or uninstall) %postun if [ "x$1" = "x0" ] ; then # Remove echo "Removed package" # Define vars export apachelink="%{_sysconfdir}/httpd/conf.d/dolibarr.conf" # Remove apache link if [ -L $apachelink ] ; then echo "Delete apache config link for Dolibarr ($apachelink)" %{__rm} -f $apachelink status=purge fi # Restart web servers if required if [ "x$status" = "xpurge" ] ; then # Restart web server echo Restart web server /sbin/service httpd restart fi else # Upgrade echo "No remove action done (this is an upgrade)" fi * %changelog %autochangelog