www-apps/gitlab-ce:

added ebuild for gitlab-ce-8.11.2

Package-Manager: portage-2.2.28
This commit is contained in:
Manuel Friedli 2016-08-29 10:04:52 +02:00
parent a168d7f6ed
commit b8db87012e
3 changed files with 389 additions and 1 deletions

View file

@ -1,3 +1,8 @@
*gitlab-ce-8.11.2 (29 Aug 2016)
29 Aug 2016; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-8.11.2.ebuild:
www-apps/gitlab-ce: added ebuild for gitlab-ce-8.11.2
22 Aug 2016; Manuel Friedli <manuel@fritteli.ch> gitlab-ce-9999.ebuild:
www-apps/gitlab-ce: updated ebuild for gitlab-9999 (git master)

View file

@ -12,9 +12,11 @@ AUX gitlab.conf 27 SHA256 cd9be088bbb67a5400407fc6f63c061eb224f16748b7d0812ff2c1
DIST gitlab-ce-8.10.6.tar.gz 21039451 SHA256 8c7313ce49dfec816ba74187f920960229f3740d2a433582d48d8f03ac0ffd71 SHA512 aed0a8760eec42ebe059b271134ccad644092a2ce0a7f51a1f338428edbe045d636bf115450fd55ecce500445a94bccece6a7a4ec32f6cc0fbde8f5c3d879dcd WHIRLPOOL 69b3c694d27020edeeacd8da6f2826cbf7c704cd4b11387ac3baf07ec07b37b8374fc73256d39b132f51f49e8038dce16db8eb266dd807acd126a0de1584e244
DIST gitlab-ce-8.11.0.tar.gz 25292875 SHA256 581f228ea5caaa872d180b5864929070b18d16f565bf265a237f85f57fbe04c7 SHA512 41f9a192118ef7a044ed587e45ef6aa7fdd90bc002dd893a201cfcc2b367c6eb1137ea7f4969ac4caec284e68a92b1b1af46218764ea1f9b0ff18257b4dec925 WHIRLPOOL 4b79dab88def24af0c3f71222e14cfc7314132185c14993c8085b1d00ea61250496ca9e2c97b9e8d0d3303440184f500caf7ea16524ab2c1330c83d9766ecd40
DIST gitlab-ce-8.11.0_rc1.tar.gz 21523791 SHA256 1c3217bb1253359335025e6b5222cd1a8a274d108c02b896553af6b79ad40f9c SHA512 7d82a98f9505c6e9afc275ae6ba52b9a03752baca22f2890ba4ac9507ec331962223257602652657fcabfccef891b50dcb3dbbf30dc57080246f941f33d19dc3 WHIRLPOOL bbde9b27f3cf6b7dab1158927e22ded2f12e2d2568334ef3e140a879ff668d55bb09deed1617e2accbaf4909a68b1983ce56798019f5a0e2ce277c4500d24e76
DIST gitlab-ce-8.11.2.tar.gz 25627225 SHA256 a807f06cb80ac3becae2f89702988203e2843cdd929f5e21ba073babe6987731 SHA512 7bdbf045c36a65528b960e466ab8b8bcc930aacb1201ce332a0a9329808960d0fede27c6e155a26b0eb64a1ec0c2c75901cdca6051df7f0f31d421e970004f16 WHIRLPOOL 4cad8c23cfbdb3620a758b6e7478bf044a23d9aeb748aae3ff7145e25e2b4d7bfc016d8ad43b029b563e99e5aa24b35dcc8178775f7e3c8b0586c65c321de166
EBUILD gitlab-ce-8.10.6.ebuild 11710 SHA256 1659a2e43491488fa6fbbee1699cc4138e8938f694e73310e5faf45fbd9f2578 SHA512 70304f8fe862988d4092dd37c5a66fdfec56c9cb2d62a78f2cdf365a0c629606c6fb9081dbdc7e68530d43894d1cb645d168db8f3f0c8a9999873afd9032ec52 WHIRLPOOL dbf26294a9d6eb4258a67c64844370f1423fa59210b306bc66ea53a902cbc564b1cd084b765759e93d7970df30417e6482dfbbf271dda8d387ef006837123ac3
EBUILD gitlab-ce-8.11.0.ebuild 11703 SHA256 f95aa4a60c85da0155df6b989e343296eba23a6c2f12055c5f94bee53f5d9bc0 SHA512 6d1c7c3e3139d456a7b22431b326401a9b56e435000a02a572bfdbb52c5495e098b0406ab9b8051a2a901878e3a3a2c4332af9a0bf50ff1a36051f9436c1ddbe WHIRLPOOL bd92de9d5fda4a4b1802e814a55ea1e1a9848a9e085b9ad88ba108771dc68953156c8cecde64ef2250eba8f2b9568f73969460aa61c4901957d9b7771558ed9c
EBUILD gitlab-ce-8.11.0_rc1.ebuild 11654 SHA256 a73c20f2671fa997bab4b715c7cd2d40f74e1900a96d5805c8a16139fd367736 SHA512 a8af8ffb14f2f190885597f1afa9cd3d2460c47933d45c49f60cffc5f57631b63b04b2a162ed9d520a64146f6d8701699640b9718475d6adbdf61399efd00cfa WHIRLPOOL 7eb709c573f046f519410d7ccfd1e5f2f662e253355243bdc1bf35cc9021f554fd4b0da07beb9826247a70a345d411ef4e6e2f12b3098227da4847d356268495
EBUILD gitlab-ce-8.11.2.ebuild 11712 SHA256 02dd8184aa55060d9b36fefef46d2506f2516034fdff03837205ca152706f13f SHA512 cb14a84ba0e34f795a06f8947e222fb2fa1ee9a79d3d81bc527498e7ccbbb06ec5e26c56d39e0da30148e918397daaaca4337e732e8791994ed7aaf731cae185 WHIRLPOOL 63309d30e1e41db231f074fadef91fda5fc6d7dc0fa85339b64f4a6522d598c2b67b593f769e4ce70d2343607f6f42eee60614bf0556e2a4848a142c8d326fff
EBUILD gitlab-ce-9999.ebuild 11644 SHA256 049dcd6ae1eedc7816fc0e1052b868ee3099e902316c751f395d5f1be5139d2d SHA512 f0c664af009419c6ef2f6bca661c5f9656f258ecbcf980d9b02a1920bc1049ac55409b2ff6c451b0eb7129f943b4263efba81b254e42d815f7089af057b01fc5 WHIRLPOOL 7e66b8d3e512709d8ec6ce59d9d87ef3664a12901fc5de478e204e3e7bebd11b3b26c9c996679eeecae10667e9a885e815dcadf49a41baeb0094148cec779f26
MISC ChangeLog 5353 SHA256 ec609588575a93774d5ce3f75653fbc90a29db598eff012de58d18dc3d1c38f9 SHA512 0a91171c659a410e979ce854170fdef2b74c6c4e28a6eb7e1df04303e2741ded2a21c0b272570a0010039f6288e49c690b119ac5b72efb9fd51e23cd98d4cfbe WHIRLPOOL 6dc13ae5519184c02136742244661f3061edd8721b5f5f9fd9f1dfbf8750d964624559a153b367bdd5a01a984ff4d08f859d0820682b38d9c68b289220574166
MISC ChangeLog 5521 SHA256 043264749bc30babcc2deef35d26188d3710a951120395502db4e07983915209 SHA512 8d1128daf069dc5ad3914f894568e043a8e66f3535d7d5200462926872685a2017da138bb11040c61c72699d3f0f0460f69aa219c71033c854e4bbf9308ac552 WHIRLPOOL 28fa2bbc7b2a79485909b5bd0649e71bcda72d0bc6aff0e1dcc437af289b3a2311820e5de5236ecd210bf4029c0ee4c150954ae92999684e706b38401e22e0c0
MISC metadata.xml 545 SHA256 1b7fc44d811e1ab7638fe4a40253f49d5f1071872d3020c22c4f67662750cb2f SHA512 86f47d297892bccfefa087d93936296f5647993a9ec8e3f47907a6859cbf385e5bc6f00502d7836c9e8d9efef2b6725bf145b0150924c2082b2bd164469ef6ea WHIRLPOOL 6bfb8a55684d68c8bfa6e025a0be965f7b815394ee0896dd2a13cfb524e3cf3f3149acc9072897e30a1842060389576aac07ea8beb4a8b0bfc3e8eab3723f2a1

View file

@ -0,0 +1,381 @@
# 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"
inherit eutils ruby-ng user systemd
MY_PV="v${PV/_/-}"
MY_GIT_COMMIT="e618ce28a0862c4bda9d0db4ba843ca79c15d31b"
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.4.0
>=dev-vcs/git-2.7.4
~dev-vcs/gitlab-workhorse-0.7.11
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=(
"${PN}-8.7.5-fix-sendmail-config.patch"
"${PN}-8.11.0-fix-redis-config-path.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}"
# 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"
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.10.6-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
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}"
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
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
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
}
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 $@"
}