www-apps/gitlab-ce:

added ebuild for version 8.10.4

Package-Manager: portage-2.2.28
This commit is contained in:
Manuel Friedli 2016-08-05 11:58:38 +02:00
parent be2469eb62
commit ceadb0710c
3 changed files with 389 additions and 1 deletions

View file

@ -1,3 +1,8 @@
*gitlab-ce-8.10.4 (05 Aug 2016)
05 Aug 2016; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-8.10.4.ebuild:
www-apps/gitlab-ce: added ebuild for version 8.10.4
*gitlab-ce-8.10.3 (02 Aug 2016)
02 Aug 2016; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-8.10.3.ebuild:

View file

@ -10,11 +10,13 @@ AUX gitlab.conf 27 SHA256 cd9be088bbb67a5400407fc6f63c061eb224f16748b7d0812ff2c1
DIST gitlab-ce-8.10.1.tar.gz 21035550 SHA256 8fe9c994b87f4ef819b14c8149b07a594a8f624285e6f80f888a63978b3c9ef8 SHA512 00d762c65d24cdebe05b3a31e9577500f437c0c64711c121b3967a9ebf3f711dc94cf08e8cc3fe1a3919236acce019e149ce1c64dd8ad0f43d9f298b9d76a167 WHIRLPOOL c3bfe435b8018c0488e760d115c6a290a13f8eaebd900201a807a386a62a0aeace04e4e7daa24f500347676b5aab760efbcbb1daf252aaefd6a73033b382a4fb
DIST gitlab-ce-8.10.2.tar.gz 21038115 SHA256 71cba117f895beb96278b81ec09d60d46189f71024cb2e1db14628206d64c26e SHA512 d9fccb2530357835e647ecbbd04e825154cb9b780c4d67210b3cd5598418e377af90046c10a1b192e8b4ea99b77ad0b6ac734e237360c4c179338003ce24463f WHIRLPOOL bfe3eb27576a31d5abcc1bb60824ce06feb78c1c15b0a94a514707ba536db0d37be00db0ebc3a6c83b0533b0bfb80d01e9bcd851545703ea4ac398a12e6fc866
DIST gitlab-ce-8.10.3.tar.gz 21039284 SHA256 4d00eab29d24e03b36e61d74544cccda0eb3acccbe09efb91b9670d70116f74b SHA512 e66c5a5919352c78f8fbb983dc17d5ba5e39bed7e335b031d599eb827315c4253ee59d2955ba50df9c3923003595519ee4bfd4e67dfd0c6bd4d47c61ac576350 WHIRLPOOL 38cf4cdaf4c89529f345c5eb2723fbeb986012d5f3e8732d9d527c6497a1ddfb124806888759d9f256c57e13b1be843ef7d0a6f8725ab89bb4e5b45a9c080805
DIST gitlab-ce-8.10.4.tar.gz 21039911 SHA256 cce5d0cce05cacc260baeda3014bf192b931d897fb72588cc91c2eff15481db6 SHA512 d89aa1b91b7584b45c63aff6aea646b261415e15e95bcdbd3c3a9dd8ce127fa3a4fd22e15d9464d3b572bc2ba202f6ee518d1937515d8d69d435c5cb59835080 WHIRLPOOL 0929eb1703771c57292cbc5711091d84c22b4fe960cfaa5e8714f101622197bff65ee3f1d7a0619daa4a9acd2d1dc6ce3bf35153045a22c43623ed5b3413d661
DIST gitlab-ce-8.9.6.tar.gz 21555571 SHA256 1b357ed1157a2a20b647004f588b67d72416df805a385fa7b605905bafb26f55 SHA512 d4693cdc80fff44e2f2d2e640163337b153ee08fbd12cefd055c8a595e1487010f7c0db39a11056577d331d3a76cc7da9936139199aad324d9c324395f684f9a WHIRLPOOL 00474d385cd9b574bbef0847f80613253f4543c54b356ab654b0ca3e7233e056efbe995a9de3e418c68d482d4a2b9b0cf676941c7013755bd795bfe83c9766aa
EBUILD gitlab-ce-8.10.1.ebuild 11676 SHA256 18467061975ce0212ddb08cb12b4d2d9f2da6f7999e9d42dd249d96891326318 SHA512 ee1538902ef35fe4f771211eacd0c7fb81aaa81c4b18049111eead6a5ada19318763165245e3e6d05fd41490e0ee4d30ab6fcc946b35e31e1a3f41b200cc46c9 WHIRLPOOL cfad8b037071a70bedf8095cd29cd27d2c703dc9470f4ee943860716e01e7347e78cd9a6612c44fd749a8cb06d6979376493606ab941266ce732e285dc7e3edc
EBUILD gitlab-ce-8.10.2.ebuild 11677 SHA256 d131e1f22e6ab5d5dfbeca80128ce0838631c82f71cb7f11dbf58d3aec9c2ed6 SHA512 e2530f1f2f2b31ebd4a6adcfacb512d4579baaf69aa2adfb7fd8fd9408966d5454cebdf4441ebc016ff89fa2dbe61ec19239f6e39844e0d3b0a44ec0f73d3cf4 WHIRLPOOL 30d1aa4d499013205953c70210edf6962a4da78ce3c1d11c98d2b048eb57e2d45991a4a2dda34c5c5269dc077ae67cbee76e4859b1c0897b6377673a6f451fb4
EBUILD gitlab-ce-8.10.3.ebuild 11677 SHA256 1d2e22b1611203ad6d2fe3752a9cffceee7568a876c5b650cb52d12f089e4dbb SHA512 3784835943745d42c5f086b5183c2947c903fd67a19569a6fdd903a68f55fbc09fdd7d667e0fa0fca9871bd299587759f7bb133edba2135eb260e91f16ac6a59 WHIRLPOOL af68d6b67236e8bd683f070e97c4277997822ec9b8bcfa4ac0a4c54edfd470e5fff107d8a5ae2017b1f70f5a4f2c845f6bc40caf9387030540b823c380ff03f2
EBUILD gitlab-ce-8.10.4.ebuild 11677 SHA256 d6ed052547aebde8708b4624c3a522ea66e86afdde950d2ec8704659c3bf2ce2 SHA512 ca3348dc51e1214f13746ce7d681fd8202dd46f742bb30a040970e467c589be132375fdcf57b5780e61b9179a244075f4f5537e49442025caee6e46c2a073dba WHIRLPOOL 5a2bd77a585a32103d699e3f4d99eef6f3659dc316217a80b7b2937d0ed93365784299724156546df09ff6aa7ee01c962359a4c89a22fe8e94aef8027b6839a9
EBUILD gitlab-ce-8.9.6.ebuild 12341 SHA256 a46bb7c78639ee411a8c0994847f4f90a89133f2d85e7eb71f76f9f6756e5c25 SHA512 19712bb3ece7873e9dc2a5d471512a553108b95338bd370dab8dfac6695da34ee713d4d106c62de1472eab7e3e953471ad6274f7d646900e7ef2c7521460211b WHIRLPOOL 1cdff895e32079e2bd85863d46a3c6c0f39590e454f7c77d058f7403341ab39adf477005a9c6c417ec7ca527bffedf0ec1ec3b3f64cb242c3b2d3404c41b6e8f
EBUILD gitlab-ce-9999.ebuild 12344 SHA256 cd17ceba505495a7633f8f106d2adc1ee81b74d2b09f8a83cccb0010600f8005 SHA512 c961866f01e626855cddc928c14c8f4a8aa4285dd04e87d1bc310b02c7617dce73c93e5b670650a86c075c4adcdd6b4c3489feb4c204d0474a8e993f3e000440 WHIRLPOOL 11159c64d381f201fa33941bbe7f549ca368a16ebc7e1087b286a8a375e687073e1c586e02411e4a2b50ca74835bf1e81ca069eedefaee483ac3deb20f51fa05
MISC ChangeLog 4090 SHA256 106927f5f5c0ffaa2ab86ea0b2421e32d8f22d7a0912f2d69471656b375a85b8 SHA512 534b6f45bfe2a2612b0af6e8d614717386091c7b8306e1538959d39c85ee60d4f4abb3512f3bbe3baa4bb8cedb05692cd1f7002194202917e5b0d0e5d62d26b7 WHIRLPOOL abc2d05705c514ba0196dce14af15ff0e4338bc317083bf9e45a6b486cc913811c4dfe3f650d400777a3151313fc6c758c9a871eb7a435299e6b0d2327e4c453
MISC ChangeLog 4256 SHA256 a479147a06e20424997924d628c409da666e605f0780ecbafd4bbd5b49a4757c SHA512 41ea9e9582644e2240e678b59b89dabc18d5bec3da6c3c9fe5d72ed93809a4908a5f1f49592cc58dd7113d23d607927fb454f80fd70c4f3321586f787bd204e2 WHIRLPOOL 9e4c601967578e89dd3fe4d2eef58b688751c55a8fe7b843ea9c8d12d1bf3c0c6d11856c22809756955b5446a62cdd697b13594eba51bd37ad4cc4cd3ad58036
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="942d997cf3c596e0b1fc8ac0b750d40afffa57e4"
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.2.1
>=dev-vcs/git-2.7.4
~dev-vcs/gitlab-workhorse-0.7.8
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.9.1-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
# fix permissions
fowners -R ${MY_USER}:${MY_USER} ${dest} ${temp} ${logs}
## RC script ##
if use systemd ; then
ewarn "Beware: systemd support has not been tested, use at your own risk!"
systemd_dounit "${FILESDIR}/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
}
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 $@"
}