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 } |
|