diff --git a/README.md b/README.md index 0e2ac14..31178ad 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # gitlab-gitaly +Speed up Git access using caching. + diff --git a/gitlab-gitaly-configs.patch b/gitlab-gitaly-configs.patch new file mode 100644 index 0000000..fe2f254 --- /dev/null +++ b/gitlab-gitaly-configs.patch @@ -0,0 +1,99 @@ +commit 438448e3b000359b1c9ec16d2918605888f5903e +Author: Anatol Pomozov +Date: Tue May 26 00:26:02 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.toml.example b/config.toml.example +index befe90a3..d4317462 100644 +--- a/config.toml.example ++++ b/config.toml.example +@@ -2,10 +2,10 @@ + # Documentation lives at https://docs.gitlab.com/ee/administration/gitaly/ and + # https://docs.gitlab.com/ee//administration/gitaly/reference + +-socket_path = "/home/git/gitlab/tmp/sockets/private/gitaly.socket" ++socket_path = "/run/gitlab/gitlab-gitaly.socket" + + # The directory where Gitaly's executables are stored +-bin_dir = "/home/git/gitaly" ++bin_dir = "/usr/bin" + + # # Optional: listen on a TCP socket. This is insecure (no authentication) + # listen_addr = "localhost:9999" +@@ -17,7 +17,7 @@ bin_dir = "/home/git/gitaly" + # # Optional: configure where the Gitaly creates the sockets for internal connections. If unset, Gitaly will create a randomly + # # named temp directory each time it boots. + # # Non Gitaly clients should never connect to these sockets. +-# internal_socket_dir = "/home/git/gitlab/tmp/sockets/private/internal" ++# internal_socket_dir = "/run/gitlab/private" + + # # Optional: authenticate Gitaly requests using a shared secret + # [auth] +@@ -25,8 +25,8 @@ bin_dir = "/home/git/gitaly" + # transitioning = false # Set `transitioning` to true to temporarily allow unauthenticated while rolling out authentication. + + # [tls] +-# certificate_path = '/home/git/cert.cert' +-# key_path = '/home/git/key.pem' ++# certificate_path = '/var/lib/gitlab/cert.cert' ++# key_path = '/var/lib/gitlab/key.pem' + + # # Git settings + # [git] +@@ -35,7 +35,7 @@ bin_dir = "/home/git/gitaly" + + [[storage]] + name = "default" +-path = "/home/git/repositories" ++path = "/var/lib/gitlab/repositories" + + # # You can optionally configure more storages for this Gitaly instance to serve up + # +@@ -47,7 +47,7 @@ path = "/home/git/repositories" + # # You can optionally configure Gitaly to output JSON-formatted log messages to stdout + # [logging] + # # The directory where Gitaly stores extra log files +-dir = "/home/git/gitlab/log" ++dir = "/var/log/gitlab" + # format = "json" + # # Optional: Set log level to only log entries with that severity or above + # # One of, in order: debug, info, warn, errror, fatal, panic +@@ -65,7 +65,7 @@ dir = "/home/git/gitlab/log" + + [gitaly-ruby] + # The directory where gitaly-ruby is installed +-dir = "/home/git/gitaly/ruby" ++dir = "/usr/share/gitlab-gitaly/ruby" + + # # Gitaly-ruby resident set size (RSS) that triggers a memory restart (bytes) + # max_rss = 200000000 +@@ -85,14 +85,14 @@ dir = "/home/git/gitaly/ruby" + + [gitlab-shell] + # The directory where gitlab-shell is installed +-dir = "/home/git/gitlab-shell" ++dir = "/usr/share/gitlab-shell" + + [hooks] +-custom_hooks_dir = "/home/git/custom_hooks" ++custom_hooks_dir = "/var/lib/gitlab/custom_hooks" + + [gitlab] +-secret_file = "/home/git/gitlab-shell/.gitlab_shell_secret" +-url = "http+unix://%2Fhome%2Fgit%2Fgitlab%2Ftmp%2Fsockets%2Fgitlab-workhorse.socket" ++secret_file = "/etc/gitlab/gitlab-shell-secret" ++url = "http+unix://%2Frun%2Fgitlab%2Fgitlab.socket" + # Only needed if a UNIX socket is used in `url` and GitLab is configured to + # use a relative path (e.g. /gitlab). + # relative_url_root = '/' diff --git a/gitlab-gitaly.service b/gitlab-gitaly.service new file mode 100644 index 0000000..5881438 --- /dev/null +++ b/gitlab-gitaly.service @@ -0,0 +1,14 @@ +[Unit] +Description=Gitaly is a Git RPC service for handling all the git calls made by GitLab. + +[Service] +Type=simple +User=gitlab +Group=gitlab +WorkingDirectory=/usr/share/gitlab +SyslogIdentifier=gitlab-gitaly +PIDFile=/run/gitlab/gitaly.pid +ExecStart=/usr/bin/gitaly /etc/gitlab/gitlab-gitaly-config.toml + +[Install] +WantedBy=multi-user.target diff --git a/gitlab-gitaly.spec b/gitlab-gitaly.spec new file mode 100644 index 0000000..e1116e2 --- /dev/null +++ b/gitlab-gitaly.spec @@ -0,0 +1,81 @@ +Name: gitlab-gitaly +Version: 13.10.0 +Release: 1mamba +Summary: Speed up Git access using caching +Group: Applications/Web +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: https://gitlab.com/gitlab-org/gitaly +Source: https://gitlab.com/gitlab-org/gitaly/-/archive/v%{version}/gitaly-v%{version}.tar.gz +Source1: gitlab-gitaly.service +Patch0: gitlab-gitaly-configs.patch +License: MIT +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +## AUTOBUILDREQ-END +BuildRequires: go +BuildRequires: git + +%description +Speed up Git access using caching. + +%debug_package + +%global __requires_exclude_from ^%{_datadir}/gitlab-gitaly/ruby/vendor/.*$ + +%prep +%setup -q -n gitaly-v%{version} +%patch0 -p1 +# https://github.com/bundler/bundler/issues/6882 +sed -e '/BUNDLED WITH/,+1d' -i ruby/Gemfile.lock + +%build +bundle config force_ruby_platform true # build from sources as some prebuilt gems are not available for newer ruby +make BUILD_TAGS="tracer_static tracer_static_jaeger" + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +make PREFIX=/usr DESTDIR="%{buildroot}" install +mkdir -p %{buildroot}%{_sysconfdir}/gitlab +mkdir -p %{buildroot}%{_datadir}/gitlab-gitaly +cp -r ruby %{buildroot}%{_datadir}/gitlab-gitaly/ruby + +install -Dm644 config.toml.example %{buildroot}%{_sysconfdir}/gitlab/gitlab-gitaly-config.toml +install -Dm644 %{SOURCE1} %{buildroot}%{_unitdir}/gitlab-gitaly.service + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%preun +%systemd_preun gitlab-gitaly +: + +%post +%systemd_post gitlab-gitaly +: + +%postun +%systemd_postun_with_restart gitlab-gitaly +: + +%files +%defattr(-,root,root) +%config(noreplace) %{_sysconfdir}/gitlab/gitlab-gitaly-config.toml +%{_unitdir}/gitlab-gitaly.service +%{_bindir}/gitaly +%{_bindir}/gitaly-blackbox +%{_bindir}/gitaly-debug +%{_bindir}/gitaly-git2go +%{_bindir}/gitaly-hooks +%{_bindir}/gitaly-lfs-smudge +%{_bindir}/gitaly-ssh +%{_bindir}/gitaly-wrapper +%{_bindir}/praefect +%{_datadir}/gitlab-gitaly +%doc LICENSE + +%changelog +* Mon Mar 29 2021 Silvan Calarco 13.10.0-1mamba +- package created using the webbuild interface