added ebuild for gitlab-shell-2.0.0

This commit is contained in:
Manuel Friedli 2014-09-23 12:45:32 +02:00
parent 12843a009c
commit 35fe8f505c
3 changed files with 172 additions and 0 deletions

View File

@ -1,10 +1,13 @@
AUX gitlab-shell-1.8.0-redis-db-option.patch 625 SHA256 e707b05a5f81b3769ca8125695617335a9a90eb6ad6b0fd48d99a92f70c235ee SHA512 d5fc946937cb6fcff313c2c620ce24b66c0b6226b298214a36915fa5023ae33f348698ad2505e7e441adc80137dc092dd689d066dac9abbe4261a448ad85f753 WHIRLPOOL fc6365a20089cdb923af210c1f8b825e0bdb7dd539ba272efa224c214237d61bac0d9d0730f8bc9436be16fa874752aba5938e380ab1466f2a3baafaf2bc52cc
AUX gitlab-shell-1.9.3-config-paths.patch 1310 SHA256 ed66ac5622ed7e1999e528182ef37bbf5fe979cc2bfdb7e764207dbf9f84833c SHA512 00b188d322f0baede62c494f24ae664ba17ae88a21d30631d14f6639f023aa1f1aa936ae8a81f3252cb2763170b26a1ab69b562e7c401d531b7613de8d174dde WHIRLPOOL e231a1df28f9f1e3295cdc5c0904036bf861fe885b30b0a5bf79b96f7e1d7b5ce34d5e880d00ad043ea518e9f43182ef89c28ef62d9ed72ca761534b13bd3340
AUX gitlab-shell-2.0.0-config-paths.patch 1356 SHA256 442a8e18b4d8e6092db0d39659cba5e41404e90f21070ed50b5460177f28f1b2 SHA512 0445cd42086b2d77825c487d604ddcb11f8fdf4eb8dcdfa1fe1b8e8c24d7b8f273834dbec0bfbb763a35a74605d558cc8d3feaa056eb02a113d18124a764551e WHIRLPOOL 0e3367b229ea4f13818fe2e485dc8da83ad695aec496881cb5eb918b183029b0013518ca64acba1568d93dc418dfaf083c2a86b9f2e3adf9fe15cad038011b30
DIST gitlab-shell-1.9.3.tar.gz 16186 SHA256 8484554f76aea4443a9de19253a784b0164fd76230e8e1caeb6bf84df1a6a11c SHA512 4d14e731c865528650b134e493ce617b24971a927931c648253f9c3614d72eb21533f63984cb7cfc38a0201e3dfec3c2f5f57d6bd29fe791689548eecd8e9c3b WHIRLPOOL d36a79b3fed631fce5b63808a34ced5210243928209b221c18421f4a4e5af85b3476f74c4b2cbb5379a1c44a29bf7904be704bdcc5180d9d62576e6b76da60da
DIST gitlab-shell-1.9.4.tar.gz 16544 SHA256 7fa5682d1da614ca1603608ad89a582fc46097069708fc8ba9115b198bf63739 SHA512 0fc9b8d4cd334615a795ac82985a24ddf3256c9c62d460072c489b51fe9bf8ee8e738c9facf92115c2296e5b49dfe566c54060ce8e85d54db6b54937bf8f295c WHIRLPOOL a794d5b962ba55e19145b33044161012f30e1114b6ad48110bbc055790e743f3e90dca5c54df23085126ec8bc3af89c7a392f36ee321acd5f43feb979a2c6f80
DIST gitlab-shell-1.9.6.tar.gz 16648 SHA256 db326870c6aca27d8c29c99494f9a04cdcd0bbd673a4c27f9207ab885b6ed728 SHA512 22872a6e5401b19adece07755fcc14a8c22463437e36892a040ffd17d9e12a094b03481f98a404d80e3c44e0131ba95e0abe3897adfeb8014ba1a76667e1104d WHIRLPOOL 4cdc88ca7319f3d89516a087120f28fdd1ca45ef574d6eea67ab638349ca830e47ab4c6b17f138b3d707e235cab22ee9e9cb64f1513f1f2ef17a29ed9e6d143f
DIST gitlab-shell-1.9.7.tar.gz 18833 SHA256 1e0c4f77dcd7de6a7d91f7889aaf8961ed2dc3be9d91801087a16bf5c1f987ed SHA512 b1382864af5e63d57b44d41f90c7e5daf9c91b7fc100584e1fcc1bbc6088e2c104099260c6eacf2a9d4c07e6832e9107f73f46567d3077404373a960c543841e WHIRLPOOL 026e8a2ba869eb805fbefbcf3c9294760b08e5cfd14a2d9052dfa7127b2ce7c0e32d5336bacfec89ef233ab7da12513fd2d85a3191f0c74eda530256fcf0be47
DIST gitlab-shell-2.0.0.tar.gz 19880 SHA256 da6caeca56889464055edf13e7617a4c4c85df1d0da66d3105babb962f755fe7 SHA512 87467b12b5e41f8265e9eb1ab361b80d1133887925a8555820902d7c0cc9e65ce5342de283b50c4104796be50db4fc9338cdbc2c5d340614dfd7c961c95a280d WHIRLPOOL 0a40fac81a7361f0ecc2aa67993b54c82777ff885b199cf5afa049d9169982a9f6cae042b912c80076a512a26def83eaf5ce2fd3149405f14597bab7fb0316de
EBUILD gitlab-shell-1.9.3.ebuild 3381 SHA256 c62f0c0d33d004fadbc8172254ca61a04b921cad4fb21228284502ce79dbf983 SHA512 de85888a48e18210c0b3b5ce6bd36c9473e5c0d592c8657fea9c56856661cc261a3542b6cdcc4277a52d810265c73098ec81045abf2e5d33970a3116125b7719 WHIRLPOOL acf3fdedb73b8ecf025cad85bfd1503b8de796d6bc4d5c37a2ac371c4cd94c777f868cf514f201909ea660de8f6fecc02d177254764ba25ac3b75d8e5804b332
EBUILD gitlab-shell-1.9.4.ebuild 3341 SHA256 6947af19aeb95a832fc2fc7a82b021afe5a4fb3897c37cde62929125ae31f471 SHA512 ad20f6df96a12aa5afa2a659f92889a39bdd7f8a9dee8df6362d90a41e982d7d49162adc44a2d20fbd9a739f2a11dfd440fd89a611bb580d423198f0baa53578 WHIRLPOOL eca0e2d014bcc81655cec619515ad4fc3efd83a9375042a75ae5a03b048c6ea5f56f4291d30a94de9ca6fc5bdef4910ffef87d063b09f10f50b084569c629695
EBUILD gitlab-shell-1.9.6.ebuild 3341 SHA256 6947af19aeb95a832fc2fc7a82b021afe5a4fb3897c37cde62929125ae31f471 SHA512 ad20f6df96a12aa5afa2a659f92889a39bdd7f8a9dee8df6362d90a41e982d7d49162adc44a2d20fbd9a739f2a11dfd440fd89a611bb580d423198f0baa53578 WHIRLPOOL eca0e2d014bcc81655cec619515ad4fc3efd83a9375042a75ae5a03b048c6ea5f56f4291d30a94de9ca6fc5bdef4910ffef87d063b09f10f50b084569c629695
EBUILD gitlab-shell-1.9.7.ebuild 3348 SHA256 e76c7155c1532a5d60545632b938af401a2199c52522068f3783898890b2d0cf SHA512 03785edd44e2728c2320d90028e4cccfe0b2156f62afb28a8ecc9d9211dcf1c606887a43708f8afc10b3c7265053871fae85fda84733ef8a68aff2d9a44cce14 WHIRLPOOL fdc5509d2c02a903e8cf4e45678f078904dba08e28bd5c4726e2c09df6b32e933ecef241826f1f2edc3929f8d373606589e5353e17cacbfb03d2aaf8584db708
EBUILD gitlab-shell-2.0.0.ebuild 3297 SHA256 668c0430dc5783852cfff4588ac1fef2fa049a5e58b233566d12b923e8778b2f SHA512 a40aebc6d437a9577e2e830f84a6666b49dd0bcce211ed4d1311dad6f98e47bb9816f6b1155a4439e0fe475484cedb483f02a788de4282a0563550b8ea30b8e0 WHIRLPOOL a57d9250c7fc89e331c55dfa589be972111b6963efd17cad35ef7a01477a5b2c5cfffdb3265f4f8affa4edbbd3fc61a7d003b72b5ab96b0e99f5aa3cfd0a9b8a

