You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
268 lines
10 KiB
268 lines
10 KiB
## |
|
## drupal.spec -- OpenPKG RPM Package Specification |
|
## Copyright (c) 2000-2022 OpenPKG Project <http://openpkg.org/> |
|
## |
|
## Permission to use, copy, modify, and distribute this software for |
|
## any purpose with or without fee is hereby granted, provided that |
|
## the above copyright notice and this permission notice appear in all |
|
## copies. |
|
## |
|
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
|
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
|
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
|
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
## SUCH DAMAGE. |
|
## |
|
|
|
# package information |
|
Name: drupal |
|
Summary: Content Management Platform |
|
URL: http://www.drupal.org/ |
|
Vendor: Dries Buytaert et al. |
|
Packager: OpenPKG Project |
|
Distribution: OpenPKG Community |
|
Class: PLUS |
|
Group: CMS |
|
License: GPL |
|
Version: 6.22 |
|
Release: 20110526 |
|
|
|
# package options |
|
%option with_mysql yes |
|
%option with_pgsql no |
|
%option with_dcron no |
|
|
|
# checking for option conflicts |
|
%if "%{with_mysql}" == "no" && "%{with_pgsql}" == "no" |
|
%{error:one of the build-time options 'with_mysql' or 'with_pgsql' have to be enabled} |
|
%endif |
|
%if "%{with_mysql}" == "yes" && "%{with_pgsql}" == "yes" |
|
%{error:only one of the build-time options 'with_mysql' or 'with_pgsql' can be enabled at a time} |
|
%endif |
|
|
|
# list of sources |
|
Source0: http://ftp.drupal.org/files/projects/drupal-%{version}.tar.gz |
|
Source1: drupal-setup.sh |
|
Source2: drupal-cron.sh |
|
Source3: drupal-apache.conf |
|
Source4: rc.drupal |
|
Patch0: drupal.patch |
|
|
|
# build information |
|
BuildPreReq: OpenPKG, openpkg >= 20160101, infozip |
|
PreReq: OpenPKG, openpkg >= 20160101 |
|
PreReq: pcre, pcre::with_utf8 |
|
PreReq: apache |
|
PreReq: apache::with_mod_deflate = yes |
|
PreReq: apache-php |
|
PreReq: apache-php::with_ctype = yes |
|
PreReq: apache-php::with_gd = yes |
|
PreReq: apache-php::with_mbstring = yes |
|
PreReq: apache-php::with_session = yes |
|
PreReq: apache-php::with_mm = yes |
|
PreReq: apache-php::with_xml = yes |
|
PreReq: apache-php::with_xslt = yes |
|
PreReq: apache-php::with_sendmail = yes |
|
%if "%{with_mysql}" == "yes" |
|
PreReq: apache-php::with_mysql = yes |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
PreReq: apache-php::with_pgsql = yes |
|
%endif |
|
%if "%{with_dcron}" == "yes" |
|
PreReq: dcron |
|
%endif |
|
PreReq: MTA |
|
|
|
%description |
|
Drupal is a dynamic web site platform which allows an individual |
|
or community of users to publish, manage and organize a |
|
variety of content, Drupal integrates many popular features of |
|
content management systems, weblogs, collaborative tools and |
|
discussion-based community software into one easy-to-use package. |
|
|
|
%track |
|
prog drupal = { |
|
version = %{version} |
|
url = http://ftp.drupal.org/files/projects/ |
|
regex = drupal-(6\.\d+)\.tar\.gz |
|
} |
|
|
|
%prep |
|
# unpack core distribution |
|
%setup -q -n drupal-%{version} |
|
|
|
# apply local patches |
|
%patch -p0 |
|
|
|
%build |
|
|
|
%install |
|
# create installation hierarchy |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/sbin \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/drupal/sites \ |
|
$RPM_BUILD_ROOT%{l_prefix}/share/drupal \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/files \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/run \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/log \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/dump \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/db |
|
|
|
# avoid copying unnecessary text files |
|
find . -name "*.orig" -print | xargs rm -f |
|
rm -f CHANGELOG.txt COPYRIGHT.txt INSTALL.*.txt INSTALL.txt |
|
rm -f LICENSE.txt MAINTAINERS.txt UPGRADE.txt |
|
|
|
# install all files (and strip down installation afterwards) |
|
cp -rp * .htaccess \ |
|
$RPM_BUILD_ROOT%{l_prefix}/share/drupal/ |
|
|
|
# pre-configure settings.php |
|
%{l_shtool} subst \ |
|
%if "%{with_mysql}" == "yes" |
|
-e 's|^\( *\$db_url\) *=.*$|\1 = "mysql://drupal:drupal@127.0.0.1/drupal";|' \ |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
-e 's|^\( *\$db_url\) *=.*$|\1 = "pgsql://drupal:drupal@127.0.0.1/drupal";|' \ |
|
%endif |
|
$RPM_BUILD_ROOT%{l_prefix}/share/drupal/sites/default/default.settings.php |
|
|
|
# set data location |
|
ln -s ../../../../var/drupal/files \ |
|
$RPM_BUILD_ROOT%{l_prefix}/share/drupal/sites/default/files |
|
|
|
# install run-command script |
|
%if "%{with_dcron}" == "yes" |
|
l_drupal_cron="no" |
|
%else |
|
l_drupal_cron="yes" |
|
%endif |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
-e "s;@l_drupal_cron@;$l_drupal_cron;g" \ |
|
%{SOURCE rc.drupal} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
|
|
|
# install database setup script |
|
%if "%{with_mysql}" == "yes" |
|
l_dbtype="mysql" |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
l_dbtype="pgsql" |
|
%endif |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
-e "s;@l_dbtype@;$l_dbtype;g" \ |
|
-e "s;@l_bash@;%{l_bash};g" \ |
|
%{SOURCE drupal-setup.sh} $RPM_BUILD_ROOT%{l_prefix}/sbin/drupal-setup |
|
|
|
# install crond(8) job script |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE drupal-cron.sh} $RPM_BUILD_ROOT%{l_prefix}/sbin/drupal-cron |
|
%if "%{with_dcron}" == "yes" |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/dcron/crontabs |
|
echo "*/5 * * * * su %{l_rusr} -c %{l_prefix}/sbin/drupal-cron" \ |
|
>$RPM_BUILD_ROOT%{l_prefix}/etc/dcron/crontabs/drupal |
|
%endif |
|
|
|
# install custom Apache configuration |
|
l_hostname=`%{l_shtool} echo -e %h` |
|
l_domainname=`%{l_shtool} echo -e %d | cut -c2-` |
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
|
-e "s;@l_hostname@;$l_hostname;g" \ |
|
-e "s;@l_domainname@;$l_domainname;g" \ |
|
%{SOURCE drupal-apache.conf} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/drupal/ |
|
|
|
# determine installation files |
|
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
|
%{l_files_std} \ |
|
'%config %{l_prefix}/etc/drupal' \ |
|
%if "%{with_dcron}" == "yes" |
|
'%not %dir %{l_prefix}/etc/dcron' \ |
|
'%not %dir %{l_prefix}/etc/dcron/crontabs' \ |
|
'%attr(-,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/dcron/crontabs/drupal' \ |
|
%endif |
|
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/drupal' \ |
|
'%attr(555,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/drupal/sites/default' \ |
|
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/drupal' |
|
|
|
%files -f files |
|
|
|
%clean |
|
|
|
%post |
|
if [ $1 -eq 1 ]; then |
|
# display final hints on initial installation |
|
( echo "1. To complete this installation of Drupal please start the RDBMS" |
|
echo " and initialize the Drupal database like this:" |
|
%if "%{with_mysql}" == "yes" |
|
echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc mysql start" |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc postgresql start" |
|
%endif |
|
echo " \$ $RPM_INSTALL_PREFIX/sbin/drupal-setup install" |
|
echo "" |
|
echo "2. Now start Drupal by running the command" |
|
echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc drupal start" |
|
echo " and connect with a browser to the URL:" |
|
echo " http://127.0.0.1:8080/drupal/install.php" |
|
echo " Follow the instructions. On the page \"Database configuration\"" |
|
%if "%{with_mysql}" == "yes" |
|
echo " use database type \"mysql\", database name \"drupal\", database" |
|
%endif |
|
%if "%{with_pgsql}" == "yes" |
|
echo " use database type \"pgsql\", database name \"drupal\", database" |
|
%endif |
|
echo " username \"drupal\" and database password \"drupal\". Also create" |
|
echo " an account and login. The first account will automatically become" |
|
echo " the main administrator account with total control over Drupal." |
|
echo "" |
|
echo "3. By default, Drupal runs its own Apache server on IPv4 address" |
|
echo " 127.0.0.1, TCP port 8080. Please change this by editing the" |
|
echo " \"Listen 127.0.0.1:8080\" directive in" |
|
echo " $RPM_INSTALL_PREFIX/etc/drupal/drupal-apache.conf" |
|
echo " Also do not forget to cp -p" |
|
echo " $RPM_INSTALL_PREFIX/share/drupal/sites/default/settings.php" |
|
echo " $RPM_INSTALL_PREFIX/share/drupal/sites/settings.php" |
|
echo " and adjust the \$base_url variable." |
|
echo "" |
|
echo "4. Access Drupal via:" |
|
echo " http://127.0.0.1:8080/drupal/ (website view)" |
|
echo " http://127.0.0.1:8080/drupal/admin (website admin)" |
|
) | %{l_rpmtool} msg -b -t notice |
|
fi |
|
if [ $1 -eq 2 ]; then |
|
# display final hints on update installation |
|
( echo "Please perform a Drupal database upgrade by visiting the" |
|
echo " http://127.0.0.1:8080/drupal/update.php" |
|
echo "page on your Drupal website." |
|
) | %{l_rpmtool} msg -b -t notice |
|
|
|
# after upgrade, restart service |
|
eval `%{l_rc} drupal status 2>/dev/null` |
|
[ ".$drupal_active" = .yes ] && %{l_rc} drupal restart |
|
fi |
|
exit 0 |
|
|
|
%preun |
|
if [ $1 -eq 0 ]; then |
|
# before erase, stop service and remove log files |
|
%{l_rc} drupal stop 2>/dev/null |
|
$RPM_INSTALL_PREFIX/sbin/drupal-setup uninstall >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/var/drupal/files/* >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/var/drupal/log/* >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/var/drupal/run/* >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/var/drupal/dump/* >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/var/drupal/db/* >/dev/null 2>&1 || true |
|
fi |
|
exit 0 |
|
|
|
|