[arch-commits] Commit in gitlab-gitaly/repos (5 files)
Evangelos Foutras
foutrelis at gemini.archlinux.org
Sun Nov 21 22:20:54 UTC 2021
Date: Sunday, November 21, 2021 @ 22:20:54
Author: foutrelis
Revision: 1054078
archrelease: copy trunk to community-staging-x86_64
Added:
gitlab-gitaly/repos/community-staging-x86_64/
gitlab-gitaly/repos/community-staging-x86_64/PKGBUILD
(from rev 1054077, gitlab-gitaly/trunk/PKGBUILD)
gitlab-gitaly/repos/community-staging-x86_64/configs.patch
(from rev 1054077, gitlab-gitaly/trunk/configs.patch)
gitlab-gitaly/repos/community-staging-x86_64/gitlab-gitaly.service
(from rev 1054077, gitlab-gitaly/trunk/gitlab-gitaly.service)
gitlab-gitaly/repos/community-staging-x86_64/ruby27.patch
(from rev 1054077, gitlab-gitaly/trunk/ruby27.patch)
-----------------------+
PKGBUILD | 57 +++++++++++++++++++++++++
configs.patch | 99 +++++++++++++++++++++++++++++++++++++++++++
gitlab-gitaly.service | 14 ++++++
ruby27.patch | 109 ++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 279 insertions(+)
Copied: gitlab-gitaly/repos/community-staging-x86_64/PKGBUILD (from rev 1054077, gitlab-gitaly/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2021-11-21 22:20:54 UTC (rev 1054078)
@@ -0,0 +1,57 @@
+# Maintainer: Sven-Hendrik Haase <svenstaro at gmail.com>
+
+# NOTE: Gitlab isn't always compatible with modern Ruby versions. In that case, check the
+# commit log for an old fix on how to tell it to use older versions of Ruby. I'm afraid we'll
+# need this again at some point in the future.
+pkgname=gitlab-gitaly
+pkgver=14.3.0
+pkgrel=3
+pkgdesc="Speed up Git access using caching"
+arch=('x86_64')
+url="https://gitlab.com/gitlab-org/gitaly"
+license=('MIT')
+depends=(glibc ruby2.7 libxml2 libxslt libssh2)
+options=(!buildflags)
+makedepends=(go cmake git)
+backup=("etc/gitlab-gitaly/config.toml")
+_tag=v${pkgver}
+source=("https://gitlab.com/gitlab-org/gitaly/-/archive/${_tag}/gitaly-${_tag}.tar.gz"
+ "configs.patch"
+ "gitlab-gitaly.service"
+ "ruby27.patch")
+sha512sums=('86cb972eb5b32bf5fc5b2d71d2becf99edfa5f00a956df2b49a8dad2d745fde29989c00c4ea98fb4c37cb63c8bbc100a4a2aa1edc7988ea025a8b5dc5aeec65c'
+ '872a6c065113c2415cdbd5a2107501fc849b7e291042ac435b04359c69e78b58e93b294de85bcf910d7e4d64dcfb40902b35e392f61499e9b61ebecc842a4b73'
+ '7f5cd528c873a5e43e18aa6a88bd7298422c047e0e61cf3208be7d9fcfdfdc8a844b5c439ab6afc2098c5c4c60ed9c3d167c2f87517f1e93b34f39be3d3dad09'
+ '8b3bfb5781c865c82dd39170bb56c5dba4e9eabc669f0a59bf74f8eda0cb5c82c629b44a719f9ff9038f28bbb5df9db5a73d898f64b7f441ce87626adf512103')
+
+prepare() {
+ cd gitaly-$_tag
+
+ patch -p1 < ../ruby27.patch
+
+ patch -p1 < ../configs.patch
+ # At this point the config file should not contain any references to '/home/git'
+
+ # https://github.com/bundler/bundler/issues/6882
+ sed -e '/BUNDLED WITH/,+1d' -i ruby/Gemfile.lock
+}
+
+build() {
+ cd gitaly-$_tag
+
+ bundle-2.7 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"
+}
+
+package() {
+ cd gitaly-$_tag
+
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+ mkdir -p "${pkgdir}"/etc/gitlab-gitaly
+ mkdir -p "${pkgdir}"/usr/share/webapps/gitlab-gitaly
+ cp -r ruby "${pkgdir}"/usr/share/webapps/gitlab-gitaly/ruby
+
+ install -Dm644 config.toml.example "${pkgdir}"/etc/${pkgname}/config.toml
+ install -Dm644 "LICENSE" "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+ install -Dm644 "${srcdir}"/gitlab-gitaly.service "${pkgdir}"/usr/lib/systemd/system/gitlab-gitaly.service
+}
Copied: gitlab-gitaly/repos/community-staging-x86_64/configs.patch (from rev 1054077, gitlab-gitaly/trunk/configs.patch)
===================================================================
--- community-staging-x86_64/configs.patch (rev 0)
+++ community-staging-x86_64/configs.patch 2021-11-21 22:20:54 UTC (rev 1054078)
@@ -0,0 +1,99 @@
+commit 7c74563bdb785dc7c87a35475ecc61d02a8a5826
+Author: Anatol Pomozov <anatol.pomozov at gmail.com>
+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 eaa23fd8e..0e483e8b9 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/_build/bin"
++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/_build/bin"
+ # # 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/_build/bin"
+ # 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]
+@@ -38,7 +38,7 @@ bin_dir = "/home/git/gitaly/_build/bin"
+
+ [[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
+ #
+@@ -50,7 +50,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
+@@ -68,7 +68,7 @@ dir = "/home/git/gitlab/log"
+
+ [gitaly-ruby]
+ # The directory where gitaly-ruby is installed
+-dir = "/home/git/gitaly/ruby"
++dir = "/usr/share/webapps/gitlab-gitaly/ruby"
+
+ # # Gitaly-ruby resident set size (RSS) that triggers a memory restart (bytes)
+ # max_rss = 200000000
+@@ -88,14 +88,14 @@ dir = "/home/git/gitaly/ruby"
+
+ [gitlab-shell]
+ # The directory where gitlab-shell is installed
+-dir = "/home/git/gitlab-shell"
++dir = "/usr/share/webapps/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/webapps/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 = '/'
Copied: gitlab-gitaly/repos/community-staging-x86_64/gitlab-gitaly.service (from rev 1054077, gitlab-gitaly/trunk/gitlab-gitaly.service)
===================================================================
--- community-staging-x86_64/gitlab-gitaly.service (rev 0)
+++ community-staging-x86_64/gitlab-gitaly.service 2021-11-21 22:20:54 UTC (rev 1054078)
@@ -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/webapps/gitlab
+SyslogIdentifier=gitlab-gitaly
+PIDFile=/run/gitlab/gitaly.pid
+ExecStart=/usr/bin/gitaly /etc/gitlab-gitaly/config.toml
+
+[Install]
+WantedBy=multi-user.target
Copied: gitlab-gitaly/repos/community-staging-x86_64/ruby27.patch (from rev 1054077, gitlab-gitaly/trunk/ruby27.patch)
===================================================================
--- community-staging-x86_64/ruby27.patch (rev 0)
+++ community-staging-x86_64/ruby27.patch 2021-11-21 22:20:54 UTC (rev 1054078)
@@ -0,0 +1,109 @@
+commit 939e0390baecae6c4d4283c58c48921857ae8183
+Author: Anatol Pomozov <anatol.pomozov at gmail.com>
+Date: Mon Mar 22 18:23:32 2021 -0700
+
+ Pin sources to ruby2.7 package
+
+diff --git a/Makefile b/Makefile
+index 1d636216c..5ee9fd24f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -253,7 +253,7 @@ race-go: test-go
+
+ .PHONY: rspec
+ rspec: build prepare-tests
+- ${Q}cd ${GITALY_RUBY_DIR} && PATH='${SOURCE_DIR}/internal/testhelper/testdata/home/bin:${PATH}' bundle exec rspec
++ ${Q}cd ${GITALY_RUBY_DIR} && PATH='${SOURCE_DIR}/internal/testhelper/testdata/home/bin:${PATH}' bundle-2.7 exec rspec
+
+ .PHONY: verify
+ verify: check-mod-tidy check-formatting notice-up-to-date check-proto rubocop
+@@ -303,7 +303,7 @@ check-proto: proto no-proto-changes lint-proto
+
+ .PHONY: rubocop
+ rubocop: ${SOURCE_DIR}/.ruby-bundle
+- ${Q}cd ${GITALY_RUBY_DIR} && bundle exec rubocop --parallel
++ ${Q}cd ${GITALY_RUBY_DIR} && bundle-2.7 exec rubocop --parallel
+
+ .PHONY: cover
+ cover: GO_BUILD_TAGS := ${GO_BUILD_TAGS},postgres
+@@ -370,9 +370,9 @@ libgit2: ${LIBGIT2_INSTALL_DIR}/lib/libgit2.a
+ # step. Both Omnibus and CNG assume it is in the Gitaly root, not in
+ # _build. Hence the '../' in front.
+ ${SOURCE_DIR}/.ruby-bundle: ${GITALY_RUBY_DIR}/Gemfile.lock ${GITALY_RUBY_DIR}/Gemfile
+- ${Q}cd ${GITALY_RUBY_DIR} && bundle config set --local deployment "${BUNDLE_DEPLOYMENT}"
+- ${Q}cd ${GITALY_RUBY_DIR} && bundle config # for debugging
+- ${Q}cd ${GITALY_RUBY_DIR} && bundle install
++ ${Q}cd ${GITALY_RUBY_DIR} && bundle-2.7 config set --local deployment "${BUNDLE_DEPLOYMENT}"
++ ${Q}cd ${GITALY_RUBY_DIR} && bundle-2.7 config # for debugging
++ ${Q}cd ${GITALY_RUBY_DIR} && bundle-2.7 install
+ ${Q}touch $@
+
+ ${SOURCE_DIR}/NOTICE: ${BUILD_DIR}/NOTICE
+diff --git a/_support/generate-proto-ruby b/_support/generate-proto-ruby
+index 6ddb15cbb..bf4bc51f0 100755
+--- a/_support/generate-proto-ruby
++++ b/_support/generate-proto-ruby
+@@ -20,7 +20,7 @@ def main
+ # locations. `protoc` requires this.
+ proto_include_abs = File.absolute_path(File.join('..', PROTO_INCLUDE))
+
+- run!(%W[bundle exec grpc_tools_ruby_protoc -I #{proto_include_abs} --ruby_out=../#{ruby_lib_gitaly} --grpc_out=../#{ruby_lib_gitaly}] + PROTO_FILES)
++ run!(%W[bundle-2.7 exec grpc_tools_ruby_protoc -I #{proto_include_abs} --ruby_out=../#{ruby_lib_gitaly} --grpc_out=../#{ruby_lib_gitaly}] + PROTO_FILES)
+ end
+
+ write_ruby_requires
+diff --git a/internal/gitaly/linguist/linguist.go b/internal/gitaly/linguist/linguist.go
+index 42218e32a..c0652292a 100644
+--- a/internal/gitaly/linguist/linguist.go
++++ b/internal/gitaly/linguist/linguist.go
+@@ -81,7 +81,7 @@ func (inst *Instance) Color(language string) string {
+ }
+
+ func startGitLinguist(ctx context.Context, cfg config.Cfg, repoPath string, commitID string, linguistCommand string) (*command.Command, error) {
+- bundle, err := exec.LookPath("bundle")
++ bundle, err := exec.LookPath("bundle-2.7")
+ if err != nil {
+ return nil, err
+ }
+@@ -143,7 +143,7 @@ func openLanguagesJSON(cfg config.Cfg) (io.ReadCloser, error) {
+ // We use a symlink because we cannot trust Bundler to not print garbage
+ // on its stdout.
+ rubyScript := `FileUtils.ln_sf(Bundler.rubygems.find_name('github-linguist').first.full_gem_path, ARGV.first)`
+- cmd := exec.Command("bundle", "exec", "ruby", "-rfileutils", "-e", rubyScript, linguistPathSymlink.Name())
++ cmd := exec.Command("bundle-2.7", "exec", "ruby-2.7", "-rfileutils", "-e", rubyScript, linguistPathSymlink.Name())
+ cmd.Dir = cfg.Ruby.Dir
+
+ // We have learned that in practice the command we are about to run is a
+diff --git a/internal/gitaly/rubyserver/rubyserver.go b/internal/gitaly/rubyserver/rubyserver.go
+index 6292d1d66..0244056ee 100644
+--- a/internal/gitaly/rubyserver/rubyserver.go
++++ b/internal/gitaly/rubyserver/rubyserver.go
+@@ -129,7 +129,7 @@ func (s *Server) start() error {
+ // Use 'ruby-cd' to make sure gitaly-ruby has the same working directory
+ // as the current process. This is a hack to sort-of support relative
+ // Unix socket paths.
+- args := []string{"bundle", "exec", "bin/ruby-cd", wd, gitalyRuby, strconv.Itoa(os.Getpid()), socketPath}
++ args := []string{"bundle-2.7", "exec", "bin/ruby-cd", wd, gitalyRuby, strconv.Itoa(os.Getpid()), socketPath}
+
+ events := make(chan supervisor.Event)
+ check := func() error { return ping(socketPath) }
+diff --git a/ruby/bin/gitaly-ruby b/ruby/bin/gitaly-ruby
+index d37352945..7f096fa33 100755
+--- a/ruby/bin/gitaly-ruby
++++ b/ruby/bin/gitaly-ruby
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/env ruby-2.7
+
+ # Gitaly always spawns this executable with LANG=en_US.UTF-8. In case the
+ # system doesn't have this local, Ruby will fall back to the C locale and as a
+diff --git a/ruby/bin/ruby-cd b/ruby/bin/ruby-cd
+index 9c60fcd42..15f0cb05a 100755
+--- a/ruby/bin/ruby-cd
++++ b/ruby/bin/ruby-cd
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/env ruby-2.7
+
+ # This script lets you run `bundle exec` in one directory, and then changes into another.
+
More information about the arch-commits
mailing list