View File

@ -0,0 +1,48 @@
diff --git a/config.yml.example b/config.yml.example
index 94eb593..3d60f48 100644
--- a/config.yml.example
+++ b/config.yml.example
@@ -19,10 +19,10 @@ http_settings:
# Give the canonicalized absolute pathname,
# REPOS_PATH MUST NOT CONTAIN ANY SYMLINK!!!
# Check twice that none of the components is a symlink, including "/home".
-repos_path: "/home/git/repositories"
+repos_path: "/var/lib/git/repositories"
# File used as authorized_keys for gitlab user
-auth_file: "/home/git/.ssh/authorized_keys"
+auth_file: "/var/lib/git/.ssh/authorized_keys"
# Redis settings used for pushing commit notices to gitlab
redis:
@@ -36,7 +36,7 @@ redis:
# Log file.
# Default is gitlab-shell.log in the root directory.
-# log_file: "/home/git/gitlab-shell/gitlab-shell.log"
+# log_file: "/var/log/gitlab/gitlab-shell.log"
# Log level. INFO by default
log_level: INFO
diff --git a/lib/gitlab_config.rb b/lib/gitlab_config.rb
index c97743b..97f4658 100644
--- a/lib/gitlab_config.rb
+++ b/lib/gitlab_config.rb
@@ -8,7 +8,7 @@ class GitlabConfig
end
def home
- ENV['HOME']
+ "/var/lib/git"
end
def repos_path
@@ -36,7 +36,7 @@ class GitlabConfig
end
def log_file
- @config['log_file'] ||= File.join(ROOT_PATH, 'gitlab-shell.log')
+ @config['log_file'] ||= "/var/log/gitlab/gitlab-shell.log"
end
def log_level

View File

@ -0,0 +1,121 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="5"
USE_RUBY="ruby20 ruby21"
inherit eutils ruby-ng user
DESCRIPTION="SSH access and repository management for GitLab"
HOMEPAGE="https://github.com/gitlabhq/gitlab-shell"
SRC_URI="https://github.com/gitlabhq/gitlab-shell/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND=""
RDEPEND="
dev-vcs/git
dev-db/redis
virtual/ssh"
ruby_add_bdepend "
virtual/ruby-ssl"
MERGE_TYPE="binary"
RUBY_PATCHES=(
"${P}-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})
# 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}."
}