diff --git a/debian/conf/gitlab-debian.conf.example b/debian/conf/gitlab-debian.conf.example index 08399ff3d0..2d1da004e0 100644 --- a/debian/conf/gitlab-debian.conf.example +++ b/debian/conf/gitlab-debian.conf.example @@ -2,27 +2,4 @@ RAILS_ENV=production DB=postgres gitlab_app_root=/usr/share/gitlab gitlab_data_dir=/var/lib/gitlab -gitlab_cache_path=/var/cache/gitlab -gitlab_scripts=/usr/lib/gitlab/scripts -gitlab_yml_example=/usr/lib/gitlab/templates/gitlab.yml.example -gitlab_yml_private=/var/lib/gitlab/gitlab.yml -gitlab_yml=/etc/gitlab/gitlab.yml -gitlab_debian_conf_example=/usr/lib/gitlab/templates/gitlab-debian.conf.example -gitlab_debian_conf_private=/var/lib/gitlab/gitlab-debian.conf -gitlab_debian_conf=/etc/gitlab/gitlab-debian.conf -gitlab_shell_config_example=/usr/lib/gitlab-shell/config.yml.example -gitlab_shell_config_private=/var/lib/gitlab/gitlab-shell-config.yml -gitlab_shell_config=/etc/gitlab-shell/config.yml -gitlab_nginx_log=/var/log/gitlab -gitlab_ssl_path=/etc/gitlab/ssl -gitlab_shell_root=/usr/share/gitlab-shell -gitlab_shell_log=/var/log/gitlab-shell -gitlab_log_dir=/var/log/gitlab gitlab_pid_path=/run/gitlab -gitlab_tmpfiles_example=/usr/lib/gitlab/templates/tmpfiles.d/gitlab.conf.example -gitlab_tmpfiles_private=/var/lib/gitlab/tmpfiles.d-gitlab.conf -gitlab_tmpfiles=/usr/lib/tmpfiles.d/gitlab.conf -nginx_user=www-data -nginx_conf_example=/usr/lib/gitlab/templates/nginx.conf.example -nginx_ssl_conf_example=/usr/lib/gitlab/templates/nginx.ssl.conf.example -nginx_site_private=/var/lib/gitlab/nginx.conf diff --git a/debian/conf/gitlab-debian.defaults b/debian/conf/gitlab-debian.defaults new file mode 100644 index 0000000000..0355ee4aee --- /dev/null +++ b/debian/conf/gitlab-debian.defaults @@ -0,0 +1,20 @@ +gitlab_cache_path=/var/cache/gitlab +gitlab_scripts=/usr/lib/gitlab/scripts +gitlab_yml_example=/usr/lib/gitlab/templates/gitlab.yml.example +gitlab_yml_private=/var/lib/gitlab/gitlab.yml +gitlab_yml=/etc/gitlab/gitlab.yml +gitlab_shell_config_example=/usr/lib/gitlab-shell/config.yml.example +gitlab_shell_config_private=/var/lib/gitlab/gitlab-shell-config.yml +gitlab_shell_config=/etc/gitlab-shell/config.yml +gitlab_nginx_log=/var/log/gitlab +gitlab_ssl_path=/etc/gitlab/ssl +gitlab_shell_root=/usr/share/gitlab-shell +gitlab_shell_log=/var/log/gitlab-shell +gitlab_log_dir=/var/log/gitlab +gitlab_tmpfiles_example=/usr/lib/gitlab/templates/tmpfiles.d/gitlab.conf.example +gitlab_tmpfiles_private=/var/lib/gitlab/tmpfiles.d-gitlab.conf +gitlab_tmpfiles=/usr/lib/tmpfiles.d/gitlab.conf +nginx_user=www-data +nginx_conf_example=/usr/lib/gitlab/templates/nginx.conf.example +nginx_ssl_conf_example=/usr/lib/gitlab/templates/nginx.ssl.conf.example +nginx_site_private=/var/lib/gitlab/nginx.conf diff --git a/debian/install b/debian/install index 621767263e..f7bed76108 100644 --- a/debian/install +++ b/debian/install @@ -4,6 +4,7 @@ debian/conf/database.yml etc/gitlab debian/conf/gitlab.yml.example usr/lib/gitlab/templates debian/conf/resque.yml etc/gitlab debian/conf/gitlab-debian.conf.example usr/lib/gitlab/templates +debian/conf/gitlab-debian.defaults usr/lib/gitlab debian/conf/*.target lib/systemd/system debian/conf/smtp_settings.rb etc/gitlab/initializers debian/conf/tmpfiles.d/gitlab.conf.example usr/lib/gitlab/templates/tmpfiles.d diff --git a/debian/postinst b/debian/postinst index 58dd3eb227..ec8de0f0c5 100755 --- a/debian/postinst +++ b/debian/postinst @@ -7,6 +7,17 @@ set -e +# Setup variables +# Now using gitlab-debian.defaults to override variables used only in +# maintainer scripts. Earlier versions used gitlab-debian.conf for this. +# Now gitlab-debian.conf will only have user/admin configurable variables +# and variables required by systemd services. +gitlab_debian_conf_example=/usr/lib/gitlab/templates/gitlab-debian.conf.example +gitlab_debian_conf_private=/var/lib/gitlab/gitlab-debian.conf +gitlab_debian_conf=/etc/gitlab/gitlab-debian.conf +gitlab_debian_defaults=/usr/lib/gitlab/gitlab-debian.defaults +gitlab_debian_defaults_copy=/var/lib/gitlab/gitlab-debian.defaults + # Show debconf questions . /usr/share/debconf/confmodule @@ -34,7 +45,6 @@ set -e ####################################################################### # Bootstrap config file - first try -gitlab_debian_conf_example=/usr/lib/gitlab/templates/gitlab-debian.conf.example export $(cat ${gitlab_debian_conf_example}) # second try test -f ${gitlab_debian_conf_private} || \ @@ -44,6 +54,14 @@ export $(cat ${gitlab_debian_conf_private}) # If /etc/gitlab/gitlab-debian.conf is already present, use it test -f ${gitlab_debian_conf} && export $(cat ${gitlab_debian_conf}) +# Read default values (we cannot do this before gitlab-debian.conf is exported +# as we want to override variables set by gitlab-debian.conf in earlier gitlab +# versions with gitlab-debian.defaults) +. ${gitlab_debian_defaults} + +# Copy defaults for use with postrm +cp ${gitlab_debian_defaults} ${gitlab_debian_defaults_copy} + # Read gitlab_user from debconf db db_get gitlab/user gitlab_user=${RET:-gitlab} >/dev/null diff --git a/debian/postrm b/debian/postrm index ce08093024..10b1a8d0d4 100644 --- a/debian/postrm +++ b/debian/postrm @@ -6,6 +6,10 @@ # Abort if any command returns an error value set -e +# Set variables +gitlab_debian_conf=/etc/gitlab/gitlab-debian.conf +gitlab_debian_defaults=/var/lib/gitlab/gitlab-debian.defaults + # This script is called twice during the removal of the package; once # after the removal of the package's files from the system, and as # the final step in the removal of this package, after the package's @@ -14,8 +18,8 @@ set -e # Ensure the menu system is updated # Read and export debian specific configuration -gitlab_debian_conf=/etc/gitlab/gitlab-debian.conf test -f ${gitlab_debian_conf} && export $(cat ${gitlab_debian_conf}) +. ${gitlab_debian_defaults} case "$1" in remove)