diff --git a/www-apps/gitlab-ce/ChangeLog b/www-apps/gitlab-ce/ChangeLog index 5a75526..438cea3 100644 --- a/www-apps/gitlab-ce/ChangeLog +++ b/www-apps/gitlab-ce/ChangeLog @@ -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 +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 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 diff --git a/www-apps/gitlab-ce/Manifest b/www-apps/gitlab-ce/Manifest index 0d25d8c..fadc95e 100644 --- a/www-apps/gitlab-ce/Manifest +++ b/www-apps/gitlab-ce/Manifest @@ -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 diff --git a/www-apps/gitlab-ce/gitlab-ce-8.13.5.ebuild b/www-apps/gitlab-ce/gitlab-ce-8.13.5.ebuild new file mode 100644 index 0000000..d8984e3 --- /dev/null +++ b/www-apps/gitlab-ce/gitlab-ce-8.13.5.ebuild @@ -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 $@" +} diff --git a/www-apps/gitlab-ce/gitlab-ce-8.12.0_rc6.ebuild b/www-apps/gitlab-ce/gitlab-ce-8.14.0_rc1.ebuild similarity index 95% rename from www-apps/gitlab-ce/gitlab-ce-8.12.0_rc6.ebuild rename to www-apps/gitlab-ce/gitlab-ce-8.14.0_rc1.ebuild index 90237e3..ea8236a 100644 --- a/www-apps/gitlab-ce/gitlab-ce-8.12.0_rc6.ebuild +++ b/www-apps/gitlab-ce/gitlab-ce-8.14.0_rc1.ebuild @@ -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() { diff --git a/www-apps/gitlab-ce/gitlab-ce-9999.ebuild b/www-apps/gitlab-ce/gitlab-ce-9999.ebuild index 62cf978..80e3929 100644 --- a/www-apps/gitlab-ce/gitlab-ce-9999.ebuild +++ b/www-apps/gitlab-ce/gitlab-ce-9999.ebuild @@ -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="