diff -pruN 2.36.0-1/.gitignore 2.36.0-0ubuntu1/.gitignore
--- 2.36.0-1/.gitignore	2025-09-04 19:32:49.000000000 +0000
+++ 2.36.0-0ubuntu1/.gitignore	1970-01-01 00:00:00.000000000 +0000
@@ -1,27 +0,0 @@
-*.py[co]
-*.sw?
-*~
-doc/build/*
-dist
-build
-cover
-ChangeLog
-.coverage
-*.egg
-*.egg-info
-.eggs/*
-.DS_Store
-.tox
-pycscope.*
-.idea
-MANIFEST
-
-.testrepository/*
-.stestr/*
-.noseids
-subunit.log
-test/probe/.noseids
-RELEASENOTES.rst
-releasenotes/notes/reno.cache
-/tools/playbooks/**/*.retry
-.vscode/*
diff -pruN 2.36.0-1/.gitreview 2.36.0-0ubuntu1/.gitreview
--- 2.36.0-1/.gitreview	2025-09-04 19:32:49.000000000 +0000
+++ 2.36.0-0ubuntu1/.gitreview	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-[gerrit]
-host=review.opendev.org
-port=29418
-project=openstack/swift.git
diff -pruN 2.36.0-1/PKG-INFO 2.36.0-0ubuntu1/PKG-INFO
--- 2.36.0-1/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/PKG-INFO	2025-09-11 12:21:52.142997000 +0000
@@ -0,0 +1,217 @@
+Metadata-Version: 2.1
+Name: swift
+Version: 2.36.0
+Summary: OpenStack Object Storage
+Home-page: https://docs.openstack.org/swift/latest/
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+Project-URL: Documentation, https://docs.openstack.org/swift/latest/
+Project-URL: Bug Tracker, https://bugs.launchpad.net/swift
+Project-URL: Source Code, https://opendev.org/openstack/swift/
+Project-URL: Release Notes, https://opendev.org/openstack/swift/src/branch/master/CHANGELOG
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Information Technology
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Requires-Python: >=3.7
+Description-Content-Type: text/x-rst
+License-File: LICENSE
+License-File: AUTHORS
+Requires-Dist: eventlet!=0.34.3,>=0.25.0
+Requires-Dist: greenlet>=0.4.14
+Requires-Dist: PasteDeploy>=2.0.0
+Requires-Dist: lxml>=4.2.3
+Requires-Dist: requests>=2.14.2
+Requires-Dist: xattr>=0.7.2
+Requires-Dist: PyECLib!=1.6.2,!=1.6.3,>=1.3.1
+Requires-Dist: cryptography>=2.0.2
+Requires-Dist: dnspython>=1.15.0
+Provides-Extra: kms-keymaster
+Requires-Dist: oslo.config>=5.2.0; extra == "kms-keymaster"
+Requires-Dist: castellan>=0.13.0; extra == "kms-keymaster"
+Provides-Extra: kmip-keymaster
+Requires-Dist: pykmip>=0.7.0; extra == "kmip-keymaster"
+Provides-Extra: keystone
+Requires-Dist: keystonemiddleware>=4.17.0; extra == "keystone"
+Provides-Extra: test
+Requires-Dist: hacking<7.1.0,>=2.0; extra == "test"
+Requires-Dist: coverage>=5.2.1; extra == "test"
+Requires-Dist: pytest>=4.6.11; extra == "test"
+Requires-Dist: pytest-subtests>=0.3.0; extra == "test"
+Requires-Dist: pytest-cov>=2.12.1; extra == "test"
+Requires-Dist: stestr>=2.0.0; extra == "test"
+Requires-Dist: python-swiftclient>=3.2.0; extra == "test"
+Requires-Dist: python-keystoneclient>=3.19.0; extra == "test"
+Requires-Dist: boto>=2.32.1; extra == "test"
+Requires-Dist: boto3>=1.9; extra == "test"
+Requires-Dist: botocore>=1.12; extra == "test"
+Requires-Dist: requests-mock>=1.2.0; extra == "test"
+Requires-Dist: keystonemiddleware>=4.17.0; extra == "test"
+Requires-Dist: bandit>=1.1.0; extra == "test"
+Requires-Dist: docutils>=0.15; extra == "test"
+
+===============
+OpenStack Swift
+===============
+
+OpenStack Swift is a distributed object storage system designed to scale
+from a single machine to thousands of servers. Swift is optimized for
+multi-tenancy and high concurrency. Swift is ideal for backups, web and mobile
+content, and any other unstructured data that can grow without bound.
+
+Swift provides a simple, REST-based API fully documented at
+https://docs.openstack.org/swift/latest/.
+
+Swift was originally developed as the basis for Rackspace's Cloud Files
+and was open-sourced in 2010 as part of the OpenStack project. It has
+since grown to include contributions from many companies and has spawned
+a thriving ecosystem of 3rd party tools. Swift's contributors are listed
+in the AUTHORS file.
+
+Docs
+----
+
+To build documentation run::
+
+    pip install -r requirements.txt -r doc/requirements.txt
+    sphinx-build -W -b html doc/source doc/build/html
+
+and then browse to doc/build/html/index.html. These docs are auto-generated
+after every commit and available online at
+https://docs.openstack.org/swift/latest/.
+
+For Developers
+--------------
+
+Getting Started
+~~~~~~~~~~~~~~~
+
+Swift is part of OpenStack and follows the code contribution, review, and
+testing processes common to all OpenStack projects.
+
+If you would like to start contributing, check out these
+`notes <CONTRIBUTING.rst>`__ to help you get started.
+
+The best place to get started is the
+`"SAIO - Swift All In One" <https://docs.openstack.org/swift/latest/development_saio.html>`__.
+This document will walk you through setting up a development cluster of
+Swift in a VM. The SAIO environment is ideal for running small-scale
+tests against Swift and trying out new features and bug fixes.
+
+Tests
+~~~~~
+
+There are three types of tests included in Swift's source tree.
+
+#. Unit tests
+#. Functional tests
+#. Probe tests
+
+Unit tests check that small sections of the code behave properly. For example,
+a unit test may test a single function to ensure that various input gives the
+expected output. This validates that the code is correct and regressions are
+not introduced.
+
+Functional tests check that the client API is working as expected. These can
+be run against any endpoint claiming to support the Swift API (although some
+tests require multiple accounts with different privilege levels). These are
+"black box" tests that ensure that client apps written against Swift will
+continue to work.
+
+Probe tests are "white box" tests that validate the internal workings of a
+Swift cluster. They are written to work against the
+`"SAIO - Swift All In One" <https://docs.openstack.org/swift/latest/development_saio.html>`__
+dev environment. For example, a probe test may create an object, delete one
+replica, and ensure that the background consistency processes find and correct
+the error.
+
+You can run unit tests with ``.unittests``, functional tests with
+``.functests``, and probe tests with ``.probetests``. There is an
+additional ``.alltests`` script that wraps the other three.
+
+To fully run the tests, the target environment must use a filesystem that
+supports large xattrs. XFS is strongly recommended. For unit tests and in-
+process functional tests, either mount ``/tmp`` with XFS or provide another
+XFS filesystem via the ``TMPDIR`` environment variable. Without this setting,
+tests should still pass, but a very large number will be skipped.
+
+Code Organization
+~~~~~~~~~~~~~~~~~
+
+-  doc/: Documentation
+-  etc/: Sample config files
+-  examples/: Config snippets used in the docs
+-  swift/: Core code
+
+   -  account/: account server
+   -  cli/: code that backs some of the CLI tools
+   -  common/: code shared by different modules
+
+      -  middleware/: "standard", officially-supported middleware
+      -  ring/: code implementing Swift's ring
+
+   -  container/: container server
+   -  locale/: internationalization (translation) data
+   -  obj/: object server
+   -  proxy/: proxy server
+
+-  test/: Unit, functional, and probe tests
+
+Data Flow
+~~~~~~~~~
+
+Swift is a WSGI application and uses eventlet's WSGI server. After the
+processes are running, the entry point for new requests is the
+``Application`` class in ``swift/proxy/server.py``. From there, a
+controller is chosen, and the request is processed. The proxy may choose
+to forward the request to a back-end server. For example, the entry
+point for requests to the object server is the ``ObjectController``
+class in ``swift/obj/server.py``.
+
+For Deployers
+-------------
+
+Deployer docs are also available at
+https://docs.openstack.org/swift/latest/. A good starting point is at
+https://docs.openstack.org/swift/latest/deployment_guide.html
+There is an `ops runbook <https://docs.openstack.org/swift/latest/ops_runbook/index.html>`__
+that gives information about how to diagnose and troubleshoot common issues
+when running a Swift cluster.
+
+You can run functional tests against a Swift cluster with
+``.functests``. These functional tests require ``/etc/swift/test.conf``
+to run. A sample config file can be found in this source tree in
+``test/sample.conf``.
+
+For Client Apps
+---------------
+
+For client applications, official Python language bindings are provided
+at https://opendev.org/openstack/python-swiftclient.
+
+Complete API documentation at
+https://docs.openstack.org/api-ref/object-store/
+
+There is a large ecosystem of applications and libraries that support and
+work with OpenStack Swift. Several are listed on the
+`associated projects <https://docs.openstack.org/swift/latest/associated_projects.html>`__
+page.
+
+--------------
+
+For more information come hang out in #openstack-swift on OFTC.
+
+Thanks,
+
+The Swift Development Team
+
diff -pruN 2.36.0-1/debian/account-server.conf 2.36.0-0ubuntu1/debian/account-server.conf
--- 2.36.0-1/debian/account-server.conf	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/account-server.conf	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,16 @@
+[DEFAULT]
+bind_ip = 0.0.0.0
+bind_port = 6002
+workers = 2
+
+[pipeline:main]
+pipeline = account-server
+
+[app:account-server]
+use = egg:swift#account
+
+[account-replicator]
+
+[account-auditor]
+
+[account-reaper]
diff -pruN 2.36.0-1/debian/bin/swift-account-server-uwsgi 2.36.0-0ubuntu1/debian/bin/swift-account-server-uwsgi
--- 2.36.0-1/debian/bin/swift-account-server-uwsgi	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/bin/swift-account-server-uwsgi	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-#!/usr/bin/python3
-# To be used with uwsgi / libapache2-mod-wsgi-py3
-
-from swift.common.wsgi import init_request_processor
-
-application, conf, logger, log_name = \
-    init_request_processor('/etc/swift/account-server.conf','account-server')
diff -pruN 2.36.0-1/debian/bin/swift-container-server-uwsgi 2.36.0-0ubuntu1/debian/bin/swift-container-server-uwsgi
--- 2.36.0-1/debian/bin/swift-container-server-uwsgi	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/bin/swift-container-server-uwsgi	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-#!/usr/bin/python3
-# To be used with uwsgi / libapache2-mod-wsgi-py3
-
-from swift.common.wsgi import init_request_processor
-
-application, conf, logger, log_name = \
-    init_request_processor('/etc/swift/container-server.conf','container-server')
diff -pruN 2.36.0-1/debian/bin/swift-object-server-uwsgi 2.36.0-0ubuntu1/debian/bin/swift-object-server-uwsgi
--- 2.36.0-1/debian/bin/swift-object-server-uwsgi	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/bin/swift-object-server-uwsgi	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-#!/usr/bin/python3
-# To be used with uwsgi / libapache2-mod-wsgi-py3
-
-from swift.common.wsgi import init_request_processor
-
-application, conf, logger, log_name = \
-    init_request_processor('/etc/swift/object-server.conf','object-server')
diff -pruN 2.36.0-1/debian/bin/swift-proxy-server-uwsgi 2.36.0-0ubuntu1/debian/bin/swift-proxy-server-uwsgi
--- 2.36.0-1/debian/bin/swift-proxy-server-uwsgi	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/bin/swift-proxy-server-uwsgi	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-#!/usr/bin/python3
-# To be used with uwsgi / libapache2-mod-wsgi-py3
-
-from swift.common.wsgi import init_request_processor
-
-application, conf, logger, log_name = \
-    init_request_processor('/etc/swift/proxy-server.conf','proxy-server')
diff -pruN 2.36.0-1/debian/changelog 2.36.0-0ubuntu1/debian/changelog
--- 2.36.0-1/debian/changelog	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/changelog	2025-09-22 18:00:06.000000000 +0000
@@ -1,1301 +1,1318 @@
-swift (2.36.0-1) experimental; urgency=medium
+swift (2.36.0-0ubuntu1) questing; urgency=medium
 
-  * New upstream release.
+  * New upstream release for OpenStack Flamingo (LP: #2125012).
+  * d/p/checksum-handle-missing-pyeclib-file.patch: Drop upstreamed patch.
+  * d/p/restore-missing-files-in-manifest.patch: Drop upstreamed patch.
+  * d/watch: Add Flamingo key verification.
+  * d/u/signing-key.asc: Add Flamingo public key.
+  * d/watch: Update version detection.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 11 Sep 2025 14:36:18 +0200
+ -- Myles Penner <myles.penner@canonical.com>  Mon, 22 Sep 2025 11:00:06 -0700
 
-swift (2.35.1-2) unstable; urgency=medium
+swift (2.35.0+git2025070714.1428eb3b5-0ubuntu1) questing; urgency=medium
 
-  * Blacklist 2 unit tests that require isal lib to be installed:
-    - test_sig_v4_strm_unsgnd_pyld_trl_checksum_hdr_unsupported
-    - test_get_checksum_hasher
+  [ Guillaume Boutry ]
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    flamingo.
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 30 Aug 2025 23:55:44 +0200
+  [ Myles Penner ]
+  * New upstream release for OpenStack Flamingo. (LP: #2116155)
+  * d/p/skip-online-test.patch: Refresh.
+  * d/s/options: Ignore .launchpad.yaml when generating diffs.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/checksum-handle-missing-pyeclib-file.patch: Add patch.
+  * d/p/restore-missing-files-in-manifest.patch: Import upstream patch
+  * Flamingo feature freeze exception. (LP: #2121258)
 
-swift (2.35.1-1) unstable; urgency=medium
+ -- Myles Penner <myles.penner@canonical.com>  Fri, 18 Jul 2025 14:32:07 -0700
 
-  * New upstream point release.
+swift (2.35.0-0ubuntu1) plucky; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 28 Aug 2025 16:07:31 +0200
+  [ Guillaume Boutry ]
+  * d/watch: Track Epoxy series releases.
 
-swift (2.35.0-4) unstable; urgency=medium
+  [ Myles Penner ]
+  * New upstream release for OpenStack Epoxy.
+  * d/p/skip-test-local-py36.patch: Drop
+  * Refresh patches:
+    - d/p/skip-online-test.patch
+    - d/p/skip-py312-failures.patch
 
-  * Add test_PUT_account_update (Closes: #1108751).
+ -- Myles Penner <myles.penner@canonical.com>  Wed, 19 Mar 2025 08:13:35 -0700
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 10 Jul 2025 10:38:51 +0200
+swift (2.34.0+git2025011510.f95315b71-0ubuntu1) plucky; urgency=medium
 
-swift (2.35.0-3) unstable; urgency=medium
+  [ James Page ]
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    epoxy.
 
-  * Blacklist one more unit test (Closes: #1106445):
-    - TestUtilsLogs.test_LoggerFileObject_recursion.
+  [ Myles Penner ]
+  * New upstream release for OpenStack Epoxy.
+  * d/control: Remove outdated dependencies.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 26 May 2025 08:57:53 +0200
+  [ James Page ]
+  * d/control: Align (Build-)Depends with upstream.
 
-swift (2.35.0-2) unstable; urgency=medium
+ -- Myles Penner <myles.penner@canonical.com>  Tue, 21 Jan 2025 10:49:51 +0000
 
-  * Blacklist non-deterministic failing in autopkg unit test:
-    - TestWorkersStrategy.test_stale_pid_loading
+swift (2.34.0-0ubuntu1) oracular; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 03 Apr 2025 08:59:17 +0200
+  * d/gbp.conf: upstream-branch -> upstream-dalmatian.
+  * New upstream release for OpenStack Dalmatian.
 
-swift (2.35.0-1) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Wed, 25 Sep 2024 11:18:10 +0100
 
-  * New upstream release.
-  * Fixed (build-)depends for this release.
-  * Removed Stop-using-cgi.parse_header.patch applied upstream.
-  * Blacklist TestServersPerPortStrategy.test_stale_pid_loading.
+swift (2.33.0+git2024080716.9d14c7c8-0ubuntu2) oracular; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 28 Mar 2025 22:51:50 +0100
+  * d/p/skip-online-test.patch: Update for new tests that require access
+    to online services.
 
-swift (2.34.0-5) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Fri, 06 Sep 2024 15:10:26 +0100
 
-  * Switch to bootstarp 5 for -doc (Closes: #1088535).
+swift (2.33.0+git2024080716.9d14c7c8-0ubuntu1) oracular; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 21 Dec 2024 10:54:52 +0100
+  * New upstream snapshot for OpenStack Dalmatian:
+    - d/p/*: Refresh.
 
-swift (2.34.0-4) unstable; urgency=medium
+ -- Myles <myles.penner@canonical.com>  Thu, 15 Aug 2024 15:48:01 +0100
 
-  * Add Stop-using-cgi.parse_header.patch (Closes: #1084544).
+swift (2.33.0-0ubuntu1) noble; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 29 Oct 2024 10:34:12 +0100
+  * New upstream release for OpenStack Caracal.
 
-swift (2.34.0-3) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Fri, 22 Mar 2024 09:23:39 +0000
 
-  * Blacklist unit tests needing DNS (Closes: #1084767):
-    - TestProxyLogging.test_init_statsd_options_access_log_prefix
-    - TestProxyLogging.test_init_statsd_options_log_prefix
+swift (2.32.0+git2024030809.4135133a-0ubuntu1) noble; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 14 Oct 2024 09:41:58 +0200
+  * New upstream snapshot for OpenStack Caracal.
+  * d/p/*: Refresh.
 
-swift (2.34.0-2) unstable; urgency=medium
+ -- James Page <james.page@canonical.com>  Fri, 08 Mar 2024 09:33:39 +0000
 
-  * Blacklist test_embed_expirer_bytes_from_diskfile_metadata, failing when
-    backporting to Bookworm.
-  * Uploading to unstable.
+swift (2.32.0+git2024021508.3aba22fd-0ubuntu1) noble; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 20 Sep 2024 17:26:11 +0200
+  [ Corey Bryant ]
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    caracal.
 
-swift (2.34.0-1) experimental; urgency=medium
+  [ James Page ]
+  * New upstream snapshot for OpenStack Caracal.
+  * d/control: Drop BD on python3-boto (LP: #2052437).
+  * d/p/*: refresh.
+  * d/swift-proxy.install: Add swift-reload binary.
+  * d/p/skip-py312-failures.patch: Skip single test that fails under
+    Python 3.12 until resolved upstream.
+  * d/p/skip-py311-test-failures.patch,skip-test-db.patch: Drop, fixed
+    upstream.
+  * d/rules: Use pybuild to run pytest unit tests.
+  * d/source/options: Ignore .launchpad.yaml.
+  * d/rules: Ensure config samples are present in build directory for
+    test execution.
+  * d/swift-*.install: Drop unneeded usage of dh-exec.
 
-  * New upstream release.
-  * Rebase / refreshed / removed applied upstream patches.
+ -- James Page <james.page@ubuntu.com>  Thu, 15 Feb 2024 10:03:02 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 13 Sep 2024 12:07:20 +0200
+swift (2.32.0+git2023090714.8ce961ed-0ubuntu1) mantic; urgency=medium
 
-swift (2.33.0-7) unstable; urgency=medium
+  * New upstream snapshot for OpenStack Bobcat.
+  * d/p/*: Rebased.
 
-  * Move swift-{object,account,container}-generator to /usr (Closes: #1073674).
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 07 Sep 2023 14:49:35 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 22 Jul 2024 06:30:35 +0200
+swift (2.31.1+git2023071215.7cc8a017-0ubuntu2) mantic; urgency=medium
 
-swift (2.33.0-6) unstable; urgency=medium
+  * d/rules: Run unit tests with pytest.
 
-  * Add TestECObjController.test_GET_disconnect to autpkgtest blacklist, as per
-    suggestion from release team (timeout too tight) (Closes: #1074021).
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 13 Jul 2023 16:41:53 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 12 Jul 2024 02:46:42 +0200
+swift (2.31.1+git2023071215.7cc8a017-0ubuntu1) mantic; urgency=medium
 
-swift (2.33.0-5) unstable; urgency=medium
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    bobcat.
+  * New upstream snapshot for OpenStack Bobcat.
 
-  * Add kms_keymaster-allow-specifying-barbican_endpoint.patch.
-  * Blacklist non-deterministic tests:
-    - TestReceiver.test_UPDATES_timeout
-    - TestReceiver.test_UPDATES_no_problems_no_hard_disconnect
-    - TestMemcached.test_operations_timing_stats_with_incr_timeout
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 12 Jul 2023 15:17:50 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 13 Jun 2024 12:05:57 +0200
+swift (2.31.1-0ubuntu1) lunar; urgency=medium
 
-swift (2.33.0-4) unstable; urgency=medium
+  * New upstream release for OpenStack Antelope.
 
-  * Removed build-depends on python3-openstack.nose-plugin.
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 23 Mar 2023 19:45:56 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 22 Apr 2024 14:17:48 +0200
+swift (2.31.0+git2023030309.a2952962-0ubuntu1) lunar; urgency=medium
 
-swift (2.33.0-3) unstable; urgency=medium
+  * New upstream snapshot for OpenStack Antelope.
+  * d/p/skip-py311-test-failures.patch: Updated with new failing test.
 
-  * Restrict autopkgtest to amd64, arm64, mips64el, ppc64el, riscv64, s390x.
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 03 Mar 2023 09:53:52 -0500
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 16 Apr 2024 17:12:31 +0200
+swift (2.31.0+git2023020814.488f8c83-0ubuntu1) lunar; urgency=medium
 
-swift (2.33.0-2) unstable; urgency=medium
+  * New upstream snapshot for OpenStack Antelope.
 
-  [ Ondřej Nový ]
-  * Remove myself from Uploaders.
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 08 Feb 2023 14:31:43 -0500
 
-  [ Thomas Goirand ]
-  * Uploading to unstable.
-  * Blacklist broken test: TestGetOrHeadHandler.test_disconnected_logging.
-  * Blacklist TestObjectExpirer.test_failed_delete_continues_on that executes
-    in less than 1s on my laptop, and the test checks if 1s...
-  * Blacklist TestObjectReplicator.test_update that isn't deterministic.
+swift (2.30.0+git2023011011.9c5cbaa5-0ubuntu1) lunar; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sun, 07 Apr 2024 23:12:25 +0200
+  * New upstream snapshot for OpenStack Antelope.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/skip-py311-test-failures.patch: Skip failing Python 3.11 tests
+    until fixed upstream.
 
-swift (2.33.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 10 Jan 2023 11:12:39 -0500
 
-  * New upstream release.
-  * Manage patches (refreshed, rebased, removed applied upstream...).
-  * Blacklist TestECObjController.test_GET_read_timeout, failing in py3.12.
-  * Add usr/bin/swift-reload to the swift package.
+swift (2.30.0+git2022100608.49d35e0c3-0ubuntu1) kinetic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sun, 17 Mar 2024 13:11:28 +0100
+  * New upstream snapshot for OpenStack Zed.
 
-swift (2.32.0-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 06 Oct 2022 08:46:18 -0400
 
-  * Add drive-full-checker.patch.
-  * Blacklist a number of unit tests that are failing in my backport Jenkins
-    since the upgrade to bookworm:
-    - test_get_conns_hostname6
-    - test_get_conns_v6_default
-    - test_run_forever_recon_aggregation
-    - test_GET_with_duplicate_but_sufficient_frag_indexes
-  * Removed python3-boto from build-depends.
-  * Blacklist failing patches and fix others (Closes: #1058223):
-    - Blacklist test_perfect_four_zone_four_replica_bad_placement
-    - Blacklist common.test_wsgi.TestWSGI.*
-    - Blacklist TestObjectExpirer.test_delete_actual_object
-    - Add fix-unit-testing-under-python-3.12.patch.
-    - Add Be_more_explicit_about_closes_in_string_along.patch.
-  * Add 2 more tests in the autopkgtest blacklist.
-  * Also blacklist TestProxyServer.test_statsd_prefix (not deterministic).
+swift (2.30.0+git2022091213.ce184edd7-0ubuntu1) kinetic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 05 Mar 2024 11:06:13 +0100
+  * New upstream snapshot for OpenStack Zed.
 
-swift (2.32.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 12 Sep 2022 14:00:17 -0400
 
-  * Uploading to unstable.
+swift (2.29.1+git2022071815.45e13ff4c-0ubuntu1) kinetic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 10 Oct 2023 08:56:02 +0200
+  * New upstream snapshot for OpenStack Zed.
+  * d/control: Ensure openstack-pkg-tools has CIS hardening for log files
+    and pkgos_adduser.
+  * d/python3-swift.postinst: CIS hardening update to switch adduser to use
+    /usr/sbin/nologin when creating system account that does not run a shell.
 
-swift (2.32.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 18 Jul 2022 15:07:31 -0400
 
-  * New upstream release.
-  * Removed python3-netifaces from (b-)depends.
-  * Refresh patches, removed 2 patches applied upstream.
-  * Add debug_logger_ensure_NOTICE_level_is_registered.patch.
-  * Add Clean_up_watchdog_threads.patch.
+swift (2.29.1+git2022060710.93c432342-0ubuntu1) kinetic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 05 Sep 2023 09:58:03 +0200
+  * New upstream snapshot for OpenStack Zed.
+  * d/control: Update standards version to 4.6.1.
+  * d/p/skip-online-test.patch: Rebased.
+  * d/p/skip-test-db.patch: Skip section of test until reported bug
+    is fixed.
 
-swift (2.31.1-4) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 07 Jun 2022 10:17:06 -0400
 
-  * Add Change_getting_major_minor_of_blkdev.patch.
-  * Switch to stestr instead of nose (Closes: #1018645).
+swift (2.29.1-0ubuntu1) jammy; urgency=medium
 
- -- Philippe SÉRAPHIN <philippe.seraphin@infomaniak.com>  Thu, 29 Jun 2023 11:45:20 +0200
+  * New upstream release for OpenStack Yoga.
 
-swift (2.31.1-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 31 Mar 2022 08:19:54 -0400
 
-  * Add swift-recon-only-query-object-servers-once.patch.
-  * Uploading to unstable.
+swift (2.29.0+git2022030314.3ff3076ce-0ubuntu1) jammy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 19 Jun 2023 14:43:15 +0200
+  * New upstream snapshot for OpenStack Yoga.
+  * d/p/skip-online-test.patch: Rebased.
 
-swift (2.31.1-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 03 Mar 2022 14:45:42 -0500
 
-  * New upstream release.
-  * Refreshed Fix_DB_tests_on_py311.patch.
-  * Blacklist TestUtils.test_load_pkg_resource_importlib().
+swift (2.28.0+git2022011309.32da73f5c-0ubuntu1) jammy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 10 Mar 2023 15:12:39 +0100
+  * New upstream snapshot for OpenStack Yoga.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/control: Bump debhelper compat to 13.
 
-swift (2.31.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 13 Jan 2022 09:46:28 -0500
 
-  * New upstream release.
-  * Removed (build-)depends versions satisfied in Bookworm.
-  * Removed lsb-base depends.
-  * Rebased Fix_DB_tests_on_py311.patch.
-  * Removed CVE-2022-47950-stable-zed.patch applied upstream.
+swift (2.28.0+git2021121320.876377435-0ubuntu1) jammy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 07 Mar 2023 10:03:50 +0100
+  * New upstream snapshot for OpenStack Yoga.
 
-swift (2.30.0-4) unstable; urgency=high
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 13 Dec 2021 20:05:27 -0500
 
-  * CVE-2022-47950: Arbitrary file access through custom S3 XML entities.
-    Added upstream patch: CVE-2022-47950-stable-zed.patch (Closes: #1029200).
-  * debian/watch: use git mode.
+swift (2.28.0+git2021120815.1859f2e16-0ubuntu1) jammy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 19 Jan 2023 15:43:31 +0100
+  * New upstream snapshot for OpenStack Yoga.
 
-swift (2.30.0-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 08 Dec 2021 15:54:30 -0500
 
-  * Add Fix_DB_tests_on_py311.patch (Closes: #1024784).
-  * Add python3-cffi as (b-)depends.
+swift (2.28.0+git2021090911.5d52afbe4-0ubuntu1) impish; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 30 Nov 2022 22:25:27 +0100
+  * New upstream snapshot for OpenStack Xena.
 
-swift (2.30.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 09 Sep 2021 11:48:51 -0400
 
-  * Add 2 unit tests in the blacklist of autopkgtest, failing in 32 bits arch.
+swift (2.27.0+git2021072212.4fc567cb2-0ubuntu1) impish; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 19 Oct 2022 14:46:24 +0200
+  * New upstream snapshot for OpenStack Xena.
 
-swift (2.30.0-1) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 22 Jul 2021 12:35:32 -0400
 
-  * New upstream release.
-  * Refreshed:
-    - Add_tempurl_path_prefix_configuration_option.patch
-    - patches/syslog_log_name.patch
-  * Add autopkgtest.
+swift (2.27.0+git2021062816.8e1209d2b-0ubuntu1) impish; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 17 Oct 2022 10:32:15 +0200
+  * New upstream snapshot for OpenStack Xena.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/skip-online-test.patch: Rebased.
+  * d/p/000*-fix-py39-ut-failures.patch: Dropped. Fixed upstream.
 
-swift (2.29.1-1) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 28 Jun 2021 16:22:50 -0400
 
-  * Add route-run = chunked: to uwsgi config.
-  * New upstream release.
-  * Switch back proxy + account + container from uwsgi to eventlet.
-  * Rebased/refreshed syslog_log_name.patch.
-  * Refreshed Add_tempurl_path_prefix_configuration_option.patch.
-  * Removed now useless import-Iterable-from-collections.abc.patch.
-  * Removed s3api_fix_the_copy_of_non-ASCII_objects.patch applied upstream.
-  * Add to test blacklist:
-    - test.unit.common.test_db.TestDatabaseBroker.test_get
-    - test.unit.container.test_sync.TestContainerSync.test_init
+swift (2.27.0-0ubuntu2) hirsute; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 23 Mar 2022 15:40:14 +0100
+  * d/p/000*-fix-py39-ut-failures.patch: Cherry-picked from upstream
+    to fix py39 unit test failures.
+  * d/p/skip-failing-py39-tests.patch: Dropped. No longer needed.
 
-swift (2.28.0-6) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 26 Mar 2021 08:02:43 -0400
 
-  * Add plugins=transformation_chunked in the default swift-proxy uwsgi config.
-  * Remove add-header = Connection: close.
+swift (2.27.0-0ubuntu1) hirsute; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 20 Jan 2022 14:35:09 +0100
+  * New upstream release for OpenStack Wallaby.
+  * d/p/skip-failing-py39-tests.patch: Skip tests that fail for py39 on
+    upstream and distro.
 
-swift (2.28.0-5) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 25 Mar 2021 12:24:58 -0400
 
-  * Add s3api_fix_the_copy_of_non-ASCII_objects.patch.
+swift (2.26.0+git2021012914.833d7f1d1-0ubuntu1) hirsute; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 04 Jan 2022 11:09:37 +0100
+  * New upstream snapshot for OpenStack Wallaby.
+  * d/rules: Add PATH with build binary path to test execution, allowing
+    unit tests to access swift binaries.
 
-swift (2.28.0-4) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 29 Jan 2021 14:22:33 -0500
 
-  * Set threads = 1 for swift-proxy's uwsgi config.
+swift (2.26.0+git2020121115.36107b4a6-0ubuntu1) hirsute; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 03 Jan 2022 14:11:04 +0100
+  * New upstream snapshot for OpenStack Wallaby.
+  * d/p/0001-Get-unit-tests-passing-on-py39.patch: Remove as the fix
+    landed upstream.
+  * d/p/fix-deployment-guide-header.patch: Remove as patch is no longer needed.
 
-swift (2.28.0-3) unstable; urgency=medium
+ -- Chris MacNaughton <chris.macnaughton@ubuntu.com>  Fri, 11 Dec 2020 15:35:56 +0000
 
-  * Switch account+container-server on a single uwsgi tread, to avoid locks
-    with "greenlet.error: cannot switch to a different thread" in the logs.
+swift (2.26.0-0ubuntu2) hirsute; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 02 Dec 2021 15:34:45 +0100
+  * d/patches/0001-Get-unit-tests-passing-on-py39.patch: Backport Python 3.9
+    fix from upstream.
 
-swift (2.28.0-2) unstable; urgency=medium
+ -- Michael Hudson-Doyle <michael.hudson@ubuntu.com>  Mon, 30 Nov 2020 13:23:36 +1300
 
-  * Add Add_tempurl_path_prefix_configuration_option.patch.
-  * Exclude test.unit.common.middleware.test_cname_lookup.TestCNAMELookup.
-  * Add import-Iterable-from-collections.abc.patch.
+swift (2.26.0-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 18 Nov 2021 15:10:02 +0100
+  [ Chris MacNaughton ]
+  * d/control: Update VCS paths for move to lp:~ubuntu-openstack-dev.
 
-swift (2.28.0-1) unstable; urgency=medium
+  [ Corey Bryant ]
+  * New upstream release for OpenStack Victoria.
 
-  * Fixup swift-proxy-server-uwsgi.ini for tempest validation.
-  * New upstream release.
-  * Refreshed: syslog_log_name.patch.
-  * Removed patches applied upstream:
-    - Only_test_with_and-delimited_query_strings.patch
-    - Don_t_require_swift_be_installed_to_have_passing_manager_tests.patch
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 09 Oct 2020 13:28:49 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 07 Oct 2021 14:42:29 +0200
+swift (2.25.1~git2020091517.f8a9a6e11-0ubuntu1) groovy; urgency=medium
 
-swift (2.27.0-2) unstable; urgency=medium
+  [ Chris MacNaughton ]
+  * d/control: Remove Breaks/Replaces that are older than Focal (LP: #1878419).
 
-  * Fixup a better and more consistant /etc/rsyslog.d/swift.conf.
-  * Upload to unstable.
+  [ Corey Bryant ]
+  * New upstream snapshot for OpenStack Victoria.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 03 Jun 2021 13:58:24 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 15 Sep 2020 17:14:38 -0400
 
-swift (2.27.0-1) experimental; urgency=medium
+swift (2.25.1~git2020073017.d6399b32e-0ubuntu1) groovy; urgency=medium
 
-  * New upstream release.
-  * Removed Get_unit_tests_passing_on_py39.patch applied upstream.
-  * Drop fix-eventlet-monkey-patching-with-py3.7.patch that shouldn't be needed
-    anymore.
-  * Removed Fix__exit__calls.patch applied upstream.
-  * Add upstream patches:
-    - Only_test_with_and-delimited_query_strings.patch
-    - Don_t_require_swift_be_installed_to_have_passing_manager_tests.patch
+  * New upstream snapshot for OpenStack Victoria.
+  * d/control, d/copyright: Update upstream URL.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 18 Mar 2021 21:06:38 +0100
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 30 Jul 2020 17:28:57 -0400
 
-swift (2.26.0-8) unstable; urgency=medium
+swift (2.25.1~git2020070613.2e001431f-0ubuntu1) groovy; urgency=medium
 
-  * Kill the autopkgtests. The team has other means of testing swift anyways.
-    (Closes: #982788).
+  * New upstream snapshot for OpenStack Victoria.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/drop-ipaddress-requirement.patch: Dropped. No longer needed as package
+    is Python3-only.
+  * d/control, d/compat: Switch to debhelper compat 12.
+  * d/control: Update Standards-Version to 4.5.0.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 23 Feb 2021 14:11:16 +0100
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 06 Jul 2020 13:04:33 -0400
 
-swift (2.26.0-7) unstable; urgency=medium
+swift (2.25.0-0ubuntu3) groovy; urgency=medium
 
-  * Fix logging and logrotate to do like all the other OpenStack daemons.
+  * d/t/swift-daemons: Update to give systemd units time to restart.
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 12 Feb 2021 15:35:07 +0100
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Thu, 25 Jun 2020 11:30:03 +0000
 
-swift (2.26.0-6) unstable; urgency=medium
+swift (2.25.0-0ubuntu2) groovy; urgency=medium
 
-  * Switch back to using uwsgi for container and account servers.
+  [ Chris MacNaughton ]
+  * Update to use Systemd unit files (LP: #1827340, LP: #1800676)
+    * d/*.init.in: Import init script (systemd) generation from Debian.
+    * d/*.upstart: Removed.
+    * d/*.init: Removed
+    * d/*.generator: Import from Debian.
+    * d/*.install: Added reference to generator files
+    * d/gen-init: Import from Debian. Remove WorkingDirectory.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 18 Jan 2021 18:02:24 +0100
+  [ James Page ]
+  * d/control: Add sphinxdoc:Depends to swift-doc.
+  * d/*: wrap-and-sort -bast.
 
-swift (2.26.0-5) unstable; urgency=medium
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Wed, 24 Jun 2020 09:59:02 +0100
 
-  * Remove rem-header = Content-Length in the swift-proxy uwsgi config, as
-    this makes Glance's "openstack image save" fail.
-  * Add Fix__exit__calls.patch.
+swift (2.25.0-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 13 Jan 2021 18:09:52 +0100
+  * New upstream release for OpenStack Ussuri (LP: #1877642).
 
-swift (2.26.0-4) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 14 May 2020 14:47:36 -0400
 
-  * Add fix-eventlet-monkey-patching-with-py3.7.patch.
-  * Set threads=12 and listen=100 after running a successful bench with these
-    values.
-  * Depends on openstack-pkg-tools >= 116~, to make sure swift starts with a
-    decent number of workers if the directive can't be found.
+swift (2.24.1~git2020041316.a495f1e32-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 30 Oct 2020 17:15:09 +0100
+  * d/watch: Update tarball URL to opendev.org.
+  * New upstream snapshot for OpenStack Ussuri.
 
-swift (2.26.0-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 13 Apr 2020 16:25:31 -0400
 
-  * Switch the swift-proxy to uwsgi. There's no choice because eventlet monkey
-    patching creates deadlocks in thread logging, which leads to frozen
-    processes in the proxy.
-  * Use openstack-pkg-tools >= 114~ facility to configure uwsgi ip and port.
-  * Add set-default-workers-value.patch.
+swift (2.24.1~git2020032711.712bf3c9f-0ubuntu2) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 30 Oct 2020 11:22:50 +0100
+  * d/control, d/rules: Move installation of /etc/swift/ files to
+    python3-swift package.
 
-swift (2.26.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 30 Mar 2020 08:26:09 -0400
 
-  * Uploading to unstable.
-  * Fixed debian/watch.
-  * Add a debian/salsa-ci.yml.
-  * Refresh syslog_log_name.patch.
-  * Add Get_unit_tests_passing_on_py39.patch.
+swift (2.24.1~git2020032711.712bf3c9f-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 17 Oct 2020 21:00:57 +0200
+  * New upstream snapshot for OpenStack Ussuri.
+  * d/glance-common.postinst: Set default ownership and permissions for
+    /etc/<pkg> (LP: #1859422).
 
-swift (2.26.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 27 Mar 2020 11:39:24 -0400
 
-  * New upstream release.
-  * Removed python3-dnspython from (build-)depends.
-  * Removed py3_Work_with_proper_native_string_paths_in_crypto_meta.patch
-    applied upstream.
+swift (2.24.0-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 21 Sep 2020 14:39:47 +0200
+  * New upstream release for OpenStack Ussuri.
 
-swift (2.25.0-4) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 13 Feb 2020 14:01:08 -0500
 
-  * Add missing directive in systemd files (services start before networking,
-    and then may just fail because they can't bind):
-    - After=network-online.target local-fs.target remote-fs.target 
-    - Wants=network-online.target 
+swift (2.24.0~git2019121715.e890b0f0f-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 15 Sep 2020 17:12:38 +0200
+  * New upstream snapshot for OpenStack Ussuri.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/rules: Switch pybuild.
+  * d/rules: Update PBR_VERSION to handle ~git versioning.
+  * d/p/skip-test-local-py36.patch: Update to skip for all Py3 versions.
 
-swift (2.25.0-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 17 Dec 2019 15:16:47 -0500
 
-  * Add py3_Work_with_proper_native_string_paths_in_crypto_meta.patch.
+swift (2.23.1-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 31 Aug 2020 09:47:24 +0200
+  * New stable point release for OpenStack Train (LP: #1853311).
 
-swift (2.25.0-2) unstable; urgency=medium
+ -- Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com>  Mon, 02 Dec 2019 15:19:23 +0100
 
-  * Uploading to unstable.
+swift (2.23.0-0ubuntu1) eoan; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Fri, 12 Jun 2020 14:22:55 +0200
+  * New upstream release for OpenStack Train.
 
-swift (2.25.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 16 Oct 2019 11:26:04 -0400
 
-  * New upstream release.
-  * Rebase patches.
+swift (2.22.0-0ubuntu2) eoan; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 21 Apr 2020 10:38:46 +0200
+  * d/control: Add Breaks/Replaces on python-swift to ensure that
+    upgrades from py2->py3 are handled correctly (LP: #1847576).
 
-swift (2.24.0-1) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Thu, 10 Oct 2019 12:04:12 +0100
 
-  * New upstream release.
-  * d/patches: Rebased.
-  * Bump Standards-Version to 4.5.0.
-  * Rules-Requires-Root: no.
-  * Disable sphinxcontrib.rsvgconverter extension.
-  * d/patches/py38_cgi_lost_some_names.patch:
-    Drop, applied upstream.
-  * d/rules: Remove not needed override_dh_systemd_enable target.
+swift (2.22.0-0ubuntu1) eoan; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Fri, 13 Mar 2020 16:46:42 +0100
+  * New upstream release for OpenStack Train.
 
-swift (2.23.1-2) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Thu, 26 Sep 2019 15:15:04 +0100
 
-  * Add upstream patch: py38_cgi_lost_some_names.patch. (Closes: #951987).
+swift (2.22.0~b2~git2019073018.d33e569be-0ubuntu1) eoan; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 25 Feb 2020 11:55:02 +0100
+  * New upstream snapshot for OpenStack Train.
+  * d/control: Align (Build-)Depends with upstream.
 
-swift (2.23.1-1) unstable; urgency=medium
+ -- Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com>  Tue, 30 Jul 2019 18:52:11 +0200
 
-  * New upstream release.
-  * Remove one more not needed
-    package-supports-alternative-init-but-no-init.d-script
-    lintian override.
-  * Drop Python 3 patches, applied upstream.
+swift (2.22.0~b1~git2019071110.e62f07d98-0ubuntu3) eoan; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Wed, 23 Oct 2019 14:26:27 +0200
+  * d/rules: Use pkgos-dh_auto_install to install Python 3 modules.
 
-swift (2.23.0-6) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 18 Jul 2019 11:48:40 -0400
 
-  * Uploading to unstable.
-  * Bump Standards-Version to 4.4.1.
-  * Remove not needed package-supports-alternative-init-but-no-init.d-script
-    lintian overrides.
+swift (2.22.0~b1~git2019071110.e62f07d98-0ubuntu2) eoan; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 21 Oct 2019 12:33:00 +0200
+  * d/control: Restore python-setuptools BDI for UCA backport.
+  * d/p/skip-test-local-py36.patch, d/control: Skip locale test for Python
+    3.6 as locale is not available by default in build environment.
 
-swift (2.23.0-5) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 11 Jul 2019 14:05:49 -0400
 
-  * Add a number of Py3 fixes:
-    - py3_Fix_swift-drive-audit.patch
-    - py3_Fix_swift-recon.patch
-    - py3_fix_swift-dispersion-populate.patch
-    - py3_fix_swift-account-audit.patch
+swift (2.22.0~b1~git2019071110.e62f07d98-0ubuntu1) eoan; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 15 Oct 2019 16:53:21 +0200
+  * New upstream snapshot for OpenStack Train.
+  * d/control, d/rules, d/python(3)-swift*: Add support for Python 3
+    and remove support for Python 2.
+  * d/p/drop-ipaddress-requirement.patch: Drop ipaddress from requirements.txt.
 
-swift (2.23.0-4) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 11 Jul 2019 10:14:31 -0400
 
-  * Replace my old patch Fix_on-disk_encryption_under_Python_3.patch by the new
-    upstream one: Fix_kms_keymaster_under_Python_3.patch.
+swift (2.22.0~b1~git2019061305.aa2f1db1b-0ubuntu1) eoan; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 15 Oct 2019 03:16:37 +0200
+  * New upstream snapshot for OpenStack Train.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/swift-container.install: Wildcard install of swift-container-*
+    binaries.
 
-swift (2.23.0-3) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Thu, 13 Jun 2019 15:13:13 +0100
 
-  * Add Fix_on-disk_encryption_under_Python_3.patch.
+swift (2.21.0-0ubuntu1) disco; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 11 Oct 2019 14:16:53 +0200
+  * New upstream release for OpenStack Stein.
 
-swift (2.23.0-2) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Mon, 08 Apr 2019 09:13:45 +0100
 
-  * Do not use --processes=-1 when running tests, as this seems to fail on
-    buildds.
+swift (2.20.0-0ubuntu2) disco; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 07 Oct 2019 16:31:24 +0200
+  * d/control: Add python-keystonemiddleware to Depends (LP: #1815093).
 
-swift (2.23.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 07 Feb 2019 15:05:35 -0500
 
-  * New upstream release.
-  * Fixed version of eventlet in (b-)d for this release.
-  * Add  python3-barbicanclient and python3-castellan as recommends in
-    swift-proxy, as they are needed for on-disk encryption.
-  * Removed patches applied upstream:
-    - sphinx_reproducible_build.patch
-    - fix-xattr_supported_check.patch
-  * Run tests with --processes=-1 to run them in parallel.
+swift (2.20.0-0ubuntu1) disco; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 04 Oct 2019 15:59:04 +0200
+  * New upstream release for OpenStack Stein.
+  * d/control: Align (Build-)Depends with upstream.
 
-swift (2.22.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 31 Jan 2019 12:43:00 -0500
 
-  * Remove swauth from Recommends.
+swift (2.19.0-0ubuntu1) cosmic; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 13 Aug 2019 10:37:49 +0200
+  * New upstream release.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/swift.install: Install binary for new CLI client swift-ring-composer.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 30 Aug 2018 10:33:03 -0400
 
-swift (2.22.0-1) unstable; urgency=medium
+swift (2.18.0-0ubuntu1) cosmic; urgency=medium
 
   * New upstream release.
-  * Bump Standards-Version to 4.4.0.
-  * Remove prerm/preinst scripts for upgrading from version 2.6.0-2.
-  * Add lintian overrides for
-    package-supports-alternative-init-but-no-init.d-script
-  * python3-swift.lintian-overrides: Fix wrong binary package name
-  * Use pybuild to build package.
-  * Clean using d/clean file instead of override_dh_auto_clean target.
-  * Bump debhelper compat level to 12.
-  * Cleanup systemd and init scripts generator.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/swift-container.install, d/swift.install,
+    swift-container.swift-container-sharder.init: Install
+    usr/bin/swift-container-sharder and usr/bin/swift-manage-shard-ranges and
+    add init file for swift-container-sharder.
+  * d/control: Update Standards-Version to 4.1.4.
+  * d/control, d/tests/*: Drop obsolete autopkgtest header and enable
+    autopkgtest-pkg-python testsuite.
+  * d/control, d/watch: Use https URLs.
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 05 Aug 2019 19:12:51 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 13 Jun 2018 15:14:00 -0400
 
-swift (2.21.10+2019.07.13+git.4643412bd1-3) unstable; urgency=medium
+swift (2.17.0-0ubuntu1) bionic; urgency=medium
 
-  [ Ondřej Nový ]
-  * Running wrap-and-sort -bast.
-  * Use debhelper-compat instead of debian/compat.
+  [ James Page ]
+  * d/p/*: Rebase.
 
-  [ Thomas Goirand ]
-  * Fixed python3-os-api-ref-common -> python-os-api-ref-common depends for
-    swift-doc, which was a mistake when converting to Python 3.
+  [ Corey Bryant ]
+  * New upstream release candidate for OpenStack Queens.
+  * d/*: wrap-and-sort -bast.
+  * d/control: Update Standards-Version to 4.1.2.
+  * d/control: Bump debhelper compat to 10.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 23 Jul 2019 18:41:54 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 14 Feb 2018 09:24:36 -0500
 
-swift (2.21.10+2019.07.13+git.4643412bd1-2) unstable; urgency=medium
+swift (2.16.0-0ubuntu2) bionic; urgency=medium
 
-  * Uploading to unstable.
+  * d/rules, d/swift-doc.docs: Adjust sphinx-build command and drop
+    swift-doc.docs as the sphinx-build command already installs the files in
+    the temp directory.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 17 Jul 2019 19:51:53 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 22 Nov 2017 14:07:55 -0500
 
-swift (2.21.10+2019.07.13+git.4643412bd1-1) experimental; urgency=medium
+swift (2.16.0-0ubuntu1) bionic; urgency=medium
 
   * New upstream release.
-  * Switch swift to Python 3.
-  * Rebased patches.
-  * Added usr/bin/swift-container-deleter to the swift-container package.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/*: Rebase, drop patches accepted upstrea or no longer needed.
+  * d/compat: Bump to 9, inline with BD.
+  * d/swift.install: Drop swift-temp-url, no long shipped.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 15 Jul 2019 15:09:23 +0200
+ -- James Page <james.page@ubuntu.com>  Fri, 17 Nov 2017 10:40:50 +0000
 
-swift (2.21.0-1) experimental; urgency=medium
+swift (2.15.1-0ubuntu3) artful; urgency=medium
 
-  [ Michal Arbet ]
-  * d/control:
-      - Bump openstack-pkg-tools to version 99
-      - Add me to uploaders field
-  * d/copyright: Add me to copyright file
-  * New upstream version
+  * d/p/update-test-drop-privs.patch: Drop group comparison from
+    drop_privileges test as it does not appear to be valid (LP: #1724342).
 
-  [ Ondřej Nový ]
-  * d/p/fix-decryption-of-object-if-metadata-is-missing.patch:
-    Remove, applied upstream
-  * Rebased patches
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 17 Oct 2017 15:01:59 -0400
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 13 May 2019 12:06:24 +0200
+swift (2.15.1-0ubuntu2) artful; urgency=medium
 
-swift (2.19.1-1) unstable; urgency=medium
+  * d/p/fix-deployment-guide-header.patch: Extend deployment guide headers
+    to fix sphinx error for xenial-pike backport.
 
-  * New upstream bugfix release
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 25 Aug 2017 17:57:20 -0400
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 26 Feb 2019 11:53:35 +0100
+swift (2.15.1-0ubuntu1) artful; urgency=medium
 
-swift (2.19.0-6) unstable; urgency=medium
+  * New upstream point release for OpenStack Pike.
+  * d/p/*: Rebased.
 
-  * Object decryption fix patch:
-    - Add a warning in the logs if path is different in
-      put_crypto_meta['key_id']['path'] and put_keys['id']['path']).
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 24 Aug 2017 12:29:58 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 01 Feb 2019 13:38:08 +0100
+swift (2.15.0-0ubuntu1) artful; urgency=medium
 
-swift (2.19.0-5) unstable; urgency=medium
+  * d/control: Drop oslosphinx and update min version of openstackdocstheme.
+  * New upstream release for OpenStack Pike.
+  * d/p/drop-openstackdoctheme.patch: Temporarily drop openstackdocstheme
+    sphinx extension until sphinx>=1.6.2 is available.
+  * d/p/skip-online-test.patch: Skip test that is failing without network
+    access.
+  * d/swift-object.install: Install swift-object-relinker binary.
 
-  * Fix decryption of objects that sometimes is wrong.
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 01 Aug 2017 09:20:37 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 24 Jan 2019 20:48:22 +0100
+swift (2.13.1-0ubuntu1) artful; urgency=medium
 
-swift (2.19.0-3) unstable; urgency=medium
+  [ Chuck Short ]
+  * d/patches/use-pbr2.patch: Use pbr2 by default.
+  * d/patches/fix-doc-no-network.patch: Dropped not longer required.
 
-  * Add Breaks of older systemd without CacheDirectory support
-  * Rename d/tests/control.autodep8 to d/tests/control.
-  * d/copyright: Bump my copyright year.
-  * Bump Standards-Version to 4.3.0 (no changes)
+  [ James Page ]
+  * New upstream point release.
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 22 Jan 2019 17:41:50 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 16 Jun 2017 11:45:54 +0100
 
-swift (2.19.0-2) unstable; urgency=medium
+swift (2.13.0-0ubuntu1) zesty; urgency=medium
 
-  * Uploading to unstable
-  * Bump Standards-Version to 4.2.1
+  * New upstream release for OpenStack Ocata.
+  * d/control: Align (build-)depends with upstream.
+  * d/README.Source: Removed it still mentioned bzr to package swift.
 
- -- Ondřej Nový <onovy@debian.org>  Wed, 05 Sep 2018 12:24:08 +0200
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 16 Feb 2017 05:46:37 -0500
 
-swift (2.19.0-1) experimental; urgency=medium
+swift (2.12.0-0ubuntu1) zesty; urgency=medium
 
-  * New upstream release
-  * d/p/syslog_log_name.patch: Rebased
-  * Add python-ipaddress to B-D and D
-  * Add swift-ring-composer CLI
+  * New upstream version.
+  * d/p/avoid-infinite-loop-while-placing-parts.patch: Dropped. Included in
+    new upstream version.
+  * New upstream release for OpenStack Ocata.
 
- -- Ondřej Nový <onovy@debian.org>  Wed, 22 Aug 2018 14:30:40 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 19 Dec 2016 09:18:26 -0500
 
-swift (2.18.0-1) experimental; urgency=medium
+swift (2.11.0-0ubuntu2) zesty; urgency=medium
 
-  * New upstream release
-  * d/p/Fix_tests_using_O_TMPFILE.patch: Drop, applied upstream
-  * d/p/syslog_log_name.patch: Rebased
-  * Fix B-D for new upstream release
-  * Add swift-object-relinker manpage
-  * Add swift-container-sharder daemon and swift-manage-shard-ranges CLI
-  * Enable autopkgtest-pkg-python testsuite
+  * d/p/avoid-infinite-loop-while-placing-parts.patch: Cherry-picked from
+    upstream master branch to avoid infinite loop while placing parts
+    (LP: #1642538).
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 20 Aug 2018 15:32:05 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 09 Dec 2016 09:05:26 -0500
 
-swift (2.17.0-5) unstable; urgency=medium
+swift (2.11.0-0ubuntu1) zesty; urgency=medium
 
-  * d/tests: Use AUTOPKGTEST_TMP instead of ADTTMP
-  * d/control: Use team+openstack@tracker.debian.org as maintainer
-  * Don't use has_key, which is deprecated (Closes: #906413)
-  * Really build docs with Python 3
-  * Use LC_ALL=C.UTF-8 when building docs
-  * Use SOURCE_DATE_EPOCH in docs to make build reproducible (again)
-  * Bump standards version to 4.2.0 (no changes)
-  * Add upstream metadata
+  [ Corey Bryant ]
+  * d/control: Align python-pyeclib with upstream.
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 20 Aug 2018 11:49:41 +0200
+  [ David Della Vecchia ]
+  * New upstream release for OpenStack Ocata.
+  * d/control: Align (build-)depends with upstream.
 
-swift (2.17.0-4) unstable; urgency=medium
+ -- David Della Vecchia <ddv@canonical.com>  Mon, 21 Nov 2016 09:18:15 -0500
 
-  * Remove python-keystonemiddleware as runtime depends
-  * Add python-keystonemiddleware | swauth as recommends for swift-proxy
-  * d/p/Fix_tests_using_O_TMPFILE.patch: Refresh from current upstream review
+swift (2.10.0-0ubuntu1) yakkety; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 13 Mar 2018 13:07:06 +0100
+  * New upstream release for OpenStack Newton.
+  * d/control: Align (build-)depends with upstream.
 
-swift (2.17.0-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 28 Sep 2016 14:06:46 -0400
 
-  * Add python-keystonemiddleware as runtime depends.
-  * Removed versions when satisfied in Stretch.
-  * Removed breaks/replaces when transition is already done in Stretch.
-  * Refreshed patches.
-  * Add Fix_tests_using_O_TMPFILE.patch.
+swift (2.9.0-0ubuntu1) yakkety; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 12 Mar 2018 08:58:19 +0000
+  * New upstream release for OpenStack Newton.
+  * d/control: Align (build-)depends with upstream.
 
-swift (2.17.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 15 Jul 2016 08:32:18 -0400
 
-  * Uploading to unstable
-  * d/control: Set Vcs-* to salsa.debian.org
-  * Running wrap-and-sort -bast
-  * d/copyright: Bump my copyright year
+swift (2.8.0-0ubuntu1) yakkety; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 27 Feb 2018 12:49:44 +0100
+  * New upstream version.
+  * d/p/drop-sphinx-git.patch: Dropped, no longer required.
+  * d/control: Bumped Standards-Version, no changes.
+  * d/swift-container.docs: Install container-sync-realms.conf sample
+    configuration file (LP: #1586483).
+  * d/swift-object.swift-object-reconstructor.{init|upstart},rules:
+    Add init and upstart configuration files for swift-object-reconstructor
+    (LP: #1522448).
 
-swift (2.17.0-1) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Fri, 10 Jun 2016 11:34:52 +0100
 
-  * New upstream release
-  * Sync with unstable
-  * Standards-Version is 4.1.3 now (no change)
+swift (2.7.0-0ubuntu2) xenial; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Fri, 09 Feb 2018 15:45:22 +0100
+  * d/tests/swift-daemons: Set replica count for each ring to 1, resolving
+    autopkgtest failure during rebalance operations.
 
-swift (2.16.0-1) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Mon, 11 Apr 2016 12:21:44 +0100
 
-  * New upstream release
-  * Bump required version of python-cryptography
-  * d/patches/Be_more_tolerant_of_exception_messages_from_sqlite.patch:
-    Remove, applied upstream
-  * Rebased all patches
-  * Remove bin/swift-temp-url
+swift (2.7.0-0ubuntu1) xenial; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Sat, 09 Dec 2017 22:29:12 +0100
+  * New upstream release for OpenStack Mitaka.
+  * d/p/drop-sphinx-git.patch: Rebased.
+  * d/p/fix-doc-no-network.patch: Rebased.
 
-swift (2.15.1-7) unstable; urgency=medium
+ -- David Della Vecchia <ddv@canonical.com>  Fri, 08 Apr 2016 09:02:57 -0400
 
-  * Fix wrong logrotate file
-  * Standards-Version is 4.1.2 now (no change)
+swift (2.6.0-0ubuntu1) xenial; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Sun, 10 Dec 2017 10:35:18 +0100
+  [ David Della Vecchia ]
+  * New upstream release for OpenStack Mitaka.
+  * d/control: Align (build-)depends with upstream.
+  * d/p/pyeclib-version.patch: Removed, fixed in upstream.
+  * d/p/sphinx.patch: Remove git command to prevent build errors.
 
-swift (2.15.1-6) unstable; urgency=medium
+  [ Corey Bryant ]
+  * d/p/sphinx.patch: Dropped in favor of adding git to BD's.
+  * d/control: Add git to build-depends for sphinx-build.
+  * d/control: Add python-cffi to BDs to fix failing tests.
+  * d/p/drop-sphinx-git.patch, d/control: Drop use of git from sphinx config.
 
-  * d/swift-container-generator: Remove container-reconciler
-  * Use dh_missing --fail-missing
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 10 Mar 2016 13:34:13 -0500
 
- -- Ondřej Nový <onovy@debian.org>  Sat, 09 Dec 2017 22:00:34 +0100
+swift (2.5.0-0ubuntu1) wily; urgency=medium
 
-swift (2.15.1-5) unstable; urgency=medium
+  * New upstream release for OpenStack Liberty.
+  * d/control,python-swift.postinst: Tidy lintian warning messages.
 
-  * Create /var/log/swift and /var/lib/swift only during postinst
-  * Change WorkingDirectory to ~
-  * Use pkgos_var_user_group instead of pkgos_adduser in postinst
-  * Create /var/cache/swift in SysV init script
+ -- James Page <james.page@ubuntu.com>  Thu, 08 Oct 2015 06:16:59 -0700
 
- -- Ondřej Nový <onovy@debian.org>  Sat, 02 Dec 2017 19:45:07 +0100
+swift (2.4.0-0ubuntu1) wily; urgency=medium
 
-swift (2.15.1-4) unstable; urgency=medium
+  * New upstream release:
+    - d/p/CVE-2015-1856.patch,
+      d/p/fix-tempauth-acl-checks.patch,
+      d/p/increase-httplib-maxheaders.patch,
+      d/p/x-auth-token-should-be-bytestring.patch:
+      Dropped, included upstream.
+  * Align (build-)depends with upstream, wrap-and-sort.
+  * d/p/pyeclib-version.patch: Specify minimum bound for pyeclib only.
+  * Install new swift-object-reconstructor and swift-ring-builder-analyzer
+    binaries.
 
-  * Use tmpfiles.d, CacheDirectory and RuntimeDirectory instead of
-    ExecStartPre
-  * Set owner of /var/log/swift to root
-  * d/tests/daemon: Require isolation-container
+ -- James Page <james.page@ubuntu.com>  Mon, 07 Sep 2015 13:00:03 +0100
 
- -- Ondřej Nový <onovy@debian.org>  Sat, 02 Dec 2017 15:04:11 +0100
+swift (2.2.2-0ubuntu1.3) vivid-security; urgency=medium
 
-swift (2.15.1-3) unstable; urgency=medium
+  [ Marc Deslauriers ]
+  * SECURITY UPDATE: object deletion via x-versions-location container
+    - debian/patches/CVE-2015-1856.patch: prevent unauthorized delete in
+      swift/proxy/controllers/obj.py, added tests to
+      test/functional/tests.py.
+    - CVE-2015-1856
 
-  * d/copyright: Add missing copyright holders
+  [ Jamie Strandboge ]
+  * debian/patches/x-auth-token-should-be-bytestring.patch: update for
+    functional test suite
+  * debian/patches/fix-tempauth-acl-checks.patch: fix tempauth acl checks when
+    simplejson has no speedups
+  * debian/patches/increase-httplib-maxheaders.patch: fix testuite and
+    increase httplib._MAXHEADERS
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 06 Nov 2017 09:15:02 +0100
+ -- Jamie Strandboge <jamie@ubuntu.com>  Thu, 30 Jul 2015 12:24:47 -0500
 
-swift (2.15.1-2) unstable; urgency=medium
+swift (2.2.2-0ubuntu1) vivid; urgency=medium
 
-  * Uploading to unstable
+  * New upstream release. 
+  * debian/patches/fixup-32bit-max-file-size.patch: Dropped no longer needed.
 
- -- Ondřej Nový <onovy@debian.org>  Sun, 05 Nov 2017 21:12:27 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 09 Feb 2015 13:40:34 -0500
 
-swift (2.15.1-1) experimental; urgency=medium
+swift (2.2.1-0ubuntu2) vivid; urgency=medium
 
-  [ Ondřej Nový ]
-  * New upstream release
-  * Bump required version of (build-)depends for new upstream release
-  * d/p/syslog_log_name.patch: rebase
-  * d/p/Be_more_tolerant_of_exception_messages_from_sqlite.patch:
-    fix sqlite error (Closes: #877298)
-  * Don't restart rsyslog in postrm/postinst, it's done by trigger
-  * d/copyright: Bump copyright years
-  * Install swift-object-relinker
-  * Install guide is now part of main docs
-  * d/control
-    - Don't depend on dh-systemd, it's not needed in new debhelper
-    - Remove deprecated ${python:Provides}
-  * Use python3-sphinx for building docs
-  * d/tests/help: Add swift-object-relinker
-  * Updating standards version to 4.1.1.
-
-  [ Daniel Baumann ]
-  * Updating vcs fields.
-  * Updating copyright format url.
-  * Updating maintainer field.
-  * Running wrap-and-sort -bast.
-  * Removing gbp.conf, not used anymore or should be specified in the
-    developers dotfiles.
-  * Correcting permissions in debian packaging files.
-
- -- Ondřej Nový <onovy@debian.org>  Tue, 31 Oct 2017 14:43:03 +0100
-
-swift (2.10.2-1) unstable; urgency=medium
-
-  * New upstream stable release
-  * Removed patches applied upstream:
-    - Quarantine_malformed_database_schema_SQLite_errors.patch
-    - For_any_part_only_one_replica_can_move_in_a_rebalance.patch
-    - FTBFS_i386.patch
-
- -- Ondřej Nový <onovy@debian.org>  Sat, 03 Jun 2017 13:35:44 +0200
-
-swift (2.10.1-3) unstable; urgency=medium
-
-  * d/patches/FTBFS_i386.patch: Fix FTBFS on i386 (Closes: #860638)
-
- -- Ondřej Nový <onovy@debian.org>  Thu, 20 Apr 2017 22:51:28 +0200
-
-swift (2.10.1-2) unstable; urgency=medium
-
-  * Don't start rsyslog during postinst/postrm if it's stopped
-  * d/tests
-    - Added Python module import test
-    - Added daemons test
-  * Added patches from upstream master:
-    - For any part only one replica can move in a rebalance
-    - Quarantine malformed database schema SQLite errors
+  * Systemd enablement:
+    - d/*.init: Re-instate and re-write original init scripts. 
+    - d/*: Tidy incorrectly named init script files.
 
- -- Ondřej Nový <onovy@debian.org>  Fri, 13 Jan 2017 10:05:12 +0100
+ -- James Page <james.page@ubuntu.com>  Mon, 12 Jan 2015 10:42:51 +0000
 
-swift (2.10.1-1) unstable; urgency=medium
+swift (2.2.1-0ubuntu1) vivid; urgency=medium
 
-  * New upstream release
-  * Bumped debhelper version to 10
+  [ Chuck Short ]
+  * Open for Vivid.
+  * d/control: Update branch locations.
 
- -- Ondřej Nový <onovy@debian.org>  Thu, 15 Dec 2016 16:11:51 +0100
+  [ James Page ]
+  * New upstream release:
+    - d/p/*: Refresh.
+  * d/control: Bumped Standards-Version 3.9.6, no changes.
 
-swift (2.10.0-3) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Fri, 19 Dec 2014 14:33:19 +0000
 
-  * Run swift-drive-audit cron by root
-    (needed for /var/log/kern.log reading and umount command)
+swift (2.2.0-0ubuntu1) utopic; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 17 Oct 2016 14:40:10 +0200
+  [ Corey Bryant ]
+  * New upstream release.
 
-swift (2.10.0-2) unstable; urgency=medium
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 16 Oct 2014 15:47:13 -0400
 
-  * Uploading to unstable
+swift (2.2.0~rc1-0ubuntu3) utopic; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Fri, 07 Oct 2016 10:33:11 +0200
+  * Fix autopkg tests due to upstream mandatory configuration changes:
+    - d/tests/swift-daemons,proxy-server.conf: Switch to using upstream
+      provided sample proxy server configuration, drop test specific
+      configuration.
+    - d/*.conf: Set default bind_port values inline with upstream.
 
-swift (2.10.0-1) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Thu, 09 Oct 2014 11:51:59 +0100
 
-  * New upstream release
-  * d/s/options: extend-diff-ignore of .gitreview
-  * d/control: Using OpenStack's Gerrit as VCS URLs.
-  * Bump required version of dnspython to 1.14.0
-  * Added missing manpages from upstream
+swift (2.2.0~rc1-0ubuntu2) utopic; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Thu, 29 Sep 2016 09:43:09 +0200
+  * d/p/fixup-32bit-max-file-size.patch: Limit MAX_FILE_SIZE on 32bit
+    architectures during testing, fixing FTBFS on i386 builders
+    (LP: #1378810).
+  * d/p/fix-ubuntu-tests.patch: Drop, superceeded by above.
 
-swift (2.9.0-2) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Thu, 09 Oct 2014 09:57:04 +0100
 
-  * Rebased on 2.7.0-10
-  * Removed doctrees from doc to make build reproducible
-  * Moved swift-recon and swift-object-expirer manpages to correct binary
-    packages
-  * Moved swift-config cli to swift binary package
+swift (2.2.0~rc1-0ubuntu1) utopic; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Wed, 21 Sep 2016 20:57:37 +0200
+  * New upstream release candidate for OpenStack Juno:
+    - d/p/*: Refreshed.
 
-swift (2.9.0-1) experimental; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Mon, 06 Oct 2014 15:05:01 +0100
 
-  * Rebased on 2.7.0-9
-  * New upstream release
-  * Changed (build) depends for new upstream release
-  * Build API ref and install guide documentation
-  * Added libjs-jquery, libjs-underscore and libjs-bootstrap dependency to
-    swift-doc
-  * Moved base documentation to "base" directory
+swift (2.1.0-0ubuntu1) utopic; urgency=medium
 
- -- Ondřej Nový <onovy@debian.org>  Sun, 17 Jul 2016 23:15:09 +0200
+  [ Chuck Short ]
+  * debian/patches/fix-doc-no-network.patch: Refreshed.
+  * debian/control: Add python-oslosphinx as a build dependency.
 
-swift (2.8.0-2) experimental; urgency=medium
+  [ James Page ]
+  * New upstream release for OpenStack Juno.
+  * d/copyright: Add linebreaks to fixup file-without-copyright-
+    information warning.
 
-  * Rebased on 2.7.0-7
+ -- James Page <james.page@ubuntu.com>  Mon, 06 Oct 2014 10:06:11 +0100
 
- -- Ondřej Nový <onovy@debian.org>  Wed, 06 Jul 2016 00:35:48 +0200
+swift (2.0.0-0ubuntu2) utopic; urgency=medium
 
-swift (2.8.0-1) experimental; urgency=medium
+  * Do not compress conf-sample files in the doc directories (used in
+    the autopkg tests).
 
-  * New upstream release
-  * Removed build depend on git, not needed anymore
-  * Added missed example configs to docs
-  * Use dh_installdocs -A for installing AUTHORS file
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 13 Aug 2014 12:26:45 +0200
 
- -- Ondřej Nový <novy@ondrej.org>  Tue, 14 Jun 2016 20:23:21 +0200
+swift (2.0.0-0ubuntu1) utopic; urgency=medium
 
-swift (2.7.0-10) unstable; urgency=medium
+  * New upstream release.
+  * debian/control: Open up juno release
+  * debian/patches/ring-perms.patch: Dropped no longer needed.
+  * debian/switf-container.install: Add swift-reconciler-enqueue
+    and swift-container-reconciler.
 
-  * Stop services first when upgrading from < 2.6.0-2 version
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 08 Jul 2014 10:31:47 -0400
 
- -- Ondřej Nový <onovy@debian.org>  Wed, 21 Sep 2016 19:34:00 +0200
+swift (1.13.1-0ubuntu1) trusty; urgency=medium
 
-swift (2.7.0-9) unstable; urgency=medium
+  * New upstream release (LP: #1299055). 
 
-  * Ignore errors when trying to restart rsyslog service in postrm too
-    (Closes: #830586)
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 17 Apr 2014 04:52:50 -0400
 
- -- Ondřej Nový <onovy@debian.org>  Mon, 11 Jul 2016 09:14:29 +0200
+swift (1.13.1~rc2-0ubuntu1) trusty; urgency=medium
 
-swift (2.7.0-8) unstable; urgency=medium
+  [ Chuck Short ]
+  * New upstream release candidate (LP: #1299055).
 
-  * Ignore errors when trying to restart rsyslog service and be more robust
+  [ James Page ]
+  * d/control: Add appropriate Breaks/Replaces to support move of man pages
+    between binary packages in 1.13.1~rc1-0ubuntu1 (LP: #1306241).
 
- -- Ondřej Nový <onovy@debian.org>  Thu, 07 Jul 2016 16:06:46 +0200
+ -- James Page <james.page@ubuntu.com>  Mon, 14 Apr 2014 11:03:23 +0100
 
-swift (2.7.0-7) unstable; urgency=medium
+swift (1.13.1~rc1-0ubuntu2) trusty; urgency=medium
 
-  * Check for ring files before starting service (Closes: #829375)
-  * Remove all swift directories on purge
-  * Added missed example configs to docs
-  * Use dh_installdocs -A for installing AUTHORS file
-  * Added support for nodocs in DEB_BUILD_OPTIONS
-  * Use dh-exec for installing configs
-  * Use adm group for log directory
-  * Log to /var/log/swift and not to generic logfile
+  * d/p/ring-perms.patch: Ensure that generated rings can be read by
+    the swift user, fixing autopkgtest failure (LP: #1302700). 
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 05 Jul 2016 23:24:04 +0200
+ -- James Page <james.page@ubuntu.com>  Sun, 06 Apr 2014 21:10:51 +0100
 
-swift (2.7.0-6) unstable; urgency=medium
+swift (1.13.1~rc1-0ubuntu1) trusty; urgency=medium
 
-  * Don't add user swift to adm group
-  * d/{control,copyright}: Use my @debian.org email address
+  [ Chuck Short ]
+  * Add new binaries:
+    - d/swift-container.install: Add swift-container-info binary.
+    - d/swift-account.install: Add swift-account-info binary.
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 21 Jun 2016 17:41:38 +0200
+  [ James Page ]
+  * New upstream release candidate (LP: #1299055). 
+  * d/rules: Tidy dh_clean override.
+  * d/rules,swift-doc.docs: Re-enable documentation build.
+  * d/*.manpages: Rejig manpage installs into correct packages.
+  * d/container-server.conf: Add missing container-sync section
+    (LP: #1290813).
+  * d/*: Wrap-and-sort.
 
-swift (2.7.0-5) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Fri, 04 Apr 2014 10:57:51 +0100
 
-  * Bumped required version of python-setuptools to 20.6.8
-  * Use OSLO_PACKAGE_VERSION from openstack-pkg-tools
+swift (1.13.0-0ubuntu1) trusty; urgency=medium
 
- -- Ondřej Nový <novy@ondrej.org>  Tue, 14 Jun 2016 16:59:08 +0200
+  [ Chuck Short ]
+  * New upstream release.
 
-swift (2.7.0-4) unstable; urgency=medium
+  [ James Page ]
+  * Add object-expirer package and associated configuration (LP: #1235495):
+    - d/control: Add swift-object-expirer package, break/replace swift-object
+      from earlier versions.
+    - d/swift-object.install: Drop install of swift-object-expirer.
+    - d/swift-object-expirer.{install,upstart}: Install swift-object-expirer
+      and associated upstart configuration.
+    - d/rules,object-expirer.conf: Provide basic object-expirer configuration.
+    - debian/swift-object-expirer.docs: Add full example configuration to docs.
+  * d/rules,swift-container.swift-container-sync.upstart: Add upstart
+    configuration for swift-container-sync process (LP: #1250171).
 
-  * Bump required openstack-pkg-tools version to 45
-  * Removed run depends on python-setuptools
-  * Removed (build-)depends on python-paste, it's satisfied by
-    python-pastedeploy
-  * Added python-keystoneclient to Build-Depends-Indep
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 06 Mar 2014 12:29:10 -0500
 
- -- Ondřej Nový <novy@ondrej.org>  Thu, 09 Jun 2016 08:40:52 +0200
+swift (1.12.0-0ubuntu1) trusty; urgency=medium
 
-swift (2.7.0-3) unstable; urgency=medium
+  * New upstream release.
+  * debian/patches/fix-ubuntu-tests.patch: Rediffed.
+  * debian/rules: Add pythonpath for tests.
 
-  * Standards-Version is 3.9.8 now (no change)
-  * Fix copyright year in documentation to make build reproducible
-  * Use pkgos includes inside postinst
-  * Sort inputs in d/rules to make build reproducible
-  * Override false-positive Lintian: spelling-error-in-copyright Thier Their
-  * Removed d/source/include-binaries, not needed anymore
-  * Change directory to $ADTTMP before running Debian tests
-  * wrap-and-sort -t -a
-  * Added Documentation to systemd units
+ -- Chuck Short <zulcss@ubuntu.com>  Wed, 29 Jan 2014 09:14:25 -0500
 
- -- Ondřej Nový <novy@ondrej.org>  Thu, 28 Apr 2016 21:33:07 +0200
+swift (1.11.0-0ubuntu2) trusty; urgency=low
 
-swift (2.7.0-2) unstable; urgency=medium
+  * d/tests/swift-daemons: Use service command to restart daemons instead
+    of directly using non-existent scripts in /etc/init.d.
 
-  * Uploading to unstable
-  * Ignore errors when starting daemons during package install
+ -- James Page <james.page@ubuntu.com>  Fri, 13 Dec 2013 09:14:19 +0000
 
- -- Ondřej Nový <novy@ondrej.org>  Mon, 04 Apr 2016 10:53:24 +0200
+swift (1.11.0-0ubuntu1) trusty; urgency=low
 
-swift (2.7.0-1) experimental; urgency=medium
+  [ Chuck Short ]
+  * debian/control: open icehouse release.
+  * debian/rules:
+    - Fix doc installation.
+    - Removed debian distribution checking.
+  * Removed init scripts, they dont get installed anyways.
+  * Renamed upstart.in to regular upstart jobs.
+  * debian/swift-doc.docs: Drop doc/build/html.
+  * debian/swift.install: Remove swift-bench and swift-bench-client, it has
+    moved into its own project.
+  * debian/control: Suggest swift-bench.
+  * debian/fix-ubuntu-tests.patch: Disable tests that fail on buildds.
 
-  * New upstream release
-  * Support of multiple conf files in /etc/swift/*-server/ directories
-  * Added dh-python build-depends
-  * Bumped python-pyeclib required version
-  * Enabled autostarting of all daemons
-
- -- Ondřej Nový <novy@ondrej.org>  Sun, 27 Mar 2016 23:24:34 +0200
-
-swift (2.6.0-2) experimental; urgency=medium
-
-  [ Ondřej Nový ]
-  * Added Debian tests.
-  * Removed swift-init.
-  * Systemd support.
-  * Added container-sync config files.
-  * Changed all dependencies to same version of swift package.
-  * Changed shell of "swift" user to /bin/false.
-  * Add user "swift" to group "adm", not replace group list.
-  * Standards-Version is 3.9.7 now (no change).
-  * Fixed Vcs URL.
+  [ James Page ]
+  * d/rules: Don't clean debian/*.upstart; we need those now! 
 
-  [ Thomas Goirand ]
-  * Added a backups folder in /etc/swift/backups which links back to
-    /var/backups/swift.
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 12 Dec 2013 10:50:46 -0500
 
- -- Ondřej Nový <novy@ondrej.org>  Wed, 02 Mar 2016 16:42:53 +0100
+swift (1.10.0-0ubuntu1) saucy; urgency=low
 
-swift (2.6.0-1) experimental; urgency=medium
+  * New upstream release (LP: #1236462).
 
-  [ Ondřej Nový ]
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 17 Oct 2013 10:26:18 -0400
 
-  * New upstream release.
-  * Removed useless shlibs dependency.
-  * Watch file fixed.
-  * Removed PyEClib requirements patching.
-  * Removed simplejson dependency.
-  * Bumbed eventlet and dnspython dependency to new versions.
-  * Added python-os-testr build dependency.
-  * Added git build dependency.
-  * wrap-and-sort -t -a
-  * Removed wrong systemd unit files.
-  * Removed libjerasure2 build dependency.
+swift (1.10.0~rc1-0ubuntu1) saucy; urgency=low
 
-  [ Ivan Udovichenko ]
+  * New upstream release candidate.
 
-  * d/rules: Fix config location for swift-object-expirer service.
-  * d/control: Add Breaks field to swift-object-expirer package.
+ -- Chuck Short <zulcss@ubuntu.com>  Wed, 09 Oct 2013 15:05:24 -0400
 
- -- Ondřej Nový <novy@ondrej.org>  Wed, 20 Jan 2016 05:31:21 -0500
+swift (1.9.1-0ubuntu3) saucy; urgency=low
 
-swift (2.5.0-2) unstable; urgency=medium
+  * d/python-swift.postinst: Allow swift user to write to /var/cache/swift,
+    resolving repeated errors in swift syslog (LP: #1234657).
 
-  [ Ondřej Nový ]
-  * Added cron job for drive audit.
-  * Removed python-swiftclient dependency.
-  * Added libjerasure2 build dependency.
-  * Added myself to copyright file.
-  * Fixed debian/copyright.
-  * Fixed typo in swift-container-sync upstart job.
+ -- James Page <james.page@ubuntu.com>  Fri, 04 Oct 2013 16:21:14 +0100
 
-  [ Marek Kaleta ]
-  * Moved drive audit to new package swift-drive-audit.
-  * Added myself to copyright file.
+swift (1.9.1-0ubuntu2) saucy; urgency=low
 
- -- Ondřej Nový <novy@ondrej.org>  Sat, 16 Jan 2016 05:05:21 -0500
+  * d/control: Add missing dependency on python-dnspython >= 1.10.0.
+  * d/control: Wrap and sort.
 
-swift (2.5.0-1) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Wed, 25 Sep 2013 16:08:35 +0100
 
-  [ Ondřej Nový ]
-  * New upstream release.
-  * Workaround swift-init bug and send SIGKILL if SIGTERM is not successful.
-    Thanks to Petr Kuběna <petr.kubena@firma.seznam.cz>
-  * Moved same parts of init scripts to template.
-  * Allows one to change kill-interval in swift-init.
-  * man pages cleanup.
+swift (1.9.1-0ubuntu1) saucy; urgency=low
 
-  [ Thomas Goirand ]
-  * Removed Pre-Depends on dpkg.
-  * Removed Breaks+Replaces now obsolete after the release of Jessie.
+  [ James Page ]
+  * d/control: Update VCS fields for new branch locations.
+
+  [ Chuck Short ]
+  * New upstream release.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 22 Oct 2015 20:54:44 +0000
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 13 Aug 2013 10:37:13 -0400
 
-swift (2.4.0-1) unstable; urgency=medium
+swift (1.9.0-0ubuntu1) saucy; urgency=low
 
-  [ Ondřej Nový ]
+  [ Chuck Short ]
   * New upstream release.
-  * swift-object-reconstructor init script is correctly installed now.
-  * Fixed service name of object-expirer.
-  * Added container-sync init script.
-  * All init scripts is using swift-init.
-  * Added myself as uploader.
+  * debian/swift.install: Add swift-config.
+  * debian/control: Nump standards version to 3.9.4
+ 
+  [ Yolanda Robla ]
+  * debian/tests: added autopkg tests
 
-  [ Thomas Goirand ]
-  * Adds patch-requirements.txt-to-allow-pyeclib-versions.patch.
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 02 Jul 2013 10:26:07 -0500
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 14 Sep 2015 13:21:00 +0000
+swift (1.8.0-0ubuntu1) raring; urgency=low
 
-swift (2.3.0-1) unstable; urgency=medium
+  * New upstream release. 
 
-  * New upstream release.
-  * Added python-pyeclib as (build-)depends, bumped eventlet required version
-    to 0.16.1, and removed a few versions already provided by Jessie.
-  * Standards-Version is now 3.9.6.
-  * Removed applied upstream patch:
-    - CVE-2015-1856_Prevent-unauthorized-delete-in-versioned-container.patch
-  * Added usr/bin/swift-object-reconstructor to swift-object.
-  * Added startup scripts for swift-container-reconciler and
-    swift-object-reconstructor. Thanks to <ondrej.novy@firma.seznam.cz> for the
-    bug report and patch (Closes: #788450).
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 04 Apr 2013 10:38:18 -0500
+
+swift (1.8.0~rc2-0ubuntu1) raring; urgency=low
+
+  * New usptream release candidate for grizzly.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 04 Jun 2015 09:49:04 +0200
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 02 Apr 2013 09:06:48 -0500
 
-swift (2.2.0-3) unstable; urgency=medium
+swift (1.8.0~rc1-0ubuntu1) raring; urgency=low
 
-  * Fixed swift user creation (standardized on pkgos way).
+  * New upstream release candidate for grizzly. 
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 30 Jun 2015 17:03:05 +0200
+ -- Chuck Short <zulcss@ubuntu.com>  Wed, 20 Mar 2013 08:19:17 -0500
 
-swift (2.2.0-2) unstable; urgency=high
+swift (1.7.6-0ubuntu1) raring; urgency=low
 
-  * CVE-2015-1856 & OSSA 2015-006: Unauthorized delete of versioned Swift
-    object. Applied upstream patch: Prevent unauthorized delete in versioned
-    container (Closes: #783163).
+  *  New upstream release.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 23 Apr 2015 09:42:47 +0200
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 28 Jan 2013 09:44:34 -0600
 
-swift (2.2.0-1) unstable; urgency=medium
+swift (1.7.5-0ubuntu1) raring; urgency=low
 
   * New upstream release.
-  * Removed the no intersphinx patch.
+  * debian/control: Dropped python-webob.
+  * debian/swift.install: Add swift-bench-client.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 16 Oct 2014 12:44:38 +0000
+ -- Chuck Short <zulcss@ubuntu.com>  Wed, 14 Nov 2012 12:11:47 -0600
 
-swift (2.2.0~rc1-1) unstable; urgency=medium
+swift (1.7.4-0ubuntu2) quantal; urgency=low
 
-  * New upstream release.
+  * debian/control: Conflicts/Breaks on swift 1.6.0-ubuntu1 when upgrading 
+    from precise, since the swift client has been moved to python-swiftclient.
+    (LP: #1061064)
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 08 Oct 2014 22:29:36 +0800
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 11 Oct 2012 09:06:02 -0500
 
-swift (2.1.0-1) unstable; urgency=medium
+swift (1.7.4-0ubuntu1) quantal; urgency=low
 
-  * New upstream release.
-  * Removed CVE-2014-3497_properly_quote_www-authenticate_header_value.patch
-    applied upstream.
-  * Added new command lines into packages:
-    - usr/bin/swift-container-info
-    - usr/bin/swift-container-reconciler
-    - usr/bin/swift-reconciler-enqueue
-    - usr/bin/swift-account-info
-  * Added new package (+init script): swift-account-expirer (Closes: #760363).
+  * New upstream release. 
+  * debian/rules: Fail to build the packages if testsuite fails.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 01 Jul 2014 19:31:22 +0800
+ -- Chuck Short <zulcss@ubuntu.com>  Wed, 26 Sep 2012 09:19:43 -0500
 
-swift (1.13.1-1) unstable; urgency=high
+swift (1.7.2-0ubuntu1) quantal; urgency=low
 
-  * New upstream release.
-  * CVE-2014-3497: XSS in Swift requests through WWW-Authenticate header.
-    Appilied upstream patch properly_quote_www-authenticate_header_value.patch
-    (Closes: #752087).
+  * New upstream release, this release fixes a major 
+    regression introduced in the last release.
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 12 Apr 2014 11:19:56 +0800
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 20 Sep 2012 08:42:59 -0500
 
-swift (1.12.0-1) unstable; urgency=medium
+swift (1.7.0-0ubuntu1) quantal; urgency=low
 
-  * New upstream release (Closes: #737638).
-  * Added new (build-)dependency: python-dnspython.
-  * Removed CVE-2014-0006 patch, applied upstream.
-  * Added PYTHONPATH=. when running unit tests.
+  [ Soren Hansen ]
+  * Update debian/watch to account for symbolically named tarballs and
+    use newer URL.
+  * Run unit tests at build time.
+  * Fix Launchpad URLs in debian/watch.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 04 Feb 2014 23:21:54 +0800
+  [ Chuck Short ]
+  * New upstream release
+  * debian/control: Add python-mock as a build dep
+  * debian/rules: Dont fail if testsuite fails.
 
-swift (1.11.0-2) unstable; urgency=high
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 07 Sep 2012 19:02:36 -0500
 
-  * CVE-2014-0006: Use constant time comparison in tempURL. Applied upstream
-    patch (Closes: #735582).
-  * Fix sphinx doc building.
+swift (1.6.0-0ubuntu1) quantal; urgency=low
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 17 Jan 2014 00:31:56 +0800
+  [ Adam Gandelman ]
+  * debian/patches/fix-ubuntu-unitteests.patch: Refreshed against tarball
+    generated by sdist.
+  * debian/control: Add python-swiftclient to Build-Depends.
+  * debian/swift.install: Remove swift CLI client, moved to
+    python-swiftclient.
+  * debian/patches/fix-ubuntu-unittests.patch: Dropped. Similar upstream
+    commit ensures logging exceptions are properly handled.
+  * debian/rules: *Temporarily* disable test suite.
+
+  [ Chuck Short ]
+  * New upstream version.
+  * python-swift.dirs: Add /var/cache/swift
+  * debian/man/*: Removed used upstream man pages and replaced
+    with upstream manpages. (LP: #1006671)
 
-swift (1.11.0-1) unstable; urgency=medium
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 07 Aug 2012 09:31:35 -0500
 
-  * New upstream relase.
-  * Removed swift-bench things, since that's gone from upstream project (it's
-    moved as a separate project at https://github.com/openstack/swift-bench).
+swift (1.5.0-0ubuntu1) quantal; urgency=low
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 13 Dec 2013 17:21:20 +0800
+  * New upstream version
+  * debian/patches/fix-ubuntu-unittests.patch: Refreshed
+  * debian/patches/fix-doc-no-network.patch: Refreshed
+  * swift.docs: Add changelog
+  * swift.install: Remove missing binaries.
+  * debian/control: Bump to version 3.9.3
+  * debian/swift.install: Add swift-temp-url and swift-form-signature.
 
-swift (1.10.0-1) unstable; urgency=low
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 18 Jun 2012 09:30:05 -0400
 
-  * New upstream release.
-  * Uploading to unstable.
+swift (1.4.8-0ubuntu2) precise; urgency=low
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 18 Oct 2013 01:08:31 +0800
+  * debian/patches/fix-ubuntu-unittests.patch: Refreshed
+    to fix testsuite failures.
 
-swift (1.10.0~rc1-1) experimental; urgency=low
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 12 Apr 2012 12:05:29 -0400
+
+swift (1.4.8-0ubuntu1) precise; urgency=low
 
   * New upstream release.
-  * Removed applied upstream patches.
+  * debian/patches/fix-ubuntu-unittests.patch: Refreshed.
+  * debian/patches/fix-doc-no-network.patch: Dont access network when
+    trying to build docs.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 10 Oct 2013 11:59:08 +0800
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 10 Apr 2012 09:23:54 -0400
 
-swift (1.8.0-7) unstable; urgency=low
+swift (1.4.7-0ubuntu3) precise; urgency=low
 
-  * Added "Account Quota Correction" patch.
+  * debian/rules: Make the build fail if the testsuite doesnt pass.
+  * debian/patches/fix-ubuntu-unittests.patch: Various fixes to build
+    swift in the buildds. (LP: #961871)
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 26 Sep 2013 16:03:31 +0800
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 26 Mar 2012 12:11:25 -0400
 
-swift (1.8.0-6) unstable; urgency=low
+swift (1.4.7-0ubuntu2) precise; urgency=low
 
-  [ Thomas Goirand ]
-  * Renamed all init script with .init extension in the debian folder, so it is
-    more easy to list them with ls.
-  * Added upstart scripts.
-  * Added myself and Julien in debian/copyright for the packaging, plus
-    Canonical for the upstart jobs.
-  * Removes unwanted python-webob (build-)depends (Closes: #715452).
-  * CVE-2013-4155: DoS using superfluous object tombstones. Upstream patch
-    fixes handling of DELETE obj reqs with old timestamp (Closes: #719008).
+  * Fixup upstart configurations (LP: #954477):
+    - d/rules: Correctly generate ALL upstart configurations when
+      building for Ubuntu.
+    - d/*.upstart.in: Update upstart config's to use new conf file locations.
 
-  [ Julien Cristau ]
-  * CVE-2013-2161: Check user input in XML responses (closes: #712202)
+ -- James Page <james.page@ubuntu.com>  Thu, 15 Mar 2012 15:34:19 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 28 Jun 2013 15:33:19 +0800
+swift (1.4.7-0ubuntu1) precise; urgency=low
 
-swift (1.8.0-5) unstable; urgency=low
+  [ Chuck Short ]
+  * New upstream release.
 
-  * swift-account should be Breaks+Replaces: swift (<< 1.8.0-4~) to allow to
-    do backports.
-  * Added Fix-formpost-with-queries-without-user_agent.patch.
+  [ Thierry Carrez (ttx) ]
+  * Remove swift-stats-populate, swift-stats-report and stats.conf-sample to
+    match Swift 1.4.7 contents
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 17 Jun 2013 15:14:15 +0800
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 09 Mar 2012 13:26:07 -0500
 
-swift (1.8.0-4) unstable; urgency=low
+swift (1.4.7~20120302.1721-0ubuntu1) precise; urgency=low
 
-  * Corrects a mistake with the location of the account-server.conf, which
-    should have been in swift-account and not the swift package. As a
-    consequence, adds Breaks+Replaces: swift (<< 1.8.0-4) (Closes: #710916).
+  * New upstream release.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 04 Jun 2013 00:04:35 +0800
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 02 Mar 2012 13:27:27 -0500
 
-swift (1.8.0-3) unstable; urgency=low
+swift (1.4.7~20120224.1690-0ubuntu1) precise; urgency=low
 
-  * Ran wrap-and-sort.
-  * Installs a default configuration file for swift-dispersion-report
-    (Closes: #668775), thanks to Loic Dachary <loic@dachary.org> for reporting.
-  * Now using upstream manpages when available.
-  * Now using upstream configuration files as default in /etc/swift
-    (Closes: #661811)
+  [ Chuck Short ]
+  * New upstream release.
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 01 Jun 2013 19:55:10 +0800
+  [ Chmouel Boudjnah ]
+  * Add more samples to packages (LP:#667935)
 
-swift (1.8.0-2) unstable; urgency=low
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 24 Feb 2012 09:10:12 -0500
 
-  * Upload to unstable.
-  * Updates the Allow-all-headers-requested-for-CORS.patch.
+swift (1.4.7~20120210.1686-0ubuntu1) precise; urgency=low
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 15 May 2013 22:32:52 +0800
+  * New upstream release.
+  * debian/control: Add python-paste.
 
-swift (1.8.0-1) experimental; urgency=low
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 10 Feb 2012 09:41:51 -0500
 
-  * New upstream release.
+swift (1.4.6~20120202.1676-0ubuntu1) precise; urgency=low
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 03 Apr 2013 20:30:31 +0800
+  * New upstream version.
 
-swift (1.7.5-3) experimental; urgency=low
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 03 Feb 2012 09:35:18 -0500
 
+swift (1.4.6~20120119.1666-0ubuntu2) precise; urgency=low
+
+  * Update swift.install to reflect release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 26 Jan 2012 09:05:51 -0500
+
+swift (1.4.6~20120119.1666-0ubuntu1) precise; urgency=low
+
+  [Chuck Short]
   * New upstream release.
-  * Fixed typoe dependency to python-swiftclient (and not python-swift-client).
-  * Removed patches now applied upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 03 Apr 2013 20:31:31 +0800
+  [ Daniel T Chen ]
+  * debian/control: Fix Vcs entries.
+  * debian/swift.install: Add new scripts. Fixes FTBFS.
 
-swift (1.7.5-2) experimental; urgency=low
+  [ Marc Cluet ]
+  * Changed swift-proxy upstart script to watch /etc/swift/proxy-server.conf
+    (LP:#917893)
 
-  * Added missing python-swiftclient dependency in swift-account. Thanks to
-    Viktor Křivák for reporting (Closes: #703623).
-  * Adds adds Add-handler-for-CORS-actual-requests.patch.
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 20 Jan 2012 13:20:46 -0500
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 22 Mar 2013 01:01:47 +0800
+swift (1.4.6~20120112.1660-0ubuntu1) precise; urgency=low
 
-swift (1.7.5-1) experimental; urgency=low
+  [Chuck Short]
+  * New upstream release.
+  * Merged changes from upstream packaging, thanks to Thierry Carrez.
+  * debian/rules:
+    + Remove egg-info on clean.
 
-  [ Mehdi Abaakouk ]
-  * New upstream release
-  * Fixed -x switch issue in swift-bench
+  [Thierry Carrez (ttx)]
+  * Added usr/bin/swift-recon[-cron] to swift package.
 
-  [ Thomas Goirand ]
-  * Fixed wrong format URL in debian/copyright.
-  * Added missing AUTHORS file in all packages.
-  * Removed useless X-Python-Version: >= 2.6 in control, since we already
-  Build-Depends: on python-all (>=2.6.6-3~).
-  * Removed \r from debian/copyright.
-  * Added missing Provides: ${python:Provides}, uses same short desc as in
-  Ubuntu, Break with versions << 1.6 (because of the python-swiftclient
-  package).
-  * Imported Ubuntu patch to stop accessing network when building docs.
-  * Fixes a log_daemon_msg typo present in most swift init scripts.
-  * Removes useless "swift is open source software" from long description.
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 09 Jan 2012 11:26:25 -0500
 
-  [ Julien Danjou ]
-  * Add /var/cache/swift to use swift-recon
-  * Add configuration and cron job for swift-recon
-  * Move swift-recon-cron to swift-object
+swift (1.4.5~20111202.1634-0ubuntu3) precise; urgency=low
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 17 Dec 2012 15:34:54 +0000
+  * debian/swift.manpages: Remove swauth man pages.
 
-swift (1.4.8-2) unstable; urgency=high
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 21 Dec 2011 18:29:35 +0100
 
-  * CVE-2012-4406: Do not use pickle for serialization in memcache, but JSON
-  (Closes: #686812).
+swift (1.4.5~20111202.1634-0ubuntu2) precise; urgency=low
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 06 Sep 2012 08:40:18 +0000
+  [ Chuck Short ]
+  * Drop swauth man pages. (LP: #900888)
+  * debian/control:
+    - Clean up build depends.
+    - Update VCS info to point to the right branches.
+  * debian/rules: Run the swift testsuite.
+  * debian/python-swift.postinst: Change user's shell to /bin/false.
+  * Fix some lintian warnings.
 
-swift (1.4.8-1) unstable; urgency=low
+  [ Thierry Carrez (ttx) ]
+  * Ship swift-oldies and swift-orphans in swift package
+
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 16 Dec 2011 09:45:28 -0500
+
+swift (1.4.5~20111202.1634-0ubuntu1) precise; urgency=low
 
   * New upstream release.
 
- -- Ghe Rivero <ghe.rivero@stackops.com>  Fri, 23 Mar 2012 08:09:54 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 02 Dec 2011 09:49:32 -0500
 
-swift (1.4.6-1) unstable; urgency=low
+swift (1.4.5~20111117.1632-0ubuntu1) precise; urgency=low
 
-  * New upstream release
+  * New upstream release.
+  * Convert init scripts to upstart.
 
- -- Ghe Rivero <ghe.rivero@stackops.com>  Mon, 13 Feb 2012 11:28:38 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 18 Nov 2011 13:25:16 -0500
 
-swift (1.4.5-1) unstable; urgency=low
+swift (1.4.4~20111108.1612-0ubuntu1) precise; urgency=low
 
   * New upstream release.
+  * debian/rules: Add --fail-missing.
+  * Update .isntall files. (LP: #882679, #841853)
 
- -- Ghe Rivero <ghe@debian.org>  Mon, 09 Jan 2012 16:18:17 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 11 Nov 2011 10:49:12 -0500
 
-swift (1.4.4+git145-g89ef1f4-1) experimental; urgency=low
+swift (1.4.4~20111014.1599-0ubuntu1) precise; urgency=low
 
-  * New snapshot release.
+  * New upstream verison.
+  * Dropped:
+    - debian/patches/backport-change-swift-ring-builder-exit-codes.
 
- -- Ghe Rivero <ghe@debian.org>  Wed, 04 Jan 2012 09:56:14 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 21 Oct 2011 13:50:47 -0400
 
-swift (1.4.4+git135-g913cfcf-1) experimental; urgency=low
+swift (1.4.3-0ubuntu2) oneiric; urgency=low
 
-  * New snapshot release.
+  [ Adam Gandelman ]
+  * debian/patches/backport-change-swift-ring-builder-exit-codes: Standardize
+    exit codes now to reduce hassles after future upgrades (LP: #836922)
 
- -- Ghe Rivero <ghe@debian.org>  Wed, 28 Dec 2011 08:35:37 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 30 Sep 2011 15:00:26 -0400
 
-swift (1.4.4-2) unstable; urgency=low
+swift (1.4.3-0ubuntu1) oneiric; urgency=low
 
-  * Do not install test (Closes: #649908)
+  [Chuck Short]
+  * New upstream release.
+
+  [Monty Taylor]
+  * Work around dh_python2 for lucid. (LP: #848971)
 
- -- Julien Danjou <acid@debian.org>  Mon, 19 Dec 2011 14:02:51 +0100
+ -- Monty Taylor <mordred@inaugust.com>  Fri, 16 Sep 2011 15:40:19 -0400
 
-swift (1.4.4-1) unstable; urgency=low
+swift (1.4.3~20110902.354-0ubuntu1) oneiric; urgency=low
 
   * New upstream release.
-  * Remove useless provides in control.
 
- -- Julien Danjou <acid@debian.org>  Thu, 24 Nov 2011 17:17:46 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 02 Sep 2011 14:10:27 -0400
 
-swift (1.4.3-1) unstable; urgency=low
+swift (1.4.3~20110823.347-0ubuntu1) oneiric; urgency=low
 
-  * [984c1f2] Imported Upstream version 1.4.3
-     - Closes: #629998  no more st binary
-  * Some package cleanup and sync with ubuntu pkg
+  * New upstream release.
 
- -- Ghe Rivero <ghe@debian.org>  Tue, 08 Nov 2011 08:25:40 +0100
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 26 Aug 2011 14:11:09 -0400
 
-swift (1.3.0-1) unstable; urgency=low
+swift (1.4.3~20110811.341-0ubuntu1) oneiric; urgency=low
 
+  * New upstream release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 12 Aug 2011 05:33:16 -0400
+
+swift (1.4.3~20110728.333-0ubuntu1) UNRELEASED; urgency=low
+
+  [ Soren Hansen ]
+  * New upstream snapshot.
+  * Remove debian-changes patch file.
+  * Remove SOURCES.txt in clean target to avoid gettings its changes in
+    our diff.gz.
+  * Add "status" support to all init scripts.
+  * Use "shutdown" instead of "stop" as the action argument for swift-
+    init. This shuts down the services gracefully (letting live requests
+    finish).
+  * Add swift-dispersion-{report,populate} to swift.install.
+
+  [ Thomas Goirand ]
   * Added missing adduser and lsb-base dependency.
   * Made the long description longer (it was really minimalistic).
   * Reworked all Debian init.d scripts.
   * Added many missing manpages.
   * Added default container-server.conf & object-server.conf files.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 10 May 2011 09:24:33 +0000
+  [ James Page ]
+  * Added debian/python-swift.postrm:  Remove swift user when purging
+    package (LP: #825670).
+
+ -- James Page <james.page@ubuntu.com>  Tue, 16 Aug 2011 10:33:00 +0100
+
+swift (1.4.2-0ubuntu1) oneiric; urgency=low
+
+  * New upstream release.
+  * debian/control:
+    - Update vcs infomration.
+    - Cleaned up build dependencies.
+    - Bump standards to version 3.9.2.
+  * debian/README.Source: Add doc to upload swift to the ubuntu archive.
+  * dh_python2 transition.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 28 Jul 2011 10:39:51 -0400
+
+swift (1.4.2~20110624.319-0ubuntu3) oneiric; urgency=low
+
+  * Clean up missing files.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 27 Jun 2011 06:30:51 -0400
+
+swift (1.4.2~20110624.319-0ubuntu2) oneiric; urgency=low
+
+  * New upstream release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Fri, 24 Jun 2011 14:00:18 -0400
+
+swift (1.4.1-0ubuntu1) oneiric; urgency=low
+
+  * New upstream release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 20 Jun 2011 13:08:04 -0400
+
+swift (1.4.1~20110615.r304-0ubuntu1) oneiric; urgency=low
+
+  [ Gregory Holt ]
+  * Removed swauth references.
+
+  [ Soren Hansen ]
+  * st was renamed to swift.
+
+  [ Chuck Short ]
+  * New upstream release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 16 Jun 2011 09:25:37 -0400
+
+swift (1.4-dev+bzr300-0ubuntu1) oneiric; urgency=low
+
+  * New upstream release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 31 May 2011 14:29:10 -0400
 
 swift (1.3.0-0ubuntu1) natty; urgency=low
 
diff -pruN 2.36.0-1/debian/clean 2.36.0-0ubuntu1/debian/clean
--- 2.36.0-1/debian/clean	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/clean	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-debian/*.upstart
-debian/*.init
-debian/*.service
-debian/python3-swift.postinst
diff -pruN 2.36.0-1/debian/container-server.conf 2.36.0-0ubuntu1/debian/container-server.conf
--- 2.36.0-1/debian/container-server.conf	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/container-server.conf	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,18 @@
+[DEFAULT]
+bind_ip = 0.0.0.0
+bind_port = 6001
+workers = 2
+
+[pipeline:main]
+pipeline = container-server
+
+[app:container-server]
+use = egg:swift#container
+
+[container-replicator]
+
+[container-updater]
+
+[container-auditor]
+
+[container-sync]
diff -pruN 2.36.0-1/debian/control 2.36.0-0ubuntu1/debian/control
--- 2.36.0-1/debian/control	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/control	2025-09-22 18:00:06.000000000 +0000
@@ -1,87 +1,106 @@
 Source: swift
 Section: net
 Priority: optional
-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Soren Hansen <soren@ubuntu.com>
 Uploaders:
+ Monty Taylor <mordred@inaugust.com>,
+ Greg Holt <gholt@rackspace.com>,
+ Jay Payne <letterj@racklabs.com>,
+ Michael Barton <michael.barton@rackspace.com>,
  Thomas Goirand <zigo@debian.org>,
- Michal Arbet <michal.arbet@ultimum.io>,
+ David Della Vecchia <ddv@canonical.com>,
 Build-Depends:
- debhelper-compat (= 12),
- dh-exec,
+ debhelper-compat (= 13),
  dh-python,
- openstack-pkg-tools,
+ openstack-pkg-tools (>= 119ubuntu1~),
  python3-all,
  python3-pbr,
  python3-setuptools,
- python3-sphinx,
+ python3-sphinx (>= 2.0.0),
 Build-Depends-Indep:
- python3-boto3,
+ libjerasure2,
+ python3-boto3 (>= 1.9),
+ python3-botocore (>= 1.12),
  python3-cffi,
- python3-coverage,
- python3-cryptography,
- python3-dnspython,
- python3-eventlet,
- python3-fixtures,
- python3-greenlet,
- python3-keystoneclient,
- python3-keystonemiddleware,
- python3-lxml,
- python3-mock,
- python3-openssl,
- python3-openstackclient,
- python3-openstackdocstheme,
- python3-os-api-ref,
- python3-os-testr,
- python3-oslo.config,
- python3-oslo.log,
- python3-oslosphinx,
- python3-pastedeploy,
- python3-pyeclib,
- python3-requests,
- python3-requests-mock,
- python3-stestr,
- python3-swiftclient,
- python3-xattr,
- subunit,
-Standards-Version: 4.5.0
-Vcs-Browser: https://salsa.debian.org/openstack-team/services/swift
-Vcs-Git: https://salsa.debian.org/openstack-team/services/swift.git
-Homepage: https://github.com/openstack/swift
+ python3-cryptography (>= 2.0.2),
+ python3-dnspython (>= 1.15.0),
+ python3-docutils (>= 0.15),
+ python3-eventlet (>= 0.25.0),
+ python3-fixtures (>= 3.0.0),
+ python3-greenlet (>= 0.3.3),
+ python3-hacking (>= 0.11.0),
+ python3-keystoneclient (>= 1:3.19.0),
+ python3-keystonemiddleware (>= 4.17.0),
+ python3-lxml (>= 4.2.3),
+ python3-mock (>= 3.0),
+ python3-netifaces (>= 0.8),
+ python3-nose (>= 1.3.7),
+ python3-nosehtmloutput (>= 0.0.3),
+ python3-nosexcover (>= 1.0.10),
+ python3-openstackclient (>= 3.12.0),
+ python3-openstackdocstheme (>= 2.2.1),
+ python3-os-api-ref (>= 1.0.0),
+ python3-pastedeploy (>= 2.0.0),
+ python3-pyeclib (>= 1.3.1),
+ python3-pytest (>= 4.6.11),
+ python3-pytest-cov (>= 2.12.1),
+ python3-pytest-subtests (>= 0.3.0),
+ python3-requests (>= 2.14.2),
+ python3-requests-mock (>= 1.2.0),
+ python3-sphinxcontrib.svg2pdfconverter (>= 0.1.0),
+ python3-stestr (>= 2.0.0),
+ python3-swiftclient (>= 1:3.2.0),
+ python3-testtools,
+ python3-xattr (>= 0.7.2),
+Standards-Version: 4.6.1
+Vcs-Git: https://git.launchpad.net/~ubuntu-openstack-dev/ubuntu/+source/swift
+Homepage: https://opendev.org/openstack/swift
 Testsuite: autopkgtest-pkg-python
-Rules-Requires-Root: no
 
 Package: python3-swift
 Architecture: all
 Section: python
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
  adduser,
- python3-cffi,
- python3-cryptography,
- python3-dnspython,
- python3-eventlet,
- python3-greenlet,
- python3-openssl,
- python3-oslo.config,
- python3-oslo.log,
- python3-pastedeploy,
- python3-pyeclib,
- python3-xattr,
+ libjerasure2,
+ python3-cryptography (>= 2.0.2),
+ python3-dnspython (>= 1.15.0),
+ python3-eventlet (>= 0.25.0),
+ python3-greenlet (>= 0.4.14),
+ python3-keystonemiddleware (>= 4.17.0),
+ python3-lxml (>= 4.2.3),
+ python3-netifaces (>= 0.8),
+ python3-pastedeploy (>= 2.0.0),
+ python3-pyeclib (>= 1.3.1),
+ python3-requests (>= 2.14.2),
+ python3-six (>= 1.10.0),
+ python3-xattr (>= 0.7.2),
  ${misc:Depends},
  ${python3:Depends},
+Provides:
+ ${python3:Provides},
 Breaks:
- systemd (<< 235~),
+ swift-account (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
+ swift-container (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
+ swift-object (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
+ swift-object-expirer (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
+Replaces:
+ python-swift (<< 2.22.0~b1~git2019071110.e62f07d98-0ubuntu1~),
+ swift-account (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
+ swift-container (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
+ swift-object (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
+ swift-object-expirer (<< 2.24.1~git2020032711.712bf3c9f-0ubuntu2~),
 Description: distributed virtual object store - Python 3 libraries
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
@@ -97,24 +116,25 @@ Description: distributed virtual object
 
 Package: swift
 Architecture: all
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
- logrotate,
  python3-swift (=${binary:Version}),
- rsyslog,
  ${misc:Depends},
  ${python3:Depends},
+ ${shlibs:Depends},
+Provides:
+ ${python3:Provides},
+Suggests:
+ swift-bench,
 Description: distributed virtual object store - common files
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
@@ -129,29 +149,24 @@ Description: distributed virtual object
 
 Package: swift-account
 Architecture: all
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
- openstack-pkg-tools,
- python3-pastescript,
  python3-swift (=${binary:Version}),
  rsync,
- swift (=${binary:Version}),
- uwsgi-plugin-python3,
  ${misc:Depends},
  ${python3:Depends},
-Recommends:
- swift-drive-audit,
+ ${shlibs:Depends},
+Provides:
+ ${python3:Provides},
 Description: distributed virtual object store - account server
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
@@ -166,29 +181,24 @@ Description: distributed virtual object
 
 Package: swift-container
 Architecture: all
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
- openstack-pkg-tools,
- python3-pastescript,
  python3-swift (=${binary:Version}),
  rsync,
- swift (=${binary:Version}),
- uwsgi-plugin-python3,
  ${misc:Depends},
  ${python3:Depends},
-Recommends:
- swift-drive-audit,
+ ${shlibs:Depends},
+Provides:
+ ${python3:Provides},
 Description: distributed virtual object store - container server
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
@@ -204,25 +214,20 @@ Description: distributed virtual object
 Package: swift-doc
 Architecture: all
 Section: doc
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
- libjs-bootstrap5,
  libjs-jquery,
- libjs-underscore,
- python-os-api-ref-common,
  ${misc:Depends},
  ${sphinxdoc:Depends},
 Description: distributed virtual object store - documentation
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
@@ -235,59 +240,26 @@ Description: distributed virtual object
  .
  This package provides the Sphinx generated documentation for Swift.
 
-Package: swift-drive-audit
-Architecture: all
-Pre-Depends:
- ${misc:Pre-Depends},
-Depends:
- python3-swift (=${binary:Version}),
- swift (=${binary:Version}),
- ${misc:Depends},
- ${python3:Depends},
-Description: distributed virtual object store - drive audit
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
- .
- Objects are written to multiple hardware devices in the data center, with
- the OpenStack software responsible for ensuring data replication and
- integrity across the cluster. Storage clusters can scale horizontally by
- adding new nodes. Should a node fail, OpenStack works to replicate its
- content from other active nodes. Because OpenStack uses software logic to
- ensure data replication and distribution across different devices,
- inexpensive commodity hard drives and servers can be used in lieu of more
- expensive equipment.
- .
- This package provides the swift drive audit tool.
-
 Package: swift-object
 Architecture: all
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
  python3-swift (=${binary:Version}),
  rsync,
- swift (=${binary:Version}),
  ${misc:Depends},
  ${python3:Depends},
-Recommends:
- swift-drive-audit,
+ ${shlibs:Depends},
+Provides:
+ ${python3:Provides},
 Description: distributed virtual object store - object server
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
@@ -302,24 +274,23 @@ Description: distributed virtual object
 
 Package: swift-object-expirer
 Architecture: all
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
  python3-swift (=${binary:Version}),
- rsync,
- swift (=${binary:Version}),
  ${misc:Depends},
  ${python3:Depends},
-Description: distributed virtual object store - object-expirer
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ ${shlibs:Depends},
+Provides:
+ ${python3:Provides},
+Description: distributed virtual object store - object expirer
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
@@ -330,36 +301,28 @@ Description: distributed virtual object
  inexpensive commodity hard drives and servers can be used in lieu of more
  expensive equipment.
  .
- This package provides the swift object expirer daemon. Only a single instance
- of this daemon is needed for a given swift cluster, which is why it is
- packaged separately.
+ This package provides the object-expirer service that provides scheduled
+ deletion of objects in Swift.
 
 Package: swift-proxy
 Architecture: all
-Pre-Depends:
- ${misc:Pre-Depends},
 Depends:
- openstack-pkg-tools,
- python3-pastescript,
  python3-swift (=${binary:Version}),
- swift (=${binary:Version}),
- uwsgi-plugin-python3,
  ${misc:Depends},
  ${python3:Depends},
-Recommends:
- python3-barbicanclient,
- python3-castellan,
- python3-keystonemiddleware,
+ ${shlibs:Depends},
+Provides:
+ ${python3:Provides},
 Description: distributed virtual object store - proxy server
- OpenStack Object Storage (code-named Swift) creates redundant, scalable object
- storage using clusters of standardized servers to store petabytes of
- accessible data. It is not a file system or real-time data storage system, but
- rather a long-term storage system for a more permanent type of static data
- that can be retrieved, leveraged, and then updated if necessary. Primary
- examples of data that best fit this type of storage model are virtual machine
- images, photo storage, email storage and backup archiving. Having no central
- "brain" or master point of control provides greater scalability, redundancy
- and permanence.
+ OpenStack Object Storage (code-named Swift) is open source software for
+ creating redundant, scalable object storage using clusters of standardized
+ servers to store petabytes of accessible data. It is not a file system or
+ real-time data storage system, but rather a long-term storage system for a
+ more permanent type of static data that can be retrieved, leveraged, and then
+ updated if necessary. Primary examples of data that best fit this type of
+ storage model are virtual machine images, photo storage, email storage and
+ backup archiving. Having no central "brain" or master point of control
+ provides greater scalability, redundancy and permanence.
  .
  Objects are written to multiple hardware devices in the data center, with
  the OpenStack software responsible for ensuring data replication and
diff -pruN 2.36.0-1/debian/copyright 2.36.0-0ubuntu1/debian/copyright
--- 2.36.0-1/debian/copyright	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/copyright	2025-09-22 18:00:06.000000000 +0000
@@ -1,72 +1,9 @@
-Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Format: http://dep.debian.net/deps/dep5
 Upstream-Name: swift
-Source: https://code.launchpad.net/swift
+Source: https://opendev.org/openstack/swift
 
 Files: *
-Copyright: (c) 2010-2017, See AUTHORS file
-           (c) 2013 Hewlett-Packard Development Company, L.P.
-           (c) 2010-2017 OpenStack Foundation
-License: Apache-2
-
-Files: debian/*
-Copyright: (c) 2010-2017, Thomas Goirand <zigo@debian.org>
-           (c) 2010-2012, Julien Danjou <acid@debian.org>
-           (c) 2015-2019, Ondřej Nový <onovy@debian.org>
-           (c) 2016, Marek Kaleta <marek.kaleta@firma.seznam.cz>
-           (c) 2019, Michal Arbet <michal.arbet@ultimum.io>
-License: Apache-2
-
-Files: swift/common/middleware/tempurl.py
-Copyright: (c) 2011-2014 Greg Holt
-           (c) 2012-2013 John Dickinson
-           (c) 2012 Felipe Reyes
-           (c) 2012 Peter Portante
-           (c) 2012 Victor Rodionov
-           (c) 2013-2014 Samuel Merritt
-           (c) 2013 Chuck Thier
-           (c) 2013 David Goetz
-           (c) 2013 Dirk Mueller
-           (c) 2013 Donagh McCabe
-           (c) 2013 Fabien Boucher
-           (c) 2013 Greg Lange
-           (c) 2013 Kun Huang
-           (c) 2013 Richard Hawkins
-           (c) 2013 Tong Li
-           (c) 2013 ZhiQiang Fan
-License: Apache-2
-
-Files: test/unit/common/middleware/test_tempurl.py
-Copyright: (c) 2011-2014 Greg Holt
-           (c) 2012-2013 Peter Portante
-           (c) 2012 Iryoung Jeong
-           (c) 2012 Michael Barton
-           (c) 2013 Alex Gaynor
-           (c) 2013 Chuck Thier
-           (c) 2013 David Goetz
-           (c) 2015 Donagh McCabe
-           (c) 2013 Greg Lange
-           (c) 2013 John Dickinson
-           (c) 2013 Kun Huang
-           (c) 2013 Richard Hawkins
-           (c) 2013 Samuel Merritt
-           (c) 2013 Shri Javadekar
-           (c) 2013 Tong Li
-           (c) 2013 ZhiQiang Fan
-License: Apache-2
-
-Files: bin/swift-ring-builder
-       bin/swift-recon
-       test/unit/cli/test_ringbuilder.py
-       test/unit/cli/test_recon.py
-Copyright: (c) 2013-2014 Christian Schwede <christian.schwede@enovance.com>
-License: Apache-2
-
-Files: bin/swift-ring-builder-analyzer
-       test/unit/cli/test_ring_builder_analyzer.py
-       test/unit/cli/test_form_signature.py
-Copyright: (c) 2014-2015 Samuel Merritt <sam@swiftstack.com>
-License: Apache-2
-
+Copyright: 2010 OpenStack, LLC.
 License: Apache-2
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
diff -pruN 2.36.0-1/debian/gbp.conf 2.36.0-0ubuntu1/debian/gbp.conf
--- 2.36.0-1/debian/gbp.conf	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/gbp.conf	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,9 @@
+[DEFAULT]
+debian-branch = master
+upstream-tag = %(version)s
+pristine-tar = True
+upstream-branch = upstream-flamingo
+
+[buildpackage]
+export-dir = ../build-area
+prebuild = [ ! -f .launchpad.yaml ] || rm .launchpad.yaml
diff -pruN 2.36.0-1/debian/gen-init 2.36.0-0ubuntu1/debian/gen-init
--- 2.36.0-1/debian/gen-init	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/gen-init	2025-09-22 18:00:06.000000000 +0000
@@ -42,13 +42,10 @@ AssertFileNotEmpty=/etc/swift/container.
 AssertPathExistsGlob=/etc/swift/object*.ring.gz
 $SYSTEMD_DOC
 $AFTER
-After=network-online.target local-fs.target remote-fs.target 
-Wants=network-online.target 
 
 [Service]
 User=${SYSTEM_USER}
 Group=${SYSTEM_GROUP}
-WorkingDirectory=~
 CacheDirectory=${PROJECT_NAME}
 RuntimeDirectory=${PROJECT_NAME} lock/${PROJECT_NAME}
 ExecStart=/usr/bin/${NAME} /etc/${PROJECT_NAME}/${CONFIG}.conf
diff -pruN 2.36.0-1/debian/object-expirer.conf 2.36.0-0ubuntu1/debian/object-expirer.conf
--- 2.36.0-1/debian/object-expirer.conf	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/object-expirer.conf	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,18 @@
+[DEFAULT]
+
+[object-expirer]
+interval = 300
+
+[pipeline:main]
+pipeline = catch_errors cache proxy-server
+
+[app:proxy-server]
+use = egg:swift#proxy
+
+[filter:cache]
+use = egg:swift#memcache
+
+[filter:catch_errors]
+use = egg:swift#catch_errors
+
+# See object-expirer.conf-sample for options
diff -pruN 2.36.0-1/debian/object-server.conf 2.36.0-0ubuntu1/debian/object-server.conf
--- 2.36.0-1/debian/object-server.conf	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/object-server.conf	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,16 @@
+[DEFAULT]
+bind_ip = 0.0.0.0
+bind_port = 6000
+workers = 2
+
+[pipeline:main]
+pipeline = object-server
+
+[app:object-server]
+use = egg:swift#object
+
+[object-replicator]
+
+[object-updater]
+
+[object-auditor]
diff -pruN 2.36.0-1/debian/patches/Add_tempurl_path_prefix_configuration_option.patch 2.36.0-0ubuntu1/debian/patches/Add_tempurl_path_prefix_configuration_option.patch
--- 2.36.0-1/debian/patches/Add_tempurl_path_prefix_configuration_option.patch	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/Add_tempurl_path_prefix_configuration_option.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-Description: Add [filter:tempurl]/path_prefix configuration option
- If swiftproxy endpoint is something like /object, with URL rewriting
- by haproxy, then the hmac calculation is wrong.
- .
- This patch adds a new path_prefix directive which is stripped away
- in the URLs before calculating the tempurl hmac.
-Author: Kevin Allioli <kevin@linit.io>
-Date: Thu, 18 Nov 2021 15:01:45 +0100
-Change-Id: I9359feedd93cec482dcd575800e28850c0fc02f3
-Forwarded: https://review.opendev.org/c/openstack/swift/+/818388
-Last-Update: 2021-11-18
-
-Index: swift/etc/proxy-server.conf-sample
-===================================================================
---- swift.orig/etc/proxy-server.conf-sample
-+++ swift/etc/proxy-server.conf-sample
-@@ -961,6 +961,10 @@ use = egg:swift#tempurl
- # whitespace-delimited.
- # allowed_digests = sha1 sha256 sha512
- 
-+# Allow to have swiftproxy endpoint not bound to the root with haproxy
-+# on-the-fly URL rewriting.
-+# path_prefix = /object
-+
- # Note: Put formpost just before your auth filter(s) in the pipeline
- [filter:formpost]
- use = egg:swift#formpost
-Index: swift/swift/common/middleware/tempurl.py
-===================================================================
---- swift.orig/swift/common/middleware/tempurl.py
-+++ swift/swift/common/middleware/tempurl.py
-@@ -771,6 +771,10 @@ class TempURL(object):
-                          to be accessed
-         :returns: a list of (hmac, scope) 2-tuples
-         """
-+
-+        if 'path_prefix' in self.conf:
-+            path = "/" + self.conf['path_prefix'].strip("/") + path
-+
-         if not request_method:
-             request_method = env['REQUEST_METHOD']
- 
diff -pruN 2.36.0-1/debian/patches/disable_sphinxcontrib_rsvgconverter.patch 2.36.0-0ubuntu1/debian/patches/disable_sphinxcontrib_rsvgconverter.patch
--- 2.36.0-1/debian/patches/disable_sphinxcontrib_rsvgconverter.patch	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/disable_sphinxcontrib_rsvgconverter.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,19 +0,0 @@
-Description: Disable sphinxcontrib.rsvgconverter extension
-Author: Ondřej Nový <novy@ondrej.org>
-Forwarded: not-needed
-Last-Update: 2020-02-12
-
-Index: swift/doc/source/conf.py
-===================================================================
---- swift.orig/doc/source/conf.py
-+++ swift/doc/source/conf.py
-@@ -54,8 +54,7 @@ extensions = ['sphinx.ext.autodoc',
-               'sphinx.ext.todo',
-               'sphinx.ext.coverage',
-               'sphinx.ext.ifconfig',
--              'openstackdocstheme',
--              'sphinxcontrib.rsvgconverter']
-+              'openstackdocstheme']
- todo_include_todos = True
- 
- # Add any paths that contain templates here, relative to this directory.
diff -pruN 2.36.0-1/debian/patches/drive-full-checker.patch 2.36.0-0ubuntu1/debian/patches/drive-full-checker.patch
--- 2.36.0-1/debian/patches/drive-full-checker.patch	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/drive-full-checker.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,494 +0,0 @@
-Description: drive-full-checker
- The admin documentation provides a documentation on how to "prevent[ing]
- disk full scenarios" over here:
- https://docs.openstack.org/swift/latest/admin_guide.html#preventing-disk-full-scenarios
- .
- Even if the doc provides an actual example, this example is written in
- Python 2, and its implementation is incomplete.
- .
- This patch intend to fill the gap, and allow administrator to use an
- official implementation of a new "swift-drive-full-checker" tool from
- /usr/bin directly. Once done, we intend to also patch puppet-swift to
- use this new tool.
-Author: Thomas Goirand <zigo@debian.org>
-Forwarded: https://review.opendev.org/c/openstack/swift/+/907523
-Last-Update: 2024-02-11
-
-Index: swift/etc/drive-full-checker.conf-sample
-===================================================================
---- /dev/null
-+++ swift/etc/drive-full-checker.conf-sample
-@@ -0,0 +1,51 @@
-+[drive-full-checker]
-+# Mount point of your storage. (string value)
-+# device_dir = /srv/node
-+#
-+# Path to the rsyncd.conf file to manage. (string value)
-+# rsyncd_conf_path = /etc/rsyncd.conf
-+#
-+# You can specify default log routing here if you want:
-+# log_name = drive-audit
-+# log_facility = LOG_LOCAL0
-+# log_level = INFO
-+# log_address = /dev/log
-+# The following caps the length of log lines to the value given; no limit if
-+# set to 0, the default.
-+# log_max_line_length = 0
-+#
-+# By default, drive-full-checker logs only to syslog. Setting this option True
-+# makes drive-audit log to console in addition to syslog.
-+# log_to_console = False
-+#
-+
-+# Max connections to the Account rsync backend. (integer value)
-+#account_max_connections = 8
-+
-+# Account server reserved space in GiB. (integer value)
-+#account_reserved_space = 100
-+
-+# Account section name in the rsyncd.conf file. The "{}" sign will be replaced by the drive name. If not using per drive sections, simply
-+# write "account". (string value)
-+#account_rsyncd_section_name = " account_{} "
-+
-+# Max connections to the Container rsync backend. (integer value)
-+#container_max_connections = 8
-+
-+# Container server reserved space in GiB. (integer value)
-+#container_reserved_space = 100
-+
-+# Container section name in the rsyncd.conf file. The "{}" sign will be replaced by the drive name. If not using per drive sections, simply
-+# write "container". (string value)
-+#container_rsyncd_section_name = " container_{} "
-+
-+# Max connections to the Object rsync backend. (integer value)
-+#object_max_connections = 8
-+
-+# Object server reserved space in GiB. (integer value)
-+#object_reserved_space = 100
-+
-+# Object section name in the rsyncd.conf file. The "{}" sign will be replaced by the drive name. If not using per drive sections, simply
-+# write "object". (string value)
-+#object_rsyncd_section_name = " object_{} "
-+
-Index: swift/releasenotes/notes/disk-full-checker-d4850f2fb479bb36.yaml
-===================================================================
---- /dev/null
-+++ swift/releasenotes/notes/disk-full-checker-d4850f2fb479bb36.yaml
-@@ -0,0 +1,14 @@
-+---
-+features:
-+  - |
-+    A new /usr/bin/swift-drive-full-checker utility is now provided by Swift.
-+    This tool watches for partitions in /srv/node (or wherever you configured
-+    it) for drive full scenarios. If a drive has less than the configured
-+    amount of space available, swift-drive-full-checker will amend the matching
-+    entry in rsyncd.conf and set it with `max connections = -1`, so that rsync
-+    will gracefully refuse incoming connections, and the sending replicator
-+    process will re-attempt duplicating data when space becomes available.
-+    Typically, swift-drive-full-checker will be called from a cron job every
-+    5 minutes (at least), with the parameters defining the amount of data
-+    reserved for each type of data, and the number of connection allowed if
-+    the data partition is not full.
-Index: swift/setup.cfg
-===================================================================
---- swift.orig/setup.cfg
-+++ swift/setup.cfg
-@@ -90,6 +90,7 @@ console_scripts =
-     swift-recon-cron = swift.cli.recon_cron:main
-     swift-reconciler-enqueue = swift.cli.reconciler_enqueue:main
-     swift-reload = swift.cli.reload:main
-+    swift-drive-full-checker = swift.cli.drive_full_checker:main
-     swift-ring-builder = swift.cli.ringbuilder:error_handling_main
-     swift-ring-builder-analyzer = swift.cli.ring_builder_analyzer:main
-     swift-ring-composer = swift.cli.ringcomposer:main
-Index: swift/swift/cli/drive_full_checker.py
-===================================================================
---- /dev/null
-+++ swift/swift/cli/drive_full_checker.py
-@@ -0,0 +1,207 @@
-+# Copyright (c) 2024, Thomas Goirand <zigo@debian.org>
-+# Copyright (c) 2024, Philippe Serafin <philippe.serafin@infomaniak.com>
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+#    http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-+# implied.
-+# See the License for the specific language governing permissions and
-+# limitations under the License.
-+#
-+# This script check a mounted device is full, and disable
-+# its matching rsync module if that is the case. The disk
-+# full limit is the first argument.
-+
-+import argparse
-+import configparser
-+import io
-+import os
-+import shutil
-+import sys
-+
-+from six.moves.configparser import ConfigParser
-+
-+from swift.common.utils import config_true_value, ismount, get_logger
-+
-+GiB = 1024 * 1024 * 1024
-+
-+
-+# Params for this function:
-+# logger: ref to the logger
-+# cp: config parser object containing the rsyncd.conf representation
-+# srvnode_dir: name of the drive we're inspecting (for example: sdb)
-+# free: bytes available in the current srvnode_dir that we're inspecting
-+# sec_name: name of the rsyncd.conf section we may need to patch
-+# rs: bytes reserved space in srvnode_dir
-+# mc: "normal" max connections (ie: when partition isn't full)
-+#     for the given dir entry
-+def _patch_rsyncdconf_entry(logger, cp, srvnode_dir, free, sec_name, rs, mc):
-+    # Calculate section name (ie: replace '{}' by drive name if present)
-+    if '{}' in sec_name:
-+        search_str = sec_name.format(srvnode_dir).strip('"')
-+    else:
-+        search_str = sec_name.strip('"')
-+
-+    # If referenced in the rsyncd.conf
-+    # In old setup (Python 2), calling config_parser['something']
-+    # raises an exception if the something section is not present
-+    # in the config file. Which is why we must do try/except.
-+    # I believe this try/except can be removed on more recent
-+    # Python3 based setups.
-+    try:
-+        if cp[search_str]:
-+            # If partition is full (ie: current_free_space <  reserved_space),
-+            # set 'max connections' to -1 to disable rsync
-+            if free < rs:
-+                cm = -1
-+            else:
-+                cm = mc
-+
-+            if int(cp[search_str]['max connections']) != cm:
-+                if cm == -1:
-+                    logger.info('Disabling ' + search_str)
-+                else:
-+                    logger.info('Enabling ' + search_str)
-+                cp[search_str]['max connections'] = str(cm)
-+    except KeyError:
-+        pass
-+
-+    return cp
-+
-+
-+def configure_rsyncd_conf(account_rs, account_mc, account_secname,
-+                          container_rs, container_mc, container_secname,
-+                          object_rs, object_mc, object_secname,
-+                          storage_p, rsyncd_p, logger, sf=None):
-+    # Load the rsyncd.conf file, adding
-+    # a fake global section.
-+    fake_section = '[fake_section_to_please_configobj]\n'
-+    source_file = sf if sf else rsyncd_p
-+    try:
-+        with open(source_file, 'r') as f:
-+            file_content = fake_section + f.read()
-+    except Exception as err:
-+        print("Unexpected error reading {}: {}".format(source_file, err))
-+        return 1
-+
-+    cp = configparser.RawConfigParser()
-+    if sys.version_info[0] == 2:
-+        cp.read_string(file_content.decode('unicode-escape'))
-+    else:
-+        cp.read_string(file_content)
-+
-+    # For all dirs in /srv/node
-+    for srvnode_dir in os.listdir(storage_p):
-+        dirpath = os.path.join(storage_p, srvnode_dir)
-+        # If the dir is mounted
-+        if ismount(dirpath):
-+            # Get free space of the partition
-+            # shutil.disk_usage can be mocked in tests.
-+            if sys.version_info[0] == 2:
-+                space = os.statvfs(dirpath)
-+                free = (space.f_bsize * space.f_bavail)
-+            else:
-+                free = shutil.disk_usage(dirpath).free
-+
-+            # Patch all 3 types of rsync module (a+c+o)
-+            cp = _patch_rsyncdconf_entry(logger, cp, srvnode_dir, free,
-+                                         account_secname, account_rs,
-+                                         account_mc)
-+
-+            cp = _patch_rsyncdconf_entry(logger, cp, srvnode_dir, free,
-+                                         container_secname, container_rs,
-+                                         container_mc)
-+
-+            cp = _patch_rsyncdconf_entry(logger, cp, srvnode_dir, free,
-+                                         object_secname, object_rs,
-+                                         object_mc)
-+
-+    # Prepare our rsyncd.conf file before writing
-+    iow = io.StringIO()
-+    cp.write(iow)
-+    file_out = iow.getvalue().replace(fake_section, '')
-+
-+    try:
-+        with open(rsyncd_p, 'w') as f:
-+            f.write(file_out)
-+    except Exception as err:
-+        logger.error("Unexpected error {}".format(err))
-+        return 1
-+
-+
-+def main():
-+    # Cli OPT parsing
-+    parser = argparse.ArgumentParser(prog='swift-drive-full-checker',
-+                                     description='Check if the drives of a '
-+                                                 'swift node are full, and '
-+                                                 'switches /etc/rsyncd.conf '
-+                                                 '"max connections" '
-+                                                 'accordingly.',
-+                                     epilog='(c) 2024, Thomas Goirand, '
-+                                            'Philippe Serafin & Infomaniak '
-+                                            'Networks.')
-+    parser.add_argument('-c', '--config-file',
-+                        default='/etc/swift/drive-full-checker.conf',
-+                        help='Path to the drive-full-checker.conf. Default to '
-+                             '/etc/swift/drive-full-checker.conf')
-+    parser.add_argument('-s', '--source-file',
-+                        default='/etc/rsyncd.conf',
-+                        help='Path to the source file. Default to '
-+                             '/etc/rsyncd.conf')
-+    args = parser.parse_args()
-+
-+    # disk-full-checker config file parsing
-+    c = ConfigParser()
-+    if not c.read(args.config_file):
-+        print("Unable to read config file %s" % args.conf_path)
-+        sys.exit(1)
-+
-+    CONF = dict(c.items('drive-full-checker'))
-+    device_dir = CONF.get('device_dir', '/srv/node')
-+    rsyncd_conf_path = CONF.get('rsyncd_conf_path', '/etc/rsyncd.conf')
-+
-+    account_max_connections = int(CONF.get('account_max_connections', 8))
-+    account_reserved_space = int(CONF.get('account_reserved_space', 100)) * GiB
-+    account_rsyncd_section_name = CONF.get('account_rsyncd_section_name',
-+                                           ' account_{} ')
-+
-+    container_max_connections = int(CONF.get('container_max_connections', 8))
-+    container_reserved_space = (int(CONF.get('container_reserved_space', 100))
-+                                * GiB)
-+    container_rsyncd_section_name = CONF.get('container_rsyncd_section_name',
-+                                             ' container_{} ')
-+
-+    object_max_connections = int(CONF.get('object_max_connections', 8))
-+    object_reserved_space = int(CONF.get('object_reserved_space', 100)) * GiB
-+    object_rsyncd_section_name = CONF.get('object_rsyncd_section_name',
-+                                          ' object_{} ')
-+
-+    # logging facility setup
-+    log_to_console = config_true_value(CONF.get('log_to_console', False))
-+    CONF['log_name'] = CONF.get('log_name', 'drive-full-checker')
-+    logger = get_logger(CONF, log_to_console=log_to_console,
-+                        log_route='drive-full-checker')
-+
-+    return configure_rsyncd_conf(account_reserved_space,
-+                                 account_max_connections,
-+                                 account_rsyncd_section_name,
-+                                 container_reserved_space,
-+                                 container_max_connections,
-+                                 container_rsyncd_section_name,
-+                                 object_reserved_space,
-+                                 object_max_connections,
-+                                 object_rsyncd_section_name,
-+                                 device_dir,
-+                                 rsyncd_conf_path,
-+                                 logger,
-+                                 args.source_file)
-+
-+
-+if __name__ == "__main__":
-+    sys.exit(main())
-Index: swift/test/unit/cli/test_drive_full_checker.py
-===================================================================
---- /dev/null
-+++ swift/test/unit/cli/test_drive_full_checker.py
-@@ -0,0 +1,174 @@
-+# Copyright (c) 2024, Thomas Goirand <zigo@debian.org>
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-+# use this file except in compliance with the License. You may obtain a copy
-+# of the License at
-+#
-+#     http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-+# License for the specific language governing permissions and limitations
-+# under the License.
-+
-+import collections
-+import filecmp
-+import mock
-+import os
-+import tempfile
-+import unittest
-+import shutil
-+import sys
-+
-+from test.debug_logger import debug_logger
-+from swift.cli import drive_full_checker
-+
-+GiB = 1024 * 1024 * 1024
-+
-+if sys.version_info[0] == 2:
-+    # os.statvfs is removed from Python >= 3
-+    freespace_func = 'os.statvfs'
-+else:
-+    # shutil.disk_usage doesn't exist in Python <= 2
-+    freespace_func = 'shutil.disk_usage'
-+
-+
-+class TestContainerDeleter(unittest.TestCase):
-+    def setUp(self):
-+        self.logger = debug_logger()
-+
-+    def _write_rsyncd_conf(self, path, max_conn):
-+        rsyncdconf = """pid file = /var/run/rsyncd.pid
-+uid = nobody
-+gid = nobody
-+use chroot = no
-+log format = %t %a %m %f %b
-+syslog facility = local3
-+timeout = 300
-+address = 192.168.100.2
-+
-+[ account_sdb ]
-+path = /srv/node
-+read only = false
-+write only = no
-+list = yes
-+uid = swift
-+gid = swift
-+incoming chmod = Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r
-+outgoing chmod = Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r
-+max connections = {max_conn}
-+timeout = 0
-+lock file = /var/lock/account_sdb.lock
-+
-+[ container_sdb ]
-+path = /srv/node
-+read only = false
-+write only = no
-+list = yes
-+uid = swift
-+gid = swift
-+incoming chmod = Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r
-+outgoing chmod = Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r
-+max connections = {max_conn}
-+timeout = 0
-+lock file = /var/lock/container_sdb.lock
-+
-+[ object_sdb ]
-+path = /srv/node
-+read only = false
-+write only = no
-+list = yes
-+uid = swift
-+gid = swift
-+incoming chmod = Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r
-+outgoing chmod = Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r
-+max connections = {max_conn}
-+timeout = 0
-+lock file = /var/lock/object_sdb.lock
-+
-+"""
-+        f = os.open(path, os.O_RDWR | os.O_CREAT)
-+        if sys.version_info[0] == 2:
-+            os.write(f, rsyncdconf.format(max_conn=max_conn))
-+        else:
-+            os.write(f, bytes(rsyncdconf.format(max_conn=max_conn), 'utf-8'))
-+        os.close(f)
-+
-+    @mock.patch.object(drive_full_checker, 'ismount', return_value=True)
-+    @mock.patch(freespace_func)
-+    def test_drive_full(self, mock_freespace_func, os_path_ismount):
-+        # Create a temp folder to run our tests
-+        tmpdirname = tempfile.mkdtemp()
-+
-+        storagepath = tmpdirname + '/srvnode'
-+        os.mkdir(storagepath)
-+        os.mkdir(storagepath + '/sdb')
-+
-+        rsyncdpath = tmpdirname + "/rsyncd.conf"
-+
-+        # Write a first rsyncd.conf with 8 connections for a,c,o
-+        self._write_rsyncd_conf(rsyncdpath, 8)
-+
-+        if sys.version_info[0] == 2:
-+            retval = collections.namedtuple('statvfs_result',
-+                                            'f_bsize f_bavail')
-+            mock_freespace_func.return_value = retval(10, 10)
-+        else:
-+            retval = collections.namedtuple('usage', 'total used free')
-+            # This says: 10 bytes remaining
-+            mock_freespace_func.return_value = retval(10, 10, 10)
-+
-+        drive_full_checker.configure_rsyncd_conf(10 * GiB, 8, ' account_{} ',
-+                                                 10 * GiB, 8, ' container_{} ',
-+                                                 10 * GiB, 8, ' object_{} ',
-+                                                 storagepath, rsyncdpath,
-+                                                 self.logger)
-+
-+        should_be_rsyncdconf = tmpdirname + "/rsyncd_should_be.conf"
-+        self._write_rsyncd_conf(should_be_rsyncdconf, -1)
-+
-+        # Assert that rsyncd.conf and rsyncd_should_be.conf are the same
-+        self.assertTrue(filecmp.cmp(rsyncdpath, should_be_rsyncdconf))
-+
-+        shutil.rmtree(tmpdirname)
-+
-+    @mock.patch.object(drive_full_checker, 'ismount', return_value=True)
-+    @mock.patch(freespace_func)
-+    def test_drive_with_space(self, mock_freespace_func, os_path_ismount):
-+        # Create a temp folder to run our tests
-+        tmpdirname = tempfile.mkdtemp()
-+
-+        storagepath = tmpdirname + '/srvnode'
-+        os.mkdir(storagepath)
-+        os.mkdir(storagepath + '/sdb')
-+
-+        rsyncdpath = tmpdirname + "/rsyncd.conf"
-+
-+        # Write a first rsyncd.conf with 8 connections for a,c,o
-+        self._write_rsyncd_conf(rsyncdpath, -1)
-+
-+        if sys.version_info[0] == 2:
-+            retval = collections.namedtuple('statvfs_result',
-+                                            'f_bsize f_bavail')
-+            mock_freespace_func.return_value = retval(10 * GiB, 10 * GiB)
-+        else:
-+            retval = collections.namedtuple('usage', 'total used free')
-+            # This says: 10 bytes remaining
-+            mock_freespace_func.return_value = retval(10 * GiB,
-+                                                      10 * GiB,
-+                                                      10 * GiB)
-+
-+        drive_full_checker.configure_rsyncd_conf(10, 8, ' account_{} ',
-+                                                 10, 8, ' container_{} ',
-+                                                 10, 8, ' object_{} ',
-+                                                 storagepath, rsyncdpath,
-+                                                 self.logger)
-+
-+        should_be_rsyncdconf = tmpdirname + "/rsyncd_should_be.conf"
-+        self._write_rsyncd_conf(should_be_rsyncdconf, 8)
-+
-+        # Assert that rsyncd.conf and rsyncd_should_be.conf are the same
-+        self.assertTrue(filecmp.cmp(rsyncdpath, should_be_rsyncdconf))
-+
-+        shutil.rmtree(tmpdirname)
diff -pruN 2.36.0-1/debian/patches/series 2.36.0-0ubuntu1/debian/patches/series
--- 2.36.0-1/debian/patches/series	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/series	2025-09-22 18:00:06.000000000 +0000
@@ -1,6 +1,3 @@
-syslog_log_name.patch
-disable_sphinxcontrib_rsvgconverter.patch
-set-default-workers-value.patch
-Add_tempurl_path_prefix_configuration_option.patch
-swift-recon-only-query-object-servers-once.patch
-drive-full-checker.patch
+tests-proxy-logging-avoid-dns.patch
+skip-online-test.patch
+skip-py312-failures.patch
diff -pruN 2.36.0-1/debian/patches/set-default-workers-value.patch 2.36.0-0ubuntu1/debian/patches/set-default-workers-value.patch
--- 2.36.0-1/debian/patches/set-default-workers-value.patch	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/set-default-workers-value.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,25 +0,0 @@
-Description: Set default workers value
- Since the package switched to uwsgi and now reads this value, it can't be
- left as "auto" an commented out.
-Author: Thomas Goirand <zigo@debian.org>
-Forwarded: not-needed
-Last-Update: 2020-10-30
-
---- swift-2.26.0.orig/etc/proxy-server.conf-sample
-+++ swift-2.26.0/etc/proxy-server.conf-sample
-@@ -28,8 +28,14 @@ bind_port = 8080
- # accept connections.  Should default to the number of effective cpu
- # cores in the system.  It's worth noting that individual workers will
- # use many eventlet co-routines to service multiple concurrent requests.
--# workers = auto
- #
-+# Note that in the Debian package, we've switched the proxy-server to
-+# uwsgi, because otherwise, the process may get stuck due to thread logging.
-+# Therefore, workers cannot be set to the value "auto", and must contain
-+# an interger. We're here setting 20 as a default value, which seems a
-+# reasonable value for a moderately busy cluster.
-+workers = 20
-+
- # Maximum concurrent requests per worker
- # max_clients = 1024
- #
diff -pruN 2.36.0-1/debian/patches/skip-online-test.patch 2.36.0-0ubuntu1/debian/patches/skip-online-test.patch
--- 2.36.0-1/debian/patches/skip-online-test.patch	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/skip-online-test.patch	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,35 @@
+Description: Skip test that is erroring with "gaierror:
+  [Errno -2] Name or service not known" as LP builds don't
+  have network access.
+Author: Corey Bryant <corey.bryant@canonical.com>
+Forwarded: no
+Last-Update: 2017-08-01
+
+Index: swift/test/unit/common/test_utils.py
+===================================================================
+--- swift.orig/test/unit/common/test_utils.py
++++ swift/test/unit/common/test_utils.py
+@@ -40,6 +40,7 @@ import pwd
+ import random
+ import socket
+ import string
++import testtools
+ import sys
+ import json
+ import math
+@@ -47,6 +48,7 @@ import inspect
+ import warnings
+ 
+ import tempfile
++import testtools
+ import time
+ import unittest
+ import fcntl
+@@ -1316,6 +1318,7 @@ class TestUtils(unittest.TestCase):
+             with mock.patch('swift.common.utils.os.rmdir', _m_rmdir):
+                 self.assertRaises(OSError, utils.remove_directory, dir_name)
+ 
++    @testtools.skip("Skipped by Ubuntu")
+     @with_tempdir
+     def test_is_file_older(self, tempdir):
+         ts = utils.Timestamp(time.time() - 100000)
diff -pruN 2.36.0-1/debian/patches/skip-py312-failures.patch 2.36.0-0ubuntu1/debian/patches/skip-py312-failures.patch
--- 2.36.0-1/debian/patches/skip-py312-failures.patch	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/skip-py312-failures.patch	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,53 @@
+Description: Skip tests that fail with Python >= 3.12
+    def test_disconnected_logging(self):
+         req = Request.blank('/v1/a/c/o')
+         headers = {'content-type': 'text/plain'}
+         source = FakeSource([], headers=headers, body=b'the cake is a lie')
+    
+         node = {'ip': '1.2.3.4', 'port': 6200, 'device': 'sda'}
+         handler = GetOrHeadHandler(
+             self.app, req, 'Object', Namespace(num_primary_nodes=1), None,
+             'some-path', {})
+    
+         def mock_find_source():
+             handler.source = GetterSource(self.app, source, node)
+             return True
+    
+         with mock.patch.object(handler, '_find_source',
+                                mock_find_source):
+             resp = handler.get_working_response(req)
+             resp.app_iter.close()
+ >       self.assertEqual(["Client disconnected on read of 'some-path'"],
+                           self.logger.get_lines_for_level('info'))
+ E       AssertionError: Lists differ: ["Client disconnected on read of 'some-path'"] != []
+ E       
+ E       First list contains 1 additional elements.
+ E       First extra element 0:
+ E       "Client disconnected on read of 'some-path'"
+ E       
+ E       - ["Client disconnected on read of 'some-path'"]
+ E       + []
+Author: James Page <james.page@ubuntu.com>
+Forwarded: not-needed
+
+Index: swift/test/unit/proxy/controllers/test_base.py
+===================================================================
+--- swift.orig/test/unit/proxy/controllers/test_base.py
++++ swift/test/unit/proxy/controllers/test_base.py
+@@ -18,6 +18,8 @@ from argparse import Namespace
+ import itertools
+ import json
+ from collections import defaultdict
++import sys
++import testtools
+ import unittest
+ from unittest import mock
+ 
+@@ -1693,6 +1695,7 @@ class TestGetOrHeadHandler(BaseTest):
+             app, req, 'Container', node_iter, None, None, {})
+         self.assertEqual(5, getter.node_timeout)
+ 
++    @testtools.skipIf(sys.version_info >= (3, 12), "Skipped for Python 3.12")
+     def test_disconnected_logging(self):
+         req = Request.blank('/v1/a/c/o')
+         headers = {'content-type': 'text/plain'}
diff -pruN 2.36.0-1/debian/patches/swift-recon-only-query-object-servers-once.patch 2.36.0-0ubuntu1/debian/patches/swift-recon-only-query-object-servers-once.patch
--- 2.36.0-1/debian/patches/swift-recon-only-query-object-servers-once.patch	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/swift-recon-only-query-object-servers-once.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,37 +0,0 @@
-Description: swift-recon: only query object servers once
-Author: Thomas Goirand <zigo@debian.org>
-Forwarded: no
-Last-Update: 2023-04-28
-
-Index: swift/swift/cli/recon.py
-===================================================================
---- swift.orig/swift/cli/recon.py
-+++ swift/swift/cli/recon.py
-@@ -358,6 +358,13 @@ class SwiftRecon(object):
-             if status == 200:
-                 unmounted[url] = []
-                 errors[url] = []
-+                # Hack: Ignore all hosts where the port is the object one
-+                # but the 6200. This is to ensure hosts are added only
-+                # once in case we use the "one server per port" option
-+                # of swift-object.
-+                port=int(url.split(':')[2].split('/')[0])
-+                if port > 6200 and port < 6400:
-+                    continue
-                 for i in response:
-                     if not isinstance(i['mounted'], bool):
-                         errors[url].append(i['device'])
-@@ -902,6 +909,13 @@ class SwiftRecon(object):
-                 recon.scout, filtered_hosts):
-             if status == 200:
-                 hostusage = []
-+                # Hack: Ignore all hosts where the port is the object one
-+                # but the 6200. This is to ensure hosts are added only
-+                # once in case we use the "one server per port" option
-+                # of swift-object.
-+                port=int(url.split(':')[2].split('/')[0])
-+                if port > 6200 and port < 6400:
-+                    continue
-                 for entry in response:
-                     if not isinstance(entry['mounted'], bool):
-                         print("-> %s/%s: Error: %s" % (url, entry['device'],
diff -pruN 2.36.0-1/debian/patches/syslog_log_name.patch 2.36.0-0ubuntu1/debian/patches/syslog_log_name.patch
--- 2.36.0-1/debian/patches/syslog_log_name.patch	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/syslog_log_name.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,357 +0,0 @@
-Description: Set log_name for Swift services in default configs
-Author: Ondřej Nový <novy@ondrej.org>
-Forwarded: not-needed
-Last-Update: 2016-07-05
-
-Index: swift/etc/account-server.conf-sample
-===================================================================
---- swift.orig/etc/account-server.conf-sample
-+++ swift/etc/account-server.conf-sample
-@@ -18,7 +18,7 @@ bind_port = 6202
- # max_clients = 1024
- #
- # You can specify default log routing here if you want:
--# log_name = swift
-+log_name = swift-account
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -85,7 +85,7 @@ pipeline = healthcheck recon backend_rat
- [app:account-server]
- use = egg:swift#account
- # You can override the default log routing for this app here:
--# set log_name = account-server
-+set log_name = swift-account-server
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_requests = true
-@@ -150,7 +150,7 @@ use = egg:swift#backend_ratelimit
- 
- [account-replicator]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = account-replicator
-+log_name = swift-account-replicator
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -237,7 +237,7 @@ use = egg:swift#backend_ratelimit
- 
- [account-auditor]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = account-auditor
-+log_name = swift-account-auditor
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -262,7 +262,7 @@ use = egg:swift#backend_ratelimit
- 
- [account-reaper]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = account-reaper
-+log_name = swift-account-reaper
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-Index: swift/etc/container-reconciler.conf-sample
-===================================================================
---- swift.orig/etc/container-reconciler.conf-sample
-+++ swift/etc/container-reconciler.conf-sample
-@@ -3,7 +3,7 @@
- # user = swift
- # ring_check_interval = 15.0
- # You can specify default log routing here if you want:
--# log_name = swift
-+log_name = swift-container-reconciler
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-Index: swift/etc/container-server.conf-sample
-===================================================================
---- swift.orig/etc/container-server.conf-sample
-+++ swift/etc/container-server.conf-sample
-@@ -24,7 +24,7 @@ bind_port = 6201
- # allowed_sync_hosts = 127.0.0.1
- #
- # You can specify default log routing here if you want:
--# log_name = swift
-+log_name = swift-container
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -91,7 +91,7 @@ pipeline = healthcheck recon backend_rat
- [app:container-server]
- use = egg:swift#container
- # You can override the default log routing for this app here:
--# set log_name = container-server
-+set log_name = swift-container-server
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_requests = true
-@@ -160,7 +160,7 @@ use = egg:swift#backend_ratelimit
- 
- [container-replicator]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = container-replicator
-+log_name = swift-container-replicator
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -247,7 +247,7 @@ use = egg:swift#backend_ratelimit
- 
- [container-updater]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = container-updater
-+log_name = swift-container-updater
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -283,7 +283,7 @@ use = egg:swift#backend_ratelimit
- 
- [container-auditor]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = container-auditor
-+log_name = swift-container-auditor
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -308,7 +308,7 @@ use = egg:swift#backend_ratelimit
- 
- [container-sync]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = container-sync
-+log_name = swift-container-sync
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -380,7 +380,7 @@ use = egg:swift#xprofile
- 
- [container-sharder]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = container-sharder
-+log_name = swift-container-sharder
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-Index: swift/etc/drive-audit.conf-sample
-===================================================================
---- swift.orig/etc/drive-audit.conf-sample
-+++ swift/etc/drive-audit.conf-sample
-@@ -5,7 +5,7 @@
- # device_dir = /srv/node
- #
- # You can specify default log routing here if you want:
--# log_name = drive-audit
-+log_name = swift-drive-audit
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-Index: swift/etc/internal-client.conf-sample
-===================================================================
---- swift.orig/etc/internal-client.conf-sample
-+++ swift/etc/internal-client.conf-sample
-@@ -4,7 +4,7 @@
- # You can specify default log routing here if you want:
- # Note: the 'set' syntax is necessary to override the log_name that some
- # daemons specify when instantiating an internal client.
--# set log_name = swift
-+set log_name = swift-internal-client
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-Index: swift/etc/object-server.conf-sample
-===================================================================
---- swift.orig/etc/object-server.conf-sample
-+++ swift/etc/object-server.conf-sample
-@@ -30,7 +30,7 @@ bind_port = 6200
- # max_clients = 1024
- #
- # You can specify default log routing here if you want:
--# log_name = swift
-+log_name = swift-object
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -120,7 +120,7 @@ pipeline = healthcheck recon backend_rat
- [app:object-server]
- use = egg:swift#object
- # You can override the default log routing for this app here:
--# set log_name = object-server
-+set log_name = swift-object-server
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_requests = true
-@@ -277,7 +277,7 @@ use = egg:swift#backend_ratelimit
- 
- [object-replicator]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = object-replicator
-+log_name = swift-object-replicator
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -384,7 +384,7 @@ use = egg:swift#backend_ratelimit
- # in the [object-replicator] section, however these settings apply to the EC
- # reconstructor
- #
--# log_name = object-reconstructor
-+log_name = swift-object-reconstructor
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -506,7 +506,7 @@ use = egg:swift#backend_ratelimit
- 
- [object-updater]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = object-updater
-+log_name = swift-object-updater
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -573,7 +573,7 @@ use = egg:swift#backend_ratelimit
- 
- [object-auditor]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = object-auditor
-+log_name = swift-object-auditor
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -675,7 +675,7 @@ use = egg:swift#backend_ratelimit
- # internal_client_conf_path = /etc/swift/internal-client.conf
- #
- # You can override the default log routing for this app here (don't use set!):
--# log_name = object-expirer
-+log_name = swift-object-expirer
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-@@ -776,7 +776,7 @@ use = egg:swift#xprofile
- 
- [object-relinker]
- # You can override the default log routing for this app here (don't use set!):
--# log_name = object-relinker
-+log_name = swift-object-relinker
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_address = /dev/log
-Index: swift/etc/proxy-server.conf-sample
-===================================================================
---- swift.orig/etc/proxy-server.conf-sample
-+++ swift/etc/proxy-server.conf-sample
-@@ -39,7 +39,7 @@ bind_port = 8080
- #
- #
- # You can specify default log routing here if you want:
--# log_name = swift
-+log_name = swift-proxy
- # log_facility = LOG_LOCAL0
- # log_level = INFO
- # log_headers = false
-@@ -120,7 +120,7 @@ pipeline = catch_errors gatekeeper healt
- [app:proxy-server]
- use = egg:swift#proxy
- # You can override the default log routing for this app here:
--# set log_name = proxy-server
-+set log_name = swift-proxy-server
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_address = /dev/log
-@@ -372,7 +372,7 @@ use = egg:swift#proxy
- [filter:tempauth]
- use = egg:swift#tempauth
- # You can override the default log routing for this filter here:
--# set log_name = tempauth
-+set log_name = swift-proxy-tempauth
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
-@@ -680,7 +680,7 @@ use = egg:swift#s3api
- # ratelimit_as_client_error = false
- 
- # You can override the default log routing for this filter here:
--# log_name = s3api
-+log_name = swift-s3api
- 
- [filter:s3token]
- # s3token middleware authenticates with keystone using the s3 credentials
-@@ -720,7 +720,7 @@ http_timeout = 10.0
- # keyfile =
- 
- # You can override the default log routing for this filter here:
--# log_name = s3token
-+log_name = swift-s3token
- 
- # Secrets may be cached to reduce latency for the client and load on Keystone.
- # Set this to some number of seconds greater than zero to enable caching.
-@@ -748,7 +748,7 @@ use = egg:swift#healthcheck
- [filter:cache]
- use = egg:swift#memcache
- # You can override the default log routing for this filter here:
--# set log_name = cache
-+set log_name = swift-proxy-cache
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
-@@ -781,7 +781,7 @@ use = egg:swift#memcache
- [filter:ratelimit]
- use = egg:swift#ratelimit
- # You can override the default log routing for this filter here:
--# set log_name = ratelimit
-+set log_name = swift-proxy-ratelimit
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
-@@ -838,7 +838,7 @@ use = egg:swift#read_only
- [filter:domain_remap]
- use = egg:swift#domain_remap
- # You can override the default log routing for this filter here:
--# set log_name = domain_remap
-+set log_name = swift-proxy-domain_remap
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
-@@ -873,7 +873,7 @@ use = egg:swift#domain_remap
- [filter:catch_errors]
- use = egg:swift#catch_errors
- # You can override the default log routing for this filter here:
--# set log_name = catch_errors
-+set log_name = swift-proxy-catch_errors
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
-@@ -883,7 +883,7 @@ use = egg:swift#catch_errors
- # Note: this middleware requires python-dnspython
- use = egg:swift#cname_lookup
- # You can override the default log routing for this filter here:
--# set log_name = cname_lookup
-+set log_name = swift-proxy-cname_lookup
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
-@@ -905,7 +905,7 @@ use = egg:swift#cname_lookup
- [filter:staticweb]
- use = egg:swift#staticweb
- # You can override the default log routing for this filter here:
--# set log_name = staticweb
-+set log_name = swift-proxy-staticweb
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
-@@ -992,7 +992,7 @@ use = egg:swift#list_endpoints
- [filter:proxy-logging]
- use = egg:swift#proxy_logging
- # If not set, logging directives from [DEFAULT] without "access_" will be used
--# access_log_name = swift
-+access_log_name = swift-proxy-proxy-logging
- # access_log_facility = LOG_LOCAL0
- # access_log_level = INFO
- # access_log_address = /dev/log
-@@ -1154,7 +1154,7 @@ use = egg:swift#gatekeeper
- # allow_reserved_names_header = false
- #
- # You can override the default log routing for this filter here:
--# set log_name = gatekeeper
-+set log_name = swift-proxy-gatekeeper
- # set log_facility = LOG_LOCAL0
- # set log_level = INFO
- # set log_headers = false
diff -pruN 2.36.0-1/debian/patches/tests-proxy-logging-avoid-dns.patch 2.36.0-0ubuntu1/debian/patches/tests-proxy-logging-avoid-dns.patch
--- 2.36.0-1/debian/patches/tests-proxy-logging-avoid-dns.patch	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/patches/tests-proxy-logging-avoid-dns.patch	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,46 @@
+Description: avoid DNS in proxy logging tests for hermetic environment
+ Two proxy-logging tests construct a SysLogHandler that resolves hostnames
+ during __init__, which triggers DNS lookups. In network-restricted builders
+ (e.g. Launchpad CI) this fails with socket.gaierror. The tests only verify
+ config precedence and handler/statsd attributes, so we stub createSocket()
+ to avoid touching the network.
+Bug-Ubuntu: https://bugs.launchpad.net/swift/+bug/2121260
+Author: Myles Penner <myles.penner@canonical.com>
+Forwarded: no
+Last-Update: 2025-08-15
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: swift/test/unit/common/middleware/test_proxy_logging.py
+===================================================================
+--- swift.orig/test/unit/common/middleware/test_proxy_logging.py
++++ swift/test/unit/common/middleware/test_proxy_logging.py
+@@ -23,6 +23,7 @@ from logging.handlers import SysLogHandl
+ from urllib.parse import unquote
+ 
+ from swift.common.utils import get_swift_logger, split_path
++from swift.common.utils import logs as swift_logs
+ from swift.common.middleware import proxy_logging
+ from swift.common.registry import register_sensitive_header, \
+     register_sensitive_param, get_sensitive_headers
+@@ -247,8 +248,8 @@ class TestProxyLogging(unittest.TestCase
+             'log_statsd_sample_rate_factor': .04,
+             'log_statsd_metric_prefix': 'foo',
+         }
+-        with mock.patch('swift.common.statsd_client.StatsdClient',
+-                        FakeStatsdClient):
++        with mock.patch('swift.common.statsd_client.StatsdClient', FakeStatsdClient), \
++             mock.patch.object(swift_logs.ThreadSafeSysLogHandler, 'createSocket', return_value=None):
+             app = proxy_logging.ProxyLoggingMiddleware(FakeApp(), conf)
+ 
+         self.assertFalse(app.log_hdrs)
+@@ -300,8 +301,8 @@ class TestProxyLogging(unittest.TestCase
+             'log_statsd_sample_rate_factor': .04,
+             'log_statsd_metric_prefix': 'foo',
+         }
+-        with mock.patch('swift.common.statsd_client.StatsdClient',
+-                        FakeStatsdClient):
++        with mock.patch('swift.common.statsd_client.StatsdClient', FakeStatsdClient), \
++             mock.patch.object(swift_logs.ThreadSafeSysLogHandler, 'createSocket', return_value=None):
+             app = proxy_logging.ProxyLoggingMiddleware(FakeApp(), conf)
+ 
+         self.assertTrue(app.log_hdrs)
diff -pruN 2.36.0-1/debian/pybuild.testfiles 2.36.0-0ubuntu1/debian/pybuild.testfiles
--- 2.36.0-1/debian/pybuild.testfiles	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/pybuild.testfiles	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-etc
-test
-swift.egg-info
diff -pruN 2.36.0-1/debian/python3-swift.dirs 2.36.0-0ubuntu1/debian/python3-swift.dirs
--- 2.36.0-1/debian/python3-swift.dirs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.dirs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1 @@
+var/cache/swift
diff -pruN 2.36.0-1/debian/python3-swift.docs 2.36.0-0ubuntu1/debian/python3-swift.docs
--- 2.36.0-1/debian/python3-swift.docs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.docs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 2.36.0-1/debian/python3-swift.install 2.36.0-0ubuntu1/debian/python3-swift.install
--- 2.36.0-1/debian/python3-swift.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.install	2025-09-22 18:00:06.000000000 +0000
@@ -1 +1,3 @@
-usr/lib/python3*/dist-packages/*
+usr/bin/swift-drive-audit
+usr/bin/swift-init
+usr/lib/python*/dist-packages/*
diff -pruN 2.36.0-1/debian/python3-swift.lintian-overrides 2.36.0-0ubuntu1/debian/python3-swift.lintian-overrides
--- 2.36.0-1/debian/python3-swift.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-python3-swift binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/python3-swift.manpages 2.36.0-0ubuntu1/debian/python3-swift.manpages
--- 2.36.0-1/debian/python3-swift.manpages	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.manpages	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1 @@
+doc/manpages/swift-init.1
diff -pruN 2.36.0-1/debian/python3-swift.postinst 2.36.0-0ubuntu1/debian/python3-swift.postinst
--- 2.36.0-1/debian/python3-swift.postinst	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.postinst	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,22 @@
+#!/bin/sh -e
+
+#DEBHELPER#
+
+if ! getent passwd swift > /dev/null ; then
+  adduser --system --quiet --disabled-login --home /var/lib/swift \
+        --disabled-password --no-create-home --group \
+        --shell /usr/sbin/nologin swift
+fi
+
+usermod -G adm swift
+
+find /etc/swift -exec chown root:swift "{}" +
+find /etc/swift -type f -exec chmod 0640 "{}" + -o -type d -exec chmod 0750 "{}" +
+
+if [ -d /var/cache/swift ] ; then
+  # Allow swift user to write to cache directory
+  chown root:swift /var/cache/swift
+  chmod 0775 /var/cache/swift
+fi
+
+exit 0
diff -pruN 2.36.0-1/debian/python3-swift.postinst.in 2.36.0-0ubuntu1/debian/python3-swift.postinst.in
--- 2.36.0-1/debian/python3-swift.postinst.in	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.postinst.in	1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-set -e
-
-#PKGOS-INCLUDE#
-
-if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ] ; then
-	pkgos_var_user_group swift
-
-	mkdir -p /var/backups/swift
-	chown swift:swift /var/backups/swift
-	chmod 2770 /var/backups/swift
-fi
-
-#DEBHELPER#
-
-exit 0
diff -pruN 2.36.0-1/debian/python3-swift.postrm 2.36.0-0ubuntu1/debian/python3-swift.postrm
--- 2.36.0-1/debian/python3-swift.postrm	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/python3-swift.postrm	2025-09-22 18:00:06.000000000 +0000
@@ -2,13 +2,20 @@
 
 set -e
 
-if [ "${1}" = "purge" ] ; then
-	for i in lock log run lib cache backups ; do
-		rm -rf /var/$i/swift
-	done
-	rm -rf /etc/swift
-fi
+case "$1" in
+    purge)
+        # Remove swift user if possible
+        userdel swift || true
+    ;;
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
 
 #DEBHELPER#
 
 exit 0
+
diff -pruN 2.36.0-1/debian/rules 2.36.0-0ubuntu1/debian/rules
--- 2.36.0-1/debian/rules	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/rules	2025-09-22 18:00:06.000000000 +0000
@@ -1,69 +1,58 @@
 #!/usr/bin/make -f
 
-include /usr/share/openstack-pkg-tools/pkgos.make
+# Verbose mode
+#export DH_VERBOSE=1
 
-export SWIFT_TEST_CONFIG_FILE=$(CURDIR)/debian/swift-test.conf
+export PYBUILD_NAME=swift
+
+export PYBUILD_TEST_ARGS=--verbose -p no:requests_mock test/unit
+export PYBUILD_BEFORE_TEST=cp -r {dir}/etc {build_dir}
+export PYBUILD_AFTER_TEST=rm -rf {build_dir}/etc
+
+SHELL := /bin/sh -e
+
+DEBVERS ?= $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
+VERSION ?= $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[-].*//' -e 's/[+].*//' -e 's/~git.*//g' -e 's/~/./g')
+export PBR_VERSION=$(VERSION)
 
 %:
