Merge branch 'master' into feature/cleanup-gitlab

This commit is contained in:
Manuel Friedli 2016-02-25 18:47:41 +01:00
commit 1f1039253f
7 changed files with 490 additions and 16 deletions

View file

@ -1,4 +1,5 @@
AUX libgit2-0.24.0_rc1-fix-version.patch 529 SHA256 b1726938ed7ac9dc744bad1c3894816defcf652e080f354f6e90253c1387d754 SHA512 a8db6a63781ce4fdc40f9f9eca193e8b4e8a6cc6a9fb547632f1d53483005cbae06fe35cf96768c0c577a4de1226e06c8a003cee4e1c6e1f3a328dbd7f44798b WHIRLPOOL ce13a604c0a555e05b10269c35b24eba3d0286254fc4c132d244b61479dc1d98f293babe7b3fbf24ee5cc0f6bef33db0ebc238a8e6078bd40e641b2077f8189c AUX libgit2-0.24.0_rc1-fix-version.patch 529 SHA256 b1726938ed7ac9dc744bad1c3894816defcf652e080f354f6e90253c1387d754 SHA512 a8db6a63781ce4fdc40f9f9eca193e8b4e8a6cc6a9fb547632f1d53483005cbae06fe35cf96768c0c577a4de1226e06c8a003cee4e1c6e1f3a328dbd7f44798b WHIRLPOOL ce13a604c0a555e05b10269c35b24eba3d0286254fc4c132d244b61479dc1d98f293babe7b3fbf24ee5cc0f6bef33db0ebc238a8e6078bd40e641b2077f8189c
DIST libgit2-0.24.0_rc1.tar.gz 4165326 SHA256 e956fb569ddaf2d1d29307b4dc361121160ea7ab052eb3dc1c07b95175cb842d SHA512 c73bee9aaba3a36fca35fa0e3183e5636fa9be2ba98b1b93562f390e5f74b0be817ba73781a13e7ae5f880411465877864ca244ad6ac52ccd89d905d5b103e6c WHIRLPOOL 9d442e2894548462e3bda477bbacf4ac2190e8b9cb8c2b34e443568249b6ab63dd316d267e12fad84acfbfbc0af8aa3674e9c5dd717fa8deac4d07e586f82377 DIST libgit2-0.24.0_rc1.tar.gz 4165326 SHA256 e956fb569ddaf2d1d29307b4dc361121160ea7ab052eb3dc1c07b95175cb842d SHA512 c73bee9aaba3a36fca35fa0e3183e5636fa9be2ba98b1b93562f390e5f74b0be817ba73781a13e7ae5f880411465877864ca244ad6ac52ccd89d905d5b103e6c WHIRLPOOL 9d442e2894548462e3bda477bbacf4ac2190e8b9cb8c2b34e443568249b6ab63dd316d267e12fad84acfbfbc0af8aa3674e9c5dd717fa8deac4d07e586f82377
EBUILD libgit2-0.24.0_rc1.ebuild 1838 SHA256 0fcac9187a311ca7086014839c9b87a67288d3b6043a1c7d9e0dbf25bba1149b SHA512 53648baaae16c63c775909eb426e721ac8d1f3059274a1f46eb0f3aa2331e7db3327346964c16d770a1bd6307f204d1136de682e29206d7aed6c5eaa304c1aa7 WHIRLPOOL 0820061b5c98811fa5d61a9fb753dd52983b475b975c2576c44e3a84a0dd298a000c4f13399b7d2c65d011d8f030ef5cde0f1b319263c9e004ffd39f3cd64aba EBUILD libgit2-0.24.0_rc1-r1.ebuild 1778 SHA256 8a11b0d2430f71863d7036e919700cae0afa5422acda67876a720518c12d1be6 SHA512 b67bee4c60fb380548a43bcd91b66613e0ea7a8634d721753493708975e97e989e467645b904b7acead1663353b589731f1524f8cabebac3407341ad55660a8a WHIRLPOOL fd9e1a15d3fdf820f4faf77b35bb61ffdd6147edd67d46f47f10a864ca3fc10a91b927d83e6e8eae4c14c1e858d2f0ea2da8cd0f6b59d1d2d8ce69b3f06ed2f0
EBUILD libgit2-0.24.0_rc1.ebuild 1814 SHA256 82e78bfa430101fc9bbcd70c1bfe2e25d01c9a76660bfbb99e136ed0429be437 SHA512 be35530b70c13cfc357824c16a5c5d040ab9bfc1ad81dc512eca4fd97dda80c66e252ebc3eb7ff3c97c816901dd79f45b093d1b6a7d8e48dfa9f198433fd2672 WHIRLPOOL b8b75699a970323e18f236fbafaedabd0cac8d6b57ab5c2a722fad65faf3962e53b87dd54921f935cb8c97ec8bb640abeef34f71e5659cb72e5acfff5a0958bc
MISC metadata.xml 802 SHA256 446c2a35f3209339e906828d8250d3d784cb3796c4da5740cbd6ebf301d92f4a SHA512 9d2dba83bfd1791e2cf2afd2b939ed66456e4db0723f2789ea3b1227e14b0a7d685d9a7adcaae050b6574e99a9301ff1c484b024dbf8e3dcd44e56a14d84ee99 WHIRLPOOL 268fb7c0d932e4c7b8ce4554c2d04341c77eba94ba25066746b7289111e76446f3c411efc454b3a639aaa98b67c030392c6fab77185f8bc9dac4dce9b4a47e36 MISC metadata.xml 802 SHA256 446c2a35f3209339e906828d8250d3d784cb3796c4da5740cbd6ebf301d92f4a SHA512 9d2dba83bfd1791e2cf2afd2b939ed66456e4db0723f2789ea3b1227e14b0a7d685d9a7adcaae050b6574e99a9301ff1c484b024dbf8e3dcd44e56a14d84ee99 WHIRLPOOL 268fb7c0d932e4c7b8ce4554c2d04341c77eba94ba25066746b7289111e76446f3c411efc454b3a639aaa98b67c030392c6fab77185f8bc9dac4dce9b4a47e36

