From owner-svn-ports-head@freebsd.org Sat Mar 2 11:51:13 2019 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6D65151F14B; Sat, 2 Mar 2019 11:51:12 +0000 (UTC) (envelope-from mfechner@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 71EC38AABE; Sat, 2 Mar 2019 11:51:12 +0000 (UTC) (envelope-from mfechner@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 612A14593; Sat, 2 Mar 2019 11:51:12 +0000 (UTC) (envelope-from mfechner@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x22BpCAW025888; Sat, 2 Mar 2019 11:51:12 GMT (envelope-from mfechner@FreeBSD.org) Received: (from mfechner@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x22BpBcu025884; Sat, 2 Mar 2019 11:51:11 GMT (envelope-from mfechner@FreeBSD.org) Message-Id: <201903021151.x22BpBcu025884@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mfechner set sender to mfechner@FreeBSD.org using -f From: Matthias Fechner Date: Sat, 2 Mar 2019 11:51:11 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r494393 - in head/devel/gitaly: . files X-SVN-Group: ports-head X-SVN-Commit-Author: mfechner X-SVN-Commit-Paths: in head/devel/gitaly: . files X-SVN-Commit-Revision: 494393 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 71EC38AABE X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.95)[-0.948,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 11:51:13 -0000 Author: mfechner Date: Sat Mar 2 11:51:11 2019 New Revision: 494393 URL: https://svnweb.freebsd.org/changeset/ports/494393 Log: Upgrade to 1.20.0 which is required for gitlab-ce 11.8 upgrade. Modified: head/devel/gitaly/Makefile head/devel/gitaly/distinfo head/devel/gitaly/files/patch-__support_makegen.go head/devel/gitaly/files/patch-ruby_Gemfile head/devel/gitaly/pkg-plist Modified: head/devel/gitaly/Makefile ============================================================================== --- head/devel/gitaly/Makefile Sat Mar 2 11:49:46 2019 (r494392) +++ head/devel/gitaly/Makefile Sat Mar 2 11:51:11 2019 (r494393) @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= gitaly -DISTVERSION= 1.12.2 +DISTVERSION= 1.20.0 CATEGORIES= devel MAINTAINER= mfechner@FreeBSD.org @@ -11,7 +11,7 @@ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE # define dependencies that are required for build and run under MY_DEPENDS -MY_DEPENDS= git>=2.17:devel/git \ +MY_DEPENDS= git>=2.18:devel/git \ rubygem-bundler>=1.16.5:sysutils/rubygem-bundler \ rubygem-rugged>=0.27.4:devel/rubygem-rugged \ rubygem-github-linguist>=6.1:textproc/rubygem-github-linguist \ @@ -24,10 +24,11 @@ MY_DEPENDS= git>=2.17:devel/git \ rubygem-grpc>=1.15.0:net/rubygem-grpc \ rubygem-sentry-raven>=2.7.2:devel/rubygem-sentry-raven \ rubygem-faraday>=0.12:www/rubygem-faraday \ + rubygem-rbtrace>0:devel/rubygem-rbtrace \ rubygem-licensee8>=8.9.0:devel/rubygem-licensee8 \ rubygem-google-protobuf>=3.6:devel/rubygem-google-protobuf -BUILD_DEPENDS= go>=1.9:lang/go \ +BUILD_DEPENDS= go>=1.10:lang/go \ gem:devel/ruby-gems \ ${MY_DEPENDS} @@ -40,7 +41,7 @@ USE_RUBY= yes USE_GITLAB= yes GL_ACCOUNT= gitlab-org # Find this here: https://gitlab.com/gitlab-org/gitaly/tags -GL_COMMIT= 2b9c04142a0e7db26c014efa7c6530f4f0f298c9 +GL_COMMIT= b9c89add404cc106906f9e9ce5cec58224ae40bc post-patch: ${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|" ${WRKSRC}/config.toml.example Modified: head/devel/gitaly/distinfo ============================================================================== --- head/devel/gitaly/distinfo Sat Mar 2 11:49:46 2019 (r494392) +++ head/devel/gitaly/distinfo Sat Mar 2 11:51:11 2019 (r494393) @@ -1,3 +1,3 @@ -TIMESTAMP = 1548955426 -SHA256 (gitlab-org-gitaly-2b9c04142a0e7db26c014efa7c6530f4f0f298c9_GL0.tar.gz) = 55b00ef230b74c0e45532f8b8213280872ad32e4e07a5a73366fd4f969d9b9c8 -SIZE (gitlab-org-gitaly-2b9c04142a0e7db26c014efa7c6530f4f0f298c9_GL0.tar.gz) = 4275786 +TIMESTAMP = 1551205518 +SHA256 (gitlab-org-gitaly-b9c89add404cc106906f9e9ce5cec58224ae40bc_GL0.tar.gz) = 6f5d6760e02e673e9e7e583d5f082c3673bfc2d236bc6c11a83dde47e3de8e5f +SIZE (gitlab-org-gitaly-b9c89add404cc106906f9e9ce5cec58224ae40bc_GL0.tar.gz) = 4652575 Modified: head/devel/gitaly/files/patch-__support_makegen.go ============================================================================== --- head/devel/gitaly/files/patch-__support_makegen.go Sat Mar 2 11:49:46 2019 (r494392) +++ head/devel/gitaly/files/patch-__support_makegen.go Sat Mar 2 11:51:11 2019 (r494393) @@ -1,20 +1,20 @@ ---- _support/makegen.go.orig 2018-11-23 11:12:56 UTC +--- _support/makegen.go.orig 2019-02-14 18:35:35 UTC +++ _support/makegen.go -@@ -225,7 +225,7 @@ var templateText = ` +@@ -230,7 +230,7 @@ var templateText = ` # These variables may be overriden at runtime by top-level make PREFIX ?= /usr/local INSTALL_DEST_DIR := $(DESTDIR)$(PREFIX)/bin/ -BUNDLE_FLAGS ?= --deployment +BUNDLE_FLAGS ?= --local ASSEMBLY_ROOT ?= {{ .BuildDir }}/assembly + BUILD_TAGS := tracer_static tracer_static_jaeger - unexport GOROOT -@@ -245,7 +245,7 @@ build: ../.ruby-bundle +@@ -251,7 +251,7 @@ build: ../.ruby-bundle # _build. Hence the '../' in front. - ../.ruby-bundle: {{ .SourceDir }}/ruby/Gemfile.lock {{ .SourceDir }}/ruby/Gemfile - cd {{ .SourceDir }}/ruby && bundle config # for debugging -- cd {{ .SourceDir }}/ruby && bundle install $(BUNDLE_FLAGS) -+ cd {{ .SourceDir }}/ruby && rm Gemfile.lock && bundle install $(BUNDLE_FLAGS) - cd {{ .SourceDir }}/ruby && bundle show gitaly-proto # sanity check + ../.ruby-bundle: {{ .GitalyRubyDir }}/Gemfile.lock {{ .GitalyRubyDir }}/Gemfile + cd {{ .GitalyRubyDir }} && bundle config # for debugging +- cd {{ .GitalyRubyDir }} && bundle install $(BUNDLE_FLAGS) ++ cd {{ .GitalyRubyDir }} && rm Gemfile.lock && bundle install $(BUNDLE_FLAGS) + cd {{ .GitalyRubyDir }} && bundle show gitaly-proto # sanity check touch $@ Modified: head/devel/gitaly/files/patch-ruby_Gemfile ============================================================================== --- head/devel/gitaly/files/patch-ruby_Gemfile Sat Mar 2 11:49:46 2019 (r494392) +++ head/devel/gitaly/files/patch-ruby_Gemfile Sat Mar 2 11:51:11 2019 (r494393) @@ -1,18 +1,15 @@ ---- ruby/Gemfile.orig 2019-01-14 15:50:42 UTC +--- ruby/Gemfile.orig 2019-02-14 18:35:35 UTC +++ ruby/Gemfile -@@ -6,9 +6,9 @@ gem 'bundler', '>= 1.16.5' - gem 'rugged', '~> 0.27' - gem 'github-linguist', '~> 6.1', require: 'linguist' +@@ -8,7 +8,7 @@ gem 'github-linguist', '~> 6.1', require: 'linguist' gem 'gitlab-markup', '~> 1.6.5' --gem 'gitaly-proto', '~> 1.3.0' -+gem 'gitaly-proto', '~> 1.5.0' + gem 'gitaly-proto', '~> 1.10.0' gem 'activesupport', '~> 5.0.2' -gem 'rdoc', '~> 4.2' +gem 'rdoc', '~> 6.0' gem 'gitlab-gollum-lib', '~> 4.2', require: false gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4', require: false gem 'grpc', '~> 1.15.0' -@@ -21,10 +21,3 @@ gem 'licensee', '~> 8.9.0' +@@ -22,16 +22,3 @@ gem 'licensee', '~> 8.9.0' gem 'google-protobuf', '~> 3.6' @@ -22,4 +19,10 @@ - gem 'rspec-parameterized', require: false - gem 'timecop', require: false - gem 'factory_bot', require: false +- +- # gitlab-shell spec gems +- gem 'listen', '~> 0.5.0' +- gem 'simplecov', '~> 0.9.0', require: false +- gem 'vcr', '~> 4.0.0' +- gem 'webmock', '~> 3.4.0' -end Modified: head/devel/gitaly/pkg-plist ============================================================================== --- head/devel/gitaly/pkg-plist Sat Mar 2 11:49:46 2019 (r494392) +++ head/devel/gitaly/pkg-plist Sat Mar 2 11:51:11 2019 (r494393) @@ -4,6 +4,10 @@ @(,,555) %%DATADIR%%/ruby/bin/ruby-cd %%DATADIR%%/ruby/.rubocop.yml %%DATADIR%%/ruby/.rubocop_todo.yml +%%DATADIR%%/ruby/git-hooks/gitlab-shell-hook +%%DATADIR%%/ruby/git-hooks/post-receive +%%DATADIR%%/ruby/git-hooks/pre-receive +%%DATADIR%%/ruby/git-hooks/update %%DATADIR%%/ruby/lib/gitaly_server.rb %%DATADIR%%/ruby/lib/gitaly_server/blob_service.rb %%DATADIR%%/ruby/lib/gitaly_server/client.rb @@ -113,6 +117,113 @@ %%DATADIR%%/ruby/spec/support/helpers/seed_repo.rb %%DATADIR%%/ruby/spec/support/sentry.rb %%DATADIR%%/ruby/spec/test_repo_helper.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/.codeclimate.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/.gitlab-ci.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/.rubocop.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/.ruby-version +%%DATADIR%%/ruby/vendor/gitlab-shell/CHANGELOG +%%DATADIR%%/ruby/vendor/gitlab-shell/CONTRIBUTING.md +%%DATADIR%%/ruby/vendor/gitlab-shell/Gemfile +%%DATADIR%%/ruby/vendor/gitlab-shell/LICENSE +%%DATADIR%%/ruby/vendor/gitlab-shell/README.md +%%DATADIR%%/ruby/vendor/gitlab-shell/README.orig.md +%%DATADIR%%/ruby/vendor/gitlab-shell/VERSION +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/authorized_keys +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/check +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/compile +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/create-hooks +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/gitlab-keys +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/gitlab-shell-authorized-keys-check +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/gitlab-shell-authorized-principals-check +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/gitlab-shell-ruby +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/install +%%DATADIR%%/ruby/vendor/gitlab-shell/bin/test-logger +%%DATADIR%%/ruby/vendor/gitlab-shell/config.yml.example +%%DATADIR%%/ruby/vendor/gitlab-shell/hooks/post-receive +%%DATADIR%%/ruby/vendor/gitlab-shell/hooks/pre-receive +%%DATADIR%%/ruby/vendor/gitlab-shell/hooks/update +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/action.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/action/custom.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_access.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_access_status.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_config.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_custom_hook.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_init.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_keys.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_lfs_authentication.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_logger.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_metrics.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_net.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_net/errors.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_post_receive.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/gitlab_shell.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/hooks_utils.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/http_helper.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/httpunix.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/lib/object_dirs_helper.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_access_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_config_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_custom_hook_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_keys_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_lfs_authentication_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_logger_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_metrics_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_net_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_post_receive_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_shell_authorized_keys_check_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/gitlab_shell_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/hooks_utils_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/httpunix_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/object_dirs_helper_spec.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/spec_helper.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/support/gl_id_test_hook +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/support/hook_fail +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/support/hook_ok +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/support/http_unix_server.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/support/vcr.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/support/webmock.rb +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-pull.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-404-text-html.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-404-text-plain.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-404.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-text-html.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-text-plain.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/allowed-push.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/broadcast_message-none.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/broadcast_message-ok.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/check-ok.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/custom-action-not-ok-json.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/custom-action-not-ok-not-json.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/custom-action-ok-not-json.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/custom-action-ok-with-message.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/custom-action-ok.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/discover-ok.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/http-pull-disabled.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/http-push-disabled.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/lfs-authenticate-ok-download.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/lfs-authenticate-ok-upload.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/notify-post-receive.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/post-receive-not-found.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/post-receive.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/pre-receive-not-found.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/pre-receive.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-key-not-found.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-key-not-implemented.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-key-ok.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-pull-disabled.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-401-text-html.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-401-text-plain.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-401.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-with-user.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-push-disabled.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied-401-text-html.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied-401-text-plain.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied-401.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/two-factor-recovery-codes-fail.yml +%%DATADIR%%/ruby/vendor/gitlab-shell/spec/vcr_cassettes/two-factor-recovery-codes.yml @(,,555) %%DATADIR%%/bin/gitaly @(,,555) %%DATADIR%%/bin/gitaly-debug @(,,555) %%DATADIR%%/bin/gitaly-ssh