added ebuild for gitlabhq-7.4.3

This commit is contained in:
Manuel Friedli 2014-11-10 12:16:56 +01:00
parent bc35bf30bb
commit caf3fdfb19
2 changed files with 361 additions and 0 deletions

View file

@ -48,6 +48,7 @@ DIST gitlabhq-7.3.0.tar.gz 2719960 SHA256 799791397b86f447e81aebedab1b98ef516180
DIST gitlabhq-7.3.1.tar.gz 2720648 SHA256 6a0ca2764be820d2951268cbaca43e4d064d8b51bb6b0d4ad6409c66226ca86e SHA512 e2f5d131c1939ec51f27c4aaf092181ec749f6137b96e0e4128f2b1e61d3e1a249ee62df28350d9ace6744a313e7a8ed3b6ba12d49314b824caa30fb5341d27d WHIRLPOOL 9b56f5922a1b31c271ec99790a465a3142ee03b4ec4f113b41c58bde21972edc44f71661eeaf9f016182cc2e60e4f8cab45b39600123ff35f5fad0a1db928361
DIST gitlabhq-7.3.2.tar.gz 2720541 SHA256 31b97e1c4a2d30c40ca39e94e1f1adb087cb2c87633ee0f75f335d3463b093c8 SHA512 073ed1e4c83f6cb6d88e853fd1db9814ebd40202f375caf8db0a3acb476b444bbbebbc57ca9a246d024699d25306bc5bef4a01096e203bfa0b7dc0439ebd8afd WHIRLPOOL 9e9917eb56389b234cf664d4a228c33615f4abc0b9b7b70fe89fef125e426f068d3499bbe5b5a82f906b5345350039fbc05960e14e814ff048b161af654055c2
DIST gitlabhq-7.4.2.tar.gz 4189724 SHA256 b116c49b032e5cd3529698aed3174b6f02748c2778017712b44c9cb7cedec55f SHA512 c4e8d88d3f835e2b31b63c9ebb8ee4da75ca9149fa87e4ec9f51b64937ede7e5d526916c415ca4b327ef83f2b318066c3bea0c3486a091c39a20324cdc4ac14a WHIRLPOOL a6faa91ebb8cb591bfb921e1a9bc1f665cdcda2254303814d4e3f799e3b43cbd33fe98d53cfb07b44946025ff02064d36ca253e8bf84d1466116b576df190f11
DIST gitlabhq-7.4.3.tar.gz 4189957 SHA256 e03092298526bafb65336a14944570083f96e960f9bdabf8e4e52a403e42a5f8 SHA512 24228e31c7422215309838b1c8c9f24d8b2c77691b480365548ade36be53368bd9cc04e8065386e83b501f8f3f97f365634297a1af2c93c285cddad2f8150af8 WHIRLPOOL 785b6ba8c2c94456c005b7fbca265a762990e24c5164d742d8cb34a0f370c604aec23490ceb034007444ffe65223e163a58364aa01c1d617404a3278ac77f0d7
EBUILD gitlabhq-6.7.5.ebuild 10983 SHA256 79fe5e03f1f03625a27d5ef398bb4d40e991c71490eda27913529bcdebf03b5d SHA512 73d035742868747f4d1dbbdce0d2892e29bbea3fd2938a66d16c9c72e3ec6075c9faa855b8a46b7970a8879e9633a25b65d70f3cc9eb77a2656bcbcca64f6008 WHIRLPOOL b8a9531f544799a141b7c6ddfaea6cce5d2643832c38326ff13bb3ed37f009b0bb1aeeba3d1d2434d2e59b43747c380ea505fbebb1a082da94a4e2322f20f4bf
EBUILD gitlabhq-6.8.2.ebuild 10605 SHA256 5a7e869aee5481f5c610c81a130ea677de4977d4fc184839b3f7ce16152dacb4 SHA512 3f63b20e111e74d183e36acaa9499287801b18e53f4a1f0e0271f2d93625bf9b311e3a1634e2426965cefd7fe9d2a86114b71ba32f91abded11bd0234ebc87f8 WHIRLPOOL 3f77d6e351f6552932efbe40af389069bda3e44933a0ab426663574ff490665e7ae9a8cfc2726e378073816de7423e8c8269e3cee01b0a64299044a1f99d4811
EBUILD gitlabhq-6.9.2.ebuild 10626 SHA256 24d0e4410d93bce5bf9675a14b8618cc5590dc78b4b16a2a1b0b055b8d88fc6f SHA512 cb5b956a0b0699100704a66fff30c9d1706194b32f31208284b2622b81b3f612ceab17e9f6873cc97e0556f7eb009d0e9727595e72172b98b6fb91d483b3e5e4 WHIRLPOOL a7013e0dfc2ef18ad95eb060ebe301dc417e50420dad54f078625c699d0a4620ffc883ecb847030f7b2d4e590bfd2d901b72712f4a0af55bbf0ef6a78c139deb
@ -60,3 +61,4 @@ EBUILD gitlabhq-7.3.0.ebuild 10564 SHA256 b0477536e7f991f6fefa54f5b09e9ad9a7a64c
EBUILD gitlabhq-7.3.1.ebuild 10564 SHA256 b0477536e7f991f6fefa54f5b09e9ad9a7a64cb49bbc89d410065527b9f1f50e SHA512 9fc89405bbb008ebae5388324a4e9f4a088e81ad57655ec896d4e3625aa1b0ebf5aee1f31db84e8c57234023a4d277e29564566b5044e0ae7ec8c18a2b4fc9d3 WHIRLPOOL 5c7704d4ea5552da104a9929deaf27692819b9bdea507982a73355eb469e677109fc0bcc0c70a59cb1434d750ff2da0a26d8ceb9e08ffb2037ed1d1fdd9610e9
EBUILD gitlabhq-7.3.2.ebuild 10564 SHA256 d2e894525cd6e0363185ccd435ecb3c32032c2e6bb61daf8be6b370031e4c5ad SHA512 54325d333d62260aaa7631f128f0ad6fef9f3b88c0f49f8b9d61bcec4e83a33344f1a84dfc0a18f874be37be7477283f51a1f5da5ce08faa2f83e1e235fc28fc WHIRLPOOL 20ea44e9d6a205c9b936c3291c80aa4af2107b4aeaa3317326784c2d99b25237a73085ed54c82dcb53ad7326cc0fbaca8f97ff76802282b34526d4c0e6d4f022
EBUILD gitlabhq-7.4.2.ebuild 10586 SHA256 aee278ec37ac8a5fd8af179a2e26785ba5abd5bde1d71cab7ccb3171538eea17 SHA512 08530bd6b37510bf89b5428960f74b7dae34951daa768040928e7a99cb6b9cd0d8f6e73bfb948f80ca6898010e9d88fa6f3aece7ff40eca1e200a6ed420937da WHIRLPOOL 780a98a64f97e94e71c2b77e94d4f247ec86b26983c8fee371c94556c942d6e703959ca44fd102e8ffa8afb6c719bc975d838c25d6c3eb140c212a8484ccb6e2
EBUILD gitlabhq-7.4.3.ebuild 10586 SHA256 aee278ec37ac8a5fd8af179a2e26785ba5abd5bde1d71cab7ccb3171538eea17 SHA512 08530bd6b37510bf89b5428960f74b7dae34951daa768040928e7a99cb6b9cd0d8f6e73bfb948f80ca6898010e9d88fa6f3aece7ff40eca1e200a6ed420937da WHIRLPOOL 780a98a64f97e94e71c2b77e94d4f247ec86b26983c8fee371c94556c942d6e703959ca44fd102e8ffa8afb6c719bc975d838c25d6c3eb140c212a8484ccb6e2

