Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to cargo vendor crates into sdist #118

Merged
merged 5 commits into from
Feb 22, 2021
Merged

Add option to cargo vendor crates into sdist #118

merged 5 commits into from
Feb 22, 2021

Conversation

messense
Copy link
Member

Closes #112

cc @tiran

setuptools_rust/setuptools_ext.py Outdated Show resolved Hide resolved
setuptools_rust/setuptools_ext.py Outdated Show resolved Hide resolved
@tiran
Copy link
Contributor

tiran commented Feb 16, 2021

Thanks for starting the PR!

The new option doesn't work with projects that keep their Cargo.toml in a subdirectory.

 ../setuptools-rust/venv/bin/python3 setup.py sdist --vendor-crates
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
running sdist
running check
running check_rust
error: could not find `Cargo.toml` in `/home/heimes/dev/py/cryptography` or any parent directory
...
subprocess.CalledProcessError: Command '['cargo', 'vendor', 'cryptography-3.5.dev1/vendored-crates']' returned non-zero exit status 101.

@messense
Copy link
Member Author

@tiran Now it's able to build sdist for cryptography.

❯ python setup.py sdist --vendor-crates
running sdist
running check
running check_rust
creating cryptography-35.0.0.dev1
creating cryptography-35.0.0.dev1/.cargo
   Vendoring bitflags v1.2.1 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/bitflags-1.2.1) to cryptography-35.0.0.dev1/.cargo/vendor/bitflags
   Vendoring cfg-if v1.0.0 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cfg-if-1.0.0) to cryptography-35.0.0.dev1/.cargo/vendor/cfg-if
   Vendoring ctor v0.1.19 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/ctor-0.1.19) to cryptography-35.0.0.dev1/.cargo/vendor/ctor
   Vendoring ghost v0.1.2 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/ghost-0.1.2) to cryptography-35.0.0.dev1/.cargo/vendor/ghost
   Vendoring indoc v0.3.6 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/indoc-0.3.6) to cryptography-35.0.0.dev1/.cargo/vendor/indoc
   Vendoring indoc-impl v0.3.6 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/indoc-impl-0.3.6) to cryptography-35.0.0.dev1/.cargo/vendor/indoc-impl
   Vendoring instant v0.1.9 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/instant-0.1.9) to cryptography-35.0.0.dev1/.cargo/vendor/instant
   Vendoring inventory v0.1.10 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/inventory-0.1.10) to cryptography-35.0.0.dev1/.cargo/vendor/inventory
   Vendoring inventory-impl v0.1.10 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/inventory-impl-0.1.10) to cryptography-35.0.0.dev1/.cargo/vendor/inventory-impl
   Vendoring libc v0.2.86 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.86) to cryptography-35.0.0.dev1/.cargo/vendor/libc
   Vendoring lock_api v0.4.2 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/lock_api-0.4.2) to cryptography-35.0.0.dev1/.cargo/vendor/lock_api
   Vendoring parking_lot v0.11.1 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/parking_lot-0.11.1) to cryptography-35.0.0.dev1/.cargo/vendor/parking_lot
   Vendoring parking_lot_core v0.8.3 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/parking_lot_core-0.8.3) to cryptography-35.0.0.dev1/.cargo/vendor/parking_lot_core
   Vendoring paste v0.1.18 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/paste-0.1.18) to cryptography-35.0.0.dev1/.cargo/vendor/paste
   Vendoring paste-impl v0.1.18 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/paste-impl-0.1.18) to cryptography-35.0.0.dev1/.cargo/vendor/paste-impl
   Vendoring proc-macro-hack v0.5.19 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro-hack-0.5.19) to cryptography-35.0.0.dev1/.cargo/vendor/proc-macro-hack
   Vendoring proc-macro2 v1.0.24 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.24) to cryptography-35.0.0.dev1/.cargo/vendor/proc-macro2
   Vendoring pyo3 v0.13.2 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pyo3-0.13.2) to cryptography-35.0.0.dev1/.cargo/vendor/pyo3
   Vendoring pyo3-macros v0.13.2 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pyo3-macros-0.13.2) to cryptography-35.0.0.dev1/.cargo/vendor/pyo3-macros
   Vendoring pyo3-macros-backend v0.13.2 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pyo3-macros-backend-0.13.2) to cryptography-35.0.0.dev1/.cargo/vendor/pyo3-macros-backend
   Vendoring quote v1.0.9 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/quote-1.0.9) to cryptography-35.0.0.dev1/.cargo/vendor/quote
   Vendoring redox_syscall v0.2.5 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/redox_syscall-0.2.5) to cryptography-35.0.0.dev1/.cargo/vendor/redox_syscall
   Vendoring scopeguard v1.1.0 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/scopeguard-1.1.0) to cryptography-35.0.0.dev1/.cargo/vendor/scopeguard
   Vendoring smallvec v1.6.1 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/smallvec-1.6.1) to cryptography-35.0.0.dev1/.cargo/vendor/smallvec
   Vendoring syn v1.0.60 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.60) to cryptography-35.0.0.dev1/.cargo/vendor/syn
   Vendoring unicode-xid v0.2.1 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/unicode-xid-0.2.1) to cryptography-35.0.0.dev1/.cargo/vendor/unicode-xid
   Vendoring unindent v0.1.7 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/unindent-0.1.7) to cryptography-35.0.0.dev1/.cargo/vendor/unindent
   Vendoring winapi v0.3.9 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-0.3.9) to cryptography-35.0.0.dev1/.cargo/vendor/winapi
   Vendoring winapi-i686-pc-windows-gnu v0.4.0 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-i686-pc-windows-gnu-0.4.0) to cryptography-35.0.0.dev1/.cargo/vendor/winapi-i686-pc-windows-gnu
   Vendoring winapi-x86_64-pc-windows-gnu v0.4.0 (/Users/messense/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-x86_64-pc-windows-gnu-0.4.0) to cryptography-35.0.0.dev1/.cargo/vendor/winapi-x86_64-pc-windows-gnu
