Merge branch '56-gitlab-8-12-3' into 'master'

Resolve "GitLab 8.12.7"

Closes #56 and #54.

See merge request !121
This commit is contained in:
Manuel Friedli 2016-10-21 08:44:06 +02:00
commit 8f4ca0e9e9
14 changed files with 758 additions and 16 deletions

View file

@ -2,8 +2,10 @@ AUX gitlab-shell-3.2.0-config-paths.patch 1826 SHA256 c83db7c37dcac577ce499eab4b
DIST gitlab-shell-3.4.0.tar.gz 71972 SHA256 0ac8f18b1615194943e935b670d630a1ba9870ad876f7486256972c7be1d45d4 SHA512 1138e02dbf5169547e39eea87ac88f05009424c76f26b4b0f2cb3882eaefc9d7aa11e167c6d9309947da728fc5381a234b93e25a0ded4f87eb8d8c88baaa2b9c WHIRLPOOL ef9ff2b349af97019da56c2e0b850fc4885ad036074e7bce39ba6f12bea611b771becc5ebf3e1889a71078243488bbf7c93ed90e545844b36aeb42b79265ab2c DIST gitlab-shell-3.4.0.tar.gz 71972 SHA256 0ac8f18b1615194943e935b670d630a1ba9870ad876f7486256972c7be1d45d4 SHA512 1138e02dbf5169547e39eea87ac88f05009424c76f26b4b0f2cb3882eaefc9d7aa11e167c6d9309947da728fc5381a234b93e25a0ded4f87eb8d8c88baaa2b9c WHIRLPOOL ef9ff2b349af97019da56c2e0b850fc4885ad036074e7bce39ba6f12bea611b771becc5ebf3e1889a71078243488bbf7c93ed90e545844b36aeb42b79265ab2c
DIST gitlab-shell-3.5.0.tar.gz 73374 SHA256 6591b768a4f51c535e97e5632518583f6559a4202f4219739ad01a27161687ef SHA512 b5935c6f9b19bab1716901c8015e107f7fbc545646d5e35a6a943e1692d3ddd61efeb862f4d59efe75eda9c1117adf9d90b50f572ab0a69199069d1fc52e8718 WHIRLPOOL 938c600d0810867fc9aef62a286b05dc34bf52352612530d459614483e3c37b3cef6ee5b2dc11f7b041218cbe569d11f4f5f0240b9c28e613bd762c06786772e DIST gitlab-shell-3.5.0.tar.gz 73374 SHA256 6591b768a4f51c535e97e5632518583f6559a4202f4219739ad01a27161687ef SHA512 b5935c6f9b19bab1716901c8015e107f7fbc545646d5e35a6a943e1692d3ddd61efeb862f4d59efe75eda9c1117adf9d90b50f572ab0a69199069d1fc52e8718 WHIRLPOOL 938c600d0810867fc9aef62a286b05dc34bf52352612530d459614483e3c37b3cef6ee5b2dc11f7b041218cbe569d11f4f5f0240b9c28e613bd762c06786772e
DIST gitlab-shell-3.6.0.tar.gz 74513 SHA256 4ad340fbd295b54ad92558fba9642d88b9759a46b9a5473c6a7d73faf9c4f9ce SHA512 beb2fa68f58adc58d5c6418e2a7dd0d15f007d730595dd8871298105dfec8140d9e14dd27350079f1878279a47b0b2096183c80dfd3c9744fd802332252b2005 WHIRLPOOL 32c6e57361ebdd1e031ea055a985a800a7e4c4f9312476c8b228484f02ba58618aa968ba598c5cc74966824029b12d1ec4c0a55e297d97a35c8b405f287aef66 DIST gitlab-shell-3.6.0.tar.gz 74513 SHA256 4ad340fbd295b54ad92558fba9642d88b9759a46b9a5473c6a7d73faf9c4f9ce SHA512 beb2fa68f58adc58d5c6418e2a7dd0d15f007d730595dd8871298105dfec8140d9e14dd27350079f1878279a47b0b2096183c80dfd3c9744fd802332252b2005 WHIRLPOOL 32c6e57361ebdd1e031ea055a985a800a7e4c4f9312476c8b228484f02ba58618aa968ba598c5cc74966824029b12d1ec4c0a55e297d97a35c8b405f287aef66
DIST gitlab-shell-3.6.1.tar.gz 74806 SHA256 180dcce14e9caa9c7f09eefdb2e10189318a0f994c4931fae2acebd92e9e4fa3 SHA512 6f54b0a9ddccabb3971c48301292835ecf953e0a9bb3b9d1d78af416a42e3d2883a157ab02990e748b0e6b02805864c314fe9cd538834ab831f565f0c573ed3a WHIRLPOOL 1219213217d5ec280ee521c4f64328634402c795a4fbd10beac3481f4e622faf03859589ee641bbd34647b057c77bdef0d7e1a2906375c3de21cd6b4739a7826
EBUILD gitlab-shell-3.4.0.ebuild 3653 SHA256 7bf777fc3b5bda03f9a455874f62bb6260eeb73dd8727e4145ed0cda2e283465 SHA512 de5b78133d317155f5764d6888d421c4f2945ccb5972c032c05138344188eb0a0f85817431aa4348e2074667c901f44cf2b575f572aeb2620aab58a32ddba22b WHIRLPOOL e53de830c17bc9c784df06670c6fdc7465ba05ca40de42e4857e5a83421208f9bbb4381c2988fbabc85f86476d5c2b7301123392de132558bdd6f969726a9a57 EBUILD gitlab-shell-3.4.0.ebuild 3653 SHA256 7bf777fc3b5bda03f9a455874f62bb6260eeb73dd8727e4145ed0cda2e283465 SHA512 de5b78133d317155f5764d6888d421c4f2945ccb5972c032c05138344188eb0a0f85817431aa4348e2074667c901f44cf2b575f572aeb2620aab58a32ddba22b WHIRLPOOL e53de830c17bc9c784df06670c6fdc7465ba05ca40de42e4857e5a83421208f9bbb4381c2988fbabc85f86476d5c2b7301123392de132558bdd6f969726a9a57
EBUILD gitlab-shell-3.5.0.ebuild 3653 SHA256 3b73797e283ff4ec30c87d50a54a80cf6895c0c03dedc3ff34087b3037dd9fd5 SHA512 cc235d625f1eabac09822fbca06b706886601e550958338ea5ee7ccfdbbb85e2d96bb348b4ccce532c92d18389c63ddb78bcd77e407f789127fbb3d9ac32d0d9 WHIRLPOOL 4a8bb0ee8a1b547bb8517c300806457187a8fd1855b223cf079784733fdef55e2dd5fa9998da9523bcd3b021aa10d45cc74445bae5bd8f853e3355d6a1d6417a EBUILD gitlab-shell-3.5.0.ebuild 3653 SHA256 3b73797e283ff4ec30c87d50a54a80cf6895c0c03dedc3ff34087b3037dd9fd5 SHA512 cc235d625f1eabac09822fbca06b706886601e550958338ea5ee7ccfdbbb85e2d96bb348b4ccce532c92d18389c63ddb78bcd77e407f789127fbb3d9ac32d0d9 WHIRLPOOL 4a8bb0ee8a1b547bb8517c300806457187a8fd1855b223cf079784733fdef55e2dd5fa9998da9523bcd3b021aa10d45cc74445bae5bd8f853e3355d6a1d6417a
EBUILD gitlab-shell-3.6.0.ebuild 3653 SHA256 9a71f83a1bb91c904a43807572477ea143098bf2c7d77bf6777a4b783f524002 SHA512 370c559478716fe31376b6607c233c213df7f0abb3a9ecfc66506cfb29088e63600aecd3046cb272ec32dcb33f3b23a70dbaff5eed9cf308e274236d6dff9e67 WHIRLPOOL 0eee77706d9569d37d1b2cf77d0beacb0e72416d06b9bd937fad1115241908c66b12db6b466a3b579411721cf0d56e7f9137977a7b1fd9f983d7c52b0cb9d724 EBUILD gitlab-shell-3.6.0.ebuild 3653 SHA256 9a71f83a1bb91c904a43807572477ea143098bf2c7d77bf6777a4b783f524002 SHA512 370c559478716fe31376b6607c233c213df7f0abb3a9ecfc66506cfb29088e63600aecd3046cb272ec32dcb33f3b23a70dbaff5eed9cf308e274236d6dff9e67 WHIRLPOOL 0eee77706d9569d37d1b2cf77d0beacb0e72416d06b9bd937fad1115241908c66b12db6b466a3b579411721cf0d56e7f9137977a7b1fd9f983d7c52b0cb9d724
EBUILD gitlab-shell-3.6.1.ebuild 3653 SHA256 c36f3fcec5b4f954c404e4f41a773461971116d7ad2bd484b05ef479c4915ad2 SHA512 fedce05647f773f5a7e54fd8764f8934666a51d9b5e8a5e93201bd504a042ade828cbb0043817b8552bdb4d1cdee6fd2404b17c4e9a7ed3ce75fc41e79c866fd WHIRLPOOL 4853bcfb4dfe1dd152645ce4d572797ba158d5edf53349f3d66489009b10ec2cd7a598beef46bc9b1e104891a3071e1cb9b67471e284b626023a9e1b46b559a8
MISC ChangeLog 1624 SHA256 197f5e0ee973c3a48782b6ac5cbf4ec6a3730d4a1dd51f8b22b1ceaf6803487f SHA512 3eb75facea72c7b677507598d0afac5fbc993ea29ff8d82e7916e4c3e8a1b7120b1a28c105daebb315c529c5ba2fbeeec4d2fd64f39baa9afac2af6946cbcd3b WHIRLPOOL b726d6dcac750ac5f7f04823f016533d74affa068644e271909ff630a6db9e56a5f6a366ffd81fe58a67cfe5408a29d47da1f2e96b51b6f62c2f42d040007f80 MISC ChangeLog 1624 SHA256 197f5e0ee973c3a48782b6ac5cbf4ec6a3730d4a1dd51f8b22b1ceaf6803487f SHA512 3eb75facea72c7b677507598d0afac5fbc993ea29ff8d82e7916e4c3e8a1b7120b1a28c105daebb315c529c5ba2fbeeec4d2fd64f39baa9afac2af6946cbcd3b WHIRLPOOL b726d6dcac750ac5f7f04823f016533d74affa068644e271909ff630a6db9e56a5f6a366ffd81fe58a67cfe5408a29d47da1f2e96b51b6f62c2f42d040007f80
MISC metadata.xml 248 SHA256 7b43be15755627edf5c12cf1b50c607d781558640bf8375d685d51d7ade99a32 SHA512 29f9b96b0a77546cce6a8bffd82fae2fd0939d32a7a05ffd0d91f9250a019a3ddaa599b93988c82daabb9c4c4b284dd947e2c47f6ca7727b8539cffa91bcb8c2 WHIRLPOOL 993013c9878ead35469db13d3072f694a341ee654182e0c31d0678f5dd6de4bdc8d59a0b7bb6d685dc41ea6b55dac518cd8034131baea8002170c680e50304d1 MISC metadata.xml 248 SHA256 7b43be15755627edf5c12cf1b50c607d781558640bf8375d685d51d7ade99a32 SHA512 29f9b96b0a77546cce6a8bffd82fae2fd0939d32a7a05ffd0d91f9250a019a3ddaa599b93988c82daabb9c4c4b284dd947e2c47f6ca7727b8539cffa91bcb8c2 WHIRLPOOL 993013c9878ead35469db13d3072f694a341ee654182e0c31d0678f5dd6de4bdc8d59a0b7bb6d685dc41ea6b55dac518cd8034131baea8002170c680e50304d1

View file

@ -0,0 +1,130 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
USE_RUBY="ruby21 ruby23"
inherit eutils ruby-ng user
MY_PV="v${PV/_/-}"
MY_GIT_COMMIT="b71ca5da9fde4fa8457af146bd090ec7caa28d60"
DESCRIPTION="SSH access and repository management for GitLab"
HOMEPAGE="https://gitlab.com/gitlab-org/gitlab-shell"
SRC_URI="https://gitlab.com/gitlab-org/gitlab-shell/repository/archive.tar.gz?ref=${MY_PV} -> ${P}.tar.gz"
RUBY_S="${PN}-${MY_PV}-${MY_GIT_COMMIT}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~arm ~arm64"
IUSE=""
DEPEND=""
RDEPEND="
>=dev-vcs/git-2.7.4
dev-db/redis
virtual/ssh"
ruby_add_bdepend "
virtual/ruby-ssl"
MERGE_TYPE="binary"
RUBY_PATCHES=(
"${PN}-3.2.0-config-paths.patch"
)
GIT_USER="git"
DEST_DIR="/usr/share/${PN}"
DATA_DIR="/var/lib/git"
LOGS_DIR="/var/log/gitlab"
CONF_FILE="/etc/gitlab-shell.yml"
pkg_setup() {
enewgroup ${GIT_USER}
enewuser ${GIT_USER} -1 /bin/bash ${DATA_DIR} "${GIT_USER}"
local git_shell=$(egetshell ${GIT_USER})
if [ ! ${git_shell} -ef '/bin/bash' ]; then
ewarn "User ${GIT_USER} already exists, but with the shell ${git_shell}."
ewarn "Changing shell to /bin/bash ..."
usermod -s /bin/bash ${GIT_USER} \
|| die "failed to change login shell for ${GIT_USER}"
fi
}
all_ruby_prepare() {
# fix paths
sed -i -E \
-e "s|/home/git|${DATA_DIR}|" \
-e "s|[\# ]*(log_file: ).*|\1\"${LOGS_DIR}/gitlab-shell.log\"|" \
config.yml.example || die "failed to filter config.yml.example"
sed -i \
-e "s|File\.join(ROOT_PATH, 'config.yml')|'${CONF_FILE}'|" \
lib/gitlab_config.rb || die "failed to filter gitlab_config.rb"
}
all_ruby_install() {
# install lib
insinto ${DEST_DIR}; doins -r lib LICENSE README.md VERSION
# install scripts
exeinto ${DEST_DIR}/bin; doexe bin/*
exeinto ${DEST_DIR}/hooks; doexe hooks/*
exeinto ${DEST_DIR}/support; doexe support/*
# create symlinks to bin
local name; for name in $(basename -a bin/gitlab-*); do
dosym "${DEST_DIR}/bin/${name}" "/usr/bin/${name}"
done
insinto $(dirname ${CONF_FILE})
newins config.yml.example $(basename ${CONF_FILE})
# create symlink for .gitlab_shell_secret
einfo "creating symlink for .gitlab_shell_secret"
TOKEN_FILE="${DEST_DIR}/.gitlab_shell_secret"
dosym /opt/gitlab/.gitlab_shell_secret "$TOKEN_FILE"
# prepare directories
diropts -m750; dodir ${DATA_DIR}
diropts -m770; keepdir ${DATA_DIR}/repositories
diropts -m755; dodir ${LOGS_DIR}
# GitLab stupidly expects that gitlab-shell is in home of git user...
dosym ${DEST_DIR} ${DATA_DIR}/gitlab-shell
# fix permissions
fowners -R ${GIT_USER}:${GIT_USER} ${DATA_DIR} ${LOGS_DIR}
}
pkg_postinst() {
# check git home directory
local git_home=$(egethome ${GIT_USER})
if [ ! "${git_home}" -ef ${DATA_DIR} ]; then
ewarn "An authorized_keys is configured to be inside ${DATA_DIR}/.ssh,"
ewarn "but HOME of ${GIT_USER} user is located in ${git_home}. You must"
ewarn "either change the authorized_keys location in ${CONF_FILE},"
ewarn "or change home directory of ${GIT_USER} user to ${DATA_DIR}"
ewarn "and move ${git_home}/.ssh here."
ewarn
fi
local auth_dir="${git_home}/.ssh"
elog "Initializing authorized_keys file in ${auth_dir}"
mkdir -p ${auth_dir}
touch ${auth_dir}/authorized_keys
chmod -R u=rwX,go=- ${auth_dir}
chown -R ${GIT_USER}:${GIT_USER} ${auth_dir}
elog
elog "GitLab Shell was initialized. Repositories are located in"
elog "${DATA_DIR}/repositories, scripts in ${DEST_DIR}/bin."
elog "All gitlab-* scripts was symlinked to /usr/bin to be on your path."
elog
elog "You should change your gitlab_url in: ${CONF_FILE}."
}

View file

@ -1,3 +1,20 @@
*gitlab-ce-8.12.7 (21 Oct 2016)
21 Oct 2016; Manuel Friedli <manuel@fritteli.ch>
+files/01-gitlab-ce-8.7.5-fix-sendmail-config.patch,
+files/02-gitlab-ce-8.11.0-fix-redis-config-path.patch,
+files/03-gitlab-ce-8.12.7-database.yml.patch,
+files/04-gitlab-ce-8.12.7-fix-check-task.patch,
+files/05-gitlab-ce-8.12.7-replace-sys-filesystem.patch,
+gitlab-ce-8.12.7.ebuild, -files/gitlab-ce-8.11.0-fix-redis-config-path.patch,
-files/gitlab-ce-8.12.4-database.yml.patch,
-files/gitlab-ce-8.7.5-fix-sendmail-config.patch, -gitlab-ce-8.12.4.ebuild,
gitlab-ce-8.11.6.ebuild, gitlab-ce-8.12.0.ebuild, gitlab-ce-8.12.0_rc6.ebuild,
gitlab-ce-9999.ebuild:
www-apps/gitlab-ce: added ebuild for gitlab-8.12.7 and incorporated the
following patches from Jakub: - 0002-default-configs.patch - 0005-fix-check-
task.patch - 0006-replace-sys-filesystem.patch
23 Sep 2016; Manuel Friedli <manuel@fritteli.ch> gitlab-ce-8.12.0.ebuild: 23 Sep 2016; Manuel Friedli <manuel@fritteli.ch> gitlab-ce-8.12.0.ebuild:
www-apps/gitlab-ce: added missing keywords for version 8.12.0 www-apps/gitlab-ce: added missing keywords for version 8.12.0

View file

@ -1,6 +1,9 @@
AUX 01-gitlab-ce-8.7.5-fix-sendmail-config.patch 705 SHA256 cfc4ffd896e03cc763601aca5cdd5ac43f85152705cbf5a4e9144a6156d6f77e SHA512 a92659db8cab022185d87f321b037b1731612bf5f89b9df4552dd49b843bb49b6019f8ddda96a6fd6cb6544664a1c3d52ca5fee2c11be8b33698cc713219510f WHIRLPOOL 81a6504a8583bc46ea4005d9f8a2113802439161c40f11d3da46332b8980fc6b9520d81d9e32a6555bcdc893245448ba9151a271c511ae87f6468f588d4804b0
AUX 02-gitlab-ce-8.11.0-fix-redis-config-path.patch 423 SHA256 4878d37082c7e5c0aba239d4432ddec23c083230b816cf1ed6792bfd8f6c56fa SHA512 81a543af308bcd11a93a73368aedc89604078f60c0cacf4f614ff18dc5975b2c0d030ad6565fbb134188c8f6fceb74f2767f706d6f5701092252513f5e18de11 WHIRLPOOL 81f6258f03d234c6298b7bfe2982bdfd5f86dea3405ce03d4391b484a4802f7cbe33606ce4561ca67c16a5826dec131a185fa3189c2115b4a9ec8a3b87a2ee16
AUX 03-gitlab-ce-8.12.7-database.yml.patch 2154 SHA256 6daf34a6be5038e0108169a1a23901d9f235e8d9e1e3dcc0d5113fa1b34b0698 SHA512 d43b6cf7b8c1729944482c4e8abf91ec326b38112de93caba67c37af7e9aa3b86e18d1080a92a4bac096f40c8e0c5e7d28926ed019ef052e186c3aa3ee72c9b7 WHIRLPOOL 93393c879eb120712a7ae0b50a35032752ba41ab65d20b86ff4e737fb6df8fefd4663dc171ded2bd771c1663e728d9cdc201fe4024671b9a2d5d0f01748ecd89
AUX 04-gitlab-ce-8.12.7-fix-check-task.patch 917 SHA256 e1adffbd59a418d5e14cbd51ae14d5c1f0364af759c77b6cb485079e0233e90f SHA512 226c3892768dc526dbc9f109aaecdee1eb27c0acb5060ba6db8222410c500336ebcf7184437228480da04ce5de149a14bbb5c1471aed853a280d7f371f271d88 WHIRLPOOL 3ec22dc4d12b5025bddfccdea27a816aca1f818d5138b3dc9a6362e56ec4cd14e5c38c76b64b468f3797e0d2718d38aad4f910abf3f3328a7983832babb7f231
AUX 05-gitlab-ce-8.12.7-replace-sys-filesystem.patch 2387 SHA256 dd0e9987ed4bb3a9c73c6aee1d89434afc51ff663fef2ee4ac93adf1b73b944a SHA512 afa82fb8c8d57633c99373f31678760fa6ecca5e459a9059f5b460b458d1dbf3230108a6b4f394780c26a697881c9b2319f15804cb8d04ad3139127e7c0f4ff8 WHIRLPOOL 90ce708f8cde0a4bcaef9fc002ca00b97a1211559bcabf5481ec71c608bc5b772ecd518ff07a8d626a27e4b21c0f0f51fa37a65503e79664ececd78d5f19e87b
AUX gitlab-8.10.6-sidekiq.service 1085 SHA256 de97287a5cb1d04dd4b6ac96e3569503cf797e605b325e13d4807d72cbcd7333 SHA512 9d5f3ee50f293ae0c9f353f7f9eeed00c57fd54e75a206bf7ec9b201453099222668e1d77dcfe6b35ee9a8722860551822897339c4741e0c612054a9423f132b WHIRLPOOL 5b5cb94db5c7a2c46b487821baba6fe31fa08ecc1cbae6f9b1655d32f95c57c7c8f1bede19d09a8c572512e40b0c8daf27d50ebfcbc8e4af449e21b01ad11441 AUX gitlab-8.10.6-sidekiq.service 1085 SHA256 de97287a5cb1d04dd4b6ac96e3569503cf797e605b325e13d4807d72cbcd7333 SHA512 9d5f3ee50f293ae0c9f353f7f9eeed00c57fd54e75a206bf7ec9b201453099222668e1d77dcfe6b35ee9a8722860551822897339c4741e0c612054a9423f132b WHIRLPOOL 5b5cb94db5c7a2c46b487821baba6fe31fa08ecc1cbae6f9b1655d32f95c57c7c8f1bede19d09a8c572512e40b0c8daf27d50ebfcbc8e4af449e21b01ad11441
AUX gitlab-ce-8.11.0-fix-redis-config-path.patch 423 SHA256 4878d37082c7e5c0aba239d4432ddec23c083230b816cf1ed6792bfd8f6c56fa SHA512 81a543af308bcd11a93a73368aedc89604078f60c0cacf4f614ff18dc5975b2c0d030ad6565fbb134188c8f6fceb74f2767f706d6f5701092252513f5e18de11 WHIRLPOOL 81f6258f03d234c6298b7bfe2982bdfd5f86dea3405ce03d4391b484a4802f7cbe33606ce4561ca67c16a5826dec131a185fa3189c2115b4a9ec8a3b87a2ee16
AUX gitlab-ce-8.7.5-fix-sendmail-config.patch 705 SHA256 cfc4ffd896e03cc763601aca5cdd5ac43f85152705cbf5a4e9144a6156d6f77e SHA512 a92659db8cab022185d87f321b037b1731612bf5f89b9df4552dd49b843bb49b6019f8ddda96a6fd6cb6544664a1c3d52ca5fee2c11be8b33698cc713219510f WHIRLPOOL 81a6504a8583bc46ea4005d9f8a2113802439161c40f11d3da46332b8980fc6b9520d81d9e32a6555bcdc893245448ba9151a271c511ae87f6468f588d4804b0
AUX gitlab-mailroom.service 773 SHA256 39cea460db7fc505b136a2106902d0515890180e74913bf364aa499368fc5f2e SHA512 f82c63a180add1103e2bd115e67826ad7362a844991ef16f1de7fc6c78bf1955155ecf278fc0d759e674ab85736f3ba2a6650d00e9b3ce683316875efd9efa3c WHIRLPOOL 683c67b12f9666d1c1df5ec61e0072acaecd3aff43d0ff475037e178bc58fd9036ae6d8cd45e922098c842abd057231afd4767ce229d4581356f153b48a06208 AUX gitlab-mailroom.service 773 SHA256 39cea460db7fc505b136a2106902d0515890180e74913bf364aa499368fc5f2e SHA512 f82c63a180add1103e2bd115e67826ad7362a844991ef16f1de7fc6c78bf1955155ecf278fc0d759e674ab85736f3ba2a6650d00e9b3ce683316875efd9efa3c WHIRLPOOL 683c67b12f9666d1c1df5ec61e0072acaecd3aff43d0ff475037e178bc58fd9036ae6d8cd45e922098c842abd057231afd4767ce229d4581356f153b48a06208
AUX gitlab-sidekiq.init 990 SHA256 cc996184ae4c1b64fc5ee9325bf3f4bc30753896f6608a2f04112d8552359c38 SHA512 9064b5a2fb1280c7fd674c613e19893b5b4f21cc48967cad1c3ff6caef2d4cdbf077359c453e5bb97226c26348475a97fb055df2bac991a7260811cb933361af WHIRLPOOL f2a298a91318ee067451e90f8b52b45c2dcf7e621bd7014917f8fadfd92949c967b45c59434eac3813fd1acd1dc96b8b481f9d9c324627580f29c0f438bf99db AUX gitlab-sidekiq.init 990 SHA256 cc996184ae4c1b64fc5ee9325bf3f4bc30753896f6608a2f04112d8552359c38 SHA512 9064b5a2fb1280c7fd674c613e19893b5b4f21cc48967cad1c3ff6caef2d4cdbf077359c453e5bb97226c26348475a97fb055df2bac991a7260811cb933361af WHIRLPOOL f2a298a91318ee067451e90f8b52b45c2dcf7e621bd7014917f8fadfd92949c967b45c59434eac3813fd1acd1dc96b8b481f9d9c324627580f29c0f438bf99db
AUX gitlab-unicorn.init 3127 SHA256 de2f5861bec58eaac284e74baabe25288a520bc4f7da089a2c53a9494bbea884 SHA512 ae63cc6ef11eb1d3ed155c77dab413d8f7d281ac9c6362dfda12e0fafe23eb9a907a0275d14298c642ba7568119b483b1c520b322dc791f3a9ce64fbffb600f3 WHIRLPOOL de69ab338278e73637b6b1d346bb882d51c4468e71d89932718f394fb9f44725c79897eba8b0230069584ae7d8b92239bb2247c7ff8b46a99383739939a13088 AUX gitlab-unicorn.init 3127 SHA256 de2f5861bec58eaac284e74baabe25288a520bc4f7da089a2c53a9494bbea884 SHA512 ae63cc6ef11eb1d3ed155c77dab413d8f7d281ac9c6362dfda12e0fafe23eb9a907a0275d14298c642ba7568119b483b1c520b322dc791f3a9ce64fbffb600f3 WHIRLPOOL de69ab338278e73637b6b1d346bb882d51c4468e71d89932718f394fb9f44725c79897eba8b0230069584ae7d8b92239bb2247c7ff8b46a99383739939a13088
@ -10,9 +13,11 @@ AUX gitlab.conf 27 SHA256 cd9be088bbb67a5400407fc6f63c061eb224f16748b7d0812ff2c1
DIST gitlab-ce-8.11.6.tar.gz 25705796 SHA256 354da5db4087ce80d9f43cbae87830ccd06c2c559f8dfb764dffd7420588a66b SHA512 5abda185bfbbad61060ac9b5e83101d88f0f6c8cc12580c71467c7bfdc380d60acc9a8a855ac448759c8be9a5297ba721d0e641ec144741a7c57dd038e13b269 WHIRLPOOL 046ecd777cebc8768c9cdefab7f782c7943403e0c5c6b963ee2359f10f446b5cbe6974d07e14a3089c79830722de6d1e965fa2a58316e75a280ddf09825a1fe6 DIST gitlab-ce-8.11.6.tar.gz 25705796 SHA256 354da5db4087ce80d9f43cbae87830ccd06c2c559f8dfb764dffd7420588a66b SHA512 5abda185bfbbad61060ac9b5e83101d88f0f6c8cc12580c71467c7bfdc380d60acc9a8a855ac448759c8be9a5297ba721d0e641ec144741a7c57dd038e13b269 WHIRLPOOL 046ecd777cebc8768c9cdefab7f782c7943403e0c5c6b963ee2359f10f446b5cbe6974d07e14a3089c79830722de6d1e965fa2a58316e75a280ddf09825a1fe6
DIST gitlab-ce-8.12.0.tar.gz 27105188 SHA256 373109c33ded8f14f3f21e675afa9de8a2a8dd6519309b51844a50f79c5337f4 SHA512 81129858de4a574e2c56958c8c7de8177ce15028993dcff77aa7aea18eb4eb0bbab247d02eca88ffa6da1353f7ea2961332fd4843fe402a35f733e0e9f1484ce WHIRLPOOL 72a70bd3248648f947cc39d7d2633a28e5d9da29adb33675f3fc1f15f6ab5ec181063f13cfc44b90f286ccf0b1214941aaefb41d8ab84f92b4a5868155bbffca DIST gitlab-ce-8.12.0.tar.gz 27105188 SHA256 373109c33ded8f14f3f21e675afa9de8a2a8dd6519309b51844a50f79c5337f4 SHA512 81129858de4a574e2c56958c8c7de8177ce15028993dcff77aa7aea18eb4eb0bbab247d02eca88ffa6da1353f7ea2961332fd4843fe402a35f733e0e9f1484ce WHIRLPOOL 72a70bd3248648f947cc39d7d2633a28e5d9da29adb33675f3fc1f15f6ab5ec181063f13cfc44b90f286ccf0b1214941aaefb41d8ab84f92b4a5868155bbffca
DIST gitlab-ce-8.12.0_rc6.tar.gz 26786541 SHA256 41719da8de79093accae302c0cb7082e3e4248ed2413f6cda456051fead1f05c SHA512 e5c6ea64e3fc495c41dfe405325caf3fb34e58416d6cf284805f3e9666b085f4ef58b97e0de04ded4cf658421d8e4b716781f9ce58465410a7a715e72800feaf WHIRLPOOL b29ae1c37f71e4474077f18fe42f07bca213f7cf6faa2f942b615430aa68245a43a6223e430926c1b917debff548fd6d6b8c3f5c6e4e7ddd121878e2c390e9ba DIST gitlab-ce-8.12.0_rc6.tar.gz 26786541 SHA256 41719da8de79093accae302c0cb7082e3e4248ed2413f6cda456051fead1f05c SHA512 e5c6ea64e3fc495c41dfe405325caf3fb34e58416d6cf284805f3e9666b085f4ef58b97e0de04ded4cf658421d8e4b716781f9ce58465410a7a715e72800feaf WHIRLPOOL b29ae1c37f71e4474077f18fe42f07bca213f7cf6faa2f942b615430aa68245a43a6223e430926c1b917debff548fd6d6b8c3f5c6e4e7ddd121878e2c390e9ba
EBUILD gitlab-ce-8.11.6.ebuild 11954 SHA256 2752b8057eac0cd77e74bc7f323a6ab0037c9d70559a637f15e30f11ba244b65 SHA512 a649871bc5594aac19ac816a53a164edde1c7a70933c777489ee45c98515099c2748dd2a65fb433481ecd69ed9fd1f386e2f137b8cb9761453252ceab362e4cd WHIRLPOOL b623e4a6ed638c42672f0f8cde252681c89b92831d8bfb687a8ab7bb374335552586b77bd7066a898ed6612715732f538b29acbe874bd31e72c63f49e54deb00 DIST gitlab-ce-8.12.7.tar.gz 27110532 SHA256 003e497e23f730f4990bdb4b431109f2956b5bbf1d202a4003f5af65424157d4 SHA512 7ad53f5fe0c88cfcf5688de5d55489964a4b5e8dd763fbf7d832c199432b9532f0a75e6d803f1d03387c86b3ba0b47b1b75b97e783f7661662b656c7f9aea216 WHIRLPOOL 026d11a8adcde5312b46d626bebc6ed33bfea344042deb1fab0a40a52cfd7deccfe78ef2a544293456f08bf7acbd917233533898b54c3b9dcee9121520607ff2
EBUILD gitlab-ce-8.12.0.ebuild 11960 SHA256 c02ccd983fff15a89ec2e09724f1908f632e1128517ae3fd842c6c6f4751d1fe SHA512 6a262e1147476b0a5a7eacce17810fd5457787bf495217a4dadc5f51e262a10b88060e3aa164292a864ec5c7f7fa20f9c7735774e6478006eac54471abffa664 WHIRLPOOL 24fd204309bdb045abdde7708310bee18fb929c9828f51121f68e9439ce5ec9e18bf0265e68e825b7c0d028c84dbb8a7a2f112e7bf052209ea8bfd91c42bef21 EBUILD gitlab-ce-8.11.6.ebuild 11960 SHA256 ca2f5ea26710ac36289b0fa6335183714d7ea1a22fa9691067fa54e2785bf48b SHA512 7e1bf0b52d6f10c4a4c26d31c359e8a36fb8429fd5537a86c03867186bd9c554cb4fea6d9de04a21b8a81a7e394e19586b03a493f284425a8547ca4561954150 WHIRLPOOL bcea3b44707d466c548f0b02a5c69464d102f6ff4a4b8e3d51bf1b78ae2321a1512df9e504c540dbb7a5abd718671a9f2c498d13274b905e501fba147184a372
EBUILD gitlab-ce-8.12.0_rc6.ebuild 11937 SHA256 bfa85ccd3fa55a8950eb7ebc031440fcd9d3729cc722a8d353a1dc349e68f4b7 SHA512 2d5c6c8c01fc6e062a82507699bd796d2aca0fbbbd6ac900ab31eef5c8fd627eee62f5b49ea8dacdfbbefaa5675cece97067c0c9752fb4f06545935478c6b8c8 WHIRLPOOL 2940994a2d5905a96952a9f7a1f57007b5207d03a1511082d6381a76270ac4512867e54fdd26bb9216fa32ffc3cfbd2a672f875c19f423f5a3ef480159bb3fa4 EBUILD gitlab-ce-8.12.0.ebuild 11966 SHA256 5f747862a230aae8b904fd64d781a6a2ea3fa24fd9dba53794a671c2b9d298e7 SHA512 6ed88a63c68decf4807e1e520b45d955cc1f11a89ca00025eb6e9491f380eac408efa2b508889bee3beb12b3b933bd73ae280e30e72f974f5ac803a818d6c710 WHIRLPOOL 20c958f6e10050272afece916ffbad1b1b88a52777836d059451ac886c2f658043d6637b9cabf3da4f0761d5853c5dd4df7a154e4677788515b69b2f4ab99d86
EBUILD gitlab-ce-9999.ebuild 11892 SHA256 b6620aa1ec2f68e6c9941604c084b3bcdce9b1186ba026833c2adb456f64f31e SHA512 098f275db05cb96f96e53e9dca1b50c3d16607d807482650269d92ac8428c5a96f51facbb9f9d85450ea06bba6e169da82c02b440a7fec0608ee684c9b892a16 WHIRLPOOL 99163d4084f3561219c90cce5123d7028e4e2b4211e0bc70c43ec4e622270d1aa67f5fe0c0e0af7bdcbf1491566ebf93b042b3061ddc626a23b22e68662c237c EBUILD gitlab-ce-8.12.0_rc6.ebuild 11943 SHA256 62bcdc0b04fd791be8ecb48529d0c09705a6c843f245dce58f4780b3782f8195 SHA512 8f1cf916b29cc8d8b078ba19658ebd39585eb6d95ed106e8beb64ccdb17bfbe22fcf5af10baa13cc941d0d733cd0ea8f2ee4a9b960459e96c41744a35d6f2c74 WHIRLPOOL 48ce3279bf1f0c5658e726935c01020555f9d1705623ed8e12dd73670a32fa9b316a26aa7ed41786662e363e61f448ef523bb3ea0e65ed2d7653a3cf6ef67fe7
MISC ChangeLog 8028 SHA256 37aefa1dd66abe6cbd23092847e2b1fdb622a0c5546aad12d73c67f4369af3ae SHA512 d436930343a16a91484adaf23cfb2f94f939c7804e844f1f3514bf414da8fa2c7f772fedcab858c56b4ef18f01d42f00793cac108c5bff36e6f6187af6fef1f9 WHIRLPOOL 49b752988384306ad831e7ce4f2a3ebc8cae3b068dbd2c199de23c3bc58e2df82ed555df36e3eca69f5cc54bf3ec31d0a861af4f559f97f7c666614ed98a8433 EBUILD gitlab-ce-8.12.7.ebuild 12068 SHA256 5acdce0ee5f3c6cf20a120758ad0c60ec70574d38cc2ee56037b3789d812edfd SHA512 7daf877280f4a8242fa83e1b70d5cabe99aa8bd547d0b4f9a4921c60c44228f508e39a8a4f751b987078c4d680aaff374a055c8ca5882b12f110b232c0006f4e WHIRLPOOL be51f8c53ac45db3c13f179d447665b536df4848a4c63cf5619d2620fbca7bd2701b861f636235d7e746ee7f560eb084e949288f11dceaaef826c138be321625
EBUILD gitlab-ce-9999.ebuild 12028 SHA256 f3cd5c8a9f8cd80396f81f34689dc1b204e1e84bd98c7f202765b30a366a8d1f SHA512 a64a6c395a67f9b1bd8018cf487620f1d16ef6309ef38530c9470101bddf671abf23c00cc20c8fd5695761244fbc25ac0080e52d47023cd12308abd7430833a5 WHIRLPOOL 8753ee153fc0c73818eeef540921f602008b080f8b273eb466a95f72b34d3bcbb80849bf42146b65602b0ff02c8c7eebe11b717ea585cf993471206698405aed
MISC ChangeLog 8899 SHA256 ea96cff5da871cc200cf1fe220d9879b0b58af928b8a231d7b40472cccef701c SHA512 defd64dd057305dec3775cdc3b27b01e33c17de0c1ac0109807ea0480ae7f7ab144d0a5f1719be5b465c1f58a916c7f88436e43551bcf749660cc11113afd95f WHIRLPOOL 54a5ddbc652d9d7124ed363fadf59ffa7c5d89b9927bd93c3aa5d06adec6f0c33ac04b2399c674f202558af2c5ab0bbd44f9251c589cf30abf2f82bf3c5e4ff4
MISC metadata.xml 559 SHA256 6c3f48d3ef57c97bf27790f33ee04bd8de8b01597caa8a2a7a473d6d0a3c5759 SHA512 5aa340b5429795d84cd106ee673fd55a42fd4b0d3299d6b95c6a3e3d50812a9620820a4de5c57d5048af0c3ecec7f575d5856d2f7fadc210aadcbdd4dd040fe1 WHIRLPOOL f3d7b8c0522e09f5156e6bb446bb74e4c75f5da4495ca2ece1eb78afce59307abe01bf3c5dd5344278fcac9e334300d912031c806f51b981591c01bc3588c6f3 MISC metadata.xml 559 SHA256 6c3f48d3ef57c97bf27790f33ee04bd8de8b01597caa8a2a7a473d6d0a3c5759 SHA512 5aa340b5429795d84cd106ee673fd55a42fd4b0d3299d6b95c6a3e3d50812a9620820a4de5c57d5048af0c3ecec7f575d5856d2f7fadc210aadcbdd4dd040fe1 WHIRLPOOL f3d7b8c0522e09f5156e6bb446bb74e4c75f5da4495ca2ece1eb78afce59307abe01bf3c5dd5344278fcac9e334300d912031c806f51b981591c01bc3588c6f3

View file

@ -0,0 +1,92 @@
diff --git a/config/database.yml.mysql b/config/database.yml.mysql
index a99c507..0f081c8 100644
--- a/config/database.yml.mysql
+++ b/config/database.yml.mysql
@@ -6,37 +6,9 @@ production:
encoding: utf8
collation: utf8_general_ci
reconnect: false
- database: gitlabhq_production
+ database: gitlab
pool: 10
username: git
password: "secure password"
# host: localhost
- # socket: /tmp/mysql.sock
-
-#
-# Development specific
-#
-development:
- adapter: mysql2
- encoding: utf8
- collation: utf8_general_ci
- reconnect: false
- database: gitlabhq_development
- pool: 5
- username: root
- password: "secure password"
- # socket: /tmp/mysql.sock
-
-# Warning: The database defined as "test" will be erased and
-# re-generated from your development database when you run "rake".
-# Do not set this db to the same as development or production.
-test: &test
- adapter: mysql2
- encoding: utf8
- collation: utf8_general_ci
- reconnect: false
- database: gitlabhq_test
- pool: 5
- username: root
- password:
- # socket: /tmp/mysql.sock
+ # socket: /run/mysqld/mysqld.sock
diff --git a/config/database.yml.postgresql b/config/database.yml.postgresql
index 7067e0f..74af7df 100644
--- a/config/database.yml.postgresql
+++ b/config/database.yml.postgresql
@@ -4,42 +4,9 @@
production:
adapter: postgresql
encoding: unicode
- database: gitlabhq_production
+ database: gitlab
pool: 10
# username: git
# password:
# host: localhost
# port: 5432
-
-#
-# Development specific
-#
-development:
- adapter: postgresql
- encoding: unicode
- database: gitlabhq_development
- pool: 5
- username: postgres
- password:
-
-#
-# Staging specific
-#
-staging:
- adapter: postgresql
- encoding: unicode
- database: gitlabhq_staging
- pool: 5
- username: postgres
- password:
-
-# Warning: The database defined as "test" will be erased and
-# re-generated from your development database when you run "rake".
-# Do not set this db to the same as development or production.
-test: &test
- adapter: postgresql
- encoding: unicode
- database: gitlabhq_test
- pool: 5
- username: postgres
- password:

View file

@ -0,0 +1,27 @@
diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake
index 5f4a6bb..8f75d2b 100644
--- a/lib/tasks/gitlab/check.rake
+++ b/lib/tasks/gitlab/check.rake
@@ -24,7 +24,7 @@ namespace :gitlab do
check_tmp_writable
check_uploads
check_init_script_exists
- check_init_script_up_to_date
+ #check_init_script_up_to_date Gentoo uses a different init script
check_projects_have_namespace
check_redis_version
check_ruby_version
@@ -590,13 +590,6 @@ namespace :gitlab do
puts "yes".color(:green)
else
puts "no".color(:red)
- try_fixing_it(
- sudo_gitlab("RAILS_ENV=production bin/background_jobs start")
- )
- for_more_information(
- see_installation_guide_section("Install Init Script"),
- "see log/sidekiq.log for possible errors"
- )
fix_and_rerun
end
end

View file

@ -0,0 +1,77 @@
diff --git a/Gemfile b/Gemfile
index 4a517b2..ed6fc2e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -352,4 +352,4 @@ gem 'health_check', '~> 2.1.0'
# System information
gem 'vmstat', '~> 2.2'
-gem 'sys-filesystem', '~> 1.1.6'
+gem 'sys-filesystem', '~> 1.1.6', group: :exclude
diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb
index ca04a17..0e36b12 100644
--- a/app/controllers/admin/system_info_controller.rb
+++ b/app/controllers/admin/system_info_controller.rb
@@ -1,3 +1,5 @@
+require 'open3'
+
class Admin::SystemInfoController < Admin::ApplicationController
EXCLUDED_MOUNT_OPTIONS = [
'nobrowse',
@@ -28,10 +30,14 @@ class Admin::SystemInfoController < Admin::ApplicationController
'vfat'
]
+ MOUNT_REGEX = /(\S+) on (\S+) type (\S+) \(([^)]+)\)/
+
+ Mount = Struct.new('Mount', :name, :mount_point, :mount_type, :options)
+ FsStat = Struct.new('FsStats', :path, :bytes_total, :bytes_used)
+
def show
@cpus = Vmstat.cpu rescue nil
@memory = Vmstat.memory rescue nil
- mounts = Sys::Filesystem.mounts
@disks = []
mounts.each do |mount|
@@ -41,15 +47,38 @@ class Admin::SystemInfoController < Admin::ApplicationController
next if (EXCLUDED_MOUNT_TYPES & [mount.mount_type]).any?
begin
- disk = Sys::Filesystem.stat(mount.mount_point)
+ disk = fs_stat(mount.mount_point)
@disks.push({
bytes_total: disk.bytes_total,
bytes_used: disk.bytes_used,
disk_name: mount.name,
mount_path: disk.path
})
- rescue Sys::Filesystem::Error
+ rescue IOError
end
end
end
+
+ def mounts
+ stdout, stderr, status = Open3.capture3('mount')
+ fail IOError, stderr unless status.success?
+
+ stdout.lines
+ .map { |line| MOUNT_REGEX.match(line) }
+ .compact
+ .map { |match| Mount.new(*match.captures) }
+ end
+
+ def fs_stat(mount_point)
+ stdout, status = Open3.capture2('stat', '-c', '%s %b %a', '-f', mount_point)
+ fail IOError unless status.success?
+
+ block_size, blocks_total, blocks_free = stdout.split(' ').map(&:to_i)
+
+ bytes_total = blocks_total * block_size
+ bytes_free = blocks_free * block_size
+ bytes_used = bytes_total - bytes_free
+
+ FsStat.new(mount_point, bytes_total, bytes_used)
+ end
end

View file

@ -78,8 +78,8 @@ ruby_add_bdepend "
# Point to the absolute location of redis_config.rb # Point to the absolute location of redis_config.rb
# #
RUBY_PATCHES=( RUBY_PATCHES=(
"${PN}-8.7.5-fix-sendmail-config.patch" "01-${PN}-8.7.5-fix-sendmail-config.patch"
"${PN}-8.11.0-fix-redis-config-path.patch" "02-${PN}-8.11.0-fix-redis-config-path.patch"
) )
MY_NAME="gitlab" MY_NAME="gitlab"

View file

@ -78,8 +78,8 @@ ruby_add_bdepend "
# Point to the absolute location of redis_config.rb # Point to the absolute location of redis_config.rb
# #
RUBY_PATCHES=( RUBY_PATCHES=(
"${PN}-8.7.5-fix-sendmail-config.patch" "01-${PN}-8.7.5-fix-sendmail-config.patch"
"${PN}-8.11.0-fix-redis-config-path.patch" "02-${PN}-8.11.0-fix-redis-config-path.patch"
) )
MY_NAME="gitlab" MY_NAME="gitlab"

View file

@ -78,8 +78,8 @@ ruby_add_bdepend "
# Point to the absolute location of redis_config.rb # Point to the absolute location of redis_config.rb
# #
RUBY_PATCHES=( RUBY_PATCHES=(
"${PN}-8.7.5-fix-sendmail-config.patch" "01-${PN}-8.7.5-fix-sendmail-config.patch"
"${PN}-8.11.0-fix-redis-config-path.patch" "02-${PN}-8.11.0-fix-redis-config-path.patch"
) )
MY_NAME="gitlab" MY_NAME="gitlab"

View file

@ -0,0 +1,389 @@
# 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 ruby23"
inherit eutils ruby-ng user systemd
MY_PV="v${PV/_/-}"
MY_GIT_COMMIT="7429b21d3260edb25e9d3f98713d163f97b23e28"
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.6.1
>=dev-vcs/git-2.7.4
~dev-vcs/gitlab-workhorse-0.8.2
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=(
"01-${PN}-8.7.5-fix-sendmail-config.patch"
"02-${PN}-8.11.0-fix-redis-config-path.patch"
"03-${P}-database.yml.patch"
"04-${P}-fix-check-task.patch"
"05-${P}-replace-sys-filesystem.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 $@"
}

View file

@ -52,7 +52,7 @@ CDEPEND="
virtual/pkgconfig" virtual/pkgconfig"
COMMON_DEPEND=" COMMON_DEPEND="
${GEMS_DEPEND} ${GEMS_DEPEND}
>=dev-vcs/gitlab-shell-3.6.0 >=dev-vcs/gitlab-shell-3.6.1
>=dev-vcs/git-2.7.4 >=dev-vcs/git-2.7.4
>=dev-vcs/gitlab-workhorse-0.8.2 >=dev-vcs/gitlab-workhorse-0.8.2
kerberos? ( !app-crypt/heimdal ) kerberos? ( !app-crypt/heimdal )
@ -76,8 +76,11 @@ ruby_add_bdepend "
# Point to the absolute location of redis_config.rb # Point to the absolute location of redis_config.rb
# #
RUBY_PATCHES=( RUBY_PATCHES=(
"${PN}-8.7.5-fix-sendmail-config.patch" "01-${PN}-8.7.5-fix-sendmail-config.patch"
"${PN}-8.11.0-fix-redis-config-path.patch" "02-${PN}-8.11.0-fix-redis-config-path.patch"
"03-${PN}-8.12.7-fix-database.yml.patch"
"04-${PN}-8.12.7-fix-check-task.patch"
"05-${PN}-8.12.7-replace-sys-filesystem.patch"
) )
MY_NAME="gitlab" MY_NAME="gitlab"