View file

@ -0,0 +1,80 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit cmake-utils multilib
MY_PV=${PV/_/-}
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
inherit git-r3
else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
DESCRIPTION="A linkable library for Git"
HOMEPAGE="https://libgit2.github.com/"
LICENSE="GPL-2-with-linking-exception"
SLOT="0/24"
IUSE="examples gssapi libressl ssh test threads trace"
S="${WORKDIR}/${PN}-${MY_PV}"
RDEPEND="
!libressl? ( dev-libs/openssl:0 )
libressl? ( dev-libs/libressl )
sys-libs/zlib
net-libs/http-parser:=
gssapi? ( virtual/krb5 )
ssh? ( net-libs/libssh2 )
"
DEPEND="${RDEPEND}
virtual/pkgconfig
"
DOCS=( AUTHORS CONTRIBUTING.md CONVENTIONS.md README.md )
src_prepare() {
# skip online tests
sed -i '/libgit2_clar/s/-ionline/-xonline/' CMakeLists.txt || die
cmake-utils_src_prepare
}
src_configure() {
local mycmakeargs=(
-DLIB_INSTALL_DIR="${EPREFIX}/usr/$(get_libdir)"
$(cmake-utils_use_build test CLAR)
$(cmake-utils_use_enable trace TRACE)
$(cmake-utils_use_use gssapi GSSAPI)
$(cmake-utils_use_use ssh SSH)
$(cmake-utils_use threads THREADSAFE)
)
cmake-utils_src_configure
}
src_test() {
if [[ ${EUID} -eq 0 ]] ; then
# repo::iterator::fs_preserves_error fails if run as root
# since root can still access dirs with 0000 perms
ewarn "Skipping tests: non-root privileges are required for all tests to pass"
else
local TEST_VERBOSE=1
cmake-utils_src_test
fi
}
src_install() {
cmake-utils_src_install
if use examples ; then
egit_clean examples
dodoc -r examples
docompress -x /usr/share/doc/${PF}/examples
fi
}

View file

@ -13,7 +13,7 @@ if [[ ${PV} == "9999" ]] ; then
inherit git-r3 inherit git-r3
else else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" SRC_URI="https://github.com/${PN}/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 ~arm ~x86 ~ppc-macos" KEYWORDS="-*"
fi fi
DESCRIPTION="A linkable library for Git" DESCRIPTION="A linkable library for Git"

View file

