www-apps/gitlab-ce:

added ebuild for gitlab-ce-8.13.5 and updated the bleeding-edge ones

Package-Manager: portage-2.3.0
This commit is contained in:
Manuel Friedli 2016-11-11 10:19:51 +01:00
parent 032de7a479
commit 4907e88c0e
5 changed files with 424 additions and 17 deletions

View File

@ -1,3 +1,12 @@
*gitlab-ce-8.13.5 (11 Nov 2016)
*gitlab-ce-8.14.0_rc1 (11 Nov 2016)
11 Nov 2016; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-8.13.5.ebuild,
+gitlab-ce-8.14.0_rc1.ebuild, -gitlab-ce-8.12.0_rc6.ebuild,
gitlab-ce-9999.ebuild:
www-apps/gitlab-ce: added ebuild for gitlab-ce-8.13.5 and updated the
bleeding-edge ones
04 Nov 2016; Manuel Friedli <manuel@fritteli.ch>
files/gitlab-8.13.3-sidekiq.init, files/gitlab-8.13.3-unicorn.init:
www-apps/gitlab-ce: fixed init script for gitlab-ce-8.13.3

View File

@ -15,14 +15,16 @@ AUX gitlab-unicorn.init 3127 SHA256 de2f5861bec58eaac284e74baabe25288a520bc4f7da
AUX gitlab-unicorn.service 773 SHA256 010c9e223a30400d9155b39499eb0d7efad23b66baab9fcd9e365c689086b9bd SHA512 0bf9630aa91ed8f590a7bfa42d09b7ba33f6342b43b3d191c792c11157f8926c2a2ac2390eebd8179637e29b5bf68233d4699d62463497a0fd45b9bdbdd9167b WHIRLPOOL fbc709a5550dcc548a35c22c812dafe52ee507f5678b57c22c709ee89a399ae9109e2f56b7a13135d4140f1e024ebc4effe4aa4de13e0f36691da2a0737d9792
AUX gitlab-workhorse.service 930 SHA256 09348a52fec333b4b19828752e0484400c1efa9dfb644723fcf8e80537e294b6 SHA512 6332024fe0049287899cf482b6e4439e9dd90da14e489d08aa8e5e79cb7872efcc517d99b69fa23b011b382acb1e5926496a78f08af5d2d64daa515b869a0c6a WHIRLPOOL 3749c6719b2a35c7de29763cd616e1e9cc30a85aa1630ffc46440334459b5922503d52629556c125a6dd6574bdc5f23f1b2a7f2a85e2270a415b22246e0b6bae
AUX gitlab.conf 27 SHA256 cd9be088bbb67a5400407fc6f63c061eb224f16748b7d0812ff2c101f43ca263 SHA512 909c49fee6d050c1e94b2559ff2a9d54c5c346492be0e2920b50d56d69eaddbed67e3ac12e012d2a9601b5596640ebf33c8dc68fc588a03ca370d963294be37f WHIRLPOOL fa436e8d7d2643d450259d26b6e7b24dae69df47ed22e5ef2a567f37aa785fbf3b0eb1129ae7c8bf8986c29559fc3b744a34064375e5245dce2b10053cd715d9
DIST gitlab-ce-8.12.0_rc6.tar.gz 26786541 SHA256 41719da8de79093accae302c0cb7082e3e4248ed2413f6cda456051fead1f05c SHA512 e5c6ea64e3fc495c41dfe405325caf3fb34e58416d6cf284805f3e9666b085f4ef58b97e0de04ded4cf658421d8e4b716781f9ce58465410a7a715e72800feaf WHIRLPOOL b29ae1c37f71e4474077f18fe42f07bca213f7cf6faa2f942b615430aa68245a43a6223e430926c1b917debff548fd6d6b8c3f5c6e4e7ddd121878e2c390e9ba
DIST gitlab-ce-8.12.7.tar.gz 27110532 SHA256 003e497e23f730f4990bdb4b431109f2956b5bbf1d202a4003f5af65424157d4 SHA512 7ad53f5fe0c88cfcf5688de5d55489964a4b5e8dd763fbf7d832c199432b9532f0a75e6d803f1d03387c86b3ba0b47b1b75b97e783f7661662b656c7f9aea216 WHIRLPOOL 026d11a8adcde5312b46d626bebc6ed33bfea344042deb1fab0a40a52cfd7deccfe78ef2a544293456f08bf7acbd917233533898b54c3b9dcee9121520607ff2
DIST gitlab-ce-8.13.0.tar.gz 27763918 SHA256 0c4736ec84fe371334a0b7feca34eb6a2a371242c2ed0ba356b201de5c5e4a46 SHA512 e08ce15b6b8658d12c20cb7b522607c6c54880c1e2737f48e4a80f5d3fd8efb10f680b3a4a8c975dbc5237eea2b0f5fef185286d1ea3a7786573fa2bbca4149c WHIRLPOOL 91e4dc8732f3df17ffa81d5fa9ec6b0be8a04c956021ac95c859819643da426b5cafef2d1811cbc3507688179f2645839ae64eac6bb1941fc17076977bdff960
DIST gitlab-ce-8.13.3.tar.gz 27773077 SHA256 040e43517e10782a0f11b3bfc9c349cec9e48e5c10cf8d46c7e468beb7677101 SHA512 3031798e0c56a7a028a544943304ac84e5a427e40d9db40fe75aba215192f493ee4508d6d99f0a5814ac11a52f8db673d03012cae052b3841c3407c6b9fb83a8 WHIRLPOOL 2a78824adda0aa4006facf0c791b6f0be930eb574a38dda6d58db3cd9331238f50caae4e2e6acb7442a3488b3b9c91239a488063377d6b34befc5a3375c94c7d
EBUILD gitlab-ce-8.12.0_rc6.ebuild 11943 SHA256 62bcdc0b04fd791be8ecb48529d0c09705a6c843f245dce58f4780b3782f8195 SHA512 8f1cf916b29cc8d8b078ba19658ebd39585eb6d95ed106e8beb64ccdb17bfbe22fcf5af10baa13cc941d0d733cd0ea8f2ee4a9b960459e96c41744a35d6f2c74 WHIRLPOOL 48ce3279bf1f0c5658e726935c01020555f9d1705623ed8e12dd73670a32fa9b316a26aa7ed41786662e363e61f448ef523bb3ea0e65ed2d7653a3cf6ef67fe7
DIST gitlab-ce-8.13.5.tar.gz 27814361 SHA256 05749840b2cf9c39cc54dd88c58571195437811b133379506523df6757c26fec SHA512 9039b46adcff7e4d9ba8029d3b97cedf672179c54c9dc48a91693ed52b2a09b8cdf3dbdfd671e58c2d91f52741bcd4220d75dc896f62cfba798f4bb64931691e WHIRLPOOL 5c6e4db776d5f021aedef7e6a6e6315c7ba01da518b0571aa00037afcad5304ea75e3d130da77644e5ca824653a507c7224207581b440437505ceb0e0d34b628
DIST gitlab-ce-8.14.0_rc1.tar.gz 28550360 SHA256 f26f3b779ec9e0dff980e2b51632dc1e19deab7619f9df2655d30717a859b950 SHA512 27d24f6486325f2f34af85bca6fb02934133416fa92bfde4dde24053fe69a43bcca36e7102f9708b786f71277a51164ed29cf00a20f6481176ff2e5d23c17c9a WHIRLPOOL 3897f573cd4270cb9174ef3b42991649f227b83d9405e19424b93577dad38c97c3624076ced36d1c582b2650d9b5c711dfef53ba1e7fd9793577b0a94535288c
EBUILD gitlab-ce-8.12.7.ebuild 12068 SHA256 5acdce0ee5f3c6cf20a120758ad0c60ec70574d38cc2ee56037b3789d812edfd SHA512 7daf877280f4a8242fa83e1b70d5cabe99aa8bd547d0b4f9a4921c60c44228f508e39a8a4f751b987078c4d680aaff374a055c8ca5882b12f110b232c0006f4e WHIRLPOOL be51f8c53ac45db3c13f179d447665b536df4848a4c63cf5619d2620fbca7bd2701b861f636235d7e746ee7f560eb084e949288f11dceaaef826c138be321625
EBUILD gitlab-ce-8.13.0.ebuild 11859 SHA256 b90393b330f1048ea73536071793f1897d62e14773bc170600abb9ab9dc0fcc0 SHA512 31c32936dbe355dc9dae68bb5b726822a9f5222796dd11dc95b8907fbb2e316930a95568061557328a9d87b5b5eded5867a1a8d552cd9041f10054140d461426 WHIRLPOOL 2ce6cf02c5b27fe70f00795c16fa3d20f369ba820f8583c90808ac5d6c1d838425d447caaad67b76ebc64e6a3f1b6866ac2e890566dc71504056c20103b8ad97
EBUILD gitlab-ce-8.13.3.ebuild 11979 SHA256 b5a243613dbca1645c70b0b76191172d823a1775372172054c653706261dd1e7 SHA512 9121a34bb8f071395f26d0dbb87fb8bae50f00b8b606c1ced4d43d7e9908c7937fc5bd3d15992b34545206bcbf138e2ab1a593df709904b409ad9041b6a62f9a WHIRLPOOL d7c84308560a28e0222da75acad82cda660770acff43b180d40b35e6395f46adc66afb40ce3ba8c73dd76251e89f72b9dff51bc602c82154a1ea974f693104fa
EBUILD gitlab-ce-9999.ebuild 11913 SHA256 59e03c337984ef9363e1e20777c3057f958c20c97a8ae553fe463933570e22ac SHA512 f681ba98c41296b50a94301a8680951a8529020efd278747ccaa27c410cd92057ea03947d2d9918aa42802843189c6b93e4d19fe04e54f3b029b5a94c3676f79 WHIRLPOOL 5641e173c055027ab1c6800dd2c95297ac2d9007d8210f4f13d1644313086e01e0449c121ce9a9d9b5349a6a91c2db870b92449fb5609e00d7bc1f9cd2bd6a9c
MISC ChangeLog 9998 SHA256 945c6da3d2114565ec0983d14a37763ad7406a976fbbdc8bb17d3387111d62ee SHA512 71c0182af4c7851a75ae84e0ee43edd4fbba0ed65cd71621104f929f8c430100e473a0b70000a7290baa85780e3adba2e5e238f11ef6ff2fe1b87f685ce8c4fb WHIRLPOOL 53ea463bc97680f3950b93ac53c61f2bf3c3c1196e9f22bfb4cf05f315abe2867c20b7e50753cafae6da801ee472f9c80e8435efecab871987d5ae93836163af
EBUILD gitlab-ce-8.13.5.ebuild 11979 SHA256 7b16a160712995d17004adbdfed92974f31e83bdbad745f0999e403c7db50090 SHA512 9bad09441979c9ef7bc764cddf3daf02b85b657b21b0b409dcd2257fcbae9691c3afef605ebe3f60eb11bdc61abb0ff6b22b344d41ef549dea7795576deba987 WHIRLPOOL 960d55ed74694e31dedd28307a45cfe6808fd94eb4e79c667d670f84d00a9f6bc72d702e1a59d9325087752e1a2f7ccbfcb290e573e31da0384ed3fa2ae91bae
EBUILD gitlab-ce-8.14.0_rc1.ebuild 11956 SHA256 d925166fafd33c210cea347cbda70581b2ae1b44c9412670056a12678fe091a5 SHA512 add34a2ccb55d0cdea434236d2ed10b3dc2ec2879216dfc2ab611a1ba6bc172d7fcd1c6a2a47b1ac6d9318e2006c2ab6879e41f64e075ff8167c1e268d248b4a WHIRLPOOL 18866b9e74e0915cf12f38f9ac32d4a49e52951aa932e469cbe735ab1dd2d704910a335d823ccf40e312538c59e07bc2d21ad7c91b42bd51b768e1a70111dce6
EBUILD gitlab-ce-9999.ebuild 11913 SHA256 9f3f58ebf1fa7fa7c6b00374e83dda8476116057ee8c6a3ecb5779f0bc7e5254 SHA512 5f2a68f540e26129d9d57a5a72ee924503bc8f8cc89539545aa0ebedf70e42e6104be879eff8cfa65fcde151dad0b4e78523210aee0f9f26549e6279dc76246e WHIRLPOOL 9810dc5e8a1f87601448fae42c8f136e2a9d1ad892357c15590bf53f26b70d3022b383da7b801a51a4ad88ec1f7033f072d294bcc884f614f695e294cfa40e2b
MISC ChangeLog 10326 SHA256 da12df11f2931226c61e3ee21cbce3a321c8f67f559cdf5ebedf9d5c932261fd SHA512 0abc2fc358e7ea8f342b55ecd9344216bc670387126f5fca4fe2dee37626a0235b615a9441d6a6586339339f6b74e7db9fd56f8554e980c925506a3aa2552e76 WHIRLPOOL bd45f399ddd9eaa633b871c67cf3ad389c6b8b6c7f3969b8673b58591f620d7a6922a1863bbf12388bd8b976c1ab45d1bdb31768077a644c33e8b64c7a390cc5
MISC metadata.xml 559 SHA256 6c3f48d3ef57c97bf27790f33ee04bd8de8b01597caa8a2a7a473d6d0a3c5759 SHA512 5aa340b5429795d84cd106ee673fd55a42fd4b0d3299d6b95c6a3e3d50812a9620820a4de5c57d5048af0c3ecec7f575d5856d2f7fadc210aadcbdd4dd040fe1 WHIRLPOOL f3d7b8c0522e09f5156e6bb446bb74e4c75f5da4495ca2ece1eb78afce59307abe01bf3c5dd5344278fcac9e334300d912031c806f51b981591c01bc3588c6f3

