From ea9011e58bf38a11519f2e0fb6f29449d3f25d10 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 27 Sep 2014 00:29:04 +0200 Subject: [PATCH] added ebuild for gitlab-shell-2.0.1 --- dev-vcs/gitlab-shell/Manifest | 2 + .../gitlab-shell/gitlab-shell-2.0.1.ebuild | 121 ++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 dev-vcs/gitlab-shell/gitlab-shell-2.0.1.ebuild diff --git a/dev-vcs/gitlab-shell/Manifest b/dev-vcs/gitlab-shell/Manifest index d3472e7..8902502 100644 --- a/dev-vcs/gitlab-shell/Manifest +++ b/dev-vcs/gitlab-shell/Manifest @@ -6,8 +6,10 @@ DIST gitlab-shell-1.9.4.tar.gz 16544 SHA256 7fa5682d1da614ca1603608ad89a582fc460 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 +DIST gitlab-shell-2.0.1.tar.gz 19905 SHA256 5a10be90c02dfc05e32943c08c556fff3f1175af41e9fd09bade644e655da7f4 SHA512 381b71001526530d6fdba02abefbd812d9b1ad338bedc8599ce632bde20665a9c07df22c81634a505d8b6e71cf5b5824fa6f1219ac4789c05d3a99e52d972c24 WHIRLPOOL 5ba43a9b94e0e4822b6050ec493ad07bb93ad278b3fa204b792bddf186c22da4b1663fb58627f4ed9fa9d793e6f97ac0b45a6cacab9c56794283af1071c967ed 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 +EBUILD gitlab-shell-2.0.1.ebuild 3304 SHA256 35c085cd702149462fafe0bdfdb41ab244fe06c6caef3542aceb399d37f334bf SHA512 24725735f67323d5b6cd95f9a54981c20288acea05b07b1b195b62bf9add1b850fb787f4a9fb7749f7103cd932023d3180653dc812a02d6314ec1b674e751449 WHIRLPOOL 8adf08faa3892f2ab5ad03eadab584097f6869a720517fd925f34a05f042410411cb3132df42b1d82c3f5dba68fdb2f76b1f00611747d3f48074d9e69dc9c49f diff --git a/dev-vcs/gitlab-shell/gitlab-shell-2.0.1.ebuild b/dev-vcs/gitlab-shell/gitlab-shell-2.0.1.ebuild new file mode 100644 index 0000000..603b0c2 --- /dev/null +++ b/dev-vcs/gitlab-shell/gitlab-shell-2.0.1.ebuild @@ -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=( + "${PN}-2.0.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}) + + # 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}." +}