Merge branch 'master' into 40-gitlab-8-12-with-ruby-2-3-support

This commit is contained in:
Manuel Friedli 2016-09-18 12:43:41 +02:00
commit cd17daf343
3 changed files with 393 additions and 4 deletions

View file

@ -1,6 +1,7 @@
16 Sep 2016; Manuel Friedli <manuel@fritteli.ch> gitlab-ce-9999.ebuild: *gitlab-ce-8.11.6 (18 Sep 2016)
www-apps/gitlab-ce: addeed ebuild for 8.12.0-rc3 and updated ebuild for
version 9999 18 Sep 2016; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-8.11.6.ebuild:
www-apps/gitlab-ce: added ebuild for gitlab-ce-8.11.6
*gitlab-ce-8.12.0_rc2 (11 Sep 2016) *gitlab-ce-8.12.0_rc2 (11 Sep 2016)

View file

@ -15,6 +15,7 @@ DIST gitlab-ce-8.11.2.tar.gz 25627225 SHA256 a807f06cb80ac3becae2f89702988203e28
DIST gitlab-ce-8.11.3.tar.gz 25701850 SHA256 23dc756ae148074701acaefcc686a66ccf703da53dce721f0fc2673f143620eb SHA512 0808da71567799396389164b54954caf326a501199ded766c0cb39905d7aef44df7267e2066b3bd9a586833df7b19dbf4ae4b7f356aa49ad9d8eed065b162d90 WHIRLPOOL 87277ed4793e75814d82ed3bb8076ddb4fe5f47aa68115121c80d6899ab2fad56a39e1ec88e9ac157961a6ef2dc57d076f265816dc58a5b86ab36d15bffc5535 DIST gitlab-ce-8.11.3.tar.gz 25701850 SHA256 23dc756ae148074701acaefcc686a66ccf703da53dce721f0fc2673f143620eb SHA512 0808da71567799396389164b54954caf326a501199ded766c0cb39905d7aef44df7267e2066b3bd9a586833df7b19dbf4ae4b7f356aa49ad9d8eed065b162d90 WHIRLPOOL 87277ed4793e75814d82ed3bb8076ddb4fe5f47aa68115121c80d6899ab2fad56a39e1ec88e9ac157961a6ef2dc57d076f265816dc58a5b86ab36d15bffc5535
DIST gitlab-ce-8.11.4.tar.gz 25704666 SHA256 c8d94888b4f7aabaab2d548926935edf0fc284277006e284424e202122b072a3 SHA512 dc4f2dfaabe95ecea1202da8e1af6d850281146faa7ed2c522c34abd0167f9ff4b4807fca76a61fc2f607126efedca552652474edf552f2848d797f92b5b1ef2 WHIRLPOOL 30b2a46e3b3a4503fd1a1cc68eb2709b76067068550729fe45b9a4b3917cfac08932da689743744c03041a7b705432a4f601fb6a1e2d81a897cc035197e90b5f DIST gitlab-ce-8.11.4.tar.gz 25704666 SHA256 c8d94888b4f7aabaab2d548926935edf0fc284277006e284424e202122b072a3 SHA512 dc4f2dfaabe95ecea1202da8e1af6d850281146faa7ed2c522c34abd0167f9ff4b4807fca76a61fc2f607126efedca552652474edf552f2848d797f92b5b1ef2 WHIRLPOOL 30b2a46e3b3a4503fd1a1cc68eb2709b76067068550729fe45b9a4b3917cfac08932da689743744c03041a7b705432a4f601fb6a1e2d81a897cc035197e90b5f
DIST gitlab-ce-8.11.5.tar.gz 25704701 SHA256 5a0de2cdcb97396d8174ad49126e67829df47a2abf1831439186ae443e692662 SHA512 961dad680e4a7a158e316ac66e29ff42bb4f065796fcf360c6cba4c102eb67a240ea188a8ef1164608e05a3d6c5e04790ecc73ea2f2e5cc89766a2751b108532 WHIRLPOOL 35c1e8f7ba2f9fba159cd182c97f0d14f17b289e6e238027beccd9f805fa8622a353c507a56a9ec8d81bc64698fd35fc2cd0ad73c35a86a03cb894c62b458848 DIST gitlab-ce-8.11.5.tar.gz 25704701 SHA256 5a0de2cdcb97396d8174ad49126e67829df47a2abf1831439186ae443e692662 SHA512 961dad680e4a7a158e316ac66e29ff42bb4f065796fcf360c6cba4c102eb67a240ea188a8ef1164608e05a3d6c5e04790ecc73ea2f2e5cc89766a2751b108532 WHIRLPOOL 35c1e8f7ba2f9fba159cd182c97f0d14f17b289e6e238027beccd9f805fa8622a353c507a56a9ec8d81bc64698fd35fc2cd0ad73c35a86a03cb894c62b458848
DIST gitlab-ce-8.11.6.tar.gz 25705796 SHA256 354da5db4087ce80d9f43cbae87830ccd06c2c559f8dfb764dffd7420588a66b SHA512 5abda185bfbbad61060ac9b5e83101d88f0f6c8cc12580c71467c7bfdc380d60acc9a8a855ac448759c8be9a5297ba721d0e641ec144741a7c57dd038e13b269 WHIRLPOOL 046ecd777cebc8768c9cdefab7f782c7943403e0c5c6b963ee2359f10f446b5cbe6974d07e14a3089c79830722de6d1e965fa2a58316e75a280ddf09825a1fe6
DIST gitlab-ce-8.12.0_rc3.tar.gz 25967009 SHA256 b0f021190034425fbaa62c44664dbb6fbf865eb1f3a3f75eeeaeb6f540bce07f SHA512 a3a2c915d410be58c0d020f88c0f21c01c231b3c95502936959069e63b291b035b12d5f6891c65ffaff4ab2a01d262f82636e1d75d336029b386b591bd95d702 WHIRLPOOL 441cbda165bd90ebd5df4002dcb89a8c6424c36047dc8f97cfbab7e7763d6af7648985d6d83e12eb5d7a9e0b9776a62a1f240300426e6b9254a3e2b5038fab56 DIST gitlab-ce-8.12.0_rc3.tar.gz 25967009 SHA256 b0f021190034425fbaa62c44664dbb6fbf865eb1f3a3f75eeeaeb6f540bce07f SHA512 a3a2c915d410be58c0d020f88c0f21c01c231b3c95502936959069e63b291b035b12d5f6891c65ffaff4ab2a01d262f82636e1d75d336029b386b591bd95d702 WHIRLPOOL 441cbda165bd90ebd5df4002dcb89a8c6424c36047dc8f97cfbab7e7763d6af7648985d6d83e12eb5d7a9e0b9776a62a1f240300426e6b9254a3e2b5038fab56
EBUILD gitlab-ce-8.10.6.ebuild 11710 SHA256 1659a2e43491488fa6fbbee1699cc4138e8938f694e73310e5faf45fbd9f2578 SHA512 70304f8fe862988d4092dd37c5a66fdfec56c9cb2d62a78f2cdf365a0c629606c6fb9081dbdc7e68530d43894d1cb645d168db8f3f0c8a9999873afd9032ec52 WHIRLPOOL dbf26294a9d6eb4258a67c64844370f1423fa59210b306bc66ea53a902cbc564b1cd084b765759e93d7970df30417e6482dfbbf271dda8d387ef006837123ac3 EBUILD gitlab-ce-8.10.6.ebuild 11710 SHA256 1659a2e43491488fa6fbbee1699cc4138e8938f694e73310e5faf45fbd9f2578 SHA512 70304f8fe862988d4092dd37c5a66fdfec56c9cb2d62a78f2cdf365a0c629606c6fb9081dbdc7e68530d43894d1cb645d168db8f3f0c8a9999873afd9032ec52 WHIRLPOOL dbf26294a9d6eb4258a67c64844370f1423fa59210b306bc66ea53a902cbc564b1cd084b765759e93d7970df30417e6482dfbbf271dda8d387ef006837123ac3
EBUILD gitlab-ce-8.11.0.ebuild 11703 SHA256 f95aa4a60c85da0155df6b989e343296eba23a6c2f12055c5f94bee53f5d9bc0 SHA512 6d1c7c3e3139d456a7b22431b326401a9b56e435000a02a572bfdbb52c5495e098b0406ab9b8051a2a901878e3a3a2c4332af9a0bf50ff1a36051f9436c1ddbe WHIRLPOOL bd92de9d5fda4a4b1802e814a55ea1e1a9848a9e085b9ad88ba108771dc68953156c8cecde64ef2250eba8f2b9568f73969460aa61c4901957d9b7771558ed9c EBUILD gitlab-ce-8.11.0.ebuild 11703 SHA256 f95aa4a60c85da0155df6b989e343296eba23a6c2f12055c5f94bee53f5d9bc0 SHA512 6d1c7c3e3139d456a7b22431b326401a9b56e435000a02a572bfdbb52c5495e098b0406ab9b8051a2a901878e3a3a2c4332af9a0bf50ff1a36051f9436c1ddbe WHIRLPOOL bd92de9d5fda4a4b1802e814a55ea1e1a9848a9e085b9ad88ba108771dc68953156c8cecde64ef2250eba8f2b9568f73969460aa61c4901957d9b7771558ed9c
@ -22,7 +23,8 @@ EBUILD gitlab-ce-8.11.2.ebuild 11712 SHA256 02dd8184aa55060d9b36fefef46d2506f251
EBUILD gitlab-ce-8.11.3.ebuild 11712 SHA256 41be23427e3c7d550888eec40091d7e6f6c0cbe477712bb0597362db1490e342 SHA512 fca0648f60a292438746b9ba4ab532957a58889458e45c20ad3d18cf6b46130fe8c4087a813fe2b93ac15f6ab756e67188087c5bf51222b16230bd1fb9431872 WHIRLPOOL b1c09c4f9bc50c584f5e22e2db955d636631ec117054c40c77f68945ed64a048a598f014bc463ad9a5afce3f3317dcafd6bcf9321d2c38a1e36e2fe11506e500 EBUILD gitlab-ce-8.11.3.ebuild 11712 SHA256 41be23427e3c7d550888eec40091d7e6f6c0cbe477712bb0597362db1490e342 SHA512 fca0648f60a292438746b9ba4ab532957a58889458e45c20ad3d18cf6b46130fe8c4087a813fe2b93ac15f6ab756e67188087c5bf51222b16230bd1fb9431872 WHIRLPOOL b1c09c4f9bc50c584f5e22e2db955d636631ec117054c40c77f68945ed64a048a598f014bc463ad9a5afce3f3317dcafd6bcf9321d2c38a1e36e2fe11506e500
EBUILD gitlab-ce-8.11.4.ebuild 11954 SHA256 1970a09040e9d4e924a187bf108dece607825fe62a2fed7a6202a8c24e878f15 SHA512 189157bd48f107fff5e7b476f4b103c40c81baf2620bd1bf5600547f66c3dfe4ad7aec4001422c4f69a49ba973fdff724d8868d0cbba9719bed4908f3bb60772 WHIRLPOOL 4f270f6251d4172c956492ac3f2d7a2041db4d5ec3b344f43af9f0d01fc8fd3274e225ecbd1d35128757ece050cd91db5db74629c377d553de2afcf015ce9c48 EBUILD gitlab-ce-8.11.4.ebuild 11954 SHA256 1970a09040e9d4e924a187bf108dece607825fe62a2fed7a6202a8c24e878f15 SHA512 189157bd48f107fff5e7b476f4b103c40c81baf2620bd1bf5600547f66c3dfe4ad7aec4001422c4f69a49ba973fdff724d8868d0cbba9719bed4908f3bb60772 WHIRLPOOL 4f270f6251d4172c956492ac3f2d7a2041db4d5ec3b344f43af9f0d01fc8fd3274e225ecbd1d35128757ece050cd91db5db74629c377d553de2afcf015ce9c48
EBUILD gitlab-ce-8.11.5.ebuild 11954 SHA256 1d064416cf453ac5e66dcb39c332db6ef01636f647dafd80faeb357f61a8c365 SHA512 927327684f3914962f2f48c74dd620cc0e8c1fac0ba5eb00e0411f61189ab8bf77bcc3ee9aa3be533e354c0375935ba981d276487faa965e2159e509d00c5468 WHIRLPOOL f6114dfed971973a89a350637818c9546554aac04fc637b276b37411e3e6b425e254dd8c2bb05019893c07f24deefe35d08a6234b2be4c06c1a6f56d39f21d33 EBUILD gitlab-ce-8.11.5.ebuild 11954 SHA256 1d064416cf453ac5e66dcb39c332db6ef01636f647dafd80faeb357f61a8c365 SHA512 927327684f3914962f2f48c74dd620cc0e8c1fac0ba5eb00e0411f61189ab8bf77bcc3ee9aa3be533e354c0375935ba981d276487faa965e2159e509d00c5468 WHIRLPOOL f6114dfed971973a89a350637818c9546554aac04fc637b276b37411e3e6b425e254dd8c2bb05019893c07f24deefe35d08a6234b2be4c06c1a6f56d39f21d33
EBUILD gitlab-ce-8.11.6.ebuild 11954 SHA256 2752b8057eac0cd77e74bc7f323a6ab0037c9d70559a637f15e30f11ba244b65 SHA512 a649871bc5594aac19ac816a53a164edde1c7a70933c777489ee45c98515099c2748dd2a65fb433481ecd69ed9fd1f386e2f137b8cb9761453252ceab362e4cd WHIRLPOOL b623e4a6ed638c42672f0f8cde252681c89b92831d8bfb687a8ab7bb374335552586b77bd7066a898ed6612715732f538b29acbe874bd31e72c63f49e54deb00
EBUILD gitlab-ce-8.12.0_rc3.ebuild 11937 SHA256 1bf84c50e8a6e425d09aab3405e7e12954f9076f6dafa932a3be6f2dbe777f86 SHA512 165ff0388c16045a53e83da3cfcedd3c6ffe9b729ac38d761af10a661c1744ab3e6343f379c553d5ea05bcde49e4595f4b4a65d5315237cccacfed98e9e325c7 WHIRLPOOL 51990b54d64f8071eb0aa3888c1039b35c626eaf4a65b9666b65a55e38e22db98e0be54c2bfc965ef808ce1821ec66bef9d6625d3f3f5fa3d6e85ba1094b07a9 EBUILD gitlab-ce-8.12.0_rc3.ebuild 11937 SHA256 1bf84c50e8a6e425d09aab3405e7e12954f9076f6dafa932a3be6f2dbe777f86 SHA512 165ff0388c16045a53e83da3cfcedd3c6ffe9b729ac38d761af10a661c1744ab3e6343f379c553d5ea05bcde49e4595f4b4a65d5315237cccacfed98e9e325c7 WHIRLPOOL 51990b54d64f8071eb0aa3888c1039b35c626eaf4a65b9666b65a55e38e22db98e0be54c2bfc965ef808ce1821ec66bef9d6625d3f3f5fa3d6e85ba1094b07a9
EBUILD gitlab-ce-9999.ebuild 11892 SHA256 65ecf92d389cc0175716d9bb0b65f6dcef7fb9be80801a5ddfdd5ab86d8905ca SHA512 c0340c00d5668f1ffcd70c17f0436b2f8d10fed7d30e04cd0e611e5254139acd4d8706999b17db58549a06ad7b5e9b706358744da13da942067d7a2319b1a4ce WHIRLPOOL f35e98533e5bc0fb83c4c9f9efd7525da6acc9c53de7eb623d09386aac05763310c0ad3b9abcf58b620bb2aa4099c5eb3a0a7aa0dca26a729eab52eb152ec7e7 EBUILD gitlab-ce-9999.ebuild 11892 SHA256 65ecf92d389cc0175716d9bb0b65f6dcef7fb9be80801a5ddfdd5ab86d8905ca SHA512 c0340c00d5668f1ffcd70c17f0436b2f8d10fed7d30e04cd0e611e5254139acd4d8706999b17db58549a06ad7b5e9b706358744da13da942067d7a2319b1a4ce WHIRLPOOL f35e98533e5bc0fb83c4c9f9efd7525da6acc9c53de7eb623d09386aac05763310c0ad3b9abcf58b620bb2aa4099c5eb3a0a7aa0dca26a729eab52eb152ec7e7
MISC ChangeLog 6602 SHA256 58f1d5cc6abafdb9eda39eb0f41e23552363e8cd8e75f19b16f2fb5f4b2476da SHA512 cd390a4651dc900f3937c5af8808a41158b54dcea4afc0b106c612a83a48ccd2b6d263d6cf4f58dd9bc56977be422c5f24715852de98aacdec36bd4ee53e99d7 WHIRLPOOL edf8b1b39ddd697887d1fce1e3d7c9842cb2fae7d8636da35c33dac89e0848f60df5d532c6d5e221c6b1f2976f3a4e79b1140b62a67b9f6481cf884b9351cd40 MISC ChangeLog 6605 SHA256 3cce45e5f6d8aacf11b444d5ed18acaaaaf7e0d6d6d5dd1c6168cee8cc40d917 SHA512 bd07a0d06641cd58bf024a37fd4f2f54857b2b4eefffdf9fa94906aba893804258446ffa9a362336e5e303396fc3ad02c71bfa6ca81a98b0101dcc4e72fd1c9b WHIRLPOOL fd34627aab2bb1b6fece50dc094cbc0d0a5df59ee22f423e94ce7a94d921774344be9b0328b7bb17353d1e6a10f552ea78548fc21c8941a5029431c4e82fe1ae
MISC metadata.xml 545 SHA256 1b7fc44d811e1ab7638fe4a40253f49d5f1071872d3020c22c4f67662750cb2f SHA512 86f47d297892bccfefa087d93936296f5647993a9ec8e3f47907a6859cbf385e5bc6f00502d7836c9e8d9efef2b6725bf145b0150924c2082b2bd164469ef6ea WHIRLPOOL 6bfb8a55684d68c8bfa6e025a0be965f7b815394ee0896dd2a13cfb524e3cf3f3149acc9072897e30a1842060389576aac07ea8beb4a8b0bfc3e8eab3723f2a1 MISC metadata.xml 545 SHA256 1b7fc44d811e1ab7638fe4a40253f49d5f1071872d3020c22c4f67662750cb2f SHA512 86f47d297892bccfefa087d93936296f5647993a9ec8e3f47907a6859cbf385e5bc6f00502d7836c9e8d9efef2b6725bf145b0150924c2082b2bd164469ef6ea WHIRLPOOL 6bfb8a55684d68c8bfa6e025a0be965f7b815394ee0896dd2a13cfb524e3cf3f3149acc9072897e30a1842060389576aac07ea8beb4a8b0bfc3e8eab3723f2a1