-	dh $@ --buildsystem=pybuild --with python3,sphinxdoc
+	dh $@ --with python3,sphinxdoc --buildsystem=pybuild
 
-# Control if proxy + account + container server should be using UWSGI or not
-export DEB_USE_UWSGI=no
+# clean sphinx build output
+override_dh_clean:
+	dh_clean
+	rm -rf doc/build
 
 override_dh_auto_test:
-	echo "Do nothing..."
+	PATH=$(CURDIR)/bin:$(PATH) PYTHONPATH=$(CURDIR) dh_auto_test
+
+# build with sphinx documentation
+ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
+override_dh_sphinxdoc:
+	PYTHONPATH=. sphinx-build -b html doc/source $(CURDIR)/debian/swift-doc/usr/share/doc/swift-doc/html
+	dh_sphinxdoc
+endif
 
-override_dh_auto_clean:
-	rm -rf build .stestr *.egg-info .pybuild
-	find . -iname '*.pyc' -delete
-	for i in $$(find . -type d -iname __pycache__) ; do rm -rf $$i ; done
+get-orig-source:
+	uscan --verbose --force-download --rename --destdir=../build-area
 
 override_dh_auto_build:
 	dh_auto_build
-
-	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func python3-swift.postinst
-
 	set -e ; set -x ; \
-	for i in	debian/swift-account.swift-account-auditor.init.in \
-			debian/swift-account.swift-account-reaper.init.in \
-			debian/swift-account.swift-account-replicator.init.in \
-			debian/swift-container.swift-container-auditor.init.in \
-			debian/swift-container.swift-container-reconciler.init.in \
-			debian/swift-container.swift-container-replicator.init.in \
-			debian/swift-container.swift-container-sharder.init.in \
-			debian/swift-container.swift-container-sync.init.in \
-			debian/swift-container.swift-container-updater.init.in \
-			debian/swift-object-expirer.swift-object-expirer.init.in \
-			debian/swift-object.swift-object-auditor.init.in \
-			debian/swift-object.swift-object.init.in \
-			debian/swift-object.swift-object-reconstructor.init.in \
-			debian/swift-object.swift-object-replicator.init.in \
-			debian/swift-object.swift-object-updater.init.in \
-			; do \
+	for i in $(sort $(wildcard debian/*.init.in)) ; do \
 		debian/gen-init $$i ; \
 	done
 
-	set -e ; set -x ; \
-	for i in	debian/swift-proxy.swift-proxy.init \
-			debian/swift-account.swift-account.init \
-			debian/swift-container.swift-container.init \
-			; do \
-		if [ $$DEB_USE_UWSGI = "yes" ] ; then \
-			cp $$i.in $$i ; \
-			cat /usr/share/openstack-pkg-tools/init-script-template >>$$i ; \
-			pkgos-gen-systemd-unit $$i.in ; \
-		else \
-			CONFIG=`echo $$i | cut -d/ -f2 | cut -d. -f1 | sed -e s/swift-//`-server debian/gen-init $$i.in ; \
-		fi ; \
-	done
-
 override_dh_auto_install:
 	pkgos-dh_auto_install --no-py2 --in-tmp
-	rm debian/tmp/usr/bin/swift-init
-# https://review.opendev.org/c/openstack/swift/+/904601
-ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
-	pkgos-dh_auto_test --no-py2 --test-path test/unit 'test\.unit\.(?!common\.test_utils\.TestUtils\.test_get_logger_sysloghandler_plumbing|common\.middleware\.test_cname_lookup\.TestCNAMELookup.*|common\.test_db\.TestDatabaseBroker\.test_get.*|container\.test_sync\.TestContainerSync\.test_init.*|common\.test_utils\.TestPunchHoleReally\.test_punch_a_hole.*|common\.test_utils\.Test_LibcWrapper\.test_argument_plumbing.*|common\.test_utils\.TestUtils\.test_load_pkg_resource_importlib.*|common\.test_db_replicator\.TestHandoffsOnly.*|common\.ring\.test_builder\.TestGetRequiredOverload\.test_perfect_four_zone_four_replica_bad_placement|common\.test_wsgi\.TestWSGI.*|obj\.test_expirer\.TestObjectExpirer\.test_delete_actual_object|common\.test_memcached\.TestMemcached\.test_get_conns_hostname6|common\.test_memcached\.TestMemcached\.test_get_conns_v6|common\.test_memcached\.TestMemcached\.test_get_conns_v6_default|obj\.test_reconstructor\.TestWorkerReconstructor\.test_run_forever_recon_aggregation|proxy\.controllers\.test_obj\.TestECObjController\.test_GET_with_duplicate_but_sufficient_frag_indexes|proxy\.test_mem_server\.TestProxyServer\.test_statsd_prefix|proxy\.controllers\.test_obj\.TestECObjController\.test_GET_read_timeout|proxy\.controllers\.test_base\.TestGetOrHeadHandler\.test_disconnected_logging|obj\.test_expirer\.TestObjectExpirer\.test_failed_delete_continues_on|obj\.test_replicator\.TestObjectReplicator\.test_update|obj\.test_ssync_receiver\.TestReceiver\.test_UPDATES_timeout|obj\.test_ssync_receiver\.TestReceiver\.test_UPDATES_no_problems_no_hard_disconnect|common\.test_memcached\.TestMemcached\.test_operations_timing_stats_with_incr_timeout|obj\.test_expirer\.TestExpirerHelpers\.test_embed_expirer_bytes_from_diskfile_metadata|common\.middleware\.test_proxy_logging\.TestProxyLogging\.test_init_statsd_options_access_log_prefix|common\.middleware\.test_proxy_logging\.TestProxyLogging\.test_init_statsd_options_log_prefix|common\.test_wsgi\.TestServersPerPortStrategy\.test_stale_pid_loading|common\.test_wsgi\.TestWorkersStrategy\.test_stale_pid_loading|common\.utils\.test_logs\.TestUtilsLogs\.test_LoggerFileObject_recursion|container\.test_server\.TestNonLegacyDefaultStoragePolicy\.test_PUT_account_update|common\.middleware\.s3api\.test_s3request\.TestRequest\.test_sig_v4_strm_unsgnd_pyld_trl_checksum_hdr_unsupported|common\.middleware\.s3api\.test_s3request\.TestModuleFunctions\.test_get_checksum_hasher)'
-endif
+
+override_dh_install:
+	dh_install --sourcedir=debian/tmp -Xdebian/swift-account-generator -Xdebian/swift-object-generator -Xdebian/swift-container-generator
+	dh_missing --fail-missing
+	install -D -m 0640 $(CURDIR)/debian/account-server.conf $(CURDIR)/debian/python3-swift/etc/swift/account-server.conf
+	install -D -m 0640 $(CURDIR)/debian/container-server.conf $(CURDIR)/debian/python3-swift/etc/swift/container-server.conf
+	install -D -m 0640 $(CURDIR)/debian/object-server.conf $(CURDIR)/debian/python3-swift/etc/swift/object-server.conf
+	install -D -m 0640 $(CURDIR)/debian/object-expirer.conf $(CURDIR)/debian/python3-swift/etc/swift/object-expirer.conf
 
 override_dh_installinit:
 	set -e ; set -x ; \
@@ -81,24 +70,5 @@ override_dh_installsystemd:
 		dh_installsystemd -p$$PKG --name=$$NAME ;\
 	done
 
-gen-init-configurations:
-	echo "Do nothing"
-
-# build with sphinx documentation
-override_dh_sphinxdoc:
-ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
-	LC_ALL=C.UTF-8 PYTHONPATH=. python3 -m sphinx doc/source $(CURDIR)/debian/swift-doc/usr/share/doc/swift-doc/base
-	LC_ALL=C.UTF-8 PYTHONPATH=. python3 -m sphinx api-ref/source $(CURDIR)/debian/swift-doc/usr/share/doc/swift-doc/api-ref
-	dh_sphinxdoc
-endif
-
-override_dh_installdocs:
-	dh_installdocs
-
-	dh_installdocs -A AUTHORS
-
-override_dh_missing:
-	dh_missing --fail-missing
-
-override_dh_python3:
-	dh_python3 --shebang=/usr/bin/python3
+override_dh_compress:
+	dh_compress -Xconf-sample
diff -pruN 2.36.0-1/debian/salsa-ci.yml 2.36.0-0ubuntu1/debian/salsa-ci.yml
--- 2.36.0-1/debian/salsa-ci.yml	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/salsa-ci.yml	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-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
diff -pruN 2.36.0-1/debian/source/include-binaries 2.36.0-0ubuntu1/debian/source/include-binaries
--- 2.36.0-1/debian/source/include-binaries	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/source/include-binaries	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1 @@
+doc/source/howto_cyberduck_config.png
diff -pruN 2.36.0-1/debian/source/options 2.36.0-0ubuntu1/debian/source/options
--- 2.36.0-1/debian/source/options	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/source/options	2025-09-22 18:00:06.000000000 +0000
@@ -1,2 +1,4 @@
 extend-diff-ignore = "^[^/]*[.]egg-info/"
 extend-diff-ignore = "^[.]gitreview$"
+extend-diff-ignore = "^[.]launchpad.yaml$"
+extend-diff-ignore = "^.launchpad.yaml"
diff -pruN 2.36.0-1/debian/swift-account-server-uwsgi.ini 2.36.0-0ubuntu1/debian/swift-account-server-uwsgi.ini
--- 2.36.0-1/debian/swift-account-server-uwsgi.ini	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-account-server-uwsgi.ini	1970-01-01 00:00:00.000000000 +0000
@@ -1,79 +0,0 @@
-[uwsgi]
-############################
-### Generic UWSGI config ###
-############################
-
-# Override the default size for headers from the 4k default.
-buffer-size = 65535
-
-# This avoids error 104: "Connection reset by peer"
-# This looks like breaking swift:
-#rem-header = Content-Length
-
-# This is running standalone
-master = true
-
-# Threads and processes
-enable-threads = true
-
-# uwsgi recommends this to prevent thundering herd on accept.
-thunder-lock = true
-
-plugins = python3
-
-# This ensures that file descriptors aren't shared between the WSGI application processes.
-lazy-apps = true
-
-# Log from the wsgi application: needs python3-pastescript as runtime depends.
-paste-logger = true
-
-# automatically kill workers if master dies
-no-orphans = true
-
-# exit instead of brutal reload on SIGTERM
-die-on-term = true
-
-##################################
-### OpenStack service specific ###
-##################################
-
-# We ran benches to validate these values, and they seem ok:
-threads = 1
-listen = 100
-
-# These are used in the gate.
-# The http-auto-chunked / http-chunked-input
-# are mandatory, specific to Glance, and are
-# the reasons why Glance doesn't work on Apache
-socket-timeout = 10
-http-auto-chunked = true
-http-chunked-input = true
-http-raw-body = true
-chmod-socket = 666
-lazy-apps = true
-add-header = Connection: close
-enable-threads = true
-exit-on-reload = true
-die-on-term = true
-wsgi-manage-chunked-input = true
-
-# This is the standard port for the WSGI application, listening on all available IPs
-logto = /var/log/swift/swift-account.log
-name = swift-account-server
-uid = swift
-gid = swift
-chdir = /var/lib/swift
-wsgi-file = /usr/bin/swift-account-server-uwsgi
-
-# This is controled by the init script using the --http-socket
-# or using the --https thing. https will be activated if a file
-# /etc/swift/ssl/private/*.pem is found. In both case, port 9292
-# on all IPs will be used.
-# The partern to search for the private key file is:
-# find /etc/swift/ssl/private -type f -iname '*.pem' | head -n 1
-# and for the certificate:
-# find /etc/swift/ssl/private -type f -iname '*.crt' | head -n 1
-# just drop files there and restart the daemon, and you'll have
-# SSL up and running.
-#http-socket = :6002
-#https 0.0.0.0:6002,foobar.crt,foobar.key
diff -pruN 2.36.0-1/debian/swift-account.docs 2.36.0-0ubuntu1/debian/swift-account.docs
--- 2.36.0-1/debian/swift-account.docs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-account.docs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1 @@
+etc/account-server.conf-sample
diff -pruN 2.36.0-1/debian/swift-account.install 2.36.0-0ubuntu1/debian/swift-account.install
--- 2.36.0-1/debian/swift-account.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-account.install	2025-09-22 18:00:06.000000000 +0000
@@ -1,12 +1,7 @@
-#! /usr/bin/dh-exec --with=install
-debian/swift-account-generator /usr/lib/systemd/system-generators
-etc/account-server.conf-sample => /etc/swift/account-server.conf
-etc/account-server.conf-sample => /usr/share/doc/swift-account/examples/account-server.conf
+debian/swift-account-generator /lib/systemd/system-generators
 usr/bin/swift-account-audit
 usr/bin/swift-account-auditor
 usr/bin/swift-account-info
 usr/bin/swift-account-reaper
 usr/bin/swift-account-replicator
 usr/bin/swift-account-server
-debian/swift-account-server-uwsgi.ini	/etc/swift
-debian/bin/swift-account-server-uwsgi	/usr/bin
diff -pruN 2.36.0-1/debian/swift-account.links 2.36.0-0ubuntu1/debian/swift-account.links
--- 2.36.0-1/debian/swift-account.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-account.links	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-usr/share/doc/swift-account/examples/account-server.conf usr/share/doc/swift/examples/account-server.conf
diff -pruN 2.36.0-1/debian/swift-account.lintian-overrides 2.36.0-0ubuntu1/debian/swift-account.lintian-overrides
--- 2.36.0-1/debian/swift-account.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-account.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift-account binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift-account.manpages 2.36.0-0ubuntu1/debian/swift-account.manpages
--- 2.36.0-1/debian/swift-account.manpages	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-account.manpages	2025-09-22 18:00:06.000000000 +0000
@@ -1,7 +1,2 @@
-doc/manpages/account-server.conf.5
-doc/manpages/swift-account-audit.1
-doc/manpages/swift-account-auditor.1
-doc/manpages/swift-account-info.1
-doc/manpages/swift-account-reaper.1
-doc/manpages/swift-account-replicator.1
-doc/manpages/swift-account-server.1
+doc/manpages/account*
+doc/manpages/swift-account*
diff -pruN 2.36.0-1/debian/swift-account.swift-account.init.in 2.36.0-0ubuntu1/debian/swift-account.swift-account.init.in
--- 2.36.0-1/debian/swift-account.swift-account.init.in	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-account.swift-account.init.in	2025-09-22 18:00:06.000000000 +0000
@@ -1,25 +1,17 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          swift-account
-# Required-Start:    $remote_fs $network
-# Required-Stop:     $remote_fs $network
+# Required-Start:    $remote_fs
+# Required-Stop:     $remote_fs
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Swift account server
 # Description:       Account server for Swift.
 ### END INIT INFO
 
-DESC="OpenStack Swift account server (swift-account)"
 PROJECT_NAME=swift
 NAME="${PROJECT_NAME}-account-server"
-CONFIG_FILE=/etc/${PROJECT_NAME}/account-server.conf
-UWSGI_PORT=6002
-UWSGI_INI_PATH=/etc/swift/swift-account-server-uwsgi.ini
-UWSGI_INI_APP=/usr/bin/swift-account-server-uwsgi
-UWSGI_BIND_CONFIG_FILE=/etc/${PROJECT_NAME}/account-server.conf
-UWSGI_BIND_CONFIG_SECTION=DEFAULT
-UWSGI_BIND_CONFIG_IP_DIRECTIVE=bind_ip
-UWSGI_BIND_CONFIG_PORT_DIRECTIVE=bind_port
-UWSGI_BIND_CONFIG_WORKERS_DIRECTIVE=workers
-CUSTOM_SYSTEMD_UNIT="ConditionFileNotEmpty=/etc/swift/account-server.conf
-AssertFileNotEmpty=/etc/swift/account.ring.gz"
+DESC="OpenStack Swift account server"
+CONFIG=account-server
+MULTI=1
+SYSTEMD_DOC="man:${NAME}(1)"
diff -pruN 2.36.0-1/debian/swift-container-server-uwsgi.ini 2.36.0-0ubuntu1/debian/swift-container-server-uwsgi.ini
--- 2.36.0-1/debian/swift-container-server-uwsgi.ini	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-container-server-uwsgi.ini	1970-01-01 00:00:00.000000000 +0000
@@ -1,79 +0,0 @@
-[uwsgi]
-############################
-### Generic UWSGI config ###
-############################
-
-# Override the default size for headers from the 4k default.
-buffer-size = 65535
-
-# This avoids error 104: "Connection reset by peer"
-# This looks like breaking swift:
-#rem-header = Content-Length
-
-# This is running standalone
-master = true
-
-# Threads and processes
-enable-threads = true
-
-# uwsgi recommends this to prevent thundering herd on accept.
-thunder-lock = true
-
-plugins = python3
-
-# This ensures that file descriptors aren't shared between the WSGI application processes.
-lazy-apps = true
-
-# Log from the wsgi application: needs python3-pastescript as runtime depends.
-paste-logger = true
-
-# automatically kill workers if master dies
-no-orphans = true
-
-# exit instead of brutal reload on SIGTERM
-die-on-term = true
-
-##################################
-### OpenStack service specific ###
-##################################
-
-# We ran benches to validate these values, and they seem ok:
-threads = 1
-listen = 100
-
-# These are used in the gate.
-# The http-auto-chunked / http-chunked-input
-# are mandatory, specific to Glance, and are
-# the reasons why Glance doesn't work on Apache
-socket-timeout = 10
-http-auto-chunked = true
-http-chunked-input = true
-http-raw-body = true
-chmod-socket = 666
-lazy-apps = true
-add-header = Connection: close
-enable-threads = true
-exit-on-reload = true
-die-on-term = true
-wsgi-manage-chunked-input = true
-
-# This is the standard port for the WSGI application, listening on all available IPs
-logto = /var/log/swift/swift-container.log
-name = swift-container-server
-uid = swift
-gid = swift
-chdir = /var/lib/swift
-wsgi-file = /usr/bin/swift-container-server-uwsgi
-
-# This is controled by the init script using the --http-socket
-# or using the --https thing. https will be activated if a file
-# /etc/swift/ssl/private/*.pem is found. In both case, port 9292
-# on all IPs will be used.
-# The partern to search for the private key file is:
-# find /etc/swift/ssl/private -type f -iname '*.pem' | head -n 1
-# and for the certificate:
-# find /etc/swift/ssl/private -type f -iname '*.crt' | head -n 1
-# just drop files there and restart the daemon, and you'll have
-# SSL up and running.
-#http-socket = :6001
-#https 0.0.0.0:6001,foobar.crt,foobar.key
diff -pruN 2.36.0-1/debian/swift-container.docs 2.36.0-0ubuntu1/debian/swift-container.docs
--- 2.36.0-1/debian/swift-container.docs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-container.docs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,2 @@
+etc/container-server.conf-sample
+etc/container-sync-realms.conf-sample
diff -pruN 2.36.0-1/debian/swift-container.install 2.36.0-0ubuntu1/debian/swift-container.install
--- 2.36.0-1/debian/swift-container.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-container.install	2025-09-22 18:00:06.000000000 +0000
@@ -1,20 +1,4 @@
-#! /usr/bin/dh-exec --with=install
-etc/container-reconciler.conf-sample => /etc/swift/container-reconciler.conf
-etc/container-reconciler.conf-sample => /usr/share/doc/swift-container/examples/container-reconciler.conf
-etc/container-server.conf-sample => /etc/swift/container-server.conf
-etc/container-server.conf-sample => /usr/share/doc/swift-container/examples/container-server.conf
-etc/internal-client.conf-sample => /etc/swift/internal-client.conf
-etc/internal-client.conf-sample => /usr/share/doc/swift-container/examples/internal-client.conf
-debian/swift-container-generator /usr/lib/systemd/system-generators
-usr/bin/swift-container-auditor
-usr/bin/swift-container-info
-usr/bin/swift-container-reconciler
-usr/bin/swift-container-replicator
-usr/bin/swift-container-server
-usr/bin/swift-container-sharder
-usr/bin/swift-container-sync
-usr/bin/swift-container-updater
+debian/swift-container-generator /lib/systemd/system-generators
+usr/bin/swift-container-*
 usr/bin/swift-manage-shard-ranges
 usr/bin/swift-reconciler-enqueue
-debian/swift-container-server-uwsgi.ini /etc/swift
-debian/bin/swift-container-server-uwsgi	/usr/bin
diff -pruN 2.36.0-1/debian/swift-container.links 2.36.0-0ubuntu1/debian/swift-container.links
--- 2.36.0-1/debian/swift-container.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-container.links	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-usr/share/doc/swift-container/examples/container-reconciler.conf usr/share/doc/swift/examples/container-reconciler.conf
-usr/share/doc/swift-container/examples/container-server.conf usr/share/doc/swift/examples/container-server.conf
-usr/share/doc/swift-container/examples/internal-client.conf usr/share/doc/swift/examples/internal-client.conf
diff -pruN 2.36.0-1/debian/swift-container.lintian-overrides 2.36.0-0ubuntu1/debian/swift-container.lintian-overrides
--- 2.36.0-1/debian/swift-container.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-container.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift-container binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift-container.manpages 2.36.0-0ubuntu1/debian/swift-container.manpages
--- 2.36.0-1/debian/swift-container.manpages	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-container.manpages	2025-09-22 18:00:06.000000000 +0000
@@ -1,9 +1,2 @@
-doc/manpages/container-server.conf.5
-doc/manpages/swift-container-auditor.1
-doc/manpages/swift-container-info.1
-doc/manpages/swift-container-reconciler.1
-doc/manpages/swift-container-replicator.1
-doc/manpages/swift-container-server.1
-doc/manpages/swift-container-sync.1
-doc/manpages/swift-container-updater.1
-doc/manpages/swift-reconciler-enqueue.1
+doc/manpages/container*
+doc/manpages/swift-container*
diff -pruN 2.36.0-1/debian/swift-container.swift-container.init.in 2.36.0-0ubuntu1/debian/swift-container.swift-container.init.in
--- 2.36.0-1/debian/swift-container.swift-container.init.in	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-container.swift-container.init.in	2025-09-22 18:00:06.000000000 +0000
@@ -1,25 +1,17 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          swift-container
-# Required-Start:    $remote_fs $network
-# Required-Stop:     $remote_fs $network
+# Required-Start:    $remote_fs
+# Required-Stop:     $remote_fs
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Swift container server
 # Description:       Container server for Swift.
 ### END INIT INFO
 
-DESC="OpenStack Swift container server (swift-container)"
 PROJECT_NAME=swift
 NAME="${PROJECT_NAME}-container-server"
-CONFIG_FILE=/etc/${PROJECT_NAME}/container-server.conf
-UWSGI_PORT=6001
-UWSGI_INI_PATH=/etc/swift/swift-container-server-uwsgi.ini
-UWSGI_INI_APP=/usr/bin/swift-container-server-uwsgi
-UWSGI_BIND_CONFIG_FILE=/etc/${PROJECT_NAME}/container-server.conf
-UWSGI_BIND_CONFIG_SECTION=DEFAULT
-UWSGI_BIND_CONFIG_IP_DIRECTIVE=bind_ip
-UWSGI_BIND_CONFIG_PORT_DIRECTIVE=bind_port
-UWSGI_BIND_CONFIG_WORKERS_DIRECTIVE=workers
-CUSTOM_SYSTEMD_UNIT="ConditionFileNotEmpty=/etc/swift/container-server.conf
-AssertFileNotEmpty=/etc/swift/container.ring.gz"
+DESC="OpenStack Swift container server"
+CONFIG=container-server
+MULTI=1
+SYSTEMD_DOC="man:${NAME}(1)"
diff -pruN 2.36.0-1/debian/swift-doc.doc-base 2.36.0-0ubuntu1/debian/swift-doc.doc-base
--- 2.36.0-1/debian/swift-doc.doc-base	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-doc.doc-base	2025-09-22 18:00:06.000000000 +0000
@@ -5,5 +5,5 @@ Abstract: Sphinx documentation for Swift
 Section: Network/File Transfer
 
 Format: HTML
-Index: /usr/share/doc/swift-doc/base/index.html
-Files: /usr/share/doc/swift-doc/base/*
+Index: /usr/share/doc/swift-doc/html/index.html
+Files: /usr/share/doc/swift-doc/html/*
diff -pruN 2.36.0-1/debian/swift-doc.links 2.36.0-0ubuntu1/debian/swift-doc.links
--- 2.36.0-1/debian/swift-doc.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-doc.links	2025-09-22 18:00:06.000000000 +0000
@@ -1,7 +1,3 @@
-usr/share/doc/swift-doc/api-ref usr/share/doc/swift/api-ref
-usr/share/doc/swift-doc/base usr/share/doc/swift/base
-usr/share/doc/swift-doc/install-guide usr/share/doc/swift/install-guide
-usr/share/javascript/bootstrap/css/bootstrap.min.css usr/share/doc/swift-doc/install-guide/_static/css/bootstrap.min.css
-usr/share/javascript/bootstrap/js/bootstrap.min.js usr/share/doc/swift-doc/install-guide/_static/js/bootstrap.min.js
-usr/share/javascript/jquery/jquery.min.js usr/share/doc/swift-doc/install-guide/_static/jquery.js
-usr/share/javascript/underscore/underscore.min.js usr/share/doc/swift-doc/install-guide/_static/underscore.js
+# Overwrite jquery.js  from upstream tarball with a  link to jquery.js
+# provided by jQuery Debian package
+/usr/share/javascript/jquery/jquery.js usr/share/doc/swift-doc/html/_static/jquery.js
diff -pruN 2.36.0-1/debian/swift-doc.lintian-overrides 2.36.0-0ubuntu1/debian/swift-doc.lintian-overrides
--- 2.36.0-1/debian/swift-doc.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-doc.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift-doc binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift-drive-audit.cron.d 2.36.0-0ubuntu1/debian/swift-drive-audit.cron.d
--- 2.36.0-1/debian/swift-drive-audit.cron.d	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-drive-audit.cron.d	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-*/5 * * * *     root   test -x /usr/bin/swift-drive-audit && test -r /etc/swift/drive-audit.conf && /usr/bin/swift-drive-audit /etc/swift/drive-audit.conf
diff -pruN 2.36.0-1/debian/swift-drive-audit.install 2.36.0-0ubuntu1/debian/swift-drive-audit.install
--- 2.36.0-1/debian/swift-drive-audit.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-drive-audit.install	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-#! /usr/bin/dh-exec --with=install
-etc/drive-audit.conf-sample => /etc/swift/drive-audit.conf
-etc/drive-audit.conf-sample => /usr/share/doc/swift-drive-audit/examples/drive-audit.conf
-usr/bin/swift-drive-audit
diff -pruN 2.36.0-1/debian/swift-drive-audit.links 2.36.0-0ubuntu1/debian/swift-drive-audit.links
--- 2.36.0-1/debian/swift-drive-audit.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-drive-audit.links	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-usr/share/doc/swift-drive-audit/examples/drive-audit.conf usr/share/doc/swift/examples/drive-audit.conf
diff -pruN 2.36.0-1/debian/swift-drive-audit.lintian-overrides 2.36.0-0ubuntu1/debian/swift-drive-audit.lintian-overrides
--- 2.36.0-1/debian/swift-drive-audit.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-drive-audit.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift-drive-audit binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift-drive-audit.manpages 2.36.0-0ubuntu1/debian/swift-drive-audit.manpages
--- 2.36.0-1/debian/swift-drive-audit.manpages	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-drive-audit.manpages	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-doc/manpages/swift-drive-audit.1
diff -pruN 2.36.0-1/debian/swift-object-expirer.docs 2.36.0-0ubuntu1/debian/swift-object-expirer.docs
--- 2.36.0-1/debian/swift-object-expirer.docs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object-expirer.docs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1 @@
+etc/object-expirer.conf-sample
diff -pruN 2.36.0-1/debian/swift-object-expirer.install 2.36.0-0ubuntu1/debian/swift-object-expirer.install
--- 2.36.0-1/debian/swift-object-expirer.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object-expirer.install	2025-09-22 18:00:06.000000000 +0000
@@ -1,4 +1 @@
-#! /usr/bin/dh-exec --with=install
-etc/object-expirer.conf-sample => /etc/swift/object-expirer.conf
-etc/object-expirer.conf-sample => /usr/share/doc/swift-object-expirer/examples/object-expirer.conf
 usr/bin/swift-object-expirer
diff -pruN 2.36.0-1/debian/swift-object-expirer.links 2.36.0-0ubuntu1/debian/swift-object-expirer.links
--- 2.36.0-1/debian/swift-object-expirer.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object-expirer.links	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-usr/share/doc/swift-object-expirer/examples/object-expirer.conf usr/share/doc/swift/examples/object-expirer.conf
diff -pruN 2.36.0-1/debian/swift-object-expirer.lintian-overrides 2.36.0-0ubuntu1/debian/swift-object-expirer.lintian-overrides
--- 2.36.0-1/debian/swift-object-expirer.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object-expirer.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift-object-expirer binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift-object-expirer.manpages 2.36.0-0ubuntu1/debian/swift-object-expirer.manpages
--- 2.36.0-1/debian/swift-object-expirer.manpages	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object-expirer.manpages	2025-09-22 18:00:06.000000000 +0000
@@ -1 +1,2 @@
+doc/manpages/object-expirer.conf.5
 doc/manpages/swift-object-expirer.1
diff -pruN 2.36.0-1/debian/swift-object.cron.d 2.36.0-0ubuntu1/debian/swift-object.cron.d
--- 2.36.0-1/debian/swift-object.cron.d	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object.cron.d	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-*/5 * * * *     swift   test -x /usr/bin/swift-recon-cron && test -r /etc/swift/object-server.conf && /usr/bin/swift-recon-cron /etc/swift/object-server.conf
diff -pruN 2.36.0-1/debian/swift-object.docs 2.36.0-0ubuntu1/debian/swift-object.docs
--- 2.36.0-1/debian/swift-object.docs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object.docs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,3 @@
+etc/object-expirer.conf-sample
+etc/object-server.conf-sample
+etc/rsyncd.conf-sample
diff -pruN 2.36.0-1/debian/swift-object.install 2.36.0-0ubuntu1/debian/swift-object.install
--- 2.36.0-1/debian/swift-object.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object.install	2025-09-22 18:00:06.000000000 +0000
@@ -1,8 +1,4 @@
-#! /usr/bin/dh-exec --with=install
-debian/swift-object-generator /usr/lib/systemd/system-generators
-etc/object-server.conf-sample => /etc/swift/object-server.conf
-etc/object-server.conf-sample => /usr/share/doc/swift-object/examples/object-server.conf
-etc/rsyncd.conf-sample => /usr/share/doc/swift-object/examples/rsyncd.conf
+debian/swift-object-generator /lib/systemd/system-generators
 usr/bin/swift-object-auditor
 usr/bin/swift-object-info
 usr/bin/swift-object-reconstructor
@@ -10,5 +6,3 @@ usr/bin/swift-object-relinker
 usr/bin/swift-object-replicator
 usr/bin/swift-object-server
 usr/bin/swift-object-updater
-usr/bin/swift-recon-cron
-debian/bin/swift-object-server-uwsgi	/usr/bin
diff -pruN 2.36.0-1/debian/swift-object.links 2.36.0-0ubuntu1/debian/swift-object.links
--- 2.36.0-1/debian/swift-object.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object.links	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-usr/share/doc/swift-object/examples/object-server.conf usr/share/doc/swift/examples/object-server.conf
-usr/share/doc/swift-object/examples/rsyncd.conf usr/share/doc/swift/examples/rsyncd.conf
diff -pruN 2.36.0-1/debian/swift-object.lintian-overrides 2.36.0-0ubuntu1/debian/swift-object.lintian-overrides
--- 2.36.0-1/debian/swift-object.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift-object binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift-object.manpages 2.36.0-0ubuntu1/debian/swift-object.manpages
--- 2.36.0-1/debian/swift-object.manpages	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-object.manpages	2025-09-22 18:00:06.000000000 +0000
@@ -1,10 +1,6 @@
-doc/manpages/object-expirer.conf.5
 doc/manpages/object-server.conf.5
 doc/manpages/swift-object-auditor.1
 doc/manpages/swift-object-info.1
-doc/manpages/swift-object-reconstructor.1
-doc/manpages/swift-object-relinker.1
 doc/manpages/swift-object-replicator.1
 doc/manpages/swift-object-server.1
 doc/manpages/swift-object-updater.1
-doc/manpages/swift-recon-cron.1
diff -pruN 2.36.0-1/debian/swift-proxy-server-uwsgi.ini 2.36.0-0ubuntu1/debian/swift-proxy-server-uwsgi.ini
--- 2.36.0-1/debian/swift-proxy-server-uwsgi.ini	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-proxy-server-uwsgi.ini	1970-01-01 00:00:00.000000000 +0000
@@ -1,80 +0,0 @@
-[uwsgi]
-############################
-### Generic UWSGI config ###
-############################
-
-# Override the default size for headers from the 4k default.
-buffer-size = 65535
-
-# This avoids error 104: "Connection reset by peer"
-# This makes "openstack image save" break when using
-# the swift backend, so do not activate:
-#rem-header = Content-Length
-
-# This is running standalone
-master = true
-
-# Threads and processes
-enable-threads = true
-
-# uwsgi recommends this to prevent thundering herd on accept.
-thunder-lock = true
-
-plugins = python3,transformation_chunked
-
-# This ensures that file descriptors aren't shared between the WSGI application processes.
-lazy-apps = true
-
-# Log from the wsgi application: needs python3-pastescript as runtime depends.
-paste-logger = true
-
-# automatically kill workers if master dies
-no-orphans = true
-
-# exit instead of brutal reload on SIGTERM
-die-on-term = true
-
-##################################
-### OpenStack service specific ###
-##################################
-
-# We ran benches to validate these values, and they seem ok:
-threads = 1
-listen = 100
-
-# These are used in the gate.
-# The http-auto-chunked / http-chunked-input
-# are mandatory, specific to Glance, and are
-# the reasons why Glance doesn't work on Apache
-http-auto-chunked = true
-http-chunked-input = true
-http-raw-body = true
-# If not adding this directive, Glance will start failing...
-#add-header = Connection: close
-# Needed for tempest validations of object storage URLs.
-# Without it, there's no date field in the responses.
-route = .* addheader:Date: ${httptime[]}
-route-run = chunked:
-exit-on-reload = true
-wsgi-manage-chunked-input = true
-
-# This is the standard port for the WSGI application, listening on all available IPs
-logto = /var/log/swift/swift-proxy.log
-name = swift-proxy-server
-uid = swift
-gid = swift
-chdir = /var/lib/swift
-wsgi-file = /usr/bin/swift-proxy-server-uwsgi
-
-# This is controled by the init script using the --http-socket
-# or using the --https thing. https will be activated if a file
-# /etc/swift/ssl/private/*.pem is found. In both case, port 9292
-# on all IPs will be used.
-# The partern to search for the private key file is:
-# find /etc/swift/ssl/private -type f -iname '*.pem' | head -n 1
-# and for the certificate:
-# find /etc/swift/ssl/private -type f -iname '*.crt' | head -n 1
-# just drop files there and restart the daemon, and you'll have
-# SSL up and running.
-#http-socket = :8080
-#https 0.0.0.0:8080,foobar.crt,foobar.key
diff -pruN 2.36.0-1/debian/swift-proxy.docs 2.36.0-0ubuntu1/debian/swift-proxy.docs
--- 2.36.0-1/debian/swift-proxy.docs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-proxy.docs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,3 @@
+etc/memcache.conf-sample
+etc/mime.types-sample
+etc/proxy-server.conf-sample
diff -pruN 2.36.0-1/debian/swift-proxy.install 2.36.0-0ubuntu1/debian/swift-proxy.install
--- 2.36.0-1/debian/swift-proxy.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-proxy.install	2025-09-22 18:00:06.000000000 +0000
@@ -1,10 +1,2 @@
-#! /usr/bin/dh-exec --with=install
-etc/memcache.conf-sample => /etc/swift/memcache.conf
-etc/memcache.conf-sample => /usr/share/doc/swift-proxy/examples/memcache.conf
-etc/mime.types-sample => /etc/swift/mime.types
-etc/mime.types-sample => /usr/share/doc/swift-proxy/examples/mime.types
-etc/proxy-server.conf-sample => /etc/swift/proxy-server.conf
-etc/proxy-server.conf-sample => /usr/share/doc/swift-proxy/examples/proxy-server.conf
 usr/bin/swift-proxy-server
-debian/bin/swift-proxy-server-uwsgi /usr/bin
-debian/swift-proxy-server-uwsgi.ini /etc/swift
+usr/bin/swift-reload
diff -pruN 2.36.0-1/debian/swift-proxy.links 2.36.0-0ubuntu1/debian/swift-proxy.links
--- 2.36.0-1/debian/swift-proxy.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-proxy.links	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-usr/share/doc/swift-proxy/examples/memcache.conf usr/share/doc/swift/examples/memcache.conf
-usr/share/doc/swift-proxy/examples/mime.types usr/share/doc/swift/examples/mime.types
-usr/share/doc/swift-proxy/examples/proxy-server.conf usr/share/doc/swift/examples/proxy-server.conf
diff -pruN 2.36.0-1/debian/swift-proxy.lintian-overrides 2.36.0-0ubuntu1/debian/swift-proxy.lintian-overrides
--- 2.36.0-1/debian/swift-proxy.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-proxy.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift-proxy binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift-proxy.swift-proxy.init.in 2.36.0-0ubuntu1/debian/swift-proxy.swift-proxy.init.in
--- 2.36.0-1/debian/swift-proxy.swift-proxy.init.in	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-proxy.swift-proxy.init.in	2025-09-22 18:00:06.000000000 +0000
@@ -1,29 +1,17 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          swift-proxy
-# Required-Start:    $network $local_fs $remote_fs $syslog
+# Required-Start:    $remote_fs
 # Required-Stop:     $remote_fs
-# Should-Start:      ntp
-# Should-Stop:       ntp
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Swift proxy server
 # Description:       Proxy server for Swift.
 ### END INIT INFO
 
-DESC="OpenStack Swift proxy server (swift-proxy)"
 PROJECT_NAME=swift
 NAME="${PROJECT_NAME}-proxy-server"
-CONFIG_FILE=/etc/${PROJECT_NAME}/proxy-server.conf
-UWSGI_PORT=8080
-UWSGI_INI_PATH=/etc/swift/swift-proxy-server-uwsgi.ini
-UWSGI_INI_APP=/usr/bin/swift-proxy-server-uwsgi
-UWSGI_BIND_CONFIG_FILE=/etc/${PROJECT_NAME}/proxy-server.conf
-UWSGI_BIND_CONFIG_SECTION=DEFAULT
-UWSGI_BIND_CONFIG_IP_DIRECTIVE=bind_ip
-UWSGI_BIND_CONFIG_PORT_DIRECTIVE=bind_port
-UWSGI_BIND_CONFIG_WORKERS_DIRECTIVE=workers
-CUSTOM_SYSTEMD_UNIT="ConditionFileNotEmpty=/etc/swift/proxy-server.conf
-AssertFileNotEmpty=/etc/swift/account.ring.gz
-AssertFileNotEmpty=/etc/swift/container.ring.gz
-AssertPathExistsGlob=/etc/swift/object*.ring.gz"
+DESC="OpenStack Swift proxy server"
+CONFIG=proxy-server
+MULTI=1
+SYSTEMD_DOC="man:${NAME}(1)"
diff -pruN 2.36.0-1/debian/swift-test.conf 2.36.0-0ubuntu1/debian/swift-test.conf
--- 2.36.0-1/debian/swift-test.conf	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift-test.conf	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-[unit_test]
-fake_syslog = True
diff -pruN 2.36.0-1/debian/swift.docs 2.36.0-0ubuntu1/debian/swift.docs
--- 2.36.0-1/debian/swift.docs	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift.docs	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,4 @@
+CHANGELOG
+etc/dispersion.conf-sample
+etc/drive-audit.conf-sample
+etc/swift.conf-sample
diff -pruN 2.36.0-1/debian/swift.install 2.36.0-0ubuntu1/debian/swift.install
--- 2.36.0-1/debian/swift.install	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift.install	2025-09-22 18:00:06.000000000 +0000
@@ -1,23 +1,14 @@
-#! /usr/bin/dh-exec --with=install
-debian/swift.rsyslog => /etc/rsyslog.d/swift.conf
-etc/container-sync-realms.conf-sample => /etc/swift/container-sync-realms.conf
-etc/container-sync-realms.conf-sample => /usr/share/doc/swift/examples/container-sync-realms.conf
-etc/dispersion.conf-sample => /etc/swift/dispersion.conf
-etc/dispersion.conf-sample => /usr/share/doc/swift/examples/dispersion.conf
-etc/drive-full-checker.conf-sample => /etc/swift/drive-full-checker.conf
-etc/swift.conf-sample => /etc/swift/swift.conf
-etc/swift.conf-sample => /usr/share/doc/swift/examples/swift.conf
 usr/bin/swift-config
-usr/bin/swift-container-deleter
 usr/bin/swift-dispersion-populate
 usr/bin/swift-dispersion-report
-usr/bin/swift-drive-full-checker
 usr/bin/swift-form-signature
 usr/bin/swift-get-nodes
 usr/bin/swift-oldies
 usr/bin/swift-orphans
 usr/bin/swift-recon
-usr/bin/swift-reload
+usr/bin/swift-recon
+usr/bin/swift-recon-cron
+usr/bin/swift-recon-cron
 usr/bin/swift-ring-builder
 usr/bin/swift-ring-builder-analyzer
 usr/bin/swift-ring-composer
diff -pruN 2.36.0-1/debian/swift.links 2.36.0-0ubuntu1/debian/swift.links
--- 2.36.0-1/debian/swift.links	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift.links	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-/var/backups/swift	/etc/swift/backups
diff -pruN 2.36.0-1/debian/swift.lintian-overrides 2.36.0-0ubuntu1/debian/swift.lintian-overrides
--- 2.36.0-1/debian/swift.lintian-overrides	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift.lintian-overrides	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-swift binary: spelling-error-in-copyright Thier Their
diff -pruN 2.36.0-1/debian/swift.logrotate 2.36.0-0ubuntu1/debian/swift.logrotate
--- 2.36.0-1/debian/swift.logrotate	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift.logrotate	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-/var/log/swift/*.log {
-	daily
-	missingok
-	compress
-	delaycompress
-	copytruncate
-}
diff -pruN 2.36.0-1/debian/swift.manpages 2.36.0-0ubuntu1/debian/swift.manpages
--- 2.36.0-1/debian/swift.manpages	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift.manpages	2025-09-22 18:00:06.000000000 +0000
@@ -1,13 +1,7 @@
 doc/manpages/dispersion.conf.5
-doc/manpages/swift-config.1
 doc/manpages/swift-dispersion-populate.1
 doc/manpages/swift-dispersion-report.1
-doc/manpages/swift-form-signature.1
 doc/manpages/swift-get-nodes.1
-doc/manpages/swift-oldies.1
 doc/manpages/swift-orphans.1
 doc/manpages/swift-recon.1
-doc/manpages/swift-ring-builder-analyzer.1
 doc/manpages/swift-ring-builder.1
-doc/manpages/swift-ring-composer.1
-doc/manpages/swift.conf.5
diff -pruN 2.36.0-1/debian/swift.rsyslog 2.36.0-0ubuntu1/debian/swift.rsyslog
--- 2.36.0-1/debian/swift.rsyslog	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/swift.rsyslog	1970-01-01 00:00:00.000000000 +0000
@@ -1,122 +0,0 @@
-$fileOwner swift
-
-if $programname startswith 'swift-account-server' then /var/log/swift/swift-account.log
-if $programname startswith 'swift-account-server' then stop
-if $programname startswith 'account-server' then /var/log/swift/swift-account.log
-if $programname startswith 'account-server' then stop
-if $programname startswith 'swift-account-replicator' then /var/log/swift/swift-account-replicator.log
-if $programname startswith 'swift-account-replicator' then stop
-if $programname startswith 'account-replicator' then /var/log/swift/swift-account-replicator.log
-if $programname startswith 'account-replicator' then stop
-if $programname startswith 'swift-account-auditor' then /var/log/swift/swift-account-auditor.log
-if $programname startswith 'swift-account-auditor' then stop
-if $programname startswith 'account-auditor' then /var/log/swift/swift-account-auditor.log
-if $programname startswith 'account-auditor' then stop
-if $programname startswith 'swift-account-reaper' then /var/log/swift/swift-account-reaper.log
-if $programname startswith 'swift-account-reaper' then stop
-if $programname startswith 'account-reaper' then /var/log/swift/swift-account-reaper.log
-if $programname startswith 'account-reaper' then stop
-if $programname startswith 'swift-account' then /var/log/swift/swift-account.log
-if $programname startswith 'swift-account' then stop
-
-if $programname startswith 'swift-container-auditor' then /var/log/swift/swift-container-auditor.log
-if $programname startswith 'swift-container-auditor' then stop
-if $programname startswith 'container-auditor' then /var/log/swift/swift-container-auditor.log
-if $programname startswith 'container-auditor' then stop
-if $programname startswith 'swift-container-server' then /var/log/swift/swift-container.log
-if $programname startswith 'swift-container-server' then stop
-if $programname startswith 'container-server' then /var/log/swift/swift-container.log
-if $programname startswith 'container-server' then stop
-if $programname startswith 'swift-container-reconciler' then /var/log/swift/swift-container-reconciler.log
-if $programname startswith 'swift-container-reconciler' then stop
-if $programname startswith 'container-reconciler' then /var/log/swift/swift-container-reconciler.log
-if $programname startswith 'container-reconciler' then stop
-if $programname startswith 'swift-container-replicator' then /var/log/swift/swift-container-replicator.log
-if $programname startswith 'swift-container-replicator' then stop
-if $programname startswith 'container-replicator' then /var/log/swift/swift-container-replicator.log
-if $programname startswith 'container-replicator' then stop
-if $programname startswith 'swift-container-updater' then /var/log/swift/swift-container-updater.log
-if $programname startswith 'swift-container-updater' then stop
-if $programname startswith 'container-updater' then /var/log/swift/swift-container-updater.log
-if $programname startswith 'container-updater' then stop
-if $programname startswith 'swift-container-auditor' then /var/log/swift/swift-container-auditor.log
-if $programname startswith 'swift-container-auditor' then stop
-if $programname startswith 'container-auditor' then /var/log/swift/swift-container-auditor.log
-if $programname startswith 'container-auditor' then stop
-if $programname startswith 'swift-container-sync' then /var/log/swift/swift-container-sync.log
-if $programname startswith 'swift-container-sync' then stop
-if $programname startswith 'container-sync' then /var/log/swift/swift-container-sync.log
-if $programname startswith 'container-sync' then stop
-if $programname startswith 'swift-container' then /var/log/swift/swift-container.log
-if $programname startswith 'swift-container' then stop
-
-if $programname startswith 'swift-object-server' then /var/log/swift/swift-object.log
-if $programname startswith 'swift-object-server' then stop
-if $programname startswith 'object-server' then /var/log/swift/swift-object.log
-if $programname startswith 'object-server' then stop
-if $programname startswith 'swift-object-replicator' then /var/log/swift/swift-object-replicator.log
-if $programname startswith 'swift-object-replicator' then stop
-if $programname startswith 'object-replicator' then /var/log/swift/swift-object-replicator.log
-if $programname startswith 'object-replicator' then stop
-if $programname startswith 'swift-object-updater' then /var/log/swift/swift-object-updater.log
-if $programname startswith 'swift-object-updater' then stop
-if $programname startswith 'object-updater' then /var/log/swift/swift-object-updater.log
-if $programname startswith 'object-updater' then stop
-if $programname startswith 'swift-object-auditor' then /var/log/swift/swift-object-auditor.log
-if $programname startswith 'swift-object-auditor' then stop
-if $programname startswith 'object-auditor' then /var/log/swift/swift-object-auditor.log
-if $programname startswith 'object-auditor' then stop
-if $programname startswith 'swift-object' then /var/log/swift/swift-object.log
-if $programname startswith 'swift-object' then stop
-
-if $programname startswith 'swift-drive-audit' then /var/log/swift/swift-drive-audit.log
-if $programname startswith 'swift-drive-audit' then stop
-if $programname startswith 'drive-audit' then /var/log/swift/swift-drive-audit.log
-if $programname startswith 'drive-audit' then stop
-if $programname startswith 'swift-drive-full-checker' then /var/log/swift/swift-drive-full-checker.log
-if $programname startswith 'swift-drive-full-checker' then stop
-if $programname startswith 'drive-full-checker' then /var/log/swift/swift-drive-full-checker.log
-if $programname startswith 'drive-full-checker' then stop
-
-if $programname startswith 'swift-proxy-server' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy-server' then stop
-if $programname startswith 'proxy-server' then /var/log/swift/swift-proxy.log
-if $programname startswith 'proxy-server' then stop
-if $programname startswith 'swift-proxy-logging' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy-logging' then stop
-if $programname startswith 'proxy-logging' then /var/log/swift/swift-proxy.log
-if $programname startswith 'proxy-logging' then stop
-if $programname startswith 'swift-proxy-tempauth' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy-tempauth' then stop
-if $programname startswith 'proxy-tempauth' then /var/log/swift/swift-proxy.log
-if $programname startswith 'proxy-tempauth' then stop
-if $programname startswith 'swift-proxy-cache' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy-cache' then stop
-if $programname startswith 'proxy-cache' then /var/log/swift/swift-proxy.log
-if $programname startswith 'proxy-cache' then stop
-if $programname startswith 'swift-proxy-ratelimit' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy-ratelimit' then stop
-if $programname startswith 'proxy-ratelimit' then /var/log/swift/swift-proxy.log
-if $programname startswith 'proxy-ratelimit' then stop
-if $programname startswith 'swift-proxy-catch_errors' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy-catch_errors' then stop
-if $programname startswith 'proxy-catch_errors' then /var/log/swift/swift-proxy.log
-if $programname startswith 'proxy-catch_errors' then stop
-if $programname startswith 'swift-proxy-staticweb' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy-staticweb' then stop
-if $programname startswith 'proxy-staticweb' then /var/log/swift/swift-proxy.log
-if $programname startswith 'proxy-staticweb' then stop
-if $programname startswith 'swift-gatekeeper' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-gatekeeper' then stop
-if $programname startswith 'gatekeeper' then /var/log/swift/swift-proxy.log
-if $programname startswith 'gatekeeper' then stop
-if $programname startswith 'swift-proxy' then /var/log/swift/swift-proxy.log
-if $programname startswith 'swift-proxy' then stop
-
-if $programname startswith 'swift-internal-client' then /var/log/swift/swift-internal-client.log
-if $programname startswith 'swift-internal-client' then stop
-
-if $programname contains 'swift' then /var/log/swift/swift.log
-if $programname startswith 'swift' then stop
-
-$fileOwner root
diff -pruN 2.36.0-1/debian/tests/control 2.36.0-0ubuntu1/debian/tests/control
--- 2.36.0-1/debian/tests/control	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/tests/control	2025-09-22 18:00:06.000000000 +0000
@@ -1,6 +1,10 @@
-Tests: unittests
+Tests:
+ swift-daemons,
 Depends:
- @,
- @builddeps@,
-Restrictions: allow-stderr needs-root
-Architecture: amd64, arm64, mips64el, ppc64el, riscv64, s390x
+ swift,
+ swift-account,
+ swift-container,
+ swift-object,
+ swift-proxy,
+Restrictions:
+ needs-root,
diff -pruN 2.36.0-1/debian/tests/swift-daemons 2.36.0-0ubuntu1/debian/tests/swift-daemons
--- 2.36.0-1/debian/tests/swift-daemons	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/tests/swift-daemons	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,56 @@
+#!/bin/bash
+#--------------------
+# Testing swift-proxy
+#--------------------
+set -e
+failure=false
+
+# copy config files
+mkdir -p /etc/swift 2>&1 > /dev/null
+cp /usr/share/doc/swift/swift.conf-sample /etc/swift/swift.conf 2>&1 > /dev/null
+cp /usr/share/doc/swift-proxy/proxy-server.conf-sample /etc/swift/proxy-server.conf 2>&1 > /dev/null
+
+# create rings
+cd /etc/swift 2>&1 > /dev/null
+swift-ring-builder account.builder create 18 1 1 2>&1 > /dev/null
+swift-ring-builder container.builder create 18 1 1 2>&1 > /dev/null
+swift-ring-builder object.builder create 18 1 1 2>&1 > /dev/null
+
+swift-ring-builder account.builder add z1-127.0.0.1:6002/sda1 100 2>&1 > /dev/null
+swift-ring-builder container.builder add z1-127.0.0.1:6001/sda1 100 2>&1 > /dev/null
+swift-ring-builder object.builder add z1-127.0.0.1:6000/sda1 100 2>&1 > /dev/null
+
+swift-ring-builder account.builder rebalance 2>&1 > /dev/null
+swift-ring-builder container.builder rebalance 2>&1 > /dev/null
+swift-ring-builder object.builder rebalance 2>&1 > /dev/null
+
+DAEMONS=('swift-proxy' 'swift-object' 'swift-container' 'swift-account')
+
+for daemon in "${DAEMONS[@]}"; do
+    systemctl restart $daemon
+done
+
+for daemon in "${DAEMONS[@]}"; do
+    TIMEOUT=50
+    while [ "$TIMEOUT" -gt 0 ]; do
+        if pidof -x ${daemon}-server > /dev/null; then
+            echo "OK"
+            break
+        fi
+        TIMEOUT=$((TIMEOUT - 1))
+        sleep 0.1
+    done
+
+    if [ "$TIMEOUT" -le 0 ]; then
+        echo "ERROR: ${daemon}-server IS NOT RUNNING"
+        failure=true
+    else
+        echo "${daemon}-server IS RUNNING"
+    fi
+done
+
+if [ "$failure" = true ]; then
+    exit 1
+fi
+
+exit 0
diff -pruN 2.36.0-1/debian/tests/unittests 2.36.0-0ubuntu1/debian/tests/unittests
--- 2.36.0-1/debian/tests/unittests	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/tests/unittests	1970-01-01 00:00:00.000000000 +0000
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-set -e
-set -x
-
-# These are failing on 32 bits:
-# test.unit.common.test_utils.TestPunchHoleReally.test_punch_a_hole
-# test.unit.common.test_utils.Test_LibcWrapper.test_argument_plumbing
-
-# This one, as per request from release team:
-# https://bugs.debian.org/1074021
-# test.unit.proxy.controllers.test_obj.TestECObjController.test_GET_disconnect
-
-# See https://bugs.debian.org/1106445
-# common.utils.test_logs.TestUtilsLogs.test_LoggerFileObject_recursion
-for i in $(py3versions -vr 2>/dev/null) ; do
-	rm -rf .stestr
-	stestr init
-	PYTHON=python${i} stestr run --subunit --test-path test/unit 'test\.unit\.(?!common\.test_utils\.TestUtils\.test_get_logger_sysloghandler_plumbing|common\.middleware\.test_cname_lookup\.TestCNAMELookup.*|common\.test_db\.TestDatabaseBroker\.test_get.*|container\.test_sync\.TestContainerSync\.test_init.*|common\.test_utils\.TestPunchHoleReally\.test_punch_a_hole.*|common\.test_utils\.Test_LibcWrapper\.test_argument_plumbing.*|common\.test_utils\.TestUtils\.test_load_pkg_resource_importlib.*|common\.test_db_replicator\.TestHandoffsOnly.*|common\.test_db\.TestDatabaseBroker\.test_disk_preallocate|obj\.test_reconstructor\.TestWorkerReconstructor\.test_run_forever_recon_aggregation|common\.middleware\.test_xprofile\.TestProfileMiddleware\.test_call|common\.ring\.test_builder\.TestGetRequiredOverload\.test_perfect_four_zone_four_replica_bad_placement|common\.test_wsgi\.TestWSGI.*|obj\.test_expirer\.TestObjectExpirer\.test_delete_actual_object|common\.test_memcached\.TestMemcached\.test_get_conns_hostname6|common\.test_memcached\.TestMemcached\.test_get_conns_v6|common\.test_memcached\.TestMemcached\.test_get_conns_v6_default|obj\.test_reconstructor\.TestWorkerReconstructor\.test_run_forever_recon_aggregation|proxy\.controllers\.test_obj\.TestECObjController\.test_GET_with_duplicate_but_sufficient_frag_indexes|common\.test_utils\.TestUtils\.test_get_logger_name_and_route|obj\.test_expirer\.TestObjectExpirer\.test_failed_delete_continues_on|proxy\.test_mem_server\.TestProxyServer\.test_statsd_prefix|proxy\.controllers\.test_obj\.TestECObjController\.test_GET_read_timeout|proxy\.controllers\.test_base\.TestGetOrHeadHandler\.test_disconnected_logging|obj\.test_expirer\.TestObjectExpirer\.test_failed_delete_continues_on|obj\.test_replicator\.TestObjectReplicator\.test_update|obj\.test_ssync_receiver\.TestReceiver\.test_UPDATES_timeout|obj\.test_ssync_receiver\.TestReceiver\.test_UPDATES_no_problems_no_hard_disconnect|common\.test_memcached\.TestMemcached\.test_operations_timing_stats_with_incr_timeout|proxy\.controllers\.test_obj\.TestECObjController\.test_GET_disconnect|obj\.test_expirer\.TestExpirerHelpers\.test_embed_expirer_bytes_from_diskfile_metadata|common\.test_wsgi\.TestServersPerPortStrategy\.test_stale_pid_loading|common\.test_wsgi\.TestWorkersStrategy\.test_stale_pid_loading|common\.utils\.test_logs\.TestUtilsLogs\.test_LoggerFileObject_recursion|container\.test_server\.TestNonLegacyDefaultStoragePolicy\.test_PUT_account_update|common\.middleware\.s3api\.test_s3request\.TestRequest\.test_sig_v4_strm_unsgnd_pyld_trl_checksum_hdr_unsupported|common\.middleware\.s3api\.test_s3request\.TestModuleFunctions\.test_get_checksum_hasher)' | subunit2pyunit
-	stestr slowest
-done
diff -pruN 2.36.0-1/debian/upstream/metadata 2.36.0-0ubuntu1/debian/upstream/metadata
--- 2.36.0-1/debian/upstream/metadata	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/upstream/metadata	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-Bug-Database: https://bugs.launchpad.net/swift
-Bug-Submit: https://bugs.launchpad.net/swift/+filebug
-Name: Swift
-Repository: https://github.com/openstack/swift.git
-Repository-Browse: https://github.com/openstack/swift
diff -pruN 2.36.0-1/debian/upstream/signing-key.asc 2.36.0-0ubuntu1/debian/upstream/signing-key.asc
--- 2.36.0-1/debian/upstream/signing-key.asc	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/upstream/signing-key.asc	2025-09-22 18:00:06.000000000 +0000
@@ -0,0 +1,34 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEZ92jlhYJKwYBBAHaRw8BAQdAnSMr01EpuQHlcTQ8c0ENVDFs9mi/TdWB0IlG
+ZF1eC2S0Qk9wZW5TdGFjayBJbmZyYSAoMjAyNS4yL0ZsYW1pbmdvIEN5Y2xlKSA8
+aW5mcmEtcm9vdEBvcGVuc3RhY2sub3JnPoiWBBMWCAA+FiEExxsAfvl4h/2PtjZc
+60/W1hjmIYEFAmfdo5YCGwMFCQFj9QAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AA
+CgkQ60/W1hjmIYElLAEAkMjANVr+kVjZGp8KtliT+ySFAqoCQceuscYt7WmeD4wA
+/2gHNfFDJwkWn9JY9mCR2y7gwf6skTWl3ssPogTa84wDiHUEEBYIAB0WIQQiKE9p
+2ezN8994GXkccRrxk/+OVAUCZ92k6wAKCRAccRrxk/+OVMQGAQD0X/Eow2mK/YzZ
+rMO60g2KI767/rnKJWKFUTCZCfswxwD/WxuGjGRB98RZ9IbCcmaUvRqHf9812h60
+/RCoB4AtiwSJAjMEEAEKAB0WIQSXrklvwC3sn8NTsudI+ZYRQ0lYKQUCZ92vKwAK
+CRBI+ZYRQ0lYKdthD/wJh0uxw05WsmFwjuds82JdnH9ow3OdG/0bhds8eEvgYuQe
+ZEQ9/RC5hJ+SiV+/zclIaG+xYHW3VkZUgOmmLxRzmqFbWbDm5yKp7jTqM2zYB4Jx
+EiLB4dWHZFmrcqfkJ06nXVMjGkj73N+DqHWQ6hleaiE7tcbI++w1AN7niL0rW008
+iP8IHoWLh2dJxQlcheVdjCe0jEU3qO8KxhUTeARPD/Vp1CpJWlq9vWs9/bweMrtj
+FsQwxBiZcQ/0zXDnQFUKpbNDFjQZnjmmwTqhopquL5e5mZWr0NussI20JXyZHj7T
+N5ikDAFPf9iM1Apb+/g9njGUgYFEOgEJuDr1oLolZ+9+7uZrKGD1gmdY7pVG12Xn
+2QJ3rft/Wy8Obac+TdA+UoEYQu4LOUpUOmPOcXE/8/fTxybkQGOZm1Ufaddz+6ee
+uHBbIaxI1kh5MrxH5cIaEkvdjOGg+bMyq7C8CE8WgSEN/JiupEZYgDduOSuqGHDp
++9ydEkanNjGN+K4rXJ7ABBv9freINx5kmCAaDzXeIAL8n1/Rzd6Z/acOlC9omDM0
+mYKKIfLMp6Rp7SKnB37Tp0dKGP4r/SJsx5Sxn7XrktVJ1ht5ByipDD6VBN3+OQPx
+56pRLDCk9EFDjbOW0iKzyPx+Nya5G9CN9AqQXe1MlHsFn+q7DEUSmlGZfvtjN7g4
+BGfdo5YSCisGAQQBl1UBBQEBB0DHSvmmZUEZ94olzKZSHa2HBCWhrhOVNFn/0ag8
+KyY5fQMBCAeIfgQYFggAJhYhBMcbAH75eIf9j7Y2XOtP1tYY5iGBBQJn3aOWAhsM
+BQkBY/UAAAoJEOtP1tYY5iGB6XcA+wY0JUi2ZUqH0CRs4EfS6VML/7u08g8ZByN4
+DZ2htqOGAQDmGHHjpMhKz04eDXLpNO6UZ/Q6LnqEXztW8eBXVtiZALgzBGfdpHYW
+CSsGAQQB2kcPAQEHQKH/4Td8MRK/9UxGyPqWWaZl88m4xE48XM4kP6w3asRViO8E
+GBYIACAWIQTHGwB++XiH/Y+2NlzrT9bWGOYhgQUCZ92kdgIbAgCBCRDrT9bWGOYh
+gXYgBBkWCAAdFiEE3cFPzrMpT3Q4I7HG9zFcLOa3NF0FAmfdpHYACgkQ9zFcLOa3
+NF1xqwEA3muioM6tJtSbiCUCDau2QnalBkfov/A2FFIxvnyHbH0A/051M0O09Tcl
+E7tAieH8W63Jhg3n/GzKl36hXqh3ANML8kIA/0eu6JgK+F0s8iiy+sQecTD7W38B
+A8CSZ29ANdlMwzf7AP9araqMvKRpTMAzhQ+1Eluh8FmXQhzeZDhlIZ8DQDQ/CQ==
+=FVKc
+-----END PGP PUBLIC KEY BLOCK-----
diff -pruN 2.36.0-1/debian/watch 2.36.0-0ubuntu1/debian/watch
--- 2.36.0-1/debian/watch	2025-09-11 12:36:18.000000000 +0000
+++ 2.36.0-0ubuntu1/debian/watch	2025-09-22 18:00:06.000000000 +0000
@@ -1,3 +1,3 @@
-version=4
-opts="mode=git,uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
-https://github.com/openstack/swift refs/tags/(\d[brc\d\.]+)
+version=3
+opts=uversionmangle=s/rc/~rc/,pgpsigurlmangle=s/$/.asc/ \
+ https://tarballs.opendev.org/openstack/swift/ swift-(\d.*)\.tar\.gz
diff -pruN 2.36.0-1/setup.cfg 2.36.0-0ubuntu1/setup.cfg
--- 2.36.0-1/setup.cfg	2025-09-04 19:32:49.000000000 +0000
+++ 2.36.0-0ubuntu1/setup.cfg	2025-09-11 12:21:52.146997000 +0000
@@ -1,33 +1,33 @@
 [metadata]
 name = swift
 summary = OpenStack Object Storage
-description_file =
-    README.rst
+description_file = 
+	README.rst
 long_description_content_type = text/x-rst
 author = OpenStack
 author_email = openstack-discuss@lists.openstack.org
 url = https://docs.openstack.org/swift/latest/
 python_requires = >=3.7
-project_urls =
-    Documentation = https://docs.openstack.org/swift/latest/
-    Bug Tracker = https://bugs.launchpad.net/swift
-    Source Code = https://opendev.org/openstack/swift/
-    Release Notes = https://opendev.org/openstack/swift/src/branch/master/CHANGELOG
-classifier =
-    Development Status :: 5 - Production/Stable
-    Environment :: OpenStack
-    Intended Audience :: Information Technology
-    Intended Audience :: System Administrators
-    License :: OSI Approved :: Apache Software License
-    Operating System :: POSIX :: Linux
-    Programming Language :: Python
-    Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.7
-    Programming Language :: Python :: 3.8
-    Programming Language :: Python :: 3.9
-    Programming Language :: Python :: 3.10
-    Programming Language :: Python :: 3.11
-    Programming Language :: Python :: 3.12
+project_urls = 
+	Documentation = https://docs.openstack.org/swift/latest/
+	Bug Tracker = https://bugs.launchpad.net/swift
+	Source Code = https://opendev.org/openstack/swift/
+	Release Notes = https://opendev.org/openstack/swift/src/branch/master/CHANGELOG
+classifier = 
+	Development Status :: 5 - Production/Stable
+	Environment :: OpenStack
+	Intended Audience :: Information Technology
+	Intended Audience :: System Administrators
+	License :: OSI Approved :: Apache Software License
+	Operating System :: POSIX :: Linux
+	Programming Language :: Python
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3.7
+	Programming Language :: Python :: 3.8
+	Programming Language :: Python :: 3.9
+	Programming Language :: Python :: 3.10
+	Programming Language :: Python :: 3.11
+	Programming Language :: Python :: 3.12
 
 [pbr]
 skip_authors = True
@@ -35,114 +35,112 @@ skip_changelog = True
 skip_reno = True
 
 [options]
-packages =
-    swift
+packages = 
+	swift
 
 [extras]
-kms_keymaster =
-    oslo.config>=5.2.0 # Apache-2.0
-    castellan>=0.13.0 # Apache-2.0
-
-kmip_keymaster =
-    pykmip>=0.7.0 # Apache-2.0
-
-keystone =
-    keystonemiddleware>=4.17.0
+kms_keymaster = 
+	oslo.config>=5.2.0 # Apache-2.0
+	castellan>=0.13.0 # Apache-2.0
+kmip_keymaster = 
+	pykmip>=0.7.0 # Apache-2.0
+keystone = 
+	keystonemiddleware>=4.17.0
 
 [entry_points]
-console_scripts =
-    swift-account-audit = swift.cli.account_audit:main
-    swift-account-auditor = swift.account.auditor:main
-    swift-account-info = swift.cli.info:account_main
-    swift-account-reaper = swift.account.reaper:main
-    swift-account-replicator = swift.account.replicator:main
-    swift-account-server = swift.account.server:main
-    swift-config = swift.cli.config:main
-    swift-container-auditor = swift.container.auditor:main
-    swift-container-deleter = swift.cli.container_deleter:main
-    swift-container-info = swift.cli.info:container_main
-    swift-container-replicator = swift.container.replicator:main
-    swift-container-reconciler = swift.container.reconciler:main
-    swift-container-server = swift.container.server:main
-    swift-container-sharder = swift.container.sharder:main
-    swift-container-sync = swift.container.sync:main
-    swift-container-updater = swift.container.updater:main
-    swift-dispersion-populate = swift.cli.dispersion_populate:main
-    swift-dispersion-report = swift.cli.dispersion_report:main
-    swift-drive-audit = swift.cli.drive_audit:main
-    swift-form-signature = swift.cli.form_signature:main
-    swift-get-nodes = swift.cli.get_nodes:main
-    swift-init = swift.common.manager:main
-    swift-manage-shard-ranges = swift.cli.manage_shard_ranges:main
-    swift-object-auditor = swift.obj.auditor:main
-    swift-object-expirer = swift.obj.expirer:main
-    swift-object-info = swift.cli.info:obj_main
-    swift-object-reconstructor = swift.obj.reconstructor:main
-    swift-object-relinker = swift.cli.relinker:main
-    swift-object-replicator = swift.obj.replicator:main
-    swift-object-server = swift.obj.server:main
-    swift-object-updater = swift.obj.updater:main
-    swift-oldies = swift.cli.oldies:main
-    swift-orphans = swift.cli.orphans:main
-    swift-proxy-server = swift.proxy.server:main
-    swift-recon = swift.cli.recon:main
-    swift-recon-cron = swift.cli.recon_cron:main
-    swift-reconciler-enqueue = swift.cli.reconciler_enqueue:main
-    swift-reload = swift.cli.reload:main
-    swift-ring-builder = swift.cli.ringbuilder:error_handling_main
-    swift-ring-builder-analyzer = swift.cli.ring_builder_analyzer:main
-    swift-ring-composer = swift.cli.ringcomposer:main
-
-paste.app_factory =
-    proxy = swift.proxy.server:app_factory
-    object = swift.obj.server:app_factory
-    mem_object = swift.obj.mem_server:app_factory
-    container = swift.container.server:app_factory
-    account = swift.account.server:app_factory
-
-paste.filter_factory =
-    healthcheck = swift.common.middleware.healthcheck:filter_factory
-    crossdomain = swift.common.middleware.crossdomain:filter_factory
-    memcache = swift.common.middleware.memcache:filter_factory
-    read_only = swift.common.middleware.read_only:filter_factory
-    ratelimit = swift.common.middleware.ratelimit:filter_factory
-    backend_ratelimit = swift.common.middleware.backend_ratelimit:filter_factory
-    cname_lookup = swift.common.middleware.cname_lookup:filter_factory
-    catch_errors = swift.common.middleware.catch_errors:filter_factory
-    domain_remap = swift.common.middleware.domain_remap:filter_factory
-    staticweb = swift.common.middleware.staticweb:filter_factory
-    tempauth = swift.common.middleware.tempauth:filter_factory
-    keystoneauth = swift.common.middleware.keystoneauth:filter_factory
-    recon = swift.common.middleware.recon:filter_factory
-    tempurl = swift.common.middleware.tempurl:filter_factory
-    formpost = swift.common.middleware.formpost:filter_factory
-    name_check = swift.common.middleware.name_check:filter_factory
-    bulk = swift.common.middleware.bulk:filter_factory
-    container_quotas = swift.common.middleware.container_quotas:filter_factory
-    account_quotas = swift.common.middleware.account_quotas:filter_factory
-    proxy_logging = swift.common.middleware.proxy_logging:filter_factory
-    dlo = swift.common.middleware.dlo:filter_factory
-    slo = swift.common.middleware.slo:filter_factory
-    list_endpoints = swift.common.middleware.list_endpoints:filter_factory
-    gatekeeper = swift.common.middleware.gatekeeper:filter_factory
-    container_sync = swift.common.middleware.container_sync:filter_factory
-    xprofile = swift.common.middleware.xprofile:filter_factory
-    versioned_writes = swift.common.middleware.versioned_writes:filter_factory
-    copy = swift.common.middleware.copy:filter_factory
-    keymaster = swift.common.middleware.crypto.keymaster:filter_factory
-    encryption = swift.common.middleware.crypto:filter_factory
-    kms_keymaster = swift.common.middleware.crypto.kms_keymaster:filter_factory
-    kmip_keymaster = swift.common.middleware.crypto.kmip_keymaster:filter_factory
-    listing_formats = swift.common.middleware.listing_formats:filter_factory
-    symlink = swift.common.middleware.symlink:filter_factory
-    s3api = swift.common.middleware.s3api.s3api:filter_factory
-    s3token = swift.common.middleware.s3api.s3token:filter_factory
-    etag_quoter = swift.common.middleware.etag_quoter:filter_factory
-
-swift.diskfile =
-    replication.fs = swift.obj.diskfile:DiskFileManager
-    erasure_coding.fs = swift.obj.diskfile:ECDiskFileManager
-
-swift.object_audit_watcher =
-    dark_data = swift.obj.watchers.dark_data:DarkDataWatcher
+console_scripts = 
+	swift-account-audit = swift.cli.account_audit:main
+	swift-account-auditor = swift.account.auditor:main
+	swift-account-info = swift.cli.info:account_main
+	swift-account-reaper = swift.account.reaper:main
+	swift-account-replicator = swift.account.replicator:main
+	swift-account-server = swift.account.server:main
+	swift-config = swift.cli.config:main
+	swift-container-auditor = swift.container.auditor:main
+	swift-container-deleter = swift.cli.container_deleter:main
+	swift-container-info = swift.cli.info:container_main
+	swift-container-replicator = swift.container.replicator:main
+	swift-container-reconciler = swift.container.reconciler:main
+	swift-container-server = swift.container.server:main
+	swift-container-sharder = swift.container.sharder:main
+	swift-container-sync = swift.container.sync:main
+	swift-container-updater = swift.container.updater:main
+	swift-dispersion-populate = swift.cli.dispersion_populate:main
+	swift-dispersion-report = swift.cli.dispersion_report:main
+	swift-drive-audit = swift.cli.drive_audit:main
+	swift-form-signature = swift.cli.form_signature:main
+	swift-get-nodes = swift.cli.get_nodes:main
+	swift-init = swift.common.manager:main
+	swift-manage-shard-ranges = swift.cli.manage_shard_ranges:main
+	swift-object-auditor = swift.obj.auditor:main
+	swift-object-expirer = swift.obj.expirer:main
+	swift-object-info = swift.cli.info:obj_main
+	swift-object-reconstructor = swift.obj.reconstructor:main
+	swift-object-relinker = swift.cli.relinker:main
+	swift-object-replicator = swift.obj.replicator:main
+	swift-object-server = swift.obj.server:main
+	swift-object-updater = swift.obj.updater:main
+	swift-oldies = swift.cli.oldies:main
+	swift-orphans = swift.cli.orphans:main
+	swift-proxy-server = swift.proxy.server:main
+	swift-recon = swift.cli.recon:main
+	swift-recon-cron = swift.cli.recon_cron:main
+	swift-reconciler-enqueue = swift.cli.reconciler_enqueue:main
+	swift-reload = swift.cli.reload:main
+	swift-ring-builder = swift.cli.ringbuilder:error_handling_main
+	swift-ring-builder-analyzer = swift.cli.ring_builder_analyzer:main
+	swift-ring-composer = swift.cli.ringcomposer:main
+paste.app_factory = 
+	proxy = swift.proxy.server:app_factory
+	object = swift.obj.server:app_factory
+	mem_object = swift.obj.mem_server:app_factory
+	container = swift.container.server:app_factory
+	account = swift.account.server:app_factory
+paste.filter_factory = 
+	healthcheck = swift.common.middleware.healthcheck:filter_factory
+	crossdomain = swift.common.middleware.crossdomain:filter_factory
+	memcache = swift.common.middleware.memcache:filter_factory
+	read_only = swift.common.middleware.read_only:filter_factory
+	ratelimit = swift.common.middleware.ratelimit:filter_factory
+	backend_ratelimit = swift.common.middleware.backend_ratelimit:filter_factory
+	cname_lookup = swift.common.middleware.cname_lookup:filter_factory
+	catch_errors = swift.common.middleware.catch_errors:filter_factory
+	domain_remap = swift.common.middleware.domain_remap:filter_factory
+	staticweb = swift.common.middleware.staticweb:filter_factory
+	tempauth = swift.common.middleware.tempauth:filter_factory
+	keystoneauth = swift.common.middleware.keystoneauth:filter_factory
+	recon = swift.common.middleware.recon:filter_factory
+	tempurl = swift.common.middleware.tempurl:filter_factory
+	formpost = swift.common.middleware.formpost:filter_factory
+	name_check = swift.common.middleware.name_check:filter_factory
+	bulk = swift.common.middleware.bulk:filter_factory
+	container_quotas = swift.common.middleware.container_quotas:filter_factory
+	account_quotas = swift.common.middleware.account_quotas:filter_factory
+	proxy_logging = swift.common.middleware.proxy_logging:filter_factory
+	dlo = swift.common.middleware.dlo:filter_factory
+	slo = swift.common.middleware.slo:filter_factory
+	list_endpoints = swift.common.middleware.list_endpoints:filter_factory
+	gatekeeper = swift.common.middleware.gatekeeper:filter_factory
+	container_sync = swift.common.middleware.container_sync:filter_factory
+	xprofile = swift.common.middleware.xprofile:filter_factory
+	versioned_writes = swift.common.middleware.versioned_writes:filter_factory
+	copy = swift.common.middleware.copy:filter_factory
+	keymaster = swift.common.middleware.crypto.keymaster:filter_factory
+	encryption = swift.common.middleware.crypto:filter_factory
+	kms_keymaster = swift.common.middleware.crypto.kms_keymaster:filter_factory
+	kmip_keymaster = swift.common.middleware.crypto.kmip_keymaster:filter_factory
+	listing_formats = swift.common.middleware.listing_formats:filter_factory
+	symlink = swift.common.middleware.symlink:filter_factory
+	s3api = swift.common.middleware.s3api.s3api:filter_factory
+	s3token = swift.common.middleware.s3api.s3token:filter_factory
+	etag_quoter = swift.common.middleware.etag_quoter:filter_factory
+swift.diskfile = 
+	replication.fs = swift.obj.diskfile:DiskFileManager
+	erasure_coding.fs = swift.obj.diskfile:ECDiskFileManager
+swift.object_audit_watcher = 
+	dark_data = swift.obj.watchers.dark_data:DarkDataWatcher
+
+[egg_info]
+tag_build = 
+tag_date = 0
 
diff -pruN 2.36.0-1/swift.egg-info/PKG-INFO 2.36.0-0ubuntu1/swift.egg-info/PKG-INFO
--- 2.36.0-1/swift.egg-info/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/PKG-INFO	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1,217 @@
+Metadata-Version: 2.1
+Name: swift
+Version: 2.36.0
+Summary: OpenStack Object Storage
+Home-page: https://docs.openstack.org/swift/latest/
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+Project-URL: Documentation, https://docs.openstack.org/swift/latest/
+Project-URL: Bug Tracker, https://bugs.launchpad.net/swift
+Project-URL: Source Code, https://opendev.org/openstack/swift/
+Project-URL: Release Notes, https://opendev.org/openstack/swift/src/branch/master/CHANGELOG
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Information Technology
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Requires-Python: >=3.7
+Description-Content-Type: text/x-rst
+License-File: LICENSE
+License-File: AUTHORS
+Requires-Dist: eventlet!=0.34.3,>=0.25.0
+Requires-Dist: greenlet>=0.4.14
+Requires-Dist: PasteDeploy>=2.0.0
+Requires-Dist: lxml>=4.2.3
+Requires-Dist: requests>=2.14.2
+Requires-Dist: xattr>=0.7.2
+Requires-Dist: PyECLib!=1.6.2,!=1.6.3,>=1.3.1
+Requires-Dist: cryptography>=2.0.2
+Requires-Dist: dnspython>=1.15.0
+Provides-Extra: kms-keymaster
+Requires-Dist: oslo.config>=5.2.0; extra == "kms-keymaster"
+Requires-Dist: castellan>=0.13.0; extra == "kms-keymaster"
+Provides-Extra: kmip-keymaster
+Requires-Dist: pykmip>=0.7.0; extra == "kmip-keymaster"
+Provides-Extra: keystone
+Requires-Dist: keystonemiddleware>=4.17.0; extra == "keystone"
+Provides-Extra: test
+Requires-Dist: hacking<7.1.0,>=2.0; extra == "test"
+Requires-Dist: coverage>=5.2.1; extra == "test"
+Requires-Dist: pytest>=4.6.11; extra == "test"
+Requires-Dist: pytest-subtests>=0.3.0; extra == "test"
+Requires-Dist: pytest-cov>=2.12.1; extra == "test"
+Requires-Dist: stestr>=2.0.0; extra == "test"
+Requires-Dist: python-swiftclient>=3.2.0; extra == "test"
+Requires-Dist: python-keystoneclient>=3.19.0; extra == "test"
+Requires-Dist: boto>=2.32.1; extra == "test"
+Requires-Dist: boto3>=1.9; extra == "test"
+Requires-Dist: botocore>=1.12; extra == "test"
+Requires-Dist: requests-mock>=1.2.0; extra == "test"
+Requires-Dist: keystonemiddleware>=4.17.0; extra == "test"
+Requires-Dist: bandit>=1.1.0; extra == "test"
+Requires-Dist: docutils>=0.15; extra == "test"
+
+===============
+OpenStack Swift
+===============
+
+OpenStack Swift is a distributed object storage system designed to scale
+from a single machine to thousands of servers. Swift is optimized for
+multi-tenancy and high concurrency. Swift is ideal for backups, web and mobile
+content, and any other unstructured data that can grow without bound.
+
+Swift provides a simple, REST-based API fully documented at
+https://docs.openstack.org/swift/latest/.
+
+Swift was originally developed as the basis for Rackspace's Cloud Files
+and was open-sourced in 2010 as part of the OpenStack project. It has
+since grown to include contributions from many companies and has spawned
+a thriving ecosystem of 3rd party tools. Swift's contributors are listed
+in the AUTHORS file.
+
+Docs
+----
+
+To build documentation run::
+
+    pip install -r requirements.txt -r doc/requirements.txt
+    sphinx-build -W -b html doc/source doc/build/html
+
+and then browse to doc/build/html/index.html. These docs are auto-generated
+after every commit and available online at
+https://docs.openstack.org/swift/latest/.
+
+For Developers
+--------------
+
+Getting Started
+~~~~~~~~~~~~~~~
+
+Swift is part of OpenStack and follows the code contribution, review, and
+testing processes common to all OpenStack projects.
+
+If you would like to start contributing, check out these
+`notes <CONTRIBUTING.rst>`__ to help you get started.
+
+The best place to get started is the
+`"SAIO - Swift All In One" <https://docs.openstack.org/swift/latest/development_saio.html>`__.
+This document will walk you through setting up a development cluster of
+Swift in a VM. The SAIO environment is ideal for running small-scale
+tests against Swift and trying out new features and bug fixes.
+
+Tests
+~~~~~
+
+There are three types of tests included in Swift's source tree.
+
+#. Unit tests
+#. Functional tests
+#. Probe tests
+
+Unit tests check that small sections of the code behave properly. For example,
+a unit test may test a single function to ensure that various input gives the
+expected output. This validates that the code is correct and regressions are
+not introduced.
+
+Functional tests check that the client API is working as expected. These can
+be run against any endpoint claiming to support the Swift API (although some
+tests require multiple accounts with different privilege levels). These are
+"black box" tests that ensure that client apps written against Swift will
+continue to work.
+
+Probe tests are "white box" tests that validate the internal workings of a
+Swift cluster. They are written to work against the
+`"SAIO - Swift All In One" <https://docs.openstack.org/swift/latest/development_saio.html>`__
+dev environment. For example, a probe test may create an object, delete one
+replica, and ensure that the background consistency processes find and correct
+the error.
+
+You can run unit tests with ``.unittests``, functional tests with
+``.functests``, and probe tests with ``.probetests``. There is an
+additional ``.alltests`` script that wraps the other three.
+
+To fully run the tests, the target environment must use a filesystem that
+supports large xattrs. XFS is strongly recommended. For unit tests and in-
+process functional tests, either mount ``/tmp`` with XFS or provide another
+XFS filesystem via the ``TMPDIR`` environment variable. Without this setting,
+tests should still pass, but a very large number will be skipped.
+
+Code Organization
+~~~~~~~~~~~~~~~~~
+
+-  doc/: Documentation
+-  etc/: Sample config files
+-  examples/: Config snippets used in the docs
+-  swift/: Core code
+
+   -  account/: account server
+   -  cli/: code that backs some of the CLI tools
+   -  common/: code shared by different modules
+
+      -  middleware/: "standard", officially-supported middleware
+      -  ring/: code implementing Swift's ring
+
+   -  container/: container server
+   -  locale/: internationalization (translation) data
+   -  obj/: object server
+   -  proxy/: proxy server
+
+-  test/: Unit, functional, and probe tests
+
+Data Flow
+~~~~~~~~~
+
+Swift is a WSGI application and uses eventlet's WSGI server. After the
+processes are running, the entry point for new requests is the
+``Application`` class in ``swift/proxy/server.py``. From there, a
+controller is chosen, and the request is processed. The proxy may choose
+to forward the request to a back-end server. For example, the entry
+point for requests to the object server is the ``ObjectController``
+class in ``swift/obj/server.py``.
+
+For Deployers
+-------------
+
+Deployer docs are also available at
+https://docs.openstack.org/swift/latest/. A good starting point is at
+https://docs.openstack.org/swift/latest/deployment_guide.html
+There is an `ops runbook <https://docs.openstack.org/swift/latest/ops_runbook/index.html>`__
+that gives information about how to diagnose and troubleshoot common issues
+when running a Swift cluster.
+
+You can run functional tests against a Swift cluster with
+``.functests``. These functional tests require ``/etc/swift/test.conf``
+to run. A sample config file can be found in this source tree in
+``test/sample.conf``.
+
+For Client Apps
+---------------
+
+For client applications, official Python language bindings are provided
+at https://opendev.org/openstack/python-swiftclient.
+
+Complete API documentation at
+https://docs.openstack.org/api-ref/object-store/
+
+There is a large ecosystem of applications and libraries that support and
+work with OpenStack Swift. Several are listed on the
+`associated projects <https://docs.openstack.org/swift/latest/associated_projects.html>`__
+page.
+
+--------------
+
+For more information come hang out in #openstack-swift on OFTC.
+
+Thanks,
+
+The Swift Development Team
+
diff -pruN 2.36.0-1/swift.egg-info/SOURCES.txt 2.36.0-0ubuntu1/swift.egg-info/SOURCES.txt
--- 2.36.0-1/swift.egg-info/SOURCES.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/SOURCES.txt	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1,925 @@
+.alltests
+.coveragerc
+.dockerignore
+.functests
+.mailmap
+.manpages
+.probetests
+.stestr.conf
+.unittests
+.zuul.yaml
+AUTHORS
+CHANGELOG
+CONTRIBUTING.rst
+Dockerfile
+LICENSE
+MANIFEST.in
+README.rst
+REVIEW_GUIDELINES.rst
+bandit.yaml
+bindep.txt
+lower-constraints.txt
+py3-constraints.txt
+pyproject.toml
+requirements.txt
+setup.cfg
+setup.py
+test-requirements.txt
+tox.ini
+api-ref/source/conf.py
+api-ref/source/index.rst
+api-ref/source/metadata_header_encoding.inc
+api-ref/source/metadata_header_syntax.inc
+api-ref/source/parameters.yaml
+api-ref/source/storage-account-services.inc
+api-ref/source/storage-container-services.inc
+api-ref/source/storage-object-services.inc
+api-ref/source/storage_endpoints.inc
+api-ref/source/storage_info.inc
+api-ref/source/samples/account-containers-list-http-request-json.txt
+api-ref/source/samples/account-containers-list-http-request-xml.txt
+api-ref/source/samples/account-containers-list-http-response-json.txt
+api-ref/source/samples/account-containers-list-http-response-xml.txt
+api-ref/source/samples/account-containers-list-response.json
+api-ref/source/samples/account-containers-list-response.xml
+api-ref/source/samples/capabilities-list-response.json
+api-ref/source/samples/containers-list-http-request.txt
+api-ref/source/samples/containers-list-http-response.txt
+api-ref/source/samples/endpoints-list-response-headers.json
+api-ref/source/samples/endpoints-list-response.json
+api-ref/source/samples/goodbyeworld.txt
+api-ref/source/samples/helloworld.txt
+api-ref/source/samples/objects-list-http-response-json.txt
+api-ref/source/samples/objects-list-http-response-xml.txt
+api-ref/source/samples/objects-list-response.json
+api-ref/source/samples/objects-list-response.xml
+doc/requirements.txt
+doc/manpages/account-server.conf.5
+doc/manpages/container-reconciler.conf.5
+doc/manpages/container-server.conf.5
+doc/manpages/container-sync-realms.conf.5
+doc/manpages/dispersion.conf.5
+doc/manpages/object-expirer.conf.5
+doc/manpages/object-server.conf.5
+doc/manpages/proxy-server.conf.5
+doc/manpages/swift-account-audit.1
+doc/manpages/swift-account-auditor.1
+doc/manpages/swift-account-info.1
+doc/manpages/swift-account-reaper.1
+doc/manpages/swift-account-replicator.1
+doc/manpages/swift-account-server.1
+doc/manpages/swift-config.1
+doc/manpages/swift-container-auditor.1
+doc/manpages/swift-container-info.1
+doc/manpages/swift-container-reconciler.1
+doc/manpages/swift-container-replicator.1
+doc/manpages/swift-container-server.1
+doc/manpages/swift-container-sync.1
+doc/manpages/swift-container-updater.1
+doc/manpages/swift-dispersion-populate.1
+doc/manpages/swift-dispersion-report.1
+doc/manpages/swift-drive-audit.1
+doc/manpages/swift-form-signature.1
+doc/manpages/swift-get-nodes.1
+doc/manpages/swift-init.1
+doc/manpages/swift-object-auditor.1
+doc/manpages/swift-object-expirer.1
+doc/manpages/swift-object-info.1
+doc/manpages/swift-object-reconstructor.1
+doc/manpages/swift-object-relinker.1
+doc/manpages/swift-object-replicator.1
+doc/manpages/swift-object-server.1
+doc/manpages/swift-object-updater.1
+doc/manpages/swift-oldies.1
+doc/manpages/swift-orphans.1
+doc/manpages/swift-proxy-server.1
+doc/manpages/swift-recon-cron.1
+doc/manpages/swift-recon.1
+doc/manpages/swift-reconciler-enqueue.1
+doc/manpages/swift-ring-builder-analyzer.1
+doc/manpages/swift-ring-builder.1
+doc/manpages/swift-ring-composer.1
+doc/manpages/swift.conf.5
+doc/s3api/conf/ceph-known-failures-keystone.yaml
+doc/s3api/conf/ceph-known-failures-tempauth.yaml
+doc/s3api/rnc/access_control_policy.rnc
+doc/s3api/rnc/bucket_logging_status.rnc
+doc/s3api/rnc/common.rnc
+doc/s3api/rnc/complete_multipart_upload.rnc
+doc/s3api/rnc/complete_multipart_upload_result.rnc
+doc/s3api/rnc/copy_object_result.rnc
+doc/s3api/rnc/copy_part_result.rnc
+doc/s3api/rnc/create_bucket_configuration.rnc
+doc/s3api/rnc/delete.rnc
+doc/s3api/rnc/delete_result.rnc
+doc/s3api/rnc/error.rnc
+doc/s3api/rnc/initiate_multipart_upload_result.rnc
+doc/s3api/rnc/lifecycle_configuration.rnc
+doc/s3api/rnc/list_all_my_buckets_result.rnc
+doc/s3api/rnc/list_bucket_result.rnc
+doc/s3api/rnc/list_multipart_uploads_result.rnc
+doc/s3api/rnc/list_parts_result.rnc
+doc/s3api/rnc/list_versions_result.rnc
+doc/s3api/rnc/location_constraint.rnc
+doc/s3api/rnc/versioning_configuration.rnc
+doc/saio/rsyncd.conf
+doc/saio/bin/remakerings
+doc/saio/bin/resetswift
+doc/saio/bin/startmain
+doc/saio/bin/startrest
+doc/saio/rsyslog.d/10-swift.conf
+doc/saio/swift/container-sync-realms.conf
+doc/saio/swift/internal-client.conf
+doc/saio/swift/object-expirer.conf
+doc/saio/swift/proxy-server.conf
+doc/saio/swift/swift.conf
+doc/saio/swift/account-server/1.conf
+doc/saio/swift/account-server/2.conf
+doc/saio/swift/account-server/3.conf
+doc/saio/swift/account-server/4.conf
+doc/saio/swift/container-reconciler/1.conf
+doc/saio/swift/container-reconciler/2.conf
+doc/saio/swift/container-reconciler/3.conf
+doc/saio/swift/container-reconciler/4.conf
+doc/saio/swift/container-server/1.conf
+doc/saio/swift/container-server/2.conf
+doc/saio/swift/container-server/3.conf
+doc/saio/swift/container-server/4.conf
+doc/saio/swift/object-server/1.conf
+doc/saio/swift/object-server/2.conf
+doc/saio/swift/object-server/3.conf
+doc/saio/swift/object-server/4.conf
+doc/source/account.rst
+doc/source/admin_guide.rst
+doc/source/apache_deployment_guide.rst
+doc/source/associated_projects.rst
+doc/source/audit_watchers.rst
+doc/source/conf.py
+doc/source/container.rst
+doc/source/cors.rst
+doc/source/crossdomain.rst
+doc/source/db.rst
+doc/source/deployment_guide.rst
+doc/source/development_auth.rst
+doc/source/development_guidelines.rst
+doc/source/development_middleware.rst
+doc/source/development_ondisk_backends.rst
+doc/source/development_saio.rst
+doc/source/development_watchers.rst
+doc/source/first_contribution_swift.rst
+doc/source/getting_started.rst
+doc/source/index.rst
+doc/source/logs.rst
+doc/source/middleware.rst
+doc/source/misc.rst
+doc/source/object.rst
+doc/source/overview_acl.rst
+doc/source/overview_architecture.rst
+doc/source/overview_auth.rst
+doc/source/overview_backing_store.rst
+doc/source/overview_container_sharding.rst
+doc/source/overview_container_sync.rst
+doc/source/overview_encryption.rst
+doc/source/overview_erasure_code.rst
+doc/source/overview_expiring_objects.rst
+doc/source/overview_global_cluster.rst
+doc/source/overview_large_objects.rst
+doc/source/overview_policies.rst
+doc/source/overview_reaper.rst
+doc/source/overview_replication.rst
+doc/source/overview_ring.rst
+doc/source/overview_ring_format.rst
+doc/source/overview_wsgi_management.rst
+doc/source/policies_saio.rst
+doc/source/proxy.rst
+doc/source/ratelimit.rst
+doc/source/replication_network.rst
+doc/source/ring.rst
+doc/source/ring_background.rst
+doc/source/ring_partpower.rst
+doc/source/s3_compat.rst
+doc/source/test-cors.html
+doc/source/_extra/.htaccess
+doc/source/admin/index.rst
+doc/source/admin/objectstorage-EC.rst
+doc/source/admin/objectstorage-account-reaper.rst
+doc/source/admin/objectstorage-arch.rst
+doc/source/admin/objectstorage-auditors.rst
+doc/source/admin/objectstorage-characteristics.rst
+doc/source/admin/objectstorage-components.rst
+doc/source/admin/objectstorage-features.rst
+doc/source/admin/objectstorage-intro.rst
+doc/source/admin/objectstorage-large-objects.rst
+doc/source/admin/objectstorage-monitoring.rst
+doc/source/admin/objectstorage-replication.rst
+doc/source/admin/objectstorage-ringbuilder.rst
+doc/source/admin/objectstorage-tenant-specific-image-storage.rst
+doc/source/admin/objectstorage-troubleshoot.rst
+doc/source/admin/figures/objectstorage-accountscontainers.png
+doc/source/admin/figures/objectstorage-arch.png
+doc/source/admin/figures/objectstorage-buildingblocks.png
+doc/source/admin/figures/objectstorage-nodes.png
+doc/source/admin/figures/objectstorage-partitions.png
+doc/source/admin/figures/objectstorage-replication.png
+doc/source/admin/figures/objectstorage-ring.png
+doc/source/admin/figures/objectstorage-usecase.png
+doc/source/admin/figures/objectstorage-zones.png
+doc/source/admin/figures/objectstorage.png
+doc/source/api/authentication.rst
+doc/source/api/bulk-delete.rst
+doc/source/api/container_quotas.rst
+doc/source/api/discoverability.rst
+doc/source/api/form_post_middleware.rst
+doc/source/api/large_objects.rst
+doc/source/api/object-expiration.rst
+doc/source/api/object_api_v1_overview.rst
+doc/source/api/object_versioning.rst
+doc/source/api/pagination.rst
+doc/source/api/pseudo-hierarchical-folders-directories.rst
+doc/source/api/serialized-response-formats.rst
+doc/source/api/static-website.rst
+doc/source/api/temporary_url_middleware.rst
+doc/source/api/use_content-encoding_metadata.rst
+doc/source/api/use_the_content-disposition_metadata.rst
+doc/source/config/account_server_config.rst
+doc/source/config/container_server_config.rst
+doc/source/config/global_memcache_config.rst
+doc/source/config/index.rst
+doc/source/config/object_server_config.rst
+doc/source/config/proxy_server_config.rst
+doc/source/config/swift_common_config.rst
+doc/source/contributor/contributing.rst
+doc/source/contributor/review_guidelines.rst
+doc/source/images/ec_overview.png
+doc/source/images/reload_process_tree_1.svg
+doc/source/images/reload_process_tree_2.svg
+doc/source/images/reload_process_tree_3.svg
+doc/source/images/reload_process_tree_4.svg
+doc/source/images/reload_process_tree_5.svg
+doc/source/images/reload_process_tree_6.svg
+doc/source/images/sharded_GET.svg
+doc/source/images/sharding_GET.svg
+doc/source/images/sharding_cleave1_load.svg
+doc/source/images/sharding_cleave2_load.svg
+doc/source/images/sharding_cleave_basic.svg
+doc/source/images/sharding_db_states.svg
+doc/source/images/sharding_scan_basic.svg
+doc/source/images/sharding_scan_load.svg
+doc/source/images/sharding_sharded_load.svg
+doc/source/images/sharding_unsharded.svg
+doc/source/images/sharding_unsharded_load.svg
+doc/source/install/controller-common_prerequisites.txt
+doc/source/install/controller-include.txt
+doc/source/install/controller-install-debian.rst
+doc/source/install/controller-install-rdo.rst
+doc/source/install/controller-install-ubuntu.rst
+doc/source/install/controller-install.rst
+doc/source/install/edit_hosts_file.txt
+doc/source/install/environment-networking.rst
+doc/source/install/finalize-installation-rdo.rst
+doc/source/install/finalize-installation-ubuntu-debian.rst
+doc/source/install/finalize-installation.rst
+doc/source/install/get_started.rst
+doc/source/install/index.rst
+doc/source/install/initial-rings.rst
+doc/source/install/next-steps.rst
+doc/source/install/storage-include1.txt
+doc/source/install/storage-include2.txt
+doc/source/install/storage-include3.txt
+doc/source/install/storage-install-rdo.rst
+doc/source/install/storage-install-ubuntu-debian.rst
+doc/source/install/storage-install.rst
+doc/source/install/verify.rst
+doc/source/metrics/account_auditor.rst
+doc/source/metrics/account_reaper.rst
+doc/source/metrics/account_replicator.rst
+doc/source/metrics/account_server.rst
+doc/source/metrics/all.rst
+doc/source/metrics/container_auditor.rst
+doc/source/metrics/container_replicator.rst
+doc/source/metrics/container_server.rst
+doc/source/metrics/container_sync.rst
+doc/source/metrics/container_updater.rst
+doc/source/metrics/labels.rst
+doc/source/metrics/object_auditor.rst
+doc/source/metrics/object_expirer.rst
+doc/source/metrics/object_reconstructor.rst
+doc/source/metrics/object_replicator.rst
+doc/source/metrics/object_server.rst
+doc/source/metrics/object_updater.rst
+doc/source/metrics/proxy_server.rst
+doc/source/ops_runbook/diagnose.rst
+doc/source/ops_runbook/index.rst
+doc/source/ops_runbook/maintenance.rst
+doc/source/ops_runbook/procedures.rst
+doc/source/ops_runbook/troubleshooting.rst
+docker/dockerhub_description.md
+docker/s6-gpg-pub-key
+docker/install_scripts/00_swift_needs.sh
+docker/install_scripts/10_apk_install_prereqs.sh
+docker/install_scripts/21_apk_install_py3.sh
+docker/install_scripts/50_swift_install.sh
+docker/install_scripts/60_pip_uninstall_dev.sh
+docker/install_scripts/99_apk_uninstall_dev.sh
+docker/install_scripts/python_test_dirs
+docker/rootfs/etc/profile
+docker/rootfs/etc/rsyncd.conf
+docker/rootfs/etc/rsyslog.conf
+docker/rootfs/etc/cont-init.d/01_swift_logs
+docker/rootfs/etc/cont-init.d/02_build_remakerings
+docker/rootfs/etc/fix-attrs.d/logging
+docker/rootfs/etc/fix-attrs.d/srv_node
+docker/rootfs/etc/fix-attrs.d/swift
+docker/rootfs/etc/fix-attrs.d/tmp
+docker/rootfs/etc/rsyslog.d/00-swift.conf
+docker/rootfs/etc/rsyslog.d/50-default.conf
+docker/rootfs/etc/services.d/memcached/run
+docker/rootfs/etc/services.d/swift-account/run
+docker/rootfs/etc/services.d/swift-container/run
+docker/rootfs/etc/services.d/swift-object/run
+docker/rootfs/etc/services.d/swift-proxy/run
+docker/rootfs/etc/socklog.rules/swift_account_server
+docker/rootfs/etc/socklog.rules/swift_all
+docker/rootfs/etc/socklog.rules/swift_container_server
+docker/rootfs/etc/socklog.rules/swift_object_server
+docker/rootfs/etc/socklog.rules/swift_proxy_server
+docker/rootfs/etc/swift/account-server.conf
+docker/rootfs/etc/swift/container-server.conf
+docker/rootfs/etc/swift/object-server.conf
+docker/rootfs/etc/swift/proxy-server.conf
+docker/rootfs/etc/swift/swift.conf
+docker/rootfs/etc/swift_build/build_devices
+docker/rootfs/etc/swift_build/build_remakerings
+docker/rootfs/etc/swift_build/prepare_rings
+etc/account-server.conf-sample
+etc/backend-ratelimit.conf-sample
+etc/container-reconciler.conf-sample
+etc/container-server.conf-sample
+etc/container-sync-realms.conf-sample
+etc/dispersion.conf-sample
+etc/drive-audit.conf-sample
+etc/internal-client.conf-sample
+etc/keymaster.conf-sample
+etc/magic
+etc/memcache.conf-sample
+etc/mime.types-sample
+etc/object-expirer.conf-sample
+etc/object-server.conf-sample
+etc/proxy-server.conf-sample
+etc/rsyncd.conf-sample
+etc/swift-rsyslog.conf-sample
+etc/swift.conf-sample
+examples/apache2/account-server.template
+examples/apache2/container-server.template
+examples/apache2/object-server.template
+examples/apache2/proxy-server.template
+examples/wsgi/account-server.wsgi.template
+examples/wsgi/container-server.wsgi.template
+examples/wsgi/object-server.wsgi.template
+examples/wsgi/proxy-server.wsgi.template
+releasenotes/notes/2_10_0_release-666a76f4975657a5.yaml
+releasenotes/notes/2_11_0_release-ac1d256e455d347e.yaml
+releasenotes/notes/2_12_0_release-06af226abc7b91ef.yaml
+releasenotes/notes/2_13_0_release-875e1fb1ef59f015.yaml
+releasenotes/notes/2_14_0_release-7c3ef515ebded888.yaml
+releasenotes/notes/2_15_0_release-0a05a011fb85a9c9.yaml
+releasenotes/notes/2_15_1_release-be25e67bfc5e886a.yaml
+releasenotes/notes/2_15_2_release-6996eccabba558b4.yaml
+releasenotes/notes/2_16_0_release-d48cb9b2629df8ab.yaml
+releasenotes/notes/2_17_0_release-bd35f18c41c5ef18.yaml
+releasenotes/notes/2_17_1_release-dd6e6879cbb94f85.yaml
+releasenotes/notes/2_18_0_release-3acf63cfe2475c65.yaml
+releasenotes/notes/2_19_0_release-3e6ee3e6a1fcc6bb.yaml
+releasenotes/notes/2_19_1_release-5072dd72557f5708.yaml
+releasenotes/notes/2_20_0_release-7b090a5f4bd916e4.yaml
+releasenotes/notes/2_21_0_release-d8ae33ef18b7be3a.yaml
+releasenotes/notes/2_22_0_release-f60d29508b3c1283.yaml
+releasenotes/notes/2_23_0_release-2a2d11c1934f0b61.yaml
+releasenotes/notes/2_24_0_release-1ca244cc959922fc.yaml
+releasenotes/notes/2_25_0_release-09410c808881bf21.yaml
+releasenotes/notes/2_26_0_release-6548eadcba544f72.yaml
+releasenotes/notes/2_27_0_release-a9ae967d6d271342.yaml
+releasenotes/notes/2_28_0_release-f2515e07fb61cd01.yaml
+releasenotes/notes/2_29_0_release-af71f7efd73109b0.yaml
+releasenotes/notes/2_29_1_release-a2962252523d9396.yaml
+releasenotes/notes/2_30_0_release-642778c3010848db.yaml
+releasenotes/notes/2_31_0_release-77e6b20dfba3b32c.yaml
+releasenotes/notes/2_31_1_release-20ccd07e32b91c1f.yaml
+releasenotes/notes/2_32_0_release-39c8fb77a0a3e72d.yaml
+releasenotes/notes/3_33_0_release-d208917f5012cedd.yaml
+releasenotes/notes/release-2.34.0-2136ae35f56f8b5a.yaml
+releasenotes/notes/release-2.35.0-bb2736e6cbc4a520.yaml
+releasenotes/notes/release-2.36.0-9f4b539db40bffd7.yaml
+releasenotes/source/2023.1.rst
+releasenotes/source/2023.2.rst
+releasenotes/source/2024.1.rst
+releasenotes/source/2024.2.rst
+releasenotes/source/2025.1.rst
+releasenotes/source/conf.py
+releasenotes/source/current.rst
+releasenotes/source/index.rst
+releasenotes/source/newton.rst
+releasenotes/source/ocata.rst
+releasenotes/source/pike.rst
+releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
+releasenotes/source/stein.rst
+releasenotes/source/train.rst
+releasenotes/source/ussuri.rst
+releasenotes/source/victoria.rst
+releasenotes/source/wallaby.rst
+releasenotes/source/xena.rst
+releasenotes/source/yoga.rst
+releasenotes/source/zed.rst
+releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
+releasenotes/source/locale/ja/LC_MESSAGES/releasenotes.po
+roles/additional-keystone-users/tasks/main.yaml
+roles/additional-tempauth-users/tasks/main.yaml
+roles/dsvm-additional-middlewares/tasks/main.yaml
+swift/__init__.py
+swift.egg-info/PKG-INFO
+swift.egg-info/SOURCES.txt
+swift.egg-info/dependency_links.txt
+swift.egg-info/entry_points.txt
+swift.egg-info/not-zip-safe
+swift.egg-info/pbr.json
+swift.egg-info/requires.txt
+swift.egg-info/top_level.txt
+swift/account/__init__.py
+swift/account/auditor.py
+swift/account/backend.py
+swift/account/reaper.py
+swift/account/replicator.py
+swift/account/server.py
+swift/account/utils.py
+swift/cli/__init__.py
+swift/cli/account_audit.py
+swift/cli/config.py
+swift/cli/container_deleter.py
+swift/cli/dispersion_populate.py
+swift/cli/dispersion_report.py
+swift/cli/drive_audit.py
+swift/cli/form_signature.py
+swift/cli/get_nodes.py
+swift/cli/info.py
+swift/cli/manage_shard_ranges.py
+swift/cli/oldies.py
+swift/cli/orphans.py
+swift/cli/recon.py
+swift/cli/recon_cron.py
+swift/cli/reconciler_enqueue.py
+swift/cli/relinker.py
+swift/cli/reload.py
+swift/cli/ring_builder_analyzer.py
+swift/cli/ringbuilder.py
+swift/cli/ringcomposer.py
+swift/cli/shard-info.py
+swift/common/__init__.py
+swift/common/base_storage_server.py
+swift/common/bufferedhttp.py
+swift/common/constraints.py
+swift/common/container_sync_realms.py
+swift/common/daemon.py
+swift/common/db.py
+swift/common/db_auditor.py
+swift/common/db_replicator.py
+swift/common/digest.py
+swift/common/direct_client.py
+swift/common/error_limiter.py
+swift/common/exceptions.py
+swift/common/header_key_dict.py
+swift/common/http.py
+swift/common/http_protocol.py
+swift/common/internal_client.py
+swift/common/linkat.py
+swift/common/manager.py
+swift/common/memcached.py
+swift/common/recon.py
+swift/common/registry.py
+swift/common/request_helpers.py
+swift/common/splice.py
+swift/common/statsd_client.py
+swift/common/storage_policy.py
+swift/common/swob.py
+swift/common/wsgi.py
+swift/common/middleware/__init__.py
+swift/common/middleware/account_quotas.py
+swift/common/middleware/acl.py
+swift/common/middleware/backend_ratelimit.py
+swift/common/middleware/bulk.py
+swift/common/middleware/catch_errors.py
+swift/common/middleware/cname_lookup.py
+swift/common/middleware/container_quotas.py
+swift/common/middleware/container_sync.py
+swift/common/middleware/copy.py
+swift/common/middleware/crossdomain.py
+swift/common/middleware/dlo.py
+swift/common/middleware/domain_remap.py
+swift/common/middleware/etag_quoter.py
+swift/common/middleware/formpost.py
+swift/common/middleware/gatekeeper.py
+swift/common/middleware/healthcheck.py
+swift/common/middleware/keystoneauth.py
+swift/common/middleware/list_endpoints.py
+swift/common/middleware/listing_formats.py
+swift/common/middleware/memcache.py
+swift/common/middleware/name_check.py
+swift/common/middleware/proxy_logging.py
+swift/common/middleware/ratelimit.py
+swift/common/middleware/read_only.py
+swift/common/middleware/recon.py
+swift/common/middleware/slo.py
+swift/common/middleware/staticweb.py
+swift/common/middleware/symlink.py
+swift/common/middleware/tempauth.py
+swift/common/middleware/tempurl.py
+swift/common/middleware/xprofile.py
+swift/common/middleware/crypto/__init__.py
+swift/common/middleware/crypto/crypto_utils.py
+swift/common/middleware/crypto/decrypter.py
+swift/common/middleware/crypto/encrypter.py
+swift/common/middleware/crypto/keymaster.py
+swift/common/middleware/crypto/kmip_keymaster.py
+swift/common/middleware/crypto/kms_keymaster.py
+swift/common/middleware/s3api/__init__.py
+swift/common/middleware/s3api/acl_handlers.py
+swift/common/middleware/s3api/acl_utils.py
+swift/common/middleware/s3api/etree.py
+swift/common/middleware/s3api/exception.py
+swift/common/middleware/s3api/s3api.py
+swift/common/middleware/s3api/s3request.py
+swift/common/middleware/s3api/s3response.py
+swift/common/middleware/s3api/s3token.py
+swift/common/middleware/s3api/subresource.py
+swift/common/middleware/s3api/utils.py
+swift/common/middleware/s3api/controllers/__init__.py
+swift/common/middleware/s3api/controllers/acl.py
+swift/common/middleware/s3api/controllers/base.py
+swift/common/middleware/s3api/controllers/bucket.py
+swift/common/middleware/s3api/controllers/location.py
+swift/common/middleware/s3api/controllers/logging.py
+swift/common/middleware/s3api/controllers/multi_delete.py
+swift/common/middleware/s3api/controllers/multi_upload.py
+swift/common/middleware/s3api/controllers/obj.py
+swift/common/middleware/s3api/controllers/object_lock.py
+swift/common/middleware/s3api/controllers/s3_acl.py
+swift/common/middleware/s3api/controllers/service.py
+swift/common/middleware/s3api/controllers/tagging.py
+swift/common/middleware/s3api/controllers/versioning.py
+swift/common/middleware/s3api/schema/access_control_policy.rng
+swift/common/middleware/s3api/schema/bucket_logging_status.rng
+swift/common/middleware/s3api/schema/common.rng
+swift/common/middleware/s3api/schema/complete_multipart_upload.rng
+swift/common/middleware/s3api/schema/complete_multipart_upload_result.rng
+swift/common/middleware/s3api/schema/copy_object_result.rng
+swift/common/middleware/s3api/schema/copy_part_result.rng
+swift/common/middleware/s3api/schema/create_bucket_configuration.rng
+swift/common/middleware/s3api/schema/delete.rng
+swift/common/middleware/s3api/schema/delete_result.rng
+swift/common/middleware/s3api/schema/error.rng
+swift/common/middleware/s3api/schema/initiate_multipart_upload_result.rng
+swift/common/middleware/s3api/schema/lifecycle_configuration.rng
+swift/common/middleware/s3api/schema/list_all_my_buckets_result.rng
+swift/common/middleware/s3api/schema/list_bucket_result.rng
+swift/common/middleware/s3api/schema/list_multipart_uploads_result.rng
+swift/common/middleware/s3api/schema/list_parts_result.rng
+swift/common/middleware/s3api/schema/list_versions_result.rng
+swift/common/middleware/s3api/schema/location_constraint.rng
+swift/common/middleware/s3api/schema/versioning_configuration.rng
+swift/common/middleware/versioned_writes/__init__.py
+swift/common/middleware/versioned_writes/legacy.py
+swift/common/middleware/versioned_writes/object_versioning.py
+swift/common/middleware/x_profile/__init__.py
+swift/common/middleware/x_profile/exceptions.py
+swift/common/middleware/x_profile/html_viewer.py
+swift/common/middleware/x_profile/profile_model.py
+swift/common/ring/__init__.py
+swift/common/ring/builder.py
+swift/common/ring/composite_builder.py
+swift/common/ring/io.py
+swift/common/ring/ring.py
+swift/common/ring/utils.py
+swift/common/utils/__init__.py
+swift/common/utils/base.py
+swift/common/utils/checksum.py
+swift/common/utils/config.py
+swift/common/utils/ipaddrs.py
+swift/common/utils/libc.py
+swift/common/utils/logs.py
+swift/common/utils/timestamp.py
+swift/container/__init__.py
+swift/container/auditor.py
+swift/container/backend.py
+swift/container/reconciler.py
+swift/container/replicator.py
+swift/container/server.py
+swift/container/sharder.py
+swift/container/sync.py
+swift/container/sync_store.py
+swift/container/updater.py
+swift/obj/__init__.py
+swift/obj/auditor.py
+swift/obj/diskfile.py
+swift/obj/expirer.py
+swift/obj/mem_diskfile.py
+swift/obj/mem_server.py
+swift/obj/reconstructor.py
+swift/obj/replicator.py
+swift/obj/server.py
+swift/obj/ssync_receiver.py
+swift/obj/ssync_sender.py
+swift/obj/updater.py
+swift/obj/watchers/__init__.py
+swift/obj/watchers/dark_data.py
+swift/proxy/__init__.py
+swift/proxy/server.py
+swift/proxy/controllers/__init__.py
+swift/proxy/controllers/account.py
+swift/proxy/controllers/base.py
+swift/proxy/controllers/container.py
+swift/proxy/controllers/info.py
+swift/proxy/controllers/obj.py
+test/__init__.py
+test/debug_logger.py
+test/sample.conf
+test/cors/README.rst
+test/cors/harness.js
+test/cors/index.html
+test/cors/main.py
+test/cors/test-account.js
+test/cors/test-container.js
+test/cors/test-info.js
+test/cors/test-large-objects.js
+test/cors/test-object.js
+test/cors/test-s3-obj.js
+test/cors/test-symlink.js
+test/cors/vendor/aws-sdk-2.829.0.min.js
+test/functional/__init__.py
+test/functional/mock_swift_key_manager.py
+test/functional/swift_test_client.py
+test/functional/test_access_control.py
+test/functional/test_account.py
+test/functional/test_container.py
+test/functional/test_dlo.py
+test/functional/test_domain_remap.py
+test/functional/test_object.py
+test/functional/test_object_versioning.py
+test/functional/test_protocol.py
+test/functional/test_slo.py
+test/functional/test_staticweb.py
+test/functional/test_symlink.py
+test/functional/test_tempurl.py
+test/functional/test_versioned_writes.py
+test/functional/tests.py
+test/functional/s3api/__init__.py
+test/functional/s3api/s3_test_client.py
+test/functional/s3api/test_acl.py
+test/functional/s3api/test_bucket.py
+test/functional/s3api/test_multi_delete.py
+test/functional/s3api/test_multi_upload.py
+test/functional/s3api/test_object.py
+test/functional/s3api/test_presigned.py
+test/functional/s3api/test_service.py
+test/functional/s3api/test_versioning.py
+test/functional/s3api/test_xxe_injection.py
+test/functional/s3api/utils.py
+test/probe/__init__.py
+test/probe/brain.py
+test/probe/common.py
+test/probe/test_account_failures.py
+test/probe/test_account_get_fake_responses_match.py
+test/probe/test_account_reaper.py
+test/probe/test_container_failures.py
+test/probe/test_container_merge_policy_index.py
+test/probe/test_container_sync.py
+test/probe/test_dark_data.py
+test/probe/test_db_replicator.py
+test/probe/test_empty_device_handoff.py
+test/probe/test_mpu.py
+test/probe/test_object_async_update.py
+test/probe/test_object_conditional_requests.py
+test/probe/test_object_expirer.py
+test/probe/test_object_failures.py
+test/probe/test_object_handoff.py
+test/probe/test_object_metadata_replication.py
+test/probe/test_object_partpower_increase.py
+test/probe/test_object_versioning.py
+test/probe/test_orphan_container.py
+test/probe/test_reconstructor_rebuild.py
+test/probe/test_reconstructor_revert.py
+test/probe/test_replication_servers_working.py
+test/probe/test_reserved_name.py
+test/probe/test_sharder.py
+test/probe/test_signals.py
+test/s3api/__init__.py
+test/s3api/test_conditional_writes.py
+test/s3api/test_input_errors.py
+test/s3api/test_mpu.py
+test/s3api/test_object_checksums.py
+test/s3api/test_object_lock.py
+test/s3api/test_request_target_style.py
+test/s3api/test_service.py
+test/s3api/test_versioning.py
+test/unit/__init__.py
+test/unit/helpers.py
+test/unit/account/__init__.py
+test/unit/account/test_auditor.py
+test/unit/account/test_backend.py
+test/unit/account/test_reaper.py
+test/unit/account/test_replicator.py
+test/unit/account/test_server.py
+test/unit/account/test_utils.py
+test/unit/cli/__init__.py
+test/unit/cli/test_container_deleter.py
+test/unit/cli/test_default_output.stub
+test/unit/cli/test_default_output_id_assigned.stub
+test/unit/cli/test_default_sorted_output.stub
+test/unit/cli/test_dispersion_report.py
+test/unit/cli/test_form_signature.py
+test/unit/cli/test_info.py
+test/unit/cli/test_ipv6_output.stub
+test/unit/cli/test_manage_shard_ranges.py
+test/unit/cli/test_recon.py
+test/unit/cli/test_recon_cron.py
+test/unit/cli/test_relinker.py
+test/unit/cli/test_reload.py
+test/unit/cli/test_ring_builder_analyzer.py
+test/unit/cli/test_ringbuilder.py
+test/unit/cli/test_ringcomposer.py
+test/unit/common/__init__.py
+test/unit/common/corrupted_example.db
+test/unit/common/malformed_example.db
+test/unit/common/malformed_schema_example.db
+test/unit/common/missing_container_info.db
+test/unit/common/test_base_storage_server.py
+test/unit/common/test_bufferedhttp.py
+test/unit/common/test_constraints.py
+test/unit/common/test_container_sync_realms.py
+test/unit/common/test_daemon.py
+test/unit/common/test_db.py
+test/unit/common/test_db_auditor.py
+test/unit/common/test_db_replicator.py
+test/unit/common/test_digest.py
+test/unit/common/test_direct_client.py
+test/unit/common/test_error_limiter.py
+test/unit/common/test_exceptions.py
+test/unit/common/test_header_key_dict.py
+test/unit/common/test_http_protocol.py
+test/unit/common/test_internal_client.py
+test/unit/common/test_linkat.py
+test/unit/common/test_manager.py
+test/unit/common/test_memcached.py
+test/unit/common/test_recon.py
+test/unit/common/test_registry.py
+test/unit/common/test_request_helpers.py
+test/unit/common/test_splice.py
+test/unit/common/test_statsd_client.py
+test/unit/common/test_storage_policy.py
+test/unit/common/test_swob.py
+test/unit/common/test_utils.py
+test/unit/common/test_wsgi.py
+test/unit/common/middleware/__init__.py
+test/unit/common/middleware/helpers.py
+test/unit/common/middleware/test_account_quotas.py
+test/unit/common/middleware/test_acl.py
+test/unit/common/middleware/test_backend_ratelimit.py
+test/unit/common/middleware/test_bulk.py
+test/unit/common/middleware/test_catch_errors.py
+test/unit/common/middleware/test_cname_lookup.py
+test/unit/common/middleware/test_container_sync.py
+test/unit/common/middleware/test_copy.py
+test/unit/common/middleware/test_crossdomain.py
+test/unit/common/middleware/test_dlo.py
+test/unit/common/middleware/test_domain_remap.py
+test/unit/common/middleware/test_etag_quoter.py
+test/unit/common/middleware/test_formpost.py
+test/unit/common/middleware/test_gatekeeper.py
+test/unit/common/middleware/test_healthcheck.py
+test/unit/common/middleware/test_helpers.py
+test/unit/common/middleware/test_keystoneauth.py
+test/unit/common/middleware/test_list_endpoints.py
+test/unit/common/middleware/test_listing_formats.py
+test/unit/common/middleware/test_memcache.py
+test/unit/common/middleware/test_name_check.py
+test/unit/common/middleware/test_object_versioning.py
+test/unit/common/middleware/test_proxy_logging.py
+test/unit/common/middleware/test_quotas.py
+test/unit/common/middleware/test_ratelimit.py
+test/unit/common/middleware/test_read_only.py
+test/unit/common/middleware/test_recon.py
+test/unit/common/middleware/test_slo.py
+test/unit/common/middleware/test_staticweb.py
+test/unit/common/middleware/test_subrequest_logging.py
+test/unit/common/middleware/test_symlink.py
+test/unit/common/middleware/test_tempauth.py
+test/unit/common/middleware/test_tempurl.py
+test/unit/common/middleware/test_versioned_writes.py
+test/unit/common/middleware/test_xprofile.py
+test/unit/common/middleware/crypto/__init__.py
+test/unit/common/middleware/crypto/crypto_helpers.py
+test/unit/common/middleware/crypto/test_crypto.py
+test/unit/common/middleware/crypto/test_crypto_utils.py
+test/unit/common/middleware/crypto/test_decrypter.py
+test/unit/common/middleware/crypto/test_encrypter.py
+test/unit/common/middleware/crypto/test_encryption.py
+test/unit/common/middleware/crypto/test_keymaster.py
+test/unit/common/middleware/crypto/test_kmip_keymaster.py
+test/unit/common/middleware/crypto/test_kms_keymaster.py
+test/unit/common/middleware/s3api/__init__.py
+test/unit/common/middleware/s3api/exceptions.py
+test/unit/common/middleware/s3api/helpers.py
+test/unit/common/middleware/s3api/test_acl.py
+test/unit/common/middleware/s3api/test_acl_handlers.py
+test/unit/common/middleware/s3api/test_acl_utils.py
+test/unit/common/middleware/s3api/test_bucket.py
+test/unit/common/middleware/s3api/test_cfg.py
+test/unit/common/middleware/s3api/test_etree.py
+test/unit/common/middleware/s3api/test_location.py
+test/unit/common/middleware/s3api/test_logging.py
+test/unit/common/middleware/s3api/test_multi_delete.py
+test/unit/common/middleware/s3api/test_multi_get.py
+test/unit/common/middleware/s3api/test_multi_upload.py
+test/unit/common/middleware/s3api/test_obj.py
+test/unit/common/middleware/s3api/test_object_lock.py
+test/unit/common/middleware/s3api/test_s3_acl.py
+test/unit/common/middleware/s3api/test_s3api.py
+test/unit/common/middleware/s3api/test_s3request.py
+test/unit/common/middleware/s3api/test_s3response.py
+test/unit/common/middleware/s3api/test_s3token.py
+test/unit/common/middleware/s3api/test_service.py
+test/unit/common/middleware/s3api/test_subresource.py
+test/unit/common/middleware/s3api/test_utils.py
+test/unit/common/middleware/s3api/test_versioning.py
+test/unit/common/ring/__init__.py
+test/unit/common/ring/test_builder.py
+test/unit/common/ring/test_composite_builder.py
+test/unit/common/ring/test_io.py
+test/unit/common/ring/test_ring.py
+test/unit/common/ring/test_utils.py
+test/unit/common/utils/__init__.py
+test/unit/common/utils/test_checksum.py
+test/unit/common/utils/test_config.py
+test/unit/common/utils/test_ipaddrs.py
+test/unit/common/utils/test_libc.py
+test/unit/common/utils/test_logs.py
+test/unit/common/utils/test_timestamp.py
+test/unit/container/__init__.py
+test/unit/container/test_auditor.py
+test/unit/container/test_backend.py
+test/unit/container/test_reconciler.py
+test/unit/container/test_replicator.py
+test/unit/container/test_server.py
+test/unit/container/test_sharder.py
+test/unit/container/test_sync.py
+test/unit/container/test_sync_store.py
+test/unit/container/test_updater.py
+test/unit/obj/__init__.py
+test/unit/obj/common.py
+test/unit/obj/test_auditor.py
+test/unit/obj/test_diskfile.py
+test/unit/obj/test_expirer.py
+test/unit/obj/test_reconstructor.py
+test/unit/obj/test_replicator.py
+test/unit/obj/test_server.py
+test/unit/obj/test_ssync.py
+test/unit/obj/test_ssync_receiver.py
+test/unit/obj/test_ssync_sender.py
+test/unit/obj/test_updater.py
+test/unit/proxy/__init__.py
+test/unit/proxy/test_mem_server.py
+test/unit/proxy/test_server.py
+test/unit/proxy/test_sysmeta.py
+test/unit/proxy/controllers/__init__.py
+test/unit/proxy/controllers/test_account.py
+test/unit/proxy/controllers/test_base.py
+test/unit/proxy/controllers/test_container.py
+test/unit/proxy/controllers/test_info.py
+test/unit/proxy/controllers/test_obj.py
+tools/test-setup.sh
+tools/playbooks/ceph-s3tests/ceph-s3.conf
+tools/playbooks/ceph-s3tests/post.yaml
+tools/playbooks/ceph-s3tests/run.yaml
+tools/playbooks/common/cover-post.yaml
+tools/playbooks/common/install_dependencies.yaml
+tools/playbooks/common/restart_swift.yaml
+tools/playbooks/cors/install_selenium.yaml
+tools/playbooks/cors/post.yaml
+tools/playbooks/cors/run.yaml
+tools/playbooks/dsvm/post.yaml
+tools/playbooks/dsvm/pre.yaml
+tools/playbooks/dsvm/run.yaml
+tools/playbooks/multinode_setup/common_config.yaml
+tools/playbooks/multinode_setup/configure_loopback.yaml
+tools/playbooks/multinode_setup/make_rings.yaml
+tools/playbooks/multinode_setup/pre.yaml
+tools/playbooks/multinode_setup/run.yaml
+tools/playbooks/multinode_setup/templates/make_multinode_rings.j2
+tools/playbooks/multinode_setup/templates/rc.local.j2
+tools/playbooks/multinode_setup/templates/test.conf.j2
+tools/playbooks/probetests/post.yaml
+tools/playbooks/probetests/run.yaml
+tools/playbooks/s3api-tests/run.yaml
+tools/playbooks/saio_single_node_setup/add_s3api.yaml
+tools/playbooks/saio_single_node_setup/make_rings.yaml
+tools/playbooks/saio_single_node_setup/setup_saio.yaml
+tools/playbooks/saio_single_node_setup/templates/rc.local.j2
\ No newline at end of file
diff -pruN 2.36.0-1/swift.egg-info/dependency_links.txt 2.36.0-0ubuntu1/swift.egg-info/dependency_links.txt
--- 2.36.0-1/swift.egg-info/dependency_links.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/dependency_links.txt	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 2.36.0-1/swift.egg-info/entry_points.txt 2.36.0-0ubuntu1/swift.egg-info/entry_points.txt
--- 2.36.0-1/swift.egg-info/entry_points.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/entry_points.txt	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1,95 @@
+[console_scripts]
+swift-account-audit = swift.cli.account_audit:main
+swift-account-auditor = swift.account.auditor:main
+swift-account-info = swift.cli.info:account_main
+swift-account-reaper = swift.account.reaper:main
+swift-account-replicator = swift.account.replicator:main
+swift-account-server = swift.account.server:main
+swift-config = swift.cli.config:main
+swift-container-auditor = swift.container.auditor:main
+swift-container-deleter = swift.cli.container_deleter:main
+swift-container-info = swift.cli.info:container_main
+swift-container-reconciler = swift.container.reconciler:main
+swift-container-replicator = swift.container.replicator:main
+swift-container-server = swift.container.server:main
+swift-container-sharder = swift.container.sharder:main
+swift-container-sync = swift.container.sync:main
+swift-container-updater = swift.container.updater:main
+swift-dispersion-populate = swift.cli.dispersion_populate:main
+swift-dispersion-report = swift.cli.dispersion_report:main
+swift-drive-audit = swift.cli.drive_audit:main
+swift-form-signature = swift.cli.form_signature:main
+swift-get-nodes = swift.cli.get_nodes:main
+swift-init = swift.common.manager:main
+swift-manage-shard-ranges = swift.cli.manage_shard_ranges:main
+swift-object-auditor = swift.obj.auditor:main
+swift-object-expirer = swift.obj.expirer:main
+swift-object-info = swift.cli.info:obj_main
+swift-object-reconstructor = swift.obj.reconstructor:main
+swift-object-relinker = swift.cli.relinker:main
+swift-object-replicator = swift.obj.replicator:main
+swift-object-server = swift.obj.server:main
+swift-object-updater = swift.obj.updater:main
+swift-oldies = swift.cli.oldies:main
+swift-orphans = swift.cli.orphans:main
+swift-proxy-server = swift.proxy.server:main
+swift-recon = swift.cli.recon:main
+swift-recon-cron = swift.cli.recon_cron:main
+swift-reconciler-enqueue = swift.cli.reconciler_enqueue:main
+swift-reload = swift.cli.reload:main
+swift-ring-builder = swift.cli.ringbuilder:error_handling_main
+swift-ring-builder-analyzer = swift.cli.ring_builder_analyzer:main
+swift-ring-composer = swift.cli.ringcomposer:main
+
+[paste.app_factory]
+account = swift.account.server:app_factory
+container = swift.container.server:app_factory
+mem_object = swift.obj.mem_server:app_factory
+object = swift.obj.server:app_factory
+proxy = swift.proxy.server:app_factory
+
+[paste.filter_factory]
+account_quotas = swift.common.middleware.account_quotas:filter_factory
+backend_ratelimit = swift.common.middleware.backend_ratelimit:filter_factory
+bulk = swift.common.middleware.bulk:filter_factory
+catch_errors = swift.common.middleware.catch_errors:filter_factory
+cname_lookup = swift.common.middleware.cname_lookup:filter_factory
+container_quotas = swift.common.middleware.container_quotas:filter_factory
+container_sync = swift.common.middleware.container_sync:filter_factory
+copy = swift.common.middleware.copy:filter_factory
+crossdomain = swift.common.middleware.crossdomain:filter_factory
+dlo = swift.common.middleware.dlo:filter_factory
+domain_remap = swift.common.middleware.domain_remap:filter_factory
+encryption = swift.common.middleware.crypto:filter_factory
+etag_quoter = swift.common.middleware.etag_quoter:filter_factory
+formpost = swift.common.middleware.formpost:filter_factory
+gatekeeper = swift.common.middleware.gatekeeper:filter_factory
+healthcheck = swift.common.middleware.healthcheck:filter_factory
+keymaster = swift.common.middleware.crypto.keymaster:filter_factory
+keystoneauth = swift.common.middleware.keystoneauth:filter_factory
+kmip_keymaster = swift.common.middleware.crypto.kmip_keymaster:filter_factory
+kms_keymaster = swift.common.middleware.crypto.kms_keymaster:filter_factory
+list_endpoints = swift.common.middleware.list_endpoints:filter_factory
+listing_formats = swift.common.middleware.listing_formats:filter_factory
+memcache = swift.common.middleware.memcache:filter_factory
+name_check = swift.common.middleware.name_check:filter_factory
+proxy_logging = swift.common.middleware.proxy_logging:filter_factory
+ratelimit = swift.common.middleware.ratelimit:filter_factory
+read_only = swift.common.middleware.read_only:filter_factory
+recon = swift.common.middleware.recon:filter_factory
+s3api = swift.common.middleware.s3api.s3api:filter_factory
+s3token = swift.common.middleware.s3api.s3token:filter_factory
+slo = swift.common.middleware.slo:filter_factory
+staticweb = swift.common.middleware.staticweb:filter_factory
+symlink = swift.common.middleware.symlink:filter_factory
+tempauth = swift.common.middleware.tempauth:filter_factory
+tempurl = swift.common.middleware.tempurl:filter_factory
+versioned_writes = swift.common.middleware.versioned_writes:filter_factory
+xprofile = swift.common.middleware.xprofile:filter_factory
+
+[swift.diskfile]
+erasure_coding.fs = swift.obj.diskfile:ECDiskFileManager
+replication.fs = swift.obj.diskfile:DiskFileManager
+
+[swift.object_audit_watcher]
+dark_data = swift.obj.watchers.dark_data:DarkDataWatcher
diff -pruN 2.36.0-1/swift.egg-info/not-zip-safe 2.36.0-0ubuntu1/swift.egg-info/not-zip-safe
--- 2.36.0-1/swift.egg-info/not-zip-safe	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/not-zip-safe	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 2.36.0-1/swift.egg-info/pbr.json 2.36.0-0ubuntu1/swift.egg-info/pbr.json
--- 2.36.0-1/swift.egg-info/pbr.json	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/pbr.json	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1 @@
+{"git_version": "82cb5a5d7", "is_release": true}
\ No newline at end of file
diff -pruN 2.36.0-1/swift.egg-info/requires.txt 2.36.0-0ubuntu1/swift.egg-info/requires.txt
--- 2.36.0-1/swift.egg-info/requires.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/requires.txt	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1,36 @@
+eventlet!=0.34.3,>=0.25.0
+greenlet>=0.4.14
+PasteDeploy>=2.0.0
+lxml>=4.2.3
+requests>=2.14.2
+xattr>=0.7.2
+PyECLib!=1.6.2,!=1.6.3,>=1.3.1
+cryptography>=2.0.2
+dnspython>=1.15.0
+
+[keystone]
+keystonemiddleware>=4.17.0
+
+[kmip_keymaster]
+pykmip>=0.7.0
+
+[kms_keymaster]
+oslo.config>=5.2.0
+castellan>=0.13.0
+
+[test]
+hacking<7.1.0,>=2.0
+coverage>=5.2.1
+pytest>=4.6.11
+pytest-subtests>=0.3.0
+pytest-cov>=2.12.1
+stestr>=2.0.0
+python-swiftclient>=3.2.0
+python-keystoneclient>=3.19.0
+boto>=2.32.1
+boto3>=1.9
+botocore>=1.12
+requests-mock>=1.2.0
+keystonemiddleware>=4.17.0
+bandit>=1.1.0
+docutils>=0.15
diff -pruN 2.36.0-1/swift.egg-info/top_level.txt 2.36.0-0ubuntu1/swift.egg-info/top_level.txt
--- 2.36.0-1/swift.egg-info/top_level.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2.36.0-0ubuntu1/swift.egg-info/top_level.txt	2025-09-11 12:21:51.000000000 +0000
@@ -0,0 +1 @@
+swift
