Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-apps/redmine/
Date: Tue, 28 Sep 2021 20:52:04
Message-Id: 1632862302.fed382ffbf51b0e4b17b43e13f75b3c9a58628b2.sam@gentoo
1 commit: fed382ffbf51b0e4b17b43e13f75b3c9a58628b2
2 Author: Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com>
3 AuthorDate: Tue Sep 28 10:57:25 2021 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Tue Sep 28 20:51:42 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fed382ff
7
8 www-apps/redmine: new version in 4.2 branch
9
10 Fixes CVE-2021-37156
11 Bug: https://bugs.gentoo.org/806842
12 Package-Manager: Portage-3.0.20, Repoman-3.0.3
13 Signed-off-by: Azamat H. Hackimov <azamat.hackimov <AT> gmail.com>
14 Signed-off-by: Sam James <sam <AT> gentoo.org>
15
16 www-apps/redmine/Manifest | 1 +
17 www-apps/redmine/metadata.xml | 1 +
18 www-apps/redmine/redmine-4.2.2.ebuild | 240 ++++++++++++++++++++++++++++++++++
19 3 files changed, 242 insertions(+)
20
21 diff --git a/www-apps/redmine/Manifest b/www-apps/redmine/Manifest
22 index 0cf7b4d475a..f9c323ebe59 100644
23 --- a/www-apps/redmine/Manifest
24 +++ b/www-apps/redmine/Manifest
25 @@ -1,2 +1,3 @@
26 DIST redmine-4.1.2.tar.gz 2719030 BLAKE2B a169d024a76dc0b592a71da55e785152ba1cdb2203a864cff905571f1eae350d77e6955d819c660379e3e7b539664bf77a21f0f91ed5c4299f173221e763859c SHA512 a7ed547e8907d98c16c9d7c775fa3fcdb322d3e4494a1e5467cbc37c9710f04b9d5121fbdd9d8444b2028f7c8a842237ccc9d1b62c066c26bdc150cf408afb3b
27 DIST redmine-4.1.4.tar.gz 2720709 BLAKE2B 9e0c2b990248c9000fd6062e3928bf4bc8e8043e0d9ceff13d5000da824cde027090121ce3a8be2f5d92eedb97b91629fb8b681ae5e380459fdb97904abd9b98 SHA512 93e46f2ed220c05b83b7bab34327891a7f05a46a01c6cbfc1a5c9bf18613e308d94d84fc3158a8bb7af740b8792448d935bc9d29795ee341bca577c82ac0619b
28 +DIST redmine-4.2.2.tar.gz 3038398 BLAKE2B 995179b6a5f75548525912dc20b4c0ded8709a12d6eb84873d899b20cf3b83469af7f14713187cce8ec720be4d501a9e7e890e1f38cbe2b118041dc91f555f53 SHA512 71155358ca68d9eb5bf6b79e26202c29ba3355d499662bfe659ff1672625a25d91694d5f1e4bb8db18456642470244aca914efe4456adef2850b70ff7eb216b2
29
30 diff --git a/www-apps/redmine/metadata.xml b/www-apps/redmine/metadata.xml
31 index c957cd80dda..c1fdc250a8e 100644
32 --- a/www-apps/redmine/metadata.xml
33 +++ b/www-apps/redmine/metadata.xml
34 @@ -11,6 +11,7 @@
35 </maintainer>
36 <use>
37 <flag name="markdown">Enable support for Markdown</flag>
38 + <flag name="minimagick">Enable image processing support via <pkg>dev-ruby/mini_magick</pkg></flag>
39 <flag name="passenger">Enable support for <pkg>www-apache/passenger</pkg></flag>
40 </use>
41 </pkgmetadata>
42
43 diff --git a/www-apps/redmine/redmine-4.2.2.ebuild b/www-apps/redmine/redmine-4.2.2.ebuild
44 new file mode 100644
45 index 00000000000..bd3fc3e7a87
46 --- /dev/null
47 +++ b/www-apps/redmine/redmine-4.2.2.ebuild
48 @@ -0,0 +1,240 @@
49 +# Copyright 1999-2021 Gentoo Authors
50 +# Distributed under the terms of the GNU General Public License v2
51 +
52 +EAPI=7
53 +
54 +USE_RUBY="ruby26"
55 +inherit depend.apache ruby-ng
56 +
57 +DESCRIPTION="Flexible project management web application using the Ruby on Rails framework"
58 +HOMEPAGE="https://www.redmine.org/"
59 +SRC_URI="https://www.redmine.org/releases/${P}.tar.gz"
60 +
61 +KEYWORDS="~amd64"
62 +LICENSE="GPL-2"
63 +SLOT="0"
64 +IUSE="fastcgi imagemagick ldap markdown +minimagick mysql passenger pdf postgres sqlite"
65 +
66 +ruby_add_bdepend "
67 + fastcgi? ( dev-ruby/fcgi )
68 + ldap? ( dev-ruby/ruby-net-ldap )
69 + minimagick? ( dev-ruby/mini_magick )
70 + markdown? ( >=dev-ruby/redcarpet-3.5.1 )
71 + mysql? ( >=dev-ruby/mysql2-0.5.0:0.5 )
72 + passenger? ( www-apache/passenger )
73 + postgres? ( >=dev-ruby/pg-1.1.4:1 )
74 + sqlite? ( >=dev-ruby/sqlite3-1.4.0 )
75 + dev-ruby/actionpack-xml_parser:2
76 + dev-ruby/addressable
77 + dev-ruby/csv:3
78 + >=dev-ruby/i18n-1.8.2:1
79 + >=dev-ruby/mail-2.7.1
80 + dev-ruby/marcel
81 + dev-ruby/mimemagic
82 + >=dev-ruby/mini_mime-1.0.1
83 + >=dev-ruby/nokogiri-1.11.1
84 + dev-ruby/rack-openid
85 + dev-ruby/rails:5.2
86 + >=dev-ruby/rbpdf-1.20.0
87 + >=dev-ruby/request_store-1.5.0:0
88 + >=dev-ruby/roadie-rails-2.2.0
89 + dev-ruby/rotp
90 + >=dev-ruby/rouge-3.26.0
91 + dev-ruby/rqrcode
92 + >=dev-ruby/ruby-openid-2.9.2
93 + >=dev-ruby/rubyzip-2.3.0:2
94 +"
95 +
96 +RDEPEND="
97 + acct-group/redmine
98 + acct-user/redmine
99 + imagemagick? ( media-gfx/imagemagick )
100 + pdf? (
101 + app-text/ghostscript-gpl
102 + media-gfx/imagemagick
103 + )
104 +"
105 +
106 +REDMINE_DIR="/var/lib/${PN}"
107 +
108 +all_ruby_prepare() {
109 + rm -fr log files/delete.me .github || die
110 +
111 + # bug #406605
112 + rm .{git,hg}ignore || die
113 +
114 + # newenvd not working here
115 + cat > "${T}/50${PN}" <<-EOF || die
116 + CONFIG_PROTECT="${EROOT}/${REDMINE_DIR}/config"
117 + CONFIG_PROTECT_MASK="${EROOT}/${REDMINE_DIR}/config/locales ${EROOT}/${REDMINE_DIR}/config/settings.yml"
118 + EOF
119 +
120 + # Fixing versions in Gemfile
121 + sed -i -e "s/~>/>=/g" Gemfile || die
122 +
123 + # bug #724464
124 + sed -i -e "s/gem 'rails',.*/gem 'rails', '~>5.2.6'/" Gemfile || die
125 +
126 + sed -i -e "/group :development do/,/end$/d" Gemfile || die
127 + sed -i -e "/group :test do/,/end$/d" Gemfile || die
128 +
129 + if ! use imagemagick ; then
130 + sed -i -e "/group :minimagick do/,/end$/d" Gemfile || die
131 + fi
132 + if ! use ldap ; then
133 + # remove ldap stuff module if disabled to avoid #413779
134 + use ldap || rm app/models/auth_source_ldap.rb || die
135 + sed -i -e "/group :ldap do/,/end$/d" Gemfile || die
136 + fi
137 + if ! use markdown ; then
138 + sed -i -e "/group :markdown do/,/end$/d" Gemfile || die
139 + fi
140 + # Additional dependency for Gemfile (#657156)
141 + if use fastcgi; then
142 + echo "gem 'fcgi'" > Gemfile.local
143 + fi
144 +}
145 +
146 +all_ruby_install() {
147 + dodoc doc/* README.rdoc
148 + rm -r doc test appveyor.yml CONTRIBUTING.md README.rdoc || die
149 +
150 + keepdir /var/log/${PN}
151 +
152 + insinto "${REDMINE_DIR}"
153 + doins -r .
154 + insinto "${REDMINE_DIR}/config"
155 + doins "${FILESDIR}/additional_environment.rb"
156 + keepdir "${REDMINE_DIR}"/{app/views/previews,files,public/plugin_assets,vendor}
157 + keepdir "${REDMINE_DIR}"/tmp/{cache,imports,sessions,sockets}
158 +
159 + fowners -R redmine:redmine \
160 + "${REDMINE_DIR}/config.ru" \
161 + "${REDMINE_DIR}/config" \
162 + "${REDMINE_DIR}/files" \
163 + "${REDMINE_DIR}/public/plugin_assets" \
164 + "${REDMINE_DIR}/tmp" \
165 + /var/log/${PN}
166 +
167 + fowners redmine:redmine "${REDMINE_DIR}"
168 +
169 + # protect sensitive data, see bug #406605
170 + fperms -R go-rwx \
171 + "${REDMINE_DIR}/config" \
172 + "${REDMINE_DIR}/files" \
173 + "${REDMINE_DIR}/tmp" \
174 + /var/log/${PN}
175 +
176 + if use passenger; then
177 + has_apache
178 + insinto "${APACHE_VHOSTS_CONFDIR}"
179 + doins "${FILESDIR}/10_redmine_vhost.conf"
180 + fi
181 +
182 + # logrotate
183 + insinto /etc/logrotate.d
184 + newins "${FILESDIR}"/redmine.logrotate redmine
185 +
186 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
187 + newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
188 + doenvd "${T}/50${PN}"
189 +}
190 +
191 +pkg_postinst() {
192 + if [[ -e "${EROOT}/${REDMINE_DIR}/config/initializers/session_store.rb" \
193 + || -e "${EROOT}/${REDMINE_DIR}/config/initializers/secret_token.rb" ]]
194 + then
195 + elog "Execute the following command to upgrade environment:"
196 + elog
197 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
198 + elog
199 + elog "For upgrade instructions take a look at:"
200 + elog "http://www.redmine.org/wiki/redmine/RedmineUpgrade"
201 + else
202 + elog "Execute the following command to initialize environment:"
203 + elog
204 + elog "# cd ${EROOT}/${REDMINE_DIR}"
205 + elog "# cp config/database.yml.example config/database.yml"
206 + elog "# \${EDITOR} config/database.yml"
207 + elog "# chown redmine:redmine config/database.yml"
208 + elog "# emerge --config \"=${CATEGORY}/${PF}\""
209 + elog
210 + elog "Installation notes are at official site"
211 + elog "http://www.redmine.org/wiki/redmine/RedmineInstall"
212 + fi
213 +}
214 +
215 +pkg_config() {
216 + # Remove old lock file
217 + rm -f "${EROOT}/${REDMINE_DIR}/Gemfile.lock"
218 +
219 + if [[ ! -e "${EROOT}/${REDMINE_DIR}/config/database.yml" ]]; then
220 + eerror "Copy ${EROOT}/${REDMINE_DIR}/config/database.yml.example to"
221 + eerror "${EROOT}/${REDMINE_DIR}/config/database.yml then edit this"
222 + eerror "file in order to configure your database settings for"
223 + eerror "\"production\" environment."
224 + die
225 + fi
226 +
227 + local RAILS_ENV=${RAILS_ENV:-production}
228 + if [[ ! -L /usr/bin/ruby ]]; then
229 + eerror "/usr/bin/ruby is not a valid symlink to any ruby implementation."
230 + eerror "Please update it via `eselect ruby`"
231 + die
232 + fi
233 + if [[ $RUBY_TARGETS != *$( eselect ruby show | awk 'NR==2' | tr -d ' ' )* ]]
234 + then
235 + eerror "/usr/bin/ruby is currently not included in redmine's ruby targets:"
236 + eerror "${RUBY_TARGETS}."
237 + eerror "Please update it via `eselect ruby`"
238 + die
239 + fi
240 + local RUBY=${RUBY:-ruby}
241 +
242 + cd "${EROOT}/${REDMINE_DIR}" || die
243 + if [[ -e "${EROOT}/${REDMINE_DIR}/config/initializers/session_store.rb" ]]
244 + then
245 + einfo
246 + einfo "Generating secret token."
247 + einfo
248 + rm config/initializers/session_store.rb || die
249 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
250 + fi
251 + if [[ -e "${EROOT}/${REDMINE_DIR}/config/initializers/secret_token.rb" ]]
252 + then
253 + einfo
254 + einfo "Upgrading database."
255 + einfo
256 +
257 + einfo "Generating secret token."
258 + # Migration from Redmine 2.x
259 + rm config/initializers/secret_token.rb || die
260 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake generate_secret_token || die
261 +
262 + einfo "Migrating database."
263 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
264 + einfo "Upgrading the plugin migrations."
265 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:plugins:migrate || die
266 + einfo "Clear the cache."
267 + ${RUBY} -S rake tmp:cache:clear || die
268 + else
269 + einfo
270 + einfo "Initializing database."
271 + einfo
272 +
273 + einfo "Generating a session store secret."
274 + ${RUBY} -S rake generate_secret_token || die
275 + einfo "Creating the database structure."
276 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake db:migrate || die
277 + einfo "Populating database with default configuration data."
278 + RAILS_ENV="${RAILS_ENV}" ${RUBY} -S rake redmine:load_default_data || die
279 + chown redmine:redmine -R "${EROOT}/var/log/redmine/" || die
280 + einfo
281 + einfo "If you use sqlite3, please do not forget to change the ownership"
282 + einfo "of the sqlite files."
283 + einfo
284 + einfo "# cd \"${EROOT}/${REDMINE_DIR}\""
285 + einfo "# chown redmine:redmine db/ db/*.sqlite3"
286 + einfo
287 + fi
288 +}