View file

@ -0,0 +1,386 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
# Maintainer notes:
# - This ebuild uses Bundler to download and install all gems in deployment mode
# (i.e. into isolated directory inside application). That's not Gentoo way how
# it should be done, but GitLab has too many dependencies that it will be too
# difficult to maintain them via ebuilds.
#
USE_RUBY="ruby21"
inherit eutils ruby-ng user systemd
MY_PV="v${PV/_/-}"
MY_GIT_COMMIT="410d75139541ee2a2cda04debcdbb6767a9c01bc"
DESCRIPTION="GitLab is a free project and repository management application"
HOMEPAGE="https://about.gitlab.com/"
SRC_URI="https://gitlab.com/gitlab-org/${PN}/repository/archive.tar.gz?ref=${MY_PV} -> ${P}.tar.gz"
RUBY_S="${PN}-${MY_PV}-${MY_GIT_COMMIT}"
RESTRICT="mirror"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~arm ~arm64"
IUSE="kerberos mysql +postgres +unicorn systemd rugged_use_system_libraries"
## Gems dependencies:
# charlock_holmes dev-libs/icu
# grape, capybara dev-libs/libxml2, dev-libs/libxslt
# rugged dev-util/cmake, virtual/pkgconfig
# json dev-util/ragel
# pygments.rb python 2.7+
# execjs net-libs/nodejs, or any other JS runtime
# pg dev-db/postgresql
# mysql virtual/mysql
#
GEMS_DEPEND="
dev-libs/icu
dev-libs/libxml2
dev-libs/libxslt
dev-util/ragel
net-libs/nodejs
postgres? ( >=dev-db/postgresql-9.1:* )
mysql? ( virtual/mysql )
kerberos? ( virtual/krb5 )"
CDEPEND="
dev-util/cmake
virtual/pkgconfig"
COMMON_DEPEND="
${GEMS_DEPEND}
~dev-vcs/gitlab-shell-3.4.0
>=dev-vcs/git-2.7.4
~dev-vcs/gitlab-workhorse-0.7.11
kerberos? ( !app-crypt/heimdal )
rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/24 )"
DEPEND="
${CDEPEND}
${COMMON_DEPEND}"
RDEPEND="
${COMMON_DEPEND}
>=dev-db/redis-2.8
virtual/mta
systemd? ( sys-apps/systemd:0= )"
ruby_add_bdepend "
virtual/rubygems
>=dev-ruby/bundler-1.0"
#
# fix-sendmail-config:
# Fix default settings to work with ssmtp that doesn't know '-t' argument.
# fix-redis-config-path:
# Point to the absolute location of redis_config.rb
#
RUBY_PATCHES=(
"${PN}-8.7.5-fix-sendmail-config.patch"
"${PN}-8.11.0-fix-redis-config-path.patch"
)
MY_NAME="gitlab"
MY_USER="git" # should be same as in gitlab-shell
DEST_DIR="/opt/${MY_NAME}"
CONF_DIR="/etc/${MY_NAME}"
LOGS_DIR="/var/log/${MY_NAME}"
TEMP_DIR="/var/tmp/${MY_NAME}"
# When updating ebuild to newer version, check list of the queues in
# https://gitlab.com/gitlab-org/gitlab-ce/blob/${MY_PV}/bin/background_jobs
SIDEKIQ_QUEUES="post_receive,mailers,archive_repo,system_hook,project_web_hook,gitlab_shell,incoming_email,runner,common,default"
all_ruby_prepare() {
# fix paths
local satellites_path="${TEMP_DIR}/repo_satellites"
local repos_path=/var/lib/git/repositories
local shell_path=/usr/share/gitlab-shell
sed -i -E \
-e "/satellites:$/,/\w:$/ s|(\s*path:\s).*|\1${satellites_path}/|" \
-e "/gitlab_shell:$/,/\w:$/ s|(\s*path:\s).*|\1${shell_path}/|" \
-e "/gitlab_shell:$/,/\w:$/ s|(\s*repos_path:\s).*|\1${repos_path}/|" \
-e "/gitlab_shell:$/,/\w:$/ s|(\s*hooks_path:\s).*|\1${shell_path}/hooks/|" \
config/gitlab.yml.example || die "failed to filter gitlab.yml.example"
local run_path=/run/${MY_NAME}
sed -i -E \
-e "s|/home/git/gitlab/tmp/(pids\|sockets)|${run_path}|" \
-e "s|/home/git/gitlab/log|${LOGS_DIR}|" \
-e "s|/home/git/gitlab|${DEST_DIR}|" \
config/unicorn.rb.example || die "failed to filter unicorn.rb.example"
sed -i \
-e "s|/home/git/gitlab/tmp/sockets|${run_path}|" \
lib/support/nginx/gitlab || die "failed to filter nginx/gitlab"
# modify default database settings for PostgreSQL
sed -i -E \
-e 's|(username:).*|\1 gitlab|' \
-e 's|(password:).*|\1 gitlab|' \
-e 's|(socket:).*|\1 /run/postgresql/.s.PGSQL.5432|' \
config/database.yml.postgresql \
|| die "failed to filter database.yml.postgresql"
# rename config files
mv config/gitlab.yml.example config/gitlab.yml
mv config/unicorn.rb.example config/unicorn.rb
local dbconf=config/database.yml
if use postgres && ! use mysql; then
mv ${dbconf}.postgresql ${dbconf}
rm ${dbconf}.mysql
elif use mysql && ! use postgres; then
mv ${dbconf}.mysql ${dbconf}
rm ${dbconf}.postgresql
fi
# remove useless files
rm -r lib/support/{deploy,init.d}
use unicorn || rm config/unicorn.rb
}
all_ruby_install() {
local dest=${DEST_DIR}
local conf=${CONF_DIR}
local logs=${LOGS_DIR}
local temp=${TEMP_DIR}
# prepare directories
diropts -m750
dodir ${logs} ${temp}
diropts -m755
dodir ${conf} ${dest}/public/uploads
dosym ${temp} ${dest}/tmp
dosym ${logs} ${dest}/log
# install configs
insinto ${conf}
doins -r config/*
dosym ${conf} ${dest}/config
echo 'export RAILS_ENV=production' > "${D}/${dest}/.profile"
# remove needless dirs
rm -Rf config tmp log
# install the rest files
# using cp 'cause doins is slow
cp -Rl * "${D}/${dest}"/
# install logrotate config
dodir /etc/logrotate.d
cat > "${D}/etc/logrotate.d/${MY_NAME}" <<-EOF
${logs}/*.log {
missingok
delaycompress
compress
copytruncate
}
EOF
## Install gems via bundler ##
cd "${D}/${dest}"
local without="development test aws"
local flag; for flag in mysql postgres unicorn kerberos; do
without+="$(use $flag || echo ' '$flag)"
done
local bundle_args="--deployment ${without:+--without ${without}}"
use "rugged_use_system_libraries" && export RUGGED_USE_SYSTEM_LIBRARIES="YES"
einfo "Running bundle install ${bundle_args} ..."
${RUBY} /usr/bin/bundle install ${bundle_args} || die "bundler failed"
einfo "Cleaning old gems ..."
${RUBY} /usr/bin/bundle clean
# clean gems cache
rm -Rf vendor/bundle/ruby/*/cache
rm -Rf vendor/bundle/ruby/*/bundler/gems/charlock_holmes-dde194609b35/.git
## RC script ##
if use systemd ; then
ewarn "Beware: systemd support has not been tested, use at your own risk!"
systemd_newunit "${FILESDIR}/gitlab-8.10.6-sidekiq.service" "gitlab-sidekiq.service"
systemd_dounit "${FILESDIR}/gitlab-unicorn.service"
systemd_dounit "${FILESDIR}/gitlab-workhorse.service"
systemd_dounit "${FILESDIR}/gitlab-mailroom.service"
systemd_dotmpfilesd "${FILESDIR}/gitlab.conf"
else
local rcscript=gitlab-sidekiq.init
use unicorn && rcscript=gitlab-unicorn.init
cp "${FILESDIR}/${rcscript}" "${T}" || die
sed -i \
-e "s|@USER@|${MY_USER}|" \
-e "s|@GITLAB_BASE@|${dest}|" \
-e "s|@LOGS_DIR@|${logs}|" \
-e "s|@QUEUES@|${SIDEKIQ_QUEUES}|" \
"${T}/${rcscript}" \
|| die "failed to filter ${rcscript}"
newinitd "${T}/${rcscript}" "${MY_NAME}"
fi
# fix permissions
fowners -R ${MY_USER}:${MY_USER} ${dest} ${temp} ${logs}
}
pkg_postinst() {
elog "If this is an update from a previous version, stop your GitLab"
elog "instance and issue the following command to perform all required"
elog "migrations:"
elog " emerge --config \"=${CATEGORY}/${PF}\""
elog "PLEASE NOTE: It's HIGHLY recommended to backup your database"
elog "before running the config phase. Run these commands (as root):"
elog
elog " cd /opt/gitlab"
elog " sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production"
elog
elog "If this was a fresh install, follow these steps:"
elog
elog "1. Configure your GitLab's settings in ${CONF_DIR}/gitlab.yml."
elog
elog "2. Configure your database settings in ${CONF_DIR}/database.yml"
elog " for \"production\" environment."
elog
elog "3. Then you should create a database for your GitLab instance, if you"
elog " haven't done so already."
elog
if use postgres; then
elog "If you have local PostgreSQL running, just copy&run:"
elog " su postgres"
elog " psql -c \"CREATE ROLE gitlab PASSWORD 'gitlab' \\"
elog " NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;\""
elog " createdb -E UTF-8 -O gitlab gitlabhq_production"
elog " Note: You should change your password to something more random..."
elog
fi
elog "4. Finally execute the following command to initialize the environment:"
elog " emerge --config \"=${CATEGORY}/${PF}\""
elog " Note: Do not forget to start Redis server first!"
elog
elog "If you're running GitLab behind an SSL proxy such as nginx or Apache and"
elog "you can't login after the upgrade, be sure to read the section about the"
elog "verification of the CSRF token in GitLab's trouble-shooting guide at"
elog "http://goo.gl/5XGRGv."
if use postgres; then
elog "Please note: As of GitLab 8.6, users of PostgreSQL need to enable the"
elog "`pg_trgm` extension by running the following command as a PostgreSQL"
elog "super user for *every* GitLab database:"
elog " CREATE EXTENSION IF NOT EXISTS pg_trgm;"
elog "For details, see the documentation at the GitLab website."
fi
}
pkg_config() {
einfo "Checking configuration files"
if [ ! -r "${CONF_DIR}/database.yml" ]; then
eerror "Copy ${CONF_DIR}/database.yml.* to"
eerror "${CONF_DIR}/database.yml and edit this file in order to configure your"
eerror "database settings for \"production\" environment."; die
fi
local email_from="$(ryaml ${CONF_DIR}/gitlab.yml production gitlab email_from)"
local git_home="$(egethome ${MY_USER})"
# configure Git global settings
if [ ! -e "${git_home}/.gitconfig" ]; then
einfo "Setting git user"
su -l ${MY_USER} -c "
git config --global user.email '${email_from}';
git config --global user.name 'GitLab'" \
|| die "failed to setup git name and email"
fi
# determine whether this is an update or a fresh install. we do this by
# checking whether the ${DEST_DIR}/.git directory exists or not
#
if [ -d "${DEST_DIR}/.git" ]; then
local update=true
else
local update=false
fi
## Initialize app ##
local RAILS_ENV="production"
local RUBY=${RUBY:-/usr/bin/ruby}
local BUNDLE="${RUBY} /usr/bin/bundle"
# FIXME: this line existed in older ebuilds, but the variable is
# never used. what was it for!?
# local dbname="$(ryaml ${CONF_DIR}/database.yml production database)"
if [ "${update}" = 'true' ]; then
einfo "Migrating database ..."
exec_rake db:migrate
# https://github.com/gitlabhq/gitlabhq/issues/5311#issuecomment-31656496
einfo "Migrating iids ..."
exec_rake migrate_iids
einfo "Cleaning old precompiled assets ..."
exec_rake assets:clean
einfo "Cleaning cache ..."
exec_rake cache:clear
else
# create dummy git repo as workaround for
# https://github.com/bundler/bundler/issues/2039
einfo "Initializing dummy git repository to avoid false errors from bundler"
su -l ${MY_USER} -c "
cd ${DEST_DIR}
git init
git add README.md
git commit -m 'Dummy repository'" >/dev/null
einfo "Initializing database ..."
exec_rake gitlab:setup
fi
einfo "Precompiling assests ..."
exec_rake assets:precompile
if [ "${update}" = 'true' ]; then
ewarn
ewarn "This configuration script runs only common migration tasks."
ewarn "Please read guides on"
ewarn " https://github.com/gitlabhq/gitlabhq/blob/master/doc/update/"
ewarn "for any additional migration tasks specific to your previous GitLab"
ewarn "version."
fi
elog
elog "If you want to make sure that the install/upgrade was successful, start"
elog "Gitlab now and then run these commands (as root):"
elog
elog " cd /opt/gitlab"
elog " sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production"
elog " sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production"
elog
}
ryaml() {
ruby -ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
}
exec_rake() {
local command="${BUNDLE} exec rake $@ RAILS_ENV=${RAILS_ENV}"
echo " ${command}"
su -l ${MY_USER} -c "
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8
cd ${DEST_DIR}
${command}" \
|| die "failed to run rake $@"
}