To use vendored sources, add this to your .cargo/config.toml for this project:

running egg_info
writing src/cryptography.egg-info/PKG-INFO
writing dependency_links to src/cryptography.egg-info/dependency_links.txt
writing requirements to src/cryptography.egg-info/requires.txt
writing top-level names to src/cryptography.egg-info/top_level.txt
reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'docs/_build'
warning: no previously-included files found matching 'vectors'
warning: no previously-included files matching '*' found under directory 'vectors'
warning: no previously-included files matching '*' found under directory '.github'
warning: no previously-included files found matching 'release.py'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching 'codecov.yml'
warning: no previously-included files found matching '.readthedocs.yml'
warning: no previously-included files found matching 'dev-requirements.txt'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files found matching 'mypy.ini'
warning: no previously-included files matching '*' found under directory '.zuul.d'
warning: no previously-included files matching '*' found under directory '.zuul.playbooks'
writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'docs/_build'
warning: no previously-included files found matching 'vectors'
warning: no previously-included files matching '*' found under directory 'vectors'
warning: no previously-included files matching '*' found under directory '.github'
warning: no previously-included files found matching 'release.py'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching 'codecov.yml'
warning: no previously-included files found matching '.readthedocs.yml'
warning: no previously-included files found matching 'dev-requirements.txt'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files found matching 'mypy.ini'
warning: no previously-included files matching '*' found under directory '.zuul.d'
warning: no previously-included files matching '*' found under directory '.zuul.playbooks'
writing manifest file 'MANIFEST'
creating cryptography-35.0.0.dev1/docs
creating cryptography-35.0.0.dev1/docs/_static
creating cryptography-35.0.0.dev1/docs/development
creating cryptography-35.0.0.dev1/docs/development/custom-vectors
creating cryptography-35.0.0.dev1/docs/development/custom-vectors/arc4
creating cryptography-35.0.0.dev1/docs/development/custom-vectors/cast5
creating cryptography-35.0.0.dev1/docs/development/custom-vectors/hkdf
creating cryptography-35.0.0.dev1/docs/development/custom-vectors/idea
creating cryptography-35.0.0.dev1/docs/development/custom-vectors/rsa-oaep-sha2
creating cryptography-35.0.0.dev1/docs/development/custom-vectors/secp256k1
creating cryptography-35.0.0.dev1/docs/development/custom-vectors/seed
creating cryptography-35.0.0.dev1/docs/hazmat
creating cryptography-35.0.0.dev1/docs/hazmat/backends
creating cryptography-35.0.0.dev1/docs/hazmat/primitives
creating cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
creating cryptography-35.0.0.dev1/docs/hazmat/primitives/mac
creating cryptography-35.0.0.dev1/docs/x509
creating cryptography-35.0.0.dev1/src
creating cryptography-35.0.0.dev1/src/_cffi_src
creating cryptography-35.0.0.dev1/src/_cffi_src/hazmat_src
creating cryptography-35.0.0.dev1/src/_cffi_src/openssl
creating cryptography-35.0.0.dev1/src/_cffi_src/openssl/src
creating cryptography-35.0.0.dev1/src/cryptography
creating cryptography-35.0.0.dev1/src/cryptography/hazmat
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/backends
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/bindings
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/bindings/openssl
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/ciphers
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/serialization
creating cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/twofactor
creating cryptography-35.0.0.dev1/src/cryptography/x509
creating cryptography-35.0.0.dev1/src/rust
creating cryptography-35.0.0.dev1/src/rust/src
creating cryptography-35.0.0.dev1/tests
creating cryptography-35.0.0.dev1/tests/hazmat
creating cryptography-35.0.0.dev1/tests/hazmat/backends
creating cryptography-35.0.0.dev1/tests/hazmat/bindings
creating cryptography-35.0.0.dev1/tests/hazmat/primitives
creating cryptography-35.0.0.dev1/tests/hazmat/primitives/twofactor
creating cryptography-35.0.0.dev1/tests/hypothesis
creating cryptography-35.0.0.dev1/tests/wycheproof
creating cryptography-35.0.0.dev1/tests/x509
making hard links in cryptography-35.0.0.dev1...
'$PLACEHOLDER' not a regular file -- skipping
hard linking CHANGELOG.rst -> cryptography-35.0.0.dev1
hard linking CONTRIBUTING.rst -> cryptography-35.0.0.dev1
hard linking LICENSE -> cryptography-35.0.0.dev1
hard linking LICENSE.APACHE -> cryptography-35.0.0.dev1
hard linking LICENSE.BSD -> cryptography-35.0.0.dev1
hard linking LICENSE.PSF -> cryptography-35.0.0.dev1
hard linking README.rst -> cryptography-35.0.0.dev1
hard linking pyproject.toml -> cryptography-35.0.0.dev1
hard linking setup.py -> cryptography-35.0.0.dev1
hard linking docs/Makefile -> cryptography-35.0.0.dev1/docs
hard linking docs/api-stability.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/changelog.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/community.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/conf.py -> cryptography-35.0.0.dev1/docs
hard linking docs/cryptography-docs.py -> cryptography-35.0.0.dev1/docs
hard linking docs/doing-a-release.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/exceptions.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/faq.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/fernet.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/glossary.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/index.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/installation.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/limitations.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/make.bat -> cryptography-35.0.0.dev1/docs
hard linking docs/random-numbers.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/security.rst -> cryptography-35.0.0.dev1/docs
hard linking docs/spelling_wordlist.txt -> cryptography-35.0.0.dev1/docs
hard linking docs/_static/.keep -> cryptography-35.0.0.dev1/docs/_static
hard linking docs/development/c-bindings.rst -> cryptography-35.0.0.dev1/docs/development
hard linking docs/development/getting-started.rst -> cryptography-35.0.0.dev1/docs/development
hard linking docs/development/index.rst -> cryptography-35.0.0.dev1/docs/development
hard linking docs/development/reviewing-patches.rst -> cryptography-35.0.0.dev1/docs/development
hard linking docs/development/submitting-patches.rst -> cryptography-35.0.0.dev1/docs/development
hard linking docs/development/test-vectors.rst -> cryptography-35.0.0.dev1/docs/development
hard linking docs/development/custom-vectors/arc4.rst -> cryptography-35.0.0.dev1/docs/development/custom-vectors
hard linking docs/development/custom-vectors/cast5.rst -> cryptography-35.0.0.dev1/docs/development/custom-vectors
hard linking docs/development/custom-vectors/hkdf.rst -> cryptography-35.0.0.dev1/docs/development/custom-vectors
hard linking docs/development/custom-vectors/idea.rst -> cryptography-35.0.0.dev1/docs/development/custom-vectors
hard linking docs/development/custom-vectors/rsa-oaep-sha2.rst -> cryptography-35.0.0.dev1/docs/development/custom-vectors
hard linking docs/development/custom-vectors/secp256k1.rst -> cryptography-35.0.0.dev1/docs/development/custom-vectors
hard linking docs/development/custom-vectors/seed.rst -> cryptography-35.0.0.dev1/docs/development/custom-vectors
hard linking docs/development/custom-vectors/arc4/generate_arc4.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/arc4
hard linking docs/development/custom-vectors/arc4/verify_arc4.go -> cryptography-35.0.0.dev1/docs/development/custom-vectors/arc4
hard linking docs/development/custom-vectors/cast5/generate_cast5.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/cast5
hard linking docs/development/custom-vectors/cast5/verify_cast5.go -> cryptography-35.0.0.dev1/docs/development/custom-vectors/cast5
hard linking docs/development/custom-vectors/hkdf/generate_hkdf.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/hkdf
hard linking docs/development/custom-vectors/hkdf/verify_hkdf.go -> cryptography-35.0.0.dev1/docs/development/custom-vectors/hkdf
hard linking docs/development/custom-vectors/idea/generate_idea.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/idea
hard linking docs/development/custom-vectors/idea/verify_idea.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/idea
hard linking docs/development/custom-vectors/rsa-oaep-sha2/VerifyRSAOAEPSHA2.java -> cryptography-35.0.0.dev1/docs/development/custom-vectors/rsa-oaep-sha2
hard linking docs/development/custom-vectors/rsa-oaep-sha2/generate_rsa_oaep_sha2.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/rsa-oaep-sha2
hard linking docs/development/custom-vectors/secp256k1/generate_secp256k1.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/secp256k1
hard linking docs/development/custom-vectors/secp256k1/verify_secp256k1.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/secp256k1
hard linking docs/development/custom-vectors/seed/generate_seed.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/seed
hard linking docs/development/custom-vectors/seed/verify_seed.py -> cryptography-35.0.0.dev1/docs/development/custom-vectors/seed
hard linking docs/hazmat/backends/index.rst -> cryptography-35.0.0.dev1/docs/hazmat/backends
hard linking docs/hazmat/backends/interfaces.rst -> cryptography-35.0.0.dev1/docs/hazmat/backends
hard linking docs/hazmat/backends/openssl.rst -> cryptography-35.0.0.dev1/docs/hazmat/backends
hard linking docs/hazmat/primitives/aead.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/constant-time.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/cryptographic-hashes.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/index.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/key-derivation-functions.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/keywrap.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/padding.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/symmetric-encryption.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/twofactor.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives
hard linking docs/hazmat/primitives/asymmetric/dh.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/dsa.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/ec.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/ed25519.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/ed448.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/index.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/rsa.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/serialization.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/utils.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/x25519.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/asymmetric/x448.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/asymmetric
hard linking docs/hazmat/primitives/mac/cmac.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/mac
hard linking docs/hazmat/primitives/mac/hmac.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/mac
hard linking docs/hazmat/primitives/mac/index.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/mac
hard linking docs/hazmat/primitives/mac/poly1305.rst -> cryptography-35.0.0.dev1/docs/hazmat/primitives/mac
hard linking docs/x509/certificate-transparency.rst -> cryptography-35.0.0.dev1/docs/x509
hard linking docs/x509/index.rst -> cryptography-35.0.0.dev1/docs/x509
hard linking docs/x509/ocsp.rst -> cryptography-35.0.0.dev1/docs/x509
hard linking docs/x509/reference.rst -> cryptography-35.0.0.dev1/docs/x509
hard linking docs/x509/tutorial.rst -> cryptography-35.0.0.dev1/docs/x509
hard linking src/_cffi_src/__init__.py -> cryptography-35.0.0.dev1/src/_cffi_src
hard linking src/_cffi_src/build_openssl.py -> cryptography-35.0.0.dev1/src/_cffi_src
hard linking src/_cffi_src/build_padding.py -> cryptography-35.0.0.dev1/src/_cffi_src
hard linking src/_cffi_src/utils.py -> cryptography-35.0.0.dev1/src/_cffi_src
hard linking src/_cffi_src/hazmat_src/padding.c -> cryptography-35.0.0.dev1/src/_cffi_src/hazmat_src
hard linking src/_cffi_src/hazmat_src/padding.h -> cryptography-35.0.0.dev1/src/_cffi_src/hazmat_src
hard linking src/_cffi_src/openssl/__init__.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/aes.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/asn1.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/bignum.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/bio.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/callbacks.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/cmac.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/conf.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/crypto.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/cryptography.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/ct.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/dh.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/dsa.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/ec.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/ecdh.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/ecdsa.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/engine.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/err.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/evp.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/fips.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/hmac.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/nid.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/objects.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/ocsp.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/opensslv.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/osrandom_engine.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/pem.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/pkcs12.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/pkcs7.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/rand.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/rsa.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/ssl.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/x509.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/x509_vfy.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/x509name.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/x509v3.py -> cryptography-35.0.0.dev1/src/_cffi_src/openssl
hard linking src/_cffi_src/openssl/src/osrandom_engine.c -> cryptography-35.0.0.dev1/src/_cffi_src/openssl/src
hard linking src/_cffi_src/openssl/src/osrandom_engine.h -> cryptography-35.0.0.dev1/src/_cffi_src/openssl/src
hard linking src/cryptography/__about__.py -> cryptography-35.0.0.dev1/src/cryptography
hard linking src/cryptography/__init__.py -> cryptography-35.0.0.dev1/src/cryptography
hard linking src/cryptography/exceptions.py -> cryptography-35.0.0.dev1/src/cryptography
hard linking src/cryptography/fernet.py -> cryptography-35.0.0.dev1/src/cryptography
hard linking src/cryptography/py.typed -> cryptography-35.0.0.dev1/src/cryptography
hard linking src/cryptography/utils.py -> cryptography-35.0.0.dev1/src/cryptography
hard linking src/cryptography/hazmat/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat
hard linking src/cryptography/hazmat/_der.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat
hard linking src/cryptography/hazmat/_oid.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat
hard linking src/cryptography/hazmat/_types.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat
hard linking src/cryptography/hazmat/backends/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends
hard linking src/cryptography/hazmat/backends/interfaces.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends
hard linking src/cryptography/hazmat/backends/openssl/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/aead.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/backend.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/ciphers.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/cmac.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/decode_asn1.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/dh.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/dsa.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/ec.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/ed25519.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/ed448.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/encode_asn1.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/hashes.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/hmac.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/ocsp.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/poly1305.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/rsa.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/utils.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/x25519.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/x448.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/backends/openssl/x509.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/backends/openssl
hard linking src/cryptography/hazmat/bindings/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/bindings
hard linking src/cryptography/hazmat/bindings/openssl/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/bindings/openssl
hard linking src/cryptography/hazmat/bindings/openssl/_conditional.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/bindings/openssl
hard linking src/cryptography/hazmat/bindings/openssl/binding.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/bindings/openssl
hard linking src/cryptography/hazmat/primitives/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/_asymmetric.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/_cipheralgorithm.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/_serialization.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/cmac.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/constant_time.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/hashes.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/hmac.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/keywrap.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/padding.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/poly1305.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives
hard linking src/cryptography/hazmat/primitives/asymmetric/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/dh.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/dsa.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/ec.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/ed448.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/padding.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/rsa.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/utils.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/x25519.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/asymmetric/x448.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/asymmetric
hard linking src/cryptography/hazmat/primitives/ciphers/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/ciphers
hard linking src/cryptography/hazmat/primitives/ciphers/aead.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/ciphers
hard linking src/cryptography/hazmat/primitives/ciphers/algorithms.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/ciphers
hard linking src/cryptography/hazmat/primitives/ciphers/base.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/ciphers
hard linking src/cryptography/hazmat/primitives/ciphers/modes.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/ciphers
hard linking src/cryptography/hazmat/primitives/kdf/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
hard linking src/cryptography/hazmat/primitives/kdf/concatkdf.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
hard linking src/cryptography/hazmat/primitives/kdf/hkdf.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
hard linking src/cryptography/hazmat/primitives/kdf/kbkdf.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
hard linking src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
hard linking src/cryptography/hazmat/primitives/kdf/scrypt.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
hard linking src/cryptography/hazmat/primitives/kdf/x963kdf.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/kdf
hard linking src/cryptography/hazmat/primitives/serialization/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/serialization
hard linking src/cryptography/hazmat/primitives/serialization/base.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/serialization
hard linking src/cryptography/hazmat/primitives/serialization/pkcs12.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/serialization
hard linking src/cryptography/hazmat/primitives/serialization/pkcs7.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/serialization
hard linking src/cryptography/hazmat/primitives/serialization/ssh.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/serialization
hard linking src/cryptography/hazmat/primitives/twofactor/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/twofactor
hard linking src/cryptography/hazmat/primitives/twofactor/hotp.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/twofactor
hard linking src/cryptography/hazmat/primitives/twofactor/totp.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/twofactor
hard linking src/cryptography/hazmat/primitives/twofactor/utils.py -> cryptography-35.0.0.dev1/src/cryptography/hazmat/primitives/twofactor
hard linking src/cryptography/x509/__init__.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/cryptography/x509/base.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/cryptography/x509/certificate_transparency.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/cryptography/x509/extensions.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/cryptography/x509/general_name.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/cryptography/x509/name.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/cryptography/x509/ocsp.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/cryptography/x509/oid.py -> cryptography-35.0.0.dev1/src/cryptography/x509
hard linking src/rust/Cargo.lock -> cryptography-35.0.0.dev1/src/rust
hard linking src/rust/Cargo.toml -> cryptography-35.0.0.dev1/src/rust
hard linking src/rust/src/lib.rs -> cryptography-35.0.0.dev1/src/rust/src
hard linking tests/__init__.py -> cryptography-35.0.0.dev1/tests
hard linking tests/conftest.py -> cryptography-35.0.0.dev1/tests
hard linking tests/doubles.py -> cryptography-35.0.0.dev1/tests
hard linking tests/test_cryptography_utils.py -> cryptography-35.0.0.dev1/tests
hard linking tests/test_fernet.py -> cryptography-35.0.0.dev1/tests
hard linking tests/test_interfaces.py -> cryptography-35.0.0.dev1/tests
hard linking tests/test_meta.py -> cryptography-35.0.0.dev1/tests
hard linking tests/test_utils.py -> cryptography-35.0.0.dev1/tests
hard linking tests/test_warnings.py -> cryptography-35.0.0.dev1/tests
hard linking tests/utils.py -> cryptography-35.0.0.dev1/tests
hard linking tests/hazmat/__init__.py -> cryptography-35.0.0.dev1/tests/hazmat
hard linking tests/hazmat/test_der.py -> cryptography-35.0.0.dev1/tests/hazmat
hard linking tests/hazmat/test_oid.py -> cryptography-35.0.0.dev1/tests/hazmat
hard linking tests/hazmat/backends/__init__.py -> cryptography-35.0.0.dev1/tests/hazmat/backends
hard linking tests/hazmat/backends/test_no_backend.py -> cryptography-35.0.0.dev1/tests/hazmat/backends
hard linking tests/hazmat/backends/test_openssl.py -> cryptography-35.0.0.dev1/tests/hazmat/backends
hard linking tests/hazmat/backends/test_openssl_memleak.py -> cryptography-35.0.0.dev1/tests/hazmat/backends
hard linking tests/hazmat/bindings/test_openssl.py -> cryptography-35.0.0.dev1/tests/hazmat/bindings
hard linking tests/hazmat/primitives/__init__.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/fixtures_dh.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/fixtures_dsa.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/fixtures_ec.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/fixtures_rsa.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_3des.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_aead.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_aes.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_aes_gcm.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_arc4.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_asym_utils.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_block.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_blowfish.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_camellia.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_cast5.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_chacha20.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_ciphers.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_cmac.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_concatkdf.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_constant_time.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_dh.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_dsa.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_ec.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_ed25519.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_ed448.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_hash_vectors.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_hashes.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_hkdf.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_hkdf_vectors.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_hmac.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_hmac_vectors.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_idea.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_kbkdf.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_kbkdf_vectors.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_keywrap.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_padding.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_pbkdf2hmac.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_pbkdf2hmac_vectors.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_pkcs12.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_pkcs7.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_poly1305.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_rsa.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_scrypt.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_seed.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_serialization.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_x25519.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_x448.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_x963_vectors.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/test_x963kdf.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/utils.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives
hard linking tests/hazmat/primitives/twofactor/__init__.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives/twofactor
hard linking tests/hazmat/primitives/twofactor/test_hotp.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives/twofactor
hard linking tests/hazmat/primitives/twofactor/test_totp.py -> cryptography-35.0.0.dev1/tests/hazmat/primitives/twofactor
hard linking tests/hypothesis/__init__.py -> cryptography-35.0.0.dev1/tests/hypothesis
hard linking tests/hypothesis/test_fernet.py -> cryptography-35.0.0.dev1/tests/hypothesis
hard linking tests/hypothesis/test_padding.py -> cryptography-35.0.0.dev1/tests/hypothesis
hard linking tests/wycheproof/__init__.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_aes.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_chacha20poly1305.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_cmac.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_dsa.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_ecdh.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_ecdsa.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_eddsa.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_hkdf.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_hmac.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_keywrap.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_rsa.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_utils.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_x25519.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/test_x448.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/wycheproof/utils.py -> cryptography-35.0.0.dev1/tests/wycheproof
hard linking tests/x509/__init__.py -> cryptography-35.0.0.dev1/tests/x509
hard linking tests/x509/test_ocsp.py -> cryptography-35.0.0.dev1/tests/x509
hard linking tests/x509/test_x509.py -> cryptography-35.0.0.dev1/tests/x509
hard linking tests/x509/test_x509_crlbuilder.py -> cryptography-35.0.0.dev1/tests/x509
hard linking tests/x509/test_x509_ext.py -> cryptography-35.0.0.dev1/tests/x509
hard linking tests/x509/test_x509_revokedcertbuilder.py -> cryptography-35.0.0.dev1/tests/x509
Creating tar archive
removing 'cryptography-35.0.0.dev1' (and everything under it)

