--- redmine-0.9.1.orig/debian/README.Debian +++ redmine-0.9.1/debian/README.Debian @@ -0,0 +1,120 @@ +redmine for Debian +------------------ +* REDMINE 0.9 PATCHED FOR RAILS 2.2 COMPATIBILITY + rails 2.3 is not currently available in debian. This redmine 0.9 version has been + patched to be able to run with rails 2.2. There are some drawbacks : + - prepend_engine_views plugin is removed, + so any third-party plugin depending on it will fail. + - login then logout does not clear session (this is rails 2.2 failure) + - REST web service partially working, e.g. + get /news.json with a valid HTTP authentication does not login as the user. + +* SUPPORTS SETUP AND UPGRADES OF MULTIPLE DATABASE INSTANCES + This redmine package is designed to automatically configure database + BUT NOT the web server. + The default database instance is called "default". + A debconf facility is provided for configuring several redmine + instances. Use dpkg-reconfigure to define the instances identifiers. + NOTICE : every rake command has to know which instance it applies to. + TO SELECT THE INSTANCE, USE + X_DEBIAN_SITEID= + BEFORE ANY RAKE TASK. + + Example : (run the imap mail receiver) +sudo -u www-data X_DEBIAN_SITEID=default RAILS_ENV=production \ +rake -f /usr/share/redmine/Rakefile \ +redmine:email:receive_imap \ +host=imap.test.com \ +username=test@test.com password=xxxxxx + +* REDMINE GUIDE + http://www.redmine.org/wiki/redmine/Guide + +* REMEMBER TO CHANGE THE DEFAULT ADMIN PASSWORD + By default, redmine admin account log/pass is admin/admin + +* MANUAL WEB SERVER CONFIGURATION + For web server configuration, examples are available in /usr/share/doc/redmine/examples + To choose which instance to run, set the environment variable : + X_DEBIAN_SITEID= + By default, + X_DEBIAN_SITEID=default + + If used with apache2, lighttpd and similar web servers, + it is HIGHLY RECOMMENDED to install libfcgi-ruby, + and when using apache2, libapache2-mod-fcgid. + + Please note that provided apache2 configuration examples are meant to be + used with "rewrite" and "fcgid" modules. The "fastcgi" module is bound to + be deprecated, since + "mod_fcgid is now included in Apache httpd 2.3 source code", see + http://fastcgi.coremail.cn/ + +* QUICK LAUNCH USING WEBRICK + To test redmine without installing a web server, run as root : + cd /usr/share/redmine/ + sudo -u www-data X_DEBIAN_SITEID="default" ruby script/server webrick -e production + and point your browser to http://localhost:3000 + NOTICE : running without sudoing to www-data will change permissions on some files, e.g. + /var/log/redmine files. Fix it or reinstall the redmine package if you did so. + + * OWNERS AND PERMISSIONS + It is assumed ruby will run redmine as www-data:www-data. + Accordingly, these files are owned by root:www-data and have 640 permissions : + /etc/redmine//session.yml + /etc/redmine//database.yml + /etc/redmine//email.yml + These folders are owned by www-data:www-data and have 750 permissions : + /var/log/redmine/* + /var/lib/redmine/* + /var/cache/redmine/* + + Relaxing those permissions is discouraged. Please think twice before doing so. + If one really need to run redmine as another user, please read what follows. + +* MANUAL INSTALL / RUNNING AS UNPRIVILEGED USER WITHOUT COPYING /usr/share/redmine + Why : redmine package upgrades will benefit to all redmine instances, although + calling manually rake db:migrate on each package upgrade is still necessary. + Besides support for X_DEBIAN_SITEID, several environment variables are available : + RAILS_ETC (where database.yml, email.yml are supposed to be) + RAILS_LOG (the log files) + RAILS_VAR (contains the files/ directory) + RAILS_CACHE (cached data) + and, of course, RAILS_ENV + That way, one can install redmine as a user foo : + - first create some directories in e.g. /home/foo/redmine : config, files, tmp, log + - in a terminal, declare those environment variables : + mydir=/home/dev/test/redmine + export RAILS_ETC=$mydir/config + export RAILS_LOG=$mydir/log + export RAILS_VAR=$mydir + export RAILS_CACHE=$mydir/tmp + export RAILS_ENV=production + export X_DEBIAN_SITEID=myinstance + - copy /usr/share/redmine/templates/database.yml.template to $mydir/config/database.yml + and adapt it to your needs; for a quick setup it's easier to use the sqlite template, + located in the same dir. + - link /usr/share/redmine/db to $mydir/db : + ln -s /usr/share/redmine/db $mydir/db + - then "install" redmine, note that db:migrate can't dump to /usr/share/redmine/db/schema.rb, + but that won't stop redmine from working : + rake -f /usr/share/redmine/Rakefile generate_session_store + rake -f /usr/share/redmine/Rakefile db:migrate + rake -f /usr/share/redmine/Rakefile redmine:load_default_data + rake -f /usr/share/redmine/Rakefile db:migrate_plugins + - Run redmine using e.g. webrick and point your browser to localhost:3000 + ruby /usr/share/redmine/script/server webrick -e production + +* MANUAL EMAIL CONFIGURATION +Email settings are not automatically configured, for a quick setup, copy +/usr/share/doc/redmine/examples/email.yml +to +/etc/redmine//email.yml +Then change permissions and owner : +chmod 640 /etc/redmine//email.yml +chown root:www-data /etc/redmine//email.yml +then restart redmine and check if it's working by sending a test email in +Administration panel -> Settings -> Email notifications -> Send a test email +or refer to the Redmine Guide. + + -- Jérémy Lal Sat, 19 Sep 2009 14:30:19 +0200 --- redmine-0.9.1.orig/debian/templates +++ redmine-0.9.1/debian/templates @@ -0,0 +1,29 @@ +Template: redmine/notify-migration +Type: note +_Description: Redmine package now supports multiple instances + You are migrating from an unsupported version. + The current instance will be now called the "default" instance. + Please check your web server configuration files, see README.Debian. + +Template: redmine/old-instances +Type: string +_Description: Redmine instances to be deconfigured: + Configuration files for these instances will be removed. + . + Database (de)configuration will be asked accordingly. + +Template: redmine/current-instances +Type: string +Default: default +_Description: Redmine instances to be configured or upgraded: + Space-separated list of instances identifiers. + . + Each instance has its configuration files in /etc/redmine// + . + To deconfigure an instance, remove its identifier from this list. + +Template: redmine/default-language +Type: select +Choices: ${availableLocales} +Default: ${defaultLocale} +_Description: Default redmine language: --- redmine-0.9.1.orig/debian/config +++ redmine-0.9.1/debian/config @@ -0,0 +1,195 @@ +#!/bin/sh + +set -e +#set -x + +redLocales="bg, bs, ca, cs, da, de, el, en, es, fi, fr, gl, he, hr, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sk, sl, sr, sv, th, tr, uk, vi, zh, zh-tw" + +. /usr/share/debconf/confmodule +db_version 2.0 +# This conf script is capable of backing up +db_capb backup + +OUTSTATE=2 +STATE=1 + +while [ "$STATE" != "0" -a "$STATE" != "$OUTSTATE" ]; do + fIndex=$(($STATE / 10)) + fState=$(($STATE % 10)) + fNextState=$((($fIndex+1)*10)) + if [ $STATE -eq 1 ]; then + # upgrade debconf db if we detect an old redmine version (<= 0.9.0~svn2819) was installed + # detection + fCode=0 + db_get redmine/dbconfig-install || fCode=$? + if [ $fCode -eq 0 ]; then + # remove deprecated debconf templates + db_unregister redmine/reconfigure-webserver || true + db_unregister redmine/restart-webserver || true + db_unregister redmine/webserver-install || true + # copy all current questions to instances/default ones + # get old questions + fOldQuest=$(debconf-show redmine) + OLD_IFS=$IFS + # ugly, if somebody can tell me how to escape \n, please send me an email to kapouer@melix.org + fNewline=" +" + IFS=$fNewline + # for each line, we want to get the three fields, seen, question, value + for lLine in $fOldQuest; do + IFS=$OLD_IFS + lSeen="${lLine%% *}" + if [ "$lSeen" = "*" ]; then + lSeen="true" + lStr="${lLine#\* }" + else + lSeen="false" + lStr="${lLine# }" + fi + lName="${lStr%%\:*}" + if [ "${lName#redmine/instances/}" = "$lName" ]; then + fCode=0 + db_get $lName || fCode=$? + lVal="" + if [ $fCode -eq 0 ]; then + lVal="$RET" + fi + lNewname="redmine/instances/default${lName#redmine}" + if [ -n "$lVal" ]; then + db_register "$lName" "$lNewname" + db_set "$lNewname" "$lVal" + db_fset "$lNewname" seen "$lSeen" + fi + if [ "$lName" != "redmine/default-language" ]; then + # we need redmine/default-language later + db_unregister "$lName" || true + fi + fi + IFS=$fNewline + done + IFS=$OLD_IFS + + # setup default as an old instance + db_set redmine/current-instances "default" + db_input high redmine/notify-migration || true + fi + db_get redmine/current-instances || true + gOldInstances="${RET}" + + # what is that for ? we just got it. + # db_set redmine/current-instances $gOldInstances + db_input medium redmine/current-instances || true + if db_go; then + STATE=$fNextState + else + STATE=0 + fi + db_get redmine/current-instances || true + gInstances="${RET}" + gRemovedInstances="" + for lOld in $gOldInstances; do + lFound=0 + for lCur in $gInstances; do + if [ $lCur = $lOld ]; then + lFound=1 + break + fi + done + if [ $lFound -eq 0 ]; then + if [ -z "$gRemovedInstances" ]; then gRemovedInstances="$lOld"; + else gRemovedInstances="$gRemovedInstances $lOld"; + fi + fi + done + db_set redmine/old-instances "$gRemovedInstances" + gNb=$(echo "$gInstances" | wc -w) + OUTSTATE=$((($gNb+1) * 10)) + else + fIndex=$(($STATE / 10)) + fState=$(($STATE % 10)) + fNextState=$((($fIndex+1)*10)) + fInstance=$(eval "echo \"$gInstances\" | awk '{print \$$fIndex}'") + case "$fState" in + 0) + if [ -f /usr/share/dbconfig-common/dpkg/config ]; then + dbc_dbtypes="sqlite3, pgsql, mysql" + dbc_authmethod_user="password" + dbc_dbuser=redmine + # use same dbname if one has been registered in debconf before + # this is also needed for migration from version <= 0.9.0~svn2819 + fCode=0 + db_get redmine/instances/$fInstance/db/dbname || fCode=$? + if [ $fCode -eq 0 -a -n "$RET" ]; then + dbc_dbname="$RET" + else + dbc_dbname=redmine_$fInstance + fi + fCode=0 + db_get redmine/instances/$fInstance/db/basepath || fCode=$? + if [ $fCode -eq 0 -a -n "$RET" ]; then + dbc_basepath="$RET" + else + dbc_basepath="" + fi + . /usr/share/dbconfig-common/dpkg/config + dbc_go redmine/instances/$fInstance $@ + if [ $? -ne 0 ] ; then + if [ $fIndex -gt 0 ];then + STATE=$((($fIndex-1)*10 + 1)) + else + STATE=0 + fi + continue + fi + db_get redmine/instances/$fInstance/dbconfig-install || true + if [ "$RET" != "true" ]; then + STATE=$fNextState + else + STATE=$(($STATE + 1)) + fi + else + STATE=$OUTSTATE + fi + ;; + 1) + # supported locales + + # now check if current LANG correspond to one of those locales, only if LANG is like aa_BB.YY + locstr=${LANG%.*} + locMin=${locstr%_*} + locMaj=$(echo ${locstr#*_} | tr "[:upper:]" "[:lower:]") + locTrans="$locMin-$locMaj" + OLD_IFS=$IFS + IFS=", " + locAv="en" + for i in $redLocales; do + if [ "$locTrans" = "$i" ];then + locAv=$i + break + elif [ "$locMin" = "$i" ];then + locAv=$i + break + fi + done + IFS=$OLD_IFS + questionLanguage="redmine/instances/${fInstance}/default-language" + # register only if needed + fCode=0 + db_get $questionLanguage || fCode=$? + if [ $fCode -eq 10 ]; then + db_register "redmine/default-language" $questionLanguage + fi + db_subst $questionLanguage availableLocales $redLocales + db_subst $questionLanguage defaultLocale $locAv + db_set $questionLanguage $locAv + db_input medium $questionLanguage || true + + if db_go; then + STATE=$fNextState + else + STATE=$(($STATE - 1)) + fi + ;; + esac + fi +done --- redmine-0.9.1.orig/debian/copyright +++ redmine-0.9.1/debian/copyright @@ -0,0 +1,159 @@ +This package was debianized by Richard Hurt and +Jérémy Lal on Thu, 26 Feb 2009 09:27:29 +0100. + +It was downloaded from http://www.redmine.org + +Upstream Author: + + Jean-Philippe Lang + +Copyright: + + Copyright (C) 2006-2010 Jean-Philippe Lang + +License: GPL-2 + On Debian systems, the complete text of the GNU General + Public License can be found in '/usr/share/common-licenses/GPL-2'. + +The Debian packaging is copyright 2009, Richard Hurt , +Jérémy Lal and is licensed under the GPL-2, see `/usr/share/common-licenses/GPL-2'. + + +Files: app/models/repository/git.rb +Copyright: 2006-2007 Jean-Philippe Lang + 2007 Patrick Aljord +License: GPL-2+ + On Debian systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL'. + +Files: vendor/plugins/ruby-net-ldap-0.0.4 +Copyright: (C) 2006 by Francis Cianfrocca +License: GPL-2 + On Debian systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL-2'. + +Files: extra/svn/reposman.pl +Copyright: none +License: GPL-2+ + On Debian systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL'. + +Files: vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap.rb +Copyright: 2006 by Francis Cianfrocca +License: GPL + On Debian systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL'. + +Files: lib/SVG +Copyright: 2004 Sean Russell +License: GPL-2 + On Debian systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL-2'. + +Files: lib/redcloth3.rb +Copyright: 2004 why the lucky stiff (and his puppet organizations.) +License: BSD + On Debian systems, the complete text of the BSD license + can be found in `/usr/share/common-licenses/BSD'. + +Files: vendor/plugins/acts_as_versioned/lib/acts_as_versioned.rb +Copyright: 2005 Rick Olson +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +Files: vendor/plugins/acts_as_list +Copyright: (c) 2007 David Heinemeier Hansson +License: MIT + +Files: vendor/plugins/awesome_nested_set +Copyright: (c) 2008 Collective Idea +License: MIT + +Files: vendor/plugins/engines +Copyright: (c) 2008 James Adam +License: MIT + +Files: vendor/plugins/gravatar +Copyright: (c) 2007 West Arete Computing, Inc. +License: MIT + +Files: vendor/plugins/open_id_authentication +Copyright: (c) 2007 David Heinemeier Hansson +License: MIT + +Files: vendor/plugins/classic_pagination +Copyright: (c) 2004-2006 David Heinemeier Hansson +License: MIT + +Files: vendor/plugins/acts_as_tree +Copyright: (c) 2007 David Heinemeier Hansson +License: MIT + +Files: vendor/gems/rubytree-0.5.2 +Copyright: (c) 2006, 2007 Anupam Sengupta +License: BSD + On Debian systems, the complete text of the BSD license + can be found in `/usr/share/common-licenses/BSD'. + +Files: vendor/plugins/coderay-0.7.6.227 +Copyright: 2006 murphy (Kornelius Kalnbach) +License: LGPL-2.1 + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +Files: vendor/plugins/rfpdf/lib/rfpdf/fpdf.rb +Copyright: 2005 Brian Ollenberger +License: + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software to use, copy, modify, distribute, sublicense, and/or sell + copies of the software, and to permit persons to whom the software is furnished + to do so. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. + +Files: vendor/plugins/rfpdf +Copyright: (c) 2006 4ssoM LLC +License: MIT + +Files: lib/diff.rb +Copyright: (C) 2001 Lars Christensen +License: GPL + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/GPL'. + +Files: public/javascripts/jstoolbar/jstoolbar.js, public/javascripts/jstoolbar/textile.js +Copyright: (c) 2005 Nicolas Martin & Olivier Meunier and contributors +License: GPL + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/GPL'. + +Files: public/javascripts/calendar +Copyright: Mihai Bazon, 2002-2005 +License: LGPL + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/LGPL'. + +Files: public/stylesheets/csshover.htc +Copyright: (c) 2005 - Peter Nederlof +License: LGPL-2.1 + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +Files: config/initializers/action_group.rb +Copyright: (c) 2004 David Heinemeier Hansson +License: MIT --- redmine-0.9.1.orig/debian/TODO +++ redmine-0.9.1/debian/TODO @@ -0,0 +1,8 @@ +Current work to do : +- fix script/dbconsole (also a rails issue, accepted by rails maintainer, see #552615) so it can be called with : +sudo -u www-data ./script/dbconsole -p -y "/etc/redmine/default/database.yml" production +- login then logout does not clear session (this is rails 2.2 failure) +- REST web service partially working, e.g. +get /news.json with a valid HTTP authentication does not login as the user. +- rake db:migrate actually calls db:dump, which tries to write to RAILS_ROOT/db/schema.rb +This is a problem when run as unprivileged user (see README.Debian to reproduce). --- redmine-0.9.1.orig/debian/compat +++ redmine-0.9.1/debian/compat @@ -0,0 +1 @@ +7 --- redmine-0.9.1.orig/debian/logrotate +++ redmine-0.9.1/debian/logrotate @@ -0,0 +1,10 @@ +# Redmine logs: +/var/log/redmine/*/*.log { + daily + missingok + rotate 14 + compress + delaycompress + notifempty + copytruncate +} --- redmine-0.9.1.orig/debian/postinst +++ redmine-0.9.1/debian/postinst @@ -0,0 +1,248 @@ +#!/bin/sh +# postinst script for redmine +# +# see: dh_installdeb(1) + +set -e +#set -x + +RAKE_VERBOSE=false + +. /usr/share/debconf/confmodule + +# remove and purge old instances each time postinst is called +. /usr/share/dbconfig-common/dpkg/prerm +db_get redmine/old-instances || true +gOldInstances="${RET}" +for lInstance in $gOldInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance remove + fi +done +. /usr/share/dbconfig-common/dpkg/postrm +for lInstance in $gOldInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance purge + fi + if which ucf >/dev/null 2>&1; then + ucf --purge /etc/redmine/$lInstance/database.yml + ucf --purge /etc/redmine/$lInstance/email.yml + fi + rm -rf /etc/redmine/$lInstance +done +db_set redmine/old-instances "" + +. /usr/share/dbconfig-common/dpkg/postinst + +fRailsEnv=production +fRailsLog=/var/log/redmine +fRailsVar=/var/lib/redmine +fRailsCache=/var/cache/redmine +fRailsRun=/var/run/redmine + +case "$1" in + configure|reconfigure) + mkdir -p $fRailsRun/sockets + chown -f www-data:www-data $fRailsRun + chown -f www-data:www-data $fRailsRun/sockets + if [ ! -e $fRailsLog ]; then + mkdir -p $fRailsLog + chown -f www-data:www-data $fRailsLog + fi + if [ ! -e $fRailsVar ]; then + mkdir -p $fRailsVar + chown -f www-data:www-data $fRailsVar + fi + if [ ! -e $fRailsCache ]; then + mkdir -p $fRailsCache + chown -f www-data:www-data $fRailsCache + fi + savedir="`pwd`" + cd /usr/share/redmine + if [ ! -e vendor/rails ]; then + rails-app-debianize + fi + if [ ! -e app/views/members ]; then + mkdir app/views/members + fi + if [ ! -e app/sweepers ]; then + mkdir app/sweepers + fi + if [ ! -e lib/plugins ]; then + mkdir lib/plugins + fi + if [ ! -e public/plugin_assets ]; then + mkdir public/plugin_assets + fi + chown -f www-data:www-data public/plugin_assets + if [ ! -e tmp ]; then + mkdir tmp + fi + chown -fR www-data:www-data tmp + + cd $savedir + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +db_get redmine/current-instances || true +gInstances="${RET}" +for lInstance in $gInstances; do + fRailsEtc=/etc/redmine/$lInstance + fRailsLog=/var/log/redmine/$lInstance + fRailsVar=/var/lib/redmine/$lInstance + fRailsCache=/var/cache/redmine/$lInstance + # dbconfig needs this folder to ouput database.yml + mkdir -p $fRailsEtc + chown -f www-data:www-data $fRailsEtc + withdb=0 + lInstall=0 + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + lInstall=1 + fCode=0 + db_get redmine/instances/$lInstance/dbconfig-reinstall || fCode=$? + if [ $fCode -eq 0 ]; then + if [ "$RET" = "false" ]; then + db_fget redmine/instances/$lInstance/dbconfig-reinstall seen || true + if [ "$RET" = "true" ]; then + lInstall=0 + fi + fi + fi + fi + + if [ $lInstall -eq 1 ]; then + fYml=$fRailsEtc/database.yml.new + lTemplate="database.yml.template" + # if dbtype=sqlite3, use dbbasepath, else dbname + fCode=0 + db_get redmine/instances/$lInstance/database-type || fCode=$? + if [ $fCode -eq 0 -a "$RET" = "sqlite3" ]; then + lTemplate="database-sqlite.yml.template" + fi + + dbc_generate_include=template:$fYml + dbc_generate_include_args="-o template_infile=/usr/share/redmine/templates/${lTemplate}" + dbc_generate_include_owner="root:www-data" + dbc_generate_include_perms="640" + dbc_dbfile_owner="root:www-data" + # this is for sqlite3 to be r/w for www-data + dbc_dbfile_perms="0660" + dbc_dbuser=redmine + # use same dbname if one has been registered in debconf before + # this is also needed for migration from version <= 0.9.0~svn2819 + fCode=0 + db_get redmine/instances/$lInstance/db/dbname || fCode=$? + if [ $fCode -eq 0 -a -n "$RET" ]; then + dbc_dbname="$RET" + else + dbc_dbname=redmine_$lInstance + fi + fCode=0 + db_get redmine/instances/$lInstance/db/basepath || fCode=$? + if [ $fCode -eq 0 -a -n "$RET" ]; then + dbc_basepath="$RET" + fi + + ucf --purge $fYml + dbc_go redmine/instances/$lInstance $@ + ucf --purge $fYml + + if [ -e $fYml ]; then + hasdb=$(grep -m 1 -o -E 'adapter: (mysql|pgsql|sqlite3|postgresql)' $fYml) || true + if [ -n "$hasdb" ]; then + hasdb=$(echo -n ${hasdb#*:}) + withdb=1 + case "$hasdb" in + mysql|postgresql|pgsql) + sed -i -r -e 's/pgsql/postgresql/g' $fYml + ;; + sqlite3) + sed -i -r -e 's/^[^#]+((host|port|username|password): [^:]*)$/# \1/g' $fYml + ;; + esac + fi + ucf --debconf-ok $fYml /etc/redmine/$lInstance/database.yml + rm -f $fYml + fi + fi + case "$1" in + configure|reconfigure) + # create directories + mkdir -p $fRailsLog + mkdir -p $fRailsVar + mkdir -p $fRailsVar/files + mkdir -p $fRailsCache + chmod 750 $fRailsLog + chmod 750 $fRailsVar + chmod 750 $fRailsCache + chown -f www-data:www-data $fRailsLog + chown -f www-data:www-data $fRailsVar + chown -f www-data:www-data $fRailsVar/files + chown -f www-data:www-data $fRailsCache + mkdir -p /var/run/redmine/sockets/${lInstance} + chown -f www-data:www-data /var/run/redmine/sockets/${lInstance} + savedir="`pwd`" + cd /usr/share/redmine + + # add secret key, set permissions, manage file with ucf + if [ ! -f "${fRailsEtc}/session.yml" ]; then + rake -s generate_session_store YML_SESSION_FILENAME="session.yml.new" RAILS_ENV=$fRailsEnv X_DEBIAN_SITEID="${lInstance}" || true + chown -f root:www-data ${fRailsEtc}/session.yml.new + chmod 640 ${fRailsEtc}/session.yml.new + ucf --debconf-ok ${fRailsEtc}/session.yml.new ${fRailsEtc}/session.yml + rm ${fRailsEtc}/session.yml.new + # move old session_store.rb + echo "A new secret session key has been generated in ${fRailsEtc}/session.yml" + fi + if [ -f config/initializers/session_store.rb ]; then + mv config/initializers/session_store.rb config/initializers/session_store.rb.dpkg-old + echo "The old secret session key can be found in +/usr/share/redmine/config/initializers/session_store.rb.dpkg-old" + fi + if [ $withdb -eq 1 ]; then + db_get redmine/instances/${lInstance}/default-language && DEFAULT_LANGUAGE="$RET" + + # handle rake install + echo "Populating database for redmine instance \"${lInstance}\". +This may take a while." + rake -s db:migrate RAILS_ENV=$fRailsEnv X_DEBIAN_SITEID="${lInstance}" VERBOSE=$RAKE_VERBOSE || true + echo "Done." + rake -s redmine:load_default_data RAILS_ENV=$fRailsEnv X_DEBIAN_SITEID="${lInstance}" REDMINE_LANG=$DEFAULT_LANGUAGE || true + # because rake task is executed as root here, and this file is used later by web server, make sure owner is www-data + touch ${fRailsLog}/production.log + chown -f www-data:www-data ${fRailsLog}/production.log + # handle plugins migration + rake -s db:migrate_plugins RAILS_ENV=$fRailsEnv X_DEBIAN_SITEID="${lInstance}" VERBOSE=$RAKE_VERBOSE || true + elif [ $lInstall -eq 0 ]; then + echo "Redmine instance \"${lInstance}\" database is not reinstalled." + else + echo "Redmine instance \"${lInstance}\" database must be configured manually." + fi + cd $savedir + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; + esac +done +#DEBHELPER# + +exit 0 + + --- redmine-0.9.1.orig/debian/dirs +++ redmine-0.9.1/debian/dirs @@ -0,0 +1,7 @@ +var/log/redmine +var/cache/redmine +var/lib/redmine +usr/share/redmine/tmp +usr/share/redmine/public/plugin_assets +etc/redmine +usr/share/redmine/config/initializers/z-plugins --- redmine-0.9.1.orig/debian/rules +++ redmine-0.9.1/debian/rules @@ -0,0 +1,85 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk + +# Get original source, used only because 0.9.0 is not released yet, so we package 0.9.0~svnXXXX +DEB_UPSTREAM_VERSION := $(shell echo $(DEB_VERSION) | cut -d- -f1 ) +TARBALL = $(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz + +SVN_REVISION := $(shell echo $(DEB_UPSTREAM_VERSION) | awk -F"~" '{ print $$2 }' | sed 's/svn//' ) +#SVN_URL := -r $(SVN_REVISION) http://redmine.rubyforge.org/svn/trunk +SVN_URL := http://redmine.rubyforge.org/svn/branches/0.9-stable/ + + +binary-install/redmine:: + # Clean up the "extra" license files + rm -f debian/redmine/usr/share/redmine/doc/COPYING + rm -f debian/redmine/usr/share/redmine/lib/SVG/LICENSE.txt + rm -f debian/redmine/usr/share/redmine/vendor/plugins/*/*LICENSE + rm -f debian/redmine/usr/share/redmine/vendor/plugins/*/COPYING + rm -f debian/redmine/usr/share/redmine/vendor/plugins/ruby-net-ldap-0.0.4/LICENCE + rm -f debian/redmine/usr/share/redmine/vendor/gems/*/COPYING + # ...and other various files + find debian/redmine -name '.gitignore' -type f | xargs rm -f + find debian/redmine -name '.git' -type d | xargs rm -rf + find debian/redmine -name '.svn' -type d | xargs rm -rf + + # Remove old/unused files + # rm -f debian/redmine/usr/share/redmine/extra/svn/reposman.pl + # apache config is handled in its own file. + rm -f debian/redmine/usr/share/redmine/public/.htaccess + + # running redmine as cgi is too slow + rm -f debian/redmine/usr/share/redmine/public/dispatch.cgi.example + + # rename cgi script, check permissions + mv debian/redmine/usr/share/redmine/public/dispatch.fcgi.example debian/redmine/usr/share/redmine/public/dispatch.fcgi + + # remove example config files + rm -f debian/redmine/usr/share/redmine/config/email.yml.example + rm -f debian/redmine/usr/share/redmine/config/database.yml.example + + # Mark scripts as executable until upstream fixes their .tar.gz archive build + chmod a+x debian/redmine/usr/share/redmine/extra/mail_handler/rdm-mailhandler.rb + chmod a+x debian/redmine/usr/share/redmine/extra/svn/reposman.rb + chmod a+x debian/redmine/usr/share/redmine/extra/svn/svnserve.wrapper + chmod a+x debian/redmine/usr/share/redmine/vendor/plugins/coderay-0.7.6.227/bin/coderay + chmod a+x debian/redmine/usr/share/redmine/vendor/plugins/coderay-0.7.6.227/bin/coderay_stylesheet + chmod a+x debian/redmine/usr/share/redmine/vendor/plugins/rfpdf/lib/rfpdf/makefont.rb + chmod a+x debian/redmine/usr/share/redmine/vendor/plugins/rfpdf/test/test_helper.rb + chmod a+x debian/redmine/usr/share/redmine/vendor/gems/rubytree-0.5.2/test/test_binarytree.rb + chmod a+x debian/redmine/usr/share/redmine/vendor/gems/rubytree-0.5.2/test/test_tree.rb + chmod a+x debian/redmine/usr/share/redmine/script/dbconsole + chmod a+x debian/redmine/usr/share/redmine/script/performance/request + chmod a+x debian/redmine/usr/share/redmine/script/process/inspector + chmod a+x debian/redmine/usr/share/redmine/lib/faster_csv.rb + #chmod a+x debian/redmine/usr/share/redmine/public/dispatch.cgi.example + #chmod a+x debian/redmine/usr/share/redmine/public/dispatch.fcgi.example + #chmod a+x debian/redmine/usr/share/redmine/public/dispatch.rb.example + #chmod a+x debian/redmine/usr/share/redmine/script/about + #chmod a+x debian/redmine/usr/share/redmine/script/breakpointer + #chmod a+x debian/redmine/usr/share/redmine/script/console + #chmod a+x debian/redmine/usr/share/redmine/script/destroy + #chmod a+x debian/redmine/usr/share/redmine/script/generate + #chmod a+x debian/redmine/usr/share/redmine/script/performance/benchmarker + #chmod a+x debian/redmine/usr/share/redmine/script/performance/profiler + #chmod a+x debian/redmine/usr/share/redmine/script/plugin + #chmod a+x debian/redmine/usr/share/redmine/script/process/reaper + #chmod a+x debian/redmine/usr/share/redmine/script/process/spawner + #chmod a+x debian/redmine/usr/share/redmine/script/process/spinner + #chmod a+x debian/redmine/usr/share/redmine/script/runner + #chmod a+x debian/redmine/usr/share/redmine/script/server + + +get-orig-source: + rm -rf get-orig-source $(TARBALL) + mkdir get-orig-source + svn export $(SVN_URL) get-orig-source/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION) + GZIP=--best tar czf $(TARBALL) -C get-orig-source $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION) + rm -rf get-orig-source + mv $(TARBALL) .. + echo " "$(TARBALL)" created and moved to the parent directory" + +.PHONY: get-orig-source --- redmine-0.9.1.orig/debian/postrm +++ redmine-0.9.1/debian/postrm @@ -0,0 +1,94 @@ +#!/bin/sh +# postrm script for redmine +# +# see: dh_installdeb(1) + +set -e +#set -x + +if [ -f /usr/share/debconf/confmodule ]; then + . /usr/share/debconf/confmodule +fi + +case "$1" in + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + remove) + if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then + . /usr/share/dbconfig-common/dpkg/postrm + + db_get redmine/old-instances || true + gOldInstances="${RET}" + for lInstance in $gOldInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance $@ + fi + done + + db_get redmine/current-instances || true + gInstances="${RET}" + for lInstance in $gInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance $@ + fi + done + fi + ;; + + purge) + db_get redmine/old-instances || true + gOldInstances="${RET}" + db_get redmine/current-instances || true + gInstances="${RET}" + if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then + . /usr/share/dbconfig-common/dpkg/postrm + for lInstance in $gOldInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance $@ + fi + done + for lInstance in $gInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance $@ + fi + done + fi + if which ucf >/dev/null 2>&1; then + for lInstance in $gOldInstances; do + ucf --purge /etc/redmine/$lInstance/database.yml + ucf --purge /etc/redmine/$lInstance/email.yml + ucf --purge /etc/redmine/$lInstance/session.yml + done + for lInstance in $gInstances; do + ucf --purge /etc/redmine/$lInstance/database.yml + ucf --purge /etc/redmine/$lInstance/email.yml + ucf --purge /etc/redmine/$lInstance/session.yml + done + fi + + rm -rf /var/run/redmine + rm -rf /var/log/redmine + rm -rf /usr/share/redmine + rmdir /var/lib/redmine/*/files || true + rm -rf /var/lib/redmine/*/sessions + rmdir /var/lib/redmine/* || true + rm -rf /var/cache/redmine + rm -rf /etc/redmine + db_purge + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 + + --- redmine-0.9.1.orig/debian/watch +++ redmine-0.9.1/debian/watch @@ -0,0 +1,3 @@ +# Run "uscan" to update to latest upstream release +version=3 +http://rubyforge.org/frs/?group_id=1850 .*/redmine-(.*)\.tar\.gz --- redmine-0.9.1.orig/debian/control +++ redmine-0.9.1/debian/control @@ -0,0 +1,70 @@ +Source: redmine +Section: web +Priority: extra +Maintainer: Jérémy Lal +Uploaders: Debian Ruby Extras Maintainers +Build-Depends: debhelper (>= 7), cdbs, quilt +Build-Depends-Indep: po-debconf +Standards-Version: 3.8.4 +Vcs-Svn: svn://svn.debian.org/svn/pkg-ruby-extras/trunk/redmine/ +Vcs-Browser: http://svn.debian.org/viewsvn/pkg-ruby-extras/trunk/redmine/ +Homepage: http://www.redmine.org + +Package: redmine +Architecture: all +Pre-Depends: debconf +Depends: ruby, ruby1.8 (>= 1.8.7), rake (>=0.8.3), rails (>= 2.2.3), rails (<< 2.3), libjs-prototype (>= 1.6.1), libjs-scriptaculous (>= 1.8.2), dbconfig-common, redmine-sqlite | redmine-mysql | redmine-pgsql, ${misc:Depends} +Recommends: libfcgi-ruby, libapache2-mod-fcgid +Suggests: libsvn-ruby (>= 1.3), librmagick-ruby, libopenid-ruby, thin | mongrel | httpd-cgi +Description: flexible project management web application + Redmine is a flexible project management web application. Written using Ruby + on Rails framework, it is cross-platform and cross-database. + . + Features + * Multiple projects support + * Flexible role based access control + * Flexible issue tracking system + * Gantt chart and calendar + * News, documents & files management + * Feeds & email notifications + * Per project wiki + * Per project forums + * Time tracking + * Custom fields for issues, time-entries, projects and users + * SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs) + * Issue creation via email + * Multiple LDAP authentication support + * User self-registration support + * Multilanguage support + +Package: redmine-mysql +Architecture: all +Depends: libdbd-mysql-ruby, mysql-client | virtual-mysql-client, ${misc:Depends} +Suggests: mysql-server +Description: metapackage providing MySQL dependencies for Redmine + This package only provides MySQL dependencies for Redmine, a + flexible project management web application. Install this + one if you want to use a MySQL database with Redmine. + . + Redmine package should be installed along with this package. + +Package: redmine-pgsql +Architecture: all +Depends: libdbd-pg-ruby, postgresql-client, ${misc:Depends} +Suggests: postgresql +Description: metapackage providing PostgreSQL dependencies for Redmine + This package provides PostgreSQL dependencies for Redmine, a + flexible project management web application. Install this + one if you want to use a PostgreSQL database with Redmine. + . + Redmine package should be installed along with this package. + +Package: redmine-sqlite +Architecture: all +Depends: libdbd-sqlite3-ruby, sqlite3, ${misc:Depends} +Description: metapackage providing sqlite dependencies for Redmine + This package provides sqlite dependencies for Redmine, a + flexible project management web application. Install this + one if you want to use a sqlite database with Redmine. + . + Redmine package should be installed along with this package. --- redmine-0.9.1.orig/debian/links +++ redmine-0.9.1/debian/links @@ -0,0 +1,12 @@ +# Link to libjs-prototype +usr/share/javascript/prototype/prototype.js usr/share/redmine/public/javascripts/prototype.js +# Link to libjs-scriptaculous +usr/share/javascript/scriptaculous/controls.js usr/share/redmine/public/javascripts/controls.js +usr/share/javascript/scriptaculous/dragdrop.js usr/share/redmine/public/javascripts/dragdrop.js +usr/share/javascript/scriptaculous/effects.js usr/share/redmine/public/javascripts/effects.js + +# Redmine is now rails 2.3 compatible, so these three links, +# along with the debian/patches/revert_rails_2.3.patch, are here to get back rails 2.2. +usr/share/redmine/app/controllers/application_controller.rb usr/share/redmine/app/controllers/application.rb +usr/share/redmine/app/views/layouts/mailer.text.html.erb usr/share/redmine/app/views/mailer/layout.text.html.rhtml +usr/share/redmine/app/views/layouts/mailer.text.plain.erb usr/share/redmine/app/views/mailer/layout.text.plain.rhtml --- redmine-0.9.1.orig/debian/changelog +++ redmine-0.9.1/debian/changelog @@ -0,0 +1,40 @@ +redmine (0.9.1-1) unstable; urgency=low + + * Stop using deprecated dbfile param in database.yml. + * Use session.yml to store secret session key. + * Supports and documents running as unprivileged user. (Closes: #564086) + * Split debian/patches. + * Fix typo in po templates. (Closes: #553376) + * Adds pt, de, sv, ru, es, ja translations. + (Closes: #553375, #551002, #552736, #554351, #560999, #555693) + * Fixes CVE-2009-4459 : uses the title tag before defining + the character encoding in a meta tag. (Closes: #563940) + * Install does not fail if rake fails (Closes: #566160) + * Several rails 2.2 incompatibilities have been fixed, + patches are applied with greater care. (Closes: #555956, #567512) + + -- Jérémy Lal Sat, 30 Jan 2010 16:48:26 +0100 + +redmine (0.9.0~svn2907-1) unstable; urgency=low + + * Upstream update. + * Supports reconfigure in postinst. + * Db migration of plugins in postinst. + * Advertise async_smtp in email.yml example. + + -- Jérémy Lal Sat, 10 Oct 2009 17:43:46 +0200 + +redmine (0.9.0~svn2903-1) unstable; urgency=low + + * Upstream update. + * Removes circular dependencies (Closes: #549442) + * Session cookies path should respect RAILS_RELATIVE_URL_ROOT env variable. + * Add folder for proper initialization of some plugins. + + -- Jérémy Lal Thu, 08 Oct 2009 18:59:18 +0200 + +redmine (0.9.0~svn2902-1) unstable; urgency=low + + * Initial release (Closes: #478741) + + -- Jérémy Lal Thu, 01 Oct 2009 12:16:16 +0200 --- redmine-0.9.1.orig/debian/docs +++ redmine-0.9.1/debian/docs @@ -0,0 +1 @@ +debian/doc/examples --- redmine-0.9.1.orig/debian/install +++ redmine-0.9.1/debian/install @@ -0,0 +1,13 @@ +# Install the basic application files +app usr/share/redmine +config usr/share/redmine +db usr/share/redmine +extra usr/share/redmine +lib usr/share/redmine +public usr/share/redmine +Rakefile usr/share/redmine +script usr/share/redmine +test usr/share/redmine +vendor/plugins usr/share/redmine/vendor +vendor/gems usr/share/redmine/vendor +debian/conf/*.template usr/share/redmine/templates --- redmine-0.9.1.orig/debian/prerm +++ redmine-0.9.1/debian/prerm @@ -0,0 +1,53 @@ +#!/bin/sh +# prerm script for redmine +# +# see: dh_installdeb(1) + +set -e +#set -x + +. /usr/share/debconf/confmodule +. /usr/share/dbconfig-common/dpkg/prerm + +case "$1" in + remove) + db_get redmine/old-instances || true + gOldInstances="${RET}" + for lInstance in $gOldInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance $@ + fi + done + + db_get redmine/current-instances || true + gInstances="${RET}" + for lInstance in $gInstances; do + db_get redmine/instances/$lInstance/dbconfig-install || true + if [ "$RET" = "true" ]; then + dbc_go redmine/instances/$lInstance $@ + fi + done + + + # removes symbolic links installed by + vendordir="/usr/share/redmine/vendor/" + rm -f ${vendordir}actionmailer + rm -f ${vendordir}activemodel + rm -f ${vendordir}activeresource + rm -f ${vendordir}rails + rm -f ${vendordir}actionpack + rm -f ${vendordir}activerecord + rm -f ${vendordir}activesupport + rm -f ${vendordir}railties + ;; + + purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; +esac + +#DEBHELPER# + +exit 0 + + --- redmine-0.9.1.orig/debian/README.source +++ redmine-0.9.1/debian/README.source @@ -0,0 +1,69 @@ +Notes from a discussion with upstream author: +Redmine 0.8.7 targets rails 2.1.2 +Redmine 0.9 targets rails 2.3 +UPSTREAM TRUNK MIGRATION TO RAILS 2.3 HAS STARTED SINCE REVISION 2886 +Until rails 2.3 enters debian, redmine debian package will keep using rails 2.2.3. +All upstream revisions concerning rails 2.3 will be either ignored or patched to +work with rails 2.2 + +Please note the diff from the pristine source contains only the debian/ folder. + +Updating the package with redmine 0.9-stable branch: + * to get a "pristine" svn tar package : + ./debian/rules get-orig-source + +Then build the package : + cd redmine-0.9.x/ + debuild + + +* RAKE TEST +1. dpkg-reconfigure redmine, add a "test" sqlite3 instance +2. edit /etc/redmine/test/database.yml, copy 'production' section and rename it 'test' +3. in /usr/share/redmine, run : + sudo -u www-data X_DEBIAN_SITEID=test RAILS_ENV=test rake test +Install missing gems (e.g. thoughtbot-shoulda, nofxx-object_daddy) using gem install xxx +Notice : there are debian packages available for libshoulda-ruby and libmocha-ruby. +To run tests with repositories, they must be uncompressed and put in the right place. + +4. These are rails 2.2 failures. It is not clear (to me) wether the fix should be backported from rails 2.3, +or the failure simply ignored since they could be considered minor failures. + 1) Failure: +test_login_and_logout_should_clear_session(AccountTest) + [./test/integration/account_test.rb:191:in `test_login_and_logout_should_clear_session' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `__send__' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `run' + /usr/share/redmine/vendor/rails/actionpack/lib/action_controller/integration.rb:597:in `run']: +login should reset session. + expected to be != to +. + + 2) Failure: +test_Add_a_user_as_an_anonymous_user_should_fail(AdminTest) + [./test/integration/admin_test.rb:47:in `test_Add_a_user_as_an_anonymous_user_should_fail' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `__send__' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `run' + /usr/share/redmine/vendor/rails/actionpack/lib/action_controller/integration.rb:597:in `run']: +Expected response to be a redirect to but was a redirect to . + + 3) Failure: +test: get /news in :json format with a valid HTTP authentication should login as the user. (HttpBasicLoginWithApiTokenTest) + [./test/integration/http_basic_login_with_api_token_test.rb:63:in `__bind_1261645152_696173' + /var/lib/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:351:in `call' + /var/lib/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:351:in `test: get /news in :json format with a valid HTTP authentication should login as the user. ' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `__send__' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `run' + /usr/share/redmine/vendor/rails/actionpack/lib/action_controller/integration.rb:597:in `run']: +<#> expected but was +<#>. + + 4) Failure: +test: get /news in :json format with a valid HTTP authentication should respond with success. (HttpBasicLoginWithApiTokenTest) + [/var/lib/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/assertions.rb:55:in `assert_accepts' + /var/lib/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/action_controller/macros.rb:124:in `__bind_1261645153_57906' + /var/lib/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:351:in `call' + /var/lib/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:351:in `test: get /news in :json format with a valid HTTP authentication should respond with success. ' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `__send__' + /usr/share/redmine/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:94:in `run' + /usr/share/redmine/vendor/rails/actionpack/lib/action_controller/integration.rb:597:in `run']: +Expected response to be a 200, but was 401 --- redmine-0.9.1.orig/debian/patches/0015-OrderedHash-to-Hash.patch +++ redmine-0.9.1/debian/patches/0015-OrderedHash-to-Hash.patch @@ -0,0 +1,23 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Thu, 21 Jan 2010 09:38:43 +0100 +Subject: [PATCH] OrderedHash to Hash + +Since in rails 2.2 OrderedHash < Array, not < Hash. +--- + app/models/issue.rb | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/app/models/issue.rb b/app/models/issue.rb +index f4ebb29..4146547 100644 +--- a/app/models/issue.rb ++++ b/app/models/issue.rb +@@ -157,7 +157,7 @@ class Issue < ActiveRecord::Base + if new_tracker_id + self.tracker_id = new_tracker_id + end +- send :attributes_without_tracker_first=, new_attributes, *args ++ send :attributes_without_tracker_first=, new_attributes.to_hash, *args + end + alias_method_chain :attributes=, :tracker_first + +-- --- redmine-0.9.1.orig/debian/patches/0009-Wrong-path-for-interpreter.patch +++ redmine-0.9.1/debian/patches/0009-Wrong-path-for-interpreter.patch @@ -0,0 +1,19 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sat, 9 Jan 2010 23:57:26 +0100 +Subject: [PATCH] Wrong path for interpreter. + +--- + lib/faster_csv.rb | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/lib/faster_csv.rb b/lib/faster_csv.rb +index 9c3a406..13a48ef 100644 +--- a/lib/faster_csv.rb ++++ b/lib/faster_csv.rb +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/ruby -w ++#!/usr/bin/ruby -w + + # = faster_csv.rb -- Faster CSV Reading and Writing + # +-- --- redmine-0.9.1.orig/debian/patches/0002-Revert-rails-2.3-changes-in-mailer.patch +++ redmine-0.9.1/debian/patches/0002-Revert-rails-2.3-changes-in-mailer.patch @@ -0,0 +1,183 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Mon, 23 Nov 2009 00:32:38 +0100 +Subject: [PATCH] Revert rails 2.3 changes in mailer. + +--- + app/models/mailer.rb | 49 ++++++++++++++++++------------------------------- + 1 files changed, 18 insertions(+), 31 deletions(-) + +diff --git a/app/models/mailer.rb b/app/models/mailer.rb +index 9c409af..864ac6d 100644 +--- a/app/models/mailer.rb ++++ b/app/models/mailer.rb +@@ -16,7 +16,6 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + class Mailer < ActionMailer::Base +- layout 'mailer' + helper :application + helper :issues + helper :custom_fields +@@ -46,7 +45,6 @@ class Mailer < ActionMailer::Base + subject "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] (#{issue.status.name}) #{issue.subject}" + body :issue => issue, + :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue) +- render_multipart('issue_add', body) + end + + # Builds a tmail object used to email recipients of the edited issue. +@@ -73,8 +71,6 @@ class Mailer < ActionMailer::Base + body :issue => issue, + :journal => journal, + :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue) +- +- render_multipart('issue_edit', body) + end + + def reminder(user, issues, days) +@@ -84,7 +80,6 @@ class Mailer < ActionMailer::Base + body :issues => issues, + :days => days, + :issues_url => url_for(:controller => 'issues', :action => 'index', :set_filter => 1, :assigned_to_id => user.id, :sort_key => 'due_date', :sort_order => 'asc') +- render_multipart('reminder', body) + end + + # Builds a tmail object used to email users belonging to the added document's project. +@@ -98,7 +93,6 @@ class Mailer < ActionMailer::Base + subject "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}" + body :document => document, + :document_url => url_for(:controller => 'documents', :action => 'show', :id => document) +- render_multipart('document_added', body) + end + + # Builds a tmail object used to email recipients of a project when an attachements are added. +@@ -129,7 +123,6 @@ class Mailer < ActionMailer::Base + body :attachments => attachments, + :added_to => added_to, + :added_to_url => added_to_url +- render_multipart('attachments_added', body) + end + + # Builds a tmail object used to email recipients of a news' project when a news item is added. +@@ -144,7 +137,6 @@ class Mailer < ActionMailer::Base + subject "[#{news.project.name}] #{l(:label_news)}: #{news.title}" + body :news => news, + :news_url => url_for(:controller => 'news', :action => 'show', :id => news) +- render_multipart('news_added', body) + end + + # Builds a tmail object used to email the recipients of the specified message that was posted. +@@ -162,7 +154,6 @@ class Mailer < ActionMailer::Base + subject "[#{message.board.project.name} - #{message.board.name} - msg#{message.root.id}] #{message.subject}" + body :message => message, + :message_url => url_for(:controller => 'messages', :action => 'show', :board_id => message.board_id, :id => message.root) +- render_multipart('message_posted', body) + end + + # Builds a tmail object used to email the recipients of a project of the specified wiki content was added. +@@ -179,7 +170,6 @@ class Mailer < ActionMailer::Base + subject "[#{wiki_content.project.name}] #{l(:mail_subject_wiki_content_added, :page => wiki_content.page.pretty_title)}" + body :wiki_content => wiki_content, + :wiki_content_url => url_for(:controller => 'wiki', :action => 'index', :id => wiki_content.project, :page => wiki_content.page.title) +- render_multipart('wiki_content_added', body) + end + + # Builds a tmail object used to email the recipients of a project of the specified wiki content was updated. +@@ -197,7 +187,6 @@ class Mailer < ActionMailer::Base + body :wiki_content => wiki_content, + :wiki_content_url => url_for(:controller => 'wiki', :action => 'index', :id => wiki_content.project, :page => wiki_content.page.title), + :wiki_diff_url => url_for(:controller => 'wiki', :action => 'diff', :id => wiki_content.project, :page => wiki_content.page.title, :version => wiki_content.version) +- render_multipart('wiki_content_updated', body) + end + + # Builds a tmail object used to email the specified user their account information. +@@ -212,7 +201,6 @@ class Mailer < ActionMailer::Base + body :user => user, + :password => password, + :login_url => url_for(:controller => 'account', :action => 'login') +- render_multipart('account_information', body) + end + + # Builds a tmail object used to email all active administrators of an account activation request. +@@ -226,7 +214,6 @@ class Mailer < ActionMailer::Base + subject l(:mail_subject_account_activation_request, Setting.app_title) + body :user => user, + :url => url_for(:controller => 'users', :action => 'index', :status => User::STATUS_REGISTERED, :sort_key => 'created_on', :sort_order => 'desc') +- render_multipart('account_activation_request', body) + end + + # Builds a tmail object used to email the specified user that their account was activated by an administrator. +@@ -240,7 +227,6 @@ class Mailer < ActionMailer::Base + subject l(:mail_subject_register, Setting.app_title) + body :user => user, + :login_url => url_for(:controller => 'account', :action => 'login') +- render_multipart('account_activated', body) + end + + def lost_password(token) +@@ -249,7 +235,6 @@ class Mailer < ActionMailer::Base + subject l(:mail_subject_lost_password, Setting.app_title) + body :token => token, + :url => url_for(:controller => 'account', :action => 'lost_password', :token => token.value) +- render_multipart('lost_password', body) + end + + def register(token) +@@ -258,7 +243,6 @@ class Mailer < ActionMailer::Base + subject l(:mail_subject_register, Setting.app_title) + body :token => token, + :url => url_for(:controller => 'account', :action => 'activate', :token => token.value) +- render_multipart('register', body) + end + + def test(user) +@@ -266,7 +250,6 @@ class Mailer < ActionMailer::Base + recipients user.mail + subject 'Redmine test' + body :url => url_for(:controller => 'welcome') +- render_multipart('test', body) + end + + # Overrides default deliver! method to prevent from sending an email +@@ -349,22 +332,26 @@ class Mailer < ActionMailer::Base + super + end + +- # Rails 2.3 has problems rendering implicit multipart messages with +- # layouts so this method will wrap an multipart messages with +- # explicit parts. +- # +- # https://rails.lighthouseapp.com/projects/8994/tickets/2338-actionmailer-mailer-views-and-content-type +- # https://rails.lighthouseapp.com/projects/8994/tickets/1799-actionmailer-doesnt-set-template_format-when-rendering-layouts +- +- def render_multipart(method_name, body) ++ # Renders a message with the corresponding layout ++ def render_message(method_name, body) ++ layout = method_name.to_s.match(%r{text\.html\.(rhtml|rxml)}) ? 'layout.text.html.rhtml' : 'layout.text.plain.rhtml' ++ body[:content_for_layout] = render(:file => method_name, :body => body) ++ ActionView::Base.new(template_root, body, self).render(:file => "mailer/#{layout}", :use_full_path => true) ++ end ++ ++ # for the case of plain text only ++ def body(*params) ++ value = super(*params) + if Setting.plain_text_mail? +- content_type "text/plain" +- body render(:file => "#{method_name}.text.plain.rhtml", :body => body, :layout => 'mailer.text.plain.erb') +- else +- content_type "multipart/alternative" +- part :content_type => "text/plain", :body => render(:file => "#{method_name}.text.plain.rhtml", :body => body, :layout => 'mailer.text.plain.erb') +- part :content_type => "text/html", :body => render_message("#{method_name}.text.html.rhtml", body) ++ templates = Dir.glob("#{template_path}/#{@template}.text.plain.{rhtml,erb}") ++ unless String === @body or templates.empty? ++ template = File.basename(templates.first) ++ @body[:content_for_layout] = render(:file => template, :body => @body) ++ @body = ActionView::Base.new(template_root, @body, self).render(:file => "mailer/layout.text.plain.rhtml", :use_full_path => true) ++ return @body ++ end + end ++ return value + end + + # Makes partial rendering work with Rails 1.2 (retro-compatibility) +-- --- redmine-0.9.1.orig/debian/patches/0001-Revert-this-default_scope-rails-2.3-usage.patch +++ redmine-0.9.1/debian/patches/0001-Revert-this-default_scope-rails-2.3-usage.patch @@ -0,0 +1,33 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sun, 22 Nov 2009 23:29:40 +0100 +Subject: [PATCH] Revert this default_scope rails 2.3 usage. + +--- + app/models/enumeration.rb | 6 ++---- + 1 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/app/models/enumeration.rb b/app/models/enumeration.rb +index 3b7a434..947e7b7 100644 +--- a/app/models/enumeration.rb ++++ b/app/models/enumeration.rb +@@ -16,8 +16,6 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + class Enumeration < ActiveRecord::Base +- default_scope :order => "#{Enumeration.table_name}.position ASC" +- + belongs_to :project + + acts_as_list :scope => 'type = \'#{type}\'' +@@ -30,8 +28,8 @@ class Enumeration < ActiveRecord::Base + validates_uniqueness_of :name, :scope => [:type, :project_id] + validates_length_of :name, :maximum => 30 + +- named_scope :shared, :conditions => { :project_id => nil } +- named_scope :active, :conditions => { :active => true } ++ named_scope :shared, :conditions => { :project_id => nil }, :order => "#{Enumeration.table_name}.position ASC" ++ named_scope :active, :conditions => { :active => true }, :order => "#{Enumeration.table_name}.position ASC" + + def self.default + # Creates a fake default scope so Enumeration.default will check +-- --- redmine-0.9.1.orig/debian/patches/0011-Move-session-configuration-to-YML-file-next-to-datab.patch +++ redmine-0.9.1/debian/patches/0011-Move-session-configuration-to-YML-file-next-to-datab.patch @@ -0,0 +1,79 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sun, 10 Jan 2010 00:30:02 +0100 +Subject: [PATCH] Move session configuration to YML file, next to database.yml path. + +--- + config/initializers/50-session.rb | 11 +++++++++++ + lib/tasks/initializers.rake | 35 +++++++++++++++++++++-------------- + 2 files changed, 32 insertions(+), 14 deletions(-) + create mode 100644 config/initializers/50-session.rb + +diff --git a/config/initializers/50-session.rb b/config/initializers/50-session.rb +new file mode 100644 +index 0000000..34707c5 +--- /dev/null ++++ b/config/initializers/50-session.rb +@@ -0,0 +1,11 @@ ++# loads cookie based session session and secret keys ++# crash if file not found ++ ++filename = ENV['RAILS_ETC'] ? File.join(ENV['RAILS_ETC'], 'session.yml') : File.join(File.dirname(__FILE__), '..', 'session.yml') ++sessionconfig = YAML::load_file(filename) ++ ++ActionController::Base.session = { ++ :session_key => sessionconfig[Rails.env]['session_key'], ++ :secret => sessionconfig[Rails.env]['secret'], ++ :session_path => ENV['RAILS_RELATIVE_URL_ROOT'] ? ENV['RAILS_RELATIVE_URL_ROOT'] : '/' ++} +diff --git a/lib/tasks/initializers.rake b/lib/tasks/initializers.rake +index ce87475..058798a 100644 +--- a/lib/tasks/initializers.rake ++++ b/lib/tasks/initializers.rake +@@ -1,11 +1,14 @@ + desc 'Generates a configuration file for cookie store sessions.' ++task :generate_session_store + +-file 'config/initializers/session_store.rb' do +- path = File.join(RAILS_ROOT, 'config', 'initializers', 'session_store.rb') +- secret = ActiveSupport::SecureRandom.hex(40) +- File.open(path, 'w') do |f| +- f.write <<"EOF" +-# This file was generated by 'rake config/initializers/session_store.rb', ++ENV['X_DEBIAN_SITEID'] ||= 'default' ++ENV['RAILS_ETC'] ||= "/etc/redmine/#{ENV['X_DEBIAN_SITEID']}" ++filename = ENV['YML_SESSION_FILENAME'] ? ENV['YML_SESSION_FILENAME'] : 'session.yml' ++path = File.join(ENV['RAILS_ETC'] ? ENV['RAILS_ETC'] : File.join(RAILS_ROOT, 'config'), filename) ++secret = ActiveSupport::SecureRandom.hex(40) ++File.open(path, 'w') do |f| ++ f.write <<"EOF" ++# This file was generated by 'rake generate_session_store', + # and should not be made visible to public. + # If you have a load-balancing Redmine cluster, you will need to use the + # same version of this file on each machine. And be sure to restart your +@@ -15,13 +18,17 @@ file 'config/initializers/session_store.rb' do + # change this key, all old sessions will become invalid! Make sure the + # secret is at least 30 characters and all random, no regular words or + # you'll be exposed to dictionary attacks. +-ActionController::Base.session = { +- :session_key => '_redmine_session', +- :secret => '#{secret}' +-} ++production: ++ session_key: _redmine_#{ENV['X_DEBIAN_SITEID']} ++ secret: #{secret} ++ ++development: ++ session_key: _redmine_#{ENV['X_DEBIAN_SITEID']} ++ secret: #{secret} ++ ++test: ++ session_key: _redmine_#{ENV['X_DEBIAN_SITEID']} ++ secret: #{secret} ++ + EOF +- end + end +- +-desc 'Generates a configuration file for cookie store sessions.' +-task :generate_session_store => ['config/initializers/session_store.rb'] +-- --- redmine-0.9.1.orig/debian/patches/0006-No-need-to-declare-dependency-on-mocha.-It-s-there-b.patch +++ redmine-0.9.1/debian/patches/0006-No-need-to-declare-dependency-on-mocha.-It-s-there-b.patch @@ -0,0 +1,19 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sun, 13 Dec 2009 12:56:46 +0100 +Subject: [PATCH] No need to declare dependency on mocha. It's there but rails2.2 thinks it's not. + +--- + config/environments/test.rb | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/config/environments/test.rb b/config/environments/test.rb +index 0d1b42e..fd764b8 100644 +--- a/config/environments/test.rb ++++ b/config/environments/test.rb +@@ -26,4 +26,4 @@ config.action_controller.allow_forgery_protection = false + + config.gem "thoughtbot-shoulda", :lib => "shoulda", :source => "http://gems.github.com" + config.gem "nofxx-object_daddy", :lib => "object_daddy", :source => "http://gems.github.com" +-config.gem "mocha" ++#config.gem "mocha" +-- --- redmine-0.9.1.orig/debian/patches/0010-Allows-environment-variables-to-setup-debian-paths.patch +++ redmine-0.9.1/debian/patches/0010-Allows-environment-variables-to-setup-debian-paths.patch @@ -0,0 +1,105 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sun, 10 Jan 2010 00:03:57 +0100 +Subject: [PATCH] Allows environment variables to setup debian paths. + +--- + app/models/attachment.rb | 2 +- + config/environment.rb | 19 ++++++++++++++++++- + config/initializers/10-patches.rb | 3 +++ + config/initializers/40-email.rb | 2 +- + public/dispatch.fcgi.example | 7 +++++-- + 5 files changed, 28 insertions(+), 5 deletions(-) + +diff --git a/app/models/attachment.rb b/app/models/attachment.rb +index e44b162..296d8b9 100644 +--- a/app/models/attachment.rb ++++ b/app/models/attachment.rb +@@ -43,7 +43,7 @@ class Attachment < ActiveRecord::Base + "LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"} + + cattr_accessor :storage_path +- @@storage_path = "#{RAILS_ROOT}/files" ++ @@storage_path = ENV['RAILS_VAR'] ? File.join(ENV['RAILS_VAR'], 'files') : "#{RAILS_ROOT}/files" + + def validate + if self.filesize > Setting.attachment_max_size.to_i.kilobytes +diff --git a/config/environment.rb b/config/environment.rb +index 1f7d23e..a248e7e 100644 +--- a/config/environment.rb ++++ b/config/environment.rb +@@ -2,7 +2,15 @@ + + # Uncomment below to force Rails into production mode when + # you don't control web/app server and can't set it the proper way +-# ENV['RAILS_ENV'] ||= 'production' ++ENV['RAILS_ENV'] ||= 'production' ++ ++# for debian package : setup proper environment variables and paths ++# To run redmine as unprivileged user, see /usr/share/doc/redmine/README.Debian ++ENV['X_DEBIAN_SITEID'] ||= 'default' ++ENV['RAILS_ETC'] ||= "/etc/redmine/#{ENV['X_DEBIAN_SITEID']}" ++ENV['RAILS_LOG'] ||= "/var/log/redmine/#{ENV['X_DEBIAN_SITEID']}" ++ENV['RAILS_VAR'] ||= "/var/lib/redmine/#{ENV['X_DEBIAN_SITEID']}" ++ENV['RAILS_CACHE'] ||= "/var/cache/redmine/#{ENV['X_DEBIAN_SITEID']}" + + # Specifies gem version of Rails to use when vendor/rails is not present + RAILS_GEM_VERSION = '2.2.3' unless defined? RAILS_GEM_VERSION +@@ -30,9 +38,18 @@ Rails::Initializer.run do |config| + # (by default production uses :info, the others :debug) + # config.log_level = :debug + ++ # log path ++ config.log_path = File.join(ENV['RAILS_LOG'], "#{ENV['RAILS_ENV']}.log") unless !ENV['RAILS_LOG'] ++ + # Enable page/fragment caching by setting a file-based store + # (remember to create the caching directory and make it readable to the application) + # config.action_controller.fragment_cache_store = :file_store, "#{RAILS_ROOT}/cache" ++ ++ # the file cache store ++ config.cache_store = :file_store, ENV['RAILS_CACHE'] ++ ++ # Set Active Record's database.yml path ++ config.database_configuration_file = File.join(ENV['RAILS_ETC'], 'database.yml') unless !ENV['RAILS_ETC'] + + # Activate observers that should always be running + # config.active_record.observers = :cacher, :garbage_collector +diff --git a/config/initializers/10-patches.rb b/config/initializers/10-patches.rb +index cdc3bfd..2edbe7b 100644 +--- a/config/initializers/10-patches.rb ++++ b/config/initializers/10-patches.rb +@@ -78,3 +78,6 @@ module AsynchronousMailer + end + + ActionMailer::Base.send :include, AsynchronousMailer ++ ++# the session store ++ActionController::Base.session_options[:tmpdir] = File.join(ENV['RAILS_VAR'], 'sessions') unless !ENV['RAILS_VAR'] +diff --git a/config/initializers/40-email.rb b/config/initializers/40-email.rb +index 5b388ec..d7aba5c 100644 +--- a/config/initializers/40-email.rb ++++ b/config/initializers/40-email.rb +@@ -1,7 +1,7 @@ + # Loads action_mailer settings from email.yml + # and turns deliveries on if configuration file is found + +-filename = File.join(File.dirname(__FILE__), '..', 'email.yml') ++filename = ENV['RAILS_ETC'] ? File.join(ENV['RAILS_ETC'], 'email.yml') : File.join(File.dirname(__FILE__), '..', 'email.yml') + if File.file?(filename) + mailconfig = YAML::load_file(filename) + +diff --git a/public/dispatch.fcgi.example b/public/dispatch.fcgi.example +index 664dbbb..d24a04b 100755 +--- a/public/dispatch.fcgi.example ++++ b/public/dispatch.fcgi.example +@@ -20,5 +20,8 @@ + # + require File.dirname(__FILE__) + "/../config/environment" + require 'fcgi_handler' +- +-RailsFCGIHandler.process! ++if ENV['RAILS_LOG'] ++ RailsFCGIHandler.process! File.join(ENV['RAILS_LOG'], 'fastcgi.crash.log'), 20 ++else ++ RailsFCGIHandler.process! ++end +-- --- redmine-0.9.1.orig/debian/patches/0004-Monkey-patches-for-group-support-taken-from-rails-2..patch +++ redmine-0.9.1/debian/patches/0004-Monkey-patches-for-group-support-taken-from-rails-2..patch @@ -0,0 +1,63 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sat, 9 Jan 2010 23:30:15 +0100 +Subject: [PATCH] Monkey patches for group support, taken from rails 2.3. + +--- + config/initializers/action_group.rb | 47 +++++++++++++++++++++++++++++++++++ + 1 files changed, 47 insertions(+), 0 deletions(-) + create mode 100644 config/initializers/action_group.rb + +diff --git a/config/initializers/action_group.rb b/config/initializers/action_group.rb +new file mode 100644 +index 0000000..95a9e78 +--- /dev/null ++++ b/config/initializers/action_group.rb +@@ -0,0 +1,47 @@ ++module ActionView ++ module Helpers ++ module FormOptionsHelper ++ def grouped_options_for_select(grouped_options, selected_key = nil, prompt = nil) ++ body = '' ++ body << content_tag(:option, prompt, :value => "") if prompt ++ grouped_options = grouped_options.sort if grouped_options.is_a?(Hash) ++ grouped_options.each do |group| ++ body << content_tag(:optgroup, options_for_select(group[1], selected_key), :label => group[0]) ++ end ++ body ++ end ++ end ++ end ++ ++ require 'action_view/test_case' ++ require 'action_controller/test_process' ++ class FormOptionsHelperTest < ActionView::TestCase ++ def test_grouped_options_for_select_with_array ++ assert_dom_equal( ++ "\n\n", ++ grouped_options_for_select([ ++ ["North America", ++ [['United States','US'],"Canada"]], ++ ["Europe", ++ [["Great Britain","GB"], "Germany"]] ++ ]) ++ ) ++ end ++ ++ def test_grouped_options_for_select_with_selected_and_prompt ++ assert_dom_equal( ++ "\n", ++ grouped_options_for_select([["Hats", ["Baseball Cap","Cowboy Hat"]]], "Cowboy Hat", "Choose a product...") ++ ) ++ end ++ ++ def test_optgroups_with_with_options_with_hash ++ assert_dom_equal( ++ "\n\n", ++ grouped_options_for_select({'North America' => ['United States','Canada'], 'Europe' => ['Denmark','Germany']}) ++ ) ++ end ++ end ++end ++ ++ +-- --- redmine-0.9.1.orig/debian/patches/0008-Revert-this-rails-2.3-plugin.patch +++ redmine-0.9.1/debian/patches/0008-Revert-this-rails-2.3-plugin.patch @@ -0,0 +1,37 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sun, 22 Nov 2009 23:17:28 +0100 +Subject: [PATCH] Revert this rails 2.3 plugin. + +--- + vendor/plugins/prepend_engine_views/init.rb | 21 --------------------- + 1 files changed, 0 insertions(+), 21 deletions(-) + delete mode 100644 vendor/plugins/prepend_engine_views/init.rb + +diff --git a/vendor/plugins/prepend_engine_views/init.rb b/vendor/plugins/prepend_engine_views/init.rb +deleted file mode 100644 +index cbf0e89..0000000 +--- a/vendor/plugins/prepend_engine_views/init.rb ++++ /dev/null +@@ -1,21 +0,0 @@ +-module PrependEngineViews +- def self.included(base) +- base.send(:include, InstanceMethods) +- base.class_eval do +- alias_method_chain :add_engine_view_paths, :prepend +- end +- end +- +- module InstanceMethods +- # Patch Rails so engine's views are prepended to the view_path, +- # thereby letting plugins override application views +- def add_engine_view_paths_with_prepend +- paths = ActionView::PathSet.new(engines.collect(&:view_path)) +- ActionController::Base.view_paths.unshift(*paths) +- ActionMailer::Base.view_paths.unshift(*paths) if configuration.frameworks.include?(:action_mailer) +- end +- end +-end +- +-Rails::Plugin::Loader.send :include, PrependEngineViews +- +-- --- redmine-0.9.1.orig/debian/patches/0003-Depends-on-rails-2.2.3.patch +++ redmine-0.9.1/debian/patches/0003-Depends-on-rails-2.2.3.patch @@ -0,0 +1,42 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Mon, 23 Nov 2009 00:44:09 +0100 +Subject: [PATCH] Depends on rails 2.2.3 + +--- + config/environment.rb | 2 +- + vendor/plugins/engines/boot.rb | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/config/environment.rb b/config/environment.rb +index 97fc54a..1f7d23e 100644 +--- a/config/environment.rb ++++ b/config/environment.rb +@@ -5,7 +5,7 @@ + # ENV['RAILS_ENV'] ||= 'production' + + # Specifies gem version of Rails to use when vendor/rails is not present +-RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION ++RAILS_GEM_VERSION = '2.2.3' unless defined? RAILS_GEM_VERSION + + # Bootstrap the Rails environment, frameworks, and default configuration + require File.join(File.dirname(__FILE__), 'boot') +diff --git a/vendor/plugins/engines/boot.rb b/vendor/plugins/engines/boot.rb +index 7dd90d1..c153353 100644 +--- a/vendor/plugins/engines/boot.rb ++++ b/vendor/plugins/engines/boot.rb +@@ -1,6 +1,6 @@ + begin + require 'rails/version' +- unless Rails::VERSION::MAJOR >= 2 && Rails::VERSION::MINOR >= 3 && Rails::VERSION::TINY >= 2 ++ unless Rails::VERSION::MAJOR >= 2 && Rails::VERSION::MINOR >= 2 && Rails::VERSION::TINY >= 3 + raise "This version of the engines plugin requires Rails 2.3.2 or later!" + end + end +@@ -14,4 +14,4 @@ require File.join(File.dirname(__FILE__), 'lib/engines') + :default_plugin_loader => Engines::Plugin::Loader, + :default_plugins => [:engines, :all] }.each do |name, default| + Rails::Configuration.send(:define_method, name) { default } +-end +\ No newline at end of file ++end +-- --- redmine-0.9.1.orig/debian/patches/series +++ redmine-0.9.1/debian/patches/series @@ -0,0 +1,15 @@ +0001-Revert-this-default_scope-rails-2.3-usage.patch +0002-Revert-rails-2.3-changes-in-mailer.patch +0003-Depends-on-rails-2.2.3.patch +0004-Monkey-patches-for-group-support-taken-from-rails-2..patch +0005-Returns-a-hash-in-any-case-since-rails-2.2-could-ret.patch +0006-No-need-to-declare-dependency-on-mocha.-It-s-there-b.patch +0007-Rescue-TamperedWithCookie-because-rails-2.2-does-not.patch +0008-Revert-this-rails-2.3-plugin.patch +0009-Wrong-path-for-interpreter.patch +0010-Allows-environment-variables-to-setup-debian-paths.patch +0011-Move-session-configuration-to-YML-file-next-to-datab.patch +0012-Duplicate-name-value-in-request.patch +0013-REST-API-for-my-account.patch +0014-Sanitize-textarea-id-for-rails2.2.patch +0015-OrderedHash-to-Hash.patch --- redmine-0.9.1.orig/debian/patches/0013-REST-API-for-my-account.patch +++ redmine-0.9.1/debian/patches/0013-REST-API-for-my-account.patch @@ -0,0 +1,54 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sat, 16 Jan 2010 18:21:50 +0100 +Subject: [PATCH] REST API for my/account + +This allows my/account.(json|xml) to return User.current. +--- + app/controllers/my_controller.rb | 8 ++++++-- + config/routes.rb | 6 ++++++ + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb +index f686759..f960951 100644 +--- a/app/controllers/my_controller.rb ++++ b/app/controllers/my_controller.rb +@@ -17,7 +17,7 @@ + + class MyController < ApplicationController + before_filter :require_login +- ++ accept_key_auth :index + helper :issues + helper :custom_fields + +@@ -39,7 +39,11 @@ class MyController < ApplicationController + + def index + page +- render :action => 'page' ++ respond_to do |format| ++ format.html { render :action => 'page' } ++ format.xml { render :xml => @user.to_xml } ++ format.json { render :json => @user.to_json } ++ end + end + + # Show user's page +diff --git a/config/routes.rb b/config/routes.rb +index e2560c1..4bca52e 100644 +--- a/config/routes.rb ++++ b/config/routes.rb +@@ -17,6 +17,12 @@ ActionController::Routing::Routes.draw do |map| + map.connect 'time_entries/:id/edit', :action => 'edit', :controller => 'timelog' + map.connect 'projects/:project_id/time_entries/new', :action => 'edit', :controller => 'timelog' + map.connect 'projects/:project_id/issues/:issue_id/time_entries/new', :action => 'edit', :controller => 'timelog' ++ ++ map.with_options :controller => 'my' do |my_routes| ++ my_routes.with_options :conditions => {:method => :get} do |my_views| ++ my_views.connect 'my/account.:format', :action => 'index' ++ end ++ end + + map.with_options :controller => 'timelog' do |timelog| + timelog.connect 'projects/:project_id/time_entries', :action => 'details' +-- --- redmine-0.9.1.orig/debian/patches/0005-Returns-a-hash-in-any-case-since-rails-2.2-could-ret.patch +++ redmine-0.9.1/debian/patches/0005-Returns-a-hash-in-any-case-since-rails-2.2-could-ret.patch @@ -0,0 +1,23 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sat, 12 Dec 2009 18:19:39 +0100 +Subject: [PATCH] Returns a hash in any case, since rails 2.2 could return an OrderedHash, which is an array. + +--- + app/models/query.rb | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/app/models/query.rb b/app/models/query.rb +index 788f34e..bb87284 100644 +--- a/app/models/query.rb ++++ b/app/models/query.rb +@@ -430,6 +430,9 @@ class Query < ActiveRecord::Base + r = r.keys.inject({}) {|h, k| h[c.custom_field.cast_value(k)] = r[k]; h} + end + end ++ if !r.nil? && r.is_a?(ActiveSupport::OrderedHash) ++ r = r.to_hash ++ end + r + rescue ::ActiveRecord::StatementInvalid => e + raise StatementInvalid.new(e.message) +-- --- redmine-0.9.1.orig/debian/patches/0007-Rescue-TamperedWithCookie-because-rails-2.2-does-not.patch +++ redmine-0.9.1/debian/patches/0007-Rescue-TamperedWithCookie-because-rails-2.2-does-not.patch @@ -0,0 +1,25 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sun, 13 Dec 2009 14:25:43 +0100 +Subject: [PATCH] Rescue TamperedWithCookie because rails 2.2 does not. + +--- + app/controllers/application_controller.rb | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb +index 20a8e57..b388812 100644 +--- a/app/controllers/application_controller.rb ++++ b/app/controllers/application_controller.rb +@@ -22,6 +22,11 @@ class ApplicationController < ActionController::Base + include Redmine::I18n + + layout 'base' ++ ++ # In case the cookie store secret changes ++ rescue_from CGI::Session::CookieStore::TamperedWithCookie do |exception| ++ render :text => 'Your session was invalid and has been reset. Please, reload this page.', :status => 500 ++ end + + # Remove broken cookie after upgrade from 0.8.x (#4292) + # See https://rails.lighthouseapp.com/projects/8994/tickets/3360 +-- --- redmine-0.9.1.orig/debian/patches/0012-Duplicate-name-value-in-request.patch +++ redmine-0.9.1/debian/patches/0012-Duplicate-name-value-in-request.patch @@ -0,0 +1,42 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sat, 16 Jan 2010 17:16:40 +0100 +Subject: [PATCH] Duplicate name value in request + +In rails 2.2, when two inputs have the same name, only the first one's value will be considered. It's best if the hidden input is rejected after the main input, and ignored by rails 2.2. +--- + app/helpers/settings_helper.rb | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb +index e57b75f..a5d8355 100644 +--- a/app/helpers/settings_helper.rb ++++ b/app/helpers/settings_helper.rb +@@ -41,14 +41,14 @@ module SettingsHelper + setting_values = [] unless setting_values.is_a?(Array) + + setting_label(setting, options) + +- hidden_field_tag("settings[#{setting}][]", '') + + choices.collect do |choice| + text, value = (choice.is_a?(Array) ? choice : [choice, choice]) + content_tag('label', + check_box_tag("settings[#{setting}][]", value, Setting.send(setting).include?(value)) + text.to_s, + :class => 'block' + ) +- end.join ++ end.join + ++ hidden_field_tag("settings[#{setting}][]", '') + end + + def setting_text_field(setting, options={}) +@@ -63,8 +63,8 @@ module SettingsHelper + + def setting_check_box(setting, options={}) + setting_label(setting, options) + +- hidden_field_tag("settings[#{setting}]", 0) + +- check_box_tag("settings[#{setting}]", 1, Setting.send("#{setting}?"), options) ++ check_box_tag("settings[#{setting}]", 1, Setting.send("#{setting}?"), options) + ++ hidden_field_tag("settings[#{setting}]", 0) + end + + def setting_label(setting, options={}) +-- --- redmine-0.9.1.orig/debian/patches/0014-Sanitize-textarea-id-for-rails2.2.patch +++ redmine-0.9.1/debian/patches/0014-Sanitize-textarea-id-for-rails2.2.patch @@ -0,0 +1,66 @@ +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= +Date: Sun, 17 Jan 2010 15:18:41 +0100 +Subject: [PATCH] Sanitize textarea id for rails2.2 + +In rails 2.2, the id attribute of a textarea is not sanitized as it is for other form tags. Fix this using a minimal monkey patch from rails 2.3. +--- + .../initializers/text_field_helper_santitize_id.rb | 49 ++++++++++++++++++++ + 1 files changed, 49 insertions(+), 0 deletions(-) + create mode 100644 config/initializers/text_field_helper_santitize_id.rb + +diff --git a/config/initializers/text_field_helper_santitize_id.rb b/config/initializers/text_field_helper_santitize_id.rb +new file mode 100644 +index 0000000..429c806 +--- /dev/null ++++ b/config/initializers/text_field_helper_santitize_id.rb +@@ -0,0 +1,49 @@ ++require 'action_view/helpers/tag_helper' ++ ++module ActionView ++ module Helpers ++ module FormTagHelper ++ # Creates a text input area; use a textarea for longer text inputs such as blog posts or descriptions. ++ # ++ # ==== Options ++ # * :size - A string specifying the dimensions (columns by rows) of the textarea (e.g., "25x10"). ++ # * :rows - Specify the number of rows in the textarea ++ # * :cols - Specify the number of columns in the textarea ++ # * :disabled - If set to true, the user will not be able to use this input. ++ # * :escape - By default, the contents of the text input are HTML escaped. ++ # If you need unescaped contents, set this to false. ++ # * Any other key creates standard HTML attributes for the tag. ++ # ++ # ==== Examples ++ # text_area_tag 'post' ++ # # => ++ # ++ # text_area_tag 'bio', @user.bio ++ # # => ++ # ++ # text_area_tag 'body', nil, :rows => 10, :cols => 25 ++ # # => ++ # ++ # text_area_tag 'body', nil, :size => "25x10" ++ # # => ++ # ++ # text_area_tag 'description', "Description goes here.", :disabled => true ++ # # => ++ # ++ # text_area_tag 'comment', nil, :class => 'comment_input' ++ # # => ++ def text_area_tag(name, content = nil, options = {}) ++ options.stringify_keys! ++ ++ if size = options.delete("size") ++ options["cols"], options["rows"] = size.split("x") if size.respond_to?(:split) ++ end ++ ++ escape = options.key?("escape") ? options.delete("escape") : true ++ content = html_escape(content) if escape ++ ++ content_tag :textarea, content, { "name" => name, "id" => sanitize_to_id(name) }.update(options.stringify_keys) ++ end ++ end ++ end ++end +-- --- redmine-0.9.1.orig/debian/doc/examples/lighttpd-socket-alias.conf +++ redmine-0.9.1/debian/doc/examples/lighttpd-socket-alias.conf @@ -0,0 +1,26 @@ +$SERVER["socket"] == "localhost:8080" { + $HTTP["url"] =~ "^/redmine(/|$)" { + var.X_DEBIAN_SITEID = "default" + server.document-root = "/usr/share/redmine/public/" + server.indexfiles = ( "dispatch.fcgi" ) + server.error-handler-404 = "/redmine/dispatch.fcgi" + alias.url = ("/redmine" => "/usr/share/redmine/public") + fastcgi.server += ( + ".fcgi" => ( + "localhost" => ( + "min-procs" => 1, + # max-procs >= 2 for Upload Progress or other tasks that need a second parallel request + "max-procs" => 2, + "socket" => "/var/run/redmine/sockets/" + var.X_DEBIAN_SITEID + "/fcgi.socket", + "bin-path" => "/usr/share/redmine/public/dispatch.fcgi", + "bin-environment" => ( + "RAILS_RELATIVE_URL_ROOT" => "/redmine", + "X_DEBIAN_SITEID" => var.X_DEBIAN_SITEID + ), + "check-local" => "disable", + "kill-signal" => 10 # this is because programs linked against libfcgi need USR1 kill-signal + ) + ) + ) + } +} --- redmine-0.9.1.orig/debian/doc/examples/apache2-host.conf +++ redmine-0.9.1/debian/doc/examples/apache2-host.conf @@ -0,0 +1,25 @@ +# These modules must be enabled : rewrite, fcgid +# (mod_fastcgi is much harder to configure) +# Configuration for http://localhost:8080 + + # DefaultInitEnv for module mod_fcgid + DefaultInitEnv RAILS_RELATIVE_URL_ROOT "" + DefaultInitEnv X_DEBIAN_SITEID "default" + + # the mod_fcgid socket path + SocketPath "/var/run/redmine/sockets/default" + + DocumentRoot /usr/share/redmine/public + + Options +FollowSymLinks +ExecCGI + Order allow,deny + Allow from all + RewriteEngine On + RewriteBase "" + RewriteRule ^$ index.html [QSA] + RewriteRule ^([^.]+)$ $1.html [QSA] + RewriteCond %{REQUEST_FILENAME} !-f [OR] + RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$ + RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] + + --- redmine-0.9.1.orig/debian/doc/examples/lighttpd-host-alias.conf +++ redmine-0.9.1/debian/doc/examples/lighttpd-host-alias.conf @@ -0,0 +1,26 @@ +$HTTP["host"] =~ "^localhost$" { + $HTTP["url"] =~ "^/redmine(/|$)" { + var.X_DEBIAN_SITEID = "default" + server.document-root = "/usr/share/redmine/public/" + server.indexfiles = ( "dispatch.fcgi" ) + server.error-handler-404 = "/redmine/dispatch.fcgi" + alias.url = ("/redmine" => "/usr/share/redmine/public") + fastcgi.server += ( + ".fcgi" => ( + "localhost" => ( + "min-procs" => 1, + # max-procs >= 2 for Upload Progress or other tasks that need a second parallel request + "max-procs" => 2, + "socket" => "/var/run/redmine/sockets/" + var.X_DEBIAN_SITEID + "/fcgi.socket", + "bin-path" => "/usr/share/redmine/public/dispatch.fcgi", + "bin-environment" => ( + "RAILS_RELATIVE_URL_ROOT" => "/redmine", + "X_DEBIAN_SITEID" => var.X_DEBIAN_SITEID + ), + "check-local" => "disable", + "kill-signal" => 10 # this is because programs linked against libfcgi need USR1 kill-signal + ) + ) + ) + } +} --- redmine-0.9.1.orig/debian/doc/examples/lighttpd-socket.conf +++ redmine-0.9.1/debian/doc/examples/lighttpd-socket.conf @@ -0,0 +1,23 @@ +$SERVER["socket"] == "localhost:8080" { + var.X_DEBIAN_SITEID = "default" + server.document-root = "/usr/share/redmine/public/" + server.indexfiles = ( "dispatch.fcgi" ) + server.error-handler-404 = "/dispatch.fcgi" + #url.rewrite = ( "^\/$" => "index.html", "^([^.]+)$" => "$1.html" ) + fastcgi.server += ( + ".fcgi" => ( + "redmine" => ( + "min-procs" => 1, + # max-procs >= 2 for Upload Progress or other tasks that need a second parallel request + "max-procs" => 2, + "socket" => "/var/run/redmine/sockets/" + var.X_DEBIAN_SITEID + "/fcgi.socket", + "bin-path" => "/usr/share/redmine/public/dispatch.fcgi", + "bin-environment" => ( + "RAILS_RELATIVE_URL_ROOT" => "", + "X_DEBIAN_SITEID" => var.X_DEBIAN_SITEID + ), + "kill-signal" => 10 # this is because programs linked against libfcgi need USR1 kill-signal + ) + ) + ) +} --- redmine-0.9.1.orig/debian/doc/examples/lighttpd-host.conf +++ redmine-0.9.1/debian/doc/examples/lighttpd-host.conf @@ -0,0 +1,23 @@ +$HTTP["host"] =~ "^localhost$" { + var.X_DEBIAN_SITEID = "default" + server.document-root = "/usr/share/redmine/public/" + server.indexfiles = ( "dispatch.fcgi" ) + server.error-handler-404 = "/dispatch.fcgi" + #url.rewrite = ( "^\/$" => "index.html", "^([^.]+)$" => "$1.html" ) + fastcgi.server += ( + ".fcgi" => ( + "redmine" => ( + "min-procs" => 1, + # max-procs >= 2 for Upload Progress or other tasks that need a second parallel request + "max-procs" => 2, + "socket" => "/var/run/redmine/sockets/" + var.X_DEBIAN_SITEID + "/fcgi.socket", + "bin-path" => "/usr/share/redmine/public/dispatch.fcgi", + "bin-environment" => ( + "RAILS_RELATIVE_URL_ROOT" => "", + "X_DEBIAN_SITEID" => var.X_DEBIAN_SITEID + ), + "kill-signal" => 10 # this is because programs linked against libfcgi need USR1 kill-signal + ) + ) + ) +} --- redmine-0.9.1.orig/debian/doc/examples/email.yml +++ redmine-0.9.1/debian/doc/examples/email.yml @@ -0,0 +1,26 @@ +## Outgoing email settings +## Read redmine documentation for setting up mail notifications + +## simple smtp server +#production: +# delivery_method: :smtp +# smtp_settings: +# address: smtp.example.net +# port: 25 +# domain: example.net +# authentication: :login +# user_name: redmine@example.net +# password: redmine + +## typical gmail smtp server +#production: +# send emails asynchronously +# delivery_method: :async_smtp +# smtp_settings: +# enable_starttls_auto: true +# address: smtp.gmail.com +# port: 587 +# domain: gmail.com +# authentication: :plain +# user_name: xxxxxx@gmail.com +# password: xxxxxx --- redmine-0.9.1.orig/debian/doc/examples/apache2-alias.conf +++ redmine-0.9.1/debian/doc/examples/apache2-alias.conf @@ -0,0 +1,25 @@ +# These modules must be enabled : rewrite, fcgid +# (mod_fastcgi is much harder to configure) +# Configuration for http://localhost/redmine + + # DefaultInitEnv for module mod_fcgid + DefaultInitEnv RAILS_RELATIVE_URL_ROOT "/redmine" + DefaultInitEnv X_DEBIAN_SITEID "default" + + # the mod_fcgid socket path + SocketPath "/var/run/redmine/sockets/default" + + Alias "/redmine" /usr/share/redmine/public + + Options +FollowSymLinks +ExecCGI + Order allow,deny + Allow from all + RewriteEngine On + RewriteBase "/redmine" + RewriteRule ^$ index.html [QSA] + RewriteRule ^([^.]+)$ $1.html [QSA] + RewriteCond %{REQUEST_FILENAME} !-f [OR] + RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$ + RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] + + --- redmine-0.9.1.orig/debian/conf/database.yml.template +++ redmine-0.9.1/debian/conf/database.yml.template @@ -0,0 +1,8 @@ +production: + adapter: _DBC_DBTYPE_ + database: _DBC_DBNAME_ + host: _DBC_DBSERVER_ + port: _DBC_DBPORT_ + username: _DBC_DBUSER_ + password: _DBC_DBPASS_ + encoding: utf8 --- redmine-0.9.1.orig/debian/conf/database-sqlite.yml.template +++ redmine-0.9.1/debian/conf/database-sqlite.yml.template @@ -0,0 +1,8 @@ +production: + adapter: _DBC_DBTYPE_ + database: _DBC_BASEPATH_/_DBC_DBNAME_ +# host: _DBC_DBSERVER_ +# port: _DBC_DBPORT_ +# username: _DBC_DBUSER_ +# password: _DBC_DBPASS_ + encoding: utf8 --- redmine-0.9.1.orig/debian/po/ru.po +++ redmine-0.9.1/debian/po/ru.po @@ -0,0 +1,89 @@ +# translation of redmine_0.9.0~svn2907-1_ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2009. +msgid "" +msgstr "" +"Project-Id-Version: redmine 0.9.0~svn2907-1\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: 2009-10-23 12:35+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "Пакет redmine теперь поддерживает несколько экземпляров" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "" +"Вы выполняете переход с неподдерживаемой версии. Текущий экземпляр " +"теперь будет называться \"default\". Проверьте настройки веб-сервера, " +"см. README.Debian." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "Удаление настроек следующих экземпляров redmine:" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "Файлы настройки этих экземпляров будут удалены." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "Про соответствующие базы данных настроек также будет задан вопрос." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "Экземпляры redmine для настройки или обновления:" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "Список идентификаторов экземпляров через пробел." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" +"Каждый экземпляр имеет свои файлы настройки в " +"/etc/redmine/<идентификатор-экземпляра>/" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "Чтобы удалить настройки экземпляра, удалите его идентификатор из списка." + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "Язык по умолчанию в redmine:" + --- redmine-0.9.1.orig/debian/po/templates.pot +++ redmine-0.9.1/debian/po/templates.pot @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "" + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "" --- redmine-0.9.1.orig/debian/po/POTFILES.in +++ redmine-0.9.1/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] templates --- redmine-0.9.1.orig/debian/po/es.po +++ redmine-0.9.1/debian/po/es.po @@ -0,0 +1,110 @@ +# redmine po-debconf translation to Spanish +# Copyright (C) 2009 Software in the Public Interest +# This file is distributed under the same license as the redmine package. +# +# Changes: +# - Initial translation +# Ricardo Fraile , 2009 +# +# Traductores, si no conocen el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas y normas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: redmine 0.9.0\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: 2009-10-26 17:35+0100\n" +"Last-Translator: Ricardo Fraile \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "Ahora el paquete Redmine permite ejecutar múltiples instancias" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "" +"Está migrando de una versión sin soporte. La instancia actual se llamará " +"«default». Por favor, compruebe los archivos de configuración de su servidor " +"web, vea «README.Debian»." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "Las instancias de Redmine que se van a desconfigurar:" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "" +"Los archivos de configuración para estas instancias que se van a eliminar." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "La base de datos de (des)configuración que se pedirá." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "Las instancias de Redmine que se van a configurar o actualizar:" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "" +"La lista, separada por espacios, de los identificadores de las instancias." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" +"Cada instancia tiene su archivo de configuración en«/etc/redmine/" +"/»" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "" +"Para desconfigurar una instancia, elimine su identificador de esta lista." + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "Idioma predeterminado para Redmine:" --- redmine-0.9.1.orig/debian/po/fr.po +++ redmine-0.9.1/debian/po/fr.po @@ -0,0 +1,87 @@ +# Translation of redmine debconf templates to French +# Copyright (C) 2010 Debian French l10n team +# This file is distributed under the same license as the redmine package. +# +# Translators: +# Jérémy Lal , 2010 +msgid "" +msgstr "" +"Project-Id-Version: redmine 0.9.0-1\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: 2009-02-26 15:56+0100\n" +"Last-Translator: Jérémy Lal \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "Gestion de plusieurs instances de Redmine" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "Vous êtes en train de faire migrer Redmine depuis une version non gérée. L'instance " +"actuelle va désormais s'appeler « default ». Veuillez vérifier la configuration " +"du serveur web en vous aidant des indications du fichier /usr/share/doc/redmine/README.Debian." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "Instances Redmine qui seront déconfigurées:" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "Les fichiers de configuration pour les instances déconfigurées seront supprimés." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "La déconfiguration des bases de données correspondantes sera effectuée." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "Instances Redmine qui seront configurées ou mises à jour:" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "Veuillez indiquer, séparés par des espaces, les identifiants des instances à mettre à jour ou configurer. " + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" +"Les fichiers de configuration de chaque instance sont conservés dans /etc/redmine/" +"/" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "" +"Pour déconfigurer une instance, il suffit de retirer son identifiant de cette liste." + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "Langue par défaut de Redmine:" --- redmine-0.9.1.orig/debian/po/de.po +++ redmine-0.9.1/debian/po/de.po @@ -0,0 +1,89 @@ +# Translation of redmine debconf templates to German +# Copyright (C) Helge Kreutzmann , 2009. +# This file is distributed under the same license as the redmine package. +# +msgid "" +msgstr "" +"Project-Id-Version: redmine 0.9.0~svn2907-1\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: 2009-10-30 17:29+0100\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: de \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "Das Redmine-Paket unterstützt jetzt mehrere Instanzen" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "" +"Sie migrieren von einer nicht unterstützten Version. Die aktuelle Instanz " +"wird jetzt die »default«-Instanz genannt. Bitte überprüfen Sie Ihre Webserver-" +"Konfigurationsdateien; lesen Sie dazu README.Debian." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "Zu dekonfigurierende Redmine-Instanzen:" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "Konfigurationsdateien für diese Instanzen werden entfernt." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "Fragen zur Datenbank(de)konfiguration werden entsprechend gestellt." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "" +"Redmine-Instanzen, die konfiguriert oder für die ein Upgrade durchgeführt " +"werden soll:" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "Durch Leerzeichen getrennte Liste von Instanz-Bezeichnern." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" +"Für jede Instanz befinden sich die Konfigurationsdateien in /etc/redmine/" +"/" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "" +"Um eine Instanz zu dekonfigurieren, entfernen Sie seinen Bezeichner aus " +"dieser Liste." + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "Standardsprache für Redmine:" --- redmine-0.9.1.orig/debian/po/sv.po +++ redmine-0.9.1/debian/po/sv.po @@ -0,0 +1,89 @@ +# Translation of redmine debconf template to Swedish +# Copyright © 2009 Martin Bagge +# This file is distributed under the same license as the redmine package. +# +# Martin Bagge , 2009 +msgid "" +msgstr "" +"Project-Id-Version: redmine\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: 2009-10-26 00:35+0100\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: Sweden\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "Redmine-paketet har nu stöd för flera instanser" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "" +"Du flyttar från en version som inte stöds. Den nuvarande instansen kommer " +"att kallas \"standardinstansen\". Kontrollera inställningsfilerna för din " +"webbserver, läs även README.Debian." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "Redmine-instanser som ska avkonfigureras:" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "Konfigurationsfiler för dessa instanser kommer att tas bort." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "(Av)konfigurering av databaser kommer att följa." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "Redmine-instanser som ska konfigureras eller uppgraderas:" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "Separera listan med instansidentigierare med mellanslag." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" +"Alla instanser har sina konfigurationsfiler i /etc/redmine/" +"/" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "" +"För att avkonfigurera en instans; ta bort identifieraren från denna lista." + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "Standardspråk för Redmine:" --- redmine-0.9.1.orig/debian/po/pt.po +++ redmine-0.9.1/debian/po/pt.po @@ -0,0 +1,92 @@ +# Translation of redmine debconf messages for Portuguese +# +# Copyright (C) 2009 The redmine's copyright hoder +# This file is distributed under the same license as the redmine package. +# +# Américo Monteiro , 2009. +msgid "" +msgstr "" +"Project-Id-Version: redmine 0.9.0~svn2902-1\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: 2009-10-12 23:41+0100\n" +"Last-Translator: Américo Monteiro \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "O pacote redmine agora suporta várias instâncias" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "" +"Você está a migrar de uma versão não suportada. A instância actual será " +"chamada a partir de agora a instância \"predefinida\". Por favor verifique " +"os ficheiros de configuração do seu servidor web, veja README.Debian." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "Instâncias do redmine a serem desconfiguradas:" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "Os ficheiros de configuração destas instâncias irão ser removidos." + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "A (des)configuração da base de dados será solicitada em conformidade." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "Instâncias do redmine a serem configuradas ou actualizadas:" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "Lista dos identificadores de instâncias separados por espaços." + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" +"Cada instância tem os seus ficheiros de configuração em /etc/redmine/<" +"instance-identifier>/" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "" +"Para desconfigurar uma instância, remova o seu identificador desta lista." + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "Linguagem predefinida do redmine:" + + --- redmine-0.9.1.orig/debian/po/ja.po +++ redmine-0.9.1/debian/po/ja.po @@ -0,0 +1,86 @@ +# Copyright (C) 2009 Jérémy Lal +# This file is distributed under the same license as redmine package. +# Hideki Yamane (Debian-JP) , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: redmine 0.9.0~svn2907-1\n" +"Report-Msgid-Bugs-To: redmine@packages.debian.org\n" +"POT-Creation-Date: 2009-09-20 14:07+0200\n" +"PO-Revision-Date: 2009-11-04 12:26+0900\n" +"Last-Translator: Hideki Yamane (Debian-JP) \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "Redmine package now supports multiple instances" +msgstr "redmine パッケージは複数のインスタンスをサポートするようになりました" + +#. Type: note +#. Description +#: ../templates:1001 +msgid "" +"You are migrating from an unsupported version. The current instance will be " +"now called the \"default\" instance. Please check your web server " +"configuration files, see README.Debian." +msgstr "" +"サポートされていないバージョンからの移行を行っています。現在のインスタンスは" +"「デフォルト」インスタンスと呼ばれる様になります。ウェブサーバの設定ファイル" +"を確認してください。詳細は README.Debian を確認ください。" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Redmine instances to be deconfigured:" +msgstr "設定を初期化する redmine のインスタンス:" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Configuration files for these instances will be removed." +msgstr "これらのインスタンスの設定ファイルは削除されます。" + +#. Type: string +#. Description +#: ../templates:2001 +msgid "Database (de)configuration will be asked accordingly." +msgstr "データベースの設定 (と初期化) が適宜尋ねられます。" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Redmine instances to be configured or upgraded:" +msgstr "設定またはアップグレードされる redmine のインスタンス:" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "Space-separated list of instances identifiers." +msgstr "空白で区切られたインスタンス識別子のリストです。" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "" +"Each instance has its configuration files in /etc/redmine//" +msgstr "" +"各インスタンスは設定ファイルを /etc/redmine// に持ってい" +"ます。" + +#. Type: string +#. Description +#: ../templates:3001 +msgid "To deconfigure an instance, remove its identifier from this list." +msgstr "" +"インスタンスの設定を削除するには、このリストから識別子を削除してください。" + +#. Type: select +#. Description +#: ../templates:4001 +msgid "Default redmine language:" +msgstr "redmine のデフォルト言語:"