View File

@ -0,0 +1,391 @@
# 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="09cedb5f68b5cdb1b2e2a08ccf4505a847e02155"
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.6
>=dev-vcs/git-2.7.4
~dev-vcs/gitlab-workhorse-0.8.5
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-${PN}-8.12.7-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_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}"
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.13.0-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-8.13.3-sidekiq.init
use unicorn && rcscript=gitlab-8.13.3-unicorn.init
cp "${FILESDIR}/${rcscript}" "${T}" || die
sed -i \
-e "s|@USER@|${MY_USER}|" \
-e "s|@GITLAB_BASE@|${dest}|" \
-e "s|@LOGS_DIR@|${logs}|" \
"${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
su -l ${MY_USER} -c "git config --global repack.writeBitmaps true"
# 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
if ! use systemd ; then
elog "You may also run"
elog " /etc/init.d/gitlab check"
elog " for convenience."
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 $@"
}

View File

@ -16,7 +16,7 @@ USE_RUBY="ruby21 ruby23"
inherit eutils ruby-ng user systemd
MY_PV="v${PV/_/-}"
MY_GIT_COMMIT="bcd02e0d75d7a934ee18d11643c1eaca434cf17b"
MY_GIT_COMMIT="f8ca16802ad446c48ed26ce75745035f13fa3e03"
DESCRIPTION="GitLab is a free project and repository management application"
HOMEPAGE="https://about.gitlab.com/"
@ -54,9 +54,9 @@ CDEPEND="
virtual/pkgconfig"
COMMON_DEPEND="
${GEMS_DEPEND}
~dev-vcs/gitlab-shell-3.5.0
~dev-vcs/gitlab-shell-4.0.0
>=dev-vcs/git-2.7.4
~dev-vcs/gitlab-workhorse-0.8.2
~dev-vcs/gitlab-workhorse-1.0.0
kerberos? ( !app-crypt/heimdal )
rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/24 )"
DEPEND="
@ -80,6 +80,9 @@ ruby_add_bdepend "
RUBY_PATCHES=(
"01-${PN}-8.7.5-fix-sendmail-config.patch"
"02-${PN}-8.11.0-fix-redis-config-path.patch"
"03-${PN}-8.12.7-database.yml.patch"
"04-${PN}-8.12.7-fix-check-task.patch"
"05-${PN}-8.12.7-replace-sys-filesystem.patch"
)
MY_NAME="gitlab"
@ -90,10 +93,6 @@ 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"
@ -210,21 +209,20 @@ all_ruby_install() {
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_newunit "${FILESDIR}/gitlab-8.13.0-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
local rcscript=gitlab-8.13.3-sidekiq.init
use unicorn && rcscript=gitlab-8.13.3-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}"
@ -303,6 +301,8 @@ pkg_config() {
|| die "failed to setup git name and email"
fi
su -l ${MY_USER} -c "git config --global repack.writeBitmaps true"
# determine whether this is an update or a fresh install. we do this by
# checking whether the ${DEST_DIR}/.git directory exists or not
#
@ -368,6 +368,11 @@ pkg_config() {
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
if ! use systemd ; then
elog "You may also run"
elog " /etc/init.d/gitlab check"
elog " for convenience."
fi
}
ryaml() {

View File

@ -52,9 +52,9 @@ CDEPEND="
virtual/pkgconfig"
COMMON_DEPEND="
${GEMS_DEPEND}
>=dev-vcs/gitlab-shell-3.6.6
>=dev-vcs/gitlab-shell-4.0.0
>=dev-vcs/git-2.7.4
>=dev-vcs/gitlab-workhorse-0.8.5
>=dev-vcs/gitlab-workhorse-1.0.0
kerberos? ( !app-crypt/heimdal )
rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/24 )"
DEPEND="