Date: Thu, 31 Mar 2016 18:01:42 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r412280 - in head/www: . gitlab gitlab/files Message-ID: <201603311801.u2VI1gEe088218@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pi Date: Thu Mar 31 18:01:42 2016 New Revision: 412280 URL: https://svnweb.freebsd.org/changeset/ports/412280 Log: New port: www/gitlab GitLab is version control for your server. WWW: https://gitlab.com/ Submitted by: Torsten Zuehlsdorff <ports@toco-domains.de> Reviewed by: Yonas Yanfa <yonas@fizk.net>, girgen, pgollucci, mmoll, miwi, xmj, swills, amdmi3, sunpoet Added: head/www/gitlab/ head/www/gitlab/Makefile (contents, props changed) head/www/gitlab/distinfo (contents, props changed) head/www/gitlab/files/ head/www/gitlab/files/gitlab.in (contents, props changed) head/www/gitlab/files/patch-Gemfile (contents, props changed) head/www/gitlab/files/patch-config_database.yml.postgresql (contents, props changed) head/www/gitlab/files/patch-config_gitlab.yml.example (contents, props changed) head/www/gitlab/files/patch-config_initializers_1__settings.rb (contents, props changed) head/www/gitlab/files/patch-config_unicorn.rb.example (contents, props changed) head/www/gitlab/files/patch-lib_support_nginx_gitlab (contents, props changed) head/www/gitlab/files/patch-lib_support_nginx_gitlab-ssl (contents, props changed) head/www/gitlab/pkg-descr (contents, props changed) head/www/gitlab/pkg-message (contents, props changed) head/www/gitlab/pkg-plist (contents, props changed) Modified: head/www/Makefile Modified: head/www/Makefile ============================================================================== --- head/www/Makefile Thu Mar 31 17:42:25 2016 (r412279) +++ head/www/Makefile Thu Mar 31 18:01:42 2016 (r412280) @@ -225,6 +225,7 @@ SUBDIR += get_flash_videos SUBDIR += getleft SUBDIR += gist + SUBDIR += gitlab SUBDIR += gitlab-workhorse SUBDIR += glassfish SUBDIR += glpi Added: head/www/gitlab/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/Makefile Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,178 @@ +# Created by: Torsten Zuehlsdorff <ports@toco-domains.de> +# $FreeBSD$ + +PORTNAME= gitlab +PORTVERSION= 8.5.5 +DISTVERSIONPREFIX= v +CATEGORIES= www devel + +MAINTAINER= ports@toco-domains.de +COMMENT= Web GUI for managing git repositories + +LICENSE= MIT + +BUILD_DEPENDS= ruby>=2.1.8:${PORTSDIR}/lang/ruby21 \ + gem:${PORTSDIR}/devel/ruby-gems +RUN_DEPENDS= git>=2.4.3:${PORTSDIR}/devel/git \ + gitlab-shell>=2.6.10:${PORTSDIR}/devel/gitlab-shell\ + gitlab-workhorse>=0.6.4:${PORTSDIR}/www/gitlab-workhorse \ + redis>=2.8.23:${PORTSDIR}/databases/redis \ + rubygem-rails4>=4.2.5.2:${PORTSDIR}/www/rubygem-rails4 \ + rubygem-rails-deprecated_sanitizer>=1.0.3:${PORTSDIR}/devel/rubygem-rails-deprecated_sanitizer \ + rubygem-responders>=2.0:${PORTSDIR}/www/rubygem-responders \ + rubygem-sprockets>=2.12.3:${PORTSDIR}/devel/rubygem-sprockets \ + rubygem-default_value_for>=3.0.1:${PORTSDIR}/devel/rubygem-default_value_for \ + rubygem-pg>=0.18.2:${PORTSDIR}/databases/rubygem-pg \ + rubygem-devise-rails4>=3.5.4:${PORTSDIR}/devel/rubygem-devise-rails4 \ + rubygem-devise-async-rails4>=0.9.0:${PORTSDIR}/devel/rubygem-devise-async-rails4 \ + rubygem-doorkeeper>=2.2.0:${PORTSDIR}/security/rubygem-doorkeeper \ + rubygem-omniauth>=1.3.1:${PORTSDIR}/security/rubygem-omniauth \ + rubygem-omniauth-azure-oauth2>=0.0.6:${PORTSDIR}/net/rubygem-omniauth-azure-oauth2 \ + rubygem-omniauth-bitbucket>=0.0.2:${PORTSDIR}/security/rubygem-omniauth-bitbucket \ + rubygem-omniauth-cas3>=1.1.2:${PORTSDIR}/security/rubygem-omniauth-cas3 \ + rubygem-omniauth-facebook>=3.0.0:${PORTSDIR}/net/rubygem-omniauth-facebook \ + rubygem-omniauth-github>=1.1.1:${PORTSDIR}/net/rubygem-omniauth-github \ + rubygem-omniauth-gitlab>=1.0.0:${PORTSDIR}/security/rubygem-omniauth-gitlab \ + rubygem-omniauth-google-oauth2>=0.2.0:${PORTSDIR}/net/rubygem-omniauth-google-oauth2 \ + rubygem-omniauth-saml>=1.4.2:${PORTSDIR}/security/rubygem-omniauth-saml \ + rubygem-omniauth-shibboleth>=1.2.0:${PORTSDIR}/security/rubygem-omniauth-shibboleth \ + rubygem-omniauth-twitter>=1.2.0:${PORTSDIR}/net/rubygem-omniauth-twitter \ + rubygem-omniauth_crowd>=2.2.0:${PORTSDIR}/devel/rubygem-omniauth_crowd \ + rubygem-rack-oauth2>=1.2.1:${PORTSDIR}/security/rubygem-rack-oauth2 \ + rubygem-recaptcha>=0:${PORTSDIR}/devel/rubygem-recaptcha \ + rubygem-akismet>=2.0:${PORTSDIR}/devel/rubygem-akismet \ + rubygem-devise-two-factor>=2.0.0:${PORTSDIR}/security/rubygem-devise-two-factor \ + rubygem-rqrcode-rails3>=0.1.7:${PORTSDIR}/www/rubygem-rqrcode-rails3 \ + rubygem-attr_encrypted>=1.3.4:${PORTSDIR}/security/rubygem-attr_encrypted \ + rubygem-browser>=1.0.0:${PORTSDIR}/www/rubygem-browser \ + rubygem-gitlab_git>=8.2:${PORTSDIR}/devel/rubygem-gitlab_git \ + rubygem-gitlab_omniauth-ldap>=1.2.1:${PORTSDIR}/net/rubygem-gitlab_omniauth-ldap \ + rubygem-gollum-lib>=4.1.0:${PORTSDIR}/www/rubygem-gollum-lib \ + rubygem-github-linguist>=4.7.0:${PORTSDIR}/textproc/rubygem-github-linguist \ + rubygem-grape>=0.13.0:${PORTSDIR}/devel/rubygem-grape \ + rubygem-grape-entity>=0.4.2:${PORTSDIR}/devel/rubygem-grape-entity \ + rubygem-rack-cors>=0.4.0:${PORTSDIR}/www/rubygem-rack-cors \ + rubygem-kaminari-rails4>=0.16.3:${PORTSDIR}/www/rubygem-kaminari-rails4 \ + rubygem-haml-rails-rails4>=0.9.0:${PORTSDIR}/www/rubygem-haml-rails-rails4 \ + rubygem-carrierwave>=0.9.0:${PORTSDIR}/www/rubygem-carrierwave \ + rubygem-dropzonejs-rails>=0.7.1:${PORTSDIR}/www/rubygem-dropzonejs-rails \ + rubygem-fog>=1.36:${PORTSDIR}/devel/rubygem-fog \ + rubygem-unf>=0.1.4:${PORTSDIR}/textproc/rubygem-unf \ + rubygem-six>=0.2.0:${PORTSDIR}/security/rubygem-six \ + rubygem-seed-fu>=2.3.5:${PORTSDIR}/databases/rubygem-seed-fu \ + rubygem-html-pipeline1>=1.11.0:${PORTSDIR}/textproc/rubygem-html-pipeline1 \ + rubygem-task_list>=1.0.2:${PORTSDIR}/www/rubygem-task_list \ + rubygem-github-markup>=1.3.1:${PORTSDIR}/textproc/rubygem-github-markup \ + rubygem-redcarpet>=3.3.3:${PORTSDIR}/textproc/rubygem-redcarpet \ + rubygem-redcloth>=4.2.9:${PORTSDIR}/www/rubygem-redcloth \ + rubygem-rdoc>=3.6:${PORTSDIR}/devel/rubygem-rdoc \ + rubygem-org-ruby>=0.9.12:${PORTSDIR}/textproc/rubygem-org-ruby \ + rubygem-creole>=0.5.0:${PORTSDIR}/textproc/rubygem-creole \ + rubygem-wikicloth>=0.8.1:${PORTSDIR}/textproc/rubygem-wikicloth \ + rubygem-asciidoctor>=1.5.2:${PORTSDIR}/textproc/rubygem-asciidoctor \ + rubygem-rouge>=1.10.1:${PORTSDIR}/textproc/rubygem-rouge \ + rubygem-nokogiri>=1.6.7.2:${PORTSDIR}/textproc/rubygem-nokogiri \ + rubygem-diffy>=3.0.3:${PORTSDIR}/textproc/rubygem-diffy \ + rubygem-unicorn>=4.8.2:${PORTSDIR}/www/rubygem-unicorn \ + rubygem-unicorn-worker-killer>=0.4.2:${PORTSDIR}/www/rubygem-unicorn-worker-killer \ + rubygem-state_machines-activerecord>=0.3.0:${PORTSDIR}/databases/rubygem-state_machines-activerecord \ + rubygem-after_commit_queue>=0:${PORTSDIR}/databases/rubygem-after_commit_queue \ + rubygem-acts-as-taggable-on3>=3.4.0:${PORTSDIR}/www/rubygem-acts-as-taggable-on3 \ + rubygem-sinatra>=1.4.4:${PORTSDIR}/www/rubygem-sinatra \ + rubygem-sidekiq>=4.0:${PORTSDIR}/devel/rubygem-sidekiq \ + rubygem-sidekiq-cron>=0.4.0:${PORTSDIR}/devel/rubygem-sidekiq-cron \ + rubygem-redis-namespace>=0:${PORTSDIR}/databases/rubygem-redis-namespace \ + rubygem-httparty>=0.13.3:${PORTSDIR}/www/rubygem-httparty \ + rubygem-colorize>=0.7.0:${PORTSDIR}/devel/rubygem-colorize \ + rubygem-settingslogic>=2.0.9:${PORTSDIR}/devel/rubygem-settingslogic \ + rubygem-version_sorter>=2.0.0:${PORTSDIR}/textproc/rubygem-version_sorter \ + rubygem-redis-rails>=4.0.0:${PORTSDIR}/www/rubygem-redis-rails \ + rubygem-tinder>=1.10.0:${PORTSDIR}/net-im/rubygem-tinder \ + rubygem-hipchat>=1.5.0:${PORTSDIR}/net-im/rubygem-hipchat \ + rubygem-gitlab-flowdock-git-hook>=1.0.1:${PORTSDIR}/www/rubygem-gitlab-flowdock-git-hook \ + rubygem-gemnasium-gitlab-service>=0.2:${PORTSDIR}/devel/rubygem-gemnasium-gitlab-service \ + rubygem-slack-notifier>=1.2.0:${PORTSDIR}/devel/rubygem-slack-notifier \ + rubygem-asana>=0.4.0:${PORTSDIR}/www/rubygem-asana \ + rubygem-ruby-fogbugz>=0.2.1:${PORTSDIR}/devel/rubygem-ruby-fogbugz \ + rubygem-d3_rails-rails4>=3.5.0:${PORTSDIR}/www/rubygem-d3_rails-rails4 \ + rubygem-cal-heatmap-rails-rails4>=3.5.0:${PORTSDIR}/www/rubygem-cal-heatmap-rails-rails4 \ + rubygem-underscore-rails>=1.8.0:${PORTSDIR}/www/rubygem-underscore-rails \ + rubygem-sanitize>=2.0:${PORTSDIR}/textproc/rubygem-sanitize \ + rubygem-babosa>=1.0.2:${PORTSDIR}/textproc/rubygem-babosa \ + rubygem-loofah>=2.0.3:${PORTSDIR}/textproc/rubygem-loofah \ + rubygem-rack-attack>=4.3.1:${PORTSDIR}/www/rubygem-rack-attack \ + rubygem-ace-rails-ap>=2.0.1:${PORTSDIR}/www/rubygem-ace-rails-ap \ + rubygem-mousetrap-rails>=1.4.6:${PORTSDIR}/www/rubygem-mousetrap-rails \ + rubygem-charlock_holmes>=0.7.3:${PORTSDIR}/textproc/rubygem-charlock_holmes \ + rubygem-sass-rails5>=5.0.0:${PORTSDIR}/textproc/rubygem-sass-rails5 \ + rubygem-coffee-rails4>=4.1.0:${PORTSDIR}/devel/rubygem-coffee-rails4 \ + rubygem-uglifier>=2.7.2:${PORTSDIR}/www/rubygem-uglifier \ + rubygem-turbolinks>=2.5.0:${PORTSDIR}/www/rubygem-turbolinks \ + rubygem-jquery-turbolinks>=2.1.0:${PORTSDIR}/www/rubygem-jquery-turbolinks \ + rubygem-addressable>=2.3.8:${PORTSDIR}/www/rubygem-addressable \ + rubygem-bootstrap-sass>=3.3.0:${PORTSDIR}/www/rubygem-bootstrap-sass \ + rubygem-font-awesome-rails-rails4>=4.2:${PORTSDIR}/devel/rubygem-font-awesome-rails-rails4 \ + rubygem-gitlab_emoji>=0.3:${PORTSDIR}/graphics/rubygem-gitlab_emoji \ + rubygem-gon>=6.0.1:${PORTSDIR}/www/rubygem-gon \ + rubygem-jquery-atwho-rails-rails4>=1.3.2:${PORTSDIR}/www/rubygem-jquery-atwho-rails-rails4 \ + rubygem-jquery-rails4>=4.0.0:${PORTSDIR}/www/rubygem-jquery-rails4 \ + rubygem-jquery-scrollto-rails>=1.4.3:${PORTSDIR}/www/rubygem-jquery-scrollto-rails \ + rubygem-jquery-ui-rails-rails4>=5.0.0:${PORTSDIR}/www/rubygem-jquery-ui-rails-rails4 \ + rubygem-nprogress-rails>=0.1.6.7:${PORTSDIR}/devel/rubygem-nprogress-rails \ + rubygem-raphael-rails>=2.1.2:${PORTSDIR}/www/rubygem-raphael-rails \ + rubygem-request_store>=1.2.0:${PORTSDIR}/devel/rubygem-request_store \ + rubygem-select2-rails>=3.5.9:${PORTSDIR}/www/rubygem-select2-rails \ + rubygem-virtus>=1.0.1:${PORTSDIR}/devel/rubygem-virtus \ + rubygem-net-ssh>=3.0.1:${PORTSDIR}/security/rubygem-net-ssh \ + rubygem-sentry-raven>=0.15.4:${PORTSDIR}/devel/rubygem-sentry-raven \ + rubygem-gitlab_meta>=7.0:${PORTSDIR}/devel/rubygem-gitlab_meta \ + rubygem-newrelic_rpm>=3.9.4.245:${PORTSDIR}/devel/rubygem-newrelic_rpm \ + rubygem-newrelic-grape>=0:${PORTSDIR}/devel/rubygem-newrelic-grape \ + rubygem-newrelic_rpm>=3.14:${PORTSDIR}/devel/rubygem-newrelic_rpm \ + rubygem-octokit>=3.8.0:${PORTSDIR}/net/rubygem-octokit \ + rubygem-mail_room>=0.6.1:${PORTSDIR}/mail/rubygem-mail_room \ + rubygem-email_reply_parser>=0.5.8:${PORTSDIR}/mail/rubygem-email_reply_parser \ + rubygem-activerecord-deprecated_finders>=1.0.3:${PORTSDIR}/devel/rubygem-activerecord-deprecated_finders \ + rubygem-activerecord-session_store>=0.1.0:${PORTSDIR}/databases/rubygem-activerecord-session_store \ + rubygem-nested_form>=0.3.2:${PORTSDIR}/www/rubygem-nested_form \ + rubygem-oauth2>=1.0.0:${PORTSDIR}/net/rubygem-oauth2 \ + rubygem-paranoia>=2.0:${PORTSDIR}/databases/rubygem-paranoia \ + rubygem-rinku>=1.7.3:${PORTSDIR}/www/rubygem-rinku + +USE= pgsql=yes +WANT= pgsql=9.1+ + +USE_RC_SUBR= gitlab +USE_GITHUB= yes +GH_ACCOUNT= gitlabhq +GH_PROJECT= gitlabhq + +USERS= git +GROUPS= git + +.include <bsd.port.options.mk> + +NO_ARCH= yes +NO_BUILD= yes + +do-install: + ${FIND} ${WRKSRC} -name '*.orig' -delete + ${FIND} ${WRKSRC} -name '*.bak' -delete + ${FIND} ${WRKSRC} -name '*.gitkeep' -delete + ${FIND} ${WRKSRC} -name "Gemfile.lock" -delete + ${MV} ${WRKSRC}/config/gitlab.yml.example ${WRKSRC}/config/gitlab.yml.sample + ${MV} ${WRKSRC}/config/unicorn.rb.example ${WRKSRC}/config/unicorn.rb.sample + ${MV} ${WRKSRC}/config/resque.yml.example ${WRKSRC}/config/resque.yml.sample + ${MV} ${WRKSRC}/config/secrets.yml.example ${WRKSRC}/config/secrets.yml.sample + ${MV} ${WRKSRC}/config/initializers/rack_attack.rb.example ${WRKSRC}/config/initializers/rack_attack.rb.sample + ${CP} ${WRKSRC}/config/database.yml.postgresql ${WRKSRC}/config/database.yml.sample + +post-install: + ${MKDIR} ${STAGEDIR}/home/git/repositories + ${MKDIR} ${STAGEDIR}/home/git/gitlab-satellites + ${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/public/assets + ${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/tmp/cache + ${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/tmp/sessions + (cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/www/${PORTNAME}) + +.include <bsd.port.mk> Added: head/www/gitlab/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/distinfo Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,2 @@ +SHA256 (gitlabhq-gitlabhq-v8.5.5_GH0.tar.gz) = 859ec6142095d459b1587616df6c83063e87a8c7417ab8606100588525d03e2d +SIZE (gitlabhq-gitlabhq-v8.5.5_GH0.tar.gz) = 15179973 Added: head/www/gitlab/files/gitlab.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/files/gitlab.in Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,414 @@ +#! /bin/sh + +# $FreeBSD$ + +### BEGIN INIT INFO +# Provides: gitlab +# Required-Start: $local_fs $remote_fs $network $syslog redis-server +# Required-Stop: $local_fs $remote_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: GitLab git repository management +# Description: GitLab git repository management +# chkconfig: - 85 14 +### END INIT INFO + +# Maintainer: Torsten Zuehlsdorff <ports@toco-domains.de> +# Based on work of: @charlienewey, rovanion.luckey@gmail.com, @randx + +# PROVIDE: gitlab +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf to enable GitLab: +# +# gitlab_enable="YES" + +PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" + +. /etc/rc.subr + +name=gitlab +rcvar=gitlab_enable +extra_commands=status + +status_cmd="print_status" +start_cmd="start_gitlab" +stop_cmd="stop_gitlab" +restart_cmd="restart_gitlab" + +gitlab_enable=${gitlab_enable:-"NO"} + +load_rc_config $name + +### Environment variables +RAILS_ENV="production" + +# Script variable names should be lower-case not to conflict with +# internal /bin/sh variables such as PATH, EDITOR or SHELL. +app_user="git" +app_root="/usr/local/www/gitlab" +pid_path="$app_root/tmp/pids" +socket_path="$app_root/tmp/sockets" +rails_socket="$socket_path/gitlab.socket" +web_server_pid_path="$pid_path/unicorn.pid" +sidekiq_pid_path="$pid_path/sidekiq.pid" +mail_room_enabled=false +mail_room_pid_path="$pid_path/mail_room.pid" +gitlab_workhorse_dir=$(cd $app_root/../gitlab-workhorse && pwd) +gitlab_workhorse_pid_path="$pid_path/gitlab-workhorse.pid" +gitlab_workhorse_options="-listenUmask 0 -listenNetwork unix -listenAddr $socket_path/gitlab-workhorse.socket -authBackend http://127.0.0.1:8080 -authSocket $rails_socket -documentRoot $app_root/public" +gitlab_workhorse_log="$app_root/log/gitlab-workhorse.log" +shell_path="/bin/bash" + +# Read configuration variable file if it is present +test -f /etc/default/gitlab && . /etc/default/gitlab + +# Switch to the app_user if it is not he/she who is running the script. +if [ "$USER" != "$app_user" ]; then + eval su - "$app_user" -c $(echo \")$0 "$@"$(echo \"); exit; +fi + +# Switch to the gitlab path, exit on failure. +if ! cd "$app_root" ; then + echo "Failed to cd into $app_root, exiting!"; exit 1 +fi + + +### Init Script functions + +## Gets the pids from the files +check_pids(){ + if ! mkdir -p "$pid_path"; then + echo "Could not create the path $pid_path needed to store the pids." + exit 1 + fi + # If there exists a file which should hold the value of the Unicorn pid: read it. + if [ -f "$web_server_pid_path" ]; then + wpid=$(cat "$web_server_pid_path") + else + wpid=0 + fi + if [ -f "$sidekiq_pid_path" ]; then + spid=$(cat "$sidekiq_pid_path") + else + spid=0 + fi + if [ -f "$gitlab_workhorse_pid_path" ]; then + hpid=$(cat "$gitlab_workhorse_pid_path") + else + hpid=0 + fi + if [ "$mail_room_enabled" = true ]; then + if [ -f "$mail_room_pid_path" ]; then + mpid=$(cat "$mail_room_pid_path") + else + mpid=0 + fi + fi +} + +## Called when we have started the two processes and are waiting for their pid files. +wait_for_pids(){ + # We are sleeping a bit here mostly because sidekiq is slow at writing its pid + i=0; + while [ ! -f $web_server_pid_path ] || [ ! -f $sidekiq_pid_path ] || [ ! -f $gitlab_workhorse_pid_path ] || { [ "$mail_room_enabled" = true ] && [ ! -f $mail_room_pid_path ]; }; do + sleep 0.1; + i=$((i+1)) + if [ $((i%10)) = 0 ]; then + echo -n "." + elif [ $((i)) = 301 ]; then + echo "Waited 30s for the processes to write their pids, something probably went wrong." + exit 1; + fi + done + echo +} + +# We use the pids in so many parts of the script it makes sense to always check them. +# Only after start() is run should the pids change. Sidekiq sets its own pid. +check_pids + + +## Checks whether the different parts of the service are already running or not. +check_status(){ + check_pids + # If the web server is running kill -0 $wpid returns true, or rather 0. + # Checks of *_status should only check for == 0 or != 0, never anything else. + if [ $wpid -ne 0 ]; then + kill -0 "$wpid" 2>/dev/null + web_status="$?" + else + web_status="-1" + fi + if [ $spid -ne 0 ]; then + kill -0 "$spid" 2>/dev/null + sidekiq_status="$?" + else + sidekiq_status="-1" + fi + if [ $hpid -ne 0 ]; then + kill -0 "$hpid" 2>/dev/null + gitlab_workhorse_status="$?" + else + gitlab_workhorse_status="-1" + fi + if [ "$mail_room_enabled" = true ]; then + if [ $mpid -ne 0 ]; then + kill -0 "$mpid" 2>/dev/null + mail_room_status="$?" + else + mail_room_status="-1" + fi + fi + if [ $web_status = 0 ] && [ $sidekiq_status = 0 ] && [ $gitlab_workhorse_status = 0 ] && { [ "$mail_room_enabled" != true ] || [ $mail_room_status = 0 ]; }; then + gitlab_status=0 + else + # http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html + # code 3 means 'program is not running' + gitlab_status=3 + fi +} + +## Check for stale pids and remove them if necessary. +check_stale_pids(){ + check_status + # If there is a pid it is something else than 0, the service is running if + # *_status is == 0. + if [ "$wpid" != "0" ] && [ "$web_status" != "0" ]; then + echo "Removing stale Unicorn web server pid. This is most likely caused by the web server crashing the last time it ran." + if ! rm "$web_server_pid_path"; then + echo "Unable to remove stale pid, exiting." + exit 1 + fi + fi + if [ "$spid" != "0" ] && [ "$sidekiq_status" != "0" ]; then + echo "Removing stale Sidekiq job dispatcher pid. This is most likely caused by Sidekiq crashing the last time it ran." + if ! rm "$sidekiq_pid_path"; then + echo "Unable to remove stale pid, exiting" + exit 1 + fi + fi + if [ "$hpid" != "0" ] && [ "$gitlab_workhorse_status" != "0" ]; then + echo "Removing stale gitlab-workhorse pid. This is most likely caused by gitlab-workhorse crashing the last time it ran." + if ! rm "$gitlab_workhorse_pid_path"; then + echo "Unable to remove stale pid, exiting" + exit 1 + fi + fi + if [ "$mail_room_enabled" = true ] && [ "$mpid" != "0" ] && [ "$mail_room_status" != "0" ]; then + echo "Removing stale MailRoom job dispatcher pid. This is most likely caused by MailRoom crashing the last time it ran." + if ! rm "$mail_room_pid_path"; then + echo "Unable to remove stale pid, exiting" + exit 1 + fi + fi +} + +## If no parts of the service is running, bail out. +exit_if_not_running(){ + check_stale_pids + if [ "$web_status" != "0" ] && [ "$sidekiq_status" != "0" ] && [ "$gitlab_workhorse_status" != "0" ] && { [ "$mail_room_enabled" != true ] || [ "$mail_room_status" != "0" ]; }; then + echo "GitLab is not running." + exit + fi +} + +## Starts Unicorn and Sidekiq if they're not running. +start_gitlab() { + check_stale_pids + + if [ "$web_status" != "0" ]; then + echo "Starting GitLab Unicorn" + fi + if [ "$sidekiq_status" != "0" ]; then + echo "Starting GitLab Sidekiq" + fi + if [ "$gitlab_workhorse_status" != "0" ]; then + echo "Starting gitlab-workhorse" + fi + if [ "$mail_room_enabled" = true ] && [ "$mail_room_status" != "0" ]; then + echo "Starting GitLab MailRoom" + fi + + # Then check if the service is running. If it is: don't start again. + if [ "$web_status" = "0" ]; then + echo "The Unicorn web server already running with pid $wpid, not restarting." + else + # Remove old socket if it exists + rm -f "$socket_path"/gitlab.socket 2>/dev/null + # Start the web server + RAILS_ENV=$RAILS_ENV bin/web start + fi + + # If sidekiq is already running, don't start it again. + if [ "$sidekiq_status" = "0" ]; then + echo "The Sidekiq job dispatcher is already running with pid $spid, not restarting" + else + RAILS_ENV=$RAILS_ENV bin/background_jobs start & + fi + + if [ "$gitlab_workhorse_status" = "0" ]; then + echo "The gitlab-workhorse is already running with pid $spid, not restarting" + else + # No need to remove a socket, gitlab-workhorse does this itself. + # Because gitlab-workhorse has multiple executables we need to fix + # the PATH. + $app_root/bin/daemon_with_pidfile $gitlab_workhorse_pid_path \ + /usr/bin/env PATH=$gitlab_workhorse_dir:$PATH \ + gitlab-workhorse $gitlab_workhorse_options \ + >> $gitlab_workhorse_log 2>&1 & + fi + + if [ "$mail_room_enabled" = true ]; then + # If MailRoom is already running, don't start it again. + if [ "$mail_room_status" = "0" ]; then + echo "The MailRoom email processor is already running with pid $mpid, not restarting" + else + RAILS_ENV=$RAILS_ENV bin/mail_room start & + fi + fi + + # Wait for the pids to be planted + wait_for_pids + # Finally check the status to tell wether or not GitLab is running + print_status +} + +## Asks Unicorn, Sidekiq and MailRoom if they would be so kind as to stop, if not kills them. +stop_gitlab() { + exit_if_not_running + + if [ "$web_status" = "0" ]; then + echo "Shutting down GitLab Unicorn" + RAILS_ENV=$RAILS_ENV bin/web stop + fi + if [ "$sidekiq_status" = "0" ]; then + echo "Shutting down GitLab Sidekiq" + RAILS_ENV=$RAILS_ENV bin/background_jobs stop + fi + if [ "$gitlab_workhorse_status" = "0" ]; then + echo "Shutting down gitlab-workhorse" + kill -- $(cat $gitlab_workhorse_pid_path) + fi + if [ "$mail_room_enabled" = true ] && [ "$mail_room_status" = "0" ]; then + echo "Shutting down GitLab MailRoom" + RAILS_ENV=$RAILS_ENV bin/mail_room stop + fi + + # If something needs to be stopped, lets wait for it to stop. Never use SIGKILL in a script. + while [ "$web_status" = "0" ] || [ "$sidekiq_status" = "0" ] || [ "$gitlab_workhorse_status" = "0" ] || { [ "$mail_room_enabled" = true ] && [ "$mail_room_status" = "0" ]; }; do + sleep 1 + check_status + printf "." + if [ "$web_status" != "0" ] && [ "$sidekiq_status" != "0" ] && [ "$gitlab_workhorse_status" != "0" ] && { [ "$mail_room_enabled" != true ] || [ "$mail_room_status" != "0" ]; }; then + printf "\n" + break + fi + done + + sleep 1 + # Cleaning up unused pids + rm "$web_server_pid_path" 2>/dev/null + # rm "$sidekiq_pid_path" 2>/dev/null # Sidekiq seems to be cleaning up its own pid. + rm -f "$gitlab_workhorse_pid_path" + if [ "$mail_room_enabled" = true ]; then + rm "$mail_room_pid_path" 2>/dev/null + fi + + print_status +} + +## Prints the status of GitLab and its components. +print_status() { + check_status + if [ "$web_status" != "0" ] && [ "$sidekiq_status" != "0" ] && [ "$gitlab_workhorse_status" != "0" ] && { [ "$mail_room_enabled" != true ] || [ "$mail_room_status" != "0" ]; }; then + echo "GitLab is not running." + return + fi + if [ "$web_status" = "0" ]; then + echo "The GitLab Unicorn web server with pid $wpid is running." + else + printf "The GitLab Unicorn web server is \033[31mnot running\033[0m.\n" + fi + if [ "$sidekiq_status" = "0" ]; then + echo "The GitLab Sidekiq job dispatcher with pid $spid is running." + else + printf "The GitLab Sidekiq job dispatcher is \033[31mnot running\033[0m.\n" + fi + if [ "$gitlab_workhorse_status" = "0" ]; then + echo "The gitlab-workhorse with pid $hpid is running." + else + printf "The gitlab-workhorse is \033[31mnot running\033[0m.\n" + fi + if [ "$mail_room_enabled" = true ]; then + if [ "$mail_room_status" = "0" ]; then + echo "The GitLab MailRoom email processor with pid $mpid is running." + else + printf "The GitLab MailRoom email processor is \033[31mnot running\033[0m.\n" + fi + fi + if [ "$web_status" = "0" ] && [ "$sidekiq_status" = "0" ] && [ "$gitlab_workhorse_status" = "0" ] && { [ "$mail_room_enabled" != true ] || [ "$mail_room_status" = "0" ]; }; then + printf "GitLab and all its components are \033[32mup and running\033[0m.\n" + fi +} + +## Tells unicorn to reload its config and Sidekiq to restart +reload_gitlab(){ + exit_if_not_running + if [ "$wpid" = "0" ];then + echo "The GitLab Unicorn Web server is not running thus its configuration can't be reloaded." + exit 1 + fi + printf "Reloading GitLab Unicorn configuration... " + RAILS_ENV=$RAILS_ENV bin/web reload + echo "Done." + + echo "Restarting GitLab Sidekiq since it isn't capable of reloading its config..." + RAILS_ENV=$RAILS_ENV bin/background_jobs restart + + if [ "$mail_room_enabled" != true ]; then + echo "Restarting GitLab MailRoom since it isn't capable of reloading its config..." + RAILS_ENV=$RAILS_ENV bin/mail_room restart + fi + + wait_for_pids + print_status +} + +## Restarts Sidekiq and Unicorn. +restart_gitlab(){ + check_status + if [ "$web_status" = "0" ] || [ "$sidekiq_status" = "0" ] || [ "$gitlab_workhorse" = "0" ] || { [ "$mail_room_enabled" = true ] && [ "$mail_room_status" = "0" ]; }; then + stop_gitlab + fi + start_gitlab +} + + +### Finally the input handling. + +case "$1" in + start) + start_gitlab + ;; + stop) + stop_gitlab + ;; + restart) + restart_gitlab + ;; + reload|force-reload) + reload_gitlab + ;; + status) + print_status + exit $gitlab_status + ;; + *) + echo "Usage: service gitlab {start|stop|restart|reload|status}" + exit 1 + ;; +esac + +exit Added: head/www/gitlab/files/patch-Gemfile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/files/patch-Gemfile Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,303 @@ +--- Gemfile.orig 2016-03-10 19:32:49 UTC ++++ Gemfile +@@ -1,6 +1,6 @@ + source "https://rubygems.org" + +-gem 'rails', '4.2.5.2' ++gem 'rails', '>= 4.2.5.2' + gem 'rails-deprecated_sanitizer', '~> 1.0.3' + + # Responders respond_to and respond_with +@@ -8,19 +8,18 @@ gem 'responders', '~> 2.0' + + # Specify a sprockets version due to security issue + # See https://groups.google.com/forum/#!topic/rubyonrails-security/doAVp0YaTqY +-gem 'sprockets', '~> 2.12.3' ++gem 'sprockets', '>= 2.12.3' + + # Default values for AR models +-gem "default_value_for", "~> 3.0.0" ++gem "default_value_for", ">= 3.0.0" + + # Supported DBs +-gem "mysql2", '~> 0.3.16', group: :mysql + gem "pg", '~> 0.18.2', group: :postgres + + # Authentication libraries + gem 'devise', '~> 3.5.4' +-gem 'devise-async', '~> 0.9.0' +-gem 'doorkeeper', '~> 2.2.0' ++gem 'devise-async', '>= 0.9.0' ++gem 'doorkeeper', '>= 2.2.0' + gem 'omniauth', '~> 1.3.1' + gem 'omniauth-azure-oauth2', '~> 0.0.6' + gem 'omniauth-bitbucket', '~> 0.0.2' +@@ -28,29 +27,28 @@ gem 'omniauth-cas3', '~> 1.1.2' + gem 'omniauth-facebook', '~> 3.0.0' + gem 'omniauth-github', '~> 1.1.1' + gem 'omniauth-gitlab', '~> 1.0.0' +-gem 'omniauth-google-oauth2', '~> 0.2.0' +-gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos +-gem 'omniauth-saml', '~> 1.4.2' ++gem 'omniauth-google-oauth2', '>= 0.2.0' ++gem 'omniauth-saml', '>= 1.4.2' + gem 'omniauth-shibboleth', '~> 1.2.0' + gem 'omniauth-twitter', '~> 1.2.0' + gem 'omniauth_crowd', '~> 2.2.0' +-gem 'rack-oauth2', '~> 1.2.1' ++gem 'rack-oauth2', '>= 1.2.1' + + # Spam and anti-bot protection + gem 'recaptcha', require: 'recaptcha/rails' + gem 'akismet', '~> 2.0' + + # Two-factor authentication +-gem 'devise-two-factor', '~> 2.0.0' ++gem 'devise-two-factor', '>= 2.0.0' + gem 'rqrcode-rails3', '~> 0.1.7' + gem 'attr_encrypted', '~> 1.3.4' + + # Browser detection +-gem "browser", '~> 1.0.0' ++gem "browser", '>= 1.0.0' + + # Extracting information from a git repository + # Provide access to Gitlab::Git library +-gem "gitlab_git", '~> 8.2' ++gem "gitlab_git", '~> 10.0' + + # LDAP Auth + # GitLab fork with several improvements to original library. For full list of changes +@@ -58,14 +56,14 @@ gem "gitlab_git", '~> 8.2' + gem 'gitlab_omniauth-ldap', '~> 1.2.1', require: "omniauth-ldap" + + # Git Wiki +-gem 'gollum-lib', '~> 4.1.0' ++gem 'gollum-lib', '>= 4.1.0' + + # Language detection +-gem "github-linguist", "~> 4.7.0", require: "linguist" ++gem "github-linguist", "~> 4.8.0", require: "linguist" + + # API +-gem 'grape', '~> 0.13.0' +-gem 'grape-entity', '~> 0.4.2' ++gem 'grape', '>= 0.13.0' ++gem 'grape-entity', '>= 0.4.2' + gem 'rack-cors', '~> 0.4.0', require: 'rack/cors' + + # Pagination +@@ -75,13 +73,13 @@ gem "kaminari", "~> 0.16.3" + gem "haml-rails", '~> 0.9.0' + + # Files attachments +-gem "carrierwave", '~> 0.9.0' ++gem "carrierwave", '>= 0.9.0' + + # Drag and Drop UI + gem 'dropzonejs-rails', '~> 0.7.1' + + # for aws storage +-gem "fog", "~> 1.36.0" ++gem "fog", ">= 1.36.0" + gem "unf", '~> 0.1.4' + + # Authorization +@@ -93,13 +91,13 @@ gem "seed-fu", '~> 2.3.5' + # Markdown and HTML processing + gem 'html-pipeline', '~> 1.11.0' + gem 'task_list', '~> 1.0.2', require: 'task_list/railtie' +-gem 'github-markup', '~> 1.3.1' ++gem 'github-markup', '>= 1.3.1' + gem 'redcarpet', '~> 3.3.3' + gem 'RedCloth', '~> 4.2.9' +-gem 'rdoc', '~>3.6' ++gem 'rdoc', '>= 3.6' + gem 'org-ruby', '~> 0.9.12' + gem 'creole', '~> 0.5.0' +-gem 'wikicloth', '0.8.1' ++gem 'wikicloth', '>= 0.8.1' + gem 'asciidoctor', '~> 1.5.2' + gem 'rouge', '~> 1.10.1' + +@@ -108,11 +106,11 @@ gem 'rouge', '~> 1.10.1' + gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2' + + # Diffs +-gem 'diffy', '~> 3.0.3' ++gem 'diffy', '>= 3.0.3' + + # Application server + group :unicorn do +- gem "unicorn", '~> 4.8.2' ++ gem "unicorn", '>= 4.8.2' + gem 'unicorn-worker-killer', '~> 0.4.2' + end + +@@ -159,10 +157,10 @@ gem "gitlab-flowdock-git-hook", "~> 1.0. + gem "gemnasium-gitlab-service", "~> 0.2" + + # Slack integration +-gem "slack-notifier", "~> 1.2.0" ++gem "slack-notifier", ">= 1.2.0" + + # Asana integration +-gem 'asana', '~> 0.4.0' ++gem 'asana', '>= 0.4.0' + + # FogBugz integration + gem 'ruby-fogbugz', '~> 0.2.1' +@@ -177,17 +175,17 @@ gem 'cal-heatmap-rails', '~> 3.5.0' + gem "underscore-rails", "~> 1.8.0" + + # Sanitize user input +-gem "sanitize", '~> 2.0' ++gem "sanitize", '>= 2.0' + gem 'babosa', '~> 1.0.2' + + # Sanitizes SVG input + gem "loofah", "~> 2.0.3" + + # Protect against bruteforcing +-gem "rack-attack", '~> 4.3.1' ++gem "rack-attack", '>= 4.3.1' + + # Ace editor +-gem 'ace-rails-ap', '~> 2.0.1' ++gem 'ace-rails-ap', '>= 2.0.1' + + # Keyboard shortcuts + gem 'mousetrap-rails', '~> 1.4.6' +@@ -197,115 +195,36 @@ gem 'charlock_holmes', '~> 0.7.3' + + gem "sass-rails", '~> 5.0.0' + gem "coffee-rails", '~> 4.1.0' +-gem "uglifier", '~> 2.7.2' ++gem "uglifier", '>= 2.7.2' + gem 'turbolinks', '~> 2.5.0' + gem 'jquery-turbolinks', '~> 2.1.0' + +-gem 'addressable', '~> 2.3.8' ++gem 'addressable', '>= 2.3.8' + gem 'bootstrap-sass', '~> 3.3.0' + gem 'font-awesome-rails', '~> 4.2' + gem 'gitlab_emoji', '~> 0.3.0' + gem 'gon', '~> 6.0.1' + gem 'jquery-atwho-rails', '~> 1.3.2' +-gem 'jquery-rails', '~> 4.0.0' ++gem 'jquery-rails', '>= 4.0.0' + gem 'jquery-scrollto-rails', '~> 1.4.3' + gem 'jquery-ui-rails', '~> 5.0.0' + gem 'nprogress-rails', '~> 0.1.6.7' + gem 'raphael-rails', '~> 2.1.2' +-gem 'request_store', '~> 1.2.0' ++gem 'request_store', '>= 1.2.0' + gem 'select2-rails', '~> 3.5.9' + gem 'virtus', '~> 1.0.1' +-gem 'net-ssh', '~> 3.0.1' ++gem 'net-ssh', '~> 3.1.0' + + # Sentry integration + gem 'sentry-raven', '~> 0.15' + +-# Metrics +-group :metrics do +- gem 'allocations', '~> 1.0', require: false, platform: :mri +- gem 'method_source', '~> 0.8', require: false +- gem 'influxdb', '~> 0.2', require: false +- gem 'connection_pool', '~> 2.0', require: false +-end +- +-group :development do +- gem "foreman" +- gem 'brakeman', '~> 3.1.0', require: false +- +- gem "annotate", "~> 2.6.0" +- gem "letter_opener", '~> 1.1.2' +- gem 'quiet_assets', '~> 1.0.2' +- gem 'rerun', '~> 0.11.0' +- gem 'bullet', require: false +- gem 'rblineprof', platform: :mri, require: false +- gem 'web-console', '~> 2.0' +- +- # Better errors handler +- gem 'better_errors', '~> 1.0.1' +- gem 'binding_of_caller', '~> 0.7.2' +- +- # Docs generator +- gem "sdoc", '~> 0.3.20' +- +- # thin instead webrick +- gem 'thin', '~> 1.6.1' +-end +- +-group :development, :test do +- gem 'byebug', platform: :mri +- gem 'pry-rails' +- +- gem 'awesome_print', '~> 1.2.0', require: false +- gem 'fuubar', '~> 2.0.0' +- +- gem 'database_cleaner', '~> 1.4.0' +- gem 'factory_girl_rails', '~> 4.3.0' +- gem 'rspec-rails', '~> 3.3.0' +- gem 'spinach-rails', '~> 0.2.1' +- +- # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) +- gem 'minitest', '~> 5.7.0' +- +- # Generate Fake data +- gem 'ffaker', '~> 2.0.0' +- +- gem 'capybara', '~> 2.4.0' +- gem 'capybara-screenshot', '~> 1.0.0' +- gem 'poltergeist', '~> 1.8.1' +- +- gem 'teaspoon', '~> 1.0.0' +- gem 'teaspoon-jasmine', '~> 2.2.0' +- +- gem 'spring', '~> 1.3.6' +- gem 'spring-commands-rspec', '~> 1.0.4' +- gem 'spring-commands-spinach', '~> 1.0.0' +- gem 'spring-commands-teaspoon', '~> 0.0.2' +- +- gem 'rubocop', '~> 0.35.0', require: false +- gem 'coveralls', '~> 0.8.2', require: false +- gem 'simplecov', '~> 0.10.0', require: false +- gem 'flog', require: false +- gem 'flay', require: false +- gem 'bundler-audit', require: false +- +- gem 'benchmark-ips', require: false +-end +- +-group :test do +- gem 'shoulda-matchers', '~> 2.8.0', require: false +- gem 'email_spec', '~> 1.6.0' +- gem 'webmock', '~> 1.21.0' +- gem 'test_after_commit', '~> 0.4.2' +- gem 'sham_rack' +-end +- + group :production do + gem "gitlab_meta", '7.0' + end + + gem "newrelic_rpm", '~> 3.14' + +-gem 'octokit', '~> 3.8.0' ++gem 'octokit', '>= 3.8.0' + + gem "mail_room", "~> 0.6.1" + +@@ -317,7 +236,9 @@ gem 'activerecord-session_store', '~> 0. + gem "nested_form", '~> 0.3.2' + + # OAuth +-gem 'oauth2', '~> 1.0.0' ++gem 'oauth2', '>= 1.0.0' + + # Soft deletion + gem "paranoia", "~> 2.0" ++ ++gem "rinku" Added: head/www/gitlab/files/patch-config_database.yml.postgresql ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/files/patch-config_database.yml.postgresql Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,11 @@ +--- config/database.yml.postgresql.orig 2016-03-10 19:32:49 UTC ++++ config/database.yml.postgresql +@@ -6,7 +6,7 @@ production: + encoding: unicode + database: gitlabhq_production + pool: 10 +- # username: git ++ username: git + # password: + # host: localhost + # port: 5432 Added: head/www/gitlab/files/patch-config_gitlab.yml.example ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/files/patch-config_gitlab.yml.example Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,25 @@ +--- config/gitlab.yml.example.orig 2016-03-10 19:32:49 UTC ++++ config/gitlab.yml.example +@@ -402,11 +402,11 @@ production: &base + + ## GitLab Shell settings + gitlab_shell: +- path: /home/git/gitlab-shell/ ++ path: /usr/local/share/gitlab-shell/ + + # REPOS_PATH MUST NOT BE A SYMLINK!!! + repos_path: /home/git/repositories/ +- hooks_path: /home/git/gitlab-shell/hooks/ ++ hooks_path: /usr/local/share/gitlab-shell/hooks/ + + # File that contains the secret key for verifying access for gitlab-shell. + # Default is '.gitlab_shell_secret' relative to Rails.root (i.e. root of the GitLab app). +@@ -423,7 +423,7 @@ production: &base + # CAUTION! + # Use the default values unless you really know what you are doing + git: +- bin_path: /usr/bin/git ++ bin_path: /usr/local/bin/git + # The next value is the maximum memory size grit can use + # Given in number of bytes per git object (e.g. a commit) + # This value can be increased if you have very large commits Added: head/www/gitlab/files/patch-config_initializers_1__settings.rb ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/files/patch-config_initializers_1__settings.rb Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,15 @@ +--- config/initializers/1_settings.rb.orig 2016-03-10 19:32:49 UTC ++++ config/initializers/1_settings.rb +@@ -165,11 +165,7 @@ Settings.gitlab['email_reply_to'] ||= EN + Settings.gitlab['base_url'] ||= Settings.send(:build_base_gitlab_url) + Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url) + Settings.gitlab['user'] ||= 'git' +-Settings.gitlab['user_home'] ||= begin +- Etc.getpwnam(Settings.gitlab['user']).dir +-rescue ArgumentError # no user configured +- '/home/' + Settings.gitlab['user'] +-end ++Settings.gitlab['user_home'] ||= '/home/' + Settings.gitlab['user'] + Settings.gitlab['time_zone'] ||= nil + Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil? + Settings.gitlab['signin_enabled'] ||= true if Settings.gitlab['signin_enabled'].nil? Added: head/www/gitlab/files/patch-config_unicorn.rb.example ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/gitlab/files/patch-config_unicorn.rb.example Thu Mar 31 18:01:42 2016 (r412280) @@ -0,0 +1,34 @@ +--- config/unicorn.rb.example.orig 2016-03-10 19:32:49 UTC ++++ config/unicorn.rb.example +@@ -33,12 +33,12 @@ worker_processes 3 + + # Help ensure your application will always spawn in the symlinked + # "current" directory that Capistrano sets up. +-working_directory "/home/git/gitlab" # available in 0.94.0+ ++working_directory "/usr/local/www/gitlab" # available in 0.94.0+ + + # Listen on both a Unix domain socket and a TCP port. + # If you are load-balancing multiple Unicorn masters, lower the backlog + # setting to e.g. 64 for faster failover. +-listen "/home/git/gitlab/tmp/sockets/gitlab.socket", :backlog => 1024 ++listen "/usr/local/www/gitlab/tmp/sockets/gitlab.socket", :backlog => 1024 + listen "127.0.0.1:8080", :tcp_nopush => true + + # nuke workers after 30 seconds instead of 60 seconds (the default) +@@ -59,13 +59,13 @@ listen "127.0.0.1:8080", :tcp_nopush => *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603311801.u2VI1gEe088218>