143 lines
4.1 KiB
RPMSpec
143 lines
4.1 KiB
RPMSpec
# -*- rpm-spec -*-
|
|
|
|
%define build_number MAKE_FILE_BUILD_NUMBER_SEARCH
|
|
%define var_dir /var/opt/belledonne-communications
|
|
%define opt_dir /opt/belledonne-communications/share/flexisip-account-manager
|
|
%define etc_dir /etc/flexisip-account-manager
|
|
|
|
%if %{with deb}
|
|
%define env_config_file %{etc_dir}/flexiapi.env
|
|
%else
|
|
%define env_config_file "$RPM_BUILD_ROOT%{etc_dir}/flexiapi.env"
|
|
%endif
|
|
|
|
%define env_symlink_file %{opt_dir}/flexiapi/.env
|
|
|
|
%bcond_with deb
|
|
|
|
%if %{with deb}
|
|
%define web_user www-data
|
|
%define apache_conf_path /etc/apache2/conf-available
|
|
%else
|
|
%define web_user apache
|
|
%define apache_conf_path /etc/httpd/conf.d
|
|
%endif
|
|
|
|
Name: bc-flexisip-account-manager
|
|
Version: MAKE_FILE_VERSION_SEARCH
|
|
Release: %{build_number}%{?dist}
|
|
Summary: Web panel and a REST API to manage and handle Flexisip accounts related features. Only tested for Apache2.
|
|
|
|
Group: Applications/Communications
|
|
License: GPL
|
|
URL: http://www.linphone.org
|
|
Source0: flexisip-account-manager.tar.gz
|
|
|
|
Requires: php >= 8.0, php-gd, php-pdo, php-redis, php-mysqlnd, php-mbstring, php-sodium
|
|
|
|
%description
|
|
PHP server for Linphone and Flexisip providing module for account creation.
|
|
|
|
%prep
|
|
%setup -n flexisip-account-manager
|
|
|
|
%install
|
|
rm -rf "$RPM_BUILD_ROOT"
|
|
mkdir -p "$RPM_BUILD_ROOT%{opt_dir}"
|
|
|
|
cp -R flexiapi "$RPM_BUILD_ROOT%{opt_dir}"
|
|
cp flexiapi/composer.json "$RPM_BUILD_ROOT%{opt_dir}/flexiapi"
|
|
|
|
cp README* "$RPM_BUILD_ROOT%{opt_dir}/"
|
|
mkdir -p $RPM_BUILD_ROOT/etc/cron.daily
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{apache_conf_path}
|
|
cp httpd/flexisip-account-manager.conf "$RPM_BUILD_ROOT%{apache_conf_path}/"
|
|
|
|
%if %{with deb}
|
|
cp cron/flexiapi.debian "$RPM_BUILD_ROOT/etc/cron.daily/"
|
|
chmod +x "$RPM_BUILD_ROOT/etc/cron.daily/flexiapi.debian"
|
|
%else
|
|
cp cron/flexiapi.redhat "$RPM_BUILD_ROOT/etc/cron.daily/"
|
|
chmod +x "$RPM_BUILD_ROOT/etc/cron.daily/flexiapi.redhat"
|
|
%endif
|
|
|
|
# POST INSTALLATION
|
|
|
|
%post
|
|
%if %{without deb}
|
|
if [ $1 -eq 1 ] ; then
|
|
%endif
|
|
|
|
# Create the var directory if it doesn't exists
|
|
|
|
# FlexiAPI logs file
|
|
mkdir -p %{var_dir}/log/flexiapi
|
|
|
|
# FlexiAPI base directories setup and rights
|
|
mkdir -p %{var_dir}/flexiapi/storage/app/public
|
|
mkdir -p %{var_dir}/flexiapi/storage/framework/cache/data
|
|
mkdir -p %{var_dir}/flexiapi/storage/framework/sessions
|
|
mkdir -p %{var_dir}/flexiapi/storage/framework/testing
|
|
mkdir -p %{var_dir}/flexiapi/storage/framework/views
|
|
mkdir -p %{var_dir}/flexiapi/bootstrap/cache
|
|
|
|
mkdir -p %{var_dir}/log
|
|
|
|
%if %{without deb}
|
|
setsebool -P httpd_can_network_connect_db on
|
|
%endif
|
|
|
|
chown -R %{web_user}:%{web_user} %{var_dir}/log
|
|
chown -R %{web_user}:%{web_user} %{var_dir}/flexiapi/storage
|
|
chown -R %{web_user}:%{web_user} %{var_dir}/flexiapi/bootstrap
|
|
chown -R %{web_user}:%{web_user} %{var_dir}/log/flexiapi
|
|
|
|
# Forces the creation of the symbolic links event if they already exists
|
|
ln -sf %{var_dir}/log/flexiapi %{var_dir}/flexiapi/storage/logs
|
|
ln -sf %{var_dir}/flexiapi/storage %{opt_dir}/flexiapi/.
|
|
|
|
# FlexiAPI env file configuration
|
|
if ! test -f %{env_config_file}; then
|
|
cd %{opt_dir}/flexiapi/
|
|
mkdir -p %{etc_dir}
|
|
cp -R .env.example %{env_config_file}
|
|
ln -s %{env_config_file} %{env_symlink_file}
|
|
|
|
php artisan key:generate
|
|
fi
|
|
|
|
# Link it once more
|
|
ln -sf %{env_config_file} %{env_symlink_file}
|
|
|
|
# Check if there is a migration
|
|
if cd %{opt_dir}/flexiapi/ && php artisan migrate:status | grep -q No; then
|
|
echo " "
|
|
echo "All the following commands need to be run with the web user"
|
|
echo "sudo -su %{web_user}"
|
|
echo "You need to migrate the database to finish the setup:"
|
|
echo "%{web_user}$ cd %{opt_dir}/flexiapi/"
|
|
echo %{web_user}$ php artisan migrate
|
|
fi
|
|
|
|
%if %{without deb}
|
|
fi
|
|
%endif
|
|
|
|
# FILES
|
|
|
|
%files
|
|
%{opt_dir}/flexiapi/
|
|
%{opt_dir}/README*
|
|
|
|
%exclude %{opt_dir}/flexiapi/storage/
|
|
|
|
%config(noreplace) %{apache_conf_path}/flexisip-account-manager.conf
|
|
%if %{with deb}
|
|
%config(noreplace) /etc/cron.daily/flexiapi.debian
|
|
%else
|
|
%config(noreplace) /etc/cron.daily/flexiapi.redhat
|
|
%endif
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|