Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-apps/redmine/
Date: Sat, 02 Sep 2017 16:01:46
Message-Id: 1504368096.1a6026c8afe3a02286fb2bdfbb7fef7ac8074468.mgorny@gentoo
1 commit: 1a6026c8afe3a02286fb2bdfbb7fef7ac8074468
2 Author: Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com>
3 AuthorDate: Tue Aug 29 10:43:00 2017 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Sat Sep 2 16:01:36 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a6026c8
7
8 www-apps/redmine: fix actionpack-xml_parser dep
9
10 Slotted dep dev-ruby/actionpack-xml_parser. 2.0.x incompatible with current
11 redmine versions, fixes #629154.
12
13 Bug: https://bugs.gentoo.org/629154
14 Closes: https://github.com/gentoo/gentoo/pull/5239
15 Package-Manager: Portage-2.3.6, Repoman-2.3.1
16
17 www-apps/redmine/redmine-3.2.7-r1.ebuild | 215 ++++++++++++++++++++++++++++++
18 www-apps/redmine/redmine-3.3.4-r1.ebuild | 221 +++++++++++++++++++++++++++++++
19 www-apps/redmine/redmine-3.4.2-r1.ebuild | 221 +++++++++++++++++++++++++++++++
20 3 files changed, 657 insertions(+)
21
22 diff --git a/www-apps/redmine/redmine-3.2.7-r1.ebuild b/www-apps/redmine/redmine-3.2.7-r1.ebuild
23 new file mode 100644
24 index 00000000000..ee397cf4ee3
25 --- /dev/null
26 +++ b/www-apps/redmine/redmine-3.2.7-r1.ebuild
27 @@ -0,0 +1,215 @@
28 +# Copyright 1999-2017 Gentoo Foundation
29 +# Distributed under the terms of the GNU General Public License v2
30 +
31 +EAPI=5
32 +USE_RUBY="ruby21 ruby22 ruby23"
33 +inherit eutils depend.apache ruby-ng user
34 +
35 +DESCRIPTION="Flexible project management web application using the Ruby on Rails framework"
36 +HOMEPAGE="http://www.redmine.org/"
37 +SRC_URI="http://www.redmine.org/releases/${P}.tar.gz"
38 +
39 +KEYWORDS="~amd64"
40 +LICENSE="GPL-2"
41 +SLOT="0"
42 +# All db-related USEs are ineffective since we depend on rails
43 +# which depends on activerecord which depends on all ruby's db bindings
44 +#IUSE="ldap openid imagemagick postgres sqlite mysql fastcgi passenger"
45 +IUSE="ldap fastcgi passenger imagemagick"
46 +
47 +ruby_add_rdepend "
48 + dev-ruby/rubygems
49 + >=dev-ruby/rails-4.2.5.2:4.2
50 + >=dev-ruby/jquery-rails-3.1.4:3
51 + >=dev-ruby/coderay-1.1.0
52 + >=dev-ruby/builder-3.0.4:*
53 + >=dev-ruby/roadie-rails-1.1.0
54 + dev-ruby/mime-types:*
55 + =dev-ruby/request_store-1.0.5
56 + >=dev-ruby/rbpdf-1.19.0
57 + dev-ruby/actionpack-action_caching
58 + dev-ruby/actionpack-xml_parser:0
59 + dev-ruby/protected_attributes
60 + >=dev-ruby/redcarpet-3.3.2
61 + >=dev-ruby/nokogiri-1.6.7.2
62 + ldap? ( >=dev-ruby/ruby-net-ldap-0.12.0 )
63 + >=dev-ruby/ruby-openid-2.3.0
64 + >=dev-ruby/rack-openid-0.2.1
65 + fastcgi? ( dev-ruby/fcgi )
66 + passenger? ( www-apache/passenger )
67 + imagemagick? ( >=dev-ruby/rmagick-2.14.0 )"
68 + # ruby_targets_ruby19? (
69 +# postgres? ( >=dev-ruby/pg-0.11 )
70 +# sqlite3? ( dev-ruby/sqlite3 )
71 +# mysql? ( dev-ruby/mysql2:0.3 )
72 +# )
73 +
74 +#ruby_add_bdepend ">=dev-ruby/rdoc-2.4.2
75 +# dev-ruby/yard
76 +# test? (
77 +# >=dev-ruby/shoulda-3.3.2
78 +# >=dev-ruby/mocha-0.13.3
79 +# >=dev-ruby/capybara-2.0.0
80 +# <dev-ruby/nokogiri-1.6.0
81 +# )"
82 +
83 +REDMINE_DIR="/var/lib/${PN}"
84 +
85 +pkg_setup() {
86 + enewgroup redmine
87 + enewuser redmine -1 -1 "${REDMINE_DIR}" redmine
88 +}
89 +
90 +all_ruby_prepare() {
91 + rm -r log files/delete.me || die
92 +
93 + # bug #406605
94 + rm .gitignore .hgignore || die
95 +
96 + rm Gemfile || die
97 +
98 + echo "CONFIG_PROTECT=\"${EPREFIX}${REDMINE_DIR}/config\"" > "${T}/50${PN}"
99 + echo "CONFIG_PROTECT_MASK=\"${EPREFIX}${REDMINE_DIR}/config/locales ${EPREFIX}${REDMINE_DIR}/config/settings.yml\"" >> "${T}/50${PN}"
100 +
101 + # remove ldap staff module if disabled to avoid #413779
102 + use ldap || rm app/models/auth_source_ldap.rb || die
103 +
104 + # Make it work
105 + sed -i -e "1irequire 'request_store'" app/controllers/application_controller.rb || die
106 + sed -i -e "18irequire 'action_controller'" -e "19irequire 'action_controller/action_caching'"\
107 + app/controllers/welcome_controller.rb || die
108 + sed -i -e "4irequire 'action_dispatch/xml_params_parser'" -e "/Bundler/d" config/application.rb || die
109 + sed -i -e "18irequire 'protected_attributes'" app/models/custom_field.rb || die
110 + sed -i -e "19irequire 'roadie-rails'" app/models/mailer.rb || die
111 +}
112 +
113 +all_ruby_install() {
114 + dodoc doc/{CHANGELOG,INSTALL,README_FOR_APP,RUNNING_TESTS,UPGRADING}
115 + rm -r doc || die
116 + dodoc README.rdoc
117 + rm README.rdoc || die
118 +
119 + keepdir /var/log/${PN}
120 +
121 + insinto "${REDMINE_DIR}"
122 + doins -r .
123 + insinto "${REDMINE_DIR}/config"
124 + doins "${FILESDIR}/additional_environment.rb"
125 + keepdir "${REDMINE_DIR}/files"
126 + keepdir "${REDMINE_DIR}/public/plugin_assets"
127 +
128 + fowners -R redmine:redmine \
129 + "${REDMINE_DIR}/config" \
130 + "${REDMINE_DIR}/files" \
131 + "${REDMINE_DIR}/public/plugin_assets" \
132 + "${REDMINE_DIR}/tmp" \
133 + /var/log/${PN}
134 +
135 + fowners redmine:redmine "${REDMINE_DIR}"
136 +
137 + # protect sensitive data, see bug #406605
138 + fperms -R go-rwx \
139 + "${REDMINE_DIR}/config" \
140 + "${REDMINE_DIR}/files" \
141 + "${REDMINE_DIR}/tmp" \
142 + /var/log/${PN}
143 +
144 + if use passenger; then
145 + has_apache
146 + insinto "${APACHE_VHOSTS_CONFDIR}"
147 + doins "${FILESDIR}/10_redmine_vhost.conf"
148 + fi
149 +
150 + # logrotate
151 + insinto /etc/logrotate.d
152 + newins "${FILESDIR}"/redmine.logrotate redmine
153 +
154 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
155 + newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
156 + doenvd "${T}/50${PN}"
157 +}
158 +
159 +pkg_postinst() {
160 + einfo
161 + if [ -e "${EPREFIX}${REDMINE_DIR}/config/initializers/session_store.rb" -o -e "${EPREFIX}${REDMINE_DIR}/config/initializers/secret_token.rb" ]; then
162 + elog "Execute the following command to upgrade environment:"
163 + elog
164 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
165 + elog
166 + elog "For upgrade instructions take a look at:"
167 + elog "http://www.redmine.org/wiki/redmine/RedmineUpgrade"
168 + else
169 + elog "Execute the following command to initialize environment:"
170 + elog
171 + elog "# cd ${EPREFIX}${REDMINE_DIR}"
172 + elog "# cp config/database.yml.example config/database.yml"
173 + elog "# \${EDITOR} config/database.yml"
174 + elog "# chown redmine:redmine config/database.yml"
175 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
176 + elog
177 + elog "Installation notes are at official site"
178 + elog "http://www.redmine.org/wiki/redmine/RedmineInstall"
179 + fi
180 + einfo
181 +}
182 +
183 +pkg_config() {
184 + if [ ! -e "${EPREFIX}${REDMINE_DIR}/config/database.yml" ]; then
185 + eerror "Copy ${EPREFIX}${REDMINE_DIR}/config/database.yml.example to ${EPREFIX}${REDMINE_DIR}/config/database.yml"
186 + eerror "then edit this file in order to configure your database settings for \"production\" environment."
187 + die
188 + fi
189 +
190 + local RAILS_ENV=${RAILS_ENV:-production}
191 + if [ ! -L /usr/bin/ruby ]; then
192 + eerror "/usr/bin/ruby is not a valid symlink to any ruby implementation."
193 + eerror "Please update it via `eselect ruby`"
194 + die
195 + fi
196 + if [[ $RUBY_TARGETS != *$( eselect ruby show | awk 'NR==2' | tr -d ' ' )* ]]; then
197 + eerror "/usr/bin/ruby is currently not included in redmine's ruby targets: ${RUBY_TARGETS}."
198 + eerror "Please update it via `eselect ruby`"
199 + die
200 + fi
201 + local RUBY=${RUBY:-ruby}
202 +
203 + cd "${EPREFIX}${REDMINE_DIR}" || die
204 + if [ -e "${EPREFIX}${REDMINE_DIR}/config/initializers/session_store.rb" ]; then
205 + einfo
206 + einfo "Generating secret token."
207 + einfo
208 + rm config/initializers/session_store.rb || die
209 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
210 + fi
211 + if [ -e "${EPREFIX}${REDMINE_DIR}/config/initializers/secret_token.rb" ]; then
212 + einfo
213 + einfo "Upgrading database."
214 + einfo
215 +
216 + einfo "Migrating database."
217 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
218 + einfo "Upgrading the plugin migrations."
219 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:plugins:migrate || die
220 + einfo "Clear the cache and the existing sessions."
221 + ${RUBY} -S rake tmp:cache:clear || die
222 + ${RUBY} -S rake tmp:sessions:clear || die
223 + else
224 + einfo
225 + einfo "Initializing database."
226 + einfo
227 +
228 + einfo "Generating a session store secret."
229 + ${RUBY} -S rake generate_secret_token || die
230 + einfo "Creating the database structure."
231 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
232 + einfo "Populating database with default configuration data."
233 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:load_default_data || die
234 + chown redmine:redmine "${EPREFIX}${REDMINE_DIR}"/log/production.log
235 + einfo
236 + einfo "If you use sqlite3, please do not forget to change the ownership of the sqlite files."
237 + einfo
238 + einfo "# cd \"${EPREFIX}${REDMINE_DIR}\""
239 + einfo "# chown redmine:redmine db/ db/*.sqlite3"
240 + einfo
241 + fi
242 +}
243
244 diff --git a/www-apps/redmine/redmine-3.3.4-r1.ebuild b/www-apps/redmine/redmine-3.3.4-r1.ebuild
245 new file mode 100644
246 index 00000000000..113a6248353
247 --- /dev/null
248 +++ b/www-apps/redmine/redmine-3.3.4-r1.ebuild
249 @@ -0,0 +1,221 @@
250 +# Copyright 1999-2017 Gentoo Foundation
251 +# Distributed under the terms of the GNU General Public License v2
252 +
253 +EAPI=6
254 +# ruby24 don't have required deps
255 +USE_RUBY="ruby22 ruby23"
256 +inherit eutils depend.apache ruby-ng user
257 +
258 +DESCRIPTION="Flexible project management web application using the Ruby on Rails framework"
259 +HOMEPAGE="http://www.redmine.org/"
260 +SRC_URI="http://www.redmine.org/releases/${P}.tar.gz"
261 +
262 +KEYWORDS="~amd64"
263 +LICENSE="GPL-2"
264 +SLOT="0"
265 +# All db-related USEs are ineffective since we depend on rails
266 +# which depends on activerecord which depends on all ruby's db bindings
267 +#IUSE="ldap openid imagemagick postgres sqlite mysql fastcgi passenger"
268 +IUSE="imagemagick fastcgi ldap markdown passenger"
269 +
270 +ruby_add_rdepend "
271 + dev-ruby/actionpack-action_caching
272 + dev-ruby/actionpack-xml_parser:0
273 + >=dev-ruby/builder-3.2.2:3.2
274 + >=dev-ruby/coderay-1.1.0
275 + dev-ruby/i18n:0.7
276 + >=dev-ruby/jquery-rails-3.1.4:3
277 + dev-ruby/loofah
278 + dev-ruby/mime-types:*
279 + dev-ruby/mimemagic
280 + >=dev-ruby/nokogiri-1.6.8
281 + dev-ruby/protected_attributes
282 + >=dev-ruby/rack-openid-0.2.1
283 + >=dev-ruby/rails-4.2.5.2:4.2
284 + >=dev-ruby/rails-html-sanitizer-1.0.3
285 + dev-ruby/request_store:1.0.5
286 + >=dev-ruby/roadie-rails-1.1.0
287 + >=dev-ruby/rbpdf-1.19.2
288 + >=dev-ruby/ruby-openid-2.3.0
289 + dev-ruby/rubygems
290 + fastcgi? ( dev-ruby/fcgi )
291 + imagemagick? ( >=dev-ruby/rmagick-2.14.0 )
292 + ldap? ( >=dev-ruby/ruby-net-ldap-0.12.0 )
293 + markdown? ( >=dev-ruby/redcarpet-3.3.2 )
294 + passenger? ( www-apache/passenger )
295 + "
296 +# TODO add USE doc and test
297 +#ruby_add_bdepend ">=dev-ruby/rdoc-2.4.2
298 +# dev-ruby/yard
299 +# test? (
300 +# >=dev-ruby/shoulda-3.3.2
301 +# >=dev-ruby/mocha-0.13.3
302 +# >=dev-ruby/capybara-2.0.0
303 +# )"
304 +
305 +REDMINE_DIR="/var/lib/${PN}"
306 +
307 +pkg_setup() {
308 + enewgroup redmine
309 + enewuser redmine -1 -1 "${REDMINE_DIR}" redmine
310 +}
311 +
312 +all_ruby_prepare() {
313 + rm -r log files/delete.me Gemfile || die
314 +
315 + # bug #406605
316 + rm .{git,hg}ignore || die
317 +
318 + cat > "${T}/50${PN}" <<-EOF || die
319 + CONFIG_PROTECT="${EROOT%/}${REDMINE_DIR}/config"
320 + CONFIG_PROTECT_MASK="${EROOT%/}${REDMINE_DIR}/config/locales ${EROOT%/}${REDMINE_DIR}/config/settings.yml"
321 + EOF
322 +
323 + # remove ldap staff module if disabled to avoid #413779
324 + use ldap || rm app/models/auth_source_ldap.rb || die
325 +
326 + eapply "${FILESDIR}/${P}_requires.patch"
327 +}
328 +
329 +all_ruby_install() {
330 + dodoc doc/* README.rdoc
331 + rm -r doc appveyor.yml CONTRIBUTING.md README.rdoc || die
332 +
333 + keepdir /var/log/${PN}
334 +
335 + insinto "${REDMINE_DIR}"
336 + doins -r .
337 + insinto "${REDMINE_DIR}/config"
338 + doins "${FILESDIR}/additional_environment.rb"
339 + keepdir "${REDMINE_DIR}/files"
340 + keepdir "${REDMINE_DIR}/public/plugin_assets"
341 +
342 + fowners -R redmine:redmine \
343 + "${REDMINE_DIR}/config" \
344 + "${REDMINE_DIR}/files" \
345 + "${REDMINE_DIR}/public/plugin_assets" \
346 + "${REDMINE_DIR}/tmp" \
347 + /var/log/${PN}
348 +
349 + fowners redmine:redmine "${REDMINE_DIR}"
350 +
351 + # protect sensitive data, see bug #406605
352 + fperms -R go-rwx \
353 + "${REDMINE_DIR}/config" \
354 + "${REDMINE_DIR}/files" \
355 + "${REDMINE_DIR}/tmp" \
356 + /var/log/${PN}
357 +
358 + if use passenger; then
359 + has_apache
360 + insinto "${APACHE_VHOSTS_CONFDIR}"
361 + doins "${FILESDIR}/10_redmine_vhost.conf"
362 + fi
363 +
364 + # logrotate
365 + insinto /etc/logrotate.d
366 + newins "${FILESDIR}"/redmine.logrotate redmine
367 +
368 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
369 + newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
370 + doenvd "${T}/50${PN}"
371 +}
372 +
373 +pkg_postinst() {
374 + einfo
375 + if [[ -e "${EROOT%/}${REDMINE_DIR}/config/initializers/session_store.rb" \
376 + || -e "${EROOT%/}${REDMINE_DIR}/config/initializers/secret_token.rb" ]]
377 + then
378 + elog "Execute the following command to upgrade environment:"
379 + elog
380 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
381 + elog
382 + elog "For upgrade instructions take a look at:"
383 + elog "http://www.redmine.org/wiki/redmine/RedmineUpgrade"
384 + else
385 + elog "Execute the following command to initialize environment:"
386 + elog
387 + elog "# cd ${EROOT%/}${REDMINE_DIR}"
388 + elog "# cp config/database.yml.example config/database.yml"
389 + elog "# \${EDITOR} config/database.yml"
390 + elog "# chown redmine:redmine config/database.yml"
391 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
392 + elog
393 + elog "Installation notes are at official site"
394 + elog "http://www.redmine.org/wiki/redmine/RedmineInstall"
395 + fi
396 + einfo
397 +}
398 +
399 +pkg_config() {
400 + if [[ ! -e "${EROOT%/}${REDMINE_DIR}/config/database.yml" ]]; then
401 + eerror "Copy ${EROOT%/}${REDMINE_DIR}/config/database.yml.example to"
402 + eerror "${EROOT%/}${REDMINE_DIR}/config/database.yml then edit this"
403 + eerror "file in order to configure your database settings for"
404 + eerror "\"production\" environment."
405 + die
406 + fi
407 +
408 + local RAILS_ENV=${RAILS_ENV:-production}
409 + if [[ ! -L /usr/bin/ruby ]]; then
410 + eerror "/usr/bin/ruby is not a valid symlink to any ruby implementation."
411 + eerror "Please update it via `eselect ruby`"
412 + die
413 + fi
414 + if [[ $RUBY_TARGETS != *$( eselect ruby show | awk 'NR==2' | tr -d ' ' )* ]]
415 + then
416 + eerror "/usr/bin/ruby is currently not included in redmine's ruby targets:"
417 + eerror "${RUBY_TARGETS}."
418 + eerror "Please update it via `eselect ruby`"
419 + die
420 + fi
421 + local RUBY=${RUBY:-ruby}
422 +
423 + cd "${EROOT%/}${REDMINE_DIR}" || die
424 + if [[ -e "${EROOT%/}${REDMINE_DIR}/config/initializers/session_store.rb" ]]
425 + then
426 + einfo
427 + einfo "Generating secret token."
428 + einfo
429 + rm config/initializers/session_store.rb || die
430 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
431 + fi
432 + if [[ -e "${EROOT%/}${REDMINE_DIR}/config/initializers/secret_token.rb" ]]
433 + then
434 + einfo
435 + einfo "Upgrading database."
436 + einfo
437 +
438 + einfo "Generating secret token."
439 + # Migration from Redmine 2.x
440 + rm config/initializers/secret_token.rb || die
441 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
442 +
443 + einfo "Migrating database."
444 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
445 + einfo "Upgrading the plugin migrations."
446 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:plugins:migrate || die
447 + einfo "Clear the cache and the existing sessions."
448 + ${RUBY} -S rake tmp:cache:clear || die
449 + ${RUBY} -S rake tmp:sessions:clear || die
450 + else
451 + einfo
452 + einfo "Initializing database."
453 + einfo
454 +
455 + einfo "Generating a session store secret."
456 + ${RUBY} -S rake generate_secret_token || die
457 + einfo "Creating the database structure."
458 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
459 + einfo "Populating database with default configuration data."
460 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:load_default_data || die
461 + chown redmine:redmine "${EROOT%/}var/log/redmine/*.log" || die
462 + einfo
463 + einfo "If you use sqlite3, please do not forget to change the ownership"
464 + einfo "of the sqlite files."
465 + einfo
466 + einfo "# cd \"${EROOT%/}${REDMINE_DIR}\""
467 + einfo "# chown redmine:redmine db/ db/*.sqlite3"
468 + einfo
469 + fi
470 +}
471
472 diff --git a/www-apps/redmine/redmine-3.4.2-r1.ebuild b/www-apps/redmine/redmine-3.4.2-r1.ebuild
473 new file mode 100644
474 index 00000000000..d50f5c1e513
475 --- /dev/null
476 +++ b/www-apps/redmine/redmine-3.4.2-r1.ebuild
477 @@ -0,0 +1,221 @@
478 +# Copyright 1999-2017 Gentoo Foundation
479 +# Distributed under the terms of the GNU General Public License v2
480 +
481 +EAPI=6
482 +# ruby24 don't have required deps
483 +USE_RUBY="ruby22 ruby23"
484 +inherit eutils depend.apache ruby-ng user
485 +
486 +DESCRIPTION="Flexible project management web application using the Ruby on Rails framework"
487 +HOMEPAGE="http://www.redmine.org/"
488 +SRC_URI="http://www.redmine.org/releases/${P}.tar.gz"
489 +
490 +KEYWORDS="~amd64"
491 +LICENSE="GPL-2"
492 +SLOT="0"
493 +# All db-related USEs are ineffective since we depend on rails
494 +# which depends on activerecord which depends on all ruby's db bindings
495 +#IUSE="ldap openid imagemagick postgres sqlite mysql fastcgi passenger"
496 +IUSE="imagemagick fastcgi ldap markdown passenger"
497 +
498 +ruby_add_rdepend "
499 + dev-ruby/actionpack-action_caching
500 + dev-ruby/actionpack-xml_parser:0
501 + >=dev-ruby/builder-3.2.2:3.2
502 + >=dev-ruby/coderay-1.1.0
503 + dev-ruby/i18n:0.7
504 + >=dev-ruby/jquery-rails-3.1.4:3
505 + dev-ruby/loofah
506 + dev-ruby/mime-types:*
507 + dev-ruby/mimemagic
508 + >=dev-ruby/nokogiri-1.6.8
509 + dev-ruby/protected_attributes
510 + >=dev-ruby/rack-openid-0.2.1
511 + >=dev-ruby/rails-4.2.5.2:4.2
512 + >=dev-ruby/rails-html-sanitizer-1.0.3
513 + dev-ruby/request_store:1.0.5
514 + >=dev-ruby/roadie-rails-1.1.0
515 + >=dev-ruby/rbpdf-1.19.2
516 + >=dev-ruby/ruby-openid-2.3.0
517 + dev-ruby/rubygems
518 + fastcgi? ( dev-ruby/fcgi )
519 + imagemagick? ( >=dev-ruby/rmagick-2.14.0 )
520 + ldap? ( >=dev-ruby/ruby-net-ldap-0.12.0 )
521 + markdown? ( >=dev-ruby/redcarpet-3.3.2 )
522 + passenger? ( www-apache/passenger )
523 + "
524 +# TODO add USE doc and test
525 +#ruby_add_bdepend ">=dev-ruby/rdoc-2.4.2
526 +# dev-ruby/yard
527 +# test? (
528 +# >=dev-ruby/shoulda-3.3.2
529 +# >=dev-ruby/mocha-0.13.3
530 +# >=dev-ruby/capybara-2.0.0
531 +# )"
532 +
533 +REDMINE_DIR="/var/lib/${PN}"
534 +
535 +pkg_setup() {
536 + enewgroup redmine
537 + enewuser redmine -1 -1 "${REDMINE_DIR}" redmine
538 +}
539 +
540 +all_ruby_prepare() {
541 + rm -r log files/delete.me Gemfile || die
542 +
543 + # bug #406605
544 + rm .{git,hg}ignore || die
545 +
546 + cat > "${T}/50${PN}" <<-EOF || die
547 + CONFIG_PROTECT="${EROOT%/}${REDMINE_DIR}/config"
548 + CONFIG_PROTECT_MASK="${EROOT%/}${REDMINE_DIR}/config/locales ${EROOT%/}${REDMINE_DIR}/config/settings.yml"
549 + EOF
550 +
551 + # remove ldap staff module if disabled to avoid #413779
552 + use ldap || rm app/models/auth_source_ldap.rb || die
553 +
554 + eapply "${FILESDIR}/${PN}-3.3.4_requires.patch"
555 +}
556 +
557 +all_ruby_install() {
558 + dodoc doc/* README.rdoc
559 + rm -r doc appveyor.yml CONTRIBUTING.md README.rdoc || die
560 +
561 + keepdir /var/log/${PN}
562 +
563 + insinto "${REDMINE_DIR}"
564 + doins -r .
565 + insinto "${REDMINE_DIR}/config"
566 + doins "${FILESDIR}/additional_environment.rb"
567 + keepdir "${REDMINE_DIR}/files"
568 + keepdir "${REDMINE_DIR}/public/plugin_assets"
569 +
570 + fowners -R redmine:redmine \
571 + "${REDMINE_DIR}/config" \
572 + "${REDMINE_DIR}/files" \
573 + "${REDMINE_DIR}/public/plugin_assets" \
574 + "${REDMINE_DIR}/tmp" \
575 + /var/log/${PN}
576 +
577 + fowners redmine:redmine "${REDMINE_DIR}"
578 +
579 + # protect sensitive data, see bug #406605
580 + fperms -R go-rwx \
581 + "${REDMINE_DIR}/config" \
582 + "${REDMINE_DIR}/files" \
583 + "${REDMINE_DIR}/tmp" \
584 + /var/log/${PN}
585 +
586 + if use passenger; then
587 + has_apache
588 + insinto "${APACHE_VHOSTS_CONFDIR}"
589 + doins "${FILESDIR}/10_redmine_vhost.conf"
590 + fi
591 +
592 + # logrotate
593 + insinto /etc/logrotate.d
594 + newins "${FILESDIR}"/redmine.logrotate redmine
595 +
596 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
597 + newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
598 + doenvd "${T}/50${PN}"
599 +}
600 +
601 +pkg_postinst() {
602 + einfo
603 + if [[ -e "${EROOT%/}${REDMINE_DIR}/config/initializers/session_store.rb" \
604 + || -e "${EROOT%/}${REDMINE_DIR}/config/initializers/secret_token.rb" ]]
605 + then
606 + elog "Execute the following command to upgrade environment:"
607 + elog
608 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
609 + elog
610 + elog "For upgrade instructions take a look at:"
611 + elog "http://www.redmine.org/wiki/redmine/RedmineUpgrade"
612 + else
613 + elog "Execute the following command to initialize environment:"
614 + elog
615 + elog "# cd ${EROOT%/}${REDMINE_DIR}"
616 + elog "# cp config/database.yml.example config/database.yml"
617 + elog "# \${EDITOR} config/database.yml"
618 + elog "# chown redmine:redmine config/database.yml"
619 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
620 + elog
621 + elog "Installation notes are at official site"
622 + elog "http://www.redmine.org/wiki/redmine/RedmineInstall"
623 + fi
624 + einfo
625 +}
626 +
627 +pkg_config() {
628 + if [[ ! -e "${EROOT%/}${REDMINE_DIR}/config/database.yml" ]]; then
629 + eerror "Copy ${EROOT%/}${REDMINE_DIR}/config/database.yml.example to"
630 + eerror "${EROOT%/}${REDMINE_DIR}/config/database.yml then edit this"
631 + eerror "file in order to configure your database settings for"
632 + eerror "\"production\" environment."
633 + die
634 + fi
635 +
636 + local RAILS_ENV=${RAILS_ENV:-production}
637 + if [[ ! -L /usr/bin/ruby ]]; then
638 + eerror "/usr/bin/ruby is not a valid symlink to any ruby implementation."
639 + eerror "Please update it via `eselect ruby`"
640 + die
641 + fi
642 + if [[ $RUBY_TARGETS != *$( eselect ruby show | awk 'NR==2' | tr -d ' ' )* ]]
643 + then
644 + eerror "/usr/bin/ruby is currently not included in redmine's ruby targets:"
645 + eerror "${RUBY_TARGETS}."
646 + eerror "Please update it via `eselect ruby`"
647 + die
648 + fi
649 + local RUBY=${RUBY:-ruby}
650 +
651 + cd "${EROOT%/}${REDMINE_DIR}" || die
652 + if [[ -e "${EROOT%/}${REDMINE_DIR}/config/initializers/session_store.rb" ]]
653 + then
654 + einfo
655 + einfo "Generating secret token."
656 + einfo
657 + rm config/initializers/session_store.rb || die
658 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
659 + fi
660 + if [[ -e "${EROOT%/}${REDMINE_DIR}/config/initializers/secret_token.rb" ]]
661 + then
662 + einfo
663 + einfo "Upgrading database."
664 + einfo
665 +
666 + einfo "Generating secret token."
667 + # Migration from Redmine 2.x
668 + rm config/initializers/secret_token.rb || die
669 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
670 +
671 + einfo "Migrating database."
672 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
673 + einfo "Upgrading the plugin migrations."
674 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:plugins:migrate || die
675 + einfo "Clear the cache and the existing sessions."
676 + ${RUBY} -S rake tmp:cache:clear || die
677 + ${RUBY} -S rake tmp:sessions:clear || die
678 + else
679 + einfo
680 + einfo "Initializing database."
681 + einfo
682 +
683 + einfo "Generating a session store secret."
684 + ${RUBY} -S rake generate_secret_token || die
685 + einfo "Creating the database structure."
686 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
687 + einfo "Populating database with default configuration data."
688 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:load_default_data || die
689 + chown redmine:redmine "${EROOT%/}var/log/redmine/*.log" || die
690 + einfo
691 + einfo "If you use sqlite3, please do not forget to change the ownership"
692 + einfo "of the sqlite files."
693 + einfo
694 + einfo "# cd \"${EROOT%/}${REDMINE_DIR}\""
695 + einfo "# chown redmine:redmine db/ db/*.sqlite3"
696 + einfo
697 + fi
698 +}