drupal/drupal.spec

Wed, 08 Feb 2012 20:07:00 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 08 Feb 2012 20:07:00 +0200
changeset 588
300d43423c2e
parent 529
7d4d11d301d6
child 734
6f237b68bce5
permissions
-rw-r--r--

Update version, adapt patch, correct PID writing, correct build on newer
FreeBSD releases, and most importantly introduce new patch to try to
avoid segfault caused by multiple network interfaces with the same (or
no) address. This is common when configuring bridges and tunnels.

michael@529 1 ##
michael@529 2 ## drupal.spec -- OpenPKG RPM Package Specification
michael@529 3 ## Copyright (c) 2000-2011 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@529 4 ##
michael@529 5 ## Permission to use, copy, modify, and distribute this software for
michael@529 6 ## any purpose with or without fee is hereby granted, provided that
michael@529 7 ## the above copyright notice and this permission notice appear in all
michael@529 8 ## copies.
michael@529 9 ##
michael@529 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@529 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@529 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@529 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@529 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@529 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@529 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@529 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@529 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@529 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@529 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@529 21 ## SUCH DAMAGE.
michael@529 22 ##
michael@529 23
michael@529 24 # package information
michael@529 25 Name: drupal
michael@529 26 Summary: Content Management Platform
michael@529 27 URL: http://www.drupal.org/
michael@529 28 Vendor: Dries Buytaert et al.
michael@529 29 Packager: OpenPKG Foundation e.V.
michael@529 30 Distribution: OpenPKG Community
michael@529 31 Class: PLUS
michael@529 32 Group: CMS
michael@529 33 License: GPL
michael@530 34 Version: 7.15
michael@530 35 Release: 20120800
michael@529 36
michael@529 37 # package options
michael@529 38 %option with_mysql yes
michael@529 39 %option with_pgsql no
michael@529 40 %option with_dcron no
michael@529 41
michael@529 42 # checking for option conflicts
michael@529 43 %if "%{with_mysql}" == "no" && "%{with_pgsql}" == "no"
michael@530 44 %{error:one of the buildtime options 'with_mysql' or 'with_pgsql' have to be enabled}
michael@529 45 %endif
michael@529 46 %if "%{with_mysql}" == "yes" && "%{with_pgsql}" == "yes"
michael@530 47 %{error:only one of the buildtime options 'with_mysql' or 'with_pgsql' can be enabled at a time}
michael@529 48 %endif
michael@529 49
michael@529 50 # list of sources
michael@530 51 Source0: ftp://ftp.drupal.org/pub/drupal/files/projects/drupal-%{version}.tar.gz
michael@529 52 Source1: drupal-setup.sh
michael@529 53 Source2: drupal-cron.sh
michael@529 54 Source3: drupal-apache.conf
michael@529 55 Source4: rc.drupal
michael@529 56 Patch0: drupal.patch
michael@529 57
michael@529 58 # build information
michael@529 59 BuildPreReq: OpenPKG, openpkg >= 20100101, infozip
michael@529 60 PreReq: OpenPKG, openpkg >= 20100101
michael@529 61 PreReq: pcre, pcre::with_utf8
michael@529 62 PreReq: apache
michael@529 63 PreReq: apache::with_mod_deflate = yes
michael@529 64 PreReq: apache-php
michael@529 65 PreReq: apache-php::with_ctype = yes
michael@529 66 PreReq: apache-php::with_gd = yes
michael@529 67 PreReq: apache-php::with_mbstring = yes
michael@529 68 PreReq: apache-php::with_session = yes
michael@529 69 PreReq: apache-php::with_mm = yes
michael@529 70 PreReq: apache-php::with_xml = yes
michael@529 71 PreReq: apache-php::with_xslt = yes
michael@529 72 PreReq: apache-php::with_sendmail = yes
michael@529 73 %if "%{with_mysql}" == "yes"
michael@529 74 PreReq: apache-php::with_mysql = yes
michael@529 75 %endif
michael@529 76 %if "%{with_pgsql}" == "yes"
michael@529 77 PreReq: apache-php::with_pgsql = yes
michael@529 78 %endif
michael@529 79 %if "%{with_dcron}" == "yes"
michael@529 80 PreReq: dcron
michael@529 81 %endif
michael@529 82 PreReq: MTA
michael@529 83
michael@529 84 %description
michael@529 85 Drupal is a dynamic web site platform which allows an individual
michael@529 86 or community of users to publish, manage and organize a
michael@530 87 variety of content. Drupal integrates many popular features of
michael@529 88 content management systems, weblogs, collaborative tools and
michael@530 89 discussion based community software into one easy to use package.
michael@529 90
michael@529 91 %track
michael@529 92 prog drupal = {
michael@529 93 version = %{version}
michael@529 94 url = http://ftp.drupal.org/files/projects/
michael@530 95 regex = drupal-(\d\.\d+)\.tar\.gz
michael@529 96 }
michael@529 97
michael@529 98 %prep
michael@529 99 # unpack core distribution
michael@529 100 %setup -q -n drupal-%{version}
michael@529 101
michael@529 102 # apply local patches
michael@529 103 %patch -p0
michael@529 104
michael@529 105 %build
michael@529 106
michael@529 107 %install
michael@529 108 # create installation hierarchy
michael@529 109 %{l_shtool} mkdir -f -p -m 755 \
michael@529 110 $RPM_BUILD_ROOT%{l_prefix}/sbin \
michael@529 111 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
michael@529 112 $RPM_BUILD_ROOT%{l_prefix}/etc/drupal/sites \
michael@529 113 $RPM_BUILD_ROOT%{l_prefix}/share/drupal \
michael@529 114 $RPM_BUILD_ROOT%{l_prefix}/var/drupal/files \
michael@529 115 $RPM_BUILD_ROOT%{l_prefix}/var/drupal/run \
michael@529 116 $RPM_BUILD_ROOT%{l_prefix}/var/drupal/log \
michael@529 117 $RPM_BUILD_ROOT%{l_prefix}/var/drupal/dump \
michael@529 118 $RPM_BUILD_ROOT%{l_prefix}/var/drupal/db
michael@529 119
michael@529 120 # avoid copying unnecessary text files
michael@529 121 find . -name "*.orig" -print | xargs rm -f
michael@529 122 rm -f CHANGELOG.txt COPYRIGHT.txt INSTALL.*.txt INSTALL.txt
michael@529 123 rm -f LICENSE.txt MAINTAINERS.txt UPGRADE.txt
michael@529 124
michael@529 125 # install all files (and strip down installation afterwards)
michael@529 126 cp -rp * .htaccess \
michael@529 127 $RPM_BUILD_ROOT%{l_prefix}/share/drupal/
michael@529 128
michael@529 129 # set data location
michael@529 130 ln -s ../../../../var/drupal/files \
michael@529 131 $RPM_BUILD_ROOT%{l_prefix}/share/drupal/sites/default/files
michael@529 132
michael@530 133 # install runcommand script
michael@529 134 %if "%{with_dcron}" == "yes"
michael@529 135 l_drupal_cron="no"
michael@529 136 %else
michael@529 137 l_drupal_cron="yes"
michael@529 138 %endif
michael@529 139 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@529 140 -e "s;@l_drupal_cron@;$l_drupal_cron;g" \
michael@529 141 %{SOURCE rc.drupal} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@529 142
michael@529 143 # install database setup script
michael@529 144 %if "%{with_mysql}" == "yes"
michael@529 145 l_dbtype="mysql"
michael@529 146 %endif
michael@529 147 %if "%{with_pgsql}" == "yes"
michael@529 148 l_dbtype="pgsql"
michael@529 149 %endif
michael@529 150 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@529 151 -e "s;@l_dbtype@;$l_dbtype;g" \
michael@529 152 -e "s;@l_bash@;%{l_bash};g" \
michael@529 153 %{SOURCE drupal-setup.sh} $RPM_BUILD_ROOT%{l_prefix}/sbin/drupal-setup
michael@529 154
michael@529 155 # install crond(8) job script
michael@529 156 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@529 157 %{SOURCE drupal-cron.sh} $RPM_BUILD_ROOT%{l_prefix}/sbin/drupal-cron
michael@529 158 %if "%{with_dcron}" == "yes"
michael@529 159 %{l_shtool} mkdir -f -p -m 755 \
michael@529 160 $RPM_BUILD_ROOT%{l_prefix}/etc/dcron/crontabs
michael@529 161 echo "*/5 * * * * su %{l_rusr} -c %{l_prefix}/sbin/drupal-cron" \
michael@529 162 >$RPM_BUILD_ROOT%{l_prefix}/etc/dcron/crontabs/drupal
michael@529 163 %endif
michael@529 164
michael@529 165 # install custom Apache configuration
michael@529 166 l_hostname=`%{l_shtool} echo -e %h`
michael@529 167 l_domainname=`%{l_shtool} echo -e %d | cut -c2-`
michael@529 168 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@529 169 -e "s;@l_hostname@;$l_hostname;g" \
michael@529 170 -e "s;@l_domainname@;$l_domainname;g" \
michael@529 171 %{SOURCE drupal-apache.conf} \
michael@529 172 $RPM_BUILD_ROOT%{l_prefix}/etc/drupal/
michael@529 173
michael@529 174 # determine installation files
michael@529 175 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@529 176 %{l_files_std} \
michael@529 177 '%config %{l_prefix}/etc/drupal' \
michael@529 178 %if "%{with_dcron}" == "yes"
michael@529 179 '%not %dir %{l_prefix}/etc/dcron' \
michael@529 180 '%not %dir %{l_prefix}/etc/dcron/crontabs' \
michael@529 181 '%attr(-,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/dcron/crontabs/drupal' \
michael@529 182 %endif
michael@529 183 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/drupal' \
michael@529 184 '%attr(555,%{l_rusr},%{l_rgrp}) %{l_prefix}/share/drupal/sites/default' \
michael@529 185 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/drupal'
michael@529 186
michael@529 187 %files -f files
michael@529 188
michael@529 189 %clean
michael@529 190
michael@529 191 %post
michael@529 192 if [ $1 -eq 1 ]; then
michael@529 193 # display final hints on initial installation
michael@529 194 ( echo "1. To complete this installation of Drupal please start the RDBMS"
michael@529 195 echo " and initialize the Drupal database like this:"
michael@529 196 %if "%{with_mysql}" == "yes"
michael@529 197 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc mysql start"
michael@529 198 %endif
michael@529 199 %if "%{with_pgsql}" == "yes"
michael@529 200 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc postgresql start"
michael@529 201 %endif
michael@529 202 echo " \$ $RPM_INSTALL_PREFIX/sbin/drupal-setup install"
michael@529 203 echo ""
michael@529 204 echo "2. Now start Drupal by running the command"
michael@529 205 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc drupal start"
michael@529 206 echo " and connect with a browser to the URL:"
michael@529 207 echo " http://127.0.0.1:8080/drupal/install.php"
michael@529 208 echo " Follow the instructions. On the page \"Database configuration\""
michael@529 209 %if "%{with_mysql}" == "yes"
michael@529 210 echo " use database type \"mysql\", database name \"drupal\", database"
michael@529 211 %endif
michael@529 212 %if "%{with_pgsql}" == "yes"
michael@529 213 echo " use database type \"pgsql\", database name \"drupal\", database"
michael@529 214 %endif
michael@529 215 echo " username \"drupal\" and database password \"drupal\". Also create"
michael@529 216 echo " an account and login. The first account will automatically become"
michael@529 217 echo " the main administrator account with total control over Drupal."
michael@529 218 echo ""
michael@529 219 echo "3. By default, Drupal runs its own Apache server on IPv4 address"
michael@529 220 echo " 127.0.0.1, TCP port 8080. Please change this by editing the"
michael@529 221 echo " \"Listen 127.0.0.1:8080\" directive in"
michael@529 222 echo " $RPM_INSTALL_PREFIX/etc/drupal/drupal-apache.conf"
michael@529 223 echo " Also do not forget to cp -p"
michael@529 224 echo " $RPM_INSTALL_PREFIX/share/drupal/sites/default/settings.php"
michael@529 225 echo " $RPM_INSTALL_PREFIX/share/drupal/sites/settings.php"
michael@529 226 echo " and adjust the \$base_url variable."
michael@529 227 echo ""
michael@529 228 echo "4. Access Drupal via:"
michael@529 229 echo " http://127.0.0.1:8080/drupal/ (website view)"
michael@529 230 echo " http://127.0.0.1:8080/drupal/admin (website admin)"
michael@529 231 ) | %{l_rpmtool} msg -b -t notice
michael@529 232 fi
michael@529 233 if [ $1 -eq 2 ]; then
michael@529 234 # display final hints on update installation
michael@529 235 ( echo "Please perform a Drupal database upgrade by visiting the"
michael@529 236 echo " http://127.0.0.1:8080/drupal/update.php"
michael@529 237 echo "page on your Drupal website."
michael@529 238 ) | %{l_rpmtool} msg -b -t notice
michael@529 239
michael@529 240 # after upgrade, restart service
michael@529 241 eval `%{l_rc} drupal status 2>/dev/null`
michael@529 242 [ ".$drupal_active" = .yes ] && %{l_rc} drupal restart
michael@529 243 fi
michael@529 244 exit 0
michael@529 245
michael@529 246 %preun
michael@529 247 if [ $1 -eq 0 ]; then
michael@529 248 # before erase, stop service and remove log files
michael@529 249 %{l_rc} drupal stop 2>/dev/null
michael@529 250 $RPM_INSTALL_PREFIX/sbin/drupal-setup uninstall >/dev/null 2>&1 || true
michael@529 251 rm -f $RPM_INSTALL_PREFIX/var/drupal/files/* >/dev/null 2>&1 || true
michael@529 252 rm -f $RPM_INSTALL_PREFIX/var/drupal/log/* >/dev/null 2>&1 || true
michael@529 253 rm -f $RPM_INSTALL_PREFIX/var/drupal/run/* >/dev/null 2>&1 || true
michael@529 254 rm -f $RPM_INSTALL_PREFIX/var/drupal/dump/* >/dev/null 2>&1 || true
michael@529 255 rm -f $RPM_INSTALL_PREFIX/var/drupal/db/* >/dev/null 2>&1 || true
michael@529 256 fi
michael@529 257 exit 0
michael@529 258

mercurial