www-apps/redmine/redmine-1.0.0.ebuild
changeset 58 98cddfca5dd0
parent 57 96e45fce341d
child 59 9ed25873d854
equal deleted inserted replaced
57:96e45fce341d 58:98cddfca5dd0
     1 # Copyright 1999-2010 Gentoo Foundation
       
     2 # Distributed under the terms of the GNU General Public License v2
       
     3 # $Header: /var/cvsroot/gentoo-x86/www-apps/redmine/redmine-0.9.6.ebuild,v 1.2 2010/07/10 04:54:33 matsuu Exp $
       
     4 
       
     5 EAPI="2"
       
     6 USE_RUBY="ruby18"
       
     7 inherit eutils confutils depend.apache ruby-ng
       
     8 
       
     9 DESCRIPTION="Redmine is a flexible project management web application written using Ruby on Rails framework"
       
    10 HOMEPAGE="http://www.redmine.org/"
       
    11 SRC_URI="mirror://rubyforge/${PN}/${P}.tar.gz"
       
    12 
       
    13 KEYWORDS="~amd64 ~x86"
       
    14 LICENSE="GPL-2"
       
    15 SLOT="0"
       
    16 IUSE="cvs darcs fastcgi git imagemagick mercurial mysql openid passenger postgres sqlite3 subversion"
       
    17 
       
    18 ruby_add_rdepend ">=dev-ruby/rails-2.3.5:2.3
       
    19 	>=dev-ruby/coderay-0.7.6.227
       
    20 	>=dev-ruby/rubygems-1.3.5
       
    21 	>=dev-ruby/ruby-net-ldap-0.0.4"
       
    22 #ruby_add_rdepend "dev-ruby/activerecord:2.3[mysql?,postgres?,sqlite3?]"
       
    23 ruby_add_rdepend fastcgi dev-ruby/ruby-fcgi
       
    24 ruby_add_rdepend imagemagick dev-ruby/rmagick
       
    25 ruby_add_rdepend openid dev-ruby/ruby-openid
       
    26 #ruby_add_rdepend passenger "=dev-ruby/rack-1.0.1* www-apache/passenger"
       
    27 
       
    28 RDEPEND="${RDEPEND}
       
    29 	passenger? ( =dev-ruby/rack-1.0.1* www-apache/passenger )
       
    30 	dev-ruby/activerecord:2.3[mysql?,postgres?,sqlite3?]
       
    31 	cvs? ( >=dev-vcs/cvs-1.12 )
       
    32 	darcs? ( dev-vcs/darcs )
       
    33 	git? ( dev-vcs/git )
       
    34 	mercurial? ( dev-vcs/mercurial )
       
    35 	subversion? ( >=dev-vcs/subversion-1.3 )"
       
    36 
       
    37 REDMINE_DIR="/var/lib/${PN}"
       
    38 
       
    39 pkg_setup() {
       
    40 	confutils_require_any mysql postgres sqlite3
       
    41 	enewgroup redmine
       
    42 	# home directory is required for SCM.
       
    43 	enewuser  redmine -1 -1 "${REDMINE_DIR}" redmine
       
    44 }
       
    45 
       
    46 all_ruby_prepare() {
       
    47 	rm -fr log files/delete.me || die
       
    48 	rm -fr vendor/plugins/coderay-0.7.6.227 || die
       
    49 	rm -fr vendor/plugins/ruby-net-ldap-0.0.4 || die
       
    50 	rm -fr vendor/rails || die
       
    51 	echo "CONFIG_PROTECT=\"${REDMINE_DIR}/config\"" > "${T}/50${PN}"
       
    52 }
       
    53 
       
    54 all_ruby_install() {
       
    55 	dodoc doc/{CHANGELOG,INSTALL,README_FOR_APP,RUNNING_TESTS,UPGRADING} || die
       
    56 	rm -fr doc || die
       
    57 
       
    58 	keepdir /var/log/${PN} || die
       
    59 	dosym /var/log/${PN}/ "${REDMINE_DIR}/log" || die
       
    60 
       
    61 	insinto "${REDMINE_DIR}"
       
    62 	doins -r . || die
       
    63 	keepdir "${REDMINE_DIR}/files" || die
       
    64 	keepdir "${REDMINE_DIR}/public/plugin_assets" || die
       
    65 
       
    66 	fowners -R redmine:redmine \
       
    67 		"${REDMINE_DIR}/config/environment.rb" \
       
    68 		"${REDMINE_DIR}/files" \
       
    69 		"${REDMINE_DIR}/public/plugin_assets" \
       
    70 		"${REDMINE_DIR}/tmp" \
       
    71 		/var/log/${PN} || die
       
    72 	# for SCM
       
    73 	fowners redmine:redmine "${REDMINE_DIR}" || die
       
    74 
       
    75 	if use passenger ; then
       
    76 		has_apache
       
    77 		insinto "${APACHE_VHOSTS_CONFDIR}"
       
    78 		doins "${FILESDIR}/10_redmine_vhost.conf" || die
       
    79 	else
       
    80 		newconfd "${FILESDIR}/${PN}.confd" ${PN} || die
       
    81 		newinitd "${FILESDIR}/${PN}.initd" ${PN} || die
       
    82 		keepdir /var/run/${PN} || die
       
    83 		fowners -R redmine:redmine /var/run/${PN} || die
       
    84 		dosym /var/run/${PN}/ "${REDMINE_DIR}/tmp/pids" || die
       
    85 	fi
       
    86 	doenvd "${T}/50${PN}" || die
       
    87 }
       
    88 
       
    89 pkg_postinst() {
       
    90 	einfo
       
    91 	if [ -e "${ROOT}${REDMINE_DIR}/config/initializers/session_store.rb" ] ; then
       
    92 		elog "Execute the following command to upgrade environment:"
       
    93 		elog
       
    94 		elog "# emerge --config =${CATEGORY}/${PF}"
       
    95 		elog
       
    96 		elog "For upgrade instructions take a look at:"
       
    97 		elog "http://www.redmine.org/wiki/redmine/RedmineUpgrade"
       
    98 	else
       
    99 		elog "Execute the following command to initlize environment:"
       
   100 		elog
       
   101 		elog "# cd ${REDMINE_DIR}"
       
   102 		elog "# cp config/database.yml.example config/database.yml"
       
   103 		elog "# \${EDITOR} config/database.yml"
       
   104 		elog "# emerge --config =${CATEGORY}/${PF}"
       
   105 		elog
       
   106 		elog "Installation notes are at official site"
       
   107 		elog "http://www.redmine.org/wiki/redmine/RedmineInstall"
       
   108 	fi
       
   109 	einfo
       
   110 }
       
   111 
       
   112 pkg_config() {
       
   113 	if [ ! -e "${REDMINE_DIR}/config/database.yml" ] ; then
       
   114 		eerror "Copy ${REDMINE_DIR}/config/database.yml.example to ${REDMINE_DIR}/config/database.yml and edit this file in order to configure your database settings for \"production\" environment."
       
   115 		die
       
   116 	fi
       
   117 
       
   118 	local RAILS_ENV=${RAILS_ENV:-production}
       
   119 
       
   120 	cd "${REDMINE_DIR}"
       
   121 	if [ -e "${REDMINE_DIR}/config/initializers/session_store.rb" ] ; then
       
   122 		einfo
       
   123 		einfo "Upgrade database."
       
   124 		einfo
       
   125 
       
   126 		einfo "Migrate database."
       
   127 		RAILS_ENV="${RAILS_ENV}" rake db:migrate || die
       
   128 		einfo "Upgrade the plugin migrations."
       
   129 		RAILS_ENV="${RAILS_ENV}" rake db:migrate:upgrade_plugin_migrations # || die
       
   130 		RAILS_ENV="${RAILS_ENV}" rake db:migrate_plugins || die
       
   131 		einfo "Clear the cache and the existing sessions."
       
   132 		rake tmp:cache:clear || die
       
   133 		rake tmp:sessions:clear || die
       
   134 	else
       
   135 		einfo
       
   136 		einfo "Initialize database."
       
   137 		einfo
       
   138 
       
   139 		einfo "Generate a session store secret."
       
   140 		rake config/initializers/session_store.rb || die
       
   141 		einfo "Create the database structure."
       
   142 		RAILS_ENV="${RAILS_ENV}" rake db:migrate || die
       
   143 		einfo "Insert default configuration data in database."
       
   144 		RAILS_ENV="${RAILS_ENV}" rake redmine:load_default_data || die
       
   145 	fi
       
   146 
       
   147 	if [ ! -e "${REDMINE_DIR}/config/email.yml" ] ; then
       
   148 		ewarn
       
   149 		ewarn "Copy ${REDMINE_DIR}/config/email.yml.example to ${REDMINE_DIR}/config/email.yml and edit this file to adjust your SMTP settings."
       
   150 		ewarn
       
   151 	fi
       
   152 }