View file

@ -0,0 +1,359 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
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="ruby20 ruby21"
PYTHON_DEPEND="2:2.7"
inherit eutils python ruby-ng user
DESCRIPTION="GitLab is a free project and repository management application"
HOMEPAGE="https://github.com/gitlabhq/gitlabhq"
SRC_URI="https://github.com/gitlabhq/gitlabhq/archive/v${PV}.tar.gz -> ${P}.tar.gz"
#RUBY_S="${PN}-7.4.0"
RESTRICT="mirror"
LICENSE="MIT"
SLOT="6"
KEYWORDS="~amd64 ~x86"
IUSE="mysql +postgres +unicorn"
## 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-base
# mysql virtual/mysql
#
GEMS_DEPEND="
dev-libs/icu
dev-libs/libxml2
dev-libs/libxslt
dev-util/cmake
dev-util/ragel
net-libs/nodejs
postgres? ( dev-db/postgresql-base )
mysql? ( virtual/mysql )
virtual/pkgconfig"
DEPEND="${GEMS_DEPEND}
>=dev-vcs/gitlab-shell-2.0.1
dev-vcs/git"
RDEPEND="${DEPEND}
dev-db/redis
virtual/mta"
ruby_add_bdepend "
virtual/rubygems
>=dev-ruby/bundler-1.0"
#
# fix-gemfile:
# Remove therubyracer that doesn't compile well on Gentoo (we're using
# nodejs instead that is faster and better). Also replace broken
# charlock_holmes version with fixed one.
#
# fix-project-name-regex:
# Allow project name to contain non-ASCII characters.
#
# fix-sendmail-config:
# Fix default settings to work with ssmtp that doesn't know '-t' argument.
#
RUBY_PATCHES=(
"${PN}-7.1.1-fix-gemfile.patch"
"${PN}-7.1.1-fix-project-name-regex.patch"
"${PN}-6.0.2-fix-sendmail-config.patch"
"${PN}-7.0.0-email-custom-reply_to.patch"
)
MY_NAME="gitlab"
MY_USER="git" # should be same as in gitlab-shell
DEST_DIR="/opt/${MY_NAME}-${SLOT}"
CONF_DIR="/etc/${MY_NAME}-${SLOT}"
LOGS_DIR="/var/log/${MY_NAME}"
TEMP_DIR="/var/tmp/${MY_NAME}"
# When updating ebuild to newer version, check list of the queues in
# https://gitlab.com/gitlab-org/gitlab-ce/blob/v${PV}/bin/background_jobs
SIDEKIQ_QUEUES="post_receive,mailer,system_hook,project_web_hook,gitlab_shell,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:).*|/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} ${temp}/repo_satellites
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; do
without+="$(use $flag || echo ' '$flag)"
done
local bundle_args="--deployment ${without:+--without ${without}}"
einfo "Running bundle install ${bundle_args} ..."
${RUBY} /usr/bin/bundle install ${bundle_args} || die "bundler failed"
# clean gems cache
rm -Rf vendor/bundle/ruby/*/cache
# fix permissions
fowners -R ${MY_USER}:${MY_USER} ${dest} ${temp} ${logs}
## RC script ##
local rcscript=gitlab-sidekiq.init
use unicorn && rcscript=gitlab-unicorn-6.init
cp "${FILESDIR}/${rcscript}" "${T}" || die
sed -i \
-e "s|@USER@|${MY_USER}|" \
-e "s|@SLOT@|${SLOT}|" \
-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}-${SLOT}"
}
pkg_postinst() {
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 initlize environment:"
elog " emerge --config \"=${CATEGORY}/${PF}\""
elog " Note: Do not forget to start Redis server first!"
elog
elog "If this is an update from previous version, it's HIGHLY recommended"
elog "to backup your database before running the config phase!"
elog
elog "If you're running GitLab behind an SSL proxy such as nginx or Apache and"
elog "you can't login after the upgrade, be sure to read the section about the"
elog "verification of the CSRF token in GitLab's trouble-shooting guide at"
elog "http://goo.gl/5XGRGv."
}
pkg_config() {
local shell_conf='/etc/gitlab-shell.yml'
einfo "Checking configuration files"
if [ ! -r "${CONF_DIR}/database.yml" ]; then
eerror "Copy ${CONF_DIR}/database.yml.* to"
eerror "${CONF_DIR}/database.yml and edit this file in order to configure your"
eerror "database settings for \"production\" environment."; die
fi
# check gitlab-shell configuration
if [ -r ${shell_conf} ]; then
local shell_repos_path="$(ryaml ${shell_conf} repos_path)"
local gitlab_repos_path="$(ryaml ${CONF_DIR}/gitlab.yml \
production gitlab_shell repos_path)"
if [ ! "${shell_repos_path}" -ef "${gitlab_repos_path}" ]; then
eerror "repos_path in ${CONF_DIR}/gitlab.yml and ${shell_conf}"
eerror "must points to the same location! Fix the repos_path location and"
eerror "run this again."; die
fi
else
ewarn "GitLab Shell checks skipped, could not find config file at"
ewarn "${shell_conf}. Make sure that you have gitlab-shell properly"
ewarn "installed and that repos_path is the same as in GitLab."
fi
local email_from="$(ryaml ${CONF_DIR}/gitlab.yml production gitlab email_from)"
local git_home="$(egethome ${MY_USER})"
# configure Git global settings
if [ ! -e "${git_home}/.gitconfig" ]; then
einfo "Setting git user"
su -l ${MY_USER} -c "
git config --global user.email '${email_from}';
git config --global user.name 'GitLab'" \
|| die "failed to setup git name and email"
fi
if [ ! -d "${DEST_DIR}/.git" ]; then
# create dummy git repo as workaround for
# https://github.com/bundler/bundler/issues/2039
einfo "Initializing dummy git repository to avoid false errors from bundler"
su -l ${MY_USER} -c "
cd ${DEST_DIR}
git init
git add README.md
git commit -m 'Dummy repository'" >/dev/null
fi
## Initialize app ##
local RAILS_ENV="production"
local RUBY=${RUBY:-/usr/bin/ruby}
local BUNDLE="${RUBY} /usr/bin/bundle"
local dbname="$(ryaml ${CONF_DIR}/database.yml production database)"
if [ -f "${DEST_DIR}/.secret" ]; then
local update=true
einfo "Migrating database ..."
exec_rake db:migrate
# https://github.com/gitlabhq/gitlabhq/issues/5311#issuecomment-31656496
einfo "Migrating iids ..."
exec_rake migrate_iids
einfo "Cleaning old precompiled assets ..."
exec_rake assets:clean
einfo "Cleaning cache ..."
exec_rake cache:clear
else
local update=false
einfo "Initializing database ..."
exec_rake gitlab:setup
fi
einfo "Precompiling assests ..."
exec_rake assets:precompile
if [ "${update}" = 'true' ]; then
ewarn
ewarn "This configuration script runs only common migration tasks."
ewarn "Please read guides on"
ewarn " https://github.com/gitlabhq/gitlabhq/blob/master/doc/update/"
ewarn "for any additional migration tasks specific to your previous GitLab"
ewarn "version."
fi
}
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 $@"
}