www-apps/redmine/redmine-2.2.3.ebuild
changeset 195 88674a86b3ad
parent 193 78c58876bc9f
parent 194 4cdf8f681821
child 196 4441b94fe5f7
child 197 dcd3a578fac0
equal deleted inserted replaced
193:78c58876bc9f 195:88674a86b3ad
     1 # Copyright 1999-2013 Gentoo Foundation
       
     2 # Distributed under the terms of the GNU General Public License v2
       
     3 # $Header: /var/cvsroot/gentoo-x86/www-apps/redmine/redmine-2.2.0.ebuild,v 1.1 2013/01/07 13:39:26 matsuu Exp $
       
     4 
       
     5 EAPI="3"
       
     6 # ruby19: dev-ruby/rack has no ruby19
       
     7 # jruby: dev-ruby/rails has no jruby
       
     8 # rbx: dev-ruby/rails has no rbx
       
     9 #USE_RUBY="ruby18 ree18"
       
    10 USE_RUBY="ruby18 ruby19"
       
    11 inherit eutils depend.apache ruby-ng
       
    12 
       
    13 DESCRIPTION="Redmine is a flexible project management web application written using Ruby on Rails framework"
       
    14 HOMEPAGE="http://www.redmine.org/"
       
    15 SRC_URI="mirror://rubyforge/${PN}/${P}.tar.gz"
       
    16 
       
    17 KEYWORDS="~amd64 ~x86"
       
    18 LICENSE="GPL-2"
       
    19 SLOT="0"
       
    20 #IUSE="bazaar cvs darcs fastcgi git imagemagick mercurial mysql openid passenger postgres sqlite3 subversion"
       
    21 IUSE="fastcgi imagemagick ldap openid passenger"
       
    22 
       
    23 #RDEPEND="$(ruby_implementation_depend ruby18 '>=' -1.8.6)[ssl]"
       
    24 
       
    25 ruby_add_rdepend "virtual/ruby-ssl
       
    26 	virtual/rubygems
       
    27 	>=dev-ruby/coderay-1.0.6
       
    28 	dev-ruby/i18n:0.6
       
    29 	dev-ruby/rake
       
    30 	>=dev-ruby/rails-3.2.12:3.2
       
    31 	>=dev-ruby/jquery-rails-2.0.2
       
    32 	dev-ruby/builder:3
       
    33 	fastcgi? ( dev-ruby/fcgi )
       
    34 	imagemagick? ( >=dev-ruby/rmagick-2 )
       
    35 	ldap? ( >=dev-ruby/ruby-net-ldap-0.3.1 )
       
    36 	openid? (
       
    37 		>=dev-ruby/ruby-openid-2.1.4
       
    38 		>=dev-ruby/rack-openid-0.2.1
       
    39 	)
       
    40 	passenger? ( www-apache/passenger )
       
    41 	"
       
    42 #	ruby_targets_ruby18? (
       
    43 #		>=dev-ruby/fastercsv-1.5
       
    44 #		postgres? ( >=dev-ruby/pg-0.11 )
       
    45 #		sqlite3? ( dev-ruby/sqlite3 )
       
    46 #		mysql? ( >=dev-ruby/mysql-ruby-2.8.1 )
       
    47 #	)
       
    48 #	ruby_targets_ruby19? (
       
    49 #		postgres? ( >=dev-ruby/pg-0.11 )
       
    50 #		sqlite3? ( dev-ruby/sqlite3 )
       
    51 #		mysql? ( dev-ruby/mysql2:0.3 )
       
    52 #	)
       
    53 #	ruby_targets_jruby? (
       
    54 #		dev-ruby/jruby-openssl
       
    55 #		>=dev-ruby/fastercsv-1.5
       
    56 #		mysql? ( dev-ruby/activerecord-jdbcmysql-adapter )
       
    57 #		postgres? ( dev-ruby/activerecord-jdbcpostgresql-adapter )
       
    58 #		sqlite3? ( dev-ruby/activerecord-jdbcsqlite3-adapter )
       
    59 #	)
       
    60 
       
    61 #ruby_add_bdepend ">=dev-ruby/rdoc-2.4.2
       
    62 #	yard
       
    63 #	test? (
       
    64 #		!ruby_targets_ruby19? (
       
    65 #			>=dev-ruby/shoulda-2.11
       
    66 #		)
       
    67 #		ruby_targets_ruby19? (
       
    68 #			dev-ruby/test-unit
       
    69 #		)
       
    70 #		ruby_targets_jruby? (
       
    71 #			dev-ruby/test-unit
       
    72 #		)
       
    73 #		>=dev-ruby/mocha-0.12.3
       
    74 #	)"
       
    75 
       
    76 #RDEPEND="${RDEPEND}
       
    77 #	bazaar ( dev-vcs/bazaar )
       
    78 #	cvs? ( >=dev-vcs/cvs-1.12 )
       
    79 #	darcs? ( dev-vcs/darcs )
       
    80 #	git? ( dev-vcs/git )
       
    81 #	mercurial? ( dev-vcs/mercurial )
       
    82 #	subversion? ( >=dev-vcs/subversion-1.3 )"
       
    83 
       
    84 REDMINE_DIR="/var/lib/${PN}"
       
    85 
       
    86 pkg_setup() {
       
    87 	enewgroup redmine
       
    88 	# home directory is required for SCM.
       
    89 	enewuser redmine -1 -1 "${REDMINE_DIR}" redmine
       
    90 }
       
    91 
       
    92 all_ruby_prepare() {
       
    93 	rm -r log files/delete.me || die
       
    94 
       
    95 	# bug #406605
       
    96 	rm .gitignore .hgignore || die
       
    97 
       
    98 	rm Gemfile config/preinitializer.rb || die
       
    99 
       
   100 	echo "CONFIG_PROTECT=\"${EPREFIX}${REDMINE_DIR}/config\"" > "${T}/50${PN}"
       
   101 	echo "CONFIG_PROTECT_MASK=\"${EPREFIX}${REDMINE_DIR}/config/locales ${EPREFIX}${REDMINE_DIR}/config/settings.yml\"" >> "${T}/50${PN}"
       
   102 }
       
   103 
       
   104 all_ruby_install() {
       
   105 	dodoc doc/{CHANGELOG,INSTALL,README_FOR_APP,RUNNING_TESTS,UPGRADING} || die
       
   106 	rm -fr doc || die
       
   107 	dodoc README.rdoc || die
       
   108 	rm README.rdoc || die
       
   109 
       
   110 	keepdir /var/log/${PN} || die
       
   111 	dosym /var/log/${PN}/ "${REDMINE_DIR}/log" || die
       
   112 
       
   113 	insinto "${REDMINE_DIR}"
       
   114 	doins -r . || die
       
   115 	keepdir "${REDMINE_DIR}/files" || die
       
   116 	keepdir "${REDMINE_DIR}/public/plugin_assets" || die
       
   117 
       
   118 	fowners -R redmine:redmine \
       
   119 		"${REDMINE_DIR}/config" \
       
   120 		"${REDMINE_DIR}/files" \
       
   121 		"${REDMINE_DIR}/public/plugin_assets" \
       
   122 		"${REDMINE_DIR}/tmp" \
       
   123 		/var/log/${PN} || die
       
   124 	# for SCM
       
   125 	fowners redmine:redmine "${REDMINE_DIR}" || die
       
   126 	# bug #406605
       
   127 	fperms -R go-rwx \
       
   128 		"${REDMINE_DIR}/config" \
       
   129 		"${REDMINE_DIR}/files" \
       
   130 		"${REDMINE_DIR}/tmp" \
       
   131 		/var/log/${PN} || die
       
   132 
       
   133 	if use passenger ; then
       
   134 		has_apache
       
   135 		insinto "${APACHE_VHOSTS_CONFDIR}"
       
   136 		doins "${FILESDIR}/10_redmine_vhost.conf" || die
       
   137 	else
       
   138 		newconfd "${FILESDIR}/${PN}.confd" ${PN} || die
       
   139 		newinitd "${FILESDIR}/${PN}-2.initd" ${PN} || die
       
   140 		keepdir /var/run/${PN} || die
       
   141 		fowners -R redmine:redmine /var/run/${PN} || die
       
   142 		dosym /var/run/${PN}/ "${REDMINE_DIR}/tmp/pids" || die
       
   143 	fi
       
   144 	doenvd "${T}/50${PN}" || die
       
   145 }
       
   146 
       
   147 pkg_postinst() {
       
   148 	einfo
       
   149 	if [ -e "${EPREFIX}${REDMINE_DIR}/config/initializers/session_store.rb" -o -e "${EPREFIX}${REDMINE_DIR}/config/initializers/secret_token.rb" ] ; then
       
   150 		elog "Execute the following command to upgrade environment:"
       
   151 		elog
       
   152 		elog "# emerge --config \"=${CATEGORY}/${PF}\""
       
   153 		elog
       
   154 		elog "For upgrade instructions take a look at:"
       
   155 		elog "http://www.redmine.org/wiki/redmine/RedmineUpgrade"
       
   156 	else
       
   157 		elog "Execute the following command to initlize environment:"
       
   158 		elog
       
   159 		elog "# cd ${EPREFIX}${REDMINE_DIR}"
       
   160 		elog "# cp config/database.yml.example config/database.yml"
       
   161 		elog "# \${EDITOR} config/database.yml"
       
   162 		elog "# chown redmine:redmine config/database.yml"
       
   163 		elog "# emerge --config \"=${CATEGORY}/${PF}\""
       
   164 		elog
       
   165 		elog "Installation notes are at official site"
       
   166 		elog "http://www.redmine.org/wiki/redmine/RedmineInstall"
       
   167 	fi
       
   168 	einfo
       
   169 }
       
   170 
       
   171 pkg_config() {
       
   172 	if [ ! -e "${EPREFIX}${REDMINE_DIR}/config/database.yml" ] ; then
       
   173 		eerror "Copy ${EPREFIX}${REDMINE_DIR}/config/database.yml.example to ${EPREFIX}${REDMINE_DIR}/config/database.yml and edit this file in order to configure your database settings for \"production\" environment."
       
   174 		die
       
   175 	fi
       
   176 
       
   177 	local RAILS_ENV=${RAILS_ENV:-production}
       
   178 	local RUBY=${RUBY:-ruby18}
       
   179 
       
   180 	cd "${EPREFIX}${REDMINE_DIR}"
       
   181 	if [ -e "${EPREFIX}${REDMINE_DIR}/config/initializers/session_store.rb" ] ; then
       
   182 		einfo
       
   183 		einfo "Generate secret token."
       
   184 		einfo
       
   185 		rm config/initializers/session_store.rb || die
       
   186 		RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
       
   187 	fi
       
   188 	if [ -e "${EPREFIX}${REDMINE_DIR}/config/initializers/secret_token.rb" ] ; then
       
   189 		einfo
       
   190 		einfo "Upgrade database."
       
   191 		einfo
       
   192 
       
   193 		einfo "Migrate database."
       
   194 		RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
       
   195 		einfo "Upgrade the plugin migrations."
       
   196 		RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:plugins:migrate || die
       
   197 		einfo "Clear the cache and the existing sessions."
       
   198 		${RUBY} -S rake tmp:cache:clear || die
       
   199 		${RUBY} -S rake tmp:sessions:clear || die
       
   200 	else
       
   201 		einfo
       
   202 		einfo "Initialize database."
       
   203 		einfo
       
   204 
       
   205 		einfo "Generate a session store secret."
       
   206 		${RUBY} -S rake generate_secret_token || die
       
   207 		einfo "Create the database structure."
       
   208 		RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
       
   209 		einfo "Insert default configuration data in database."
       
   210 		RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:load_default_data || die
       
   211 		einfo
       
   212 		einfo "If you use sqlite3. please do not forget to change the ownership of the sqlite files."
       
   213 		einfo
       
   214 		einfo "# cd \"${EPREFIX}${REDMINE_DIR}\""
       
   215 		einfo "# chown redmine:redmine db/ db/*.sqlite3"
       
   216 		einfo
       
   217 	fi
       
   218 }