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.

427 lines
17 KiB

##
## drupal.spec -- OpenPKG RPM Package Specification
## Copyright (c) 2000-2005 OpenPKG Foundation e.V. <http://openpkg.net/>
## Copyright (c) 2000-2005 Ralf S. Engelschall <http://engelschall.com/>
##
## 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 versions
%define V_drupal_major 4.6
%define V_drupal cvs
%define V_module_article 4.6.0
%define V_module_buddylist 4.6.0
%define V_module_commentcloser 4.6.0
%define V_module_customerror 4.6.0
%define V_module_contextlinks 4.6.0
%define V_module_daily 4.6.0
%define V_module_feedback 4.6.0
%define V_module_flexinode 4.6.0
%define V_module_fontsize 4.6.0
%define V_module_front 4.6.0
%define V_module_livediscussions 4.6.0
%define V_module_nodewords 4.6.0
%define V_module_paypal_framework 4.6.0
%define V_module_paypal_subscription 4.6.0
%define V_module_quotes 4.6.0
%define V_module_rsvp 4.6.0
%define V_module_series 4.6.0
%define V_module_sitemenu 4.6.0
%define V_module_smartypants 4.6.0
%define V_module_taxonomy_block 4.6.0
%define V_module_taxonomy_menu 4.6.0
%define V_module_textile 4.6.0
%define V_module_week 4.6.0
# package information
Name: drupal
Summary: Content Management Platform
URL: http://www.drupal.org/
Vendor: Dries Buytaert et al.
Packager: OpenPKG
Distribution: OpenPKG
Class: EVAL
Group: Web
License: GPL
Version: %{V_drupal_major}
Release: 20050401
# list of sources
Source0: http://drupal.org/files/projects/drupal-%{V_drupal}.tar.gz
Source1: http://drupal.org/files/projects/article-%{V_module_article}.tar.gz
Source2: http://drupal.org/files/projects/buddylist-%{V_module_buddylist}.tar.gz
Source3: http://drupal.org/files/projects/commentcloser-%{V_module_commentcloser}.tar.gz
Source4: http://drupal.org/files/projects/customerror-%{V_module_customerror}.tar.gz
Source5: http://drupal.org/files/projects/contextlinks-%{V_module_contextlinks}.tar.gz
Source6: http://drupal.org/files/projects/daily-%{V_module_daily}.tar.gz
Source7: http://drupal.org/files/projects/feedback-%{V_module_feedback}.tar.gz
Source8: http://drupal.org/files/projects/flexinode-%{V_module_flexinode}.tar.gz
Source9: http://drupal.org/files/projects/fontsize-%{V_module_fontsize}.tar.gz
Source10: http://drupal.org/files/projects/front-%{V_module_front}.tar.gz
Source11: http://drupal.org/files/projects/livediscussions-%{V_module_livediscussions}.tar.gz
Source12: http://drupal.org/files/projects/nodewords-%{V_module_nodewords}.tar.gz
Source13: http://drupal.org/files/projects/paypal_framework-%{V_module_paypal_framework}.tar.gz
Source14: http://drupal.org/files/projects/paypal_subscription-%{V_module_paypal_subscription}.tar.gz
Source15: http://drupal.org/files/projects/quotes-%{V_module_quotes}.tar.gz
Source16: http://drupal.org/files/projects/rsvp-%{V_module_rsvp}.tar.gz
Source17: http://drupal.org/files/projects/series-%{V_module_series}.tar.gz
Source18: http://drupal.org/files/projects/sitemenu-%{V_module_sitemenu}.tar.gz
Source19: http://drupal.org/files/projects/smartypants-%{V_module_smartypants}.tar.gz
Source20: http://drupal.org/files/projects/taxonomy_block-%{V_module_taxonomy_block}.tar.gz
Source21: http://drupal.org/files/projects/taxonomy_menu-%{V_module_taxonomy_menu}.tar.gz
Source22: http://drupal.org/files/projects/textile-%{V_module_textile}.tar.gz
Source23: http://drupal.org/files/projects/week-%{V_module_week}.tar.gz
Source100: drupal-setup.sh
Source101: drupal-cron.sh
Source102: drupal-apache.conf
Source103: rc.drupal
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040130
PreReq: OpenPKG, openpkg >= 20040130
PreReq: apache
PreReq: apache::with_mod_php = yes
PreReq: apache::with_mod_php_mysql = yes
PreReq: apache::with_mod_php_xml = yes
AutoReq: no
AutoReqProv: no
%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 = %{V_drupal}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = drupal-(__VER__)\.tar\.gz
}
prog drupal:article = {
version = %{V_module_article}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = article-(__VER__)\.tar\.gz
}
prog drupal:buddylist = {
version = %{V_module_buddylist}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = buddylist-(__VER__)\.tar\.gz
}
prog drupal:commentcloser = {
version = %{V_module_commentcloser}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = commentcloser-(__VER__)\.tar\.gz
}
prog drupal:customerror = {
version = %{V_module_customerror}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = customerror-(__VER__)\.tar\.gz
}
prog drupal:contextlinks = {
version = %{V_module_contextlinks}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = contextlinks-(__VER__)\.tar\.gz
}
prog drupal:daily = {
version = %{V_module_daily}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = daily-(__VER__)\.tar\.gz
}
prog drupal:feedback = {
version = %{V_module_feedback}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = feedback-(__VER__)\.tar\.gz
}
prog drupal:flexinode = {
version = %{V_module_flexinode}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = flexinode-(__VER__)\.tar\.gz
}
prog drupal:fontsize = {
version = %{V_module_fontsize}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = fontsize-(__VER__)\.tar\.gz
}
prog drupal:front = {
version = %{V_module_front}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = front-(__VER__)\.tar\.gz
}
prog drupal:livediscussions = {
version = %{V_module_livediscussions}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = livediscussions-(__VER__)\.tar\.gz
}
prog drupal:nodewords = {
version = %{V_module_nodewords}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = nodewords-(__VER__)\.tar\.gz
}
prog drupal:paypal_framework = {
version = %{V_module_paypal_framework}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = paypal_framework-(__VER__)\.tar\.gz
}
prog drupal:paypal_subcription = {
version = %{V_module_paypal_subscription}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = paypal_subscription-(__VER__)\.tar\.gz
}
prog drupal:quotes = {
version = %{V_module_quotes}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = quotes-(__VER__)\.tar\.gz
}
prog drupal:rsvp = {
version = %{V_module_rsvp}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = rsvp-(__VER__)\.tar\.gz
}
prog drupal:series = {
version = %{V_module_series}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = series-(__VER__)\.tar\.gz
}
prog drupal:sitemenu = {
version = %{V_module_sitemenu}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = sitemenu-(__VER__)\.tar\.gz
}
prog drupal:smartypants = {
version = %{V_module_smartypants}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = smartypants-(__VER__)\.tar\.gz
}
prog drupal:taxonomy_block = {
version = %{V_module_taxonomy_block}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = taxonomy_block-(__VER__)\.tar\.gz
}
prog drupal:taxonomy_menu = {
version = %{V_module_taxonomy_menu}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = taxonomy_menu-(__VER__)\.tar\.gz
}
prog drupal:textile = {
version = %{V_module_textile}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = textile-(__VER__)\.tar\.gz
}
prog drupal:week = {
version = %{V_module_week}
url = http://drupal.org/project/releases/%{V_drupal_major}
regex = week-(__VER__)\.tar\.gz
}
%prep
%setup -q -c
%setup -q -D -T -a 1
%setup -q -D -T -a 2
%setup -q -D -T -a 3
%setup -q -D -T -a 4
%setup -q -D -T -a 5
%setup -q -D -T -a 6
%setup -q -D -T -a 7
%setup -q -D -T -a 8
%setup -q -D -T -a 9
%setup -q -D -T -a 10
%setup -q -D -T -a 11
%setup -q -D -T -a 12
%setup -q -D -T -a 13
%setup -q -D -T -a 14
%setup -q -D -T -a 15
%setup -q -D -T -a 16
%setup -q -D -T -a 17
%setup -q -D -T -a 18
%setup -q -D -T -a 19
%setup -q -D -T -a 20
%setup -q -D -T -a 21
%setup -q -D -T -a 22
%setup -q -D -T -a 23
%build
%install
# create installation hierarchy
rm -rf $RPM_BUILD_ROOT
%{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 \
$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
# install all files and strip down installation afterwards
cp -rp drupal-%{V_drupal}/* drupal-%{V_drupal}/.[a-z]* \
$RPM_BUILD_ROOT%{l_prefix}/share/drupal/
( cd $RPM_BUILD_ROOT%{l_prefix}/share/drupal
rm -f .htaccess
rm -rf database/database.pgsql
rm -rf scripts
rm -f [A-Z]*.txt
chmod a-x modules/*.module
) || exit $?
# move configuration location
mv $RPM_BUILD_ROOT%{l_prefix}/share/drupal/sites/default \
$RPM_BUILD_ROOT%{l_prefix}/etc/drupal/default
mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/drupal/default/themes
rmdir $RPM_BUILD_ROOT%{l_prefix}/share/drupal/sites
%{l_shtool} mkln -t -s \
$RPM_BUILD_ROOT%{l_prefix}/etc/drupal \
$RPM_BUILD_ROOT%{l_prefix}/share/drupal/sites
%{l_shtool} mkln -s \
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/files \
$RPM_BUILD_ROOT%{l_prefix}/share/drupal/files
# install add-on module
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/share/drupal/modules/extra
for module in \
article \
buddylist \
commentcloser \
customerror \
contextlinks \
daily \
feedback \
flexinode \
fontsize \
front \
livediscussions \
nodewords \
paypal_framework \
paypal_subscription \
quotes \
rsvp \
series \
sitemenu \
smartypants \
taxonomy_block \
taxonomy_menu \
textile \
week \
; do
( cd $module
rm -f CHANGELOG* Changelog* CREDITS* INSTALL* LICENSE* README* TODO* || true
rm -f */CHANGELOG* */Changelog* */CREDITS* */INSTALL* */LICENSE* */README* */TODO* || true
rm -rf doc po || true
rm -rf */doc */po || true
) || exit $?
cp -rp $module $RPM_BUILD_ROOT%{l_prefix}/share/drupal/modules/extra/
done
# install run-command script
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.drupal} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# install MySQL database setup script
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE drupal-setup.sh} $RPM_BUILD_ROOT%{l_prefix}/sbin/drupal-setup
# install Cron job script
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE drupal-cron.sh} $RPM_BUILD_ROOT%{l_prefix}/sbin/cacti-cron
# 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/*' \
'%config %{l_prefix}/etc/drupal/*/*' \
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/drupal/default/*' \
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/drupal' \
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/drupal' \
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/drupal/files'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
if [ $1 -eq 1 ]; then
# display final hints on initial installation
( echo "1. To complete this installation of Drupal please start MySQL and"
echo " initialize the Drupal database like this:"
echo " \$ $RPM_INSTALL_PREFIX/etc/rc mysql start"
echo " \$ $RPM_INSTALL_PREFIX/sbin/drupal-setup"
echo ""
echo "2. By default, Drupal is run by the OpenPKG cron jobs only every"
echo " 15 minutes. To run Drupal every 5 minutes for more granular"
echo " data gathering, set this variable:"
echo " # $RPM_INSTALL_PREFIX/etc/rc.conf:"
echo " drupal_cron=\"no\""
echo " and insert a new cronjob for user %{l_rusr}"
echo " # system crontab:"
echo " */5 * * * * %{l_rusr} $RPM_INSTALL_PREFIX/sbin/drupal-cron"
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 " \"Port 8080\" and \"Listen 127.0.0.1:8080\" directives in"
echo " $RPM_INSTALL_PREFIX/etc/drupal/drupal-apache.conf"
echo " Also do not forget to adjust the \$base_url variable in:"
echo " $RPM_INSTALL_PREFIX/etc/drupal/default/settings.php"
echo ""
echo "4. After this postinstallation, start Drupal by running"
echo " \$ $RPM_INSTALL_PREFIX/etc/rc drupal start"
echo " and connect with a browser to:"
echo " http://127.0.0.1:8080/"
echo " Create an account and login. The first account will"
echo " automatically become the main administrator account"
echo " with total control over your Drupal site."
) | %{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/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
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
fi
exit 0