Merge branch '91-gitlab-9-0-requires-ruby-2-3' into 'master'

Resolve "GitLab 9.0 requires Ruby 2.3"

Closes #91

See merge request !160
This commit is contained in:
Manuel Friedli 2017-03-30 16:14:52 +02:00
commit d702044338
5 changed files with 21 additions and 431 deletions

View file

@ -1,3 +1,14 @@
30 Mar 2017; Manuel Friedli <manuel@fritteli.ch> gitlab-ce-9999.ebuild:
www-apps/gitlab-ce: brought the ebuild for the GIT version (9999) u pto speed
in terms of dependencies.
*gitlab-ce-9.0.1-r1 (30 Mar 2017)
30 Mar 2017; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-9.0.1-r1.ebuild,
-gitlab-ce-9.0.0.ebuild, -gitlab-ce-9.0.1.ebuild, gitlab-ce-9999.ebuild:
www-apps/gitlab-ce: updated dependency on Ruby to ruby-2.3 for Gitlab CE >=9;
removed ebuild for version 9.0.0, as version 9.0.1 is out.
*gitlab-ce-9.0.1 (29 Mar 2017)
29 Mar 2017; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-9.0.1.ebuild,

View file

@ -18,15 +18,13 @@ AUX gitlab.conf 27 SHA256 cd9be088bbb67a5400407fc6f63c061eb224f16748b7d0812ff2c1
DIST gitlab-ce-8.15.8.tar.gz 20035995 SHA256 9fafd6478a6d165ab6acd6f89f169fe72d46df547efe1bf3ac8d3a5bc4ffec11 SHA512 db287ea59d94eacd3c1219f458a403239f7aa39bea0d5e82fac80afc7216b96ac394740ab717c3ed26068617e1234105144820e41b0825511e1adc29e8891bfb WHIRLPOOL b03faf4b30b5c82535c0e148edec7fb5ff26405cfa8587b4bd287e834bb5f3eb6ddabd0b5f1472672b4108bdcb6066d63eb1a117e35fedf2c94d63348186afd6
DIST gitlab-ce-8.16.8.tar.gz 20907499 SHA256 b6ca6aebb5facb7b0bf792ac36fa6643098ddcbfd5364bf966311b48a2a0e68e SHA512 a5b77e39133078bc98a5c2d0b463e31c99eaaa44c28c70921546a8dfd45e24ff64bc310f8d067c40b609c3b19d13761afbc6068866e00297cb14b0e343b1a00c WHIRLPOOL 150c5b396703007e3b91f73407f5558045dcf4be74c2a12850e65bb7b5280582a8907312f5c09febb17649f98dbe40dd18968e69ef66d6026d3f69b79e6515c0
DIST gitlab-ce-8.17.4.tar.gz 22825573 SHA256 daa0d5d75295a896f7aa230bd965e12e8525a52c96ec0456ee405d083180e091 SHA512 4d9244c2575e8c4e26515ef55e478b459b24f3d53426a8d2e7cd253a879c9ae2a770e92e0e4a74cc88242b5b3ec81f6081c789426553ee9c8ff161abd138fb45 WHIRLPOOL a3131dc319b4aaa98c81c2c5104672363f16fb393ee0f21e8be670c9df6788c383f5fba8459352a37b49467f42307a1be291eff5b9d550390df04d9004514986
DIST gitlab-ce-9.0.0.tar.gz 26260333 SHA256 73012a8d31b2d92a49f0957c78525069e11d5d7bf19ca67bcbabd44b37c8c36a SHA512 b8a48bf538691d0bb1b636f4be6b71010583b4784093ec5f5b3196bebeefd9e7fcfc05cfd48523eb2139ff9e0bd458e20e8174d8c8892cb510d55c2fb154ee32 WHIRLPOOL 5d10e6fed7a9de5db7513afaf29940cadf41a37397249a78b2f3dc0aadde25f73e9f4eb3d18f913c8ad13cbdfecec811cf2246c2ef377017dfe3f021b09a2125
DIST gitlab-ce-9.0.0_rc4.tar.gz 26270878 SHA256 f47ddcf6f4f0336228dd1ef03085c9ea6116157887e8216038d23b69cf7a4d89 SHA512 f4694ebf4ffe38e6c5495f3658eb8003d28b3ac5d67f4533ddc1932afca412a40ea786cd8d99e2891fdf9bacd7b198b29493b97d6d02455d4f4139d4e60a0d63 WHIRLPOOL 81f47820043445e9ff69ae0ad3bcd1e094ab1e3527eec279096ae16a767cec5451b2d94af4dd87cd2939eb2e64368a1a0e543ce40e0e9fd5a716eeef04741c54
DIST gitlab-ce-9.0.1.tar.gz 26350693 SHA256 94549d69650383347256b9f3f0c11f200e0e4f29118a54a99e137d895db083ed SHA512 b7eed360beab1459da5c56b911e527335f2ec7bf595649c8d0327255488d765971a612987d7b3d10f2b017bf93adfb52f739a20c6d3e251552d82f04ddcf1bea WHIRLPOOL e061946cf9831daa61809b14d71e907717e0840cc8263b5461813795871cd2bd479ddff0d3c4afeda06edfca9f819c333e0be1a0961a1dbf9c86c9d8e0315ee1
EBUILD gitlab-ce-8.15.8.ebuild 11982 SHA256 755bfd6fa532a308d3f458db1456f8de4f2c5f599ab76c18653aad9e038d0697 SHA512 9aa439da7dc61687f1cdce5ff693dd1c8c4edc54aaed288ad0368aa1b64d577a7f3752dee149c200c4d98b43a6347c77251cac9f6d3316b5a6d799a17c3ed583 WHIRLPOOL 02393bfd983341632663096e8b293e3611ac5328a58a50a1c7e800e348e866f37aff53ebe447507a84d5966e019265fde94a30716f43b50228437e04abcd932c
EBUILD gitlab-ce-8.16.8.ebuild 11982 SHA256 31537d4a6aeb9ff14ab14c9a27dca51a056e94ee75506ad855a1289f32468694 SHA512 01d536fcfb53a7b39943314a34eeeb9c5b5660604a2fb1a1c2dcd1d7e87d19ab0bbc5bc650feaa1db812047c3783a324d7c8a8bce7dd7381033c3d1ca2e64828 WHIRLPOOL 0f3402e30164ee6d5058c51554cc916d91d5975f438074e3193bf3bdb4e323bca4279c19f00cd7bacd01c2eb6cf13e41a0badabd958e9be58d319224f53403b0
EBUILD gitlab-ce-8.17.4.ebuild 12928 SHA256 f748d42058293ba4f593fbb36be34ecde332d896d04c610fd3b7e91288c18fbb SHA512 3c2736f9b7df066bb105faffef6ce2b6276fe60a686a7462c630a1b7c7c0296d94e33c7ea25a9f24aa814628f318e2430a3e5ca149783c86ef3fb1132dd01877 WHIRLPOOL cd629ba993df3eaef9c9ec1bf1649aa4cfea5f3787d2207a7016c092bff67175d79c6782d643d4c80b3b5971a98858feaa279a184abc4fd936c7e5c8b291dd28
EBUILD gitlab-ce-9.0.0.ebuild 13008 SHA256 3b390e22aa0eda10dafe4c37cc4ccb2ff7e9b4cbbeeba6a64df7255e3440daf6 SHA512 d9f659414d380af24f4fb871f3c50062056b2aebef8f8fae7203b49a9102e55acc6c4be0840575de0953317d3a4fe6b4a4603121072b59cb0459927236cd9434 WHIRLPOOL 667ac5e2ba8ac7406dbd30e84ae13370eb3b55855e0319073d9295b9d8fbaa5f1e4f47b8ed2603394d77744d797512c653894c55a55ae676b87938d122fcdb5a
EBUILD gitlab-ce-9.0.0_rc4.ebuild 12910 SHA256 8851160b4454845fb33ce0b9a9dd3e070bed07d3a0e5c5f753c77b0ef301ded0 SHA512 9d109a3ea8fa7a7bb33440b4b21bf988745c4eefb62b834ad88825f3ffa28881eceaf402ec09241b74d91e778258c1a18daae6c86254625af4f54bf6189b32f2 WHIRLPOOL 67aa480b4cf1209a3d7af3bffb1f7f774bf2c6d18bf40960478e13459813ebb9472adc5aec3b84252157b0c3e74f9e7f74cb0d57395983c02ba4c976ffae106f
EBUILD gitlab-ce-9.0.1.ebuild 13090 SHA256 7f5638f9433e5bd495df42a7c5923d174bb2350fecf7a9756ba9be465ed85ef0 SHA512 f4c56769141e7d2aabe5221fcf0514b1c736fb586c7361019bfa86070f6fb5b5988c9f33c86d8b91da90ffdafa9cf4457bf39324b459608872e04512bbc8412c WHIRLPOOL 018f79571615894b1d695dd04149c7953a34c7ffadaba638cba74dd74d8d23503992e763bb481f4580c91364f14621e2bceaf7341d928e9e806fa2b1c10ec122
EBUILD gitlab-ce-9999.ebuild 12949 SHA256 29d8125cbb7bd6d80623f54e1de2c18f7fde2301f5b94238853e2d717f920ad8 SHA512 c537716f9288e09c79508db89d21641424e36f491914aef8102734e8edd12a239f0b839d1ecfdaaf28b6bd19dd324479da3478db74611f97d875b6d5156cbac9 WHIRLPOOL 0a8403ad5f4284e5ec742eec5b6b83124f4a218adacee63cd413e3889934d1511f229d42502d50977cb2b9881f86c0e73e57c4a5421b119c5c44f56f9f8f3a92
MISC ChangeLog 17002 SHA256 1d8c3931dc2e130f7796c2f0542533f77509364cffd16c81b5c5ee904c2a982f SHA512 cc33cafc9fd792f4ed5710adfe70c7ad3b209b30f8c78fb1f5a4ddac5f1201e1bcd900ccb9c8ac8d18e4d55743f20075398fbbaacd87195273a6a630343d0c96 WHIRLPOOL 445f3ba9fc20fcebf416d8bacffd737131aa05219569f34af805fff615e7910f357ae4e0102811755bc2edc04af0674f3d16c33b876f319653c5605299394cc2
EBUILD gitlab-ce-9.0.1-r1.ebuild 13083 SHA256 4340c7e3edf6b4aa69693c88f64310dd69c6079c2188dfc6ba891f26c29a5409 SHA512 be832c77b4d60f04e4f328563d30877cec03aea84aaa41daa989c67c0db7ac0a3b91ca2339b07c91785b618b2d3f636566b0625c52134ef06f02c21486e2abdb WHIRLPOOL 30488fba1af1a5892ae06a56a9aa3d7adfa8d7a5afe3dac9f333f98ea4b8557fdbe145cf60ab2d88e6b3fc6477e08c80e1cd554a0888a21a7d5a9d89e1970721
EBUILD gitlab-ce-9999.ebuild 13025 SHA256 606c38870f5edcb11b2fc99e2b2a4bb045f677cd57c0985e09beabb4fa5591fe SHA512 f4a4c35bc4655908199a6ac9cc2b03c05353a2ca129c50c99fd7063ff5a4008766582ffa131e22cc068b430b01e86e90b0500a6e5721e54142a78f9fc0408e12 WHIRLPOOL db7ef4a9d86c046616c6b94c535851be341a1027765653e33ca3761ca0cc551f8179f1f2ced229b7af7908243ef7b3558c3fad6090458777df5581f9900eb5d5
MISC ChangeLog 17518 SHA256 8fc06998bba426547bd4027cc2217e24abd0d1eebd122b3928deaf356fc70a5b SHA512 bcdcc0dac06137d96e086d76b88c135aec477d08f47092cfff4fb8d85d95a562506ceb4a385dd5d697e1e743620f1eac8854b5df975a5bc5727a195e28d274a8 WHIRLPOOL 29c7d7d419c67bd7a3ad0f5c2b54685f8fd7d3ccf78a0928ed0a347ffa3ed358028721b81fccc8b009c00ac5b3aa8a6101520caba41fe9b88b8852ae1cafc59d
MISC metadata.xml 801 SHA256 3dc7486a12903f47f65968d524c93500ba30a4a09fa57e5a9dacf356509b44bb SHA512 e132754b72e64246531fa883400a0cf1a473ac5a6a49623db58ccf118a038b7cf37df03d9550f37b4a25f9ddbb1dcc5652ec9a4f2259d8e3ce202692c4025f41 WHIRLPOOL e9d961681fd790008eaf80fa07ce2c55a00a58f2e920d759793783ca8c8f508602a777e94c0cb65fe87c7dbef0cabdf26e4f4082584421097d939cbab20c4ac6

