Repository: borgbackup/borg

Issue:
strange warnings / build failure for 1.2.1
reported by lazyvirus on the borgbackup mailing list:

debian bullseye
======================

Hi,

I uninstalled 1.1.18 to replace it with 1.2.1, checked all
dependencies were installed, but pip3 is failing and I don't
know why.

As it is a long output it is attached as a text file.

So, if you have a solution, I'll take it.

Jean-Yves

```
# pip3 install borgbackup
Collecting borgbackup
  Using cached borgbackup-1.2.1.tar.gz (4.0 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: packaging in /usr/lib/python3/dist-packages (from borgbackup) (20.9)
Requirement already satisfied: msgpack!=1.0.1,<=1.0.4,>=0.5.6 in /usr/lib/python3/dist-packages (from borgbackup) (1.0.0)
Building wheels for collected packages: borgbackup
  Building wheel for borgbackup (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for borgbackup (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [373 lines of output]
      Detected OpenSSL [via pkg-config]
      Detected and preferring liblz4 [via pkg-config]
      Detected and preferring libzstd [via pkg-config]
      Detected and preferring libxxhash [via pkg-config]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-39
      creating build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/__main__.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/repository.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/lrucache.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/archive.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/locking.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/fuse_impl.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/_version.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/cache.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/constants.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/nanorst.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/upgrader.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/platformflags.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/fuse.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/__init__.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/archiver.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/selftest.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/remote.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/xattr.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/patterns.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/version.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/shellpattern.py -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/logger.py -> build/lib.linux-x86_64-cpython-39/borg
      creating build/lib.linux-x86_64-cpython-39/borg/crypto
      copying src/borg/crypto/file_integrity.py -> build/lib.linux-x86_64-cpython-39/borg/crypto
      copying src/borg/crypto/__init__.py -> build/lib.linux-x86_64-cpython-39/borg/crypto
      copying src/borg/crypto/key.py -> build/lib.linux-x86_64-cpython-39/borg/crypto
      copying src/borg/crypto/nonces.py -> build/lib.linux-x86_64-cpython-39/borg/crypto
      copying src/borg/crypto/keymanager.py -> build/lib.linux-x86_64-cpython-39/borg/crypto
      creating build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/checks.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/errors.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/__init__.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/parseformat.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/manifest.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/fs.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/yes.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/time.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/misc.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/msgpack.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/datastruct.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/progress.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      copying src/borg/helpers/process.py -> build/lib.linux-x86_64-cpython-39/borg/helpers
      creating build/lib.linux-x86_64-cpython-39/borg/platform
      copying src/borg/platform/__init__.py -> build/lib.linux-x86_64-cpython-39/borg/platform
      copying src/borg/platform/xattr.py -> build/lib.linux-x86_64-cpython-39/borg/platform
      copying src/borg/platform/base.py -> build/lib.linux-x86_64-cpython-39/borg/platform
      creating build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/repository.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/lrucache.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/archive.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/item.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/locking.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/benchmark.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/file_integrity.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/cache.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/nanorst.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/hashindex.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/upgrader.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/compress.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/helpers.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/__init__.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/chunker_pytest.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/archiver.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/crypto.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/platform.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/remote.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/xattr.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/key.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/patterns.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/nonces.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/efficient_collection_queue.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/version.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/shellpattern.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/logger.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/checksums.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/chunker.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      copying src/borg/testsuite/chunker_slow.py -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      creating build/lib.linux-x86_64-cpython-39/borg/algorithms
      copying src/borg/algorithms/__init__.py -> build/lib.linux-x86_64-cpython-39/borg/algorithms
      running egg_info
      writing src/borgbackup.egg-info/PKG-INFO
      writing dependency_links to src/borgbackup.egg-info/dependency_links.txt
      writing entry points to src/borgbackup.egg-info/entry_points.txt
      writing requirements to src/borgbackup.egg-info/requires.txt
      writing top-level names to src/borgbackup.egg-info/top_level.txt
      listing git files failed - pretending there aren't any
      reading manifest file 'src/borgbackup.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files found matching '.coafile'
      warning: no previously-included files found matching '.editorconfig'
      warning: no previously-included files found matching '.gitattributes'
      warning: no previously-included files found matching '.gitignore'
      warning: no previously-included files found matching '.mailmap'
      warning: no previously-included files found matching 'Vagrantfile'
      no previously-included directories found matching '.github'
      adding license file 'LICENSE'
      adding license file 'AUTHORS'
      writing manifest file 'src/borgbackup.egg-info/SOURCES.txt'
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.lz4.lib' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.lz4.lib' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.lz4.lib' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.lz4.lib' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.xxh64' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.xxh64' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.xxh64' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.xxh64' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.zstd.lib' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.zstd.lib' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.zstd.lib' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.zstd.lib' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.zstd.lib.common' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.zstd.lib.common' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.zstd.lib.common' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.zstd.lib.common' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.zstd.lib.compress' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.zstd.lib.compress' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.zstd.lib.compress' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.zstd.lib.compress' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.zstd.lib.decompress' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.zstd.lib.decompress' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.zstd.lib.decompress' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.zstd.lib.decompress' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.zstd.lib.deprecated' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.zstd.lib.deprecated' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.zstd.lib.deprecated' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.zstd.lib.deprecated' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.zstd.lib.dictBuilder' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.zstd.lib.dictBuilder' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.zstd.lib.dictBuilder' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.zstd.lib.dictBuilder' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.algorithms.zstd.lib.legacy' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.algorithms.zstd.lib.legacy' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.algorithms.zstd.lib.legacy' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.algorithms.zstd.lib.legacy' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      /usr/local/lib/python3.9/dist-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'borg.cache_sync' as data is deprecated, please list it in `packages`.
          !!
      
      
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.cache_sync' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.
      
          'borg.cache_sync' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).
      
          Please make sure that 'borg.cache_sync' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
      
          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
      
      
      !!
      
        check.warn(importable)
      copying src/borg/paperkey.html -> build/lib.linux-x86_64-cpython-39/borg
      copying src/borg/testsuite/attic.tar.gz -> build/lib.linux-x86_64-cpython-39/borg/testsuite
      running build_ext
      building 'borg.crypto.low_level' extension
      error: unknown file type '.pyx' (from 'src/borg/crypto/low_level.pyx')
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for borgbackup
Failed to build borgbackup
ERROR: Could not build wheels for borgbackup, which is required to install pyproject.toml-based projects
```


Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,7 @@
     multiprocessing = None
 
 from setuptools.command.build_ext import build_ext
-from setuptools import setup, find_packages, Extension, Command
+from setuptools import setup, find_namespace_packages, Extension, Command
 from setuptools.command.sdist import sdist
 
 try:
@@ -292,7 +292,7 @@ def members_appended(*ds):
         'Topic :: Security :: Cryptography',
         'Topic :: System :: Archiving :: Backup',
     ],
-    packages=find_packages('src'),
+    packages=find_namespace_packages('src'),
     package_dir={'': 'src'},
     zip_safe=False,
     entry_points={


Test patch: