Remove GitLab
This commit is contained in:
parent
2ec1773d2e
commit
924c4f13a5
|
@ -1 +0,0 @@
|
||||||
EBUILD gitlab-shell-2.6.9.ebuild 2783 SHA256 bcb7ce5594785e8bbe4da4817e37fb9ea5c674cc704da48df228ff77d04fe182 SHA512 14c1089278f77482653540b1df9ec64d8b7aefcd900625592377834a3ad9cb9068a56dd98e8f6019e80fad233e920b4ffde743f9b09b1deacac323efe86acd1f WHIRLPOOL 56e63a5aa0b0f40f76c060c3785a263eb42bb427554cdd346ee07364b647d009b5e9c7d1a285a74ffcc70b7538ad6a8a5b2cb4ee99430b75d828fc1a284599b5
|
|
|
@ -1,101 +0,0 @@
|
||||||
# Copyright 1999-2013 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="5"
|
|
||||||
|
|
||||||
EGIT_REPO_URI="https://github.com/gitlabhq/gitlab-shell.git"
|
|
||||||
EGIT_COMMIT="v${PV}"
|
|
||||||
USE_RUBY="ruby20"
|
|
||||||
|
|
||||||
inherit eutils git-2 ruby-ng user
|
|
||||||
|
|
||||||
DESCRIPTION="GitLab Shell is a free SSH access and repository management application"
|
|
||||||
HOMEPAGE="https://github.com/gitlabhq/gitlab-shell"
|
|
||||||
LICENSE="MIT"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~amd64 ~x86 ~arm"
|
|
||||||
|
|
||||||
DEPEND="$(ruby_implementation_depend ruby20)
|
|
||||||
dev-vcs/git
|
|
||||||
virtual/ssh
|
|
||||||
dev-db/redis"
|
|
||||||
RDEPEND="${DEPEND}"
|
|
||||||
|
|
||||||
GIT_USER="git"
|
|
||||||
GIT_GROUP="git"
|
|
||||||
HOME=$(if [ -n "$(getent passwd git | cut -d: -f6)" ]; then (getent passwd git | cut -d: -f6); else (echo /var/lib/git); fi)
|
|
||||||
REPO_DIR="${HOME}/repositories"
|
|
||||||
AUTH_FILE="${HOME}/.ssh/authorized_keys"
|
|
||||||
KEY_DIR=$(dirname "${AUTH_FILE}")
|
|
||||||
DEST_DIR="/var/lib/${PN}"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
|
|
||||||
enewgroup ${GIT_GROUP}
|
|
||||||
enewuser ${GIT_USER} -1 -1 "${HOME}" ${GIT_GROUP}
|
|
||||||
}
|
|
||||||
|
|
||||||
all_ruby_unpack() {
|
|
||||||
git-2_src_unpack
|
|
||||||
cd ${P}
|
|
||||||
sed -i \
|
|
||||||
-e "s|\(user:\).*|\1 ${GIT_USER}|" \
|
|
||||||
-e "s|\(repos_path:\).*|\1 \"${REPO_DIR}\"|" \
|
|
||||||
-e "s|\(auth_file:\).*|\1 \"${AUTH_FILE}\"|" \
|
|
||||||
config.yml.example || die "failed to filter config.yml.example"
|
|
||||||
}
|
|
||||||
|
|
||||||
all_ruby_install() {
|
|
||||||
|
|
||||||
rm -Rf .git .gitignore
|
|
||||||
|
|
||||||
insinto ${DEST_DIR}
|
|
||||||
touch gitlab-shell.log
|
|
||||||
doins -r . || die
|
|
||||||
|
|
||||||
dosym ${DEST_DIR}/bin/gitlab-keys /usr/bin/gitlab-keys || die
|
|
||||||
dosym ${DEST_DIR}/bin/gitlab-projects /usr/bin/gitlab-projects || die
|
|
||||||
dosym ${DEST_DIR}/bin/gitlab-shell /usr/bin/gitlab-shell || die
|
|
||||||
dosym ${DEST_DIR}/bin/check /usr/bin/gitlab-check || die
|
|
||||||
|
|
||||||
fperms 0755 ${DEST_DIR}/bin/gitlab-keys || die
|
|
||||||
fperms 0755 ${DEST_DIR}/bin/gitlab-projects || die
|
|
||||||
fperms 0755 ${DEST_DIR}/bin/gitlab-shell || die
|
|
||||||
fperms 0755 ${DEST_DIR}/bin/check || die
|
|
||||||
fperms 0755 ${DEST_DIR}/bin/create-hooks || die
|
|
||||||
fperms 0755 ${DEST_DIR}/bin/install || die
|
|
||||||
|
|
||||||
fperms 0755 ${DEST_DIR}/hooks/post-receive || die
|
|
||||||
fperms 0755 ${DEST_DIR}/hooks/pre-receive || die
|
|
||||||
|
|
||||||
fowners ${GIT_USER} ${DEST_DIR}/gitlab-shell.log
|
|
||||||
fowners ${GIT_USER} ${DEST_DIR} || die
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
|
|
||||||
dodir "${REPO_DIR}" || die
|
|
||||||
|
|
||||||
if [[ ! -d "${KEY_DIR}" ]] ; then
|
|
||||||
mkdir "${KEY_DIR}" || die
|
|
||||||
chmod 0700 "${KEY_DIR}" || die
|
|
||||||
chown ${GIT_USER}:${GIT_GROUP} "${KEY_DIR}" -R || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -e "${AUTH_FILE}" ]] ; then
|
|
||||||
touch "${AUTH_FILE}" || die
|
|
||||||
chmod 0600 "${AUTH_FILE}" || die
|
|
||||||
chown ${GIT_USER}:${GIT_GROUP} "${AUTH_FILE}" || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -d "${REPO_DIR}" ]] ; then
|
|
||||||
mkdir "${REPO_DIR}"
|
|
||||||
chmod ug+rwX,o-rwx "${REPO_DIR}" -R || die
|
|
||||||
chmod ug-s,o-rwx "${REPO_DIR}" -R || die
|
|
||||||
chown ${GIT_USER}:${GIT_GROUP} "${REPO_DIR}" -R || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
elog "Copy ${DEST_DIR}/config.yml.example to ${DEST_DIR}/config.yml"
|
|
||||||
elog "and edit this file in order to configure your GitLab-Shell settings."
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
AUX config.ssh 245 SHA256 5bf5d5a357e88b71e14a12bb28ea68d0286ed29118045aa944484b84b6fa5e4b SHA512 52dbec481cd45136e72370713ab20a41616dccb252e75b884b66e2494aaefe7795719169906dcad5030dcbe33201d021bdad1f7a99120ac40a64611290ff8759 WHIRLPOOL 9b991ad20787e0e7274136ddb8e22e1082360d580f8576feb722730b5c3f3fa22992f671f7916e191052a78d8d688d32044b39059dc7146d14c2da57fa891214
|
|
||||||
AUX gitlab.logrotate 191 SHA256 9c02c26f5faa443cd576599462c6a8206d62495ab9671098a5f0e379f216541b SHA512 2212a8e5f2d4704256d5abb92b5a1201b20f82b04610758e734d163792a60b78f482017510169666a70ed9352b171177d05237ffe87988cacb764c5ef7ba5443 WHIRLPOOL f61297015311316554e63af4822b8d274f5a2378e829e5c14bb22e642b0d83023446acff45a13aa354f127543ce1552c99488b92ed8f39d86959343c7e67bbee
|
|
||||||
AUX gitlabhq-8.3.2-fix-checks-gentoo.patch 390 SHA256 60324945dfff6d236faf7959a75089a782018b048ba1cb846b91e14109673236 SHA512 0ac979616639fdd9b9534c9e7c0ad3263f39fa10e6858a6c8cf401a3234d5ef20201fd97e2a5a39071dcf98fb7ca7a48b41d18db7689103e996baf65ae9f00ea WHIRLPOOL 98c46a4b4bafeb870425f437506b202c0c836b4df8763a3716d2cf21da73b04ffd0c31a6222317cf22e550a7676b463771038b595c1b2f9d491955dd0a82885a
|
|
||||||
AUX gitlabhq-8.3.2.init 2885 SHA256 1398163783c98b6c9451b29801b1caf20e3d07b03839c137a86aeb33738d55bf SHA512 5ebd9a2c06c50be5aec58c4382d47d1621971c44c238d23aceea2da7dfe23f71fc724d812b297cd8a0745c92fdd56b3468111db85e3a54011ac3e7ea3cdf573c WHIRLPOOL e244127c5b5f3440215c993774e570fc436deac7ed659b1bf99713c4960f74b97db92b1f3ed3f76218bc6943a172e1ad7824b9383791de1a3eca450ab1a5811b
|
|
||||||
EBUILD gitlabhq-8.3.2.ebuild 14405 SHA256 60293daf50f97e1cf50703fc67efc94ce33919234ef6218189c83be7a2cd1334 SHA512 739d344f27d3cfdfa8b87c304c6ffb823fae3a867f1af30a4c3f91ade8966cb5cf90789eca212bd0a31cdc31e6e20f7f1c806885ad7def6c2aa8325bf03aec8a WHIRLPOOL b6ca5d966b0f7e547ca8af813f708eaaf1ade00be166583dde99484011ffbeb352a4d86c28f29f79d4c27d3db33948b3a95a9fd85e9a57d4d283d08b3f65c5e6
|
|
|
@ -1,10 +0,0 @@
|
||||||
Host localhost
|
|
||||||
StrictHostKeyChecking no
|
|
||||||
UserKnownHostsFile=/dev/null
|
|
||||||
BatchMode yes
|
|
||||||
CheckHostIP no
|
|
||||||
AddressFamily inet
|
|
||||||
PreferredAuthentications publickey
|
|
||||||
ControlMaster auto
|
|
||||||
ControlPath ~/.ssh/ssh-%r-%h:%p.sock
|
|
||||||
ControlPersist 24h
|
|
|
@ -1,10 +0,0 @@
|
||||||
# Copyright 1999-2012 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
@LOG_DIR@/*.log {
|
|
||||||
missingok
|
|
||||||
delaycompress
|
|
||||||
compress
|
|
||||||
copytruncate
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- lib/tasks/gitlab/check.rake.orig 2015-11-13 16:46:18.044125564 +0100
|
|
||||||
+++ lib/tasks/gitlab/check.rake 2015-11-13 16:46:24.414126919 +0100
|
|
||||||
@@ -24,8 +24,6 @@
|
|
||||||
check_log_writable
|
|
||||||
check_tmp_writable
|
|
||||||
check_uploads
|
|
||||||
- check_init_script_exists
|
|
||||||
- check_init_script_up_to_date
|
|
||||||
check_projects_have_namespace
|
|
||||||
check_redis_version
|
|
||||||
check_ruby_version
|
|
|
@ -1,89 +0,0 @@
|
||||||
#!/sbin/runscript
|
|
||||||
|
|
||||||
name="GitLab"
|
|
||||||
description="GitLab 8.3 on Unicorns"
|
|
||||||
|
|
||||||
: ${gitlab_user:=git}
|
|
||||||
: ${gitlab_group:=git}
|
|
||||||
: ${gitlab_home:="/opt/gitlabhq-8.3"}
|
|
||||||
: ${gitlab_log:="/var/log/gitlabhq-8.3"}
|
|
||||||
|
|
||||||
: ${unicorn_pidfile:="${gitlab_home}/tmp/pids/unicorn.pid"}
|
|
||||||
: ${unicorn_log:="${gitlab_log}/unicorn.log"}
|
|
||||||
|
|
||||||
: ${sidekiq_pidfile:="${gitlab_home}/tmp/pids/sidekiq.pid"}
|
|
||||||
: ${sidekiq_log:="${gitlab_log}/sidekiq.log"}
|
|
||||||
|
|
||||||
: ${workhorse_pidfile:="${gitlab_home}/tmp/pids/workhorse.pid"}
|
|
||||||
: ${workhorse_log:="${gitlab_log}/workhorse.log"}
|
|
||||||
: ${workhorse_socket:="${gitlab_home}/tmp/sockets/gitlab-workhorse.socket"}
|
|
||||||
|
|
||||||
: ${rails_env:=production}
|
|
||||||
|
|
||||||
unicorn_command="/usr/bin/bundle"
|
|
||||||
unicorn_command_args="exec unicorn_rails -c ${gitlab_home}/config/unicorn.rb -E ${rails_env} -D"
|
|
||||||
sidekiq_command="/usr/bin/bundle"
|
|
||||||
sidekiq_start_command_args="exec sidekiq -c 10 -q post_receive -q mailer -q archive_repo -q system_hook -q project_web_hook -q gitlab_shell -q incoming_email -q runner -q common -q default -e ${rails_env} -d -P ${sidekiq_pidfile} -L ${sidekiq_log} $@ >> ${sidekiq_log} 2>&1"
|
|
||||||
sidekiq_stop_command_args="exec sidekiqctl stop ${sidekiq_pidfile} >> ${sidekiq_log}"
|
|
||||||
workhorse_command="/usr/bin/gitlab-workhorse"
|
|
||||||
workhorse_command_args="-listenUmask 0 -listenNetwork unix -listenAddr ${workhorse_socket} -authBackend http://127.0.0.1:8080"
|
|
||||||
|
|
||||||
if [ ${rails_env} = development ]; then
|
|
||||||
sidekiq_command_args+=" VVERBOSE=1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
depend() {
|
|
||||||
provide gitlab
|
|
||||||
need redis
|
|
||||||
use net mysql postgresql
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
|
|
||||||
checkpath -d -o "${gitlab_user}:${gitlab_group}" -m750 "$(dirname "${unicorn_pidfile}")"
|
|
||||||
checkpath -d -o "${gitlab_user}:${gitlab_group}" -m750 "$(dirname "${sidekiq_pidfile}")"
|
|
||||||
|
|
||||||
ebegin "Starting GitLab 8.3 Unicorn servers"
|
|
||||||
start-stop-daemon --start \
|
|
||||||
--chdir "${gitlab_home}" \
|
|
||||||
--user="${gitlab_user}:${gitlab_group}" \
|
|
||||||
--pidfile="${unicorn_pidfile}" \
|
|
||||||
--exec ${unicorn_command} -- ${unicorn_command_args}
|
|
||||||
eend $?
|
|
||||||
|
|
||||||
ebegin "Starting GitLab 8.3 Sidekiq"
|
|
||||||
cd "${gitlab_home}"
|
|
||||||
sudo -u git -H ${sidekiq_command} ${sidekiq_start_command_args}
|
|
||||||
eend $?
|
|
||||||
|
|
||||||
ebegin "Starting GitLab 8.3 Workhorse"
|
|
||||||
start-stop-daemon --start \
|
|
||||||
--chdir "${gitlab_home}" \
|
|
||||||
--user="${gitlab_user}:${gitlab_group}" \
|
|
||||||
--pidfile="${workhorse_pidfile}" \
|
|
||||||
--background -1 "${workhorse_log}" -2 "${workhorse_log}" \
|
|
||||||
--exec ${workhorse_command} -- ${workhorse_command_args}
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
|
|
||||||
ebegin "Stopping GitLab 8.3 Workhorse"
|
|
||||||
start-stop-daemon --stop \
|
|
||||||
--chdir "${gitlab_home}" \
|
|
||||||
--user="${gitlab_user}:${gitlab_group}" \
|
|
||||||
--pidfile="${workhorse_pidfile}"
|
|
||||||
eend $?
|
|
||||||
|
|
||||||
ebegin "Stopping GitLab 8.3 Sidekiq"
|
|
||||||
cd "${gitlab_home}"
|
|
||||||
sudo -u git -H ${sidekiq_command} ${sidekiq_stop_command_args}
|
|
||||||
eend $?
|
|
||||||
|
|
||||||
ebegin "Stopping GitLab 8.3 Unicorn servers"
|
|
||||||
start-stop-daemon --stop \
|
|
||||||
--chdir "${gitlab_home}" \
|
|
||||||
--user="${gitlab_user}:${gitlab_group}" \
|
|
||||||
--pidfile="${unicorn_pidfile}"
|
|
||||||
eend $?
|
|
||||||
}
|
|
|
@ -1,443 +0,0 @@
|
||||||
# Copyright 1999-2015 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="5"
|
|
||||||
|
|
||||||
# Mainteiner 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"
|
|
||||||
PYTHON_DEPEND="2:2.5"
|
|
||||||
|
|
||||||
EGIT_REPO_URI="https://gitlab.com/gitlab-org/gitlab-ce.git"
|
|
||||||
EGIT_COMMIT="v${PV}"
|
|
||||||
|
|
||||||
inherit eutils git-2 python ruby-ng versionator user
|
|
||||||
|
|
||||||
DESCRIPTION="GitLab is a free project and repository management application"
|
|
||||||
HOMEPAGE="https://about.gitlab.com/gitlab-ci/"
|
|
||||||
|
|
||||||
LICENSE="MIT"
|
|
||||||
SLOT=$(get_version_component_range 1-2)
|
|
||||||
KEYWORDS="~amd64 ~x86 ~arm"
|
|
||||||
IUSE="memcached mysql +postgres +unicorn"
|
|
||||||
|
|
||||||
## Gems dependencies:
|
|
||||||
# charlock_holmes dev-libs/icu
|
|
||||||
# grape, capybara dev-libs/libxml2, dev-libs/libxslt
|
|
||||||
# json dev-util/ragel
|
|
||||||
# yajl-ruby dev-libs/yajl
|
|
||||||
# pygments.rb python 2.5+
|
|
||||||
# execjs net-libs/nodejs, or any other JS runtime
|
|
||||||
# pg dev-db/postgresql-base
|
|
||||||
# mysql virtual/mysql
|
|
||||||
# rugged net-libs/http-parser dev-libs/libgit2
|
|
||||||
#
|
|
||||||
GEMS_DEPEND="
|
|
||||||
dev-libs/icu
|
|
||||||
dev-libs/libxml2
|
|
||||||
dev-libs/libxslt
|
|
||||||
dev-util/ragel
|
|
||||||
dev-libs/yajl
|
|
||||||
net-libs/nodejs
|
|
||||||
postgres? ( dev-db/postgresql )
|
|
||||||
mysql? ( virtual/mysql )
|
|
||||||
memcached? ( net-misc/memcached )
|
|
||||||
net-libs/http-parser
|
|
||||||
>=dev-libs/libgit2-0.23.0"
|
|
||||||
DEPEND="${GEMS_DEPEND}
|
|
||||||
>=dev-lang/ruby-2.0[readline,ssl]
|
|
||||||
>dev-vcs/git-2.2.1
|
|
||||||
>=dev-vcs/gitlab-shell-2.6.9
|
|
||||||
>=www-servers/gitlab-workhorse-0.5.1
|
|
||||||
net-misc/curl
|
|
||||||
virtual/ssh"
|
|
||||||
RDEPEND="${DEPEND}
|
|
||||||
>=dev-db/redis-2.4.0
|
|
||||||
virtual/mta
|
|
||||||
virtual/krb5"
|
|
||||||
ruby_add_bdepend "
|
|
||||||
virtual/rubygems
|
|
||||||
>=dev-ruby/bundler-1.0"
|
|
||||||
|
|
||||||
RUBY_PATCHES=(
|
|
||||||
"${P}-fix-checks-gentoo.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
GIT_USER="git"
|
|
||||||
GIT_GROUP="git"
|
|
||||||
GIT_HOME=$(getent passwd $GIT_USER | cut -d: -f6)
|
|
||||||
DEST_DIR="/opt/${PN}-${SLOT}"
|
|
||||||
CONF_DIR="/etc/${PN}-${SLOT}"
|
|
||||||
|
|
||||||
GIT_REPOS="${GIT_HOME}/repositories"
|
|
||||||
GIT_SATELLITES="${GIT_HOME}/gitlab-satellites"
|
|
||||||
GITLAB_SHELL="/var/lib/gitlab-shell"
|
|
||||||
GITLAB_SHELL_HOOKS="${GITLAB_SHELL}/hooks"
|
|
||||||
|
|
||||||
RAILS_ENV=${RAILS_ENV:-production}
|
|
||||||
RUBY=${RUBY:-ruby21}
|
|
||||||
BUNDLE="${RUBY} /usr/bin/bundle"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
enewgroup ${GIT_GROUP}
|
|
||||||
enewuser ${GIT_USER} -1 -1 ${DEST_DIR} "$GIT_GROUP}"
|
|
||||||
}
|
|
||||||
|
|
||||||
all_ruby_unpack() {
|
|
||||||
git-2_src_unpack
|
|
||||||
}
|
|
||||||
|
|
||||||
each_ruby_prepare() {
|
|
||||||
|
|
||||||
# fix path to repo and gitlab-shell hooks
|
|
||||||
test -d "${GITLAB_SHELL_HOOKS}" || die "Gitlab Shell hooks directory not found: \"${GITLAB_SHELL_HOOKS}. Have you properly installed dev-vcs/gitlab-shell"?
|
|
||||||
|
|
||||||
sed -i \
|
|
||||||
-e "s|\(\s*path:\s\)/.*/gitlab-shell/|\1 ${GITLAB_SHELL}/|" \
|
|
||||||
-e "s|\(\s*repos_path:\s\)/.*|\1 ${GIT_REPOS}/|" \
|
|
||||||
-e "s|\(\s*hooks_path:\s\)/.*|\1 ${GITLAB_SHELL_HOOKS}/|" \
|
|
||||||
-e "s|\(\s*path:\s\)/.*/gitlab-satellites/|\1 ${GIT_SATELLITES}/|" \
|
|
||||||
-e "s|\(\s*GITLAB_SHELL:\s*\)|\1\n\tpath: \"${GITLAB_SHELL}\"|" \
|
|
||||||
config/gitlab.yml.example || die "failed to filter gitlab.yml.example"
|
|
||||||
|
|
||||||
# modify database settings
|
|
||||||
sed -i \
|
|
||||||
-e 's|\(username:\) postgres.*|\1 gitlab|' \
|
|
||||||
-e 's|\(password:\).*|\1 gitlab|' \
|
|
||||||
-e 's|\(socket:\).*|/run/postgresql/.s.PGSQL.5432|' \
|
|
||||||
config/database.yml.postgresql \
|
|
||||||
|| die "failed to filter database.yml.postgresql"
|
|
||||||
|
|
||||||
# replace "secret" token with random one
|
|
||||||
local randpw=$(echo ${RANDOM}|sha512sum|cut -c 1-128)
|
|
||||||
sed -i -e "/secret_token =/ s/=.*/= '${randpw}'/" \
|
|
||||||
config/initializers/secret_token.rb \
|
|
||||||
|| die "failed to filter secret_token.rb"
|
|
||||||
|
|
||||||
# remove needless files
|
|
||||||
rm .foreman .gitignore Procfile
|
|
||||||
use unicorn || rm config/unicorn.rb.example
|
|
||||||
use postgres || rm config/database.yml.postgresql
|
|
||||||
use mysql || rm config/database.yml.mysql
|
|
||||||
|
|
||||||
# change cache_store
|
|
||||||
if use memcached; then
|
|
||||||
sed -i \
|
|
||||||
-e "/\w*config.cache_store / s/=.*/= :dalli_store, { namespace: 'gitlab' }/" \
|
|
||||||
config/environments/production.rb \
|
|
||||||
|| die "failed to modify production.rb"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Update pathes for unicorn
|
|
||||||
if use unicorn; then
|
|
||||||
sed -i \
|
|
||||||
-e "s#/home/git/gitlab#${DEST_DIR}#" \
|
|
||||||
config/unicorn.rb.example \
|
|
||||||
|| die "failed to modify unicorn.rb.example"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
each_ruby_install() {
|
|
||||||
local dest="${DEST_DIR}"
|
|
||||||
local conf="/etc/${PN}-${SLOT}"
|
|
||||||
local temp="/var/tmp/${PN}-${SLOT}"
|
|
||||||
local logs="/var/log/${PN}-${SLOT}"
|
|
||||||
local uploads="${DEST_DIR}/public/uploads"
|
|
||||||
|
|
||||||
## Prepare directories ##
|
|
||||||
|
|
||||||
diropts -m750
|
|
||||||
keepdir "${logs}"
|
|
||||||
dodir "${temp}"
|
|
||||||
|
|
||||||
diropts -m755
|
|
||||||
keepdir "${conf}"
|
|
||||||
dodir "${dest}"
|
|
||||||
dodir "${uploads}"
|
|
||||||
|
|
||||||
dosym "${temp}" "${dest}/tmp"
|
|
||||||
dosym "${logs}" "${dest}/log"
|
|
||||||
|
|
||||||
## Link gitlab-shell into git home
|
|
||||||
dosym "${GITLAB_SHELL}" "${GIT_HOME}/gitlab-shell"
|
|
||||||
|
|
||||||
## Install configs ##
|
|
||||||
|
|
||||||
insinto "${conf}"
|
|
||||||
doins -r config/*
|
|
||||||
dosym "${conf}" "${dest}/config"
|
|
||||||
|
|
||||||
insinto "${dest}/.ssh"
|
|
||||||
newins "${FILESDIR}/config.ssh" config
|
|
||||||
|
|
||||||
echo "export RAILS_ENV=production" > "${D}/${dest}/.profile"
|
|
||||||
|
|
||||||
## Install all others ##
|
|
||||||
|
|
||||||
# remove needless dirs
|
|
||||||
rm -Rf config tmp log
|
|
||||||
|
|
||||||
insinto "${dest}"
|
|
||||||
doins -r ./
|
|
||||||
|
|
||||||
## Install logrotate config ##
|
|
||||||
|
|
||||||
dodir /etc/logrotate.d
|
|
||||||
sed -e "s|@LOG_DIR@|${logs}|" \
|
|
||||||
"${FILESDIR}"/gitlab.logrotate > "${D}"/etc/logrotate.d/${PN}-${SLOT} \
|
|
||||||
|| die "failed to filter gitlab.logrotate"
|
|
||||||
|
|
||||||
## Install gems via bundler ##
|
|
||||||
|
|
||||||
cd "${D}/${dest}"
|
|
||||||
|
|
||||||
local without="development test thin"
|
|
||||||
local flag; for flag in memcached mysql postgres unicorn; do
|
|
||||||
without+="$(use $flag || echo ' '$flag)"
|
|
||||||
done
|
|
||||||
local bundle_args="--deployment ${without:+--without ${without}}"
|
|
||||||
|
|
||||||
# Use systemlibs for rugged
|
|
||||||
${BUNDLE} config build.rugged --use-system-libraries
|
|
||||||
|
|
||||||
# Use systemlibs for nokogiri as suggested
|
|
||||||
${BUNDLE} config build.nokogiri --use-system-libraries
|
|
||||||
|
|
||||||
# Fix invalid ldflags for charlock_holmes,
|
|
||||||
# see https://github.com/brianmario/charlock_holmes/issues/32
|
|
||||||
${BUNDLE} config build.charlock_holmes --with-ldflags='-L. -Wl,-O1 -Wl,--as-needed -rdynamic -Wl,-export-dynamic -Wl,--no-undefined -lz -licuuc'
|
|
||||||
|
|
||||||
einfo "Running bundle install ${bundle_args} ..."
|
|
||||||
${BUNDLE} install ${bundle_args} || die "bundler failed"
|
|
||||||
|
|
||||||
## Clean ##
|
|
||||||
|
|
||||||
local gemsdir=vendor/bundle/ruby/$(ruby_rbconfig_value 'ruby_version')
|
|
||||||
|
|
||||||
# remove gems cache
|
|
||||||
rm -Rf ${gemsdir}/cache
|
|
||||||
|
|
||||||
# fix permissions
|
|
||||||
fowners -R ${GIT_USER}:${GIT_GROUP} "${dest}" "${conf}" "${temp}" "${logs}"
|
|
||||||
fperms o+Xr "${temp}" # Let nginx access the unicorn socket
|
|
||||||
|
|
||||||
## RC scripts ##
|
|
||||||
local rcscript=${P}.init
|
|
||||||
|
|
||||||
cp "${FILESDIR}/${rcscript}" "${T}" || die
|
|
||||||
sed -i \
|
|
||||||
-e "s|@GIT_USER@|${GIT_USER}|" \
|
|
||||||
-e "s|@GIT_GROUP@|${GIT_USER}|" \
|
|
||||||
-e "s|@SLOT@|${SLOT}|" \
|
|
||||||
-e "s|@DEST_DIR@|${dest}|" \
|
|
||||||
-e "s|@LOG_DIR@|${logs}|" \
|
|
||||||
-e "s|@RESQUE_QUEUE@|${resque_queue}|" \
|
|
||||||
"${T}/${rcscript}" \
|
|
||||||
|| die "failed to filter ${rcscript}"
|
|
||||||
|
|
||||||
if use memcached; then
|
|
||||||
sed -i -e '/^depend/,// {/need / s/$/ memcached/}' \
|
|
||||||
"${T}/${rcscript}" || die "failed to filter ${rcscript}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
newinitd "${T}/${rcscript}" "${PN}-${SLOT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
diropts -m "0750" -o "${GIT_USER}" -g "${GIT_GROUP}"
|
|
||||||
dodir "${GIT_SATELLITES}"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
if [ ! -e "${GIT_HOME}/.ssh/id_rsa" ]; then
|
|
||||||
einfo "Generating SSH key for git user"
|
|
||||||
su -l ${GIT_USER} -s /bin/sh -c "
|
|
||||||
ssh-keygen -q -N '' -t rsa -f ${GIT_HOME}/.ssh/id_rsa" \
|
|
||||||
|| die "failed to generate SSH key"
|
|
||||||
fi
|
|
||||||
if [ ! -e "${GIT_HOME}/.gitconfig" ]; then
|
|
||||||
einfo "Setting git user in ${GIT_HOME}/.gitconfig, feel free to "
|
|
||||||
einfo "modify this file according to your needs!"
|
|
||||||
su -l ${GIT_USER} -s /bin/sh -c "
|
|
||||||
git config --global core.autocrlf 'input';
|
|
||||||
git config --global user.email 'gitlab@localhost';
|
|
||||||
git config --global user.name 'GitLab'" \
|
|
||||||
|| die "failed to setup git name and email"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elog "If this is a new installation, proceed with the following steps:"
|
|
||||||
elog
|
|
||||||
elog " 1. Copy ${CONF_DIR}/gitlab.yml.example to ${CONF_DIR}/gitlab.yml"
|
|
||||||
elog " and edit this file in order to configure your GitLab settings."
|
|
||||||
elog
|
|
||||||
elog " 2. Copy ${CONF_DIR}/database.yml.* to ${CONF_DIR}/database.yml"
|
|
||||||
elog " and edit this file in order to configure your database settings"
|
|
||||||
elog " for \"production\" environment."
|
|
||||||
elog
|
|
||||||
elog " 3. Copy ${CONF_DIR}/initializers/rack_attack.rb.example"
|
|
||||||
elog " to ${CONF_DIR}/initializers/rack_attack.rb"
|
|
||||||
elog
|
|
||||||
elog " 4. Copy ${CONF_DIR}/resque.yml.example to ${CONF_DIR}/resque.yml"
|
|
||||||
elog " and edit this file in order to configure your Redis settings"
|
|
||||||
elog " for \"production\" environment."
|
|
||||||
elog
|
|
||||||
|
|
||||||
if use unicorn; then
|
|
||||||
elog " 4a. Copy ${CONF_DIR}/unicorn.rb.example to ${CONF_DIR}/unicorn.rb"
|
|
||||||
elog
|
|
||||||
fi
|
|
||||||
|
|
||||||
elog " 5. If this is a new installation, create a database for your GitLab instance."
|
|
||||||
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 gitlab_production"
|
|
||||||
elog " Note: You should change your password to something more random..."
|
|
||||||
elog
|
|
||||||
elog " GitLab uses polymorphic associations which are not SQL-standard friendly."
|
|
||||||
elog " To get it work you must use this ugly workaround:"
|
|
||||||
elog " psql -U postgres -d gitlab"
|
|
||||||
elog " CREATE CAST (integer AS text) WITH INOUT AS IMPLICIT;"
|
|
||||||
elog
|
|
||||||
fi
|
|
||||||
elog " 6. Execute the following command to finalize your setup:"
|
|
||||||
elog " emerge --config \"=${CATEGORY}/${PF}\""
|
|
||||||
elog " Note: Do not forget to start Redis server."
|
|
||||||
elog
|
|
||||||
elog "To update an existing instance, run the following command and choose upgrading when prompted:"
|
|
||||||
elog " emerge --config \"=${CATEGORY}/${PF}\""
|
|
||||||
elog
|
|
||||||
elog "Important: Do not remove the earlier version prior migration!"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_config() {
|
|
||||||
|
|
||||||
# Ask user whether this is the first installation
|
|
||||||
einfo "Do you want to upgrade an existing installation? [Y|n] "
|
|
||||||
do_upgrade=""
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
read -r do_upgrade
|
|
||||||
if [[ $do_upgrade == "n" || $do_upgrade == "N" ]] ; then do_upgrade="" && break
|
|
||||||
elif [[ $do_upgrade == "y" || $do_upgrade == "Y" || $do_upgrade == "" ]] ; then do_upgrade=1 && break
|
|
||||||
else eerrorn "Please type either \"Y\" or \"N\" ... " ; fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ $do_upgrade ]] ; then
|
|
||||||
|
|
||||||
LATEST_DEST=$(test -n "${LATEST_DEST}" && echo ${LATEST_DEST} || \
|
|
||||||
find /opt -maxdepth 1 -iname 'gitlabhq-*' -and -type d -and -not -iname "gitlabhq-${SLOT}" | \
|
|
||||||
sort -r | head -n1)
|
|
||||||
|
|
||||||
if [[ -z "${LATEST_DEST}" || ! -d "${LATEST_DEST}" ]] ; then
|
|
||||||
einfo "Please enter the path to your latest Gitlab instance:"
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
read -r LATEST_DEST
|
|
||||||
test -d ${LATEST_DEST} && break ||\
|
|
||||||
eerror "Please specify a valid path to your Gitlab instance!"
|
|
||||||
done
|
|
||||||
else
|
|
||||||
einfo "Found your latest Gitlab instance at \"${LATEST_DEST}\"."
|
|
||||||
fi
|
|
||||||
|
|
||||||
einfo "Please make sure that you've stopped your running Gitlab instance and that you've created a backup: "
|
|
||||||
elog "\$ cd \"${LATEST_DEST}\" && sudo -u ${GIT_USER} ${BUNDLE} exec rake gitlab:backup:create RAILS_ENV=production"
|
|
||||||
elog "\$ /etc/init.d/${LATEST_DEST#*/opt/} stop"
|
|
||||||
elog ""
|
|
||||||
|
|
||||||
einfo "Press ENTER to continue, STRG-C to cancel"
|
|
||||||
read
|
|
||||||
|
|
||||||
einfo "Migrating uploads ..."
|
|
||||||
einfo "This will move your uploads from \"$LATEST_DEST\" to \"${DEST_DIR}\", continue? [Y|n] "
|
|
||||||
migrate_uploads=""
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
read -r migrate_uploads
|
|
||||||
if [[ $migrate_uploads == "n" || $migrate_uploads == "N" ]] ; then migrate_uploads="" && break
|
|
||||||
elif [[ $migrate_uploads == "y" || $migrate_uploads == "Y" || $migrate_uploads == "" ]] ; then migrate_uploads=1 && break
|
|
||||||
else eerror "Please type either \"Y\" or \"N\" ... " ; fi
|
|
||||||
done
|
|
||||||
if [[ $migrate_uploads ]] ; then
|
|
||||||
su -l ${GIT_USER} -s /bin/sh -c "
|
|
||||||
mv ${LATEST_DEST}/public/uploads/* ${DEST_DIR}/public/uploads/" \
|
|
||||||
|| die "failed to migrate uplaods."
|
|
||||||
fi
|
|
||||||
|
|
||||||
einfo "Migrating config ..."
|
|
||||||
for conf in database.yml gitlab.yml resque.yml unicorn.rb ; do
|
|
||||||
cp "${LATEST_DEST}/config/${conf}" "${DEST_DIR}/config/"
|
|
||||||
|
|
||||||
example="${DEST_DIR}/config/${conf}.example"
|
|
||||||
test -f "${example}" && mv "${example}" "${DEST_DIR}/config/.cfg0000_${conf}"
|
|
||||||
done
|
|
||||||
CONFIG_PROTECT="${DEST_DIR}" dispatch-conf || die "failed to automatically migrate config, run \"CONFIG_PROTECT=${DEST_DIR} dispatch-conf\" by hand, re-run this routine and skip config migration to proceed."
|
|
||||||
|
|
||||||
einfo "Migrating database ..."
|
|
||||||
su -l ${GIT_USER} -s /bin/sh -c "
|
|
||||||
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8
|
|
||||||
cd ${DEST_DIR}
|
|
||||||
${BUNDLE} exec rake db:migrate RAILS_ENV=production" \
|
|
||||||
|| die "failed to migrate database."
|
|
||||||
|
|
||||||
einfo "Clear redis cache ..."
|
|
||||||
su -l ${GIT_USER} -s /bin/sh -c "
|
|
||||||
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8
|
|
||||||
cd ${DEST_DIR}
|
|
||||||
${BUNDLE} exec rake cache:clear RAILS_ENV=production" \
|
|
||||||
|| die "failed to run cache:clear"
|
|
||||||
|
|
||||||
einfo "Clear and precompile assets ..."
|
|
||||||
su -l ${GIT_USER} -s /bin/sh -c "
|
|
||||||
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8
|
|
||||||
cd ${DEST_DIR}
|
|
||||||
${BUNDLE} exec rake assets:clean RAILS_ENV=production
|
|
||||||
${BUNDLE} exec rake assets:precompile RAILS_ENV=production" \
|
|
||||||
|| die "failed to run assets:clean and assets:precompile"
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
## Check config files existence ##
|
|
||||||
einfo "Checking configuration files ..."
|
|
||||||
|
|
||||||
if [ ! -r "${CONF_DIR}/database.yml" ] ; then
|
|
||||||
eerror "Copy \"${CONF_DIR}/database.yml.*\" to \"${CONF_DIR}/database.yml\""
|
|
||||||
eerror "and edit this file in order to configure your database settings for"
|
|
||||||
eerror "\"production\" environment."
|
|
||||||
die
|
|
||||||
fi
|
|
||||||
if [ ! -r "${CONF_DIR}/gitlab.yml" ]; then
|
|
||||||
eerror "Copy \"${CONF_DIR}/gitlab.yml.example\" to \"${CONF_DIR}/gitlab.yml\""
|
|
||||||
eerror "and edit this file in order to configure your GitLab settings"
|
|
||||||
eerror "for \"production\" environment."
|
|
||||||
die
|
|
||||||
fi
|
|
||||||
|
|
||||||
einfo "Initializing database ..."
|
|
||||||
su -l ${GIT_USER} -s /bin/sh -c "
|
|
||||||
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8
|
|
||||||
cd ${DEST_DIR}
|
|
||||||
${BUNDLE} exec rake gitlab:setup RAILS_ENV=${RAILS_ENV}" \
|
|
||||||
|| die "failed to run rake gitlab:setup"
|
|
||||||
fi
|
|
||||||
|
|
||||||
## (Re-)Link gitlab-shell-secret into gitlab-shell
|
|
||||||
if test -L "${GITLAB_SHELL}/.gitlab_shell_secret"
|
|
||||||
then
|
|
||||||
rm "${GITLAB_SHELL}/.gitlab_shell_secret"
|
|
||||||
ln -s "${DEST_DIR}/.gitlab_shell_secret" "${GITLAB_SHELL}/.gitlab_shell_secret"
|
|
||||||
fi
|
|
||||||
|
|
||||||
einfo "You might want to run the following in order to check your application status:"
|
|
||||||
einfo "# cd ${DEST_DIR} && sudo -u ${GIT_USER} ${BUNDLE} exec rake gitlab:check RAILS_ENV=production"
|
|
||||||
einfo ""
|
|
||||||
einfo "GitLab is prepared, now you should configure your web server."
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
EBUILD gitlab-workhorse-0.5.1.ebuild 506 SHA256 da9f951a048f4d857d82b85805e93cd844a7e8bb6ffe812f7192d0aa9ba572ab SHA512 e2d66c52e1ba17e53ab0c61b29d8decb72296c3e21b73d0e35e60c6c6d529fa06b53d291cc8343892ba5d3266b8bc8719fccb05547ced53dcb4c8eb05b096a3e WHIRLPOOL fed8021464d8f6a039b4fccbc530db00ac80b3db03c146f584361f515bc1a8b8786071e8049283982aff8604ce6168d0d882858f8e984133fe53e72bce24f5dd
|
|
|
@ -1,25 +0,0 @@
|
||||||
# Copyright 1999-2015 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="5"
|
|
||||||
|
|
||||||
EGIT_REPO_URI="https://gitlab.com/gitlab-org/gitlab-workhorse.git"
|
|
||||||
EGIT_COMMIT="${PV}"
|
|
||||||
|
|
||||||
inherit eutils git-2 user
|
|
||||||
|
|
||||||
DESCRIPTION="Handles slow HTTP requests for GitLab"
|
|
||||||
HOMEPAGE="https://about.gitlab.com/gitlab-ci/"
|
|
||||||
LICENSE="MIT"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~amd64 ~x86 ~arm"
|
|
||||||
|
|
||||||
DEPEND=">=dev-lang/go-1.5.1"
|
|
||||||
RDEPEND="${DEPEND}"
|
|
||||||
|
|
||||||
src_install()
|
|
||||||
{
|
|
||||||
into "/usr"
|
|
||||||
dobin "gitlab-workhorse"
|
|
||||||
}
|
|
Loading…
Reference in New Issue