View file

@ -1,421 +0,0 @@
# Copyright 1999-2017 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="cf020e66dff606f6ea2d2dbaeb7bef43d446c536"
GITLAB_PAGES_VERSION="0.4.0"
GITLAB_SHELL_VERSION="5.0.0"
GITLAB_WORKHORSE_VERSION="1.4.1"
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 ~arm64"
IUSE="kerberos mysql +postgres +unicorn systemd pages 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-4.3.0
>=sys-apps/yarn-0.17.0
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-${GITLAB_SHELL_VERSION}
>=dev-vcs/git-2.8.4
~dev-vcs/gitlab-workhorse-${GITLAB_WORKHORSE_VERSION}
kerberos? ( !app-crypt/heimdal )
rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/24 )
pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} )"
DEPEND="
${CDEPEND}
${COMMON_DEPEND}"
RDEPEND="
${COMMON_DEPEND}
>=dev-db/redis-2.8
virtual/mta
systemd? ( sys-apps/systemd:0= )"
# required bundler >= 1.14.2
ruby_add_bdepend "
virtual/rubygems
>=dev-ruby/bundler-1.13.7"
#
# 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}-9.0.0-fix-redis-config-path.patch"
"03-${PN}-8.17.0-database.yml.patch"
"04-${PN}-8.12.7-fix-check-task.patch"
"05-${PN}-9.0.0-replace-sys-filesystem.patch"
"06-${PN}-8.17.0-fix-webpack-config.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
if use mysql ; then
ewarn "PLEASE also read this document about needed migrations on MySQL:"
ewarn "https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md"
ewarn "Failing to follow those instructions may make the config phase fail!"
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 "Installing npm modules ..."
exec_yarn install
einfo "Cleaning old precompiled assets ..."
exec_rake gitlab: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
einfo "Installing npm modules ..."
exec_yarn install
fi
einfo "Precompiling assests ..."
exec_rake gitlab:assets:compile
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} NODE_ENV=${RAILS_ENV}"
echo " ${command}"
su -l ${MY_USER} -c "
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8; export NODE_PATH=${DEST_DIR}/node_modules
cd ${DEST_DIR}
${command}" \
|| die "failed to run rake $@"
}
exec_yarn() {
local command="yarn $@ --${RAILS_ENV}"
echo " ${command}"
su -l ${MY_USER} -c "
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8; export NODE_PATH=${DEST_DIR}/node_modules
cd ${DEST_DIR}
${command}" \
|| die "failed to run yarn $@"
}

