diff --git a/devel/gitaly/Makefile b/devel/gitaly/Makefile index b228c7544fbc..da4e404f7b34 100644 --- a/devel/gitaly/Makefile +++ b/devel/gitaly/Makefile @@ -1,100 +1,102 @@ PORTNAME= gitaly -DISTVERSION= 15.4.4 +DISTVERSION= 15.5.4 PORTREVISION= 0 DISTVERSIONPREFIX= v CATEGORIES= devel MAINTAINER= mfechner@FreeBSD.org COMMENT= Smart reverse proxy for GitLab WWW= https://gitlab.com/gitlab-org/gitaly LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE # Make sure the following patch is included: # https://gitlab.com/gitlab-org/gitaly/-/merge_requests/4108 # it fixes segfaults reported here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259848 # define dependencies that are required for build and run under MY_DEPENDS MY_DEPENDS= git>=2.36.1:devel/git \ rubygem-bundler>=2.1.4:sysutils/rubygem-bundler \ rubygem-rugged>=1.2<2:devel/rubygem-rugged \ rubygem-github-linguist>=7.20<8:textproc/rubygem-github-linguist \ rubygem-gitlab-markup>=1.8.0<1.9.0:textproc/rubygem-gitlab-markup \ rubygem-activesupport61>=6.1.6.1<6.1.7:devel/rubygem-activesupport61 \ rubygem-rdoc>=6.3.2<7.0:devel/rubygem-rdoc \ rubygem-gitlab-gollum-lib>=4.2.7.10.gitlab.2<4.2.8:www/rubygem-gitlab-gollum-lib \ rubygem-gitlab-gollum-rugged_adapter>=0.4.4.4.gitlab.1<0.4.5.0:www/rubygem-gitlab-gollum-rugged_adapter \ - rubygem-grpc142>=1.42.0.pre1<2:net/rubygem-grpc142 \ + rubygem-grpc142>=1.42.0<2:net/rubygem-grpc142 \ rubygem-sentry-raven>=3.0<4:devel/rubygem-sentry-raven \ rubygem-faraday1>=1.0.1<2:www/rubygem-faraday1 \ rubygem-rbtrace>=0.4.14:devel/rubygem-rbtrace \ - rubygem-gitlab-labkit>=0.24.0<1:devel/rubygem-gitlab-labkit \ + rubygem-gitaly>=15.5.0<15.6:net/rubygem-gitaly \ + rubygem-gitlab-labkit>=0.25.0<1:devel/rubygem-gitlab-labkit \ rubygem-licensee>=9.15<10:devel/rubygem-licensee \ - rubygem-google-protobuf>=3.21.0<3.22:devel/rubygem-google-protobuf \ - rubygem-license_finder>=7.0<8:devel/rubygem-license_finder + rubygem-google-protobuf>=3.21.7<3.22:devel/rubygem-google-protobuf \ + rubygem-license_finder>=7.0<8:devel/rubygem-license_finder \ + rubygem-redis4>=4.7<5:databases/rubygem-redis4 BUILD_DEPENDS= gem:devel/ruby-gems \ bash>0:shells/bash \ ${MY_DEPENDS} RUN_DEPENDS= ${MY_DEPENDS} \ gitlab-shell>=13.22.1:devel/gitlab-shell LIB_DEPENDS= libgit2.so:devel/libgit2 USES= cpe gmake go:modules,no_targets pkgconfig USE_RUBY= yes CPE_VENDOR= gitlab MAKE_ENV= GOFLAGS="${GO_BUILDFLAGS}" # make sure to pass go build options into make process MAKE_ENV+= ${GO_ENV} USE_GITLAB= yes GL_ACCOUNT= gitlab-org # Find this here: https://gitlab.com/gitlab-org/gitaly/-/tags -GL_COMMIT= cb734b28e9ae84d2320c73b168dd1c97f561d99b +GL_COMMIT= 631c94433ca5017be566bb65f4ac792ab672e956 # for go dependencies # Gitlab hosts there dependencies on their own platform and not on go-proxy # so we download the required go.mod file from gitlab # lines are taken from go.mk # --------------------------- FETCH_DEPENDS= ${GO_CMD}:${GO_PORT} \ ca_root_nss>0:security/ca_root_nss MASTER_SITES+= https://gitlab.com/gitlab-org/gitaly/-/raw/v${DISTVERSION}/ DISTFILES+= go.mod DIST_SUBDIR= go/${PKGORIGIN:S,/,_,g}/${DISTNAME} EXTRACT_ONLY+= ${DISTFILES:N*.mod\:*:N*.mod:C/:.*//} _USES_fetch+= 800:go-post-fetch go-post-fetch: @${ECHO_MSG} "===> Fetching ${GO_MODNAME} dependencies"; @(cd ${DISTDIR}/${DIST_SUBDIR}; \ [ -e go.mod ] || ${RLN} ${GO_MODFILE} go.mod; \ ${SETENV} ${GO_ENV} GOPROXY=${GO_GOPROXY} ${GO_CMD} mod download -x all) # --------------------------- post-patch: ${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|" ${WRKSRC}/config.toml.example ${MV} ${WRKSRC}/config.toml.example ${WRKSRC}/config.toml.sample pre-build: (cd ${WRKSRC}/ruby && ${RM} Gemfile.lock && bundle install --local) do-install: ${MKDIR} ${STAGEDIR}${DATADIR} ${MKDIR} ${STAGEDIR}${DATADIR}/bin ${FIND} ${WRKSRC} -name '*.orig' -delete ${FIND} ${WRKSRC} -name "Gemfile.lock" -delete (cd ${WRKSRC}/_build/bin/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/bin && \ cd ${WRKSRC} && ${COPYTREE_SHARE} config.toml.sample ${STAGEDIR}${DATADIR}) && \ cd ${WRKSRC}/ruby && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/ruby post-install: ${FIND} -s ${STAGEDIR}${DATADIR} -not -type d | ${SORT} | \ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' | \ ${SED} -E -e '/sample$$/ s#^#@sample #; \ /gitlab-shell-hook$$/ s#^#@(,,755) #; \ s#${DATADIR_REL}/ruby/bin#@(,,555) ${DATADIR_REL}/ruby/bin#; \ s#${DATADIR_REL}/bin#@(,,555) ${DATADIR_REL}/bin#; ' >> ${TMPPLIST} .include diff --git a/devel/gitaly/distinfo b/devel/gitaly/distinfo index ddcd0efd3e29..8b8a27c4ff85 100644 --- a/devel/gitaly/distinfo +++ b/devel/gitaly/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1667627234 -SHA256 (go/devel_gitaly/gitlab-org-gitaly-cb734b28e9ae84d2320c73b168dd1c97f561d99b_GL0/go.mod) = 190a364531e4bec89791667462ada89c60e2bbc218ccdd455d0d26bee55d2f54 -SIZE (go/devel_gitaly/gitlab-org-gitaly-cb734b28e9ae84d2320c73b168dd1c97f561d99b_GL0/go.mod) = 9498 -SHA256 (go/devel_gitaly/gitlab-org-gitaly-cb734b28e9ae84d2320c73b168dd1c97f561d99b_GL0/gitlab-org-gitaly-cb734b28e9ae84d2320c73b168dd1c97f561d99b_GL0.tar.gz) = f017719875776170d33e4b282f3e2618d2437d6a3ffc7ab1235578fdfda104a1 -SIZE (go/devel_gitaly/gitlab-org-gitaly-cb734b28e9ae84d2320c73b168dd1c97f561d99b_GL0/gitlab-org-gitaly-cb734b28e9ae84d2320c73b168dd1c97f561d99b_GL0.tar.gz) = 4051161 +TIMESTAMP = 1668844707 +SHA256 (go/devel_gitaly/gitlab-org-gitaly-631c94433ca5017be566bb65f4ac792ab672e956_GL0/go.mod) = 0517ea73ce81c02cb2a1ec0930bc828be37bd82038970b03d84e210c855a3ea1 +SIZE (go/devel_gitaly/gitlab-org-gitaly-631c94433ca5017be566bb65f4ac792ab672e956_GL0/go.mod) = 9532 +SHA256 (go/devel_gitaly/gitlab-org-gitaly-631c94433ca5017be566bb65f4ac792ab672e956_GL0/gitlab-org-gitaly-631c94433ca5017be566bb65f4ac792ab672e956_GL0.tar.gz) = f05d698812d5eb4326a30c428459ea3a2eb0c0c3380ad6421e2a21d7560d5fc4 +SIZE (go/devel_gitaly/gitlab-org-gitaly-631c94433ca5017be566bb65f4ac792ab672e956_GL0/gitlab-org-gitaly-631c94433ca5017be566bb65f4ac792ab672e956_GL0.tar.gz) = 4150219 diff --git a/devel/gitaly/files/patch-Makefile b/devel/gitaly/files/patch-Makefile index c4f1ccb1a5f7..ffaffb43b500 100644 --- a/devel/gitaly/files/patch-Makefile +++ b/devel/gitaly/files/patch-Makefile @@ -1,27 +1,27 @@ ---- Makefile.orig 2022-09-29 08:34:44 UTC +--- Makefile.orig 2022-11-11 19:21:41 UTC +++ Makefile -@@ -547,7 +547,6 @@ ${SOURCE_DIR}/.ruby-bundle: ${GITALY_RUBY_DIR}/Gemfile +@@ -548,7 +548,6 @@ 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 install ${Q}touch $@ ${SOURCE_DIR}/NOTICE: ${BUILD_DIR}/NOTICE -@@ -598,7 +597,7 @@ ${BUILD_DIR}/bin/%: ${BUILD_DIR}/intermediate/% | ${BU +@@ -593,7 +592,7 @@ ${BUILD_DIR}/bin/%: ${BUILD_DIR}/intermediate/% | ${BU @ # This fallback is unique but non-deterministic, making it sufficient to avoid generating the @ # GNU build-id from the empty string and causing guaranteed collisions. ${Q}GO_BUILD_ID=$$(go tool buildid "$<" || openssl rand -hex 32) && \ - GNU_BUILD_ID=$$(echo $$GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \ + GNU_BUILD_ID=$$(echo $$GO_BUILD_ID | sha1 | cut -d' ' -f1) && \ if test "${OS}" = "Linux"; then \ go run "${SOURCE_DIR}"/tools/replace-buildid \ -input "$<" -input-build-id "${TEMPORARY_BUILD_ID}" \ -@@ -624,7 +623,6 @@ ${BUILD_DIR}/intermediate/gitaly-git2go: GO_BUILD_ +@@ -619,7 +618,6 @@ ${BUILD_DIR}/intermediate/gitaly: GO_BUILD_ ${BUILD_DIR}/intermediate/gitaly: remove-legacy-go-mod ${GITALY_PACKED_EXECUTABLES} ${BUILD_DIR}/intermediate/praefect: GO_BUILD_TAGS = ${SERVER_BUILD_TAGS} ${BUILD_DIR}/intermediate/gitaly-git2go: GO_BUILD_TAGS = ${GIT2GO_BUILD_TAGS} -${BUILD_DIR}/intermediate/gitaly-git2go: libgit2 ${BUILD_DIR}/intermediate/%: clear-go-build-cache-if-needed .FORCE @ # We're building intermediate binaries first which contain a fixed build ID @ # of "TEMP_GITALY_BUILD_ID". In the final binary we replace this build ID with diff --git a/devel/gitaly/files/patch-ruby_Gemfile b/devel/gitaly/files/patch-ruby_Gemfile index cfa481cf9de2..a9090f3b7ff5 100644 --- a/devel/gitaly/files/patch-ruby_Gemfile +++ b/devel/gitaly/files/patch-ruby_Gemfile @@ -1,45 +1,46 @@ ---- ruby/Gemfile.orig 2022-09-29 08:34:44 UTC +--- ruby/Gemfile.orig 2022-11-11 19:21:41 UTC +++ ruby/Gemfile -@@ -1,15 +1,15 @@ gem 'rugged', '~> 1.2' +@@ -1,15 +1,15 @@ source 'https://rubygems.org' gem 'rugged', '~> 1.2' -gem 'github-linguist', '~> 7.20.0', require: 'linguist' -gem 'gitlab-markup', '~> 1.7.1' -gem 'activesupport', '~> 6.1.6.1' +gem 'github-linguist', '~> 7.23.0', require: 'linguist' +gem 'gitlab-markup', '~> 1.8.0' +gem 'activesupport', '~> 6.1.6' gem 'rdoc', '~> 6.0' gem 'gitlab-gollum-lib', '~> 4.2.7.10.gitlab.2', require: false gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.4.gitlab.1', require: false gem 'grpc', '~> 1.42.0' # keep in lock-step with grpc-tools gem 'sentry-raven', '~> 3.0', require: false -gem 'faraday', '~> 1.0' +gem 'faraday', '~> 1.10.2' gem 'rbtrace', require: false - # Labkit provides observability functionality -@@ -21,21 +21,10 @@ gem 'google-protobuf', '~> 3.21.0' - - gem 'google-protobuf', '~> 3.21.0' + # The Gitaly Gem contains the Protobuf and gRPC definitions required by the +@@ -28,21 +28,12 @@ gem 'google-protobuf', '~> 3.21.7' + # Rails is currently blocked on the upgrade to the new major version for Redis, + # so we don't upgrade either until the issue is resolved. This is an indirect + # dependency and can thus be removed when the version constraint is gone. +-gem 'redis', '~> 4.7.1' ++gem 'redis', '~> 4.7' -group :development, :test do - gem 'rubocop', '~> 0.69', require: false - gem 'rspec', require: false - gem 'rspec-parameterized', require: false - gem 'timecop', require: false - gem 'factory_bot', require: false - gem 'pry', '~> 0.12.2', require: false -- -- gem 'grpc-tools', '~> 1.42.0' -end - # Gems required in omnibus-gitlab pipeline group :development, :test, :omnibus do # Using a fork until https://github.com/pivotal/LicenseFinder/pull/816 is # resolved. For details, check discussion in # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74881 - gem 'gitlab-license_finder', require: false + gem 'license_finder', require: false end