various fixes after testing [release 13.10.0-2mamba;Mon Mar 29 2021]
This commit is contained in:
parent
56d1a0541e
commit
2557c5c2db
@ -1,2 +1,6 @@
|
||||
# gitlab-foss
|
||||
|
||||
GitLab Community Edition (CE) is open source software to collaborate on code.
|
||||
Create projects and repositories, manage access and do code reviews.
|
||||
GitLab CE is on-premises software that you can install and use on your server(s).
|
||||
|
||||
|
11
gitlab-13.10.0-Gemfile-mimemagic-fix.patch
Normal file
11
gitlab-13.10.0-Gemfile-mimemagic-fix.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- gitlab-foss-13.10.0/Gemfile.orig 2021-03-28 22:15:03.398252822 +0200
|
||||
+++ gitlab-foss-13.10.0/Gemfile 2021-03-28 22:15:17.792514825 +0200
|
||||
@@ -277,7 +277,7 @@
|
||||
gem 'charlock_holmes', '~> 0.7.7'
|
||||
|
||||
# Detect mime content type from content
|
||||
-gem 'mimemagic', '~> 0.3.2'
|
||||
+gem 'mimemagic', '0.3.5', git: 'https://github.com/mimemagicrb/mimemagic', ref: '01f92d8'
|
||||
|
||||
# Faster blank
|
||||
gem 'fast_blank'
|
44
gitlab-apache-conf
Normal file
44
gitlab-apache-conf
Normal file
@ -0,0 +1,44 @@
|
||||
#This configuration has been tested on GitLab 6.0.0 and GitLab 6.0.1
|
||||
#Note this config assumes unicorn is listening on default port 8080.
|
||||
#Module dependencies
|
||||
# mod_rewrite
|
||||
# mod_proxy
|
||||
# mod_proxy_http
|
||||
<VirtualHost *:80>
|
||||
ServerName gitlab.example.com
|
||||
ServerSignature Off
|
||||
|
||||
ProxyPreserveHost On
|
||||
|
||||
<Location />
|
||||
# New authorization commands for apache 2.4 and up
|
||||
# http://httpd.apache.org/docs/2.4/upgrading.html#access
|
||||
Require all granted
|
||||
|
||||
ProxyPassReverse http://127.0.0.1:8080
|
||||
ProxyPassReverse http://gitlab.openmamba.org/
|
||||
</Location>
|
||||
|
||||
#apache equivalent of nginx try files
|
||||
# http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files
|
||||
# http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab
|
||||
RewriteEngine on
|
||||
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
|
||||
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
|
||||
|
||||
# needed for downloading attachments
|
||||
DocumentRoot /var/lib/gitlab/www/public
|
||||
|
||||
#Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
|
||||
ErrorDocument 404 /404.html
|
||||
ErrorDocument 422 /422.html
|
||||
ErrorDocument 500 /500.html
|
||||
ErrorDocument 503 /deploy.html
|
||||
|
||||
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
|
||||
ErrorLog /var/log/httpd/gitlab.example.com_error.log
|
||||
CustomLog /var/log/httpd/gitlab.example.com_forwarded.log common_forwarded
|
||||
CustomLog /var/log/httpd/gitlab.example.com_access.log combined env=!dontlog
|
||||
CustomLog /var/log/httpd/gitlab.example.com.log combined
|
||||
|
||||
</VirtualHost>
|
19
gitlab-backup.service
Normal file
19
gitlab-backup.service
Normal file
@ -0,0 +1,19 @@
|
||||
[Unit]
|
||||
Description=GitLab Backup process
|
||||
Requires=
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=gitlab
|
||||
Group=gitlab
|
||||
SyslogIdentifier=gitlab-backup
|
||||
WorkingDirectory=/usr/share/gitlab
|
||||
EnvironmentFile=/usr/share/gitlab/environment
|
||||
CapabilityBoundingSet=
|
||||
PrivateTmp=true
|
||||
PrivateDevices=true
|
||||
ProtectSystem=full
|
||||
ProtectHome=true
|
||||
NoNewPrivileges=true
|
||||
ExecStart=/usr/bin/bundle exec rake gitlab:backup:create
|
10
gitlab-backup.timer
Normal file
10
gitlab-backup.timer
Normal file
@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Daily gitlab backup
|
||||
|
||||
[Timer]
|
||||
OnCalendar=daily
|
||||
AccuracySec=12h
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
319
gitlab-configs.patch
Normal file
319
gitlab-configs.patch
Normal file
@ -0,0 +1,319 @@
|
||||
commit 3e313894380af46476b8ef5859bcd653defba3c4
|
||||
Author: Anatol Pomozov <anatol.pomozov@gmail.com>
|
||||
Date: Tue May 26 00:01:38 2020 -0700
|
||||
|
||||
Patch config files with Arch Linux specific locations
|
||||
|
||||
Arch uses upstream's default config files as a base for its configs.
|
||||
But directory structure at Arch is completely different from the default
|
||||
one specified by gitlab project.
|
||||
We used to have a lot of seds expressions to adjust the files but as
|
||||
complexity of configs grew 'sed' makes it easy to miss a changed/added
|
||||
option.
|
||||
|
||||
Track set of diffs as a patch. If upstream modifies config file then it
|
||||
will cause a conflict that needs to be reviewed manually.
|
||||
|
||||
diff --git a/config/database.yml.postgresql b/config/database.yml.postgresql
|
||||
index ca1ff4db1b4..7c6dbbf0a12 100644
|
||||
--- a/config/database.yml.postgresql
|
||||
+++ b/config/database.yml.postgresql
|
||||
@@ -5,7 +5,7 @@ production:
|
||||
adapter: postgresql
|
||||
encoding: unicode
|
||||
database: gitlabhq_production
|
||||
- username: git
|
||||
+ username: gitlab
|
||||
password: "secure password"
|
||||
host: localhost
|
||||
# load_balancing:
|
||||
@@ -38,7 +38,7 @@ staging:
|
||||
adapter: postgresql
|
||||
encoding: unicode
|
||||
database: gitlabhq_staging
|
||||
- username: git
|
||||
+ username: gitlab
|
||||
password: "secure password"
|
||||
host: localhost
|
||||
|
||||
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
|
||||
index 57ece521301..c3725baccdf 100644
|
||||
--- a/config/gitlab.yml.example
|
||||
+++ b/config/gitlab.yml.example
|
||||
@@ -85,7 +85,7 @@ production: &base
|
||||
#- 2001:0db8::/32
|
||||
|
||||
# Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
|
||||
- # user: git
|
||||
+ user: gitlab
|
||||
|
||||
## Date & Time settings
|
||||
# Uncomment and customize if you want to change the default time zone of GitLab application.
|
||||
@@ -105,15 +105,15 @@ production: &base
|
||||
# enabled: false
|
||||
# S/MIME private key file in PEM format, unencrypted
|
||||
# Default is '.gitlab_smime_key' relative to Rails.root (i.e. root of the GitLab app).
|
||||
- # key_file: /home/git/gitlab/.gitlab_smime_key
|
||||
+ # key_file: /var/lib/gitlab/.gitlab_smime_key
|
||||
# S/MIME public certificate key in PEM format, will be attached to signed messages
|
||||
# Default is '.gitlab_smime_cert' relative to Rails.root (i.e. root of the GitLab app).
|
||||
- # cert_file: /home/git/gitlab/.gitlab_smime_cert
|
||||
+ # cert_file: /var/lib/gitlab/.gitlab_smime_cert
|
||||
# S/MIME extra CA public certificates in PEM format, will be attached to signed messages
|
||||
# Optional
|
||||
- # ca_certs_file: /home/git/gitlab/.gitlab_smime_ca_certs
|
||||
+ # ca_certs_file: /var/lib/gitlab/.gitlab_smime_ca_certs
|
||||
|
||||
- # Email server smtp settings are in config/initializers/smtp_settings.rb.sample
|
||||
+ # Email server smtp settings are in /etc/gitlab/smtp_settings.rb
|
||||
|
||||
# default_can_create_group: false # default: true
|
||||
# username_changing_enabled: false # default: true - User can change their username/namespace
|
||||
@@ -159,7 +159,7 @@ production: &base
|
||||
## Repository downloads directory
|
||||
# When a user clicks e.g. 'Download zip' on a project, a temporary zip file is created in the following directory.
|
||||
# The default is 'shared/cache/archive/' relative to the root of the Rails app.
|
||||
- # repository_downloads_path: shared/cache/archive/
|
||||
+ repository_downloads_path: /var/lib/gitlab/shared/cache/archive
|
||||
|
||||
## Impersonation settings
|
||||
impersonation_enabled: true
|
||||
@@ -205,7 +205,7 @@ production: &base
|
||||
# Since `mail_room` is run independently of Rails, an absolute path is preferred.
|
||||
# The default is 'log/mail_room_json.log' relative to the root of the Rails app.
|
||||
#
|
||||
- # log_path: log/mail_room_json.log
|
||||
+ log_path: /var/log/gitlab/mail_room_json.log
|
||||
|
||||
# Whether to expunge (permanently remove) messages from the mailbox when they are deleted after delivery
|
||||
expunge_deleted: false
|
||||
@@ -244,7 +244,7 @@ production: &base
|
||||
artifacts:
|
||||
enabled: true
|
||||
# The location where build artifacts are stored (default: shared/artifacts).
|
||||
- # path: shared/artifacts
|
||||
+ path: /var/lib/gitlab/shared/artifacts
|
||||
# object_store:
|
||||
# enabled: false
|
||||
# remote_directory: artifacts # The bucket name
|
||||
@@ -264,7 +264,7 @@ production: &base
|
||||
# be stored on disk, or in object storage
|
||||
enabled: false
|
||||
# The location where external diffs are stored (default: shared/lfs-external-diffs).
|
||||
- # storage_path: shared/external-diffs
|
||||
+ storage_path: /var/lib/gitlab/shared/external-diffs
|
||||
# object_store:
|
||||
# enabled: false
|
||||
# remote_directory: external-diffs
|
||||
@@ -280,7 +280,7 @@ production: &base
|
||||
lfs:
|
||||
enabled: true
|
||||
# The location where LFS objects are stored (default: shared/lfs-objects).
|
||||
- # storage_path: shared/lfs-objects
|
||||
+ storage_path: /var/lib/gitlab/shared/lfs-objects
|
||||
object_store:
|
||||
enabled: false
|
||||
remote_directory: lfs-objects # Bucket name
|
||||
@@ -324,7 +324,7 @@ production: &base
|
||||
enabled: true
|
||||
dpkg_deb_path: /usr/bin/dpkg-deb
|
||||
# The location where build packages are stored (default: shared/packages).
|
||||
- # storage_path: shared/packages
|
||||
+ storage_path: /var/lib/gitlab/shared/packages
|
||||
object_store:
|
||||
enabled: false
|
||||
remote_directory: packages # The bucket name
|
||||
@@ -345,7 +345,7 @@ production: &base
|
||||
dependency_proxy:
|
||||
enabled: true
|
||||
# The location where build packages are stored (default: shared/dependency_proxy).
|
||||
- # storage_path: shared/dependency_proxy
|
||||
+ storage_path: /var/lib/gitlab/shared/dependency_proxy
|
||||
object_store:
|
||||
enabled: false
|
||||
remote_directory: dependency_proxy # The bucket name
|
||||
@@ -366,7 +366,7 @@ production: &base
|
||||
terraform_state:
|
||||
enabled: true
|
||||
# The location where Terraform state files are stored (default: shared/terraform_state).
|
||||
- # storage_path: shared/terraform_state
|
||||
+ storage_path: /var/lib/gitlab/shared/terraform_state
|
||||
object_store:
|
||||
enabled: false
|
||||
remote_directory: terraform # The bucket name
|
||||
@@ -385,7 +385,7 @@ production: &base
|
||||
enabled: false
|
||||
access_control: false
|
||||
# The location where pages are stored (default: shared/pages).
|
||||
- # path: shared/pages
|
||||
+ path: /var/lib/gitlab/shared/pages
|
||||
|
||||
# The domain under which the pages are served:
|
||||
# http://group.example.com/project
|
||||
@@ -399,7 +399,7 @@ production: &base
|
||||
|
||||
# File that contains the shared secret key for verifying access for gitlab-pages.
|
||||
# Default is '.gitlab_pages_secret' relative to Rails.root (i.e. root of the GitLab app).
|
||||
- # secret_file: /home/git/gitlab/.gitlab_pages_secret
|
||||
+ secret_file: /var/lib/gitlab/.gitlab_pages_secret
|
||||
object_store:
|
||||
enabled: false
|
||||
remote_directory: pages # The bucket name
|
||||
@@ -557,7 +557,7 @@ production: &base
|
||||
# port: 5005
|
||||
# api_url: http://localhost:5000/ # internal address to the registry, will be used by GitLab to directly communicate with API
|
||||
# key: config/registry.key
|
||||
- # path: shared/registry
|
||||
+ path: /var/lib/gitlab/shared/registry
|
||||
# issuer: gitlab-issuer
|
||||
# notification_secret: '' # only set it when you use Geo replication feature without built-in Registry
|
||||
|
||||
@@ -614,7 +614,7 @@ production: &base
|
||||
# add_pusher: true
|
||||
|
||||
# The location where build traces are stored (default: builds/). Relative paths are relative to Rails.root
|
||||
- # builds_path: builds/
|
||||
+ builds_path: /var/lib/gitlab/builds
|
||||
|
||||
#
|
||||
# 3. Auth settings
|
||||
@@ -1064,7 +1064,7 @@ production: &base
|
||||
|
||||
# Shared file storage settings
|
||||
shared:
|
||||
- # path: /mnt/gitlab # Default: shared
|
||||
+ path: /var/lib/gitlab/shared # Default: shared
|
||||
|
||||
# Encrypted Settings configuration
|
||||
encrypted_settings:
|
||||
@@ -1073,7 +1073,7 @@ production: &base
|
||||
# Gitaly settings
|
||||
gitaly:
|
||||
# Path to the directory containing Gitaly client executables.
|
||||
- client_path: /home/git/gitaly
|
||||
+ client_path: /usr/bin
|
||||
# Default Gitaly authentication token. Can be overridden per storage. Can
|
||||
# be left blank when Gitaly is running locally on a Unix socket, which
|
||||
# is the normal way to deploy Gitaly.
|
||||
@@ -1091,13 +1091,13 @@ production: &base
|
||||
# real path not the symlink.
|
||||
storages: # You must have at least a `default` storage path.
|
||||
default:
|
||||
- path: /home/git/repositories/
|
||||
- gitaly_address: unix:/home/git/gitlab/tmp/sockets/private/gitaly.socket # TCP connections are supported too (e.g. tcp://host:port). TLS connections are also supported using the system certificate pool (eg: tls://host:port).
|
||||
+ path: /var/lib/gitlab/repositories
|
||||
+ gitaly_address: unix:/run/gitlab/gitlab-gitaly.socket # TCP connections are supported too (e.g. tcp://host:port). TLS connections are also supported using the system certificate pool (eg: tls://host:port).
|
||||
# gitaly_token: 'special token' # Optional: override global gitaly.token for this storage.
|
||||
|
||||
## Backup settings
|
||||
backup:
|
||||
- path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
|
||||
+ path: "/var/lib/gitlab/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
|
||||
# archive_permissions: 0640 # Permissions for the resulting backup.tar file (default: 0600)
|
||||
# keep_time: 604800 # default: 0 (forever) (in seconds)
|
||||
# pg_schema: public # default: nil, it means that all schemas will be backed up
|
||||
@@ -1138,12 +1138,12 @@ production: &base
|
||||
|
||||
## GitLab Shell settings
|
||||
gitlab_shell:
|
||||
- path: /home/git/gitlab-shell/
|
||||
- authorized_keys_file: /home/git/.ssh/authorized_keys
|
||||
+ path: /usr/share/gitlab-shell
|
||||
+ authorized_keys_file: /var/lib/gitlab/.ssh/authorized_keys
|
||||
|
||||
# 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).
|
||||
- # secret_file: /home/git/gitlab/.gitlab_shell_secret
|
||||
+ # secret_file: /var/lib/gitlab/.gitlab_shell_secret
|
||||
|
||||
# Git over HTTP
|
||||
upload_pack: true
|
||||
@@ -1158,13 +1158,13 @@ production: &base
|
||||
workhorse:
|
||||
# File that contains the secret key for verifying access for gitlab-workhorse.
|
||||
# Default is '.gitlab_workhorse_secret' relative to Rails.root (i.e. root of the GitLab app).
|
||||
- # secret_file: /home/git/gitlab/.gitlab_workhorse_secret
|
||||
+ # secret_file: /var/lib/gitlab/.gitlab_workhorse_secret
|
||||
|
||||
gitlab_kas:
|
||||
# enabled: true
|
||||
# File that contains the secret key for verifying access for gitlab-kas.
|
||||
# Default is '.gitlab_kas_secret' relative to Rails.root (i.e. root of the GitLab app).
|
||||
- # secret_file: /home/git/gitlab/.gitlab_kas_secret
|
||||
+ # secret_file: /var/lib/gitlab/.gitlab_kas_secret
|
||||
|
||||
# The URL to the external KAS API (used by the Kubernetes agents)
|
||||
# external_url: wss://kas.example.com
|
||||
@@ -1174,7 +1174,7 @@ production: &base
|
||||
|
||||
## GitLab Elasticsearch settings
|
||||
elasticsearch:
|
||||
- indexer_path: /home/git/gitlab-elasticsearch-indexer/
|
||||
+ indexer_path: /var/lib/gitlab/elasticsearch-indexer
|
||||
|
||||
## Git settings
|
||||
# CAUTION!
|
||||
diff --git a/config/initializers/smtp_settings.rb.sample b/config/initializers/smtp_settings.rb.sample
|
||||
index bd37080b1c8..f956e786071 100644
|
||||
--- a/config/initializers/smtp_settings.rb.sample
|
||||
+++ b/config/initializers/smtp_settings.rb.sample
|
||||
@@ -1,13 +1,6 @@
|
||||
-# To enable smtp email delivery for your GitLab instance do the following:
|
||||
-# 1. Rename this file to smtp_settings.rb
|
||||
-# 2. Edit settings inside this file
|
||||
-# 3. Restart GitLab instance
|
||||
-#
|
||||
# For full list of options and their values see http://api.rubyonrails.org/classes/ActionMailer/Base.html
|
||||
-#
|
||||
-# If you change this file in a Merge Request, please also create a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests
|
||||
|
||||
-if Rails.env.production?
|
||||
+if false # To enable SMTP please replace 'false' with 'Rails.env.production?'
|
||||
Rails.application.config.action_mailer.delivery_method = :smtp
|
||||
|
||||
ActionMailer::Base.delivery_method = :smtp
|
||||
diff --git a/config/puma.rb.example b/config/puma.rb.example
|
||||
index 9fc354a8fe8..e665079117e 100644
|
||||
--- a/config/puma.rb.example
|
||||
+++ b/config/puma.rb.example
|
||||
@@ -5,11 +5,11 @@
|
||||
# The default is "config.ru".
|
||||
#
|
||||
rackup 'config.ru'
|
||||
-pidfile '/home/git/gitlab/tmp/pids/puma.pid'
|
||||
-state_path '/home/git/gitlab/tmp/pids/puma.state'
|
||||
+pidfile '/run/gitlab/puma.pid'
|
||||
+state_path '/run/gitlab/puma.state'
|
||||
|
||||
-stdout_redirect '/home/git/gitlab/log/puma.stdout.log',
|
||||
- '/home/git/gitlab/log/puma.stderr.log',
|
||||
+stdout_redirect '/var/log/gitlab/puma.stdout.log',
|
||||
+ '/var/log/gitlab/puma.stderr.log',
|
||||
true
|
||||
|
||||
# Configure "min" to be the minimum number of threads to use to answer
|
||||
@@ -31,12 +31,12 @@ queue_requests false
|
||||
|
||||
# Bind the server to "url". "tcp://", "unix://" and "ssl://" are the only
|
||||
# accepted protocols.
|
||||
-bind 'unix:///home/git/gitlab/tmp/sockets/gitlab.socket'
|
||||
+bind 'unix:///run/gitlab/gitlab.socket'
|
||||
|
||||
workers 3
|
||||
|
||||
-require_relative "/home/git/gitlab/lib/gitlab/cluster/lifecycle_events"
|
||||
-require_relative "/home/git/gitlab/lib/gitlab/cluster/puma_worker_killer_initializer"
|
||||
+require_relative "/usr/share/gitlab/lib/gitlab/cluster/lifecycle_events"
|
||||
+require_relative "/usr/share/gitlab/lib/gitlab/cluster/puma_worker_killer_initializer"
|
||||
|
||||
on_restart do
|
||||
# Signal application hooks that we're about to restart
|
||||
@@ -80,7 +80,7 @@ if defined?(nakayoshi_fork)
|
||||
end
|
||||
|
||||
# Use json formatter
|
||||
-require_relative "/home/git/gitlab/lib/gitlab/puma_logging/json_formatter"
|
||||
+require_relative "/usr/share/gitlab/lib/gitlab/puma_logging/json_formatter"
|
||||
|
||||
json_formatter = Gitlab::PumaLogging::JSONFormatter.new
|
||||
log_formatter do |str|
|
3
gitlab-environment
Normal file
3
gitlab-environment
Normal file
@ -0,0 +1,3 @@
|
||||
RAILS_ENV=production
|
||||
EXECJS_RUNTIME=Disabled
|
||||
RUBYOPT='-W:no-deprecated'
|
266
gitlab-foss.spec
Normal file
266
gitlab-foss.spec
Normal file
@ -0,0 +1,266 @@
|
||||
# Based on Arch Linux PKGBUILD for 13.10.0
|
||||
%define gitlab_uid 65434
|
||||
%define gitlab_gid 65434
|
||||
%define _use_internal_dependency_generator 0
|
||||
|
||||
Name: gitlab-foss
|
||||
Version: 13.10.0
|
||||
Release: 2mamba
|
||||
Summary: A Web interface to create projects and repositories, manage access and do code reviews
|
||||
Group: Applications/Web
|
||||
Vendor: openmamba
|
||||
Distribution: openmamba
|
||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
URL: https://www.gitlab.com/gitlab-foss/
|
||||
Source: https://gitlab.com/gitlab-org/gitlab-foss.git/v%{version}/gitlab-foss-%{version}.tar.bz2
|
||||
#Source: https://gitlab.com/gitlab-org/gitlab-ce.git/v%{version}/gitlab-ce-%{version}.tar.bz2
|
||||
License: MIT
|
||||
Source1: gitlab.target
|
||||
Source2: gitlab-sidekiq.service
|
||||
Source3: gitlab-unicorn.service
|
||||
Source4: gitlab.logrotate
|
||||
Source5: gitlab.tmpfiles.d
|
||||
Source6: gitlab-apache-conf
|
||||
Source7: gitlab-environment
|
||||
Source8: gitlab-backup.service
|
||||
Source9: gitlab-backup.timer
|
||||
Source10: gitlab-mailroom.service
|
||||
Source11: gitlab-puma.service
|
||||
Patch0: gitlab-configs.patch
|
||||
Patch1: gitlab-13.10.0-Gemfile-mimemagic-fix.patch
|
||||
## AUTOBUILDREQ-BEGIN
|
||||
BuildRequires: glibc-devel
|
||||
BuildRequires: libassuan-devel
|
||||
BuildRequires: libffi-devel
|
||||
BuildRequires: libgcc
|
||||
BuildRequires: libgpg-error-devel
|
||||
BuildRequires: libgpgme-devel
|
||||
BuildRequires: libicu-devel
|
||||
BuildRequires: liblzma-devel
|
||||
BuildRequires: libopenssl-devel
|
||||
BuildRequires: libperl
|
||||
BuildRequires: libpostgresql-devel
|
||||
BuildRequires: libre2-devel
|
||||
BuildRequires: libruby-devel
|
||||
BuildRequires: libssh2-devel
|
||||
BuildRequires: libstdc++6-devel
|
||||
BuildRequires: libz-devel
|
||||
BuildRequires: perl-File-Find-Rule
|
||||
BuildRequires: perl-IPC-Run3
|
||||
BuildRequires: perl-devel
|
||||
BuildRequires: perl-Parallel-Runner
|
||||
## AUTOBUILDREQ-END
|
||||
BuildRequires: ruby
|
||||
BuildRequires: yarn
|
||||
BuildRequires: go
|
||||
BuildRequires: nodejs
|
||||
Requires: ruby >= 1:2.7
|
||||
Requires: ruby < 1:2.8
|
||||
Requires: redis
|
||||
Requires: postgresql
|
||||
#Requires: apache
|
||||
Requires: git
|
||||
Requires(pre): gitlab-shell >= 13.17.0
|
||||
Requires: gitlab-gitaly
|
||||
Requires: gitlab-workhorse
|
||||
Provides: gitlab
|
||||
Obsoletes: gitlab < 13.10.0
|
||||
Obsoletes: gitlab-ce < 13.10.0
|
||||
|
||||
%description
|
||||
GitLab Community Edition (CE) is open source software to collaborate on code.
|
||||
Create projects and repositories, manage access and do code reviews.
|
||||
GitLab CE is on-premises software that you can install and use on your server(s).
|
||||
|
||||
%debug_package
|
||||
|
||||
%prep
|
||||
%setup -q -n gitlab-foss-%{version} -D -T
|
||||
:<< _EOF
|
||||
|
||||
%global __requires_exclude_from ^%{_datadir}/gitlab/vendor/.*$
|
||||
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
cp config/gitlab.yml.example config/gitlab.yml
|
||||
cp config/database.yml.postgresql config/database.yml
|
||||
cp config/puma.rb.example config/puma.rb
|
||||
cp config/resque.yml.example config/resque.yml
|
||||
cp config/secrets.yml.example config/secrets.yml
|
||||
cp config/initializers/smtp_settings.rb.sample config/initializers/smtp_settings.rb
|
||||
|
||||
# https://github.com/bundler/bundler/issues/6882
|
||||
sed -e '/BUNDLED WITH/,+1d' -i Gemfile.lock
|
||||
bundle lock --update=bundler-audit
|
||||
# 'lock' adds 'BUNDLED WITH' back. Remove it again.
|
||||
sed -e '/BUNDLED WITH/,+1d' -i Gemfile.lock
|
||||
|
||||
%build
|
||||
:<< _EOF
|
||||
|
||||
echo "Fetching bundled gems..."
|
||||
# Gems will be installed into vendor/bundle
|
||||
bundle config build.gpgme --use-system-libraries
|
||||
bundle config force_ruby_platform true
|
||||
bundle install --jobs=$(nproc) --no-cache --deployment --without development test aws kerberos
|
||||
|
||||
yarn install --production --pure-lockfile
|
||||
bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
|
||||
bundle exec rake gettext:compile RAILS_ENV=production
|
||||
|
||||
%install
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
|
||||
%define homedir %{_localstatedir}/lib/gitlab
|
||||
|
||||
install -d %{buildroot}%{_datadir}/gitlab
|
||||
|
||||
cp -r * %{buildroot}%{_datadir}/gitlab/
|
||||
cp -r .[a-zA-Z0-9]* %{buildroot}%{_datadir}/gitlab/
|
||||
|
||||
# Remove unneeded directories: node_modules is only needed during build
|
||||
rm -r %{buildroot}%{_datadir}/gitlab/node_modules
|
||||
for dir in spec qa rubocop app/assets vendor/assets; do
|
||||
rm -r %{buildroot}%{_datadir}/gitlab/${dir}
|
||||
done
|
||||
|
||||
rm -r %{buildroot}%{_datadir}/gitlab/{builds,tmp,log,shared}
|
||||
|
||||
install -d \
|
||||
%{buildroot}%{_datadir}/gitlab \
|
||||
%{buildroot}%{homedir}/shared/{artifacts,lfs-objects} \
|
||||
%{buildroot}%{homedir}/builds \
|
||||
%{buildroot}%{homedir}/uploads \
|
||||
%{buildroot}%{homedir}/backups \
|
||||
%{buildroot}%{_sysconfdir}/gitlab \
|
||||
%{buildroot}%{_localstatedir}/log/gitlab \
|
||||
%{buildroot}%{_docdir}/gitlab \
|
||||
|
||||
# Rails app hardcodes/configures by default that data is stored under $_appdir
|
||||
# Create symlinks that point to data directories under /var
|
||||
ln -fs %{_localstatedir}/log/gitlab %{buildroot}%{_datadir}/gitlab/log
|
||||
ln -fs ../../..%{homedir}/builds %{buildroot}%{_datadir}/gitlab/builds
|
||||
ln -fs ../../..%{homedir}/tmp %{buildroot}%{_datadir}/gitlab/tmp
|
||||
mkdir -p %{buildroot}%{homedir}/tmp/backups
|
||||
ln -fs ../../../..%{homedir}/uploads %{buildroot}%{_datadir}/gitlab/public/uploads
|
||||
ln -fs ../../..%{homedir}/shared %{buildroot}%{_datadir}/gitlab/shared
|
||||
|
||||
# TODO: workhorse and shell secret files are the application data and should be stored under /var/lib/gitlab
|
||||
ln -fs ../../..%{_sysconfdir}/gitlab/gitlab_workhorse_secret %{buildroot}%{_datadir}/gitlab/.gitlab_workhorse_secret
|
||||
ln -fs ../../..%{_sysconfdir}/gitlab/gitlab-shell-secret %{buildroot}%{_datadir}/gitlab/.gitlab_shell_secret
|
||||
|
||||
# Install config files
|
||||
for config_file in gitlab.yml database.yml puma.rb resque.yml secrets.yml; do
|
||||
cp config/${config_file} %{buildroot}%{_sysconfdir}/gitlab/
|
||||
# TODO: configure rails app to use configs right from /etc
|
||||
ln -fs ../../../..%{_sysconfdir}/gitlab/${config_file} %{buildroot}%{_datadir}/gitlab/config/
|
||||
done
|
||||
cp config/initializers/smtp_settings.rb %{buildroot}%{_sysconfdir}/gitlab/
|
||||
ln -fs ../../../../..%{_sysconfdir}/gitlab/smtp_settings.rb %{buildroot}%{_datadir}/gitlab/config/initializers/smtp_settings.rb
|
||||
|
||||
# Install secrets symlink
|
||||
# TODO: ruby uses _appdir to load config files. Figure out if we can load files directly from /etc
|
||||
ln -fs ../../../..%{_sysconfdir}/gitlab/secrets.yml %{buildroot}%{_datadir}/gitlab/config/secrets.yml
|
||||
|
||||
install -Dm644 %{SOURCE7} %{buildroot}%{_datadir}/gitlab/environment
|
||||
|
||||
# Install systemd service files
|
||||
install -D -m0644 %{S:1} %{buildroot}%{_unitdir}/gitlab.target
|
||||
install -D -m0644 %{S:2} %{buildroot}%{_unitdir}/gitlab-sidekiq.service
|
||||
install -D -m0644 %{S:3} %{buildroot}%{_unitdir}/gitlab-unicorn.service
|
||||
install -D -m0644 %{S:8} %{buildroot}%{_unitdir}/gitlab-backup.service
|
||||
install -D -m0644 %{S:9} %{buildroot}%{_unitdir}/gitlab-backup.timer
|
||||
install -D -m0644 %{S:10} %{buildroot}%{_unitdir}/gitlab-mailroom.service
|
||||
install -D -m0644 %{S:11} %{buildroot}%{_unitdir}/gitlab-puma.service
|
||||
install -D -m0644 %{S:4} %{buildroot}%{_sysconfdir}/logrotate.d/gitlab.logrotate
|
||||
install -D -m0644 %{S:5} %{buildroot}%{_tmpfilesdir}/gitlab.conf
|
||||
install -D -m0644 %{S:6} %{buildroot}%{_sysconfdir}/httpd/httpd.d/gitlab.conf.example
|
||||
|
||||
# Fix weird shebang causing weird require
|
||||
sed -i "s|#!/this/.*|#!/usr/bin/ruby|" %{buildroot}%{_datadir}/gitlab/vendor/bundle/ruby/*/gems/unicorn-*/bin/unicorn*
|
||||
|
||||
%clean
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
|
||||
%preun
|
||||
%systemd_preun gitlab.target
|
||||
:
|
||||
|
||||
%post
|
||||
%systemd_post gitlab.target
|
||||
|
||||
if [ $1 -eq 1 ]; then
|
||||
echo "Configure your /etc/gitlab/gitlab.yml"
|
||||
echo "Set up your redis to run on /run/redis/redis.sock or configure gitlab to use redis TCP"
|
||||
echo "Put a secret bytestring to /etc/gitlab/secret"
|
||||
echo "Configure /etc/webapps/gitlab/secrets.yml"
|
||||
echo "Setup the database:"
|
||||
echo "$ (cd /usr/share/gitlab && sudo -u gitlab \$(cat environment | xargs) bundle exec rake gitlab:setup)"
|
||||
echo "Finally run the following commands to check your installation:"
|
||||
echo "$ (cd /usr/share/gitlab && sudo -u gitlab \$(cat environment | xargs) bundle exec rake gitlab:env:info)"
|
||||
echo "$ (cd /usr/share/gitlab && sudo -u gitlab \$(cat environment | xargs) bundle exec rake gitlab:check)"
|
||||
#sudo -u gitlab -H git config --global user.name "GitLab"
|
||||
#sudo -u gitlab -H git config --global user.email "gitlab@localhost"
|
||||
#sudo -u gitlab -H git config --global core.autocrlf input
|
||||
#echo "Create and configure database in /etc/gitlab/database.yml"
|
||||
#echo "Then run 'sudo -u gitlab bundle exec rake gitlab:setup RAILS_ENV=production'"
|
||||
#echo
|
||||
fi
|
||||
if [ $1 -gt 1 ]; then
|
||||
echo "You should upgrade your database:"
|
||||
echo "$ (cd /usr/share/gitlab && sudo -u gitlab \$(cat environment | xargs) bundle exec rake db:migrate)"
|
||||
echo "Afterwards, restart gitlab-related services:"
|
||||
echo "# systemctl daemon-reload"
|
||||
echo "# systemctl restart gitlab-sidekiq gitlab-puma gitlab-workhorse gitlab-gitaly"
|
||||
fi
|
||||
:
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart gitlab.target
|
||||
:
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%dir %{_sysconfdir}/gitlab
|
||||
%config(noreplace) %{_sysconfdir}/gitlab/database.yml
|
||||
%config(noreplace) %{_sysconfdir}/gitlab/gitlab.yml
|
||||
%config(noreplace) %{_sysconfdir}/gitlab/puma.rb
|
||||
%config(noreplace) %{_sysconfdir}/gitlab/resque.yml
|
||||
%config(noreplace) %{_sysconfdir}/gitlab/secrets.yml
|
||||
%config(noreplace) %{_sysconfdir}/gitlab/smtp_settings.rb
|
||||
%{_sysconfdir}/httpd/httpd.d/gitlab.conf.example
|
||||
%{_sysconfdir}/logrotate.d/gitlab.logrotate
|
||||
%{_unitdir}/gitlab-backup.service
|
||||
%{_unitdir}/gitlab-backup.timer
|
||||
%{_unitdir}/gitlab-mailroom.service
|
||||
%{_unitdir}/gitlab-puma.service
|
||||
%{_unitdir}/gitlab-sidekiq.service
|
||||
%{_unitdir}/gitlab-unicorn.service
|
||||
%{_unitdir}/gitlab.target
|
||||
%{_tmpfilesdir}/gitlab.conf
|
||||
%{_datadir}/gitlab
|
||||
%dir %attr(0750,gitlab,gitlab) %{homedir}/builds
|
||||
%dir %attr(0700,gitlab,gitlab) %{homedir}/uploads
|
||||
%dir %attr(0750,gitlab,gitlab) %{homedir}/shared
|
||||
%dir %attr(0750,gitlab,gitlab) %{homedir}/shared/artifacts
|
||||
%dir %attr(0750,gitlab,gitlab) %{homedir}/shared/lfs-objects
|
||||
%dir %attr(0750,gitlab,gitlab) %{homedir}/tmp
|
||||
%dir %attr(0750,gitlab,gitlab) %{homedir}/tmp/backups
|
||||
%doc LICENSE
|
||||
|
||||
%changelog
|
||||
* Mon Mar 29 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 13.10.0-2mamba
|
||||
- various fixes after testing
|
||||
|
||||
* Sun Mar 28 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 13.10.0-1mamba
|
||||
- update to 13.10.0
|
||||
|
||||
* Sat Nov 21 2015 Silvan Calarco <silvan.calarco@mambasoft.it> 8.1.4-1mamba
|
||||
- update to 8.1.4
|
||||
|
||||
* Tue Jul 08 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 6.9.2-1mamba
|
||||
- update to 6.9.2
|
||||
|
||||
* Sun May 25 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 6.9.0-1mamba
|
||||
- package created using the webbuild interface
|
21
gitlab-mailroom.service
Normal file
21
gitlab-mailroom.service
Normal file
@ -0,0 +1,21 @@
|
||||
[Unit]
|
||||
Description=Gitlab Mailroom Worker
|
||||
Requires=gitlab-puma.service
|
||||
Wants=gitlab-puma.service
|
||||
After=gitlab-puma.service
|
||||
StartLimitIntervalSec=100s
|
||||
|
||||
[Service]
|
||||
User=gitlab
|
||||
Group=gitlab
|
||||
WorkingDirectory=/usr/share/gitlab
|
||||
EnvironmentFile=/usr/share/gitlab/environment
|
||||
SyslogIdentifier=gitlab-mailroom
|
||||
PIDFile=/run/gitlab/mailroom.pid
|
||||
ExecStart=/usr/bin/bundle exec mail_room -q -c /usr/share/gitlab/config/mail_room.yml
|
||||
ExecStop=/usr/bin/kill -QUIT $MAINPID
|
||||
Restart=on-failure
|
||||
RestartSec=1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
34
gitlab-puma.service
Normal file
34
gitlab-puma.service
Normal file
@ -0,0 +1,34 @@
|
||||
[Unit]
|
||||
Description=GitLab Puma Server
|
||||
Requires=redis.service
|
||||
Wants=postgresql.service
|
||||
After=redis.service postgresql.service network.target
|
||||
StartLimitIntervalSec=100s
|
||||
|
||||
[Service]
|
||||
User=gitlab
|
||||
Group=gitlab
|
||||
WorkingDirectory=/usr/share/gitlab
|
||||
EnvironmentFile=/usr/share/gitlab/environment
|
||||
SyslogIdentifier=gitlab-puma
|
||||
PIDFile=/run/gitlab/puma.pid
|
||||
RuntimeDirectory=gitlab
|
||||
RuntimeDirectoryPreserve=yes
|
||||
RuntimeDirectoryMode=775
|
||||
PrivateTmp=true
|
||||
PrivateDevices=true
|
||||
ProtectSystem=full
|
||||
ProtectHome=true
|
||||
# These options break Gitlab's email delivery if you
|
||||
# use postfix' sendmail wrapper. If you use an SMTP server
|
||||
# instead you can safely enable these security features.
|
||||
#NoNewPrivileges=true
|
||||
#CapabilityBoundingSet=
|
||||
ExecStart=/usr/bin/bundle exec puma -C /usr/share/gitlab/config/puma.rb -e production
|
||||
ExecStop=/usr/bin/kill -QUIT $MAINPID
|
||||
ExecReload=/usr/bin/kill -USR2 $MAINPID
|
||||
Restart=on-failure
|
||||
RestartSec=1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
30
gitlab-sidekiq.service
Normal file
30
gitlab-sidekiq.service
Normal file
@ -0,0 +1,30 @@
|
||||
[Unit]
|
||||
Description=GitLab Sidekiq Worker
|
||||
Requires=redis.service gitlab-puma.service
|
||||
Wants=postgresql.service
|
||||
After=redis.service postgresql.service network.target gitlab-puma.service
|
||||
JoinsNamespaceOf=gitlab-puma.service
|
||||
StartLimitIntervalSec=100s
|
||||
|
||||
[Service]
|
||||
User=gitlab
|
||||
Group=gitlab
|
||||
WorkingDirectory=/usr/share/gitlab
|
||||
EnvironmentFile=/usr/share/gitlab/environment
|
||||
SyslogIdentifier=gitlab-sidekiq
|
||||
PIDFile=/run/gitlab/sidekiq.pid
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
ProtectHome=true
|
||||
# These options break Gitlab's email delivery if you
|
||||
# use postfix' sendmail wrapper. If you use an SMTP server
|
||||
# instead you can safely enable these security features.
|
||||
#NoNewPrivileges=true
|
||||
#CapabilityBoundingSet=
|
||||
ExecStart=/usr/bin/bundle exec sidekiq -C /usr/share/gitlab/config/sidekiq_queues.yml -e production
|
||||
ExecStop=/usr/bin/bundle exec sidekiqctl stop /run/gitlab/sidekiq.pid
|
||||
Restart=on-failure
|
||||
RestartSec=1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
24
gitlab-unicorn.service
Normal file
24
gitlab-unicorn.service
Normal file
@ -0,0 +1,24 @@
|
||||
#####################################################
|
||||
#
|
||||
# GitLab version : 5.x - 6.x
|
||||
# Contributors : davispuh, mtorromeo, axilleas, boeserwolf91
|
||||
# Downloaded from : https://github.com/gitlabhq/gitlab-recipes/tree/master/init/systemd
|
||||
#
|
||||
####################################################
|
||||
|
||||
[Unit]
|
||||
Description=GitLab Unicorn Server
|
||||
|
||||
[Service]
|
||||
User=gitlab
|
||||
WorkingDirectory=/var/lib/gitlab
|
||||
Environment=RAILS_ENV=production
|
||||
SyslogIdentifier=gitlab-unicorn
|
||||
PIDFile=/var/lib/gitlab/pids/unicorn.pid
|
||||
|
||||
ExecStart=/var/lib/gitlab/bin/bundle exec "unicorn_rails -c /var/lib/gitlab/config/unicorn.rb -E production"
|
||||
ExecStop=kill -QUIT $MAINPID
|
||||
ExecReload=kill -USR2 $MAINPID
|
||||
|
||||
[Install]
|
||||
WantedBy=gitlab.target
|
6
gitlab.logrotate
Normal file
6
gitlab.logrotate
Normal file
@ -0,0 +1,6 @@
|
||||
/var/log/gitlab/*.log {
|
||||
missingok
|
||||
compress
|
||||
notifempty
|
||||
copytruncate
|
||||
}
|
7
gitlab.target
Normal file
7
gitlab.target
Normal file
@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=GitLab - Self Hosted Git Management
|
||||
Requires=gitlab-puma.service gitlab-workhorse.service
|
||||
Wants=gitlab-sidekiq.service gitlab-backup.timer gitlab-gitaly.service gitlab-mailroom.service
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
1
gitlab.tmpfiles.d
Normal file
1
gitlab.tmpfiles.d
Normal file
@ -0,0 +1 @@
|
||||
d /run/gitlab 0755 gitlab gitlab -
|
Reference in New Issue
Block a user