## ## drupal.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2005 OpenPKG Foundation e.V. ## Copyright (c) 2000-2005 Ralf S. Engelschall ## ## 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 4.6.0 %define V_module_article 4.6.0 %define V_module_attachment 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_diff 4.6.0 %define V_module_feedback 4.6.0 %define V_module_filemanager 4.6.0 %define V_module_flexinode 4.6.0 %define V_module_fontsize 4.6.0 %define V_module_forms 4.6.0 %define V_module_form_mail 4.6.0 %define V_module_freelinking 4.6.0 %define V_module_front 4.6.0 %define V_module_glossary 4.6.0 %define V_module_hof 4.6.0 %define V_module_htmlarea 4.6.0 %define V_module_image 4.6.0 %define V_module_livediscussions 4.6.0 %define V_module_mailalias 4.6.0 %define V_module_mailhandler 4.6.0 %define V_module_members 4.6.0 %define V_module_menu_otf 4.6.0 %define V_module_nodewords 4.6.0 %define V_module_nmoderation 4.6.0 %define V_module_node_import 4.6.0 %define V_module_og 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_survey 4.6.0 %define V_module_syndication 4.6.0 %define V_module_taxonomy_block 4.6.0 %define V_module_taxonomy_browser 4.6.0 %define V_module_taxonomy_dhtml 4.6.0 %define V_module_taxonomy_menu 4.6.0 %define V_module_taxonomy_multi_edit 4.6.0 %define V_module_textile 4.6.0 %define V_module_theme_editor 4.6.0 %define V_module_tinymce 4.6.0 %define V_module_urlfilter 4.6.0 %define V_module_variable 4.6.0 %define V_module_webform 4.6.0 %define V_module_webserver_auth 4.6.0 %define V_module_week 4.6.0 %define V_engine_phptemplate 4.6.0 %define V_theme_spreadfirefox 4.6.0 %define V_theme_democratica 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: 20050416 # 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/attachment-%{V_module_attachment}.tar.gz Source3: http://drupal.org/files/projects/buddylist-%{V_module_buddylist}.tar.gz Source4: http://drupal.org/files/projects/commentcloser-%{V_module_commentcloser}.tar.gz Source5: http://drupal.org/files/projects/customerror-%{V_module_customerror}.tar.gz Source6: http://drupal.org/files/projects/contextlinks-%{V_module_contextlinks}.tar.gz Source7: http://drupal.org/files/projects/daily-%{V_module_daily}.tar.gz Source8: http://drupal.org/files/projects/diff-%{V_module_diff}.tar.gz Source9: http://drupal.org/files/projects/feedback-%{V_module_feedback}.tar.gz Source10: http://drupal.org/files/projects/filemanager-%{V_module_filemanager}.tar.gz Source11: http://drupal.org/files/projects/flexinode-%{V_module_flexinode}.tar.gz Source12: http://drupal.org/files/projects/fontsize-%{V_module_fontsize}.tar.gz Source13: http://drupal.org/files/projects/forms-%{V_module_forms}.tar.gz Source14: http://drupal.org/files/projects/form_mail-%{V_module_form_mail}.tar.gz Source15: http://drupal.org/files/projects/freelinking-%{V_module_freelinking}.tar.gz Source16: http://drupal.org/files/projects/front-%{V_module_front}.tar.gz Source17: http://drupal.org/files/projects/glossary-%{V_module_glossary}.tar.gz Source18: http://drupal.org/files/projects/hof-%{V_module_hof}.tar.gz Source19: http://drupal.org/files/projects/htmlarea-%{V_module_htmlarea}.tar.gz Source20: http://drupal.org/files/projects/image-%{V_module_image}.tar.gz Source21: http://drupal.org/files/projects/livediscussions-%{V_module_livediscussions}.tar.gz Source22: http://drupal.org/files/projects/mailalias-%{V_module_mailalias}.tar.gz Source23: http://drupal.org/files/projects/mailhandler-%{V_module_mailhandler}.tar.gz Source24: http://drupal.org/files/projects/members-%{V_module_members}.tar.gz Source25: http://drupal.org/files/projects/menu_otf-%{V_module_menu_otf}.tar.gz Source26: http://drupal.org/files/projects/nodewords-%{V_module_nodewords}.tar.gz Source27: http://drupal.org/files/projects/nmoderation-%{V_module_nmoderation}.tar.gz Source28: http://drupal.org/files/projects/node_import-%{V_module_node_import}.tar.gz Source29: http://drupal.org/files/projects/og-%{V_module_og}.tar.gz Source30: http://drupal.org/files/projects/paypal_framework-%{V_module_paypal_framework}.tar.gz Source31: http://drupal.org/files/projects/paypal_subscription-%{V_module_paypal_subscription}.tar.gz Source32: http://drupal.org/files/projects/quotes-%{V_module_quotes}.tar.gz Source33: http://drupal.org/files/projects/rsvp-%{V_module_rsvp}.tar.gz Source34: http://drupal.org/files/projects/series-%{V_module_series}.tar.gz Source35: http://drupal.org/files/projects/sitemenu-%{V_module_sitemenu}.tar.gz Source36: http://drupal.org/files/projects/smartypants-%{V_module_smartypants}.tar.gz Source37: http://drupal.org/files/projects/survey-%{V_module_survey}.tar.gz Source38: http://drupal.org/files/projects/syndication-%{V_module_syndication}.tar.gz Source39: http://drupal.org/files/projects/taxonomy_block-%{V_module_taxonomy_block}.tar.gz Source40: http://drupal.org/files/projects/taxonomy_browser-%{V_module_taxonomy_browser}.tar.gz Source41: http://drupal.org/files/projects/taxonomy_dhtml-%{V_module_taxonomy_dhtml}.tar.gz Source42: http://drupal.org/files/projects/taxonomy_menu-%{V_module_taxonomy_menu}.tar.gz Source43: http://drupal.org/files/projects/taxonomy_multi_edit-%{V_module_taxonomy_multi_edit}.tar.gz Source44: http://drupal.org/files/projects/textile-%{V_module_textile}.tar.gz Source45: http://drupal.org/files/projects/theme_editor-%{V_module_theme_editor}.tar.gz Source46: http://drupal.org/files/projects/tinymce-%{V_module_tinymce}.tar.gz Source47: http://drupal.org/files/projects/urlfilter-%{V_module_urlfilter}.tar.gz Source48: http://drupal.org/files/projects/variable-%{V_module_variable}.tar.gz Source49: http://drupal.org/files/projects/webform-%{V_module_webform}.tar.gz Source50: http://drupal.org/files/projects/webserver_auth-%{V_module_webserver_auth}.tar.gz Source51: http://drupal.org/files/projects/week-%{V_module_week}.tar.gz Source52: http://drupal.org/files/projects/phptemplate-%{V_engine_phptemplate}.tar.gz Source53: http://drupal.org/files/projects/spreadfirefox-%{V_theme_spreadfirefox}.tar.gz Source54: http://drupal.org/files/projects/democratica-%{V_theme_democratica}.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 %setup -q -D -T -a 24 %setup -q -D -T -a 25 %setup -q -D -T -a 26 %setup -q -D -T -a 27 %setup -q -D -T -a 28 %setup -q -D -T -a 29 %setup -q -D -T -a 30 %setup -q -D -T -a 31 %setup -q -D -T -a 32 %setup -q -D -T -a 33 %setup -q -D -T -a 34 %setup -q -D -T -a 35 %setup -q -D -T -a 36 %setup -q -D -T -a 37 %setup -q -D -T -a 38 %setup -q -D -T -a 39 %setup -q -D -T -a 40 %setup -q -D -T -a 41 %setup -q -D -T -a 42 %setup -q -D -T -a 43 %setup -q -D -T -a 44 %setup -q -D -T -a 45 %setup -q -D -T -a 46 %setup -q -D -T -a 47 %setup -q -D -T -a 48 %setup -q -D -T -a 49 %setup -q -D -T -a 50 %setup -q -D -T -a 51 %setup -q -D -T -a 52 %setup -q -D -T -a 53 %setup -q -D -T -a 54 %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 \ attachment \ buddylist \ commentcloser \ customerror \ contextlinks \ daily \ diff \ feedback \ filemanager \ flexinode \ fontsize \ forms \ form_mail \ freelinking \ front \ glossary \ hof \ htmlarea \ image \ livediscussions \ mailalias \ mailhandler \ members \ menu_otf \ nodewords \ nmoderation \ node_import \ og \ paypal_framework \ paypal_subscription \ quotes \ rsvp \ series \ sitemenu \ smartypants \ survey \ syndication \ taxonomy_block \ taxonomy_browser \ taxonomy_dhtml \ taxonomy_menu \ taxonomy_multi_edit \ textile \ theme_editor \ tinymce \ urlfilter \ variable \ webform \ webserver_auth \ 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 add-on template engine %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/share/drupal/themes/engines/phptemplate ( cd phptemplate cp -p *.engine *.php \ $RPM_BUILD_ROOT%{l_prefix}/share/drupal/themes/engines/phptemplate/ ) || exit $? # install add-on themes for theme in \ spreadfirefox \ democratica \ ; do ( cd $theme rm -f CHANGELOG* Changelog* CREDITS* INSTALL* LICENSE* README* TODO* || true rm -f */CHANGELOG* */Changelog* */CREDITS* */INSTALL* */LICENSE* */README* */TODO* || true ) || exit $? cp -rp $theme $RPM_BUILD_ROOT%{l_prefix}/share/drupal/themes/ 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/drupal-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