View file

@ -11,7 +11,7 @@ EAPI="5"
# difficult to maintain them via ebuilds.
#
USE_RUBY="ruby21 ruby23"
USE_RUBY="ruby23"
inherit eutils ruby-ng user systemd

View file

@ -11,7 +11,7 @@ EAPI="5"
# difficult to maintain them via ebuilds.
#
USE_RUBY="ruby21 ruby23"
USE_RUBY="ruby23"
inherit eutils git-r3 ruby-ng user systemd
@ -19,9 +19,10 @@ EGIT_REPO_URI="https://gitlab.com/gitlab-org/${PN}.git"
EGIT_BRANCH="master"
EGIT_CHECKOUT_DIR="${WORKDIR}/all"
GITALY_VERSION="0.3.0"
GITLAB_PAGES_VERSION="0.4.0"
GITLAB_SHELL_VERSION="5.0.0"
GITLAB_WORKHORSE_VERSION="1.4.1"
GITLAB_WORKHORSE_VERSION="1.4.2"
DESCRIPTION="GitLab is a free project and repository management application"
HOMEPAGE="https://about.gitlab.com/"
@ -31,7 +32,7 @@ RESTRICT="mirror"
LICENSE="MIT"
SLOT="0"
KEYWORDS=""
IUSE="kerberos mysql +postgres +unicorn systemd pages rugged_use_system_libraries"
IUSE="kerberos mysql +postgres +unicorn systemd pages -gitaly rugged_use_system_libraries"
## Gems dependencies:
# charlock_holmes dev-libs/icu
@ -63,7 +64,8 @@ COMMON_DEPEND="
>=dev-vcs/gitlab-workhorse-${GITLAB_WORKHORSE_VERSION}
kerberos? ( !app-crypt/heimdal )
rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/24 )
pages? ( >=www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} )"
pages? ( >=www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} )
gitaly? ( >=www-servers/gitaly-${GITALY_VERSION} )"
DEPEND="
${CDEPEND}
${COMMON_DEPEND}"