puma (6.4.2-5) unstable; urgency=medium
authorLucas Kanashiro <kanashiro@debian.org>
Sat, 20 Jul 2024 15:24:05 +0000 (12:24 -0300)
committerLucas Kanashiro <kanashiro@debian.org>
Sat, 20 Jul 2024 15:24:05 +0000 (12:24 -0300)
  * Backport upstream patch to update certificates in examples.
    This fixes a test failure.

[dgit import unpatched puma 6.4.2-5]

32 files changed:
1  2 
debian/README.source
debian/changelog
debian/clean
debian/control
debian/copyright
debian/gbp.conf
debian/patches/0004-puma.gemspec-drop-git-usage.patch
debian/patches/0009-CI-update-chain-certs-example-files-3426.patch
debian/patches/0011-disable-minitest-extensions.patch
debian/patches/0012-disable-cli-ssl-tests.patch
debian/patches/0013-fix-test-term-not-accepts-new-connections.patch
debian/patches/0014-disable-test-failing-on-amd64.patch
debian/patches/0015-disable-different-output-test.patch
debian/patches/0016-disable-test-failing-on-arm64.patch
debian/patches/0017-disable-test-failing-on-armhf.patch
debian/patches/series
debian/puma.1
debian/puma.docs
debian/puma.examples
debian/puma.lintian-overrides
debian/puma.manpages
debian/pumactl.1
debian/ruby-tests.rake
debian/rules
debian/salsa-ci.yml
debian/source/format
debian/source/lintian-overrides
debian/tests/control
debian/tests/test_puma_server_ssl
debian/tests/test_puma_server_ssl.rake
debian/upstream/metadata
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..620cda36936da1bf8a4823bdd92b53f3c3ca0008
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++puma (4.3.1-1)
++
++  Several tests have been disabled by default:
++
++  - test/test_puma_server_ssl.rb has been disabled because all tests fail
++    randomly. However these tests have never been performed in puma 3.x and
++    they also work randomly. So until someone can look into them and fix them,
++    we decided to not run them (see also #921931).
++
++  - test_control_for_ssl (test/test_cli.rb) and
++    test_control_ssl (test/test_pumactl.rb) show similar issues and don't seem
++    to imply that the package fails to work. So they have been disabled too.
++
++ -- Daniel Leidert <dleidert@debian.org>  Wed, 05 Feb 2020 23:51:51 +0100
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c1fca3b7187e12670b6d456f6138e59d1eb25209
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,345 @@@
++puma (6.4.2-5) unstable; urgency=medium
++
++  * Backport upstream patch to update certificates in examples.
++    This fixes a test failure.
++
++ -- Lucas Kanashiro <kanashiro@debian.org>  Sat, 20 Jul 2024 12:24:05 -0300
++
++puma (6.4.2-4) unstable; urgency=medium
++
++  * Disable test failing on armhf
++
++ -- Pirate Praveen <praveen@debian.org>  Tue, 06 Feb 2024 18:13:41 +0530
++
++puma (6.4.2-3) unstable; urgency=medium
++
++  * Add Breaks: rails (<< 2:6.1.7.3+dfsg-3~)
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 05 Feb 2024 15:12:00 +0530
++
++puma (6.4.2-2) unstable; urgency=medium
++
++  * Disable test failing on arm64 buildd
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 05 Feb 2024 14:11:14 +0530
++
++puma (6.4.2-1) unstable; urgency=medium
++
++  * Switch to github tags from releases (6.4.2 is only available from tags)
++  * New upstream version 6.4.2 (Fixes: CVE-2024-21647)
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 05 Feb 2024 01:08:22 +0530
++
++puma (6.4.0-4) unstable; urgency=medium
++
++  * Remove minitest/retry as well (copy from 5.x branch and fixes salsa ci)
++  * Export LC_ALL also to C.UTF-8 (hoping this would fix some test failures)
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 05 Feb 2024 00:52:13 +0530
++
++puma (6.4.0-3) unstable; urgency=medium
++
++  * Reupload to unstable
++
++ -- Pirate Praveen <praveen@debian.org>  Sun, 04 Feb 2024 01:16:15 +0530
++
++puma (6.4.0-2) experimental; urgency=medium
++
++  * Set TEST_CASE_TIMEOUT = 300 (one test is timing out on amd64 buildd)
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 04 Dec 2023 23:59:02 +0530
++
++puma (6.4.0-1) experimental; urgency=medium
++
++  * New upstream version 6.4.0
++  * Disable more tests and refresh patches
++  * Add procps to build depends for kill command (used in tests)
++
++ -- Pirate Praveen <praveen@debian.org>  Sun, 03 Dec 2023 13:58:23 +0530
++
++puma (6.0.2-1) experimental; urgency=medium
++
++  * Team upload.
++  * New upstream release.
++  * d/control (Standards-Version): Bump to 4.6.2.
++    (Build-Depends): Add ruby-sd-notify.
++  * d/copyright (Copyright): Update years.
++  * d/ruby-tests.rake: Re-enable multiple tests (closes: #984713).
++  * d/upstream/metadata: Adjust a few URLs.
++
++ -- Daniel Leidert <dleidert@debian.org>  Thu, 09 Feb 2023 16:12:20 +0100
++
++puma (5.6.5-2) unstable; urgency=medium
++
++  * debian/ruby-tests.rake: skip test that fails often (Closes: #1006022)
++  * debian/ruby-tests.rake: exclude tests that fail often but not always
++
++ -- Antonio Terceiro <terceiro@debian.org>  Wed, 02 Nov 2022 09:26:37 -0300
++
++puma (5.6.5-1) unstable; urgency=medium
++
++  * Update watch file for github.com pattern change
++  * New upstream version 5.6.5
++  * Refresh patches
++  * Bump Standards-Version to 4.6.1 (no changes needed)
++
++ -- Pirate Praveen <praveen@debian.org>  Sun, 16 Oct 2022 22:44:46 +0530
++
++puma (5.6.4-1) unstable; urgency=medium
++
++  * New upstream version 5.6.4
++  * Refresh patches
++  * Disable some tests that fail with
++     NameError: uninitialized constant Puma::LogWriter
++  * Remove tmp/restart.txt in clean
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 04 Apr 2022 13:24:10 +0530
++
++puma (5.5.2-2) unstable; urgency=medium
++
++  * Team upload
++  * debian/rules: force an UTF-8 locale
++  * debian/ruby-tests.rake: wrap lines
++  * debian/ruby-tests.rake: run all ssl tests on autopkgtest only
++  * debian/test/control: give ssl test a name
++
++ -- Antonio Terceiro <terceiro@debian.org>  Tue, 02 Nov 2021 16:35:12 -0300
++
++puma (5.5.2-1) unstable; urgency=medium
++
++  * Team upload
++  * New upstream version 5.5.2
++    - Builds and tests fine again (Closes: #998295)
++  * Add build-dependency on ruby-localhost
++  * debian/rules: exclude several unnecessary files from installation
++
++ -- Antonio Terceiro <terceiro@debian.org>  Tue, 02 Nov 2021 14:39:10 -0300
++
++puma (5.3.2-3) unstable; urgency=medium
++
++  * Use --gem-install layout option of dh-ruby
++
++ -- Pirate Praveen <praveen@debian.org>  Tue, 12 Oct 2021 02:24:33 +0530
++
++puma (5.3.2-2) unstable; urgency=medium
++
++  * Reupload to unstable
++  * Bump Standards-Version to 4.6.0 (no changes needed)
++  * Bump debhelper compatibility level to 13
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 11 Oct 2021 03:17:23 +0530
++
++puma (5.3.2-1) experimental; urgency=medium
++
++  * New upstream version 5.3.2 (Closes: #989054) (Fixes: CVE-2021-29509)
++  * Refresh patches
++
++ -- Pirate Praveen <praveen@debian.org>  Fri, 28 May 2021 22:34:53 +0530
++
++puma (4.3.8-1) unstable; urgency=medium
++
++  * New upstream version 4.3.8 (Closes: #989054) (Fixes: CVE-2021-29509)
++
++ -- Pirate Praveen <praveen@debian.org>  Wed, 26 May 2021 10:24:19 +0530
++
++puma (5.2.2-2) experimental; urgency=medium
++
++  * Disable test that failied on amd64 buildd
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 08 Mar 2021 23:03:52 +0530
++
++puma (5.2.2-1) experimental; urgency=medium
++
++  * New upstream version 5.2.2
++  * Bump Standards-Version to 4.5.1 (no changes needed)
++  * Refresh patches for new upstream release
++  * Add ruby-minitest-stub-const as build dependency
++  * Disable failing tests
++
++ -- Pirate Praveen <praveen@debian.org>  Sun, 07 Mar 2021 21:03:52 +0530
++
++puma (4.3.6-1) unstable; urgency=medium
++
++  * Team upload.
++  * New upstream version.
++    - Fixes CVE-2020-11076 and CVE-2020-11077 (closes: #972102).
++  * d/copyright: Minor update.
++  * d/puma.lintian-overrides: Add package override.
++  * d/ruby-tests.rake: Add logic to run SSL test.
++  * d/patches/*.patch: Add missing headers and refresh.
++  * d/source/lintian-overrides: Add source override.
++  * d/tests/control: Set environment variable to run the SSL tests separately
++    (similar to the solution used in the jekyll package).
++  * d/tests/test-puma-server-ssl*: Removed.
++
++ -- Daniel Leidert <dleidert@debian.org>  Thu, 15 Oct 2020 20:57:29 +0200
++
++puma (4.3.3-3) unstable; urgency=medium
++
++  * Include patch from gitlab to improve performance
++
++ -- Pirate Praveen <praveen@debian.org>  Tue, 18 Aug 2020 00:15:20 +0530
++
++puma (4.3.3-2) unstable; urgency=medium
++
++  [ Daniel Leidert ]
++  * debian/tests/test_puma_server_ssl,
++    debian/tests/test_puma_server_ssl.rake: Run test/test_puma_server_ssl.rb
++    in an openssl enviroment not using the Debian defaults.
++  * debian/tests/control: Add new test.
++
++  [ Debian Janitor ]
++  * Set field Upstream-Contact in debian/copyright.
++  * Remove obsolete fields Contact, Name from debian/upstream/metadata
++    (already present in machine-readable debian/copyright).
++
++  [ Pirate Praveen ]
++  * Remove debian-branch option from debian/gbp.conf
++  * Reupload to unstable
++
++ -- Pirate Praveen <praveen@debian.org>  Mon, 03 Aug 2020 15:37:16 +0530
++
++puma (4.3.3-1) experimental; urgency=medium
++
++  * Team upload.
++  * New upstream release.
++    - Fixes CVE-2020-5247 (closes: #952766).
++    - Fixes CVE-2020-5249 (closes: #953122).
++  * d/control (Section): Change to web.
++    (Vcs-Git): Indicate branch name via -b debian/experimental.
++    (Homepage): Use secure URL.
++    (Depends): Use ${ruby:Depends}.
++  * d/copyright (Source): Use secure URL.
++  * d/rules: Add override to install upstream changelog.
++  * d/watch: Use package name for tarball.
++
++ -- Daniel Leidert <dleidert@debian.org>  Thu, 05 Mar 2020 01:34:17 +0100
++
++puma (4.3.1-1) experimental; urgency=medium
++
++  * Team upload.
++  * New upstream release
++    - Fixes CVE-2019-16770 Keepalive thread overload/DoS (closes: #946312).
++  * d/control (Rules-Requires-Root): Set to binary-targets.
++    (Build-Depends, Depends): Add ruby-nio4r.
++    (Build-Depends): Add curl for test/test_integration_single.rb.
++  * d/ruby-tests.rake: Disable test/test_puma_server_ssl.rb.
++  * d/README.source: Add to explain tests which have been disabled.
++  * d/patches/0004-puma.gemspec-drop-git-usage.patch: Refresh patch.
++  * d/patches/0011-disable-minitest-extensions.patch: Add patch.
++    - Disable unavailable minitest extensions (retry and proveit).
++  * d/patches/0012-disable-cli-ssl-tests.patch: Add patch.
++    - Disable CLI SSL tests.
++  * d/patches/0013-fix-test-term-not-accepts-new-connections.patch: Add.
++    - Fix test_term_not_accepts_new_connections to be locale independent.
++  * d/patches/0002-test_integration-disable-test-that-fails-randomly.patch,
++    d/patches/0003-test_cli-disable-test-that-rails-randomly.patch,
++    d/patches/0005-test_puma_server-disable-test-that-fails-randomly.patch,
++    d/patches/0006-test-helper.rb-drop-bundler-usage.patch,
++    d/patches/0007-test-test_cli.rb-disable-test-that-fails-randomly.patch,
++    d/patches/0008-fix-ssl-tests.patch,
++    d/patches/0009-disable-tests-failing-in-single-cpu.patch,
++    d/patches/0010-fix-cluster-exit-for-ruby27.patch: Remove obsolete patches.
++  * d/patches/series: Adjust.
++
++ -- Daniel Leidert <dleidert@debian.org>  Thu, 06 Feb 2020 11:45:11 +0100
++
++puma (3.12.4-1) unstable; urgency=medium
++
++  * Team upload.
++  * New upstream release.
++    - Fixes CVE-2020-5247 (closes: #952766).
++    - Fixes CVE-2020-5249 (closes: #953122).
++  * d/control (Section): Changed to web.
++    (Homepage): Use secure URL.
++    (Depends): Add ${ruby:Depends}.
++  * d/copyright (Source): Use secure URL.
++  * d/ruby-tests.rake: Disable test/test_puma_server_ssl.rb for the moment.
++    These tests fail due to openssl being configured to use SECLEVEL2
++    (https://github.com/puma/puma/issues/2147).
++  * d/rules: Add override to install upstream changelog.
++  * d/watch: Rename downloaded tarball to include package name.
++  * d/patches/0008-fix-ssl-tests.patch: Remove patch. Applied upstream.
++  * d/patches/CVE-2019-16770.patch: Ditto.
++  * d/patches/*.patch: Refresh patches.
++  * d/patches/series: Adjust.
++
++ -- Daniel Leidert <dleidert@debian.org>  Wed, 04 Mar 2020 23:09:16 +0100
++
++puma (3.12.0-4) unstable; urgency=medium
++
++  * Team upload.
++  * d/control (Rules-Requires-Root): Set to binary-targets.
++  * d/patches/0011-disable-minitest-extensions.patch: Add patch.
++    - Disable unavailable minitest retry extension.
++  * d/patches/CVE-2019-16770.patch: Add patch.
++    - Backport fix for CVE-2019-16770 from upstream (closes: #946312).
++  * d/patches/series: Add patch.
++
++ -- Daniel Leidert <dleidert@debian.org>  Thu, 06 Feb 2020 12:54:59 +0100
++
++puma (3.12.0-3) unstable; urgency=medium
++
++  * Team upload.
++  * d/compat: Remove obsolete file.
++  * d/control: Add Rules-Requires-Root field.
++    (Build-Depends): Use debhelper-compat.
++    (Standards-Version): Bump to 4.5.0.
++    (Depends): Drop ruby-interpreter.
++  * d/copyright (Format): Fix insecure-copyright-format-uri and add myself.
++  * d/puma.1, d/pumactl.1: Add manual pages.
++  * d/puma.manpages: Install manual pages.
++  * d/ruby-tests.rake: Set verbose mode.
++  * d/patches/0010-fix-cluster-exit-for-ruby27.patch: Add patch.
++    - Fix hang with Ruby >= 2.6 when shutting down workers.
++  * d/patches/series: Enable new patch.
++  * d/upstream/metadata: Add metadata.
++  * d/upstream/metadata: Add metadata.
++
++ -- Daniel Leidert <dleidert@debian.org>  Wed, 05 Feb 2020 18:20:58 +0100
++
++puma (3.12.0-2) unstable; urgency=medium
++
++  * Disable tests failing in single cpu (Closes: #921931)
++
++ -- Pirate Praveen <praveen@debian.org>  Sun, 10 Feb 2019 18:56:47 +0530
++
++puma (3.12.0-1) unstable; urgency=medium
++
++  [ Balint Reczey ]
++  * New upstream version 3.12.0
++  * Refresh patches
++
++  [ Pirate Praveen ]
++  * Fix OpenSSL 1.1.1 test failures with upstream patch (Closes: #900156)
++  * Bump Standards-Version to 4.3.0 (no changes needed)
++  * Add myself to uploaders
++
++ -- Pirate Praveen <praveen@debian.org>  Sun, 10 Feb 2019 10:56:59 +0530
++
++puma (3.11.3-1) unstable; urgency=medium
++
++  * Team upload
++  * Remove myself from Uploaders:
++  * New upstream version 3.11.3
++  * Build against libssl-dev instead of libssl1.0-dev (Closes: #859542)
++  * Refresh packaging files with `dh-make-ruby -wo .`
++    * Bump debhelper compat to 11
++    * Change Vcs-* to point to salsa.debian.org
++    * Use standard debian/ruby-tests.rake
++      * drop build-dependency on ruby-hoe
++  * Refresh patches
++  * New patches:
++    - 0006-test-helper.rb-drop-bundler-usage.patch
++    - 0007-test-test_cli.rb-disable-test-that-fails-randomly.patch
++  * Replace 0001-test_puma_server_ssl-update-for-newer-versions-of-Op.patch
++    with 0001-test_puma_server_ssl-disable-test-that-takes-too-lon.patch
++
++
++ -- Antonio Terceiro <terceiro@debian.org>  Wed, 28 Mar 2018 18:53:22 -0300
++
++puma (3.6.0-1) unstable; urgency=medium
++
++  * Initial release (Closes: #720336)
++
++ -- Antonio Terceiro <terceiro@debian.org>  Thu, 10 Nov 2016 16:47:06 -0200
diff --cc debian/clean
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..45351253f956527ac039880f7b06f3b88c22d6fd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++tmp/restart.txt
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d2b1a284949bd2aee34c3787280e36e5f4c77efd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,32 @@@
++Source: puma
++Section: web
++Priority: optional
++Maintainer: Debian Ruby Team <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
++Uploaders: Pirate Praveen <praveen@debian.org>,
++           Lucas Kanashiro <kanashiro@debian.org>
++Build-Depends: curl,
++               debhelper-compat (= 13),
++               gem2deb (>= 1.6),
++               libssl-dev,
++               rake,
++               ruby-localhost,
++               ruby-minitest-stub-const,
++               ruby-nio4r (>= 2),
++               ruby-rack (<< 3),
++               ruby-sd-notify,
++               procps
++Standards-Version: 4.6.2
++Vcs-Git: https://salsa.debian.org/ruby-team/puma.git -b debian/experimental
++Vcs-Browser: https://salsa.debian.org/ruby-team/puma
++Homepage: https://puma.io
++Testsuite: autopkgtest-pkg-ruby
++Rules-Requires-Root: binary-targets
++
++Package: puma
++Architecture: any
++Breaks: rails (<< 2:6.1.7.3+dfsg-3~)
++Depends: ruby, ${misc:Depends}, ${ruby:Depends}, ${shlibs:Depends}
++Description: threaded HTTP 1.1 server for Ruby/Rack applications
++ Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for
++ Ruby/Rack applications. Puma is intended for use in both development and
++ production environments.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..70590cdcbfb79db560e15466a29125f2d69a5a4d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,42 @@@
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: puma
++Upstream-Contact: https://github.com/puma/puma/issues
++Source: https://github.com/puma/puma
++
++Files: *
++Copyright: 2005, Zed Shaw
++           2011, Evan Phoenix
++License: BSD-3-clause
++
++Files: debian/*
++Copyright: 2016 Antonio Terceiro <terceiro@debian.org>
++           2020,2023 Daniel Leidert <dleidert@debian.org>
++           2023 Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
++License: BSD-3-clause
++Comment: The Debian packaging is licensed under the same terms as the source.
++
++License: BSD-3-clause
++ All rights reserved.
++ .
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++ * Redistributions of source code must retain the above copyright notice, this
++   list of conditions and the following disclaimer.
++ * Redistributions in binary form must reproduce the above copyright notice
++   this list of conditions and the following disclaimer in the documentation
++   and/or other materials provided with the distribution.
++ * Neither the name of the Evan Phoenix nor the names of its contributors
++   may be used to endorse or promote products derived from this software
++   without specific prior written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
++ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
++ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
++ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --cc debian/gbp.conf
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..da9f191b64d214a20d4b736dca4db7940dade516
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++[DEFAULT]
++pristine-tar = true
++sign-tags = true
++verbose = true
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3c0205c3a40f92ce4030dc02a435da40f18c515f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++From: Antonio Terceiro <terceiro@softwarelivre.org>
++Date: Wed, 5 Feb 2020 21:36:05 +0100
++Subject: Drop git usage from gemspec
++
++Forwarded: not-needed
++---
++ puma.gemspec | 3 +--
++ 1 file changed, 1 insertion(+), 2 deletions(-)
++
++diff --git a/puma.gemspec b/puma.gemspec
++index f5e01c2..9ff86a3 100644
++--- a/puma.gemspec
+++++ b/puma.gemspec
++@@ -13,8 +13,7 @@ Gem::Specification.new do |s|
++   if RbConfig::CONFIG['ruby_version'] >= '2.5'
++     s.metadata["msys2_mingw_dependencies"] = "openssl"
++   end
++-  s.files = `git ls-files -- bin docs ext lib tools`.split("\n") +
++-            %w[History.md LICENSE README.md]
+++  s.files = Dir.glob('**/*').reject { |f| f =~ /^debian\//}
++   s.homepage = "https://puma.io"
++ 
++   if s.respond_to?(:metadata=)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d7b0bd0403f862098ee5f1a140c868834ee84323
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,521 @@@
++From: Patrik Ragnarsson <patrik@starkast.net>
++Date: Sun, 14 Jul 2024 18:44:29 +0200
++Subject: CI: update chain certs example files (#3426)
++
++Ran "ruby examples/puma/chain_cert/generate_chain_test.rb"
++
++examples/puma/chain_cert/cert.crt expired June 5, 2024 before this change, causing test failures.
++
++Origin: upstream, https://github.com/puma/puma/commit/11e5d6dcbf0f6bfb170f38c5713d5851399a55dd
++---
++ examples/puma/chain_cert/ca.crt                 | 33 +++++----
++ examples/puma/chain_cert/ca.key                 | 50 ++++++-------
++ examples/puma/chain_cert/ca_chain.pem           | 65 +++++++++--------
++ examples/puma/chain_cert/cert.crt               | 32 ++++----
++ examples/puma/chain_cert/cert.key               | 50 ++++++-------
++ examples/puma/chain_cert/cert_chain.pem         | 97 +++++++++++++------------
++ examples/puma/chain_cert/generate_chain_test.rb |  5 +-
++ examples/puma/chain_cert/intermediate.crt       | 32 ++++----
++ examples/puma/chain_cert/intermediate.key       | 50 ++++++-------
++ 9 files changed, 207 insertions(+), 207 deletions(-)
++
++diff --git a/examples/puma/chain_cert/ca.crt b/examples/puma/chain_cert/ca.crt
++index a5ae2d7..3247c10 100644
++--- a/examples/puma/chain_cert/ca.crt
+++++ b/examples/puma/chain_cert/ca.crt
++@@ -1,19 +1,20 @@
++ -----BEGIN CERTIFICATE-----
++-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
+++Srj3l9ghFLwEImIBPw==
++ -----END CERTIFICATE-----
++diff --git a/examples/puma/chain_cert/ca.key b/examples/puma/chain_cert/ca.key
++index 4d4369a..c228706 100644
++--- a/examples/puma/chain_cert/ca.key
+++++ b/examples/puma/chain_cert/ca.key
++@@ -1,27 +1,27 @@
++ -----BEGIN RSA PRIVATE KEY-----
++-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
++ -----END RSA PRIVATE KEY-----
++diff --git a/examples/puma/chain_cert/ca_chain.pem b/examples/puma/chain_cert/ca_chain.pem
++index 5d77a44..785fc82 100644
++--- a/examples/puma/chain_cert/ca_chain.pem
+++++ b/examples/puma/chain_cert/ca_chain.pem
++@@ -1,39 +1,40 @@
++ -----BEGIN CERTIFICATE-----
++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w
++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx
+++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx
++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI
++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs
++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT
++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/
++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF
++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i
++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw
++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT
++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE
++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ
++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ
++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435
++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq
++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H
++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/
++-KG6q1Yf+
+++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF
+++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc
+++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD
+++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne
+++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG
+++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw
+++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT
+++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk
+++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy
+++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk
+++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo
+++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ
++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0
+++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq
+++g3cTPG2b
++ -----END CERTIFICATE-----
++ -----BEGIN CERTIFICATE-----
++-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
+++Srj3l9ghFLwEImIBPw==
++ -----END CERTIFICATE-----
++diff --git a/examples/puma/chain_cert/cert.crt b/examples/puma/chain_cert/cert.crt
++index 5c8dbce..8df6d84 100644
++--- a/examples/puma/chain_cert/cert.crt
+++++ b/examples/puma/chain_cert/cert.crt
++@@ -1,20 +1,20 @@
++ -----BEGIN CERTIFICATE-----
++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl
++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjMwNjA1MDAwMDAwWhcNMjQwNjA1
+++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0
++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq
++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1iY3+/B0oIXUChZFnXVQvZ2PfYJ8UVeW
++-3Oq9a6zQTP95aSwtv/rAt1jYA1H18p6npa254ODZcdWp+EtvUIiTFIII9X0B6WH/
++-rDm8D6mDkMGi/L3DlJ1vJaOVbXe9NL33zJJznAZ0T2lcg9qXN6wbUIhcChRSMsFw
++-xR0pPnvZv34NBvefxNWnJpFKqyXEi64ONHwjil4/Sk7lunmguwLAPano3wp81qsp
++-rv8KTiqJUfF78CrtwY1LMWvC3AcbPBLlyBrr7mPfAoVuxu+s6tXqpcOsp/FoKa9Y
++-lIxS82po1aKLnXkAMc75rlT5WVXrPVeRWgDucxUDOXFpl955pNSQRQIDAQABo28w
++-bTAdBgNVHQ4EFgQU3FVgqa85bI7/5jVEfOh/w1RfvH4wCwYDVR0PBAQDAgbAMBMG
++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU+wCxrhII
++-TVatm9iz/dMpKWWlNRswDQYJKoZIhvcNAQENBQADggEBAG0gjxN6U8EaUhaJJj8C
++-Av/5A+F5SPDotbpj4T/1ciSn8wQf3aotBaNCzv7mC2mWtl4PIrOZ8bH42dZ0sWEU
++-Ft1h4HVLQADv5QU0RKNuKXoDRvVXB6IDNAIWB+8NQwYwj+WvYH+BLoc53yBfHQGK
++-B+y8SVeEcQVjzmcZ2TUT2/b5XEsiV+ugLce294lUPIlSmWK043Oe3UfMRuurPwyj
++-Qjn/pwl7S22BRDCorQ5NThb+/lsO54J/8zpCxHmhgm152mXcCYBNjYLwd5SYvawN
++-Q5EDcE/31xqtZkGtBDb/ZqwUSbmwLb3qFRjgM/t+H2eUMyZUxbvmxzlZdAO7xAOC
++-fho=
+++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M
+++BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA
+++jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z
+++JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N
+++xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh
+++N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w
+++bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG
+++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h
+++mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe
+++xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR
+++oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu
+++RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC
+++152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV
+++l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0
+++SLg=
++ -----END CERTIFICATE-----
++diff --git a/examples/puma/chain_cert/cert.key b/examples/puma/chain_cert/cert.key
++index d6e70d8..411bdc8 100644
++--- a/examples/puma/chain_cert/cert.key
+++++ b/examples/puma/chain_cert/cert.key
++@@ -1,27 +1,27 @@
++ -----BEGIN RSA PRIVATE KEY-----
++-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
++ -----END RSA PRIVATE KEY-----
++diff --git a/examples/puma/chain_cert/cert_chain.pem b/examples/puma/chain_cert/cert_chain.pem
++index b60ece6..134ea32 100644
++--- a/examples/puma/chain_cert/cert_chain.pem
+++++ b/examples/puma/chain_cert/cert_chain.pem
++@@ -1,59 +1,60 @@
++ -----BEGIN CERTIFICATE-----
++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl
++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjMwNjA1MDAwMDAwWhcNMjQwNjA1
+++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0
++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq
++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1iY3+/B0oIXUChZFnXVQvZ2PfYJ8UVeW
++-3Oq9a6zQTP95aSwtv/rAt1jYA1H18p6npa254ODZcdWp+EtvUIiTFIII9X0B6WH/
++-rDm8D6mDkMGi/L3DlJ1vJaOVbXe9NL33zJJznAZ0T2lcg9qXN6wbUIhcChRSMsFw
++-xR0pPnvZv34NBvefxNWnJpFKqyXEi64ONHwjil4/Sk7lunmguwLAPano3wp81qsp
++-rv8KTiqJUfF78CrtwY1LMWvC3AcbPBLlyBrr7mPfAoVuxu+s6tXqpcOsp/FoKa9Y
++-lIxS82po1aKLnXkAMc75rlT5WVXrPVeRWgDucxUDOXFpl955pNSQRQIDAQABo28w
++-bTAdBgNVHQ4EFgQU3FVgqa85bI7/5jVEfOh/w1RfvH4wCwYDVR0PBAQDAgbAMBMG
++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU+wCxrhII
++-TVatm9iz/dMpKWWlNRswDQYJKoZIhvcNAQENBQADggEBAG0gjxN6U8EaUhaJJj8C
++-Av/5A+F5SPDotbpj4T/1ciSn8wQf3aotBaNCzv7mC2mWtl4PIrOZ8bH42dZ0sWEU
++-Ft1h4HVLQADv5QU0RKNuKXoDRvVXB6IDNAIWB+8NQwYwj+WvYH+BLoc53yBfHQGK
++-B+y8SVeEcQVjzmcZ2TUT2/b5XEsiV+ugLce294lUPIlSmWK043Oe3UfMRuurPwyj
++-Qjn/pwl7S22BRDCorQ5NThb+/lsO54J/8zpCxHmhgm152mXcCYBNjYLwd5SYvawN
++-Q5EDcE/31xqtZkGtBDb/ZqwUSbmwLb3qFRjgM/t+H2eUMyZUxbvmxzlZdAO7xAOC
++-fho=
+++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M
+++BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA
+++jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z
+++JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N
+++xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh
+++N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w
+++bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG
+++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h
+++mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe
+++xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR
+++oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu
+++RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC
+++152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV
+++l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0
+++SLg=
++ -----END CERTIFICATE-----
++ -----BEGIN CERTIFICATE-----
++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w
++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx
+++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx
++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI
++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs
++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT
++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/
++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF
++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i
++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw
++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT
++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE
++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ
++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ
++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435
++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq
++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H
++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/
++-KG6q1Yf+
+++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF
+++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc
+++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD
+++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne
+++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG
+++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw
+++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT
+++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk
+++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy
+++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk
+++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo
+++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ
++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0
+++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq
+++g3cTPG2b
++ -----END CERTIFICATE-----
++ -----BEGIN CERTIFICATE-----
++-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
+++Srj3l9ghFLwEImIBPw==
++ -----END CERTIFICATE-----
++diff --git a/examples/puma/chain_cert/generate_chain_test.rb b/examples/puma/chain_cert/generate_chain_test.rb
++index 31c215e..0e6b0d8 100644
++--- a/examples/puma/chain_cert/generate_chain_test.rb
+++++ b/examples/puma/chain_cert/generate_chain_test.rb
++@@ -14,10 +14,7 @@ expires in 4 years
++ =end
++ 
++ require 'bundler/inline'
++-
++-
++-require 'certificate_authority'
++-gemfile do
+++gemfile(true) do
++   source 'https://rubygems.org'
++   gem 'certificate_authority'
++ end
++diff --git a/examples/puma/chain_cert/intermediate.crt b/examples/puma/chain_cert/intermediate.crt
++index 8194028..f26fb01 100644
++--- a/examples/puma/chain_cert/intermediate.crt
+++++ b/examples/puma/chain_cert/intermediate.crt
++@@ -1,20 +1,20 @@
++ -----BEGIN CERTIFICATE-----
++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w
++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx
+++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx
++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI
++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs
++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT
++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/
++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF
++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i
++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw
++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT
++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE
++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ
++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ
++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435
++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq
++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H
++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/
++-KG6q1Yf+
+++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF
+++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc
+++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD
+++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne
+++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG
+++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw
+++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT
+++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk
+++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy
+++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk
+++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo
+++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ
++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0
+++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq
+++g3cTPG2b
++ -----END CERTIFICATE-----
++diff --git a/examples/puma/chain_cert/intermediate.key b/examples/puma/chain_cert/intermediate.key
++index 53a547b..bb63df7 100644
++--- a/examples/puma/chain_cert/intermediate.key
+++++ b/examples/puma/chain_cert/intermediate.key
++@@ -1,27 +1,27 @@
++ -----BEGIN RSA PRIVATE KEY-----
++-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
++ -----END RSA PRIVATE KEY-----
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cf1d2c9ebf7fefcb2822f989eaab91a956ee305d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,41 @@@
++From: Daniel Leidert <daniel.leidert@wgdd.de>
++Date: Wed, 5 Feb 2020 22:20:42 +0100
++Subject: Disable unavailable minitest extensions
++
++Forwarded: not-needed
++---
++ test/helper.rb | 7 +------
++ 1 file changed, 1 insertion(+), 6 deletions(-)
++
++--- a/test/helper.rb
+++++ b/test/helper.rb
++@@ -16,7 +16,6 @@
++ require_relative "minitest/verbose"
++ require "minitest/autorun"
++ require "minitest/pride"
++-require "minitest/proveit"
++ require "minitest/stub_const"
++ require "net/http"
++ require_relative "helpers/apps"
++@@ -110,12 +109,9 @@
++ Minitest::Test.prepend TimeoutEveryTestCase
++ 
++ if ENV['CI']
++-  require 'minitest/retry'
++ 
++   SUMMARY_FILE = ENV['GITHUB_STEP_SUMMARY']
++ 
++-  Minitest::Retry.use!
++-
++   if SUMMARY_FILE && ENV['GITHUB_ACTIONS'] == 'true'
++ 
++     GITHUB_STEP_SUMMARY_MUTEX = Mutex.new
++@@ -215,7 +211,7 @@
++   PROJECT_ROOT = File.dirname(__dir__)
++ 
++   def self.run(reporter, options = {}) # :nodoc:
++-    prove_it!
+++    #prove_it!
++     super
++   end
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..889a8c416b13e352bba2e8ea9f0e5b229af76bad
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++From: Daniel Leidert <daniel.leidert@wgdd.de>
++Date: Wed, 5 Feb 2020 23:18:37 +0100
++Subject: Disable cli ssl tests
++
++Forwarded: not-needed
++---
++ test/test_pumactl.rb | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++--- a/test/test_pumactl.rb
+++++ b/test/test_pumactl.rb
++@@ -255,12 +255,12 @@
++   end
++ 
++ 
++-  def test_control_ssl_ipv4
+++  def __test_control_ssl_ipv4
++     skip_unless :ssl
++     control_ssl '127.0.0.1'
++   end
++ 
++-  def test_control_ssl_ipv6
+++  def __test_control_ssl_ipv6
++     skip_unless :ssl
++     control_ssl '[::1]'
++   end
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..42266090624197cb97ad4107361e6cb20d7ec8ae
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++From: Daniel Leidert <daniel.leidert@wgdd.de>
++Date: Thu, 6 Feb 2020 11:24:24 +0100
++Subject: Fix test to read output locale independent
++
++The test fails if run in a non-English environment.
++
++Forwarded: https://github.com/puma/puma/issues/2149
++---
++ test/test_integration_single.rb | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++--- a/test/test_integration_single.rb
+++++ b/test/test_integration_single.rb
++@@ -112,7 +112,7 @@
++     assert wait_for_server_to_include('Gracefully stopping') # wait for server to begin graceful shutdown
++ 
++     # Invoke a request which must be rejected
++-    _stdin, _stdout, rejected_curl_stderr, rejected_curl_wait_thread = Open3.popen3("curl #{HOST}:#{@tcp_port}")
+++    _stdin, _stdout, rejected_curl_stderr, rejected_curl_wait_thread = Open3.popen3({ "LC_ALL" => "C" }, "curl http://#{HOST}:#{@tcp_port}")
++ 
++     assert nil != Process.getpgid(@server.pid) # ensure server is still running
++     assert nil != Process.getpgid(curl_wait_thread[:pid]) # ensure first curl invocation still in progress
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..74906aa11ce1382c183577ddca5d25fd2db2af76
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++From: Pirate Praveen <praveen@debian.org>
++Date: Mon, 8 Mar 2021 23:03:21 +0530
++Subject: Disable test that failied on amd64 buildd
++
++This test failed on amd64 buildd
++https://buildd.debian.org/status/fetch.php?pkg=puma&arch=amd64&ver=5.2.2-1&stamp=1615133735&raw=0
++
++Forwarded: not-needed
++---
++ test/test_puma_server.rb | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++--- a/test/test_puma_server.rb
+++++ b/test/test_puma_server.rb
++@@ -1566,7 +1566,7 @@
++     end
++   end
++ 
++-  def test_command_ignored_before_run
+++  def __test_command_ignored_before_run
++     @server.stop # ignored
++     @server.run
++     @server.halt
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..71484729249df8752ce6de45381e5ab936205072
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++Output changed from 'OK' to '::Rack::URLMap is loaded'
++
++--- a/test/test_url_map.rb
+++++ b/test/test_url_map.rb
++@@ -9,7 +9,7 @@
++   end
++ 
++   # make sure the mapping defined in url_map_test/config.ru works
++-  def test_basic_url_mapping
+++  def __test_basic_url_mapping
++     skip_if :jruby
++     env = { "BUNDLE_GEMFILE" => "#{__dir__}/url_map_test/Gemfile" }
++     Dir.chdir("#{__dir__}/url_map_test") do
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7916853ab3657d0920b06c662add87052a985d4b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++this test is failing on arm64 buildd (sometimes on other archs as well)
++
++--- a/test/test_plugin_systemd.rb
+++++ b/test/test_plugin_systemd.rb
++@@ -32,7 +32,7 @@
++     @sockaddr = nil
++   end
++ 
++-  def test_systemd_notify_usr1_phased_restart_cluster
+++  def __test_systemd_notify_usr1_phased_restart_cluster
++     skip_unless :fork
++     assert_restarts_with_systemd :USR1
++   end
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9e9c286ac19976d3c7e07a7fcb553ffbba632840
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++https://ci.debian.net/packages/p/puma/testing/armhf/42745746/
++
++--- a/test/test_integration_ssl_session.rb
+++++ b/test/test_integration_ssl_session.rb
++@@ -122,7 +122,7 @@
++     assert reused, 'session was not reused'
++   end
++ 
++-  def test_off_tls1_2
+++  def __test_off_tls1_2
++     ssl_vers = Puma::MiniSSL::OPENSSL_LIBRARY_VERSION
++     old_ssl = ssl_vers.include?(' 1.0.') || ssl_vers.match?(/ 1\.1\.1[ a-e]/)
++     skip 'Requires 1.1.1f or later' if old_ssl
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..417a44935adde87e30789f771d829377a91e27fb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,9 @@@
++0004-puma.gemspec-drop-git-usage.patch
++0011-disable-minitest-extensions.patch
++0012-disable-cli-ssl-tests.patch
++0013-fix-test-term-not-accepts-new-connections.patch
++0014-disable-test-failing-on-amd64.patch
++0015-disable-different-output-test.patch
++0016-disable-test-failing-on-arm64.patch
++0017-disable-test-failing-on-armhf.patch
++0009-CI-update-chain-certs-example-files-3426.patch
diff --cc debian/puma.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..47a94c33a1b68656703ddacb43251e743af42fab
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,165 @@@
++.TH PUMA "1" "January 2020" "PUMA 3.12" "User Commands"
++
++.SH NAME
++puma \- fast, concurrent web server for ruby and rack
++
++.SH USAGE
++.BI "puma [options...]" " [rackup file]"
++.PP
++.B puma [\-h | \-\-help | \-V | \-\-version]
++
++.SH OPTIONS
++.PP
++The following options are available:
++.TP
++.BI "\-b, \-\-bind " URI
++URI to bind to (tcp://, unix://, ssl://).
++.TP
++.BI "\-C, \-\-config " PATH
++Load given path as a config file.
++.TP
++.BI "\-\-control " URL
++DEPRECATED alias for \fB\-\-control\-url\fR.
++.TP
++.BI "\-\-control\-token " TOKEN
++The \fITOKEN\fR to use as authentication for the control server.
++.TP
++.BI "\-\-control\-url " URL
++The bind \fIURL\fR to use for the control server and app. Use \fIauto\fR to
++use a temp unix server. This requires to use a \fB\-\-control\-token\fR, which
++needs to be given with every request to the control server (\fItoken=foo\fR).
++.TP
++.B \-d, \-\-daemon
++Demonize the server into the background.
++.TP
++.B \-\-debug
++Show low level debugging information.
++.TP
++.BI "\-\-dir " DIR
++Change to given directory before starting.
++.TP
++.BI "\-e, \-\-environment " ENVIRONMENT
++The environment to run the Rack app on. Default \fIdevelopment\fR.
++.TP
++.BI "\-I, \-\-include " PATH
++Specify \fB$LOAD_PATH\fR directories.
++.TP
++.BI "\-p, \-\-port " PORT
++Define the TCP port to bind to. Use \fB\-b\fR for more advanced options.
++.TP
++.BI "\-\-pidfile " PATH
++Use the given path as PID file.
++.TP
++.B \-\-preload
++Preload the application. This loads all the application code prior to forking.
++Preloading reduces total memory usage of an application and is only available
++in cluster mode.
++.TP
++.B \-\-prune\-bundler
++Prune out the bundler env if possible.
++.TP
++.B \-q, \-\-quiet
++Do not log requests internally. Default: \fItrue\fR.
++.TP
++.B \-v, \-\-log-requests
++Log requests as they occur.
++.TP
++.BI "\-R, \-\-restart\-cmd " CMD
++The \fBpuma\fR command to run during a hot restart. Default: \fIinferred\fR.
++.TP
++.BI "\-S, \-\-state " PATH
++Where to store the state details.
++.TP
++.BI "\-t, \-\-threads " INT
++Min:max threads to use. Puma will automatically scale the number of threads,
++from the minimum until it caps out at the maximum, based on how much traffic
++is present. Default: \fI0:16\fR.
++.TP
++.B \-\-tcp\-mode
++Run the app in raw TCP mode instead of HTTP mode.
++.TP
++.B \-\-early-hints
++Enable early hints support.
++.TP
++.BI "\-w, \-\-workers " COUNT
++Activate cluster mode and define number of worker processes to create. In this
++mode workers are forked from a master process. Each child process still has
++its own thread pool and the \fB\-t\fR setting is per worker.
++.TP
++.BI "\-\-tag " NAME
++Additional text to display in process listing.
++.TP
++.BI "\-\-redirect\-stdout " FILE
++Redirect \fBSTDOUT\fR to a specific file.
++.TP
++.BI "\-\-redirect\-stderr " FILE
++Redirect \fBSTDERR\fR to a specific file.
++.TP
++.B \-\-[no\-]redirect\-append
++Append to redirected files.
++.TP
++.B \-h, \-\-help
++Show help.
++.TP    
++.B \-V, \-\-version
++Print the version information.
++
++.SH EXAMPLES
++.PP
++The following examples show how to bind TCP or sockets:
++.PP
++Bind Puma to a socket with the -b (or --bind) flag:
++.RS
++.B puma -b tcp://127.0.0.1:9292
++.RE
++.PP
++To use a UNIX Socket instead of TCP:
++.RS
++.B puma -b unix:///var/run/puma.sock
++.RE
++.PP
++To change the permissions of the UNIX socket, add a umask parameter:
++.RS
++.B puma -b 'unix:///var/run/puma.sock?umask=0111'
++.RE
++.PP
++In need of a bit of security use SSL sockets:
++.RS
++.B puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert'
++.RE
++.PP
++The following example show how to Create a control server and use
++.BR pumactl (1)
++to interact with the control server to restart \fBpuma\fR.
++.RS
++.B puma --control-url tcp://127.0.0.1:9293 --control-token foo
++.br
++.B pumactl --control-url 'tcp://127.0.0.1:9293' --control-token foo restart
++.RE
++.PP
++
++.SH "CONFIGURATION FILE"
++.B puma
++will look for a configuration file at \fIconfig/puma.rb\fR. If an environment
++is specified, either via the \fB\-e\fR and \fB\-\-environment\fR flags, or
++through the \fIRACK_ENV\fR or the \fIRAILS_ENV\fR environment variables, it
++looks for configuration at \fIconfig/puma/<environment_name>.rb\fR.
++.PP
++The \fB\-C\fR flag allows one to pass on a custom configuration location. If
++the value specified is a dash (\fI\-\fR) \fBpuma\fR won't look for any
++configuration file:
++.PP
++.RS
++.B puma -C \(dq\-\(dq
++.RE
++
++.SH "SEE ALSO"
++.PP
++There is extensive documentation at <\%https://puma.io/puma/\%> and
++<\%https://github.com/puma/puma\%>.
++
++.SH AUTHOR
++.PP
++This manual page was written by \fBDaniel Leidert\fP
++<\%dleidert@debian\.org\%>, for the Debian GNU/Linux system (but may be used by
++others).
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b43bf86b50fd8d3529a0dc062c30006ed38f309e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++README.md
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e39721e20f0708703dc6d9b607634636d625e9b2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++examples/*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e7234244f59728fc78ed01cdc5aae904ff9e69cf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++# this is one of several sub-directories; no need to rename it
++repeated-path-segment puma [usr/share/doc/puma/examples/puma/]
++repeated-path-segment 3.1.0 [usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0/extensions/x86_64-linux/3.1.0/]
++repeated-path-segment lib [usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0/gems/puma-5.6.7/lib/]
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8c2d5877bb9f1f190cac012f6d69e19b76971830
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++debian/puma.1
++debian/pumactl.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..67e70d67360abba841fc52c5fa025e374cbe8ef8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,99 @@@
++.TH PUMA "1" "January 2020" "PUMA 3.12" "User Commands"
++
++.SH NAME
++pumactl \- command line client for puma
++
++.SH USAGE
++.B pumactl [options...] [commands]
++.PP
++.B pumactl [\-h | \-\-help | \-V | \-\-version]
++
++.SH COMMANDS
++.TP
++.B halt
++Halt the server.
++.TP
++.B restart
++Restart the server.
++.TP
++.B phased-restart
++Restart server but phase out old workers while starting new workers one at a
++time.
++.TP
++.B start
++Start the server.
++.TP
++.B stats
++Show stats about the server.
++.TP
++.B status
++Show server status.
++.TP
++.B stop
++Stop server.
++.TP
++.B reload-worker-directory
++Reload the worker directory.
++.TP
++.B gc
++Start garbage collector.
++.TP
++.B gc-stats
++Show information about garbage collector.
++
++.SH OPTIONS
++.PP
++The following options are available:
++.TP
++.BI "\-F, \-\-config\-file " PATH
++Load given path as a config file.
++.TP
++.BI "\-T, \-\-control\-token " TOKEN
++The \fITOKEN\fR to use as authentication for the control server.
++.TP
++.BI "\-C, \-\-control\-url " URL
++The bind \fIURL\fR to use for the control server and app. Use \fIauto\fR to
++use a temp unix server. This requires to use a \fB\-\-control\-token\fR, which
++needs to be given with every request to the control server (\fItoken=foo\fR).
++.TP
++.BI "\-p, \-\-pid " PID
++Define the TCP port to bind to. Use \fB\-b\fR for more advanced options.
++.TP
++.BI "\-P, \-\-pidfile " PATH
++Use the given path as PID file.
++.TP
++.B \-Q, \-\-quiet
++Don't display messages.
++.TP
++.BI "\-S, \-\-state " PATH
++Where the state file is.
++.TP
++.B \-H, \-\-help
++Show help.
++.TP    
++.B \-V, \-\-version
++Print the version information.
++
++.SH EXAMPLES
++Create a control server and use
++.BR pumactl (1)
++to interact with the control server to restart \fBpuma\fR.
++.RS
++.B puma --control-url tcp://127.0.0.1:9293 --control-token foo
++.br
++.B pumactl --control-url 'tcp://127.0.0.1:9293' --control-token foo restart
++.RE
++.PP
++
++.SH "SEE ALSO"
++.PP
++.BR puma (1)
++.PP
++There is extensive documentation at <\%https://puma.io/puma/\%> and
++<\%https://github.com/puma/puma\%>.
++
++.SH AUTHOR
++.PP
++This manual page was written by \fBDaniel Leidert\fP
++<\%dleidert@debian\.org\%>, for the Debian GNU/Linux system (but may be used by
++others).
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4da1034daf8bb25ec4c95574fb0c19e5f4268f39
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,28 @@@
++require 'gem2deb/rake/testtask'
++
++Gem2Deb::Rake::TestTask.new do |t|
++  t.libs = ['test']
++  if ENV['AUTOPKGTEST_TEST_PUMA_SERVER_SSL']
++    ENV['OPENSSL_CONF'] = '' # https://github.com/puma/puma/issues/2147
++    t.test_files = FileList['test/test_*_ssl.rb']
++  else
++    t.test_files = FileList['test/**/*_test.rb'] + FileList['test/**/test_*.rb'] - FileList[
++      'test/test_*ssl.rb',
++      'test/test_integration_cluster.rb',
++      'test/test_worker_gem_independence.rb',
++      'test/test_rack_version_restriction.rb',
++      'test/test_preserve_bundler_env.rb',
++    ]
++  end
++  t.verbose = true
++end.tap do |t|
++  exclude = %w[
++    test_application_logs_are_flushed_on_write
++    test_hot_restart_does_not_drop_connections
++    test_logs_all_localhost_bindings
++    test_multiple_requests_waiting_on_less_busy_worker
++    test_term_not_accepts_new_connections
++    test_prune_bundler_with_multiple_workers
++  ]
++  t.options << ' ' << "-e'/" << exclude.join('|') << "/'"
++end
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..da15652282ad87fd94648c270f09aeb244e732a3
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++#!/usr/bin/make -f
++
++export GEM2DEB_TEST_RUNNER = --check-dependencies
++export DH_RUBY = --gem-install
++export DH_RUBY_GEM_INSTALL_EXCLUDE = benchmarks/* docs/* win_gem_test/* tools/* bin/puma-wild
++export LANG = C.UTF-8
++export LC_ALL = C.UTF-8
++export TEST_CASE_TIMEOUT = 300
++
++%:
++      dh $@ --buildsystem=ruby --with ruby
++
++override_dh_installchangelogs:
++      dh_installchangelogs History.md
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..33c3a640d2a84306b6a8b5640692ac3481739e65
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++---
++include:
++  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
++  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..362d49eeddf78b4541c161f629ae876d5bff7729
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# no signed tarballs by upstream
++puma source: debian-watch-does-not-check-gpg-signature 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e4c5aad223c00acb48a945fd3b78df3f5889af52
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++Test-Command: export AUTOPKGTEST_TEST_PUMA_SERVER_SSL=1 && gem2deb-test-runner --check-dependencies --autopkgtest
++Depends: @, @builddeps@
++Restrictions: allow-stderr
++Features: test-name=ssl
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bec1b90926377d265f9622f2789567fd7c663445
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,19 @@@
++#!/bin/sh
++
++set -x
++
++# override default config
++# https://github.com/puma/puma/issues/2147
++OPENSSL_CONF=''
++export OPENSSL_CONF
++
++mv lib .gem2deb.lib
++
++RUBYLIB=. ruby2.5 -S rake -f ./debian/tests/test_puma_server_ssl.rake
++RUBYLIB=. ruby2.7 -S rake -f ./debian/tests/test_puma_server_ssl.rake
++
++mv .gem2deb.lib lib
++
++unset OPENSSL_CONF
++
++set +x
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..404946106f34849dd696b663409850e1fe450fbf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,7 @@@
++require 'gem2deb/rake/testtask'
++
++Gem2Deb::Rake::TestTask.new do |t|
++  t.libs = ['test']
++  t.test_files = FileList['test/test_puma_server_ssl.rb']
++  t.verbose = true
++end
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cbe22a282bcbdc788cd8d52c041ca0f2171e255f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,7 @@@
++---
++Archive: GitHub
++Bug-Database: https://github.com/puma/puma/issues
++Bug-Submit: https://github.com/puma/puma/issues/new
++Changelog: https://github.com/puma/puma/releases
++Repository: https://github.com/puma/puma.git
++Repository-Browse: https://github.com/puma/puma
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b06856ff3d2cba70a8fbcacd9388f1043cf985e1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++version=4
++opts="searchmode=plain, \
++  filenamemangle=s/.+\/v@ANY_VERSION@/@PACKAGE@-$1\.tar\.gz/" \
++https://api.github.com/repos/puma/puma/tags \
++https://api.github.com/repos/puma/puma/tarball/refs/tags/v@ANY_VERSION@