added ebuild for gitlab-ce-8.16.6

This commit is contained in:
Manuel Friedli 2017-02-23 15:45:26 +01:00
parent 284882c25b
commit b316ba9509
2 changed files with 393 additions and 0 deletions

View File

@ -16,11 +16,13 @@ DIST gitlab-ce-8.15.4.tar.gz 20029958 SHA256 5d9df84b82e8b453f61f822fce44afb9603
DIST gitlab-ce-8.15.7.tar.gz 20033447 SHA256 3989b21d5eae1ff2293f535b6645b6ba948c5cdc08eed853153d873e677aabc6 SHA512 c12de7d5f6686cd73e25c81f3ac184bb60ad826d9ba52ca50bf137b1f85094f986a1fa8ef695d8f4f0f1e678b4a139691a3cb6132267f3b17a037a565a8e7193 WHIRLPOOL 9dad2c8aba85d522b22f7eaeb56984750ea2fb415f6e5b892b1002d31725def5415d55b27d0e69d041e8cccc44e7e6aec4d128bfc98225f6dde16558764c58ef
DIST gitlab-ce-8.16.4.tar.gz 20899790 SHA256 0ee69f010f2306a6b1d7fda377a0780951560880c974f62b8ab15935ddd93930 SHA512 a81ed04326262569a4d0112476624efafebf8fad8296fd6866881bb280abc5e9f7275bbe94d6d5e8c40491d88422368349a34066206fb60dcef3578f9ab0ccd1 WHIRLPOOL f5d3d84bb0c5fedddc195326603911abec19c8d0de95e26ccdb1db10df195288e3ecf1ad6aa04e1a778b6987418466508f4080888fcfa1847825916141cc87eb
DIST gitlab-ce-8.16.5.tar.gz 20900898 SHA256 74a73992d18d97b426ea36ca2c975f4d1d44d7e66602b2fa76a18b267e90bbe2 SHA512 cf77252542571104c74b9ad932812f9fc36dd31703ff653bf23933c7e2165cc9927482025d63ca1863af17634785c22be944a8ac17c27cc06924cf832ef0b591 WHIRLPOOL bb916c79a33158160754348ec8227c84303850a525781422a1fc718330cc34baad5efbb111165df0e0e14a6ee7f6c89c19c976708116b2fecb3e686f281330e9
DIST gitlab-ce-8.16.6.tar.gz 20901900 SHA256 5b88dd855afc44da2b8f059056321fc0dd4cb7c2a97811c6c3ec65c3b44e1d8d SHA512 b6fdf4e8df787ea5812c9c6baf29cf86fcc440be7f1c8fd31410ccc93459208999f25956d8561d3a789ff75c6e112e396db79cd0fa3d959dd8b1b382ccb5d7b4 WHIRLPOOL 17b2203a1d1b36f814df781aaee1faafcf336794fa7c1792868685cb6ab4e7e7eb1de916b34fb28ba72be38d760187de48b8ac2b36bf4b722bf799f60e6b1c96
DIST gitlab-ce-8.17.0_rc3.tar.gz 23031572 SHA256 13ac75ce0737e9e9f46fea59828a0a71f3ad9fc4436859bc68938d4719190ba9 SHA512 c5998f7aeefd65ea46ee6357f15bc6e60253742f6007252bf9a1543f29f8973951f8d0f8d60dba87b08dbf5256427e9bf28198274a9dadb92b30b7f5adc76cd1 WHIRLPOOL 86380fedcacbd18f13b12f4792b506421726c4226512471eeeda8d085abc89e6b43f54b0301e0cbdb1f3afe6dade84452690576435220c0afc559bcd5f341df3
EBUILD gitlab-ce-8.15.4.ebuild 11982 SHA256 db794f18bc0d023a8b6adf49b82c2e37fd38b7206b064a7700289c0cfa16961c SHA512 ca30780d28ffc0242ac5f6ccad178cc44464a81f2d44cb13e53ddf06700d0f39b9fee9b77e356735435079b34090049d50d9019af71e92d6d8faaf3767a39dc5 WHIRLPOOL 42ee8b8e5a2c6fba69ecdbf6e306a87f369fa193f721c73481edc744953bfd210cb4495bc603ba01566efb2b0869ec71284a1f1b1c34d1a124bd08546829ca37
EBUILD gitlab-ce-8.15.7.ebuild 11982 SHA256 fab225a8a8a9373898b5c604ce41ed65c4648c46131798315df833326b006fb7 SHA512 ea17dc9927336aed09ba21e0e1c9c4df2998f941a05ff30e9ef9951b5318bcdfb1d332fa8d285a27f26356a9fa9a5f72da45882ab8edbfa6046ec96764dae47f WHIRLPOOL d51629d3c67f8be2636a2e5cb4bb4d4a7b0402394f47aaa01fc182c29f1d3ee916a2d5bb8086bbe871f41294e348ec024d81a775ba9c30028d8b97d93d637620
EBUILD gitlab-ce-8.16.4.ebuild 11982 SHA256 91875777d0953bffddd31318d9c5d4666ba59bd3446804d063c1199c603bd5a6 SHA512 7112bf185f25d90a11ee2a6e9d197c1ce781b49c486cc1afaff002ad66dcec7c9b43c3b9b6c26c62d23bb7e8c0fdd4c527e53a99f9674bb4af1e404454960227 WHIRLPOOL 76bd66e8b7d4ff04f02354cb6cdf3fa0b92ccf2cdcad26cf117f12330b3f3588713fd0d0465da2515750348975eb81daa6e02f984025804b7db50da99f4e8e5e
EBUILD gitlab-ce-8.16.5.ebuild 11982 SHA256 fd2648d0a2df06b5aa46435061f6d12b1d0d8b6958c2367b96c2f4a11dbf58f1 SHA512 de82deca3c9163959d6c4c2e41e57549506e49a6a1125d37fa7277e4ca00adb74a331dad4c103f8d1b2e80ebbe1511220c23aabc8889005dcc37684c5b3373c3 WHIRLPOOL 1f80a27148caf3b570df9b5c19849e453001ddc2fc78add1040c53cae249feafcb3a0343ad61d22135ba578f9d92137c048dad0f0744737ae326ac74bf08ce7d
EBUILD gitlab-ce-8.16.6.ebuild 11982 SHA256 2cc7b8f06153f28ebcc34a5ff8e24be791689c41fc8a780149cdaeb61ffc70d3 SHA512 f9d43d16cac2edbcbc3d144133265b94bbb7dac8ed5266a7ba641cfa6f154eb62462ffff8a37b977559ca892eb20c968eb6f82c2aafbd20ce293f6a6bd7b7e29 WHIRLPOOL 5682849083932171dff509c2142e225992e2724b09987da47bab258fdf45eebaf615cb07739709da2c421eed6fc66f705d6ce35a8d956130598168908ee2f061
EBUILD gitlab-ce-8.17.0_rc3.ebuild 12258 SHA256 179da162a7ff3ab1fc9f3173aff30c59a73005622ccb0fe8ada57f950c9d0dd7 SHA512 b5f244a7a7ac980b1e1c1595b88613cf6f3649591a9430dac0db3a174432648b05707b0e3e79450f5882fb7044aca6bb3778a19566ad6c83c5fd30ee8c09893e WHIRLPOOL 49cfbbfedfcafecfa8a775bf0e3a8a9daa2fcce3a819ce92ab07ccaaa4b3881221cce5ebf4ec9333b9ed7a884717d037336dc644d359137e06fe5df3f51e9aaa
EBUILD gitlab-ce-9999.ebuild 12019 SHA256 bd4fa8a1b3820a36f942139b1c8f74fe9f99b6525e83522e7882b9f010b39870 SHA512 b2a2c1d0df976fbd2892ad8a30d2a7cac3e5d5009be2e28e107d76a32b1de976e502b21b34a584284ae19cc48382250c584d237e8438fa510083457a3f370209 WHIRLPOOL 31dc6fc06c3c8959862ab0d4a91ac2bdd6acef026638e1817beb31a88102ce3acd954fc390d970dd403e3681833dc5a56834f4c7500612ee018bdb79fa3bd818
MISC ChangeLog 13230 SHA256 4a437bfa1a23b78c7bc34000ff30edd9d2c95d87066528b9e9b63e0533cb68f0 SHA512 36baddf15fc46c68dfd0ac2a22048df3cdea1936b8f53571248c6170cc3d8e5dd7c8f756f2397dbbdaf0ce3bcbfd9ce19f966f8ede30f987b0683c97dad21faf WHIRLPOOL e676d599b09101aca357abbc77bc2d0862dfaace46304b06e03ba2066e9c18335d84d61caa0a85f9848e4f3d88d9871fe0f369ea2265bfc4ed705bf7a0b07b11

View File

@ -0,0 +1,391 @@
# 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="65cdbdd86f5a0e06a2ca12fc759afe1aef723dbd"
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-4.1.1
>=dev-vcs/git-2.8.4
~dev-vcs/gitlab-workhorse-1.3.0
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.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}-8.11.0-fix-redis-config-path.patch"
"03-${PN}-8.14.0-database.yml.patch"
"04-${PN}-8.12.7-fix-check-task.patch"
"05-${PN}-8.16.0-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 $@"
}