@ -11,6 +11,7 @@ DIST gitlab-ce-8.4.4.tar.gz 12186833 SHA256 f8c403d4cecd82aa2021ed5a6d5d7b4ac852
DIST gitlab-ce-8.5.0.tar.gz 14276001 SHA256 a43dd64cfb1e34bf273d31984b52ada09c5a48d5d077f5bd1f21a79960bb1039 SHA512 499d93767df9d3c9c4b68ac663846d49335bd989ee8e93a8d610cb6106900886913912443f908cd316424312df67658df5d6027fda9a5abd787572d4e23e14d1 WHIRLPOOL 225c40c9a1769dbd13ea736f6bdce2a9a3cd5bfca8b27ce9270f55beebd36f5b233858c0dee5f0d80cdf40c5ccc1af651d152743f5ede1f98a8a8496ba36b6d1 DIST gitlab-ce-8.5.0.tar.gz 14276001 SHA256 a43dd64cfb1e34bf273d31984b52ada09c5a48d5d077f5bd1f21a79960bb1039 SHA512 499d93767df9d3c9c4b68ac663846d49335bd989ee8e93a8d610cb6106900886913912443f908cd316424312df67658df5d6027fda9a5abd787572d4e23e14d1 WHIRLPOOL 225c40c9a1769dbd13ea736f6bdce2a9a3cd5bfca8b27ce9270f55beebd36f5b233858c0dee5f0d80cdf40c5ccc1af651d152743f5ede1f98a8a8496ba36b6d1
EBUILD gitlab-ce-8.4.3.ebuild 11158 SHA256 134fedd2c467d11174a22055e58c822b953f9bdb9902aa0bdf0822c66344d364 SHA512 818c37d814074cb063c91adcfde0f1164fa89cba5a855c442470b5f0e47256f2078326f998b5502c996bf4a2c874cdc068685ad037d1dcf962c2c0bbe683e689 WHIRLPOOL a251afe289ab12dbef9114ebfcb00cf84080766e4d0c1737fa1ece1965210d4544a319af27823b4794c0bddc0cfbf6d3cb896bbe48fa02c623e0b4847b6302d2 EBUILD gitlab-ce-8.4.3.ebuild 11158 SHA256 134fedd2c467d11174a22055e58c822b953f9bdb9902aa0bdf0822c66344d364 SHA512 818c37d814074cb063c91adcfde0f1164fa89cba5a855c442470b5f0e47256f2078326f998b5502c996bf4a2c874cdc068685ad037d1dcf962c2c0bbe683e689 WHIRLPOOL a251afe289ab12dbef9114ebfcb00cf84080766e4d0c1737fa1ece1965210d4544a319af27823b4794c0bddc0cfbf6d3cb896bbe48fa02c623e0b4847b6302d2
EBUILD gitlab-ce-8.4.4.ebuild 11158 SHA256 134fedd2c467d11174a22055e58c822b953f9bdb9902aa0bdf0822c66344d364 SHA512 818c37d814074cb063c91adcfde0f1164fa89cba5a855c442470b5f0e47256f2078326f998b5502c996bf4a2c874cdc068685ad037d1dcf962c2c0bbe683e689 WHIRLPOOL a251afe289ab12dbef9114ebfcb00cf84080766e4d0c1737fa1ece1965210d4544a319af27823b4794c0bddc0cfbf6d3cb896bbe48fa02c623e0b4847b6302d2 EBUILD gitlab-ce-8.4.4.ebuild 11158 SHA256 134fedd2c467d11174a22055e58c822b953f9bdb9902aa0bdf0822c66344d364 SHA512 818c37d814074cb063c91adcfde0f1164fa89cba5a855c442470b5f0e47256f2078326f998b5502c996bf4a2c874cdc068685ad037d1dcf962c2c0bbe683e689 WHIRLPOOL a251afe289ab12dbef9114ebfcb00cf84080766e4d0c1737fa1ece1965210d4544a319af27823b4794c0bddc0cfbf6d3cb896bbe48fa02c623e0b4847b6302d2
EBUILD gitlab-ce-8.5.0.ebuild 11158 SHA256 b04a3e9bb4e562c05d04ee840581a6509af67c87b57b265b953e11c992fbf0ad SHA512 69b49eb9a847e81fbb89471ee25bd9aafe33d2f00b739248884989e2055578ce78ad1af60d113ba934fc5b26ad46b2a5df972f5cfa6fa307389652a50e37247b WHIRLPOOL 32658138ff627ffc10442239a375135aaad53b0a91ad5417550ea2682e77a454eeac44f379d63427310de9f32bb75f7d4c56d679dae6744bfe2970ab87c5aa28 EBUILD gitlab-ce-8.5.0-r1.ebuild 11726 SHA256 4ff8cf27d461028f82b3c463bb59e0161979018f00c97815245ed962b2470d8d SHA512 66c13b9330c71de051c9ef8a78b25661a2e01fbe787747ce78175e202fbac02dfea42b7cc53b45b6d335d88602491f9e8266d4097c3271f12ed7f2f22ab68dc4 WHIRLPOOL 9abfd5c6839a9f542c96a7987b597ad6cd9c02f326fee18f113823775ffe7b9a6d8f23f5bcaf37e769e6eaf849d5756f945701407e9a90f2316889404e0e7b2f
EBUILD gitlab-ce-9999.ebuild 11174 SHA256 5d4812ff14eef908c89087869e08757f786a96d4a97f2c019b7b6079e13e3ae6 SHA512 296856dcf0b79a37204a42379a344ef62415a3e7867382e5e1e65cdd7aa0befa3ff15a9b5e2663ce1461ec696746b1f8a833e33278c7dbc659778331a4e9963e WHIRLPOOL 2698b9502aa45fcf7a2a0e2b32a088ad39d03af73559b66c143e37afc7f6d5447d5458cdd198ec51596ca1134d0b7334513f19b82407ff336365fe875c10b828 EBUILD gitlab-ce-8.5.0.ebuild 11149 SHA256 0ce3cb6cc04cc7bb9a84f4d8b97918d85d6a4716cfd2e6c9f08661708a7c7f6f SHA512 c76172167fb452c920a88b0d946b8ccb88f3899c3f578cfff7b1cc920625a9722ad6785274f6407ee7bf23856eff20c73e2de1a1d61d890bc515cfeb0d4dd64b WHIRLPOOL 97e65d983d0d89715fff6366348a46dffc249d775c9b21fe025be0372a2c362e811e401f0f47d5a2eceffdf28e9cdf2739c05cba6465b29a4efa60d2b52e1f65
EBUILD gitlab-ce-9999.ebuild 11742 SHA256 1cf7eb55e970f6530edeaa5d86e7aa9235f4b5774579f63e8e484232e4a57b0c SHA512 f68fccacbcc0aafb379adb74e0c64fe9122a04bffabf5e000dd546a344fc677c90e16cd9f2db199fe61e8660933754cd08ee8c75dc9cd657c7cf2b4f61410b2f WHIRLPOOL cbb8fb6595a5f4bf649b09425181e06e73997934512e58f63ad8be6b164422a244e27c626783185a2f223379aeddff1f83f845c0735c03d301e2703446b22fc6
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,381 @@
# Copyright 1999-2015 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_PKGNAME="gitlabhq"
DESCRIPTION="GitLab is a free project and repository management application"
HOMEPAGE="https://about.gitlab.com/"
SRC_URI="https://github.com/${MY_PKGNAME}/${MY_PKGNAME}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
RUBY_S="${MY_PKGNAME}-${PV}"
RESTRICT="mirror"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
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"
DEPEND="${GEMS_DEPEND}
>=dev-vcs/gitlab-shell-2.6.10
dev-vcs/git
>=dev-vcs/gitlab-workhorse-0.6.4
kerberos? ( !app-crypt/heimdal )
rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/24 )"
RDEPEND="${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.
#
RUBY_PATCHES=(
"${PN}-fix-sendmail-config.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/v${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"
# clean gems cache
rm -Rf vendor/bundle/ruby/*/cache
rm -Rf vendor/bundle/ruby/*/bundler/gems/charlock_holmes-dde194609b35/.git
# fix permissions
fowners -R ${MY_USER}:${MY_USER} ${dest} ${temp} ${logs}
## RC script ##
if use systemd ; then
ewarn "Beware: systemd support has not been tested, use at your own risk!"
systemd_dounit "${FILESDIR}/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-8.2.init
use unicorn && rcscript=gitlab-unicorn-8.2.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
}
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."
}
pkg_config() {
local shell_conf='/etc/gitlab-shell.yml'
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
# check gitlab-shell configuration
if [ -r ${shell_conf} ]; then
local shell_repos_path="$(ryaml ${shell_conf} repos_path)"
local gitlab_repos_path="$(ryaml ${CONF_DIR}/gitlab.yml \
production gitlab_shell repos_path)"
if [ ! "${shell_repos_path}" -ef "${gitlab_repos_path}" ]; then
eerror "repos_path in ${CONF_DIR}/gitlab.yml and ${shell_conf}"
eerror "must points to the same location! Fix the repos_path location and"
eerror "run this again."; die
fi
else
ewarn "GitLab Shell checks skipped, could not find config file at"
ewarn "${shell_conf}. Make sure that you have gitlab-shell properly"
ewarn "installed and that repos_path is the same as in GitLab."
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
if [ ! -d "${DEST_DIR}/.git" ]; then
# 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
fi
## Initialize app ##
local RAILS_ENV="production"
local RUBY=${RUBY:-/usr/bin/ruby}
local BUNDLE="${RUBY} /usr/bin/bundle"
local dbname="$(ryaml ${CONF_DIR}/database.yml production database)"
if [ -f "${DEST_DIR}/.secret" ]; then
local update=true
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
local update=false
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 $@"
}