❯ ls -lrth dist
total 18448
-rw-r--r--  1 messense  staff   8.8M Feb 16 19:40 cryptography-35.0.0.dev1.tar.gz

setuptools_rust/setuptools_ext.py Outdated Show resolved Hide resolved
setuptools_rust/setuptools_ext.py Outdated Show resolved Hide resolved
# `cargo vendor --sync a --sync b --sync c vendor_path`
# but it would also consider vendor_path as --sync value
# set --manifest-path before vendor_path and after --sync to workaround that
# See https://docs.rs/clap/latest/clap/struct.Arg.html#method.multiple for detail
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error example:

❯ cargo vendor --sync ~/Projects/cryptography/src/rust/Cargo.toml --sync ~/Projects/fat-macho-rs/Cargo.toml vendor
error: failed to read `/Users/messense/Projects/setuptools-rust/examples/namespace_package/vendor`

Caused by:
  No such file or directory (os error 2)

@messense messense requested a review from davidhewitt February 17, 2021 01:08
@davidhewitt
Copy link
Member

davidhewitt commented Feb 18, 2021

Thanks very much for this, I've just reviewed and the code looks great to me. I'd like to take a moment to play with this in practice to see how it works out. That'll probably happen tomorrow evening or at the weekend.

We should probably also add a test in CI for this. I guess a test could build a vendored sdist and then unpack it and confirm it can build with cargo build --offline ?

@messense
Copy link
Member Author

messense commented Feb 19, 2021

Added sdist test and fixed an issue with Windows.

Copy link
Member

@davidhewitt davidhewitt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just had a play with this locally and can confirm it works great. Thanks very much for implementing this.

@davidhewitt davidhewitt merged commit 14703b8 into PyO3:master Feb 22, 2021
@messense messense deleted the sdist-vendor-crates branch February 22, 2021 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add option to cargo vendor crates into sdist
3 participants