Missing architectures specified in Release should be regarded as empty
I am trying to sync release
focal-security with components
main universe non-free from
This fails because the Release-file defines some architecture-files that are not present.
According to https://wiki.debian.org/DebianRepository/Format#Architectures , architectures that are defined but not present, should be regarded as present but empty.
However, I am unsure if this also applies here, because here the Architectures are defined and even hashes for the Index files are defined, but are missing in the directory-structure. Persumably Ubuntu does this to not have to re-sign the Release-files.
error: traceback: |2 File "/usr/lib/python3.6/site-packages/rq/worker.py", line 883, in perform_job rv = job.perform() File "/usr/lib/python3.6/site-packages/rq/job.py", line 657, in perform self._result = self._execute() File "/usr/lib/python3.6/site-packages/rq/job.py", line 663, in _execute return self.func(*self.args, **self.kwargs) File "/usr/local/lib/python3.6/site-packages/pulp_deb/app/tasks/synchronizing.py", line 106, in synchronize DebDeclarativeVersion(first_stage, repository, mirror=mirror).create() File "/usr/local/lib/python3.6/site-packages/pulpcore/plugin/stages/declarative_version.py", line 148, in create loop.run_until_complete(pipeline) File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete return future.result() File "/usr/local/lib/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 225, in create_pipeline await asyncio.gather(*futures) File "/usr/local/lib/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 43, in __call__ await self.run() File "/usr/local/lib/python3.6/site-packages/pulp_deb/app/tasks/synchronizing.py", line 286, in run raise NoPackageIndexFile(relative_dir=relative_dir) description: No suitable Package index file found in 'dists/focal-security/main/binary-armhf'.
Updated by quba42 over 2 years ago
The combination of declaring a architecture (in the Release files Architectures field), referencing the package index in the Release file, but not actually publishing it, is necessary for providing partial mirrors. It is what our verbatim publisher generally does, so we should certainly support it.
Be that as it may, I am near certain the plugin is currently not adhering to the repo specification, since it loops over the architectures from the release file field, and then expects to find an index for it. This part is definitely a bug.