View file

@ -26,7 +26,7 @@ RESTRICT="mirror"
LICENSE="MIT" LICENSE="MIT"
SLOT="0" SLOT="0"
KEYWORDS="~amd64 ~x86" KEYWORDS="-*"
IUSE="kerberos mysql +postgres +unicorn systemd rugged_use_system_libraries" IUSE="kerberos mysql +postgres +unicorn systemd rugged_use_system_libraries"
## Gems dependencies: ## Gems dependencies:

View file

@ -29,14 +29,14 @@ KEYWORDS=""
IUSE="kerberos mysql +postgres +unicorn systemd rugged_use_system_libraries" IUSE="kerberos mysql +postgres +unicorn systemd rugged_use_system_libraries"
## Gems dependencies: ## Gems dependencies:
# charlock_holmes dev-libs/icu # charlock_holmes dev-libs/icu
# grape, capybara dev-libs/libxml2, dev-libs/libxslt # grape, capybara dev-libs/libxml2, dev-libs/libxslt
# rugged dev-util/cmake, virtual/pkgconfig # rugged dev-util/cmake, virtual/pkgconfig
# json dev-util/ragel # json dev-util/ragel
# pygments.rb python 2.7+ # pygments.rb python 2.7+
# execjs net-libs/nodejs, or any other JS runtime # execjs net-libs/nodejs, or any other JS runtime
# pg dev-db/postgresql # pg dev-db/postgresql
# mysql virtual/mysql # mysql virtual/mysql
# #
GEMS_DEPEND=" GEMS_DEPEND="
dev-libs/icu dev-libs/icu
@ -233,7 +233,10 @@ pkg_postinst() {
elog "migrations:" elog "migrations:"
elog " emerge --config \"=${CATEGORY}/${PF}\"" elog " emerge --config \"=${CATEGORY}/${PF}\""
elog "PLEASE NOTE: It's HIGHLY recommended to backup your database" elog "PLEASE NOTE: It's HIGHLY recommended to backup your database"
elog "before running the config phase!" 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
elog "If this was a fresh install, follow these steps:" elog "If this was a fresh install, follow these steps:"
elog elog
@ -243,7 +246,7 @@ pkg_postinst() {
elog " for \"production\" environment." elog " for \"production\" environment."
elog elog
elog "3. Then you should create a database for your GitLab instance, if you" elog "3. Then you should create a database for your GitLab instance, if you"
elog "haven't done so already." elog " haven't done so already."
elog elog
if use postgres; then if use postgres; then
elog "If you have local PostgreSQL running, just copy&run:" elog "If you have local PostgreSQL running, just copy&run:"
@ -254,7 +257,7 @@ pkg_postinst() {
elog " Note: You should change your password to something more random..." elog " Note: You should change your password to something more random..."
elog elog
fi fi
elog "4. Finally execute the following command to initlize environment:" elog "4. Finally execute the following command to initialize the environment:"
elog " emerge --config \"=${CATEGORY}/${PF}\"" elog " emerge --config \"=${CATEGORY}/${PF}\""
elog " Note: Do not forget to start Redis server first!" elog " Note: Do not forget to start Redis server first!"
elog elog
@ -356,6 +359,14 @@ pkg_config() {
ewarn "for any additional migration tasks specific to your previous GitLab" ewarn "for any additional migration tasks specific to your previous GitLab"
ewarn "version." ewarn "version."
fi 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() { ryaml() {